小谈蚁群算法

        之前写博客,笔者写的都是介绍Java一些基本知识,感觉比较low,今天,咱就来点看起来有逼格的东西——蚁群算法。

        相信大家都听过这么一句话,“大自然是人类最好的导师”。事实上,我们人类很多的发明设计,其实灵感都来自于大自然。从鱼到船,从蝙蝠到雷达,从萤火虫到人工冷光,从电鳗电鱼到福特电池......有感于大自然的教诲,我们开设一门名为仿生学的学科。事实上,除去我们身边这些看得见、摸得着的发明创造,哪怕是在计算机界,也有着类似的启发。恰如今天我们要谈论的内容,蚁群算法,它的灵感就来自于大自然中小小的蚂蚁。

        蚂蚁?算法?你确定不是开玩笑吗?

 

        事实就是如此。

        蚁群系统(Ant Colony System)是由意大利学者Dorigo、Maniezzo等人于20世纪90年代首先提出的。他们在研究蚂蚁觅食的过程中,发现单个蚂蚁的行为比较简单,可是整个蚁群整体,却表现出具有智能的行为。比如,蚁群可以在不同环境下,寻找到到食物源最短的路径。

        事实上,这是因为蚂蚁在觅食的过程当中,会分泌一种叫做信息素的东西。蚂蚁与蚂蚁之间通过信息素的方式传递消息。蚂蚁都具备对信息素的感知能力,它们会沿着信息素浓度较高的路径行走,而而每只路过的蚂蚁都会在路上留下信息素,这就形成一种类似正反馈的机制,这样经过一段时间后,整个蚁群就会沿着最短路径到达食物源了。于是,通过模拟这种蚂蚁觅食的方式,Dorigo等人提出了一种新的用来寻找优化路径的概率型算法。

        事实上,了解了原理,大家就可以动手开写了。不过如果还是不懂的话,那么请听笔者继续絮叨两句。

        实际设计一个蚁群系统,需要注意这么几点:

                1、感知范围:每一只蚂蚁应该有一个感知信息素的范围。

                2、环境信息:蚂蚁所在环境中有障碍物、其他蚂蚁、信息素,其中信息素包括食物信息素(找到食物的蚂蚁留下的)、窝信息素(找到窝的蚂蚁留下的),信息素以一定速率消失。

                3、觅食规则:若在感知范围内有食物,则向食物移动,否则朝信息素多的地方走。每只蚂蚁会以小概率犯错误,并非都往信息素最多的方向移动。蚂蚁找窝时仅对窝信息素有反应。

                4、移动规则:蚂蚁朝信息素最多的方向移动,当周围没有信息素指引时,会按照原来运动方向惯性移动。而且会记住最近走过的点,防止原地转圈。

                5、避障规则:当蚂蚁待移动方向有障碍物时,将随机选择其他方向;当有信息素指引时,将按照觅食规则移动。

                6、散发信息素规则:在刚找到食物或者窝时,蚂蚁散发的信息素最多;当随着走远时,散发的信息素将逐渐减少。

        

        事实上,你可能会发现,你设计的蚁群系统可能会跟你想的有些不一样。影响蚁群系统的一个关键因素是关于信息素的设定(包括信息素的释放值的设定以及挥发速度的设定)。大家不妨多尝试几次,说不定会有意想不到的发现哦。
        那么,具体的讲述就到这了,读者们可以自行设计自己的蚁群系统。如果你对此颇感兴趣,还有非常多的关于蚁群算法的优化算法,比如基于遗传算法的混合蚁群算法等等。文到最后,补上一句,笔者的蚁群系统还在设计当中,在此就先藏拙了。(*^_^*)
 

 

        

 

转载于:https://www.cnblogs.com/PHBlog/p/7236286.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值