You are on page 1of 7

 2002 年 11 月 系统工程理论与实践 第 11 期 

文章编号: 100026788 ( 2002) 1120032207

一种基于动物自治体的寻优模式: 鱼群算法

李晓磊, 邵之江, 钱积新


( 浙江大学系统工程研究所, 浙江 杭州, 310027)

摘要:  根据鱼群的行为特点, 并应用动物自治体的模型, 提出了一种自下而上设计的新型的寻优策略2


人工鱼群算法 (A rtificia l F ish 2sw a rm A lgo rithm ) Λ通过仿真试验的研究表明, 这是一种有效的寻优模式Λ
关键词:  鱼群算法; 动物自治体; 动物行为; 寻优
中图分类号:  T P18        文献标识码:  A    

A n O p t im izing M ethod B a sed on


A u tonom ou s A n im a t s: F ish 2sw a rm A lgo rithm
L I X iao 2le i, SHAO Zh i2jiang, Q IAN J i2x in
( In stitu te of System s Eng ineering, Zhejiang U n iversity, H angzhou 310027, Ch ina )

Abstract:  A novel op tim izing m ethod, F ish 2sw a rm A lgo rithm , w a s p ropo sed in th is p ap er. It ba sed on
the m odel of au tonom ou s an im a ts, and referred to the behavio r of fish schoo l. It u sed the bo ttom 2up de2
velopm en t p rocess. It w a s p resen ted to be a k ind of efficien t op tim izing m ethod, th rough a series of ex 2
p erim en ta l study.
Key words:  fish 2sw a rm a lgo rithm ; au tonom ou s an im a ts; an im a l behavio r; op tim ize

1 引言
在动物的进化过程中, 经过漫长的自然界的优胜劣汰, 形成了形形色色的觅食和生存方式, 这些方式
为人类解决问题的思路带来了不少启发和鼓舞Λ 动物一般不具有人类所具有的复杂逻辑推理能力和综合
判断能力的高级智能, 它们的目的是在个体的简单行为或通过群体的简单行为而达到或突现出来的Λ
动物行为具有以下几个特点: 1) 适应性: 动物通过感觉器官来感知外界环境, 并应激性的做出各种反
应, 从而影响环境, 表现出与环境交互的能力; 2) 自治性: 动物有其特有的某些行为, 在不同的时刻和不同
的环境中能够自主的选取某种行为, 而不是通过外界的控制或指导; 3) 盲目性: 不像传统的基于知识的智
能系统, 有着明确的目标; 单个个体的行为是独立的, 与总目标之间没有直接的关系; 4 ) 突现性: 总目标的
完成是在个体行为的运动过程中突现出来的; 5) 并行性: 各个体的行为是实时的、并行进行的Λ
本文分析了鱼类的活动特点, 提出了一种基于动物行为的自治体寻优模式Λ

2 鱼群行为分析
在一片水域中, 鱼生存数目最多的地方一般就是本水域中富含营养物质最多的地方, 因此, 本算法就
依据这一特点来模仿鱼群的觅食行为从而实现寻优Λ
作者通过对鱼类生活习性的观察, 总结并提取出了适用于本算法的以下几种典型的行为:
鱼的觅食行为: 平时我们会看到鱼儿在水中自由的游来游去, 这一般可视为一种随机移动, 当发现食

收稿日期: 2001205231
资助项目: 863 课题 ( 2002AA 412110)
  作者简介: 李晓磊 ( 1973- ) , 男, 山东邹平人, 讲师, 主要研究智能优化理论与方法; 邵之江 ( 1970- ) , 男, 硕士生导师,
主要研究大规模系统的优化, 智能优化方法; 钱积新 ( 1939- ) , 男, 博士生导师, 主要研究复杂工业过程建模, 挖制与优化

© 1995-2005 Tsinghua Tongfang Optical Disc Co., Ltd. All rights reserved.
第 11 期 一种基于动物自治体的寻优模式: 鱼群算法 33

