解析概率图中的循环引用

时间:2014-09-29 23:30:43

标签: algorithm circular-reference

(道歉,如果标题不准确/有用,我不确定还有什么可以称之为......欢迎提示......)

假设我的游戏包含多个状态 S 1 S 2 < / sub> S 3 ,...以及将您从一个州转移到另一个州的投币其他一些州。还有一个州 W ,您获胜,州 L 。游戏始终以状态 S 1 开始。赢得这样的游戏的概率 P win S 1 )的概率是多少

举个例子,让我们对游戏采取以下规则:

  • S 1 :Heads带您进入 S 2 ,tails带您进入 S 3
  • S 2 :Heads带您进入 S 3 ,tails带您进入 L
  • S 3 :Heads带您进入 L ,尾巴带给您 W

现在,如果我需要弄清楚赢得比赛的总体机会是什么(给定公平的投币),我可以简单地从底部开始:

  • P win S 3 )= 0.5 * 0%+ 0.5 * 100%= 50%
  • P win S 2 )= 0.5 * P win S 3 )+ 0.5 * 0%= 25%
  • P win S 1 )= 0.5 * P win S 2 )+ 0.5 * P win < / sub> S 3 )= 37.5%

例如,当我用这个替换最后一条规则时,问题出现了:

  • S 3 :Heads将您带回 S 1 ,tails带您进入 W

注意,这是如何创建一个循环引用,其中 P win S 3 )取决于 P win S 1 ),反之亦然。

我正在寻找一种解决 P win 的算法( S 1 )用于任意数量的状态的任何可能的规则集以及具有多于2个边的“硬币”(即每个状态转换为几个可能的后续状态中的随机选择,包括立即循环-背部)。我甚至可能面临“硬币”不公平的情况,即过渡到下一个州的可能性并不完全相同。

我想我记得这个问题可以通过矩阵方程来解决,但是我甚至不确定该怎么称呼这个问题来做一个真正的谷歌搜索答案...我甚至不知道什么标签选择。 :)

任何指针都会非常感激。

鉴于所有值都是概率为1的概率,我感觉这个问题应始终有一个唯一的解决方案。这是对的吗?

1 个答案:

答案 0 :(得分:2)

您正在描述马尔可夫链模型。您需要设置状态转移矩阵P,然后在每个状态中花费的长时间比例π服从关系πP=π。如果我没记错的话,当你有吸收状态如“赢”或“输”时,π应该收敛于所有其他状态的零和这两个吸收状态的输赢概率。