计算智能--蚁群算法
一、概念
蚁群算法(AG)是一种模拟蚂蚁觅食行为的模拟优化算法,它是由意大利学者Dorigo M等人于1991年首先提出,并首先使用在解决TSP(旅行商问题)上。之后,又系统研究了蚁群算法的基本原理和数学模型.
蚁群算法的基本原理:
1、蚂蚁在路径上释放信息素。
2、碰到还没走过的路口,就随机挑选一条路走。同时,释放与路径长度有关的信息素。
3、信息素浓度与路径长度成反比。后来的蚂蚁再次碰到该路口时,就选择信息素浓度较高路径。
4、最优路径上的信息素浓度越来越大。
5、最终蚁群找到最优寻食路径。
基于TSP问题的基本蚁群算法:
TSP求解中,假设蚁群算法中的每只蚂蚁是具有以下特征的简单智能体:
每次周游,每只蚂蚁在其经过的支路(i,j)上都留下信息素。
蚂蚁选择城市的概率与城市之间的距离和当前连接支路上所包含的信息素余量有关。
为了强制蚂蚁进行合法的周游,直到一次周游完成后,才允许蚂蚁游走已访问过的城市(这可由禁忌表来控制)。
基本蚁群的两个过程:
(1)状态转移
(2)信息素更新
公式一
从公式中可以看出信息素因子为信息素浓度的指数,启发函数因子为启发函数的指数,这样便很好理解这两个参数所起到的作用了,分别决定了信息素浓度以及转移期望对于蚂蚁k从城市i转移到城市j的可能性的贡献程度。
公式二:
这个公式反映了信息素浓度的迭代更新规律,可以看出,所有蚂蚁遍历完一次所有城市后,当前信息素浓度由两部分组成,第一部分即上次所有蚂蚁遍历完所有城市后路径上信息素的残留,第二部分为本次所有蚂蚁遍历完所有城市后每条路径上的信息素的新增量。
公式三:
公式三反映了每只蚂蚁对于自己经过的城市之间路径上信息素浓度的贡献量,可以看出,其经历的路程越长,则对于沿途上信息素浓度的贡献量也就越低,如果尽力的路程越短,则对于沿途上信息素浓度的贡献量也就越高
二、主要参数选择和影响
三、实验过程
1.alpha(信息素重要程度因子)改变对实验的影响
alpha=1
alpha=2
alpha=3
alpha=4
通过这四张图片我们可以看出来alpha越大,蚂蚁选择之前走过的路径可能性就越大,搜索路径的随机性就减弱,alpha越小,蚁群搜索范围就会减少,容易陷入局部最优
2.beta(启发函数重要程度因子)对实验的影响
beta=3
beta=5
beta=7
beta=9
通过上面的图片对照可以得出beta值越大,蚁群就越容易选择局部较短路径,这时算法的收敛速度是加快了,但是随机性不高,容易得到局部的相对最优
3.rho(信息素挥发因子)对实验的影响
rho=0.1
rho=0.3
rho=0.4
rho=0.5
rho=0.7
rho=0.9
通过上面的实验图片对照可得rho过小时,在各路径上的残留的信息素过多,导致无效的路径继续被搜索,影响到算法的收敛速率;
rho过大时,无效的路径虽然可以被排除搜索,但是不能保证也会被放弃搜索,影响到最优值的搜索
4.实验数据
四、实验分析及结论
1.alpha的数值的改变,所求得最短路径也随之变化,它表现的是蚂蚁在搜索路径的运动过程中对所积累的信息量指导蚁群搜索当中的相对重要度,对算法的随机性有影响,并且可以导致算法过早陷入局部最优中。alpha过小,收敛速度慢,且容易陷入局部最优中;α过大,局部最短路径上正反馈作用强,过早收敛。α=2时,数据很快就收敛了,并且没有处于局部最优现象,最短距离最短,算法性能最佳。
2.beta=5时,最短距离最短,算法性能最佳。无论是beta=3或者7收敛速度都会较慢,而且有局部最优的可能性。beta的数值的改变,所求得得最短路径随之变化,它表现的是启发式信息在指导蚁群搜索过程之中相对重要的程度,它的大小影响着蚁群在整个寻短过程中的先验性和确定性。beta过小,蚁群陷入纯粹的随机搜索,很难找到最优解;beta过大时,收敛速度增快。
3.rho=0.3时,最短距离最大,算法性能最佳。而当rho=0.9时虽然快但是不能达到最优,rho=0.1时无效路径的搜索过多,收敛速度慢。 rho对蚁群算法的搜索能力和收敛速度有影响。rho过小时,在各路径上残留的信息素过多,导致无效的路径继续被搜索,影响到算法的收敛速率;rho过大时,无效的路径虽然可以被排除搜索,但是不能保证有效的路径也会被放弃搜索,影响到最优质的搜索,使收敛速度降低,并且影响到算法的全局搜索能力。
五、实验代码
六、