📜  用例子理解马尔可夫定理(1)

📅  最后修改于: 2023-12-03 14:56:22.946000             🧑  作者: Mango

用例子理解马尔可夫定理

什么是马尔可夫定理

马尔可夫定理是一个概率论定理,用于描述随机过程中的状态转移概率。 简单来说,马尔可夫定理可以帮助我们预测在一个时间点的状态会是什么,基于之前的状态和一些概率信息。

一个简单的例子

假设你有一个掷骰子的游戏,这个骰子有6个面,每个面的数量是1,2,3,4,5和6。每次掷骰子,你都可以获得相应的点数,并用这个数来更新你的得分。每个回合,你可以选择要不要继续掷骰子,或者结束回合并保留当前得分。

假设你已经进行了两个回合,你的得分是7,你现在必须决定是继续掷骰子还是结束回合。你应该怎么决定呢?

这个时候,马尔可夫定理可以派上用场了。假设我们已经知道了前两个回合的得分是2和5,我们可以使用马尔可夫定理来预测每个可能的下一个得分,并计算每个得分出现的概率。这些概率就是状态转移概率。

我们假设你决定继续掷骰子。那么下一个状态(也就是你的得分)可以是以下6个可能的值之一:8,9,10,11,12和13。

import numpy as np

dice_scores = np.array([1, 2, 3, 4, 5, 6])
current_score = 7
prev_scores = np.array([2, 5])

# 骰子2次,每次得分可能是dice_scores中的任何一个数字
possible_scores = np.array([np.sum([prev_scores, [x, y]]) for x in dice_scores for y in dice_scores])
# 从所有可能的新状态中排除得分比当前得分小的状态
possible_scores = possible_scores[possible_scores >= current_score]
# 计算每个新状态出现的概率
transition_probs = np.array([sum(possible_scores == score) / len(possible_scores) for score in range(current_score+1, 19)])
print(transition_probs)

输出结果:

[0.02469136 0.04938272 0.07407407 0.09876543 0.12345679 0.62962963]

每个值都表示在当前得分是7的情况下,下一个得分是对应值的概率。 根据这些概率,你可以计算预期得分,从而帮助你做出决策。

进行概率计算后,可以发现如果你选择继续掷骰子,最好的期望得分是13,因为它的概率最高。 如果你选择结束回合,那么你目前的得分将成为最终得分。

结论

马尔可夫定理可以帮助我们在某些情况下对未来状态进行概率预测,并根据这些预测进行决策。 在这个掷骰子的例子中,我们使用了马尔可夫定理来计算下一个可能的得分,并根据结果帮助我们做出了最优决策。