0

在编写 bellman-ford 算法时,我遇到了一个问题,这个问题更多的是理论而不是技术,但这里是:

我有 4 个点 A、B、C、D,从 A 到 B 的成本等于 3 等。这是图表:

B--3--C
|     |
3     9
|     |
A--1--D

假设我想知道从 A 到 C 通过 D 的成本是多少,会是:10?或者它会从 A 到 D(成本为 1)然后从 D 回到 A(总成本为 1+1=2)然后从 A 到 B(1+1+3=5)和从 B 到 C( 1+1+3+3=8) 所以8不会10

我到处搜索,但找不到任何合理的答案。

编辑:
假设对于 A->D 和 D->C 路径计数将为 2,对于 A->D 然后 D->A 然后 A->B 然后 B->C 总路径计数等于 4 所以它会选择路径数最短的方式(路径数 = 2)还是较长的方式(路径数 = 4)?

4

2 回答 2

2

对于via问题,我不会使用单向算法;我会叫它两次。首先,对于A -> D,然后对于D -> C,因为这实际上是问题所在;那么,最终路径是这两者的总和。

注意:我不熟悉 Bellman-Ford 算法;这个答案只是关于寻路的一般性评论。

于 2012-09-17T12:06:24.443 回答
0

如果没有负权循环,那么每条最短路径最多访问每个顶点一次。

于 2012-09-17T12:10:03.073 回答