大规模邻域搜索(Large NeighborhoodSearch 简称LNS)算法,LNS实质上是通过交替使用destroy和repair两个方法逐步改善初始解。本文使用贪婪法和随机法构造初始解,用LNS算法解决TSP问题。
破坏算子(destroy)
破坏解的方法主要有随机移除、最差移除、相似移除等。其中,随机移除删除当前解决方案中的任意节点;最差移除删除当前解决方案中距离较长的路段。先破坏再修复,这一步得到破坏后的解和移除的节点列表。
修复算子(repair)
修复解的方法主要有随机插入、贪婪插入等。其中,随机插入将移除的节点逐个插入到破坏后解的任意位置;贪婪插入将移除的节点插到距离成本最小,即插入后总路径最短的位置中。
1、贪婪法构造初始解
2、随机法构造初始解
在上述实验中我发现:
1、有时候用贪婪法构造初始解容易陷入局部最优,随机法更容易达到最优路径
2、如果在破坏解时,选择多个节点进行移除操作算法收敛更快,并且也可以达到最优
欢迎大家交流!