马尔可夫决策过程(三)--值迭代算法

节咱们举例子讲到如何计算马尔可夫的值函数,本章节主要介绍一些常用的算法。

值迭代算法


iSi \in S通过计算

vn+1(i)=maxaA(i){r(i,a)+βjSp(ji,a)vn(j)}v^{n+1}(i)=max_{a \in A(i)}\{r(i,a)+\beta \sum_{j \in S} p(j|i,a)v^{n}(j)\}

如果

vn+1(i)vn(i)<σ(1β)2βv^{n+1}(i)-v^{n}(i)<\frac{\sigma(1-\beta)}{2\beta}

进入下一步,否则n+1

fiarg max{r(i,a)+βjSp(ji,a)vn+1(j)}f_{i} \in arg\ max\{r(i,a)+\beta \sum_{j \in S}p(j|i,a)v^{n+1}(j)\}


上面就是介绍的值函数的迭代方式,和上面举例子一致,下面顺便给出一个定理。

vnv^{n}是通过值迭代函数算法得到的序列,对于值迭代算法的整体收敛情况有如下的结论。

  1. 值迭代算法的一步收敛速度是β\beta
  2. 值迭代算法的平均收敛速度是β\beta
  3. 对于一切n,都有如下的关系vnvbeta<βn1βv1v0|v^{n}-v_{beta}^{*}|<\frac{\beta^{n}}{1-\beta} |v^{1}-v^{0}|

从上面的定理我们能够看出收敛的速度其实是局限与β\beta的,当β=1\beta=1的时候,收敛速度会受到极大的影响,这个是就要引出我们要介绍的另一个算法,分解迭代算法以增加迭代数据。它的核心思路是固定策略f后,将上一篇博客提到的 IβP(f)I-\beta P(f)分解成两部分。这里说一下是上节提到的策略迭代的手法。

IβP(f)=Q(f)R(f)I-\beta P(f)=Q(f)-R(f)

上面的分解称为正规分解,最简单的正规分解是Q(f)=I,R(f)=βP(f)Q(f)=I,R(f)=\beta P(f). 下面这个算法也称为高斯赛尔德值迭代算法


step1, k=1
step2,

vn+1(ik)=maxaA(ik) {r(ik,a)+β[j<k]p(ikik,a)vn+1(ij)+j>kp(ijik,a)vn(ij)}v^{n+1}(i_{k})=max_{a \in A(i_{k})}\ \{r(i_{k},a) + \beta[\sum_{j<k}] p(i_{k}|i_{k},a)v^{n+1}(i_{j})+\sum_{j>k}p(i_{j}|i_{k},a)v^{n}(i_{j})\}

如果k=N, 进入step3, 否则k+=1
step3,

vn+1(i)vn(i)<σ(1β)2βv^{n+1}(i)-v^{n}(i)<\frac{\sigma(1-\beta)}{2\beta}

进入下一步,否则n+1

step4,

fiarg max{r(i,a)+βjSp(ji,a)vn+1(j)}f_{i} \in arg\ max\{r(i,a)+\beta \sum_{j \in S}p(j|i,a)v^{n+1}(j)\}


大家发现没有,后半部分和原来是一模一样的,只是开头的时候,通过k将状态的累积汇报进行了一次拆解。

改进的策略迭代算法

我们知道在求解值函数的过程中,我们是需要求解一个线性方程的,当线性方程未知数范围较大的时候,复杂度是不太能够被接受的,所以移除了咱们下面这种策略,改进的策略迭代算法,重申一下,策略迭代是在上节中讲到的。


step1, 策略迭代

fn+1arg max[r(f)+βP(f)vn]f_{n+1} \in arg\ max[r(f)+\beta P(f) v^{n}]

如果可能就取fn+1=fnf_{n+1}=f_{n}

step2,部分策略迭代,重置k=0,令

μn0=max[r(f),βP(f)vn]\mu_{n}^{0}=max[r(f), \beta P(f) v^{n}]

如果满足μn0vn<σ(1β)2β\mu_{n}^{0}-v^{n}<\frac{\sigma(1-\beta)}{2\beta},就结束,

如果k=mnk=m_{n},重置vn+1=μnmnv^{n+1}=\mu_{n}^{m_{n}},将n+=1, 进入step1,否则使用下面公式计算μnk+1\mu_{n}^{k+1}.

μnk+1==r(fn+1)+βP(fn+1)μnkk+=1\mu_{n}^{k+1=}=r(f_{n+1})+\beta P(f_{n+1}) \mu_{n}^{k} k+=1


马氏决策和线性规划

本节中我们要介绍马氏决策和线性规划的关系,当状态空间N有限的时候,对于所有的fFf \in F满足,

v>r(f)+βP(f)vv>r(f)+\beta P(f) v

那么v就是MDP的值函数上界,所以根据这个定义,咱们就可以建立线性规划方程。

min iS1Nv(i)s.t.v(i)>r(i,a)+βjSp(ji,a)v(j)min\ \sum_{i \in S} \frac{1}{N} v(i) \\ s.t. \\ v(i)>r(i,a)+\beta \sum_{j \in S}p(j|i,a) v(j) \\

约束条件之前咱们已经说过啦,这个目标函数是什么意思呢?它实际想表达的是用1N\frac{1}{N}表示转移到每个状态的概率是相同的。约束条件已经表达了最优化的准则,所以目标函数最小化这个准则下的解就可以啦。我们可以通过对偶问题来看看上面的线性规划。

max iSaA(i)r(i,a)x(i,a)s.t.iSaA(i)[δ(i,j)δp(ji,a)]x(i,a)=1Nmax\ \sum_{i \in S} \sum_{a \in A(i)} r(i,a) x(i,a) \\ s.t. \\ \sum_{i \in S} \sum_{a \in A(i)} [\delta(i,j)-\delta p(j|i,a)]x(i,a)=\frac{1}{N} \\

这里定义δ(i,j)=0,δ(i,i)=1\delta(i,j)=0,\delta(i,i)=1
这是一个标准对偶转化。可以参见下面的转化公式。

image.png

这里我们发现原来序列决策问题其实也能够转化为线性规划问题,似乎都是属于运筹规划的部分,所以解决这个问题的时候,是不是能够更加灵活的解决这样的问题。

Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×