我在学习马尔可夫决策过程,对于考试的第6题(见上方附件链接),我理解了当采取某个动作后得到相同状态时的效用计算方法(问题6的a部分)。
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))
但这些方程中没有单一变量,我们也没有这些状态的效用值?我们如何得到与每个动作相关的预期效用值?
回答:
你的方程思路是正确的。你只需要依次考虑四种可能的策略:(slow, slow), (fast, slow), (slow, fast), (fast, fast)。
考虑(slow, fast):
从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
对于(slow, slow):
J*(cool)不受在warm状态下采取的动作影响,所以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
对于(fast, fast):
这次在warm状态下的值不受cool动作的影响,是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
最后是(fast, slow):
这是最难的情况,但我们有两个方程和两个未知数,所以可以使用联立方程求解。
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.55J*(cool) = 10 + 0.9 * (0.25 * J*(cool) + 0.75 * (4 + 0.45 * J*(cool))/0.55)J*(cool) = 66.94J*(warm) = 62.04
我们可以看到,如果从warm状态开始,可以获得的最高值是62.04。从cool状态开始的最高值是66.94。这两种情况都发生在我们的策略是(fast, slow)时,即在cool状态下采取fast动作,在warm状态下采取slow动作,因此这是最优策略。
事实证明,不可能存在一种策略,在状态A开始时是最优的,但在状态B开始时不是最优的。还值得注意的是,对于这类无限时间范围的马尔可夫决策过程,可以证明最优策略总是静态的,即如果在时间1在cool状态下采取slow动作是最优的,那么在所有时间都采取slow动作都是最优的。
最后,在实际操作中,状态和动作的数量远大于本题中的情况,通常需要使用更高级的技术,如值迭代、策略迭代或动态规划。