在第4.4 节值迭代中,作者写道
一个重要的特殊情况是仅在一次扫描(每个状态更新一次)后停止策略评估。这种算法称为值迭代。
之后,他们提供了以下伪代码
从代码中可以清楚地看出,每个状态的更新都会发生,直到足够小。正如作者在文本中所写的那样,每个州都没有更新。错误在哪里?
在第4.4 节值迭代中,作者写道
一个重要的特殊情况是仅在一次扫描(每个状态更新一次)后停止策略评估。这种算法称为值迭代。
之后,他们提供了以下伪代码
从代码中可以清楚地看出,每个状态的更新都会发生,直到足够小。正如作者在文本中所写的那样,每个州都没有更新。错误在哪里?
作者提到在一个状态后停止策略评估的地方,他们指的是评估策略的算法部分 - 您列出的伪代码是Value Iteration的伪代码,它包括策略评估和策略改进之间的迭代.
在正常的策略评估中,您将应用更新直到收敛。在策略迭代算法中,您执行策略评估,直到价值函数在每个状态中收敛,然后应用策略改进,然后重复。价值迭代将执行一次更新的策略评估,即直到收敛,然后改进策略,并重复此操作直到价值函数收敛。
线
执行早期停止策略评估和策略改进。让我们看看如何:
这和我之前写的期望是一样的,所以我们可以清楚地看到,这只是一次迭代的策略评估。然后,我们对行动采取最大措施——这是政策改进。策略改进定义为(对于确定性策略)
在这里,我们分配满足对国家政策的改进. 当我们取最大值时,这基本上就是我们在你的伪线上所做的事情。我们正在评估我们的价值函数,以获得关于所述价值函数的贪婪策略。
如果你继续应用值迭代伪代码中的线,它最终会收敛到最优值函数,因为它最终会满足贝尔曼最优方程。