课题名称:基于改进的大规模邻域搜索算法LNS求解TSP问题
版本时间:2024-04-01
程序运行:直接运行LNS_TSP.m 文件即可
代码获取方式:
QQ:491052175
VX:Matlab_Lover
模型介绍:
第一步:设定参数;
第二步:初始化种群的粒子(个体),每个粒子的维度等于城市数量,对于n个城市的TSP问题,能够得到的解就是对1~n的一个排列,其中每个数字为对应城市的编号,如对10个城市的TSP问题,则 1|10|2|4|5|6|8|7|9|3就是一个合法的解,采用产生随机排列的方法产生一个初始解S
第三步:破坏解
第四步:修复解
第五步:对比修复解与当前解和全局解的大小,决定是否需要更新
第六步:判断是否满足终止条件,如果没有满足则继续从第四步开始循环迭代,如果满足则停止迭代。
如何改进:
这里需要分清楚以下概念:最大迭代次数,迭代次数计数器和实际迭代次数计数器。我们设定最大迭代次数,一旦迭代次数计数器达到了最大迭代次数,则迭代循环结束。但是由于本次改进设计了跳跃迭代来加速收敛,因此实际迭代次数不是最大迭代次数。因此我们额外创建了一个变量:实际迭代次数计数器这样我们就可以对比实际迭代计数器和计划的最大迭代次数,看看减少迭代了多少次。
特殊说明:
1.程序支持导入包含城市坐标的Excel文件,也可以随机产生一定数量的城市坐标
2.城市坐标及距离矩阵可以打开CityInfo.mat文件查看
3.最优解路径是7544.37(导入EXCEL文件的仿真结果)
Matlab仿真结果
改进后的大邻域搜索算法LNS求解旅行商问题的路径顺序:
随机初始解的旅行商路径图
路径长度的迭代变化曲线图
改进-大邻域搜索算法求解旅行商路径图