人工鱼群算法

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Yj/ nf > δYi,表明最优伙伴
的周围不太拥挤,则Xi朝此
伙伴移动一步:
否则,执行觅食行为
▪ 目标函数(即食物浓度函数)是用来求人工鱼当前位置的食物浓度,其实就是求给定变
量的函数值,例如计算以下函数的最大值:

f(x)=xsin(10π)+2.0 ,-1≤x ≤1
▪ 此时的食物浓度函数如下:

基本思想
鱼群特点: 在一片水域中,鱼存在的数目最多的地方就是本水域中富
含营养物质最多的地方。
算法作用:全局择优
鱼群行为:觅食,聚群,追尾。
算法描述
人工鱼的视觉描述
其中Rand()函数为产生0到1之间
的随机数;Step为步长
序号
变量名
变量含义
1
N
人工鱼群个体大小
2
{Xi}
人工鱼个体的状态位置、Xi=(x1,x1,···,xn),其中xi=(1,2,···,n)为待
▪ function [Y] = AF_foodconsistence( X )
▪ fishnum=size(X,2);
▪ for i=1:fishnum
▪ Y(1,i)=X(i)*sin(10*pi*X(i))+2;
▪ end
▪ EX:f(x)=xsin(10π)+2.0 ,-1≤x ≤1
▪ 一元函数优化参数选择
2)对初值的要求不高,随机产生或设为固定值均可。
3)对参数设定的要求不高,容许范围大。
4)具备并行处理能力,寻优速度较快。
5)具备全局寻优能力,能快速跳出局部极值点。
6)具有较快的收敛速度,可以用于解决有实时性要求的问题;
7)对于一些精度要求不高的场合,可以用它快速的得到一个可行解;
8)不需要问题的严格机理模型,甚至不需要问题的精确描述,这使得它的应用范围得
算法实现
▪ 鱼群中的每条人工鱼均为一组实数,是在给定范围内产生随机数组。例
如,鱼群大小为N,有两个待优化的参数 x,y,范围分别为[x1,x2]和
[y1,y2],则要产生一个2行N列的初始鱼群,每列表示一条人工鱼的两个参

Xi|n =0
Xj = Xi + rand()*Visual
n=n+1
NO
以延伸.
综上所述,该算法是一种基于集群智能的新型的高效寻优方法
▪ ⑴具有克服局部极值,取得全局极值的能力
▪ ⑵算法中仅使用目标问题的函数值,对搜索空间有一定的自适应能力
▪ ⑶具有对初值与参数选择不敏感,鲁棒性强,简单易实现,收敛速度快
和使用灵活等特点,可以解决经典方法不能求解的带有绝对值且不可导
二元函数的极值问题
序号
函数名
函数功能
1
AF_init
初始化鱼群函数
2
AF_prey
觅食行为函数
3
AF_swarm
聚群行为函数
5
AF_dist
计算鱼群个体距离函数
6
AF_foodconsistence
当前位置的食物浓度函数
开始
算法流程图
设定N,Step,Visual,try_number,delta,MAXGEN,gen=1
在给定范围内初始化鱼群{X1,X2,...Xn}
i=1
Xi聚群行为,得到(Xnext1,
Ynext1)
Xi追尾行为,得到(Xnext2,
Ynext2)
NO
Xi = Xnext1
YES
Ynext1>Ynext2
i=i+1
NO
i>=N
YES
gen=gen+1
Gen>MAXGEN
YES
确定最优解
结束
NO
Xi = Xnext2
工鱼af1、af2、af3执行追尾行动,向af0游动,人工
鱼af4、af5执行觅食行为。此时δnf 越大执行追尾行
动的人工鱼越少,反之越多

以极大值为例(极小值的情况正好和极大值相反), δ越大,表明允许的拥挤程度越
小,人工鱼摆脱局部极值的能力越强;但是收敛的速度会有所减缓,这主要 因为人工鱼
在逼近极值的同时,会因避免过分拥挤而随机走开或者受其它人工鱼的排斥作用,不能
Yi<Yj
NO
YES
Xi|next =Xi + rand * Step *
n>=try_number
YES
X
|| X
j


