【问题标题】:Shortest Path to Cover All nodes in a graph given a starting and ending node给定起始节点和结束节点,覆盖图中所有节点的最短路径
【发布时间】:2025-12-20 13:40:17
【问题描述】:

我正在尝试解决一个问题,其中存在一个带有正加权边的无向图,并且我需要在给定开始和结束节点的情况下找到覆盖所有节点的最短路径。此外,图是完整的(每个节点都连接到图中的所有其他节点)。 我试图寻找一种可以解决这个问题的算法,但我还没有找到一个可以解决这个问题的算法。由于起点和终点节点的限制,这不完全是旅行商问题。我将不胜感激。

【问题讨论】:

  • google旅行商问题
  • 我已经这样做了,但我还没有找到可以计算出我的问题的良好近似值的算法。旅行推销员就是要找到一条回到起点的路径。我不想回到起点,路径必须在终点结束。
  • 旅行推销员在 NP 学习。工作由你来完成。
  • 给定图完整,求解 TSP 并删除一条边。
  • @stark 你打算如何让它在给定的结束顶点结束?

标签: algorithm graph path graph-algorithm shortest-path


【解决方案1】:

如果您从节点 S 开始并在 T 结束,请将具有零权重边的虚拟节点 D 添加到仅 ST。在此图上找到一个最佳旅行商旅行,然后从旅行中删除虚拟节点以获得您的路径。

如果您想保留图形的完整性属性,您可以通过将具有零权重边的虚拟节点添加到 ST 来实现上述操作,并且将边添加到权重大于的所有其他节点图中n 最重边的权重之和。出于实际目的,这意味着将它们的权重设置为 Integer.Max 或类似的值。

【讨论】: