文章目录
- 一、理论基础
- 二、案例背景
-
- 1、问题描述
- 2、解题思路及步骤
- 三、MATLAB程序实现
-
- 1、清空环境变量
- 2、初始化参数
- 3、构建解空间
- 4、迭代寻优
- 5、结果显示
- 6、绘图
- 四、参考文献
生物学家研究发现,蚂蚁在寻找食物时,会在其经过的路径上释放一种信息素,并能够感知其他蚂蚁释放的信息素。信息素浓度的大小表示路径的远近,浓度越高,表明对应的路径距离越短。通常,蚂蚁会以较大的概率优先选择信息素浓度较高的路径,并释放一定量的信息素,这样就形成一个正反馈。最终,蚂蚁能够找到一条从巢穴到食物源的最佳路径,即最短距离。同时,生物学家还发现,路径上的信息素浓度会随着时间的推移而逐渐衰减。
将蚁群算法(ant colony algorithm,ACA)应用于解决优化问题的基本思路为:用蚂蚁的行走路径表示待优化问题的可行解,整个蚂蚁群体的所有路径构成待优化问题的解空间。路径较短的蚂蚁释放的信息素量较多,随着时间的推移,较短的路径上累积的信息素浓度逐渐增高,选择该路径的蚂蚁数量也越来越多。最终,整个蚂蚁会在正反馈的作用下集中到最佳的路径上,此时对应的便是待优化问题的最优解。

2、解题思路及步骤

利用MATLAB提供的函数,可以方便地在MATLAB环境下实现上述步骤。
1、清空环境变量
程序运行之前,清除工作空间Workspace中的变量及Command Window中的命令。具体程序如下:
2、初始化参数
在计算之前,需要对参数进行初始化。同时,为了加快程序的执行速度,对于程序中涉及的一些过程变量,需要预分配其存储容量。具体程序如下:
3、构建解空间
代码如下:
蚁群初始位置如图2所示。
图2 蚁群初始位置
4、迭代寻优
迭代寻优为整个算法的核心。首先计算状态转移概率;然后根据转移概率的值判断哪些蚂蚁需要进行局部搜索,哪些蚂蚁需要进行全局搜索,之后再进行搜索,搜索完了之后一定要进行边界处理,并更新蚂蚁的位置;最后,更新信息素,每次迭代保存最优解。
迭代过程中蚂蚁的移动位置如图3所示。
图3 迭代过程中蚂蚁的移动位置
5、结果显示
为了更为直观地对结果进行观察和分析,将寻找到的最优自变量及其最优函数值显示在Command Window中。具体程序如下:
由于各个蚂蚁的初始位置是随机生成的,因此每次运行的结果都会有所不同。某次运行的结果如下:
6、绘图
为了更为直观地对结果进行观察和分析,以图形的形式将结果显示出来,具体程序如下:
蚁群最终位置如图4所示。
图4 蚁群最终位置
蚁群算法各代的函数值如图5所示。
图5 蚁群算法各代的函数值
四、参考文献
[2] 凯旋16668. 【啃书】《智能优化算法及其MATLAB实例》例5.2蚁群算法进行函数寻优. 优快云博客.
[3] 曲怪曲怪. 《智能算法》专栏. 优快云博客.
[4] 郁磊等. MATLAB智能算法30个案例分析(第2版)[M].北京航空航天大学出版社.2015年.
202

被折叠的 条评论
为什么被折叠?



