从您对大卫答案的评论以及图表的权重来看,在我看来,权重是从一个节点移动到另一个节点的概率(或从一个节点移动到另一个节点的单位的百分比,无论数学是相同)。如果是这样,则可以将其建模为马尔可夫链,更具体地说,可以将其建模为吸收马尔可夫链。但首先,我们需要添加两条路径以符合正式定义:
e -> e | 1.0
f -> f | 1.0
我不确定您是否需要针对多个类似于此的图形的通用算法,或者这是您需要解决的唯一图形。我将概述此特定图表所涉及的数学,并希望您可以在需要时将其推广到算法中。
算法相当繁琐,请按照吸收马尔可夫链环进行。
首先,我们需要邻接矩阵,在处理马尔可夫链时更常称为状态转移矩阵:
| a b c d | e f
--+-----------------------+------------
a | 0 0.5 0.5 0 | 0 0
b | 0 0 0 1 | 0 0
c | 0 0 0 0 | 1 0
d | 0.25 0 0 0 | 0 0.75
--+-----------------------+------------
e | 0 0 0 0 | 1 0
f | 0 0 0 0 | 0 1
矩阵的左上部分是瞬态(非结束)状态(由Q表示)之间的转换,右下部分是吸收状态。右上角将由R表示。
基本矩阵,计算为N = ( I - Q ) -1。而吸收概率(即给定无限时间,将最终处于每个吸收状态的百分比)为B = NR。使用我最好的 ASCII 矩阵,该图的数字是:
+- -+ +- -+
| 8 4 4 4 | | 4 3 |
| 2 8 1 8 | | 1 6 |
N = (1/7)| 0 0 7 0 | B = (1/7)| 7 0 |
| 2 1 1 8 | | 1 6 |
+- -+ +- -+
读取B矩阵的顶行,从状态 a 开始,有 4/7(大约 0.5714)的机会进入状态 e,有 3/7(大约 0.4286)的机会进入状态 f . 您可以忽略其他三行,因为它们是从状态 b、c 和 d 开始时的概率。
因此,如果您想要一个等效图,其中结束状态 e 和 f 的最终机会相同,但没有循环,您可以删除 d -> a 路径,并使用以下权重:
a -> b | 0.4286
a -> c | 0.5714