天天看点

基于改进遗传算法求解 TSP/MTSP 【旅行推销员问题 (TSP)、多旅行推销员问题 (M-TSP) 】(Matlab代码实现)

目录

​​1 概述​​

​​2 旅行商问题 ​​

​​3 遗传算法​​

​​4 约束优化​​

​​5 带有罚方法的遗传算法的流程图​​

​​6 带有惩罚函数的遗传算法在TSP中的应用​​

​​7 运行结果​​

​​7.1 单旅行商问题​​

​​ 7.2 多旅行商问题​​

​​8 参考文献​​

​​9 Matlab代码实现​​

1 概述

主要研究用遗传算法解决带有约束的TSP的方法。使用贪婪交叉算子、自适应变异算子和带有精英保留策略的选择算子相结合对基本遗传算法进行了改进,针对实际TSP中的约束条件讨论了罚方法在遗传算法中的应用,提出了自适应的惩罚函数,并将其与改进后的遗传算法相结合,解决了带有时间约束的TSP。通过对实验结果的比较分析,证明了该方法的可行性和有效性。

2 旅行商问题 

基于改进遗传算法求解 TSP/MTSP 【旅行推销员问题 (TSP)、多旅行推销员问题 (M-TSP) 】(Matlab代码实现)

3 遗传算法

遗传算法是1975年由John Holland教授提出。它借用了仿真生物遗传学和自然选择机理,通过自然选择、交叉、变异等机制实现各个个体适应性的提高。遗传算法在整个进化过程中的遗传操作是随机的;但是它呈现出来的特性却并不是完全随机的,它能够有效地利用历史信息使得下一代群体性能有所提高,一代一代不断进化,最终收敛到一个即使不是最优解,也是离最优解非常接近的解空间上。遗传算法涉及到编码方式、初始种群、适应度函数、遗传算子和控制参数五大要素。

基本遗传算法虽然具有全局搜索能力,但是在进化过程中往往容易出现收敛速度缓慢或不收敛,又或陷入局部最优的情况,加快收敛速度又有可能出现早熟现象,过或不及都不能及时准确地获得最优解。因此,学者们在这些方面进行了大量的研究,希望既能加快收敛速度,又能防止早熟收敛。

4 约束优化

基于改进遗传算法求解 TSP/MTSP 【旅行推销员问题 (TSP)、多旅行推销员问题 (M-TSP) 】(Matlab代码实现)

5 带有罚方法的遗传算法的流程图

基于改进遗传算法求解 TSP/MTSP 【旅行推销员问题 (TSP)、多旅行推销员问题 (M-TSP) 】(Matlab代码实现)

6 带有惩罚函数的遗传算法在TSP中的应用

基于改进遗传算法求解 TSP/MTSP 【旅行推销员问题 (TSP)、多旅行推销员问题 (M-TSP) 】(Matlab代码实现)
基于改进遗传算法求解 TSP/MTSP 【旅行推销员问题 (TSP)、多旅行推销员问题 (M-TSP) 】(Matlab代码实现)

                                    取一段路线并颠倒该段中城市的顺序

基于改进遗传算法求解 TSP/MTSP 【旅行推销员问题 (TSP)、多旅行推销员问题 (M-TSP) 】(Matlab代码实现)

 取路线中的两个城市并按路径顺序交换它们的位置

基于改进遗传算法求解 TSP/MTSP 【旅行推销员问题 (TSP)、多旅行推销员问题 (M-TSP) 】(Matlab代码实现)

                将一个城市拉出路线并将其重新插入另一个地方,将其他城市滑落

7 运行结果

7.1 单旅行商问题

 7.2 多旅行商问题

8 参考文献

9 Matlab代码实现

继续阅读