当前位置: 首页 > 知识库问答 >
问题:

如何找到经过特定源节点的最负权重循环的路径?

干浩然
2023-03-14

我试图找到图G中最负循环的路径,它从指定的源节点S开始和结束。

我研究了Bellman-Ford算法(以下称为“Huang算法”)的应用/扩展,该算法描述了如何找到从指定节点可到达的负循环。然而,这并不能确保从S开始的“全周期”-

以下是我目前对此主题的研究:

在Bellman-Ford算法的第n次迭代中,如果一条边可以松弛,则该图包含一个负循环。使用Huang算法,我可以通过前置字典追溯负循环的路径,直到顶点重复。当一个顶点重复时,我停止在前一个顶点上迭代,现在有了负循环的路径。但是,源顶点通常不在此路径中。我相信这有时也不是最负权重的路径。

我想找出S是其中最负循环的一部分。(这可以包括具有由黄算法检测的子周期的周期)

共有1个答案

锺离飞飙
2023-03-14

根据你的定义,你所问的可能是NP完全。如果你拿一个没有权重的图,给每个边赋予权重-1,那么你想要选择的任何节点上的最负的圈,如果该圈是哈密顿路径,那么它将具有最负的可能值,因此你有一种方法可以找到哈密顿路径是否存在,这解决了一个NP完全问题。(这假设循环不能多次使用同一顶点,但如果使用可以重复顶点的定义,则可能允许无限长的路径不断循环)。

 类似资料:
  • 我在看威廉姆·菲斯特的关于贝尔曼·福特算法的视频。 他提到有一种方法可以区分负循环中涉及的节点和10:20时从负循环中可到达的节点。在单源最短路径算法中,这两类节点会导致负inf距离。 我想知道如何做到这一点,但我想不通。我谷歌了一下,但谷歌总是让我了解贝尔曼-福特算法的介绍。 简言之,是否有一种方法来区分负循环中的节点和从负循环中可到达的节点?那么,仅仅通过修改贝尔曼-福特算法就可以得到什么呢?

  • 这是我的算法。 我做了一个。每次当我找到时,我都知道我得到了一个有向循环。 然后我将暂时沿着向后(直到我在循环中遍历所有顶点),并计算。 我的算法正确吗? 如果我的算法正确,时间复杂度是多少? 这个问题有没有更好的算法?

  • 我目前正在研究一个在有向图中寻找由选定节点组成的圈的问题。 对于这里描述的实例: 在节点1,2,3内有一个循环,在1,2,4内没有发现循环。我已经尝试用下面的操作来实现算法: null 但是,这个实现并不适用来自我正在使用的在线判断的所有测试数据。我发现我的算法不同于深度优先搜索,深度优先搜索使用白、灰、黑数组来存储未访问、正在访问或不需要访问的节点,我想知道这是否是导致问题的原因。 希望在您的帮

  • 我有一个有圈的有向图。所有边都是加权的,权重可以是负值。可能会有负循环。

  • 我有一个由最小生成树表示的边加权无向图。每个垂直由一个整数表示。MST如下所示: 我想知道,如何使用这个MST来找到从顶点x到顶点y的最短路径?假设我想找到从0到3的最短路径。很容易看到路径是0-2,2-3,总权重为0.26 0.17=0.43。但是我应该如何构造一个通用的方法来实现这一点?在伪码中

  • 假设我们有一个带权的图,它是有向的和循环的。每个节点都有一条指向其他节点的边。没有将节点连接到自身的边。 现在我们有一个源节点和一个目标节点。我必须从源节点开始,精确地遍历n条边,最后到达目标节点。其中n是某个任意正整数(可能大于图中的节点数)。 当我们遍历一条边时,我们将它添加到我们的总和中(边权重都是正的)。现在我们到达目标节点的路径可以有循环。我们如何最大化我们的总和?