![f73db704d31d0203650fbba4254578e7.png](https://i-blog.csdnimg.cn/blog_migrate/4ca26c1723fec032c3b88f3c4dc4b867.jpeg)
蚁群算法(ant colony optimization, ACO)
1 原理介绍
蚁群算法(Ant Colony Algorithm)最初于1992年由意大利学者M.Dorigo等人提出,它是一种模拟自然界中真实蚁群觅食行为的仿生优化算法。研究发现:每只蚂蚁觅食时在走过的路线上会留下一种称为信息素的物质,蚂蚁之间靠感知这种物质的浓度进行信息传递。蚂蚁在选择路径时总是倾向于朝信息索浓度高的方向移动,而距离短的路径上走过的蚂蚁多,留下的信息素也多,后续蚂蚁选择它的概率也会越大;其他路径上的信息素会随着时间的推移不断挥发,这样就形成了一种正反馈机制,最后整个蚁群聚集到最短路径上。
人工蚁群算法模拟了这一过程。每只蚂蚁在解空间独立地搜索可行解,解越好留下的信息素越多,随着算法推进,较优解路径上的信息素增多,选择它的蚂蚁也随之增多,最终收敛到最优或近似最优的解上。
![fd51adb6591c71be3960ce2c0eeb8b7a.png](https://i-blog.csdnimg.cn/blog_migrate/5df0f58bdddf36e1d061fd33fb381f89.jpeg)
蚁群优化算法最初用于解决旅行商问题(Travelling Salesman Problem,TSP),称为蚂蚁系统(Ant System,AS)。该蚂蚁系统包含了蚁周算法、蚁密算法和蚁量算法。首先来介绍蚁周算法。对于TSP问题,假设n为城市规模,i和j为任意两个城市,
![equation?tex=d_%7Bi+j%7D](https://i-blog.csdnimg.cn/blog_migrate/6d03bad1edfaf284b36b0ac157cbea46.png)
![equation?tex=b_%7Bi%7D%28t%29%28i%3D1%2C+%5Cldots%2C+n%29](https://i-blog.csdnimg.cn/blog_migrate/3f89d79f72550844cd6070c427038ad2.png)
![equation?tex=m%3D%5Csum_%7Bi%3D1%7D%5E%7Bn%7D+b_%7Bi%7D%28t%29](https://i-blog.csdnimg.cn/blog_migrate/e59f3a3d7080916e74474d8442388400.png)
蚂蚁系统采用
![equation?tex=%5Ctau_%7B%5Cmathfrak%7Bij%7D%7D%28t%29](https://i-blog.csdnimg.cn/blog_migrate/bb3f70d3ce57e4b6bc22b9a4072adcdd.png)
![equation?tex=%5Ctau_%7Bi+j%7D%28t%2Bn%29%3D%5Crho+%5Ccdot+%5Ctau_%7Bi+j%7D%28t%29%2B%5CDelta+%5Ctau_%7Bi+j%7D%5Cquad%5Cquad%281%29+%5C%5C](https://i-blog.csdnimg.cn/blog_migrate/e4056396ddee6bed3262ee6c25ba2f46.png)
式中,
![equation?tex=%5Crho](https://i-blog.csdnimg.cn/blog_migrate/04da85034a607153310d1887b7e2936b.png)
![equation?tex=%281-%5Crho%29](https://i-blog.csdnimg.cn/blog_migrate/8167d72e5a8dd55c5b1c286551de3219.png)
![equation?tex=%5CDelta+%5Ctau_%7Bi+j%7D](https://i-blog.csdnimg.cn/blog_migrate/a3e8fa57e9d873b65198a83acd762020.png)
![equation?tex=%5CDelta+%5Ctau_%7Bi+j%7D%3D%5Csum_%7Bk%3D1%7D%5E%7Bm%7D+%5CDelta+%5Ctau_%7Bi+j%7D%5E%7Bk%7D+%5C%5C](https://i-blog.csdnimg.cn/blog_migrate/a3e8fa57e9d873b65198a83acd762020.png%3D%5Csum_%7Bk%3D1%7D%5E%7Bm%7D+%5CDelta+%5Ctau_%7Bi+j%7D%5E%7Bk%7D+%5C%5C)
式中,
![equation?tex=%5CDelta+%5Ctau_%7Bi+j%7D%5E%7Bk%7D](https://i-blog.csdnimg.cn/blog_migrate/a3e8fa57e9d873b65198a83acd762020.png%5E%7Bk%7D)
![equation?tex=%5CDelta+%5Ctau_%7Bi+j%7D%5E%7Bk%7D%3DQ+%2F+L_%7Bk%7D+%5C%5C](https://i-blog.csdnimg.cn/blog_migrate/a3e8fa57e9d873b65198a83acd762020.png%5E%7Bk%7D%3DQ+%2F+L_%7Bk%7D+%5C%5C)
式中,Q为一个常数,
![equation?tex=L_%7Bk%7D](https://i-blog.csdnimg.cn/blog_migrate/218fc6462bd23aafb617ca3650f33336.png)
一般来说有了信息素浓度的更新公式,就可以直接给出蚂蚁对每条路径的选择概率了。然而,为了更好的利用TSP问题自身的性质,M.Dorigo等引入了一个启发项:
![equation?tex=%5Ceta_%7Bi+j%7D%3D1+%2F+d_%7Bi+j%7D](https://i-blog.csdnimg.cn/blog_migrate/080163711bdc37b14ead6b97c29e3a64.png)
![equation?tex=p_%7Bi+j%7D%5E%7Bk%7D%28t%29%3D%5Cleft%5C%7B%5Cbegin%7Barray%7D%7Bll%7D%7B%5Cfrac%7B%5Cleft%5B%5Ctau_%7Bi+j%7D%28t%29%5Cright%5D%5E%7B%5Calpha%7D%5Cleft%5B%5Ceta_%7Bi+j%7D%5Cright%5D%5E%7B%5Cbeta%7D%7D%7B%5Csum_%7Bk+%5Cin+%5Ctext+%7B+callowed+%7D%7D%5Cleft%5B%5Ctau_%7Bi+k%7D%28t%29%5Cright%5D%5E%7B%5Calpha%7D%5Cleft%5B%5Ceta_%7Bi+k%7D%5Cright%5D%5E%7B%5Cbeta%7D%7D%2C%7D+%26+%7Bj+%5Cin+%5Ctext+%7B+allowed+%7D_%7Bk%7D%7D+%5C%5C+%7B0%2C%7D+%26+%7B%5Ctext+%7B+else+%7D%7D%5Cend%7Barray%7D%5Cright.%5Cquad%5Cquad+%282%29+%5C%5C](https://i-blog.csdnimg.cn/blog_migrate/7342be71462b9a06cde0f1157f1d026d.png)
式中,
![equation?tex=%5Calpha](https://i-blog.csdnimg.cn/blog_migrate/b5edc03934564b6fc6a72b7804435505.png)
![equation?tex=%5Cbeta](https://i-blog.csdnimg.cn/blog_migrate/137d4b8b4111fd48081f99c9794c6452.png)