物时, 会向着食物逐渐增多的方向快速游去Λ
鱼的聚群行为: 鱼在游动过程中会自然地聚集成群, 这也是为了保证群体的生存和躲避危害而形成的
一种生活习性Λ 鱼群的形成也是一种突现的生动示例, R eyno ld s 认为鸟类和鱼类的群集的形成并不需要
一个领头者, 只需要每只鸟或每条鱼遵循一些局部的相互作用规则即可, 然后群集现象作为整体模式从个
体的局部的相互作用中突现出来Λ R eyno ld s 所采用的规则有三条: 1) 分隔规则: 尽量避免与临近伙伴过于
拥挤; 2) 对准规则: 尽量与临近伙伴的平均方向一致; 3) 内聚规则: 尽量朝临近伙伴的中心移动 [ 1, 2 ] Λ作者基
本沿用了这三个规则Λ
鱼的追尾行为: 在鱼群的游动过程中, 当其中一条或几条发现食物时, 其临近的伙伴会尾随其快速到
达食物点Λ
在下文中, 作者对这几种行为进行了描述和实现Λ

3 人工鱼模型 (AF )
相对于传统的人工智能系统的自上而下的设计思路, 基于动物自治体的系统采用了自下而上的设计
方法, 所以, 首先着重构造动物自治体的模型Ζ如图 1 所示, 不同于传统的通过一个决策者来进行指导的顺
序执行的基于知识的结构, 它采用的是基于行为的多并行通路结构 [ 3 ] Ζ
随着现代编程技术的发展, 尤其是面向对象技术的应
用, 使得很容易构造一个自治体模型, 同样, 人工鱼 (A F )
的模型可以用一个类来描述:
cla ss A rt ificia l_ fish
{
g
floa t A F - X [ n ];    gA F’s po sit ion
floa t A F - step; g g the d istance tha t A F
g gcan m ove fo r each step 图 1 动物自治体模型

floa t A F - visua l; g g the visua l d istance of A F


floa t A F - foodcon sistence ;  g
() gthe food con sistence of
ggA F’s cu rren tpo sit ion
vo id A F - m ove () ; ggA F m ove to the nex t po sit ion
floa t A F - fo llow () ; ggthe behavio r of fo llow
floa t A F - p rey () ; ggthe behavio r of p rey
floa t A F - sw a rm () ; ggthe behavio r of sw a rm
in t A F - eva lua te () ; ggeva lua te and select the behavio r
vo id A F - in it () ; ggto in it ia lize the A F
A rt ificia l- fish () ;
virtua l ~ A rt ificia l- fish () ;
};
3. 1 一些定义
人工鱼个体的状态可表示为向量 X = ( x 1 , x 2 , …, x n ) , 其中 x i ( i = 1, …, n ) 为欲寻优的变量; 人工鱼
当前所在位置的食物浓度表示为 Y = f (X ) , 其中 Y 为目标函数值; 人工鱼个体之间的距离表示为 d i, j =
‖X i - X j ‖; V isua l 表示人工鱼的感知距离; Step 表示人工鱼移动的步长; ∆ 表示拥挤度因子Ζ
3. 2 行为描述
3. 2. 1 觅食行为
设人工鱼当前状态为 X i , 在其感知范围内随机选择一个状态 X j , 如果在求极大问题中, Y i < Y j ( 或在
求极小问题中, Y i > Y j , 因极大和极小问题可以互相转换, 所以以下均以求极大问题讨论) , 则向该方向前
进一步; 反之, 再重新随机选择状态 X j , 判断是否满足前进条件; 反复几次后, 如果仍不满足前进条件, 则
© 1995-2005 Tsinghua Tongfang Optical Disc Co., Ltd. All rights reserved.
34 系统工程理论与实践 2002 年 11 月

