马尔科夫链上吸收问题的期望和概率
前言
本来是游戏王中的概率问题系列文章的一部分,不过事无巨细的把所有理论全写出来篇幅太大了,所以干脆单独抽出来(顺便扩充一下)。
本文主要是以简单的一维随机游走作为例子,讨论一下怎么计算马尔可夫链上击中目标状态所需步数的期望,以及各个目标状态的吸收概率。复杂一些的案例请查看前述的文章中关于MD天梯和BoK连胜问题的计算。
问题表述
马尔科夫链
首先啥是马尔科夫链/马尔科夫过程呢?简而言之,可以理解为在一个状态机上发生的随机过程,并且状态转移概率只与当前在哪个状态有关,而与之前是从哪里来到这个状态无关。
我们记全部状态的集合为S,称之为状态空间。状态空间S可以是无限的,但一般要求是可数的。由转移概率的历史无关性,我们可以把所有状态的转移概率写成一个转移概率矩阵P=(pij:i,j∈S),其中,pij表示从状态i转移到状态j的概率。
再给定一个在状态空间上的分布向量λ=(λi:i∈S)作为初始分布,那么任意时刻t=k的新分布由λ(k)=λPk不难计算。
注:实际问题中,初始分布往往是one-hot向量
由初始分布λ和转移概率矩阵P我们就定义了一个马尔科夫过程 Markov(λ,P)。
以下两个定义也等价地定义了Markov(λ,P):
定义1
对任意的n≥0和i0,⋯,in+1∈S,
- P(X0=i0)=λi0
- P(Xn+1=in+1∣X1=i1,⋯,Xn=in)=P(Xn+1=in+1∣Xn=in)=pinin+1
定义2
对任意的n≥0和i0,⋯,in∈S,
P(X0=i0,X1=i1,⋯,Xn=in)=λi0pi0i1⋯pin−1in
吸收概率和平均吸收时间
很多时候,我们感兴趣的是到达某些状态就停止的情形。比如累计足够多的胜场升段,赌徒亏光了本金,模拟到达稳态等等。
一般来说,有两个方面需要考虑:
- 到达目标状态所用的平均转移次数,即平均吸收时间
- 到达目标状态的概率,即吸收概率
严格来讲,目标状态不一定是吸收态,不过这里为了方便还是用“吸收”这个词了
我们定义目标状态集合A⊂S,那么TA=inf{n≥0:Xn∈A}是第一次到达A中状态的时刻。
用后文的定义,TA也是马尔科夫过程的一个停时。
为了方便,我们把关于初始状态的条件概率和条件期望分别记为:
Pi(∼)=P(∼∣X0=i)Ei(∼)=E(∼∣X0=i)
从状态i出发,能够到达A的概率为
Pi=Pi(TA<∞)
从状态i出发,到达A所需要的步数期望为
Ei=Ei(TA)=n<∞∑nPi(TA=n)+∞Pi(TA=∞)
例:带边界的一维随机游走
案例
粒子从x=0处出发。每次有p的概率向右移动1个单位,有q=1−p的概率向左移动1个单位。
若粒子到达x=−L或者x=R时就停止(L,R≥0),求平均吸收时间和被x=R吸收的概率。
平均吸收时间
状态空间S=[−L,R]∩Z,目标状态集合ψ={−L,R}. 对于任意i∈/ψ,有
Ei=Ei(Tψ)=qEi(Tψ∣X1=i−1)+pEi(Tψ∣X1=i+1)=q(1+Ei−1(Tψ))+p(1+Ei+1(Tψ))=1+qEi−1+pEi+1
而显然有E−L=ER=0,于是
{E−L=ER=0,Ei=1+qEi−1+pEi+1,i={−L+1,⋯,R−1}
为了求解这个方程组,我们可以把它看成一个二阶线性递推数列:第二行是递推关系,第一行则是边界条件。
首先需要消去多余的常数项,凑成齐次线性递推的形式:
① p=q
Ei+p−qi=q[Ei−1+p−qi−1]+p[Ei+1+p−qi+1]
其特征方程为px2−x+q=0,两个特征根分别为x1=1和x2=pq,于是
Ei+p−qi=λ1(pq)i+λ2
代入边界条件
⎩⎨⎧λ1(pq)−L+λ2=−p−qLλ1(pq)R+λ2=p−qR
解得
⎩⎨⎧λ1λ2=−p−qL+R⋅pL+R−qL+RqLpR=p−q1⋅pL+R−qL+RLqL+R+RpL+R
所以
Ei=(p−q)(pL+R−qL+R)(L+R)pL+R[1−(pq)i+L]−p−qi+L
② p=q
Ei+i2=21[Ei−1+(i−1)2]+21[Ei+1+(i+1)2]
类似地,特征方程为(x−1)2=0,方程有重根x=1,进而
Ei+i2=ai+b
代入边界条件,不难解得
Ei=−i2+(R−L)i+RL
综上所述,我们有
Ei=⎩⎨⎧−i2+(R−L)i+RL,(p−q)(pL+R−qL+R)(L+R)pL+R[1−(pq)i+L]−p−qi+L,p=qp=q
所以x=0处的平均吸收时间是
E0=⎩⎨⎧RL,(p−q)(pL+R−qL+R)LqL+R+RpL+R−(L+R)qLpR,p=qp=q
思考
在p→q时,是否有(p−q)(pL+R−qL+R)LqL+R+RpL+R−(L+R)qLpR→RL呢?
吸收概率
状态空间S=[−L,R]∩Z,目标状态集合φ={R}. 对于任意i∈/φ即i=R,有
Pi=Pi(Tφ<∞)=pPi(Tφ<∞∣X1=i+1)+qPi(Tφ<∞∣X1=i−1)=pPi+1(Tφ<∞)+qPi−1(Tφ<∞)=pPi+1+qPi−1
而显然P−L=0以及PR=1,因此
⎩⎨⎧P−L=0,PR=1,Pi=pPi+1+qPi−1,i={−L+1,⋯,R−1}
同样地,我们将上述方程组作为递推数列求解,特征方程和之前算期望时是一样的,而且已经是齐次的了,计算并不困难(留做习题):
Pi=⎩⎨⎧L+Ri+L,pL+R−qL+RpL+R−qLpR(pq)i,p=qp=q
而从x=0处出发,被x=R吸收的概率则是
P0=⎩⎨⎧L+RL,pL+R−qL+RpL+R−qLpR,p=qp=q
思考:Pi(Tφ<∞)和Ei(Tψ)的存在性
上述计算很好地得出了结果,但有个不很严密的地方:推导方程组的过程只说明了如果存在Pi(Tφ<∞)或者Ei(Tψ),那么应该满足给定的方程,并没有说明待计算的Pi(Tφ<∞)=k=0∑∞Pi(Tφ=k)和Ei(Tψ)=k=0∑∞kPi(Tψ=k)的存在性。
该如何证明这两者的存在性呢?
- 提示:考虑(px+xq)n的展开式系数
- 在我们有了鞅这一工具后可以给出一个简明的证明
- 下一节我们会讨论一般情况下解的存在性
一般马尔科夫过程
我们很容易把上述在一维随机游走上使用的方法推广到一般的马尔可夫链上。得到下列两个定理:
定理一
若线性方程组
{Ei=0,Ei=1+∑j∈/ApijEj,i∈Ai∈/A(1)
有非负解,那么各状态到达A所需步数的期望E=(Ei:i∈S)是上述线性方程组的最小非负解。
定理二
若线性方程组
{Pi=1,Pi=∑j∈SpijPj,i∈Ai∈/A(2)
有非负解,那么各状态到达A的概率P=(Pi:i∈S)是上述线性方程组的最小非负解。
最小非负解
这里关于最小非负解x=(xi:i∈S)的定义是:
- 对任意i∈S,有xi≥0
- 设y=(yi:i∈S)也是一个解,那么对任意i∈S,有xi≤yi
方程组推导
如果Ei和Pi均存在,那么仿照之前的思路,不难推导出(1)式和(2)式:
(1):i∈A时显然Ei=0,而i∈/A时则有
Ei=Ei(TA)=j∈S∑Ei(TA∣X1=j)Pi(X1=j)=j∈S∑[1+Ej(TA)]Pi(X1=j)=j∈S∑Pi(X1=j)+j∈S∑pijEj=1+j∈/A∑pijEj
(2):i∈A时显然Pi=0,而i∈/A时则有
Pi=Pi(TA<∞)=j∈S∑Pi(TA<∞,X1=j)=j∈S∑Pi(TA<∞∣X1=j)Pi(X1=j)=j∈S∑Pj(TA<∞)Pi(X1=j)=j∈S∑pijPj
唯一的问题是如何证明Ei和Pi的存在性。
存在性证明
为证明存在性,我们的思路是利用方程组的解构造Pi和Ei的一个上界,进而借助单调有界收敛定理得到Pi和Ei存在且有界。
期望
设x=(xi:i∈S)是(1)的一个非负解。
对于任意i∈A,易见xi=0=Ei(TA)
对于任意i∈/A,我们有
xi=1+j∈/A∑pijxj=1+j∈/A∑pij1+k∈/A∑pjkxk=1+j∈/A∑pij+j∈/A∑k∈/A∑pijpjkxk=Pi(TA≥1)+Pi(TA≥2)+j∈/A∑k∈/A∑pijpjkxk
重复把xis展开的操作,我们可以得到
xi=Pi(TA≥1)+⋯Pi(TA≥n)+j1∈/A∑⋯jn∈/A∑pij1pj1j2⋯pjn−1jnxjn
由于x=(xi:i∈S)的各个分量均非负,因此对任意的n,均有
xi≥Pi(TA≥1)+⋯Pi(TA≥n)
令n→∞,即有
xi≥j=1∑∞Pi(TA≥j)=j=1∑∞k=j∑∞Pi(TA=k)=w=1∑∞wPi(TA=w)=Ei(TA)=Ei
论证过程中的无穷级数都是正项级数,因此均绝对收敛,可以任意换序。
因为对任意的非负解xi,都有Ei≤xi,而E=(Ei:i∈S)是(1)的解,所以E也是(1)的最小非负解。
概率
若(2)有非负解,设其中有一组解为x=(xi:i∈S),那么对i∈A,有xi=1=Pi;对i∈/A,有
xi=j∈S∑pijxj=j∈A∑pij+j∈/A∑pijxj=j∈A∑pij+j∈/A∑pijk∈A∑pjk+k∈/A∑pjkxk=j∈A∑pij+j∈/A∑k∈A∑pijpjk+j∈/A∑k∈/A∑pijpjkxk=Pi(X1∈A)+Pi(X1∈/A,X2∈A)+j∈/A∑k∈/A∑pijpjkxk
重复展开xis,我们有
xi=≥=Pi(X1∈A)+⋯+Pi(X1,⋯,Xn−1∈/A,Xn∈A)+j1∈/A∑⋯jn∈/A∑pij1pj1j2⋯pjn−1jnxjnPi(X1∈A)+⋯+Pi(X1,⋯,Xn−1∈/A,Xn∈A)Pi(TA=1)+⋯+Pi(TA=n)=Pi(TA≤n)
所以我们有
xi≥n→∞limPi(TA≤n)=Pi(TA<∞)=Pi
因此P=(Pi:i∈S)存在且有限,并且是(2)的最小非负解。
Off Topic: 马尔科夫链上的势能
平均吸收时间和吸收概率都是马尔科夫链上势函数的特殊情况。一般地,设∂D=A,D=S∖A,势函数ϕ是满足以下线性方程组的函数:
{ϕ=Pϕ+c,ϕ=f,in Din ∂D
其中c=(ci:i∈D)和f=(fi:i∈∂D)为非负函数(分别为内部cost和边界cost)。
我们能够证明:只要Pi(T∂<∞)=1对任意i∈S成立,那么上述方程组至多有1个有界解。
对我们讨论的平均吸收时间(f=0,c=1)和吸收概率(f=1,c=0)而言,方程组有解自动保证了Pi(T∂<∞)=1成立(思考:为什么?),进而由上述结论可知解得的是唯一解。
鞅与停时定理
求解(1)和(2)这两个方程组有时候并不容易。从更高的观点,我们引入鞅可以简化一些复杂的计算。
定义
定义3. 鞅
对于随机过程{Xn}和{Mn}。如果满足:
- Mn可积,即E∣Mn∣<∞
- Mn是Fn上的适应过程,即Mn只与X0,⋯,Xn有关
- 对任意n∈N,E(Mn+1∣Fn)=Mn
则称{Mn}是一个关于{Xn}的鞅。
其中条件3也可以等价地写成E(Mn+1−Mn∣Fn)=0,如果将等号改为大于等于/小于等于,那么过程{Mn}就称为上鞅/下鞅。
上鞅和下鞅的定义也有反过来的,可能是因为和函数凹凸性相关,于是和凹函数/凸函数一样成了笔糊涂账。Anyway,这里我们只用鞅,并不涉及上鞅与下鞅。
Fn是所谓的filteration,即只与X0,⋯,Xn有关的事件集。这里可以简单地认为E(Mn+1∣Fn)是E(Mn+1∣X0=i0,⋯,Xn=in),∀i0,⋯,in的简写。
按照定义容易得知,
E(Mn)=E(E(Mn+1∣Fn))=E(Mn+1)
于是由归纳法,对任意有限的n,我们有
E(Mn)=E(M0)
直观地来讲,如果一个随机过程它每一步的期望都保持恒定不变,是一个平稳的过程,那么就称它为鞅。
若T是{Mn}的一个停时,记T∧n=min{T,n},那么显然有
E(MT∧n)=E(M0)
停时定理所讨论的是:在什么情况下有E(MT)=E(M0)成立?
定理3. 停时定理(Optional Stopping Theorem)
{Mn}是关于{Xn}的鞅,T是{Mn}的一个停时,那么以下均为E(MT)=E(M0)的充分条件:
- 存在K<∞,使得P(T≤K)=1
- E(T)<∞,并且E(∣Mn+1−Mn∣)≤K<∞
- P(T<∞)=1,并且MT∧n≤K<∞
NOTE
OST的成立条件其实就是在问MT∧n是否一致可积,也就是能否交换积分和极限的顺序。如果答案是肯定的,那么显然就有
E(M0)=n→∞limE(MT∧n)=E(n→∞limMT∧n)=E(MT)
一般马尔科夫链上的鞅
为了使用停时定理,我们首先得需要一个鞅。然而{Xn}在一般情况下并不是鞅,所以我们得自己构造一个。在马尔科夫链上构造鞅需要一些技巧,但还是有一般规律可循的。
设待构造的鞅为Mn=f(n,Xn),那么按照马尔科夫链和鞅的性质,应当有
f(n,i)=E(Mn∣Xn=i)=E(Mn+1∣Xn=i)=j∈S∑pijf(n+1,j)=(Pf)(n,i)
由此,我们有如下定理:
定理4. (马尔科夫链上的鞅)
设{Xn}是状态转移矩阵为P的马尔科夫链,如果函数f:S×N→R满足:
- E(∣f(n,Xn)∣)<∞
- (Pf)(n,i)=∑j∈Spijf(n+1,j)=f(n,i)
那么Mn=f(n,Xn)是鞅。
接下来,我们将从鞅的观点重新发现定理1和定理2,并且给出势能函数这一工具。
平均吸收时间的势能函数
我们首先考虑一个简单的例子:f(n,i)=n+φ(i),其中φ:S→R。假设停时定理的条件满足,那么我们有
φ(i)=f(0,i)=Ei(f(0,X0))=Ei(f(T,XT))=Ei(T+φ(XT))=Ei(T)+Ei(φ(XT))
于是停时的期望可以表示为
Ei=Ei(T)=φ(i)−Ei(φ(XT))=φ(i)−j∈∂D∑Pi(j)φ(j)
其中Pi(j)表示从状态i出发,最终被状态j吸收的概率。从上面的式子来看,φ可以理解为一种势,而Ei就是当前状态i到全体吸收状态的势差。
在一些OI的资料里面,φ被称为势能函数,这很形象。一般意义的势能函数在前一节最后的Off Topic中已经提到过了。
另一方面由定理4,我们有
n+φ(i)=f(n,i)=j∈S∑pijf(n+1,j)=j∈S∑pij(n+1+φ(j))=n+1+j∈S∑pijφ(j)
于是我们有
φ(i)=1+j∈S∑pijφ(j)
由于φ实质上是任意的,如果令各个吸收态的势为0,就有Ei=φ(i),这样我们就重新得到了定理1. 但由上述推理过程我们可以发现,如果我们知道如何求解Pi(j),我们可以任意重新选择边界上的φ值,从而简化Ei的计算(类似重新选定零势能面)。
吸收概率的势能函数
吸收概率的势能函数更简单些,我们考虑鞅ψ:S→R,那么应用停时定理,我们有
ψ(i)=Ei(ψ(X0))=Ei(ψ(XT))=j∈∂D∑Pi(j)ψ(j)
另一方面由定理4,不难得到
ψ(i)=j∈S∑pijψ(j)
进而重新得到了定理2.
ψ是一个在D上调和的势能函数,它由边界的值唯一确定。
随机游走:Revision
我们回到之前的随机游走问题,看看怎么用停时定理来计算吸收概率和平均吸收时间。
先来考虑吸收概率的势ψ(Xn)(它也是个鞅):
ψ(i)=p⋅ψ(i+1)+q⋅ψ(i−1)
熟悉的二阶线性递推数列又出现了,由于势能的初值无关性,为了便于计算,不妨取ψ(0)=0,并使剩下一个参数为1. 于是
ψ(i)=1−(pq)i
ψ(i)有界,而显然P(T<∞)=1(思考:为什么?),因此满足停时定理的条件。
按照停时定理,我们有
ψ(i)=Piψ(R)+(1−Pi)ψ(−L)
从而得到
Pi=ψ(R)−ψ(−L)ψ(i)−ψ(−L)=(pq)−L−(pq)R(pq)−L−(pq)i=pL+R−qL+RpL+R−pRqL(pq)i
这样就算出了吸收概率。
思考:这里假定了p=q,如果p=q那么计算又该如何进行呢?
此时取ψ(i)=i即可
而对于平均吸收时间E(T),我们考虑对应的势能φ(i),按照前一节的推导,我们有
φ(i)=1+pφ(i+1)+qφ(i−1)
这也是我们熟悉的递推关系式,因为没有初值要求,可以怎么简单怎么来:
φ(i)=⎩⎨⎧−p−qi,−i2,p=qp=q
由于φ有界,且P(T<∞)=1,因此满足停时定理的条件。所以我们有势差公式:
Ei(T)=φ(i)−j∈∂D∑Pi(j)φ(j)=⎩⎨⎧−p−qi+p−qRPi+p−q−L(1−Pi),−i2+PiR2+(1−Pi)(−L)2,p=qp=q=⎩⎨⎧(p−q)(pL+R−qL+R)(L+R)pL+R[1−(pq)i+L]−p−qi+L,−i2+(R−L)i+RL,p=qp=q
关于存在性
借助鞅并不难说明E(T)<∞以及P(T<∞)=1.
首先若P(T<∞)=1−ε<1,即P(T=∞)=ε>0,那么E(T)≥∞⋅P(T=∞)=∞. 因此只要证明了E(T)<∞,就可用反证法推出P(T<∞)=1。
我们知道G(n,Xn)=n+φ(Xn)是鞅,对任意有限的k,我们考虑有界停时T∧k. 应用停时定理,我们有
Ei(T∧k)=φ(i)−Ei(φ(XT∧k))≤∣φ(i)∣+∣Ei(φ(XT∧k))∣≤∣φ(i)∣+max{∣φ(−L)∣,∣φ(R)∣}≤2max{∣φ(−L)∣,∣φ(R)∣}=M<∞
而Ei(T∧k)随k单调递增,从而由单调收敛定理知Ei(T∧k)↑Ei(T)≤M<∞