如何将TSP变成最小的哈密尔顿路径?

时间:2012-11-05 07:42:44

标签: traveling-salesman

我正在尝试解决此问题http://coj.uci.cu/24h/problem.xhtml?abb=1368

经过大量的研究,并花了很多时间,我能够为TSP实现一个分支定界算法,它获得了一条通过所有点并返回开始的路径。

我在想从那条路径中移除最长的边缘我会得到答案,但就在我完成算法时,我发现在所有情况下都不是这样,阅读这个问题:Minimal Distance Hamiltonian Path Javascript < / p>

我找到了一些答案,说添加一个距离为零的虚拟点到其他每个点,然后删除它解决了问题,但我不知道具体情况。我已经添加了那个虚拟点,现在而不是得到26.01现在它的答案是16.23。我还没有删除虚拟点,因为我不明白“添加虚拟点的全部意义”。

你可以指导我解决这个问题吗?或者采用另一种方法而不是TSP更好?

1 个答案:

答案 0 :(得分:1)

虚拟点允许您在两端之间以任意大的距离进行连接。在TSP中,两端也必须彼此非常靠近,以便最小化总距离。在您的路径问题中,此要求不存在,因此TSP最优对于对您的问题无效的约束是主观的,因此可能不是您的路径问题的最佳要求。

如果你引入一个虚拟点(或者把它想象成一个快捷方式,一个虫洞)你的两端可能会相隔很远而不影响你的距离。