随机移动一步Ζ
伪代码描述如下:
floa t A rt ificia l- fish: : A F - p rey ()
{
  fo r ( i = 0; i < t ry - num ber; i+ + )
 {
   X j = X i + R andom (V isua l) ;
   if ( Y i < Y j )
X j- X i
    X ig nex t = X i + R andom ( Step ) ;
‖X j - X i ‖
   else
    X ig nex t = X i + R andom ( Step ) ;
 }
retu rn A F - foodcon sistence ( X ig nex t );
}
3. 2. 2 聚群行为
设人工鱼当前状态为 X i , 探索当前邻域内 ( 即 d i, j < V isab le ) 的伙伴数目 n f 及中心位置 X c , 如果 Y c g
nf
> ∆Y i , 表明伙伴中心有较多的食物并且不太拥挤, 则朝伙伴的中心位置方向前进一步; 否则执行觅食行
为Ζ
伪代码描述如下:
floa t A rt ificia l- fish: : A F - sw a rm ()
{
  n f = 0; X c = 0;
  fo r ( j = 0; j < friend - num ber; j + + )
   if ( d i, j < V isua l)   {n f + + ; X c + = X j ; }
  X c = X cg nf ;
n f > ∆Y i )
  if ( Y c g
(X c - X i )
    X ig nex t = X i + R andom ( Step ) ;
‖X c - X i ‖
   else
    A F - p rey () ;
retu rn A F - foodcon sistence ( X ig nex t );
}
3. 2. 3 追尾行为
设人工鱼当前状态为 X i , 探索当前邻域内 ( 即 d i, j < V isab le ) 的伙伴中 Y j 为最大的伙伴 X j , 如果Y j g
nf
> ∆Y i , 表明伙伴 X j 的状态具有较高的食物浓度并且其周围不太拥挤, 则朝伙伴 X j 的方向前进一步; 否则
执行觅食行为Ζ
伪代码描述如下:
floa t A rt ificia l- fish: : A F - fo llow ()
{
  Y m ax = - ∞;
  fo r ( j = 0; j < friend - num ber; j + + )
   if ( d i, j < V isua l && Y j > Y m ax )  { Y m ax = Y j ; X m ax = X j ; }
  nf = 0 ;
© 1995-2005 Tsinghua Tongfang Optical Disc Co., Ltd. All rights reserved.
第 11 期 一种基于动物自治体的寻优模式: 鱼群算法 35

  fo r ( j = 0; j < friend - num ber; j + + )


  if ( d m ax, j < V isua l ) { n f + + ; }
n f > ∆Y i )
if ( Y m ax g
X m ax - X i
   X ig nex t = X i + R andom ( Step ) ;
‖X m ax - X i ‖
  else
    A F - p rey () ;
retu rn A F - foodcon sistence ( X ig nex t );
}
3. 3 行为选择
根据所要解决的问题性质, 对人工鱼当前所处的环境进行评价, 从而选择一种行为Λ 如对于求取极大
值的问题, 最简单的评估方法可以用试探法, 就是模拟执行聚群、追尾等行为, 然后评价行动后的值, 选择
其中的最大者来实际执行, 缺省的行为方式为觅食行为Λ

4 算法描述
鉴于以上描述的人工鱼模型及其行为, 每个人工鱼探索它当前所处的环境状况和伙伴的状况, 其实伙
伴的状况相对于其自身应该也是归属于环境的状况, 从而选择一种行为, 最终, 人工鱼集结在几个局部极
值的周围Λ 一般情况下, 在讨论求极大问题时, 拥有较大的 A F - foodcon sistence 值的人工鱼一般处于值较
大的极值域周围, 这有助于获取全局极值域, 而值较大的极值区域周围一般能集结较多的人工鱼, 这有助
于判断并获取全局极值Λ 如图 2 所示, 满意解域 S 就是所获取的全局极值域, 再根据该域的特性来获取较
精确的极值. 如通常情况下, 可以选择域内各人工鱼的重心作为极值Λ
算法的描述如图 3 所示Λ通常, 由: : A F - in it () 来初始化 A F 为随机分布在变量域内; 算法的终止条件
可以根据实际情况设定, 如通常的方法是判断连续多次所得值的均方差小于预期的误差Λ

图 2 算法示意图 图 3 A FA 的算法描述

5 仿真实验研究
寻优对象选取了下面的非线性目标函数:
sin ( x ) sin ( y )
m ax f ( x , y ) =
x y

