访问完整有向图中所有节点的最短路径

时间:2017-08-01 17:54:06

标签: algorithm graph-theory traveling-salesman

注意:这几乎与此问题相同:Shortest path to visit all nodes

但我有完整的图表。

问题:考虑具有非负边长的完整无向图。问题:计算访问每个节点至少一次的最短路径。

注意: 这不是TSP问题。路径没有结束节点,路径可以多次通过节点。

其他说明:

节点数量很少(小于20)。

2 个答案:

答案 0 :(得分:5)

问题仍然是NP完全(对于决策变体),从Hamiltonian Path Problem减少。

鉴于哈密尔顿路径问题实例G=(V,E),请使用G'=(V, E', w)和路径长度|V| - 1将其减少为您的问题。

其中:

E' = VxV
w(u,v) = 1  if (u,v) is in E
w(u,v) = 2  otherwise
  • 如果G中有哈密尔顿路径,则G'中的路径费用为|V| - 1。
  • 如果G'中的路径费用为|V| - 1,那么按照G中的这些边缘,我们会获得汉密尔顿主义广告。

因此,上面是从哈密顿路径问题到这个TSP变量的多项式简化,并且由于哈密顿路径问题是NP-Hard,所以这个问题也是如此。

答案 1 :(得分:3)

权利要求

允许重新访问节点不会使问题变得更加容易。

说明

假设我们希望在图G中找到Hamiltonian path。我们可以通过将G的边缘的边权重设置为1,将边缘权重设置为10来将其转换为问题的实例-G。

我们现在有一个带有非负边的完整图H。

当且仅当我们发现H中的最短路径长度为n-1时,图G才具有哈密顿路径。

建议

因此,您修改的问题是NP难的,因此您似乎不可能只是简单地采用标准TSP技术(例如Held-Karp algorithm)来解决它。