为什么策略迭代比值迭代快?
Why is Policy Iteration faster than Value Iteration?
我们知道策略迭代直接为我们提供策略,因此速度更快。但是谁能用一些例子解释一下。
策略迭代速度更快的原因是 - 一个策略可以由无限多个值函数表示,因此在策略迭代中,当您从一个策略跳到另一个时..您实际上已经跳过了无限多个值函数函数。
例如:
p1 = [0, 1, 1]
是一个针对 3 个状态和 2 个动作的策略,它在状态 0 时选择动作 0,在状态 1 和 2 时选择动作 1。
现在,让我们考虑两个值函数:
v1 = [[0.9, 0.6], [0.6, 0.8], [0.8, 0.9]]
v2 = [[0.9, 0.6], [0.7, 0.8], [0.6, 0.9]]
在这里,v1 和 v2 都映射到同一个策略,所以当你进行策略迭代时,就好像你不关心这两个是不同的值函数,因为它们映射到同一个策略。因此,当您更新策略时,您实际上已经丢弃了大量这些价值函数,在进行价值迭代时,您可能已经迭代了每个价值函数(在最坏的情况下)。
我们知道策略迭代直接为我们提供策略,因此速度更快。但是谁能用一些例子解释一下。
策略迭代速度更快的原因是 - 一个策略可以由无限多个值函数表示,因此在策略迭代中,当您从一个策略跳到另一个时..您实际上已经跳过了无限多个值函数函数。
例如:
p1 = [0, 1, 1]
是一个针对 3 个状态和 2 个动作的策略,它在状态 0 时选择动作 0,在状态 1 和 2 时选择动作 1。
现在,让我们考虑两个值函数:
v1 = [[0.9, 0.6], [0.6, 0.8], [0.8, 0.9]]
v2 = [[0.9, 0.6], [0.7, 0.8], [0.6, 0.9]]
在这里,v1 和 v2 都映射到同一个策略,所以当你进行策略迭代时,就好像你不关心这两个是不同的值函数,因为它们映射到同一个策略。因此,当您更新策略时,您实际上已经丢弃了大量这些价值函数,在进行价值迭代时,您可能已经迭代了每个价值函数(在最坏的情况下)。