循环效用的最优策略是如何计算的?

How is the optimal policy for recurrent utilities calculated?

Exam Solutions

我正在学习马尔可夫决策过程,对于考试的第6题(见上文link),我了解在一个动作后获得相同状态时如何计算效用(part a of问题 6)。

J*(cool) = 4 + 0.9 * J*(cool)

但是我不知道如何计算其他状态和动作(问题 6 的 b 部分)。我假设方程式是这样的:

对于状态 "cool" 中的操作 "fast":

J*(cool) = 10 + 0.9 * (0.25 * J*(cool) + 0.75 * J*(warm))

对于状态 "warm" 中的操作 "slow":

J*(warm) = 4 + 0.9 * (0.5 * J*(cool) + 0.5 * J*(warm))

对于状态 "warm" 中的操作 "fast":

J*(warm) = 10 + 0.9 * (0.875 * J*(warm) + 0.125 * J*(off))

但是我们在这些方程中没有一个变量,我们没有这些状态的效用?我们如何获得与每个动作相关的预期效用值?

你在这些方程式的正确轨道上。你只需要依次考虑四种可能的策略:(慢,慢),(快,慢),(慢,快),(快,快)。

考虑(慢,快)

从 a) 你已经看到 J*(cool) = 40。

J*(warm) = 10 + 0.9 * (0.875 * J*(warm) + 0.125 * J*(off))
J*(warm) = 10 + 0.9 * (0.875 * J*(warm) + 0.125 * 0)
J*(warm) = 47.06

对于(慢,慢)

同样,J*(cool) 与您在温暖状态下的动作无关,因此 J*(cool) = 40。

J*(warm) = 4 + 0.9 * (0.5 * J*(cool) + 0.5 * J*(warm))
J*(warm) = 4 + 0.9 * (0.5 * 40 + 0.5 * J*(warm))
J*(warm) = 40

对于(快,快)

这次处于温暖状态的值与冷却动作无关,从上面看是 J*(warm) = 47.06。

J*(cool) = 10 + 0.9 * (0.25 * J*(cool) + 0.75 * J*(warm))
J*(cool) = 10 + 0.9 * (0.25 * J*(cool) + 0.75 * 47.06)
J*(cool) = 53.89

最后(快,慢)

这是最难的情况,但我们有两个方程和两个未知数,因此我们可以使用联立方程求解。

J*(cool) = 10 + 0.9 * (0.25 * J*(cool) + 0.75 * J*(warm))
J*(warm) = 4 + 0.9 * (0.5 * J*(cool) + 0.5 * J*(warm))

J*(warm) = (4 + 0.45 * J*(cool))/0.55

J*(cool) = 10 + 0.9 * (0.25 * J*(cool) + 0.75 * (4 + 0.45 * J*(cool))/0.55)
J*(cool) = 66.94
J*(warm) = 62.04

正如我们所见,如果我们在暖状态下启动,可以获得的最高值为 62.04。从 cool 开始的最高值为 66.94。当我们的政策是(快,慢)时,这两种情况都会发生,即冷快,热慢,因此这是最优政策。

事实证明,如果你从状态 A 开始,不可能有一个最优的策略,但如果你从状态 B 开始,则不可能有一个最优的策略。还值得注意的是,对于这些类型的无限时间范围 MDP ,可以证明最优策略永远是平稳的,即如果在第1时刻在冷态下采取慢动作是最优的,那么所有时间都采取慢动作是最优的。

最后,在实践中,状态和动作的数量比这个问题中的要多得多,并且通常需要更高级的技术,例如值迭代、策略迭代或动态规划。