旅行销售员问题 (TSP) 指出:“给定一个点列表和每对点之间的距离,访问每个点一次并在起点结束的最短路径是什么?
这是图论和计算机科学中的一个著名问题,因为没有已知的有效解决方案。下个单元,我们将正式确定“高效”解决方案的含义。现在,我们将努力通过两种启发式方法来解决这个问题。启发式是精确解决方案的近似值,它使用快捷方式使计算速度更快,但不能保证最佳答案。
这两种启发式算法都是贪婪算法。它们之所以被称为贪婪算法,是因为在算法的每一步,它们都会做出一个当下看起来最优的选择,但不能向前看,也不能保证整体的最佳解决方案。
必需:我们将实现的第一个贪婪算法(最近邻)将从任何起点 P1 开始。然后,它将选择最靠近 P1 的点作为路线中的下一个点。我们称这一点为P2。然后,它将选择最靠近 P2 但尚未添加到路径中的点作为下一个点。此操作将一直持续到所有点都添加到路径中。
可选扩展:您还可以选择实现最近的插入启发式。最近的插入将从任意两个点开