j
X
X
i
i
||
Xi|next =Xi + rand * Step
人工鱼Xi在其视野内随机
选择一个状态Xj,分别计算它
们的目标函数值进行比较,如
果发现Yj比Yi优,则Xi向Xj的
方向移动一步
f
YES
Xi|next =Xi + rand * Step *
||
X
X
c
c


X
X
i
i
||
Xi 进行觅食行为
人工鱼Xi搜索当前邻域内(dij
<Visual)的伙伴数目nf及中心位置
Xc,若 Yc/ nf > δYi,表明伙伴中心
位置状态较优且不太拥挤,则Xi朝
伙伴的中心位置移动一步,
否则,执行觅食行为
精确逼近极值点。可见,δ的引入避免了人工鱼过度拥挤而陷入局部极值,另一方面,
该参数会使得位于极值点附近的人工鱼之间存在相互排斥的影响,而难以向极值点精确
逼近,所以,对于某些局部极值不是很严重的具体问题,可以忽略拥挤的因素,从而在
简化算法的同时也加快了算法的收敛速度和提高结果的精确程度
1)只需比较目标函数值,对目标函数的性质要求不高。
Xi
确定di,j < Visual 的伙伴数目nf 及其中Yj 最大
的伙食Xj
Y
n
j
> δYi
NO
f
YES
Xi|next =Xi + rand * Step *
X
|| X
j
j


X
X
i
i
||
Xi 进行觅食行为
人工鱼Xi搜索当前邻域
内( dij <Visual )的伙伴中
的函数Yj最优伙伴Xj,如果
优化变量
3
Yi=f(Xi)
第i条人工鱼当前所在位置的食物浓度,Yi为目标函数
4
Dij = || Xi-Xj ||
人工鱼个体间的位置
5
Visual
人工鱼的感知距离
6
Step
人工鱼移动的最大步长
7
Delta
拥挤度
8
Try_number
觅食行为尝试的最大次数
9
n
当前觅食行为次数
10
MAXGEN
最大迭代次数
参数
取值
参数
取值
人工鱼数
50
感知距离
1
最大迭代次数
50
拥挤度因子
0.618
觅食最大试探次数
100
移动步长
0.1
▪ EX:f(x1,x2)=sin(1)/x1* sin(2)/x2,-1≤x1,x2 ≤1
▪ 一元函数优化参数选择
参数
取值
参数
取值
人工鱼数
100
感知距离
2.5
最大迭代次数
50
拥挤度因子
否则,Xi继续在其视野内选
择状态Xj,判断是否满足前进
条件,反复尝试Try-number次
后,仍没有满足前进条件,则
随机移动一步使Xi到达一个新
的状态
聚群的规则:
1.尽量向临近伙伴的中心移动
2.避免过分拥挤
Xi
确定di,j < Visual 的伙伴数目nf 及他们的中心
位置Xc
Y
n
c
> δYi
NO
▪ ⑴视野的改进
▪ ⑵分段优化方法
▪ ⑶混合优化方法
Thank you!
0.618
觅食最大试探次数
100
移动步长
0.3
算法分析
在求极大值问题中: δ=1/(αnmax), α∈(0,1]
其中α为极值接近水平,nmax为期望在该邻域内聚集的最大人工鱼数目。
在求极小值问题中: δ=αnmax , α∈(0,1]
▪ 拥挤度因子与nf相结合,通过人工鱼是否执行追尾和聚群行为对优化结果产出影响
▪ 对追尾行为的描述
图中af0为人工鱼af1-5在各自视野内的最优人工鱼,
其实物浓度为Yj,C1为以af0为圆心,以视野为半径的
圆,即能探知af0的最远距离,人工鱼越靠近af0,状
态越优
极大值情况下:当δnf ≤1时,所有人工鱼af1-5都
执行追尾行为,向af0游动;当δnf >1时,若C2的食
物浓度为Yj/δnf 的等浓度食物圈,则C2与C1间的人
相关文档
最新文档