假设有一个游戏,每一步有可能走几条路径,具体取决于骰子的扔出结果。根据结果,可能向前、向后或停留在原地。最终(即使扔无数次),图形将导向最终状态。每个边缘都用概率加权。
如果没有循环的情况下,我可以简单地对每种结果的概率进行求和、乘法并重新归一化,如果我从同一个顶点(单元格)开始。
然而,如果存在循环,则会变得混乱。例如,假设每个边缘的概率相同:
图表从 start0 开始,有50%的概率停止在 end1 或转到 tr2。从 tr2 开始,又有50%的概率停止在 end2 或返回 start0。
我如何计算到达每个终点 end1 和 end2 的总概率?如果我尝试使用像这样的收敛级数: pEnd1=1/2 + 1/2*1/2+1/8+.. ->lim->1。这没有任何意义,因为end2得不到任何概率。很明显我那里有错误。
所以我的问题是,如果我有每个边缘的概率但可以有环路,我该如何计算到达最终节点的概率。
示例1)简单的叉路和一个循环,所有边缘都有50%的可能性。
如果没有循环的情况下,我可以简单地对每种结果的概率进行求和、乘法并重新归一化,如果我从同一个顶点(单元格)开始。
然而,如果存在循环,则会变得混乱。例如,假设每个边缘的概率相同:
start0
/\ ^
/ \ |
end1 tr2
/
end2
图表从 start0 开始,有50%的概率停止在 end1 或转到 tr2。从 tr2 开始,又有50%的概率停止在 end2 或返回 start0。
我如何计算到达每个终点 end1 和 end2 的总概率?如果我尝试使用像这样的收敛级数: pEnd1=1/2 + 1/2*1/2+1/8+.. ->lim->1。这没有任何意义,因为end2得不到任何概率。很明显我那里有错误。
所以我的问题是,如果我有每个边缘的概率但可以有环路,我该如何计算到达最终节点的概率。
示例1)简单的叉路和一个循环,所有边缘都有50%的可能性。
start0-> p=50% ->end1
start0-> p=50% ->tr1
tr2-> p=50% ->start0
tr2-> p=50% ->end2
示例 2)更多的循环
start0-> p=1/3 ->e1
start0-> p=1/3 ->tr1
start0-> p=1/3 ->start0
tr1-> p=1/3 ->tr2
tr1-> p=2/3 ->start0
tr2-> p=7/9 ->start0
tr2-> p=2/9 ->end2
示例3) - 退化测试用例 - 由于所有路径都以 e1 结束 - 因此它最终应该具有100%的概率。
start0-> p=1/3 ->e1
start0-> p=2/3 ->tr1
tr1-> p=3/4 ->start0
tr2-> p=1/4 ->e1