引言
遗传算法通过借鉴大自然物种的进化规律取得了难以想象的效果,同样地,马上要介绍的蚁群算法也通过效仿蚂蚁嗅取信息素寻找食物最短路径的现象,取得了不相上下的效果,甚至在某些方面更优的效果。一些研究表明,蚁群算法有更强的健壮性和内在的分布并行性,非常容易与其他方法相结合,去解决比如网格任务调度、聚类分析、物流配送等问题。本文我们就简单地认识一下朴素的蚁群算法的设计思路与实现方案。
算法背景
蚁群算法,最早是1992年由Marco Dorigo在他的博士论文中提出的,是一种通过模拟自然界蚂蚁寻径的行为,提出的一种全新的模拟进化算法。据昆虫学家的观察和研究发现,生物世界中的蚂蚁有能力在没有任何可见提示下找到从其巢穴到食物源的最短路径,并能随环境的变化而变化,适应性地搜索新的路径,产生新的选择。这是因为蚂蚁在寻找路径时会在路径上释放一种特殊的分泌物——信息素,使得一定范围内的其他蚂蚁能够觉察并影响它们以后的寻径行为。当一些路径上通过的蚂蚁越来越多时,该路径上的信息素浓度就越大,后来的蚂蚁选择该路径的可能性就越大,从而进一步增加了该路径上的信息素浓度,这种选择过程称为蚂蚁的自催化行为(摘自一篇期刊论文)。就像下面这张图一样:
算法流程
相信到这里您还是一头雾水,是的,当初我也读过很多蚁群算法的文章,前面基本都是这样介绍的。直到后来逐字逐句阅读了算法流程和公式,再用代码实现以后才明白原来并没有那么困难。嗯,那下面我们马上说一下算法流程大概是什么样的,好有个宏观的感受。
结语
以上便是蚁群算法的全部流程啦,关于流程图这里就不给出了,个人觉得上面已经描述得很清楚啦。本文参考了如下这篇文章ACO蚁群算法解决TSP旅行商问题的一部分(在此对作者表示感谢),大家也可以进行一些相关性阅读。下一章会给出对各部分的具体代码实现。