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

无向图的最长路在同一顶点起止

郑光济
2023-03-14

我有一个问题,我需要找到最长的路径。给出一个揭开的无向图。从一个给定的顶点开始,我需要访问尽可能多的顶点,并在同一个顶点完成,而不是访问每一个顶点超过一次。

我发现的大多数算法都是针对特殊情况的(无环的,有向的等等)。一个想法可以是为每个顶点子集找到哈密顿循环(子集可以通过回溯生成)。但我想一定有更好的算法。

共有1个答案

干鑫鹏
2023-03-14

正如你所发现的,寻找最大圈包括寻找它的子图的哈密顿圈,因此是NP完全的--除非你在研究某些特殊的图类,否则任何解的复杂性都是指数的。

聪明的暴力方法(例如位掩码)是解决这类问题的最佳效率。

 类似资料:
  • 我有一张室内地图上的无向位置图。当给定一组顶点时,我要找到覆盖所有这些顶点的最短路径。图形包含52个顶点和150-250条边。 我能用什么最好的算法来找到最短的路径。请不要混淆这是一个旅行推销员的问题。它不需要覆盖所有节点,只需要覆盖给定的节点集。

  • 我遇到了一个问题,我必须找出给定图形中的最长路径。我有一个边列表(例如,{AB,BC}),它表明在顶点/节点(A,B,C)之间有一条边。现在我想计算出可能的最长路径(不重复顶点),这样它可以覆盖从任何顶点/节点开始的最大节点。 解决这个问题的最佳方法是什么?我必须把它作为一个计划来实施。 我在谷歌上查找最小生成树、Dijkstra的算法等等。但我想不出什么最适合解决这个问题。 任何帮助或阅读参考资

  • 我需要找到图中最长的路径基于边权值。对于图像上的图,它应该是4,5,3,2,1(顺序无关紧要),最好的算法是什么?如果您知道,在您的图中,每个节点都有一个对图中任何其他节点的引用(边)。算法应该改变吗?

  • 我知道Bellman Ford算法使用负权值,但我希望我可以修改我现有的最短路径方法。

  • 在无向赋权图中寻找两个顶点之间的最短路径。还已知权重是小于log(logV)的整数,其中V是顶点的数量。使用贝尔曼-福特或Dijkstra算法很容易解决,但是有没有什么算法可以更快地解决呢? 到目前为止,我一直在考虑使用BFS,将权重大于1的边划分成两个权重为1的边,但如果V是大数,就不是一个好主意。不,这不是我的家庭作业,我只是在想。

  • 给定一些无向边加权图,什么算法可以用来找到从某个顶点v到另一个顶点w的最短路径? 对于有向边加权图,可以使用Dijkstra的最短路径算法,但我使用的是无向图,所以它不起作用。 对于非边加权的图,可以使用广度优先搜索(BFS),但我使用的是边加权图,所以它不起作用。 既然它是无向和边加权的,一般最短路径法是什么?