有限状态马尔可夫链前n步至少访问状态Xk一次的概率计算方法咨询
马尔可夫链前n步至少访问指定状态的概率计算方法
你提到的概率是有精确计算方法的,不用只依赖模拟,具体思路如下:
补集转换:先计算前n步从未访问过状态Xk的概率,再用1减去这个值,就是你要的至少访问一次的概率。这个转换能简化问题,因为计算“从未访问”的概率更容易建模。
吸收态转移矩阵法:
- 把目标状态Xk设为吸收态——也就是一旦进入Xk,后续所有步骤都停留在Xk。修改原马尔可夫链的转移矩阵P,得到新矩阵P':P'的第k行只有P'[k][k] = 1,其余元素为0;其他行保持原转移概率不变。
- 构造初始状态向量v0:如果初始状态X0是第i个状态,那么v0的第i位为1,其余为0。
- 计算v0与
(P')^n的乘积,得到n步后的状态分布向量,其中对应Xk的位置的数值,就是前n步至少访问一次Xk的概率(因为一旦到达Xk就会被吸收,这个值直接反映了所有能在n步内到达Xk的路径概率之和)。
递推公式法:
- 定义两个变量:
- a_t:第t步时处于非Xk状态,且前t步从未访问过Xk的概率
- b_t:前t步至少访问过一次Xk的概率(即我们最终要求的结果)
- 初始条件:
- 若X0就是Xk,则b_0 = 1,a_0 = 0
- 若X0不是Xk,则b_0 = 0,a_0 = 1
- 递推关系:
- b_t = b_{t-1} + a_{t-1} * S,其中S是所有非Xk状态转移到Xk的概率之和(对每个非k状态i,累加P[i][k])
- a_t = a_{t-1} * T,其中T是所有非Xk状态之间互相转移的总概率(即从任意非k状态i转移到其他非k状态j的概率之和)
- 迭代计算到t=n时,b_n就是所求概率。
- 定义两个变量:
如果n很大,矩阵快速幂可以高效计算(P')^n,避免直接迭代n次的低效问题。
内容的提问来源于stack exchange,提问作者user25510587
相关产品推荐
相关产品推荐

