当我选择选项 1 和 3(-6,无穷大),(-7,无穷大)并应用 Bellman-Ford 算法进行最短路径计算时,计算在第 n 步之后没有显示任何负循环选项(我可能是错的)。因此,“X”的值应至少为“-7”以避免任何负循环是否有效?
为了确定贝尔曼-福特算法是否可以在不遇到负循环的情况下使用,我们必须查看
x
的值,这些值不会造成循环周围的权重总和为负的情况。只要源顶点不存在可到达的负权重循环,贝尔曼-福特算法就能够处理具有负权重的图。
根据图像中的图表,我们可以分析周期,看看
x
如何影响每个周期的总重量:
以下是我们需要检查的潜在周期:
我们将检查这些循环,看看它们的总权重是否会因涉及
x
的边权重而变为负值。
为了不存在负循环,所有循环权重必须是非负的,这给了我们:
x + 14 ≥ 0
x + 21 ≥ 0
x + 12 ≥ 0
其中最受限制的是
x + 12 ≥ 0
,这意味着x ≥ -12
。因此,对于大于或等于 -12
的 x 值,Bellman-Ford 算法不会遇到任何负环,可用于查找最短路径。
根据您的选择,范围
(-6, ∞)
和 (-7, ∞)
都是 [-12, ∞)
的子集,这意味着它们都是 x
的有效范围,其中可以使用 Bellman-Ford 算法而不会遇到负循环。如果 x
应至少为 -7
以避免负循环,这是“不正确的”,因为根据循环分析,x
应至少为 -12
以避免负循环。