蚁群算法的简单应用

一、概念

蚁群系统(Ant System(AS)或Ant Colony System(ACS))是由意大利学者Dorigo、Maniezzo等人于20世纪90年代首先提出来的。他们在研究蚂蚁觅食的过程中,发现蚁群整体会体现一些智能的行为,例如蚁群可以在不同的环境下,寻找最短到达食物源的路径。
后经进一步研究发现,这是因为蚂蚁会在其经过的路径上释放一种可以称之为“信息素(pheromone)”的物质,蚁群内的蚂蚁对“信息素”具有感知能力,它们会沿着“信息素”浓度较高路径行走,而每只路过的蚂蚁都会在路上留下“信息素”,这就形成一种类似正反馈的机制,这样经过一段时间后,某一路径上走过的蚂蚁越多,则后来者选择该路径的概率就越大。整个蚁群就会沿着最短路径到达食物源了。
这种算法具有分布计算、信息正反馈和启发式搜索的特征,本质上是进化算法中的一种启发式全局优化算法。

蚁群算法是一种用来寻找优化路径的概率型算法。

二、应用

求解TSP问题
TSP问题:已给一个n个点的完全图,每条边都有一个长度,求总长度最短的经过每个顶点正好一次的封闭回路。

路径的选择目标是要求得的路径路程为所有路径之中的最小值。

蚁群算法原理
蚂蚁在路径上释放信息素,当蚂蚁碰到还没走过的路口,就随机挑选一条路走,同时,释放与路径长度有关的信息素,信息素的浓度与路径长度成反比。后来的蚂蚁再次碰到该路口时,蚂蚁在选择下一个要转移的城市时候是基于概率选择的,选择信息素浓度较高路径,最优路径上的信息素浓度越来越高,最终蚁群找到最优寻食路径。

蚁群算法与TSP问题
原理:
将m个蚂蚁随机地放在多个城市,让这些蚂蚁从所在的城市出发,n步(一个蚂蚁从一个城市到另外一个城市为1步)之后返回到出发的城市。如果m个蚂蚁所走出的m条路经对应的中最短者不是TSP问题的最短路程,则重复这一过程,直至寻找到满意的TSP问题的最短路径为止。
路径构建

在这里插入图片描述
m:蚂蚁总数,在TSP问题中,每次循环当中,每只蚂蚁所走出的每条路径为TSP问题的候选解,m只蚂蚁一次循环所走出来的m条路经为TSP问题的一个解子集,所以这个解子集越大则算法的全局搜索能力越强,但是过大会使算法的收敛速度降低。如果m太小的话,算法也很容易就陷入局部最优,过早的出现停滞现象。
alpha:信息素重要程度因子,反映了蚂蚁在从城市i向城市j移动时,这两个城市之间道路上所累积的信息素在指导蚂蚁选择城市j的程度,即蚁群在路径搜素中随即性因素作用的强度。alpha值越大,蚂蚁选择之前走过的路径的可能性越大,搜索路径的随机性减弱,alpha越小,蚁群搜索范围就会减小,容易陷入局解最优。
beta:启发函数重要程度因子,beta值越大,蚁群就越容易选择局部较短路径,这时算法的收敛速度是加快了,但是随机性却不高,容易得到局部的相对最优。
tabu:禁忌表,用于存放第k只蚂蚁已经走过的城市。
rho:是信息素挥发因子,规定0≤ rho≤1,1- rho为信息残留因子,rho过小时,在各路径上残留的信息素过多,导致无效的路径继续被搜索,影响到算法的收敛速率,rho过大,无效的路径虽然可以被排除搜索,但是不能保证有效的路径也会被放弃搜索,影响到最优值的搜索,在AS中通常设置为 rho =0.5。

三、实验过程

(1)随机产生50个的城市坐标信息

round(rand(50,2)*4000)+1000

产生的数据

        2204        2888
        1708        2879
        3366        2135
        1245        1009
        3163        1774
        4837        3657
        1179        2747
        3539        1523
        4774        2251
        1037        3795
        2045        3202
        2440        4955
        1256        2874
        1733        4631
        1425        4783
        2315        2293
        2763        4099
        2028        3990
        4507        4693
        1493        4696
        3813        4099
        3445        2484
        4609     
  • 3
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值