Iterative Policy Evaluation的迭代过程一般有两种方式:
- 使用两个数组,其中一个数组存储上一轮迭代的状态价值,另外一个数组存储本轮迭代中的状态价值,本轮迭代总是从上一轮迭代(老的)的状态价值取值,这样在迭代过程中老的状态价值不会受到影响。
- 使用一个数组来存储状态价值,并在迭代时实时更新状态价值,这样在迭代过程中能够更早的利用新的状态价值,此种更新状态价值的方法称为“in place iterative policy evaluation”。
下面是两种不同的实现思路运行结果的对比图:
尽管使用两个数组的迭代方法思路更清晰,但是in place iterative policy evaluation的收敛速度更快,因此在实际运用中,往往使用in place iterative policy evaluation。
详细的实现代码参见:grid world源码