© 1995-2005 Tsinghua Tongfang Optical Disc Co., Ltd. All rights reserved.
36 系统工程理论与实践 2002 年 11 月

s. t. x ∈ [ - 10, 10 ]
y ∈ [- 10, 10 ]
  如图 4 所示, 可以看出, 该非线性函数在全局极大值的周围密布着许多局部极值, 通常的寻优算法极
易陷入局部极值或在各局部极值间震荡, 比较适用于验证算法的性能Ζ

图 4 具有多个局部极值的非线性目标函数

下面的仿真试验中, A F 的数量为 10 个, 为了检验其寻优的效率, 令它们的初始位置都处于距全局极


值最远的 ( - 10, 10) 处, 其感知距离 V isua l= 2. 5, 每次移动的步长 Step = 0. 3, 拥挤度因子 ∆= 0. 618Ζ
图 5 为 A F 只执行聚群行为的仿真结果, 如图 5 ( a ) 中, A F 迅速聚集在最近的局部极值点附近, 图 5
( b ) 中已经有 A F 到达了全局极值的附近, 图 5 ( c) 中有更多的 A F 到达了全局极值点的附近, 且有少数 A F
聚集到了其他的局部极值点附近, 从寻优曲线可以看出, A F 能较快地跳出局部极值点, 从而较快地找到
全局极值Λ

(a ) 20 次迭代后       (b ) 50 次迭代后       (c) 100 次迭代后       (d ) 寻优曲线


图 5 聚群行为仿真结果

图 6 为 A F 只执行追尾行为的仿真结果Λ 如图 6 ( a ) 中, A F 迅速聚集在最近的局部极值点附近, 图 6 ( b )
中 A F 又快速向附近的极值点聚集, 图 6 ( c) 中有更多的 A F 聚集到了附近的局部极值点的附近, 并有 A F 开
始到达了全局极值点附近, 从寻优曲线可以看出, A F 能较快地聚集到某个极值点, 但可能会陷于其中Λ
图 7 为完整的人工鱼群算法的仿真结果, 从图中可以看出, A F 能迅速向全局极值点附近聚集, 从寻
优曲线可以看出, A F 能很快地搜索到全局极值点并较快地稳定在满意解域内Λ
由上可得出如下结论:
1) 聚群行为能够很好地跳出局部极值, 并尽可能地搜索到其他的极值, 最终搜索到全局极值Λ
2) 追尾行为有助于快速的向某个极值方向前进, 加快寻优的速度, 并防止 A F 在局部振荡而停滞不前Λ
3) 鱼群算法在对以上两种行为进行评价后, 自动选择合适的行为, 从而形成了一种高效快速的寻优
策略Λ

6 改进的鱼群算法
© 1995-2005 Tsinghua Tongfang Optical Disc Co., Ltd. All rights reserved.
第 11 期 一种基于动物自治体的寻优模式: 鱼群算法 37

(a ) 20 次迭代后       (b ) 50 次迭代后       (c) 100 次迭代后       (d ) 寻优曲线


图 6 追尾行为仿真结果

(a ) 20 次迭代后       (b ) 50 次迭代后       (c) 100 次迭代后       (d ) 寻优曲线


图 7 鱼群算法仿真结果

在以上所述的鱼群算法中, 当寻优的域较大或处于变化平坦的区域时, 一部分 A F 将处于无目的的随


