问题标签 [bellman-ford]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
algorithm - Yen 对 Bellman-Ford 算法的修改是否适用于 DAG?
Bellman-Ford 算法对于解决单源最短路径问题很有用,并且在第 k 次迭代时,它具有一个独特而有趣的特性,即每个顶点的 k-hops 最优性,这是我的应用程序所必需的。(基本上,我想要一对顶点之间最多 k 跳的最短路径)
由于 J. Yen,Bellman-Ford有两个众所周知的改进,据说可以将复杂度从 O(|V|^3) 降低到 O(|V|^3 /4)。常数因子等于 1/4(每次改进的因子为 1/2)。
然而,似乎至少有一个修改对有向无环图 (DAG) 没有用,因为 Yen 的方法本质上依赖于将图划分为两个 DAG,然后改变两个 DAG 之间的迭代,从而获得1/2 的系数。这是对的吗?
同样,如果您能说出 Bellman-Ford 是否有任何其他改进/替代方案可以找到 k-hop 最佳最短路径,将不胜感激?
java - 贝尔曼福特检测最短长度的负循环
解决 UVA 的这个套利问题http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=40但我坚持找到最短长度的负循环(这里的长度是顶点数)。这是我成功检测到负循环的代码
algorithm - 基于队列的 Bellman-Ford 算法
我试图了解这个算法是如何工作的。
给定一个问题来搜索从源 s 到图中所有顶点的路径,
我认为我必须按照以下方式进行:
我的问题是:
我的程序是好的还是我必须改变它。
我什么时候必须检查是否存在负循环?谢谢
algorithm - 贝尔曼福特可以在一次迭代中完成吗?
每个图是否都有边的顺序,以便在根据该顺序运行 Bellman-Ford 算法的单次迭代后,每个顶点都标有到源的最短路径?
我很确定答案是肯定的,但是我想不出一种能够找到边缘顺序的算法,谢谢=]
c++ - 使用贝尔曼福特算法对无向图的成本矩阵进行距离矢量路由
我正在尝试使用贝尔曼福特算法为有向图实现距离矢量算法。我的输入是描述与其他节点相邻的节点权重的初始矩阵。为了计算节点之间的最短路径,我还需要计算矩阵变化的迭代次数。如何计算迭代后矩阵将为所有节点提供最短路径?节点的样本初始矩阵如下,我们将图视为
这里 999 被认为是无穷大,因为节点不是直接连接的。
java - 贝尔曼福特随机产生错误的结果
我正在尝试从 CLRS 实现贝尔曼福特算法,它似乎随机溢出距离度量。我的代码如下:
代码的输入是:
我随机得到的正确答案是:
B 2 C 4 D 7 E -2
否则我得到:
B -2147483636 C -2147483634 D -2147483631 E -2147483640
知道为什么会这样吗?
algorithm - 对 Dijkstra、Bellman Ford 和拓扑最短路径算法的限制?
有什么确切的限制/条件能够在图形上使用这 3 种 SPT 算法中的任何一种来计算最短路径?
algorithm - 贝尔曼福特算法
我知道 Bellman-Ford 算法最多需要 |V| - 如果图形不包含负权重循环,则进行 1 次迭代以找到最短路径。有没有办法修改 Bellman-Ford 算法,使其在 1 次迭代中找到最短路径?
algorithm - 像 Bellman-Ford 这样的算法,仅适用于多起点、单目的地?
存在诸如 Bellman-Ford 算法和 Dijkstra 算法之类的算法来找到从图上的单个起始顶点到每个其他顶点的最短路径。但是,在我正在编写的程序中,起始顶点的变化比目标顶点的变化要频繁得多。有什么算法可以反过来 - 即给定一个目标顶点,从每个起始顶点找到最短路径?
algorithm - Bellman-Ford 算法和步数
假设有一个有向图,100-Vertexes
例如V_1---> V_2 ---> ... ---> V_100
所有边的权重都是 1。我们想使用Bellman-Ford
算法找到顶点 1(V_1)
到其他顶点之间的最短路径。该算法在每个步骤中以任意顺序检查所有边缘。如果一步V_1
中所有其他顶点之间的最短路径not changed
(来自先前的值),则算法将停止!the number of steps in this algorithms
depends on the order of inspecting edges
.
这个算法的最大和最小步数是多少?
谁能描述我为什么选择选项(2)来回答这个问题?