注意:这几乎与此问题相同:Shortest path to visit all nodes
但我有完整的图表。
问题:考虑具有非负边长的完整无向图。问题:计算访问每个节点至少一次的最短路径。
注意: 这不是TSP问题。路径没有结束节点,路径可以多次通过节点。
其他说明:
节点数量很少(小于20)。
答案 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)来解决它。