gpt4 book ai didi

algorithm - 使用 Floyd-Warshall 算法计算 2 个顶点之间的路径数

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:31:11 25 4
gpt4 key购买 nike

给定一个有向的未加权无环图,我正在尝试采用 Floyd-Warshall 算法来计算 2 个顶点之间的路径数。我的代码目前看起来像这样:

对于 1 到 n 中的所有 k 对于 1 到 n 中的所有 i 对于 1 到 n 中的所有 j Aij = Aij + ( Aik * Akij)。

因此,我没有检查和替换最小距离,而是执行以下操作:

(i,j) 之间没有k 的路径计数 + ( 从ik * k * j )

路径数

我的最终数组,应该有任意 2 个顶点之间的路径数。

我无法证明这不会给我两个顶点之间的简单路径的计数,但没有建议在其他地方使用这种方法。

有人可以提供失败的反例吗?

PS:这不是我的作业,只是我捡到的一个编程练习。

最佳答案

在无向无权无环图中,任意两个顶点之间至多有 1 条路径。如果有更多不同的路径,它们将创建一个循环。 (问题被编辑后不相关)

对于有向图,我没有发现您的算法有问题。 this paper中实际上提到了改进的Floyd-Warshall算法的用法。 .它未被广泛使用的原因可能是它的复杂性 - O(n3) 与 this simple approach 的 O(m+n) 相比

关于algorithm - 使用 Floyd-Warshall 算法计算 2 个顶点之间的路径数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10232306/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com