资料来源:
《智能优化算法以及matlab实现》包子阳 余继周 编著
第五章-----蚁群算法
是一种元启发式优化算法(自己理解:就是作为群体的单位个体也就是元,在里面充当着随机的选择搜索的方向,有助于全局勘探)
启发:
自然界的蚂蚁有能力在没有然和提示的情况下找到从巢穴矩离食物的最短路径。
蚂蚁使用的方法策略:
蚂蚁在寻找事物的时候在起走过的路径上会释放一种分泌物----信息素,随着时间的推移该物质会进行挥发,但是若是这是相对比较近的路就能会有更多的蚂蚁走,有更多的信息素
1.自然界蚂蚁真实的觅食行为
(1)初始阶段,环境中并没有信息素的遗留,蚂蚁寻找事物完全是随机选择路径。
(2)在各个蚂蚁选择完路径之后,后来的蚂蚁会根据感知的信息素,挑选浓度最高的那一条路径(因为路径短的话,会回来的快一些,信息素的浓度高)
举例子:
2.人工蚁群的优化过程
人工蚁群是将具有简单功能的工作单元看作是蚂蚁。两者都是用同样的选择优化机制,区别就是人工蚁群具有一定的记忆功能,能够记忆已经返问过的节点。(就是在TSP的问题中记录每一个访问过的城市,以免销售人员再次的选择这个城市)
人工蚂蚁系统与真实蚂蚁系统的异同_百度文库
https://wenku.baidu.com/view/a2e284d26bd97f192379e9b0.html
区别:
在TSP问题的人工蚁群算法汇总,假设m只蚂蚁在图的相邻加点间移动,从而写作异步的得到问题的解。妹纸蚂蚁的一步转移改由图中的每条边上的两类参数决定:(1)信息素值(2)可见度,也就是先验值
信息素有挥发以及增强(路径被走)
蚂蚁向下一个目标运动是通过一个随机原则实现的,也就是运用当前所在节点存储信息,计算下一步可达节点的概率,并按概率细实线一步移动,如此往复,一步一步的接近最优解
3.蚁群算法的特点:
4.蚁群算法的TSP流程:
基本的蚁群算法;
算法的初始,将m只蚂蚁随机的放到n个城市,同时每只蚂蚁的禁忌表tabu的第一个元素设置为它当前所在的城市。
作为初始阶段将各路径的信息素为一个较小的常数,然后每一只蚂蚁根据路径的信息素以及启发式信息(也就是先验信息,经验之类的一些。这个例子中就是两个城市之间的矩离)
而时刻t,蚂蚁k从i到j城市的概率为
5.基于蚂蚁算法的具体实现步骤:
(1)参数初始化。令时间t=0和循环次数Nc=0,设置最大循环次数G,将m个蚂蚁置于n个元素(城市),令有向图上每一条边(i,j)的初始化信息量,
(2)循环次数Nc=Nc+1
(3)蚂蚁的禁忌表索引号k=1
(4)蚂蚁的数目k=k+1
(5)蚂蚁个体根据改路公式,选择元素j进行前进并加入禁忌表
(6)修改禁忌表指针,即选择好只有将蚂蚁移动到新的元素,并把该元素移动到该蚂蚁个体的禁忌表中
(7)若集合C中元素未遍历完,也就是k<m则跳转第四部,否则执行第八步
(8)记录本次最佳路线
(9)根据公式更新每条路径上的信息量
(10)若满足结束条件,也就是循环系数Nc>=G,则循环结束并输出程序化结果,否则清空禁忌表并跳转到第(2)步
程序的运算流程图:
5.精英蚂蚁系统
6.参数说明:
(1)信息素启发因子α
信息素启发因子α代表了信息量对是否选择当前路径的影响程度,也就是反映蚂蚁随机性因素的作用的强度,α越大,蚂蚁选择以前走过的老路的可能性越大,而过小就容易陷入局部最优
一般的是选择【1,4】
(2)期望启发因子β
拜师在搜索路径上的信息素在知道马阿姨选择路径的向导性,它的大小反应了蚁群在搜索最优路径的过程中先验性和确定性因素的作用强度。期望启发因子越大,蚂蚁在某个局部点上选择局部最短路径的可能性就越大。
在TSP中β是先验知识两城市矩离的倒数的指数
一般的选在【3,5】
(3)信息素蒸发系数ρ
1-ρ表示信息素持久系数,ρ的范围【0,1】
(4)蚂蚁数目m
蚁群算法是一种随机的不确定初始的方向的智能算法,它是通过多只蚂蚁,多个路径随机的去探索的过程,然后组成群体进化过程得到最优解。
蚂蚁数目的多少直接的关系到随机的效果的好坏,一般的m的取值10-50