机移动中, 这影响了寻优的效率, 下面引入生存机制和竞争机制加以改善Λ
6. 1 生存机制
生存机制的描述如下
E h Ε 1 ∷A F - m ove
h= ;  
ΚT h < 1 ∷A F - in it
式中 h 为生存指数; E 为 A F 当前所处位置的食物能量值; T 为 A F 的生存周期; Κ为消耗因子, 即单位时
间内消耗的能量值Λ
即当 A F 所处位置的食物能量足以维持其生命时, A F 将按照正常的行为寻优, 否则, 当此处的能量低
于其生命的维持所需时, 通常此时处于局部极值点或非极值点附近, 寻优通常会没有结果, 所以, 强制该
A F 初始化, 例如, 可以随机产生该 A F 的位置, 使其跳出该区域, 这样就相当于利用相同的存储空间增加
了寻优 A F 的个数, 从而提高了算法的效率Λ
6. 2  竞争机制
竞争机制就是实时地调整 A F 的生存周期, 其描述如下:
E m ax
T = Ε
Κ
式中 E m ax 为当前所有的 A F 中所处位置的食物能量的最大值; Ε为比例系数Λ
随着寻优的逐步进展, A F 的生存周期将被其中最强的竞争者所提升, 从而使得那些处于非全局极值
点附近的 A F 能有机会展开更广范围的搜索Λ
6. 3 仿真结果
仿真的对象及参数同上面所讨论的一致, 引入的新参数为: Κ= 0. 01,  Ε= 0. 618Λ
由图 8 可以看出, 算法的收敛速度和搜索的效率得到了明显提高Λ

7 算法对照
遗传算法作为具有全局优化能力的代表算法之一, 受到了长期的、广泛的关注, 作者将鱼群算法与之
© 1995-2005 Tsinghua Tongfang Optical Disc Co., Ltd. All rights reserved.
38 系统工程理论与实践 2002 年 11 月

图 8 改进鱼群算法的仿真结果

进行了比较Λ
由于这两种算法都存在一定的随机性, 因此, 在对照中分别进行了 10 组实验, 最后将结果求平均, 横
坐标为各算法中迭代的次数Λ
在本实验中, 鱼群算法采用了基本鱼群算法, 参数同上; 遗传算法中, 编码长度为 10, 交叉位数为 4, 变
异位数为 2Λ图 9 展示了实验的结果. 为了增强可比性, 在对照 1 中, 鱼群算法的人工鱼个体数为 10. 遗传
算法的种群数为 10. 在对照 2 中, 鱼群算法的人工鱼个体数为 50, 遗传算法的种群数为 50Λ
可见, 鱼群算法中当人工鱼个体的数目较少时, 还不能体现出它的优势, 当然, 对于遗传算法来说, 种
群数较少时也具有容易陷入局部极值和早熟的可能; 当人工鱼个体的数目增加时, 就体现出了它快速有效
的集群性优势Λ

( 1) 对照 1 ( 2) 对照 2
图 9 鱼群算法与遗传算法的比较

8 结束语
人工鱼群算法采用了自下而上的设计思路, 从 A F 的个体行为出发, 达到了最终结果的突现, 为优化
问题的解决提供了一条新的思路Λ 总结以上的研究, 可以得出鱼群算法的以下特点:
1) 并行性: 多个 A F 并行的进行搜索;
2) 简单性: 算法中仅使用了目标问题的函数值;
3) 全局性: 算法具有很强的跳出局部极值的能力;
4) 快速性: 算法中虽然有一定的随机因素, 但总体是在步步向最优搜索;
5) 跟踪性: 随着工作状况或其他因素的变更造成的极值点的漂移, 本算法具有快速跟踪变化的能力Λ
由以上的研究可以看出, 本算法仅仅获取的是系统的满意解域, 对于精确解的获取还需进行适当的改进Λ

参考文献:
[ 1 ]  戴汝为, 周登勇. 智能控制与适应性[A ]. 第三届全球智能控制与自动化大会 (W C ICA ’2000) [C ], 合肥, 2000: 11- 17.
[ 2 ]  R eyno ld s C W. F lock s, herd s, schoo ls: a d istribu ted behavio ra l m odel [A ]. P roceed ing s of S IGGRA PH ’87 [C ],
A naheim , Ca lifo rn ia. Com p u ter G rap h ics 1987: 21 ( 4) : 25- 34.
[ 3 ]  J effrey D ean. A n im a ts and w ha t they can tell u s[J ]. T rend s in Cogn itive Sciences. 1998, 2: 60- 67.

© 1995-2005 Tsinghua Tongfang Optical Disc Co., Ltd. All rights reserved.

You might also like