TSP问题的人工蚁群算法中,假设m只蚂蚁在图的相邻节点间移动,从而协作异步地得到问题的解。每只蚂蚁的一步转移概率由图中的每条边上的两类参数决定:1、信息素质,也称信息素痕迹。2、可见度,即先验值。
信息素的更新方式有2种,一是发挥,也就是所有路径上的信息素以一定的比率进行减少,模拟自然蚁群的信息素随时间挥发的过程;二是增强,给评价值“好”(有蚂蚁走过)的边增加信息素。
蚂蚁向下一个目标的运动是通过一个随机原则来实现的,也就是运用当前所在节点存储的信息,计算出下一步可达节点的概率,并按此概率实现一步移动,逐此往复,越来越接近最优解。
蚂蚁在寻找过程中,或者找到一个解后,会评估该解或解的一部分的优化程度,并把评价信息保存在相关连接的信息素中。
残留信息的相对重要程度a和预见值得相对重要程度b体现了相关信息痕迹和预见度对蚂蚁决策的相对影响。Dorigo在求解TSP问题时,推荐参数的最佳设置为:a=1,b=5,挥发因子p=0.5
蚁群的规模:蚁群的大小一般情况下蚁群中蚂蚁的个数不超过TSP图中节点的个数。
终止条件:1、给定一个外循环的最大数目,表明已经有足够的蚂蚁工作;
2、当前最优解连续K次相同而停止,其中K是一个给定的整数,表示算法已经收敛,不再需要继续;
3、目标值控制规模,给定优化问题(目标最小化)的一个下界和一个误差值,当算法得到的目标值同下界只差小于给定的误差值时,算法终止。
信息素的更新分为离线和在线两种方式。
离线方式(同步更新方式)的主要思想是在若干只蚂蚁完成n个城市的访问后,统一对残留信息进行更新处理。
信息素的在线更新(异步更新方式)即蚂蚁每行走一步,立即回溯并且更新行走路径上的信息素。
离线方式的信息素更新可以进一步分为单蚂蚁离线更新和蚁群离线更新。蚁群离线更新方式是在蚁群中的m只蚂蚁全部完成n城市的访问(第k-1次蚁群循环)后,统一对残留信息进行更新处理。
单蚂蚁离线更新是在第s只蚂蚁完成对所有n个城市的访问后,进行路径回溯,更新行走路径上的信息素,同时释放分配给它的资源。
GBAS算法是典型的离线信息素更新方式。该算法中,蚁群中蚂蚁的先后出行顺序没有相关性,但是每次循环需要记忆m只蚂蚁的行走路径,以进行比较选择最优路径。相对而言,单蚂蚁离线更新方式记忆信息少,只需要记忆第s只蚂蚁的路径,并通过信息素更新后,释放该蚂蚁的所有记录信息。实际上这种方式等价于蚁群离线方式中只有一只蚂蚁。
与单蚂蚁离线更新方式相比,信息量记忆更小的是信息素在线更新方式,即蚂蚁每走一步,马上回溯并且更新刚刚走过的路径上的信息素。