第六篇《蚁群算法的基础知识与编程》
一、蚁群算法基础知识
蚂蚁群体寻找食物的过程可以看做是一种启发式搜索的过程,蚂蚁之间通过信息素来进行相互间的通信,从而能够合作发现从蚂蚁巢穴到食物源的最短路径。通过对这种群体智能行为,研究者提出了蚁群算法来解决一些最优化问题。
蚂蚁与蚂蚁之间的协作以及蚂蚁与环境的交互都是依赖一种化学物质,即信息素。蚂蚁在寻找食物的过程中虽然会随机的选择路径,但他们能感知当前地面的信息素浓度,并倾向于往信息素浓度高的方向行进。蚁群算法抓住这一特点,通过信息素等来为最优化问题建立蚁群算法模型。
蚂蚁觅食与蚁群算法有如下关系对照:
(1)蚁群——搜索空间的一组有效解
(2)觅食空间——问题的搜索空间
(3)信息素——信息素浓度变量
(4)巢穴到食物的一条路径—— 一个有效解
(5)找到巢穴与食物的最短路——问题的最优解
二、蚁群算法流程
蚁群算法应用广泛,其应用领域包括旅行商问题(traveling salesman problem,TSP)、车辆路径问题(vehicle routing problem)、图着色问题(graph coloring problem)、网络路由问题(network routing problem)等等。蚁群算法求解流程主要有两大步骤:路径构建和信息素更新。
1、路径构建
每只蚂蚁都需要随机选择一个城市作为其出发城市,同时在算法中维护一个走过路径的向量,每只蚂蚁以一定的概率选择下一个城市。
2、信息素更新
一些其他可参考博客:
(1)蚁群算法(翻译)
https://blog.csdn.net/huahuaxiaoshao/article/details/79054024
(2)蚁群算法原理及Matlab实现
https://blog.csdn.net/kwame211/article/details/80347593
(3)10分钟搞懂蚁群算法
https://www.imooc.com/article/23910?block_id=tuijian_wz
(4)十分钟快速get蚁群算法(附代码)
https://cloud.tencent.com/developer/article/1103493
(5)蚁群算法代码实现
https://blog.csdn.net/lzhf1122/article/details/72668977