第7章new 群集智能算法
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
ACO 基本规则(三)
觅食规则:
感知范围内寻找是否有食物,如果有就直接过去。 否则看是否有信息素,并且比较在能感知的范围内 哪一点的信息素最多,朝信息素多的地方走,并且 每只蚂蚁多会以小概率犯错误,从而并不是往信息
素最多的点移动。蚂蚁找窝的规则和上面一样,只
不过它对窝的信息素做出反应,而对食物信息素没
具体定义各种参数,如范围、信息素消逝函数等;
3.
4.
为算法中的蚂蚁制定相应的移动规则;
选择一种适应的蚁群优化算法并将其合理地应用
到自己的问题解决方案中去;
5.
适当调整所应用的蚁群算法中的对应参数以达到
较好的实验效果.
2. 应用蚁群算法求解TSP问题
设m为蚁群中蚂蚁的数量,
n 为旅行商要走过的城市数,
消减的越快。 错误概率:表示这个蚂蚁不往信息素最大的区域 走的概率,越大则表示这个蚂蚁越有创新性。 速度半径:表示蚂蚁一次能走的最大长度,也表
示这个蚂蚁的感知范围。
记忆能力:表示蚂蚁能记住多少个刚刚走过点的
坐标,这个值避免了蚂蚁在本地打转,停滞不前。
而这个值越大那么整个系统运行速度就慢,越小
反应。
ACO 基本规则(四)
移动规则:
每只蚂蚁都朝向信息素最多的方向移,并且,当周 围没有信息素指引的时候,蚂蚁会按照自己原来运 动的方向惯性的运动下去,并且,在运动的方向有 一个随机的小的扰动。为了防止蚂蚁原地转圈,它 会记住最近刚走过了哪些点,如果发现要走的下一
点已经在最近走过了,它就会尽量避开。
分离
列队
聚合
分离规则给了一个主体试图与其它邻近的主体保 持一定的距离的能力。确保主体之间以一个“看
似自然”的接近度,模拟真实世界中的群体,以
避免主体拥挤在一起。
队列规则为一个主体提供了与其他邻近主体列队 的能力(即与其他邻近主体航向或速度相同)。 与分离类似,本文将队列说明为:通过每一个 flock成员观察邻近同伴,然后调整它的航向和速
ACO (Ant Colony Optimization) 基本规则(一、二)
范围:
蚂蚁观察到的范围是一个方格世界,蚂蚁有一个参数 为速度半径(一般是3),那么它能观察到的范围就 是3*3个方格世界。
环境: 蚂蚁所在的环境是一个虚拟的世界,其中有障碍物, 有别的蚂蚁,还有信息素,信息素有两种,一种是找 到食物的蚂蚁洒下的食物信息素,一种是找到窝的蚂 蚁洒下的窝的信息素。环境以一定的速率让信息素消 失。
则蚂蚁越容易原地转圈。
按钮:是把当前更改的所有蚂蚁的个体属性应用
到所有的蚂蚁身上。
实现的原理
有两条路径通向食物
蚂蚁聚集到较短的路径
现在的问题是蚂蚁究竟是怎么找到食物的呢? 在没有蚂蚁找到食物的时候,环境没有有用的信息 素,那么蚂蚁为什么会相对有效的找到食物呢? 这要归功于蚂蚁的移动规则,尤其是在没有信息素 时候的移动规则。
取得了良好的仿真试验结果。
7.2.1 蚁群算法
1. 蚁群算法的模拟试验
该试验在各个蚂蚁在没有事先告诉它們食物在什么
地方的前提下开始寻找食物。当一只找到食物以后, 它会向环境释放一种信息素,吸引其他的蚂蚁过来, 这样越来越多的蚂蚁会找到食物!
但有些蚂蚁并没有像其它蚂蚁一样总重复同样的路,
它們会另辟蹊径,如果令开辟的道路比原来的其他 道路更短,那么更多的蚂蚁被吸引到这条较短的路 上来。最后,经过一段时间运行,可能会出现一条 最短的路径被大多数蚂蚁重复着。
这个试验程序的每个蚂蚁的核心程序编码不过 100
多行。为什么这么简单的程序会完成这样复杂的功
能?
答案是:巧妙地利用简单规则来实现集体智慧。
每只蚂蚁并不是像我们想象的需要知道整个世界的
信息,它們其实只关心很小范围内的眼前信息,而
且根据这些局部信息利用几条简单的规则进行决策, 这样在蚁群这个集体里,复杂性的行为就会凸现出 来。这些规则就是下面所述的简单的6条规则
度以与其邻近同伴的平均航向和速度相匹配。
聚合规则给了一个主体与其他邻近主体“聚合
(group)”的能力,从而模拟自然界的类似行
为。
Reynolds在稍后的实现和论文中又增加了有时被
称作flocking“第四规则”的规则。
躲避:使避免撞上局部区域的障碍和敌人
躲避规则的作用是为主体提供了使它绕过障碍和
dij(i,j=1,2,3,…,n) 为城市i到j的距离,
bi(t) 为 t 时刻位于城市 i 的蚂蚁个数
τij(t)为 t 时刻在 ij 连线上残留的信息量,初始时
刻各条路径上的信息量相等,即
τij (1)=C(C为常数)。
如果在时间间隔 (t,t+1) 中, m 个蚂蚁都从当前城市 选择下一个城市,则经过 n 个时间间隔,所有蚂蚁 都走完n个城市,构成一轮循环,此时,按如下方法 修改各条路径上的残留信息:
首先,它要能尽量保持某种惯性,这样使得蚂蚁 尽量向前方移动(开始,这个前方是随机固定的
一个方向),而不是原地无谓的打转;
其次,蚂蚁要有一定的随机性。虽然有了固定的
方向,但它也不能像一个小球一样直线运动下去,
而是有一个随机的干扰。这样就使得蚂蚁运动起 来具有了一定的目的性,尽量保持原来的方向, 但又有新的试探,尤其当碰到障碍物的时候它会 立即改变方向。
两条路从窝通向食物,ቤተ መጻሕፍቲ ባይዱ始的时候,走这两条路
的蚂蚁数量同样多(或者较长的路上蚂蚁多,这
也无关紧要)。
当蚂蚁沿着一条路到达终点以后会马上返回来,这 样,短的路蚂蚁来回一次的时间就短,这也意味着
重复的频率就快,因而在单位时间里走过的蚂蚁数
目就多,洒下的信息素自然也会多,自然会有更多 的蚂蚁被吸引过来,从而洒下更多的信息素,而长 的路径则正好相反。因此,越来越多地蚂蚁聚集到 较短的路径上来,最短的路径就近似找到了。
ACO 基本规则(五、六)
避障规则:
如果蚂蚁要移动的方向有障碍物挡住,它会随机 的选择另一个方向,并且有信息素指引的话,它会 按照觅食/找窝的规则行动。
播撒信息素规则:
在不同的蚁群优化算法中,有的其中的蚂蚁每次 散播的信息素是一个常量,有的其中蚂蚁散播的信 息素是一个变量,但是这些信息素都是动态变化并 随时间逐渐消逝的。
群集智能(Swarm Intelligence)指的是“无智能的 主体通过合作表现出智能行为的特性”。
7.2群集智能的基本算法介绍
7.2.1 蚁群算法
蚁群算法是对蚂蚁群落食物采集过程的模拟,已经 成功运用在很多离散优化问题上。
7.2.2 flock算法 flock算法后者也是起源对简单社会系统的模拟,最 初设想是模拟鸟群觅食的过程。
τij (t n) ρ τij (t ) Δτij
Δτ ij
1
Δτ
k 1
m
k ij
ρ为信息残留系数,则ρ-1表征了从时刻t到 t+n在路 径ij上残留信息的挥发程度。表示第k只蚂蚁在本次循 环中留在路径 ij 上的信息量。
(1) Ant-Circle System模型
Q , 若第k只蚂蚁在本次循环中经过ij k Δτij Lk 0, 否则
第7章 群集智能算法
第7章 群集智能算法
7.1群集智能算法的研究背景
7.2群集智能的基本算法介绍
7.3 集智系统介绍
7.4 群集智能的优缺点
7.1群集智能算法的研究背景
起源于对人工生命的研究。
“人工生命”是用来研究具有某些生命基
本特征的人工系统。包括两方面的内容:
1. 研究如何利用计算技术研究生物现象
下来。
我们可以把多样性看成是一种创造能力,而正反
馈是一种学习强化能力。正反馈的力量也可以比
喻成权威的意见,而多样性是打破权威体现的创
新性。
正是这两点巧妙的结合才使得智能行为涌现出来。
从广义来讲,大自然的进化,社会的进步、人类
的创新实际上都离不开这两样东西,多样性保证
了系统的创新能力,正反馈保证了优良特性能够
2. 研究如何利用生物技术研究计算问题
7.1群集智能算法的研究背景
对群集智能的研究是受社会性昆虫行为的启发, 从事计算研究的学者通过对社会性昆虫的模拟产生 了一系列对传统问题的新的解决方法,这些研究就 是群集智能的研究。 群体 (Swarm) 指的是“一组相互之间可以进行直 接通信或者间接通信 ( 通过改变局部环境 ) 的主体, 这组主体能够合作进行分布问题求解”;
7.2.2 flock算法
Flock算法是由Craig Reynolds于1987年在一
篇为SIGGRAPH所写的论文“Flocks, Herds, and Schools: A Distributed Behavioral Model”中首次提
出的一种集智技术。这种技术有3个简单的规则,当
它们组合在一起时,为自治主体(boid)群给出了
蚁群算法过程模拟
模拟试验结果的思考
追寻蚂蚁的踪迹,我们能够发现什么呢?通过上
面的原理叙述和实际操作,我们不难发现蚂蚁之
所以具有智能行为,完全归功于它的简单行为规 则,而这些规则综合起来具有下面两个方面的特 点:
多样性 正反馈
多样性保证了蚂蚁在觅食的时候不置走进死胡同 而无限循环;
正反馈机制则保证了相对优良的信息能够被保存
试验参数的说明 最大信息素:蚂蚁在一开始拥有的信息素总量, 越大表示程序在较长一段时间能够存在信息素。
食物释放信息素的半径:在食物点和窝点附近都
会释放相应的信息素以便蚂蚁能更快的找到它们。 这个半径越大,则越容易被蚂蚁找到。
信息素消减的速度:随着时间的流逝,已经存在
于世界上的信息素会消减,这个数值越大,那么
得到强化,两者要恰到好处的结合。
如果多样性过剩,也就是系统过于活跃,这相当
于蚂蚁会过多的随机运动,它就会陷入混沌状态;
而相反,多样性不够,正反馈机制过强,那么系
统就好比一潭死水。这在蚁群中来讲就表现为,
蚂蚁的行为过于僵硬,难以找到新的更佳的路径。
用蚁群算法解决问题的步骤
1. 2.
能够把待解决的问题用图的形式抽象表达出来;
一个类似于鸟群、鱼群或蜂群的群体行为的逼真表
现形式。这些被Reynolds称之为定向行为 (Steering Behaviors)。
7.2.2 flock算法
定向行为的规则:
分离:定向时要避免与本地flock同伴拥挤 列队:驶向本地flock同伴的平均航向 聚合:定向时朝着本地flock同伴的平均位置移 动
Q 为常量,Lk 为第 k 只蚂蚁在本次循环 中所走路径的长度。
(2)Ant- Quantity System模型
Q t和t 1之间经过ij d , 若第k只蚂蚁在时刻 k ij ij 0, 否则
(3)Ant-Density System模型
k ij
Q, 若第k只蚂蚁在时刻t和t 1之间经过ij 0, 否则
为什么蚂蚁能够顺利找到食物,它們具有智能么?
要为模拟蚂蚁觅食设计一个智能程序,需要设置那 些功能呢? 首先,我们要让蚂蚁能够避开障碍物,就必须根 据适当的地形给它编进指令让它們能够巧妙的避开
障碍物;
其次,要让蚂蚁找到食物,就需要让它們遍历空
间上的所有点;
再次,如果要让蚂蚁找到最短的路径,那么需要 计算所有可能的路径并且比较它们的大小。
避免碰撞的能力。这种控制行为是这样完成的:
通过赋予每个主体“向前看”一段距离的能力,
决定与一些对象的碰撞是否可能,然后调整航向
以避免碰撞。
Flock技术通过这四个简单的规则最终模拟出逼
真的群体行为,更有意思的是这种移动算法本身
是无状态的:在移动更新中,不记录任何信息。
在每次更新循环中,每只boid都将重新评估
其环境。这样不但降低了内存需求,同时让物群
这可以看成一种选择的过程,也就是环境的障碍
物让蚂蚁沿着是某个方向正确,而其他方向则不
正确。在有一只蚂蚁找到了食物后,其他蚂蚁会
沿着信息素很快找到食物。
蚂蚁如何找到最短路径的?
这一是要归功于信息素;二是要归功于环境,即
计算机时钟。信息素多的地方显然经过这里的蚂
蚁会多,因而会有更多的蚂蚁聚集过来。假设有
蚁群算法是受到上世纪五十年代仿生学的启发,
由意大利学者 M.Dorigo 等人首先提出的一种新型的
模拟进化算法,该算法在求解组合优化问题中体现
出优良的特性。
作为一种基于种群的启发式搜索算法,它能很好 的利用蚁群的集体寻优特征来寻找蚁穴和食物之间 的最短路径。因此,被广泛应用于旅行商问题 ( TSP )、 Job-shop 调度问题、指派问题等等,都