简单来说,马尔可夫链(Markov Chain)是一种数学模型,用来描述一个对象在不同状态之间随机切换的过程。
“未来只取决于现在,而与过去无关。” 这个性质被称为马尔可夫性质(Markov Property)。
比如我们玩大富翁或者飞行棋:
下一步能走到哪里,只取决于当前站在哪个格子,以及骰子掷出了几点。
之前是经过哪些弯弯绕绕才走到这个格子的,对下一步没有任何影响。
这就是马尔可夫链的精髓。
用专业术语说:
在已知“现在”的情况下,“将来”与“过去”是独立的。
一个马尔可夫链通常包含以下要素:
状态(State): 系统可能处于的情况。比如:晴天、雨天;或者网页的某个具体页面。
状态空间(State Space): 所有可能状态的集合。
转移概率(Transition Probability): 从一个状态变成另一个状态的概率。
例如:如果今天是晴天,明天有 70% 概率还是晴天,30% 概率变雨天。这个 70% 和 30% 就是转移概率。
马尔可夫链是概率论中第一个被系统研究的随机过程,现在它被广泛应用于各个领域:
搜索引擎(如 Google 的 PageRank 算法): 把互联网看作一个状态空间,用户随机点击链接的过程就是一个马尔可夫链,用来计算网页的重要性。
自然语言处理: 预测下一个词是什么(虽然现在的 AI 模型更复杂,但早期的 n-gram 模型就是基于此)。
排队论: 银行排队、网络数据包传输,都可以用马尔可夫链来模拟等待时间。
生物信息学: 用于基因序列的分析和预测。
马尔可夫链,可以让复杂的长期预测问题,变得可以通过矩阵计算(转移概率矩阵)来解决,是现代数据科学和算法的基础工具之一。
用矩阵来解马尔可夫链,核心就是把状态转移的关系整理成一个转移概率矩阵,然后通过矩阵乘法来计算未来的状态概率。
这种方法能把复杂的递推关系变得非常直观且系统化。
我们从一个简单的甲乙比赛问题来具体演示一下怎么操作。
在马尔可夫链中,我们把所有状态列出来,然后构建一个矩阵 P,其中元素 Pᵢⱼ表示从状态 j 转移到状态 i 的概率。
注意:有些教材定义为从 i 到 j,这里采用列向量习惯,即状态向量左乘矩阵。
1. 定义状态
状态是“甲比乙多的分数”:
状态 0:比分差 -3(乙赢,吸收态)
状态 1:比分差 -2
状态 2:比分差 -1
状态 3:比分差 0(起始点)
状态 4:比分差 +1
状态 5:比分差 +2
状态 6:比分差 +3(甲赢,吸收态)
2. 构建转移概率矩阵
设每局甲赢概率p = 2/3,乙赢概率q = 1/3。
矩阵 M 的大小是 7 × 7。
代表从状态 j 转移到状态 i 的概率。
吸收态: 一旦进去就出不来。
= 1 (乙赢了,游戏结束)
= 1 (甲赢了,游戏结束)
中间态:
比如在状态 1,比分差-2:
有 p 的概率变成状态 2,比分差-1;
有 q 的概率变成状态 0,比分差-3。
构建出来的矩阵,用数字表示:

求解方法:基本矩阵
对于包含吸收态的马尔可夫链,有一个标准的解法套路。
1. 重排矩阵(可选,便于理解)
通常我们会把吸收态放在前面,矩阵可以写成分块矩阵的形式:

I:单位矩阵(吸收态自己转自己)。
Q:瞬态之间的转移。
R:从瞬态转移到吸收态的概率。
2. 计算基本矩阵
计算 N = (I - Q)⁻¹
这里的 N 叫做基本矩阵。
表示从状态 j 出发,在被吸收之前经过状态 i 的期望次数。
3. 计算吸收概率
最终的吸收概率 B 为:
B = N × R
矩阵 B
表示从第 j 个瞬态出发,最终被第 i 个吸收态吸收的概率。
虽然用矩阵解这个问题,有点“杀鸡用牛刀”,但可以加深理解其间本质。
接下去,我们只关注瞬态(-2, -1, 0, 1, 2)之间的转移,以及它们掉进吸收态(-3 或 +3)的概率。
设 Q 为瞬态之间的转移矩阵(行和列对应 -2, -1, 0, 1, 2):

设 R 为从瞬态掉进吸收态的概率:
第一列(掉进 -3):甲只有从 -2 分,再输一局会掉进去,概率是 q。
第二列(掉进 +3):甲只有从 +2 分,再赢一局会掉进去,概率是 p。

计算步骤
1. 计算 I - Q
2. 求逆矩阵 N = (I - Q)⁻¹
3. 计算 B = N × R
在结果矩阵 B 中,找到对应起始状态的那一行。
-3
, 1/9,甲输的概率。
+3
, 8/9,甲赢的概率。
对于状态很多的复杂问题,比如围棋AI评估胜率、网页排名;用矩阵运算——计算机非常擅长做矩阵乘法,这比解一堆方程要高效得多。




