马尔可夫决策过程(MDP)的精确求解方法
在马尔可夫决策过程(MDP)的求解中,有多种精确求解方法,下面将详细介绍异步值迭代、线性规划公式以及具有二次奖励的线性系统等方法。
1. 异步值迭代
标准值迭代在每次迭代中会更新值函数 $U_k$ 中的每个条目以得到 $U_{k+1}$,这使得计算量较大。而异步值迭代每次迭代仅更新部分状态。只要每个状态都被更新无限次,异步值迭代就一定能收敛到最优值函数。
高斯 - 赛德尔值迭代(Gauss - Seidel value iteration)是一种常见的异步值迭代方法。它按一定顺序遍历状态,并就地应用贝尔曼更新:
[U(s) \leftarrow \max_{a} \left{ R(s, a) + \gamma \sum_{s’} T(s’ | s, a)U(s’) \right}]
这种方法的计算优势在于每次迭代无需在内存中构建第二个值函数。根据所选的状态顺序,高斯 - 赛德尔值迭代可能比标准值迭代收敛得更快。在某些问题中,状态包含一个时间索引,若从最后一个时间索引开始应用高斯 - 赛德尔值迭代并逆向工作,此过程有时被称为反向归纳值迭代。
以下是高斯 - 赛德尔值迭代的代码实现:
struct GaussSeidelValueIteration
k_max # maximum number of iterations
end
function solve(M::GaussSeidelValueIteration, 𝒫::MDP)
U = [0.0 for s in 𝒫.𝒮]
for k =
超级会员免费看
订阅专栏 解锁全文
3450

被折叠的 条评论
为什么被折叠?



