智能优化算法——蚁群算法小实践

实验五 蚁群算法
一、实验目的与要求:
目的:通过本次实验,学生可以掌握蚁群算法基本原理、蚁群算法流程和关键参数的设置。
要求:上机仿真,调试通过。
二、 实验设备:
计算机、Matlab软件、VC++或C语言软件
三、实验内容:
旅行商问题(TSP)。假设有一个旅行商人要游览全国31个省会城市,他需要选择所要走过的路径,路径的限制是每个城市只能游览一次,而且最后要回到原来出发的城市。路径的选择要求是:所选择路径的路程为所有路径之中的最小值。
全国31个省会城市的坐标为【1304 2312;3639 1315;4177 2244;3712 1399;3488 1535;3326 1556;3238 1229;4196 1004;4312 790;4386 570;3007 1970;2562 1756;2788 1491;2381 1676;1332 695;3715 1678;3918 2179;4061 2370;3780 2212;3676 2578;4029 2838;4263 2931;3429 1908;3507 2367;3394 2643;3439 3201;2935 3240;3140 3550;2545 2357;2778 2826;2370 2975】
四、实验原理:
(1)蚁群算法原理;
蚁群算法是对自然界蚂蚁的寻径方式进行模似而得出的一种仿生算法。蚂蚁在运动过程中,能够在它所经过的路径上留下一种外激素的物质进行信息传递,而且蚂蚁在运动过程中能够感知这种物质,并以此指导自己的运动方向,因此由大量蚂蚁组成的蚁群集体行为便表现出一种信息正反馈现象:某一路径上走过的蚂蚁越多,则后来者选择该路径的概率就越大。
(2)蚁群算法流程或步骤。
在这里插入图片描述
图1.蚁群算法流程图
1.对相关参数进行初始化,包括蚁群规模、信息素因子、启发函数因子、信息素挥发因子、信息素常数、最大迭代次数等。
2.随机将蚂蚁放于不同出发点,对每个蚂蚁计算其下个访问城市,直到有蚂蚁访问完所有城市。
3.计算各蚂蚁经过的路径长度,记录当前迭代次数最优解,同时对路径上的信息素浓度进行更新。
4.判断是否达到最大迭代次数,若否,返回步骤2;若是,则结束程序。
5.输出优化结果。

五、实验结果
在这里插入图片描述
图2.第4次迭代图像
在这里插入图片描述
图3.第10次迭代图像
在这里插入图片描述
图4.第20次迭代图像
在这里插入图片描述
图5.第50次迭代图像
在这里插入图片描述
图6.第100次迭代图像
在这里插入图片描述
图7.第200次迭代图像

在这里插入图片描述
图8.适应度进化曲线
通过上述实验结果可以看出,蚁群算法中的tsp问题的图像中距离的下降速度先快后慢,在迭代100次左右收敛到最优解。在适应度曲线中可以看到,算法在局部最优解时的优化能力:随着迭代次数的增长会不断跳出局部最优解,最终收敛到全局最优解。

六、思考蚁群算法关键参数设置对算法结果的影响。
1.蚂蚁数量:蚂蚁数量的数量很重要,因为数量过大时,会导致搜索过的路径上信息素变化趋于平均,这样就不好找出好的路径了;数量过小时,易使未被搜索到的路径信息素减小到0,这样可能会出现早熟,没找到全局最优解。一般蚂蚁数设定为城市数的1.5倍较稳妥。
在这里插入图片描述
图9.蚂蚁数量为10第200次迭代图像
在这里插入图片描述
图10.蚂蚁数量为50第200次迭代图像
2.最大迭代次数:最大迭代次数值过小,可能导致算法还没收敛就已结束;过大则会导致资源浪费。一般最大迭代次数可以取100到500次。一般来讲,建议先取200,然后根据执行程序查看算法收敛的轨迹来修改取值。针对本次实验的最大迭代次数取值200以内即可。
在这里插入图片描述
图11.适应度进化曲线
3.信息素强度:信息素强度表示蚂蚁循环一周时释放在路径上的信息素总量,其作用是为了充分利用有向图上的全局信息反馈量,使算法在正反馈机制作用下以合理的演化速度搜索到全局最优解。值越大,蚂蚁在已遍历路径上的信息素积累越快,有助于快速收敛。
在这里插入图片描述
图12.信息素为100适应度进化曲线
在这里插入图片描述
图13.信息素为1000适应度进化曲线
4.信息素因子:信息素因子反映了蚂蚁在移动过程中所积累的信息量在指导蚁群搜索中的相对重要程度,其值过大,蚂蚁选择以前走过的路径概率大,搜索随机性减弱;值过小,等同于贪婪算法,使搜索过早陷入局部最优。实验发现,信息素因子选择[1,4]区间,性能较好。

5.期望启发因子:启发函数因子反映了启发式信息在指导蚁群搜索过程中的相对重要程度,其大小反映的是蚁群寻优过程中先验性和确定性因素的作用强度。过大时,虽然收敛速度会加快,但容易陷入局部最优;过小时,容易陷入随机搜索,找不到最优解。实验研究发现,当启发函数因子为[3,5]时,综合求解性能较好。

  • 2
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值