转载:http://www.bfcat.com/index.php/2012/04/rw_markov/

这几天在看一些使用到了随机游走的相关文献,整理一下常用的公式和性质
随机游走(random walk)矩阵可以看做是马尔科夫链的一种特例。对于一个图G的邻接矩阵A来说,A中的非零元素描述了图G中每一条边的权重(这里一般要求A的对角线为零)。这个权重描述了节点之间的相似性。如果我们对A进行按行归一化,即
P=D−1A,
D是A的度矩阵,是一个对角阵,对角线元素
D(i,i)=∑jA(i,j)
。这样的到的矩阵P就是一个随机游走矩阵。每个点与其他所有节点的跳转概率之和为1,
∑jP(i,j)=1.
一个随机游走矩阵对应的是一个遍历的马尔科夫链,也就是说任意两个状态之间都可以互相到达。从任意状态
at
出发,经过一步转移,下一时刻的概率为
at+1=atP.
这样一直进行下去,经过一定时间可以到达稳态(equilibirum state)。所谓稳态,就是说状态的概率分布不再进行变化:
πP=π.
这里
π
就是稳态。仔细观察这个方程,可以看出稳态实际上就是随机游走矩阵特征值1所对应的特征向量。另外一个计算稳态的方法是
π=D(i,i)/∑i∑jA(i,j).
马尔科夫链的基础矩阵定义为
Z=(I−P−W)−1.
其中I是一个单位阵,P为对应的随机游走矩阵,W是将稳态按行堆叠形成的矩阵。对于一个正规的马尔科夫链(即P的任何次方都没有负值的元素),W可以看做
Pn
中n趋于无穷大的情况。通过基础矩阵,我们可以计算马尔科夫链的很多特性。其中主要包括了各种访问时间:
1. 从状态i出发返回状态i的时间期望:
EiT+i=1/πi
2. 从状态i出发,回到状态i之前,访问状态j的次数期望:
EiVj(T+i)=πj/πi
3. 从状态i出发,到达状态j的时间期望:
EiTj=EiT+i⋅(Zj,j−Zi,j)
4. 从状态j出发,到达状态i之前,访问状态j的次数期望
(i≠j)
:
EiVj(Tj)=πj(EjTi+EiTj)
5. 从状态i出发,到达状态l之前,访问状态j的次数期望
(i≠l)
:
EiVj(Tl)=πj(EiTl+ElTj−EiTj)
6. 从稳态出发,到达状态i的时间期望:
EπTi=EiT+i⋅Zi,j
7. 从稳态出发,到达状态i之前,访问状态j的次数:
EπVj(Ti)=EiT+iEjT+jZi,i−Zi,j
下面给出三个定理
1. 对状态
i≠j
,
Pi(Tj<T+j)=1πi(EiTj+EjTi)
2. 对状态
i≠l,j≠l
,
Pi(Tj<Tl)=EiTl+ElTj−EiTjEjTl+ElTj
3. 对任意状态i,
∑jEiTjEjT+j=∑jZj,j,
和i无关。
注:上述标记中,上标的加号代表不计算初始时间,也就是如果从状态i出发经过n步回到状态i,那么