编程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)的方式?

#1楼 票数:2 已采纳

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

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

#2楼 票数:0

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

  ask by takeit translate from so

未解决问题?本站智能推荐:

2回复

如何根据最小道路上的最大拱门数量停止Bellman-Ford算法

令 G = (V, E) 是一个不包含负电路的有向加权图。 如何修改福特贝尔曼算法,使其在 while 循环的 m + 1 次迭代后停止。 m是最小路径中的最大弧数(根据权重而不是道路中的拱数确定的最小道路)
1回复

在具有两个负边的图形中找到从给定节点s到V中所有节点的最短路径距离

我对此有一个后续问题: 在包含最多两个负边的图形中查找最短路径距离 Ranveer的解决方案看起来不错,但是它不够快,因为我需要O(| E | + | V | * log | V |)快速算法。 我猜Dukeling的解决方案效果很好。 这很有意义,并且可以在Dijkstra算法的相同
1回复

使用Bellman-Ford或NetworkFlow查找最大数量的不同路径?

我们有一个有向图(无权重)G(V,E),具有两个顶点s和t ,使得s入度和t出度等于0 。 我们想要找到从s到t最大边缘路径数量。 通过使用哪种算法,我们可以做到这一点。 Bellman-Ford,Dijkestra,Huffman和Network Flow。 我认为霍夫曼是如此无关紧要
1回复

为什么在BellmanFord算法中需要(节点号-1)迭代来找到最短路径?

图片:4次迭代,其中(a)是原始图形。 (b),(c),(d),(e)对应于每次迭代后的结果。 “算法第三章简介”的示例 嗨,我不了解该算法的几个方面。 我希望有人可以帮忙。 以下是我的问题。 就我而言,在每次迭代中,所有边都放松。 我希望所有节点在第一次迭代中都更新距离。
2回复

基于队列的Bellman-Ford算法

我试图了解这个算法是如何工作的。 给出一个问题来搜索从源s到图中所有顶点的路径, 我想我必须按照以下步骤进行: 我的问题是: 我的诉讼是好还是我必须改变它。 当我必须检查是否有负循环? 谢谢
1回复

具有负周期的BellmanFord算法

因此,如果我尝试使用Bellman Ford算法使用此方法查找最短路径,以测试是否存在路径: 如果我有一个负周期,那么该算法会发生什么? 它仍然返回true,因为我知道Dijkstra的算法不适用于负循环,但是福特呢?
4回复

贝尔曼福特算法可以有任何边缘的任意顺序吗?

我刚刚开始学习新的算法,但是当我在极客上读极客的贝尔曼福特算法时我陷入困境: - http://www.geeksforgeeks.org/dynamic-programming-set-23-bellman-ford-algorithm/ 在那里写的是 - 该算法以自下而上的方式计
1回复

删除边后对最短路径的影响

提供了有向图的输入,我使用异步和同步Bellman-Ford算法都找到了到特定节点“ T”的最短路径。 我试图找出删除某些边缘后对最短路径的影响。 在我的方法中,我尝试将已删除边的起始节点上的距离标记为无穷大,并尝试应用异步Bellman-Ford,但是我被困在了这一点,因为其他节点将不会更