蚁群算法步骤
1)路径构建
每个蚂蚁都随机选择一个城市作为其出发城市,并维护一个路径记忆向量,用来存放该蚂蚁依次经过的城市。蚂蚁在构建路径的每一步中,按照一个随机比例规则选 择下一个要到达的城市。随机概率是按照下列公式来进行计算的:

上述公式就是计算 当前点 到 每一个可能的下一个节点 的概率。分子是 信息素强度 和 能见度 的幂乘积,而分母则是所有 分子的和值。注意每次选择好节点后,就要从可用节点中移除选择的节点。
2)信息素更新
算法在初始期间给信息素一个固定的浓度值,在每一次迭代完成之后,所有出去的蚂蚁回来后,会对所走过的路线进行计算,然后更新相应的边的信息素浓度。很明显,这个数值肯定是和蚂蚁所走的长度有关系的,经过一次次的迭代, 近距离的线路的浓度会很高,从而得到近似最优解。
①初始化信息素浓度τij=C:
1)如果C太小,算法容易早熟,蚂蚁会很快集中到一条局部最优路径上来,因为C值太小,使得和每次挥发和增强的值都差不多,那么随机情况下,一些小概率的事件发生就会增加非最优路径的信息素浓度;
2)如果C太大,信息素对搜索方向的指导性作用减低,影响算法性能。
3)一般情况下,我们可以使用贪婪算法获取一个路径值Cnn,然后根据蚂蚁个数来计算C(0) = m/Cnn ,m为蚂蚁个数。
②信息素更新:
每完成一次迭代,计算每只蚂蚁全部路径长度Ck,根据以下公式更新信息素:

信息素的更新方式有2种,一是挥发,也就是所有路径上的信息素以一定的比率进行减少,模拟自然蚁群的信息素随时间挥发的过程;二是增强,给评价值“好”(有蚂蚁走过)的边增加信息素。其中△τ的定义如下:

【这里每一次迭代的意义是:每次迭代的m只蚂蚁都完成了自己的路径过程,回到原点后的整个过程。】
3)迭代停止
迭代停止的条件有两种情况:1)迭代次数达到最大用户定义
2)所有蚂蚁都走同一路线(停滞状态)