计算智能——基于遗传算法的TSP问题(课堂实验)

本文通过MATLAB探讨遗传算法解决旅行商问题(TSP)时,城市个数、种群数量、迭代次数、交叉概率和变异概率的影响。实验结果显示,城市数量30、种群数量60、迭代次数1000、交叉概率0.95、变异概率0.07时,算法性能最佳。遗传算法在30城市以下TSP问题上优于蚁群算法,但在更大规模问题上,蚁群算法表现出更好的性能。
摘要由CSDN通过智能技术生成

一.引言

遗传算法喝蚁群算法都是时效的最优化搜索算法,在解决诸如TSP这类组合优化问题时,它们各有所长。
本文使用MATLAB先来分析遗传算法自身的参数影响,再进一步对比分析两种算法解决TSP问题的性能。

二.遗传算法基本原理和TSP求解

遗传算法由美国J.Holland教授提出。

其主要特点:群体搜索策略
                      群体中个体间的信息交换

搜索不依赖于梯度信息。

遗传算法的三个主要操作算子:选择算子
                                                  交叉算子
                                                  变异算子

遗传算法包含的五个要素:
1.对参数进行编码
2.设定初始种群大小
3.适应度函数设计
4.遗传操作设计
5.控制参数设定(包括种群大小,最大进化代数,交叉概率,变异概率等。)

遗传算法求解TSP问题最重要的地方
交叉操作时,城市交换的方法。

交叉前:
在这里插入图片描述
交叉后:
在这里插入图片描述
由图可见会出现城市冲突现象
解决办法:
在这里插入图片描述
将染色体A冲突基因8改为染色体B对应位置的5
以此类推来消除冲突
得到结果:
在这里插入图片描述

关于遗传算法的其他详细原理可以参考上篇文章遗传算法

三.遗传算法自身参数分析

3.1 城市个数的讨论

城市个数的参数讨论,是建立在城市个数不同(个数保持一定时,数据集保持一致)的情况下,各运行10次,比较最优解最差解的差值,再自己估计一下10次的平均值,来看在当前城市个数下该算法的性能。以讨论出遗传算法适合更优的解题城市区间。
最优值和最差值的差值越小,说明算法性能越好。

其他参数设置(保持不变)
种群数量:100
迭代次数:500
交叉概率:0.8
变异概率:0.05
各运行10次

1.城市个数为10

最优解:
在这里插入图片描述
在这里插入图片描述
最差解:
在这里插入图片描述
在这里插入图片描述
平均值: 8.72e+00
最优与最差差值: 约0.25e+00

2.城市个数为30
最优解:
在这里插入图片描述
在这里插入图片描述
最差解:
在这里插入图片描述
在这里插入图片描述

平均值: 2.23e+01

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值