蚁群算法浅析
摘要:介绍了什么是蚁群算法,蚁群算法的种类,对四种不同的蚁群算法进行了分析对比。
详细阐述了蚁群算法的基本原理,将其应用于旅行商问题,有效地解决了问题。通过对旅行
商问题 C++模拟仿真程序的详细分析,更加深刻地理解与掌握了蚁群算法。
关键词:蚁群算法;旅行商问题;信息素;轮盘选择
一、引言
蚁群算法(Ant Colony Optimization, ACO),是一种用来在图中寻找优化路径的算法。它
由 Marco Dorigo 于 1992 年在他的博士论文中提出,其灵感来源于蚂蚁在寻找食物过程中发
现路径的行为。蚁群算法是一种模拟进化算法,初步的研究表明该算法具有许多优良的性质。
蚁群算法成功解决了旅行商问题(Traveling Salesman Problem, TSP):一个商人要到若干
城市推销物品,从一个城市出发要到达其他各城市一次而且最多一次最后又回到第一个城市。
寻找一条最短路径,使他从起点的城市到达所有城市一遍,最后回到起点的总路程最短。若
把每个城市看成是图上的节点,那么旅行商问题就是在 N 个节点的完全图上寻找一条花费最
少的回路。
最基本的蚁群算法见第二节。目前典型的蚁群算法有随机蚁群算法、排序蚁群算法和最
大最小蚁群算法,其中后两种蚁群算法是对前一种的优化。本文将终点介绍随机蚁群算法。
二、基本蚁群算法
(一)算法思想
各个蚂蚁在没有事先告诉他们食物在什么地方的前提下开始寻找食物。当一只找到食物
以后,它会向环境释放一种信息素,信息素多的地方显然经过这里的蚂蚁会多,因而会有更
多的蚂蚁聚集过来。假设有两条路从窝通向食物,开始的时候,走这两条路的蚂蚁数量同样
多(或者较长的路上蚂蚁多,这也无关紧要)。当蚂蚁沿着一条路到达终点以后会马上返回来,
这样,短的路蚂蚁来回一次的时间就短,这也意味着重复的频率就快,因而在单位时间里走
过的蚂蚁数目就多,洒下的信息素自然也会多,自然会有更多的蚂蚁被吸引过来,从而洒下
更多的信息素。因此,越来越多地蚂蚁聚集到较短的路径上来,最短的路径就找到了。
蚁群算法的基本思想如下图表示: