Algorithm 所有节点的非循环路径

Algorithm 所有节点的非循环路径,algorithm,graph,graph-theory,shortest-path,traveling-salesman,Algorithm,Graph,Graph Theory,Shortest Path,Traveling Salesman,是否有一种算法或一组算法可以让您找到从任意起始节点的最短步行距离,以便在权重无向图中访问每个节点?它不是旅行推销员,因为我不在乎一个节点是否被多次访问。(即使你回到起点也没关系——步行者可以在某个遥远的节点结束,只要它是访问所有节点所需的最后一个节点。)这不是最小生成树,因为可能是A-->B-->C-->A-->D是访问A、B、C的(非唯一)最短路径,我的直觉告诉我这不是一个NP问题,因为它没有使NP问题如此棘手的限制。当然,我可能完全错了。来自维基百科关于: 移除“只访问一次”的条件并不能移除

是否有一种算法或一组算法可以让您找到从任意起始节点的最短步行距离,以便在权重无向图中访问每个节点?它不是旅行推销员,因为我不在乎一个节点是否被多次访问。(即使你回到起点也没关系——步行者可以在某个遥远的节点结束,只要它是访问所有节点所需的最后一个节点。)这不是最小生成树,因为可能是A-->B-->C-->A-->D是访问A、B、C的(非唯一)最短路径,我的直觉告诉我这不是一个NP问题,因为它没有使NP问题如此棘手的限制。当然,我可能完全错了。

来自维基百科关于:

移除“只访问一次”的条件并不能移除NP硬度,因为很容易看出,在平面情况下,存在只访问每个城市一次的最优旅行(否则,通过三角不等式,跳过重复访问的捷径不会增加旅行长度)


不知道在一个问题上加上一个已经被接受的答案是什么礼节

我添加这个答案只是为了不必跳转到另一页,不必处理平面图和三角形不等式,这很简单,可能更容易理解

哈密顿路径问题可以简化为:

假设我们有一个多项式时间算法来解决寻找访问所有顶点的最小权重行走的问题

给定一个图,我们需要确定它的哈密顿路径是否存在,我们只需将它按原样输入到手头的问题算法中,设置边权重=1。如果算法返回的值大于n-1,则原始图中不存在哈密顿路径,否则存在哈密顿路径


所以这个问题是NP难的。

图是否加权?A->B->C->A怎么可能是最短路径?除非你能有负成本,否则A->B->C将总是更短……对不起——是的,图是加权的,无向的。它可以更短的原因是,您可能有A、B、C和D这样的边:AB[3]、BC、AC、BD和AD。在这种情况下,(非唯一的)最佳路径应该是A-->B-->C-->A-->D。这次Wiki至少错了一半。考虑加权图1~2(1)、1~3(1)、1~4(1)、2~3(1000)。如果我们可以访问一个城市不止一次,一个最佳工具将避免花费1000的edge 2->3,因此我们可以执行例如2->1->3->1->4。或者我遗漏了什么?那么,这就回答了这个问题。你的例子不满足“三角形不等式”,这是由“平面情况”的区别所暗示的。而且,我认为它只是展示了一个更窄的情况,在这个情况下,最优解很容易可视化,而不是证明了这个陈述的正确性(因为它不适用于平面TSP并不意味着它不适用于所有TSP)。谢谢——这有助于进一步解释这个问题。