如何解决旅行推销员问题的起点和终点?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何解决旅行推销员问题的起点和终点?相关的知识,希望对你有一定的参考价值。

我有一个求解器可以解决正常的对称TSP问题。解决方案意味着通过所有节点的最短路径,而不限制哪个节点是路径中的第一个节点和最后一个节点。

有没有办法转换问题,以便确保特定节点作为起始节点,另一个节点作为终端节点?

一种方法是将I - 一个非常大的距离 - 添加到这些起始/结束节点和所有其他节点之间的所有距离(在起始节点和结束节点之间的距离上加两倍),因此解算器很想仅访问它们一次(从而使它们成为路径的起点和终点)。

这种方法有什么大的缺点,还是有更好的方法来做到这一点?

答案

您可以添加一个虚拟节点,该节点连接到具有权重0的边的起始和结束节点。由于TSP必须包含虚拟节点,因此最终结果必须包含序列start - dummy node - end(没有其他方法可以到达虚节点)。因此,您可以使用指定的起始和结束节点获得最短的Hamilton路径。即使图中的边缘为负,此解决方案也应该有效。

以上是关于如何解决旅行推销员问题的起点和终点?的主要内容,如果未能解决你的问题,请参考以下文章

如何解决这样一个多起点多终点的最短路径问题?

旅行推销员/车辆路线用例的最佳实现

回溯法解旅行商问题(TSP)

R语言旅行推销员问题TSP

优化旅行推销员算法(时间旅行者算法)

禁忌搜索 理解与c++实现 解决旅行商问题