马尔可夫链是一种描述系统在不同状态之间逐步转移的模型,例如晴天和雨天。它的核心规则是:如果这对你要建模的系统来说是合理假设,那么下一步只依赖当前状态。

这些一步转移概率会汇总到一个转移矩阵中。如果过程当前处于状态 ii,下一步以概率 PijP_{ij} 转移到状态 jj,那么

P=(Pij)P = (P_{ij})

对于有限马尔可夫链,PP 的每一行之和都等于 11,因为过程必须转移到某个允许的下一状态。

马尔可夫性质是什么意思

其形式化表达是

P(Xn+1=jXn=i,Xn1,,X0)=P(Xn+1=jXn=i)P(X_{n+1} = j \mid X_n = i, X_{n-1}, \ldots, X_0) = P(X_{n+1} = j \mid X_n = i)

这表示,一旦你知道当前状态 Xn=iX_n = i,在这个模型中,更早的历史就不会改变下一步的概率。

这个条件很重要。有些真实系统具有记忆性、趋势或滞后效应,因此只有当“知道当前状态就足够了”是一个合理近似时,马尔可夫链才是合适的模型。

如何读取转移矩阵

假设一个简单的天气模型有两个状态:

  • 晴天
  • 雨天

使用下面这个转移矩阵:

P=[0.80.20.40.6]P = \begin{bmatrix} 0.8 & 0.2 \\ 0.4 & 0.6 \end{bmatrix}

把每一行看作当前状态,把每一列看作下一状态。

因此,如果今天是晴天,模型表示明天是晴天的概率为 0.80.8,是雨天的概率为 0.20.2。如果今天是雨天,明天是晴天的概率为 0.40.4,是雨天的概率为 0.60.6

例题:两天后的天气

假设今天的分布是

v0=[10]\mathbf{v}_0 = \begin{bmatrix} 1 & 0 \end{bmatrix}

这表示模型以概率 11 从晴天开始。

明天的分布是

v1=v0P=[10][0.80.20.40.6]=[0.80.2]\mathbf{v}_1 = \mathbf{v}_0 P = \begin{bmatrix} 1 & 0 \end{bmatrix} \begin{bmatrix} 0.8 & 0.2 \\ 0.4 & 0.6 \end{bmatrix} = \begin{bmatrix} 0.8 & 0.2 \end{bmatrix}

所以经过一步后,模型给出晴天的概率为 80%80\%,雨天的概率为 20%20\%

再经过一步,

v2=v1P=[0.80.2][0.80.20.40.6]=[0.720.28]\mathbf{v}_2 = \mathbf{v}_1 P = \begin{bmatrix} 0.8 & 0.2 \end{bmatrix} \begin{bmatrix} 0.8 & 0.2 \\ 0.4 & 0.6 \end{bmatrix} = \begin{bmatrix} 0.72 & 0.28 \end{bmatrix}

现在晴天的概率是 0.720.72,雨天的概率是 0.280.28

重点不只是计算过程。这个矩阵会一步一步更新整个概率分布,这正是马尔可夫链对重复过程很有用的原因。

马尔可夫链用在哪里

当一个系统按阶段变化,而你想知道下一步会发生什么的概率时,马尔可夫链就很有用。

常见例子包括天气模型、棋盘游戏中的移动、排队模型,以及简化的网页浏览行为。在每种情况下,只有当状态划分合理且转移概率足够真实时,这个模型才有帮助。

马尔可夫链中的常见错误

把任何随机过程都当成马尔可夫过程

一个过程不会因为是随机的就自动成为马尔可夫链。要成立,你定义的状态必须使得下一步行为确实由当前状态决定。

忘记行表示什么

人们经常把行和列弄混。你需要使用一致的约定。在本页中,行表示当前状态,列表示下一状态。

使用无效概率

每个元素都必须在 0011 之间,而且对于有限马尔可夫链的标准转移矩阵,每一行之和必须等于 11

以为模型会预测唯一确定的未来

马尔可夫链通常给出的是概率,而不是确定结果。即使某个状态更可能出现,下一步仍然可能有多个状态。

长期行为取决于链本身

有些马尔可夫链会逐渐趋于一个稳定的长期分布,通常称为平稳分布。但这并不会在所有链中发生,具体情况取决于链的性质,例如状态之间如何连通,以及转移模式是否具有周期性。

因此,把反复乘以 PP 看作研究长期行为的一种方法是可以的,但在没有检查条件之前,不应直接假设它一定收敛。

什么时候马尔可夫链是好模型

当以下几点大体成立时,可以使用马尔可夫链:

  • 这个过程可以用一组规模适中的状态来描述。
  • 时间按离散步推进,或者你选择这样建模。
  • 下一步的概率能够由当前状态有意义地决定。

如果这些条件不满足,这个模型仍可能是一个粗略近似,但你应该明确说明这一点。

试着自己做一个版本

建立一个三状态模型,例如低需求、中需求和高需求。选择每行和都为 11 的概率,选定一个初始分布,然后用 vn+1=vnP\mathbf{v}_{n+1} = \mathbf{v}_n P 计算下一步。如果你想继续,可以再更新一次,看看这个分布是否开始趋于某种模式。

需要解题帮助?

上传你的问题,几秒钟内获得经过验证的分步解答。

打开 GPAI Solver →