用马尔科夫链求首达时的一种方法--意料之外,情理之中

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/LucyGill/article/details/79370014

一. 定义

马尔科夫链:已知若干种状态,从当前状态转移到下一状态的概率,只取决于当前和上一步的状态,与其他状态无关。

首达时:从某状态i出发,首次到达状态j时经历的时间。

二. 假设条件

已知共有k个状态(0,1,...,K-1),状态转移矩阵M(k*k),求从某状态i出发,首次到达状态K的时间向量v=(v0,v1,...vk-1)。这里假设是离散时间马尔科夫链,

三. 问题求解

求解公式如下:

v=r+M'v

其中,r是大小为(k,1)的,元素除最后一位为0外全为1的矩阵(即(1,1,...,1,0)),M'是矩阵M将最后一行置0,v是一个向量,其对应第i位的数表示从状态i出发,第一次到达状态K的时间。

公式中,r、M'已知,v未知。所以可通过它求出“首达时向量”v。

那么,为什么能列出这个公式呢?下面来详细解释一下。

考虑v的第一个元素v0,其物理意义是从状态0出发,到达状态K的时间(即经过的

步数)。再考虑等式右边。M'v是一个大小为(k,1)的向量。下面考察其第一个元素。

设状态转移矩阵M的第一行元素为(p00,p01,...p0k-1),那么M'v的第一个元素为:

p00*v0+p01*v1+...+p0k-1*vk-1 其中每一项的含义是,从状态0出发,经一步到达某状态(0,1,...,k),

然后从某状态首次到达状态K的概率。每一项相加,就是从状态0出发,走一步后,平均又

经过多少步到达状态K。所以,上述式子加一,就是从状态0出发,首次到达状态K时平均

走的步数。这与左边对应项v0的含义相同,故等式成立。

那么,为什么要将M的最后一行和r的最后一个元素置0呢?因为vk的含义是从状态K

出发,首次到达状态K的步数。在这种情况下,首达时定义为0,因为其初始状态已经是

目标状态了。将M和r的最后一行置0,就是为了使vk=0.


以上。

猜你喜欢

转载自blog.csdn.net/LucyGill/article/details/79370014
今日推荐