-1-
中国科技论文在线
一种基于 Logistic模型的人工鱼群算法
王培崇 1,2,李丽荣 3,贺毅朝 2
(1. 中国矿业大学(北京)信息工程学院,北京 100083;
2. 石家庄经济学院信息工程学院,石家庄 050031;
3. 石家庄经济学院艺术设计学院,石家庄 050031)
摘要:为了克服人工鱼群算法容易陷入局部最优以及求解精度较低的弱点,提出了一种基于
logistic 模型的自适应人工鱼群算法。算法运行过程中,步长和视野两个参数自适应调整,
在算法的早期保持种群多样性,并具有较高的收敛速度;在算法后期加强局部搜索能力,算
法具有较高的求解精度。通过在 5 个经典 Benchmark 函数上的实验及相关的聚类实验,表
明该算法具有较好的收敛速度和求解精度。
关键词:人工鱼群算法;Logistic 模型;步长;视野;自适应
中图分类号: 文献标识码:A
Improved artificial fish swarm algorithm based on logistic
model
Wang Peichong1,2, Li Lirong3, He Yichao2
(1. School of Information Engineering, China University of Mining & Technology,
Beijing 100083;
2. School of Information Engineering, Shijiazhuang University of Economics,
ShiJiaZhuang 050031;
3. School of Art Design, Shijiazhuang University of Economics,
ShiJiaZhuang 050031)
Abstract: To overcome the weakness of the artificial fish swarm algorithm (AFSA), ., AFSA is more
likely to plunge into local optimum and has lower precision, an improved AFSA based logistic model is
proposed. The algorithm can automatically adjust the visual and step during the running time.
Therefore, it can keep the individuals diversity and has faster convergence speed at the initial
generations. However, the algorithm has stronger searching ability of local optimum and has higher
precision of result at a later time. Some experiments on five classical Benchmark functions and some
pertinent clusters show that this improved AFSA algorithm can be convergent to global optimization
with faster convergence speed and higher precision.
Keywords: AFSA; logistic model; step; visual; self-adaption
自遗传算法[1-3]诞生以来,通过模拟生物群体协作机制进行求解的群体智能算法发展迅
速,并取得了极为丰富的研究成果,包括粒子群算法[4-5]、人工蜂群算法[6-7]等。
作为群体智能算法中的重要一员,人工鱼群算法(Artificial Fish Swam Algorithm,
AFSA)[8-10]受到国内学者的重视和研究。该算法通过设置多个人工鱼组成一个群体,鱼群内
的个体不断地自主随机觅食,并与群体内的其他个体进行追尾、聚群操作,从而达到协同进
化的目的,群体内的个体所处的状态即是所求问题的目标函数。为了更好地提高鱼群算法的
求解精度和求解速度,文献[11]提出了一种冯·诺依曼结构的改进鱼群算法,该算法中每一个
体鱼只与其附近相邻的个体鱼实施交换信息的行为。在觅食行为中,鱼个体直接移动到当前
最佳,并采用一种自适应的参数调整方式,结果证明该算法能够较好的保持了种群多样性,
求解效果较好。文献[12]中,作者将鱼群算法与 powell 算法结合用于求解医学图像配准问题,
将鱼群算法采用步长、视野两个参数的自适应变化方式进行,运用鱼群算法进行全局粗配准,
并利用 powell 算法实现精细配准,求解效果令人满意。为了克服人工鱼群算法收敛速度慢,
求解精度低的缺点,文献[13]采用参数视野可变化机制,并在算法的后期利用随机步长机制
基金项目:高等学校博士学科点专项科研基金(20110023110002).
作者简介:王培崇,(1973-),男,副教授,博士,主要研究方向:智能信息处理、软件质量保证、信息
安全。
-2-
中国科技论文在线
保证求解精度,利用该改进的人工鱼群算法求解蜂窝网中以功率值作为测量参数的无线定位
问题,证明该算法具有搜索能力强,实现简单的优点。文献[14]通过引入小生境排挤机制,
将相似的部分个体排挤掉,并随机产生部分新个体,可保持群体的多样性。
由相关的文献可知,AFSA 比较容易陷入局部最优,而且算法后期收敛较慢,最终的求
解精度较低。为了改善该算法的弱点,本论文提出了一种基于 logistic[15]模型的改进人工鱼
群算法,该算法中步长和视野两个参数采用 logistic 映射技术实现自适应变化,较好的平衡
全局搜索与局部搜索的平衡,从而提高鱼群算法的求解精度。
1 标准人工鱼群算法
设欲求解最小化问题min ( )f X ,待求解目标函数(即鱼所处位置的食物浓度)为 ( )f X ,
当前鱼个体的状态为 1 2( , ,..., )nX X X X= 。
算法的主要参数为:鱼的视野范围 visual;拥挤因子λ ,0 1λ< < ;移动步长 step;尝试
次数 try _ number 。 标准鱼群算法具有如下多种算子行为。
(1) 自由游动:默认情况下,鱼在自己视野范围 visual 内随机游动。
(2) 觅食行为:鱼在其视野范围 visual 之内随机选择一新状态 Xj,如果 f(xj) < f(xi),则
向该状态前一步;否则,继续生成新的 Xj 进行尝试。尝试 try _ number 次后仍然不能移动,
随机移动一步。
(3) 聚群行为:鱼在其视野范围 visual 内搜索聚集鱼群的中心位置 Xc,并探测附近的同
伴个数 s。如果 /s N λ< ,并且 ( ) ( )c if X f X< ,则向该方向前进一步,否则执行觅食。
(4) 追尾行为:鱼在其视野范围 visual 内搜索最优鱼个体 Xmin。设 Xmin视野领域内的伙
伴数为 s' ,如果 min( ) ( )if X f X> 且 /s' N λ< ,向该位置前进一步,否则执行觅食行为。
(5) 更新公告板:设置一个公告板,记录鱼群内历史最佳个体的状态
bestg
X 。各人工鱼
每次迭代完成后均检查 ( ) ( )
besti g
f X f X< 是否成立,如果成立,将
bestg
X 更新为 Xi。
需要说明的是:(1) 个体的鱼随机产生的状态计算公式是 visual random()j iX X= + • ;
(2) 个 体 鱼 聚 群 行 为 中 移 动 一 步 的 长 度 计 算 公 式 是
( )( 1) ( ) step random()
|| ( ) ||
c i
i i
c i
X X tX t X t
X X t
−+ = + − � � ; (3) 追尾操作中移动一步的计算公式为
( )
( 1) ( ) step random()
|| ( ) ||
j i
i i
j i
X X t
X t X t
X X t
−+ = + − � � 。
2 改进的自适应人工鱼群算法
视野的动态调整
据文献[11]的研究可知,参数 visual 决定了个体鱼的搜索范围,如果 visual 较大,则个
体鱼的解空间搜索范围广,能够发现更多的最佳个体,可保证较强的全局搜索;如果 visual
较小,则个体鱼的搜索范围比较小,仅局限于该个体鱼的周围,可保证精细的局部搜索。
根据群体智能算法的空间搜索机制可知,群体智能算法在算法早期应该着重于全局搜
索,以保证较快的收敛速度和更广的搜索范围;在算法后期则应该着重于精细的局部搜索,
实现局部搜索,以提高算法的求解精度。故 visual 的变化采用动态机制处理要优于固定机制,
而该变化恰好符合 logistic 模型的变化规律。设 visual 的变化范围为[ min maxvisual , visual ],则
-3-
中国科技论文在线
参数 visual 的变化符合如下 logistic 模型:
min
max
dvisual visual1 visual
dt visual
visual(0) visual
α⎧ ⎛ ⎞= −⎪ ⎜ ⎟⎨ ⎝ ⎠⎪ =⎩
(1)
根据该模型,可得到 visual 的缩放变化公式:
min
min
max
visualvisual( ) visual1 ( 1)
visual
t
t
α−
=
+ − e
(2)
式中,t 为算法的迭代次数;α 为初始衰减率,用于调整 visual 的下降速度。α 的初始值越
大,visual 的下降速度越快;反之,visual 的下降速度越慢。可以很容易地证明,当 t = 0 时,
visual(t) = maxvisual ,随着 t 不断迭代增加,visual 逐渐收敛于 minvisual 。
步长的动态调整
同样由标准鱼群算法可知,步长 step 越大,个体鱼向最优位置靠近的速度越快,如果
算法处于早期,采用较大的 step,将会使算法的收敛速度较快,且跳出局部极值的能力也更
强;反之,如果在算法运行早期采用较小的 step,则会使算法的收敛速度变慢,且跳出局部
极值约束的能力变差。
同样的道理,在算法的后期,因为已经基本确定了最优解的搜索范围,如果采用较小的
step,必然会提高算法的最终求解精度,优于 step 采用固定值的机制。经过上述的分析,可
以知道,在鱼群算法的早期应该采用较大一些的 step 值,而在后期应该逐渐收敛到较小的
step 值。设 step 的取值范围为[ min maxstep ,step ],其变化规律同样符合 logitic 模型:
min
max
dstep step1 step
dt step
step(0) step
α⎧ ⎛ ⎞= −⎪ ⎜ ⎟⎨ ⎝ ⎠⎪ =⎩
(3)
根据该模型,可得步长 step 的调整公式:
min
min
max
step
step( )
step1 1
step
t
t
α−
= ⎛ ⎞+ −⎜ ⎟⎝ ⎠
e
(4)
与 visual 参数变化的分析一致,采用上述公式调整 step 值,在算法开始时使用 maxstep ,
而在算法的进行过程中逐渐减小 step 值,最终停止于 minstep 。
用户根据经验可以设置 visual 和 step 两个值的取值范围。通常,visual 的取值在 1~10
之间;step 的取值在 ~8 之间。α 设为 100。
运算步骤
将本文的改进鱼群算法标记为 AAFSA。
步骤 1 初始化算法参数,包括种群规模、视野最大及最小值、步长的最大及最小初始
值、尝试次数。迭代次数设置为 t = 1。
步骤 2 在解空间内对鱼群进行随机初始化。
步骤 3 取出当前最优解
bestg
X ,写入公告板。
步骤 4 判断算法是否符合结束条件,如果符合结束条件,则输出公告板上的最优解,
算法结束;否则执行步骤 5~10。
-4-
中国科技论文在线
步骤 5 鱼群中全部个体执行随机的自由游动,并更新各自的自身状态 iX 。
步骤 6 在视野 visual 内执行觅食行为,并移动 step。
步骤 7 执行聚群操作。
步骤 8 执行追尾操作。
步骤 9 对 visual 和 step 分别按照式(2)和式(4)进行修正调整。
步骤 10 令迭代次数 t=t+1,然后返回步骤 3。
3 实验与分析
实验 1
为验证 AAFSA 的有效性,采用 5 个经典 Benchmark 函数进行测试。它们分别是 Sphere、
Griewank、Rastrigin、Rosenbrock,Ackley 函数,测试结果如下。
Sphere 函数: 21
1
( )
n
i
i
f X x
=
= ∑ ;
Griewank 函数: 2
2
1 1
( ) cos 1
4 000
nn
i i
i i
x x
f X
i= =
= − +∑ ∏ ;
Rastrigin 函数: 2
3
1
( ) [ 10cos(2 ) 10]
n
i i
i
f X x x
=
= − π +∑
1
1exp[ cos(2 )] 20 exp(1)
n
i
i
x
n
π
=
− + +∑
;
Ackley 函数: 24
1
1( ) 20 exp( )
n
i
i
f X x
n =
= − − ∑
;
Rosenbrock 函数: 2 2 2
5 1
1
( ) [100( ) (1 ) ]
n
i i i
i
f X x x x+
=
= − + −∑ 。
5 个函数的全局最优值均为 0,对应的解空间范围分别为 Sphere 函数:[−100,100];
Griewank 函数:[−600,600];Rastrigin 函数:[−,];Rosenbrock 函数:[−50,50];Ackley
函数:[−,]。
五个函数的维度设置为 30,两个算法在五个函数上的迭代次数均设置为 f1:2000 次,
f2:3000 次,f3:10000 次,f4:3000 次,f5:10000 次。算法 AAFSA 的种群规模设为 20,
尝试次数 try_number 为 2, minvisual = 1, maxvisual = 10, minstep = , maxstep = 8,λ = 2。
AFSA 的 visual = 2, step = 2,其他参数与 AAFSA 一致,两个算法均执行 20 次,比较项目
包括最优解平均值(Mean)、标准差(Std)、获得最优解所需最小迭代次数平均值(Min),比较
结果如表 1 所示。
-5-
中国科技论文在线
表 1 AAFSA与 AFSA在 Benchmark 函数上的实验比较
Table 1 Comparison of AAFSA and AFSA on Benchmark functions
Problems AAFSA AFSA
f D Num Mean Std Min Mean Std Min
30 2000 982 1365
50 3000 1599 2590 f1
100 5000 2981 -12 -11 5000
30 3000 1191 1578
50 5000 1788 2613 f2
100 7000 3083 6154
10 3000 813 1102
20 5000 1892 2819 f3
30 10000 7162 0. 0143 10000
30 3000 -16 e-16 3000 -14 -14 3000
50 5000 -13 e-13 5000 e-12 e-11 5000 f4
100 8000 -12 e-12 8000 -11 e-10 8000
10 3000 e-7 e-6 3000 -3 e-3 3000
20 6000 6000 6000 f5
30 10000 10000 10000
从表 1 的数据可以看出,在两种算法均能获得最佳解的情况下,AAFSA 所需迭代次数
较 AFSA 少很多,说明该算法的收敛速度优于 AFSA;在两种算法均得不到最佳解的情况下,
AAFSA 的 mean 和 std 项要优于 AFSA,说明 AAFSA 较 AFSA 能更好的保证全局搜索和局
部搜索的平衡。
实验 2
基于文献[14]中提出的聚类思路,应用 AAFSA 求解聚类问题,将其与文献[14]中提出
的小生境鱼群聚类算法(NAFSA)以及 AFSA 进行比较。相同数据集上三个算法分别运行 50
次,平均聚类精度对比如表 2 所示;另外,在相同数据集上,三种算法的平均聚类时间比较
如表 3 所示。NAFSA、AFSA 的数据取自文献[14]。
表 2 AFSA、 NAFSA、AAFSA三种算法的平均聚类精度比较
Table 2 Comparison of AFSA, NAFSA and AAFSA on cluster precision
平均聚类精度/(%) 算 法
20%数据集 50%数据集 100%数据集
AFSA
NAFSA
AAFSA
表 3 AFSA、 NAFSA、AAFSA三种算法平均聚类时间的比较
Table 3 Comparison of AFSA, NAFSA and AAFSA on cluster time
算法执行时间/s
算法 750 数据集
3 000
数据集
6 000
数据集
9 000
数据集
12 000
数据集
15 000
数据集
AFSA 900 1112 1358 1980 2651 2782
NAFSA 1026 1473 1789 2589 3380 4009
AAFSA 912 1209 1321 1862 2570 2634
通过表 2 和表 3 的实验数据可知,在求解聚类问题时,AAFSA的求解精度要优于 AFSA,
但是稍低于 NAFSA。从表 3 的数据还可以看出,AAFSA 的执行时间明显较 NAFSA 短,虽
然在数据量较小时,其执行时间略高于 AFSA,但是在数据量较大时,执行时间则低于 AFSA。
综合考虑,AAFSA 较 NAFSA 和 AFSA 更加优秀。
4 结论
基于 Logistic 模型,本文提出了一种参数自适应变化的改进人工鱼群算法。算法前期采
-6-
中国科技论文在线
用较大的 visual 和 step 值,使算法能快速收敛于全局最佳解周围;而后期采用较小的 visual
和 step,可保证算法的局部精细搜索,较好地平衡全局搜索和局部搜索的矛盾。改进人工鱼
群算法的求解精度较原始鱼群算法有了较大提高,收敛速度也明显加快,较适合于求解高维
函数的优化问题,值得推广。
参考文献(References)
[1] Tang Kezong, Yuan Xiaojing, Sun Tingkai, et al. An improved scheme for minimum cross entropy threshold
selection based on genetic algorithm [J]. Knowl-based Syst, 2011, 24(8):1131-1138
[2] Kamal H, Moussa D, Patrick S. A multilevel automatic thresholding method based on a genetic algorithm for a
fast image segmentation [J]. Comp Vision Image Understand, 2008, 109(2): 163-175
[3] Liu Fei, Zeng Guangzhou. Study of genetic algorithm with reinforcement learning to solve TSP [J]. Expert Syst
Appl, 2009, 36(3): 6995-7001.
[4] Abdelkader R F. An improved discrete PSO with GA operators for efficient QoS-multicast routing [J]. Int J
Hybrid Inform Tech, 2011, 4(2): 23-38.
[5] Helwig S, Neumann F, Wanka R. Particle swarm optimization with velocity adaptation [C].//Adaptive and
Intelligent Systems, 2009. ICAIS '09. International Conference on, Klagenfurt, 2009:146-151.
[6] Dervis K, Bahriye A. A comparative study of artificial bee colony algorithm [J]. Appl Math Comput, 2009,
214(1): 108-132.
[7] 高卫峰, 刘三阳, 姜飞. 等. 混合人工蜂群算法[J]. 系统工程与电子技术, 2011, 33(5): 1167-1170.
Gao Weifeng, Liu Sanyang, Jiang Fei, et al. Hybrid artificial bee colony algorithm [J]. Syst Eng Electron, 2011,
33(5): 1167-1170. (in Chinese)
[8] 邓峰, 姚宏, 杜军. 多峰函数优化的改进人工鱼群混合算法[J]. 计算机应用, 2012, 32(10): 2904-2906.
Deng Feng,Yao Hong, Du Jun. Improved artificial fish swarm mixed algorithm for multimodal function
optimization [J]. J Comp Appl, 2012, 32(10): 2904-2906. (in Chinese)
[9] 杜晓昕, 王 波, 戴学丰. 函数依赖判定可行域的人工鱼群属性约简[J]. 计算机工程与应用, 2012, 48(9):
131-133.
Du Xiaoxin,Wang Bo, Dai Xuefeng. Artificial fish-swarm attribute reduction based on functional dependency to
determine feasible region [J]. Comp Eng Appl, 2012, 48 (9): 131-133. (in Chinese)
[10] Yong Peng. An improved artificial fish swarm algorithm for optimal operation of cascade reservoirs [J]. J
Comp, 2011, 6(4): 740-746
[11] 王联国, 洪毅. 基于冯诺依曼邻域结构的人工鱼群算法[J]. 控制理论与应用, 2010, 21(6): 775-780.
Wang Lianguo, Hong Yi. Artificial fish-swarm algorithm based on Von Neuman neighborhood [J]. Control Theor
Appl, 2010, 27(6): 775-780. (in Chinese)
[12] 赵海峰, 姚丽莎, 罗斌. 改进的人工鱼群算法和 powell 法结合的医学图像配准[J]. 西安交通大学学报,
2011, 45(4): 46-51.
Zhao Haifeng, Yao Lisha, Luo Bin. Registration of multi-resolution medical images using a modified artificial fish
swarm algorithm combined with powell’s method [J]. J Xi’an Jiaotong Univ, 2011, 45(4): 46-51. (in Chinese)
[13] 贾强, 季仲梅, 王建辉. 改进的人工鱼群算法及其在无线定位中的应用[J]. 计算机应用研究, 2011,
28(6): 2147-2150.
Jia Qiang, Ji Zhongmei, Wang Jianhui. Improved artificial swarm algoritm and its application for wireless location
[J]. Appl Res Comp, 2011, 28(6): 2147-2150. (in Chinese)
[14] 王培崇, 钱旭, 雷凤君. 新的小生境鱼群聚类算法[J]. 计算机应用, 2012, 32(8): 2189-2192.
Wang Peichong, Qian Xu, Lei Fengjun. New hybrid niching artificial fish swarm clustering algorithm [J]. Comp
Appl, 2012, 32(8): 2189-2192. (in Chinese)
[15] 陈华 , 范宜仁, 邓少贵. 基于 logistic 模型的自适应差分进化算法[J]. 控制与决策, 2011, 7(26):
1105-1108.
Chen Hua, Fan Yiren, Deng Shaogui. Adaptive differential evolution algorithm based on logistic model [J].
Control Decis, 2011, 26(7): 1105-1108. (in Chinese)