【Matlab仿真第二期】标准蚁群求解旅行商问题TSP

发布于:2022-12-17 ⋅ 阅读:(412) ⋅ 点赞:(0)

1. 研究背景

旅行商问题(TSP)是物流领域中的典型问题,它的求解具有十分重要的理论和现实意义.采用一定的物流配送方式,可以大大节省人力物力,完善整个物流系统.

已被广泛采用的遗产算法是旅行商问题的传统求解方法,但遗传算法收敛速度慢,具有一定的缺陷.

本文采用蚁群算法,充分利用蚁群算法的智能性,求解旅行商问题,并进行实例仿真.进行仿真计算的目标是,该算法能够获得旅行商问题的优化结果,平均距离和最短距离.

求解TSP的蚂蚁算法中,每只蚂蚁是一个独立的用于构造线路的过程,若干蚂蚁过程之间通过自适应的信息素值来交换信息,合作求解,并不断优化.这里的信息素值分布存储在图中,与各弧相关联.

2. 算法流程

蚂蚁算法求解TSP算法的过程如下:

1. 首先初始化,设迭代的次数为NC.初始化NC=0.

2. 将m个蚂蚁置于n个顶点上.

3. m只蚂蚁按概率函数选择下一个城市,完成各自的周游.

每个蚂蚁按照状态变化规则逐步地构造一个解,即生成一条回路.蚂蚁的任务是访问所有城市后返回到起点,生成一条回路.设蚂蚁k当前所在的顶点为i,那么,蚂蚁k由点i向j移动要遵循规则而不断迁移,按不同概率来选择下一点.

4. 记录本次迭代最佳路线.

5. 全局更新信息素值.

应用全局信息素更新规则来改变信息素值.当所有m个蚂蚁生成了m个解,其中有一条最短路径是本代最优解,将属于这条路线上的所有弧相关联的信息素值进行更新.

全局信息素更新的目的是在最短路线上注入额外的信息素,即只有属于最短路线的弧上的信息素才能得到加强,这是一个正反馈的过程,也是一个强化学习的过程.在图中各弧上,伴随着信息素的挥发,全局最短路线上各弧的信息素值得到增加.

6. 终止.若终止条件满足,则结束;否则NC=NV+1,转入步骤(2)进行下一代进化.终止条件可指定进化的代数,也可限定运行时间,或设定最短路长的下限.

7. 输出结果.

3. 算法仿真与分析

程序仿真结果如下图1和2所示:

图1

图2

仿真结果输出截图:

 部分代码截图:

 4. 展望和改进

1. 第一种是蚁群算法系统的改进,内容可以参考【智能算法第一期】蚁群算法原理和多种改进方法

2. 第二种是蚁群算法中参数的改进,标准蚁群算法中的4个参数Alpha、Beta、Rho和Q都是设定的经验值,而其数值往往会影响蚁群算法求解的速度和求解精度,如何通过其他算法对它们进行优化,也会作为重要的研究内容

*文章部分内容取自书籍,如有侵权请联系作者删除。


网站公告

今日签到

点亮在社区的每一天
去签到