1
模式识别与智能计算的MATLAB实现
1.12.1.2 10.1.2 蚁群算法的基本模型
10.1.2 蚁群算法的基本模型

1.蚁群算法的常用符号

·qi(t)——t时刻位于节点i的蚂蚁个数;

·m——蚁群中的全部蚂蚁个数,alt

·τij——边(i,j)上的信息素强度;

·ηij——边(i,j)上的能见度;

·dij——节点i,j间的距离;

·alt——蚂蚁k由节点i向节点j转移的概率。

2.每只蚂蚁具有的特征

·蚂蚁根据节点间距离和连接边上的信息素强度作为变量概率函数选择下一个将要访问的节点;

·规定蚂蚁在完成一次循环以前,不允许转到已访问过的节点;

·蚂蚁在完成一次循环时,在每一条访问的边上释放信息素。

3.蚁群算法流程

蚁群算法的流程如图10.1所示。

alt

图10.1 基本蚁群算法框图

①初始化蚁群。初始化蚁群参数,设置蚂蚁数量,将蚂蚁置于各节点上,初始化路径信息素。

②蚂蚁移动。蚂蚁根据前面蚂蚁留下的信息素强度和自己的判断选择路径,完成一次循环。

③释放信息素。对蚂蚁所经过的路径按一定的比例释放信息素。

④评价蚁群。根据目标函数对每只蚂蚁的适应度进行评价。

⑤若满足终止条件,即最优解,则输出最优解;否则,算法继续。

⑥信息素的挥发。信息素会随着时间延续而不断挥发。

初始时刻,各条路径上的信息素相等,即τij(0)=C(常数)。蚂蚁k(k=1,2,…,m)在运动过程中根据各条路径上的信息素决定移动方向,在t时刻,蚂蚁k在节点i选择节点j的转移概率alt

alt

其中,allowedk=[1,2,…,n-1]-tabuk表示蚂蚁k下一步允许选择的节点,tabuk记录蚂蚁k当前所经过的节点,tabuk随着进化过程作动态调整;ηij为能见度因数,用某种启发式算法得到,一般取ηij=1/dij;α和β为两个参数,反映了蚂蚁在活动过程中信息素轨迹和能见度在蚂蚁选择路径中的相对重要性。经过n个时刻,蚂蚁完成了一次循环,各路径上信息素根据下式进行调整:

τij(t+n)=(1-ρ)τij(t)+∆τij

alt

其中,alt表示第k只蚂蚁在本次循环中留在路径(i,j)上的信息素量,其值视蚂蚁的优劣程度而定,路径越短,释放的信息素就越多;∆τij表示本次循环中路径(i,j)的信息素量的增量;ρ为信息素轨迹的衰减系数,通常设置ρ<1来避免路径上信息素的无限累积。

根据具体算法不同,∆τijaltalt的表达形式可以不同,要根据具体问题而定。