可能重复:
Graph Algorithm To Find All Connections Between Two Arbitrary Vertices
我有一个有向图,我可以使用什么算法来查找2个特定顶点之间的不同非循环路径的数量,并计算在这些不同路径中使用任何路径的最大次数? 如果它们访问不同数量的顶点或以不同的顺序访问顶点,则两条路径是不同的。
答案 0 :(得分:5)
如果您遵循稍微修改过的Dijkstra算法,则可以使用全对解决方案。
解释:从u
到v
的路径是以下内容的总和:
u
到v
的路径未通过w
w
的路径=从u
到w
次的路径数从w
到{{1}的路径数} 使用零初始化矩阵,除非有v
到i
的边(即1)。
然后,以下算法将为您提供结果(all-pair-path-count)
j
毋庸置疑: for i = 1 to n:
for j = 1 to n:
for k = 1 to n:
paths[i][i] += paths[i][k] * paths[k][j]
渴望阅读单对解决方案。 :)