一种改进的自适应变异蝙蝠算法_盛孟龙
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
收稿日期:2013-11-25修回日期:2014-03-03网络出版时间:2014-07-28
基金项目:陕西省软科学基金项目(2012KRM58);陕西省教育自然科学基金项目(12JK0744)
作者简介:盛孟龙(1987-),男,河南驻马店人,硕士,研究方向为智能算法、元启发式算法;贺兴时,教授,研究方向为智能计算、数据挖掘的理
论与方法、概率论与数理统计等。
网络出版地址:http ://www.cnki.net /kcms /detail /61.1450.TP.20140728.1222.013.html
一种改进的自适应变异蝙蝠算法
盛孟龙,贺兴时,王慧敏
(西安工程大学理学院,陕西西安710048)
摘
要:针对蝙蝠算法在解决高维复杂问题时容易陷入局部最优解和精确度不高的问题,文中提出了一种改进的蝙蝠算
法。在原算法的基础上,
引入一种交叉变换的方式更新蝙蝠群体的位置,一方面是为了提高蝙蝠算法的遍历性,另外还可以减小蝙蝠算法陷入局部最优解的可能性。模拟蝙蝠发声的音量变化,采用自适应的变换的方式改进蝙蝠算法最优解的选择模式,达到提高算法的精度和收敛速度的目的。最后通过标准的测试函数对改进后的算法进行数值模拟,结果显示,改进后的算法较为有效。
关键词:蝙蝠算法;交叉变换;Beat 分布;自适应变异中图分类号:TP301.6
文献标识码:A
文章编号:1673-629X (2014)10-0131-04
doi :10.3969/j.issn.1673-629X.2014.10.031
An Improved Algorithm for Adaptive Mutation Bat
SHENG Meng-long ,HE Xing-shi ,WANG Hui-min
(College of Science ,Xi ’an Polytechnic University ,Xi ’an 710048,China )
Abstract :In view of the problem which is easy to fall into local optimal solution and the accuracy is not high in solving high-dimensional complex problems for bat algorithm ,propose an improved algorithm of bat in this paper.On the basis of the original algorithm ,introduce a cross transform to update the location of the bat population ,
one hand is to enhance the traverses of bat algorithm ,on the other hand can reduce the possibility of falling into local optimal solution.Analog bat sound volume changes ,using an way of adaptive transform to im-prove the selection mode of bat algorithm optimal solution ,achieving the purpose of improving the accuracy and convergence rate.Final-ly ,the standard test function is used to conduct the numerical simulation for the improved algorithm ,the results show that the improved al-gorithm is more effective.
Key words :bat algorithm ;cross-conversion ;Beat distribution ;adaptive mutation
0引言
蝙蝠算法是Yang Xinshe 在2010年提出的[1],灵感是来源于自然界的蝙蝠觅食的过程。和粒子群优化算法一样,蝙蝠算法也是基于群体的随机搜索机制,区别在于蝙蝠算法的随机性更强,因此蝙蝠算法具有收敛速度快、鲁棒性好的优点[2]。由于蝙蝠算法具有的概念简单、易于实现、结构简洁等优势,使该算法在多个学科和工程领域得到了广泛的应用[3-7]。为了进一步提高蝙蝠算法的精度,文中将对蝙蝠算法做进一步研究,引入一种自适应和交叉变换的方法,一方面可以提高算法的精度,另一方面可以增加群体多样性。实验结果表明效果很好。
1
蝙蝠的行为及蝙蝠算法
1.1
蝙蝠的速度和位置更新
蝙蝠是靠一种声呐来探测猎物,躲避障碍物的。
利用回声定位的声学原理,蝙蝠通过调整发声的频率来判断猎物的大小,根据回声的变化探测目标物的距离、方向、移动速度、大小等,从而使蝙蝠能准确无误地进行飞行和扑食[8-9]。根据蝙蝠的这种生活习性,与目标优化问题相关联,2010年由Yang Xinshe 提出了这种蝙蝠算法。算法给出了由n 只蝙蝠组成的群体在飞行过程中更新速度、位置、响度及脉冲速率的数学表述形式:
f i =f min +(f max -f min )β
(1)
第24卷第10期2014年10月
计算机技术与发展
COMPUTERTECHNOLOGY AND DEVELOPMENT
Vol.24No.10Oct.2014
v t i =v t-1
i
+(x t
i
-x
*
)f
i
(2)
x t i =x t-1
i
+v t
i
(3)
其中,x t
i 和v t
i
分别表示在d维搜索空间下蝙蝠群
体中第i只蝙蝠的第t代的位置和速度,i=1,2,…,n;β∈[0,1]是一个服从均匀分布的随机向量;x
*
表示当前全局最优位置(解),是在所有蝙蝠搜索到的解当
中,通过比较得到的位置。由于λ
i *f
i
是速度增量,可
以根据具体问题的需要,固定一个因素λ
i (或f
i
),同
时使用另一个因素f
i (或λ
i
)来调整速度的改变。在
实现过程中,依据问题需要搜索的范围大小,令f
min
=
0,f
max =O(1)。每只蝙蝠的初始化是按照[f
min
,f
max
]
间的均匀分布随机赋给一个频率。
对于局部搜索,一旦在当前最优解中选中了一个解,则每只蝙蝠将按照随机游走的方式产生局部新解。
x new =x
old
+εA t(4)
其中,ε∈[-1,1]是一个随机数;A t=<A t
i
>是所有蝙蝠在同一个时间段的平均音量。
蝙蝠的速度和位置更新步骤有些类似于标准粒子
群优化,粒子群优化中的f
i
本质上是控制粒子群体的移动范围和空间的。在一定程度上,BA可以看作是标准粒子群优化和强化的局部搜索的平衡结合,其平衡受音量和脉冲发生率的控制。
1.2蝙蝠的音量和脉冲发生率
音量A和脉冲发生率f按照以下迭代过程更新。当蝙蝠找到猎物时,音量就会降低,脉冲发生率就会增加,音量会以任意简便的值改变。蝙蝠i的音量和脉冲发生率更新公式为:
A t+1 i =αA t
i
,r t+1
i
=r0
i
[1-exp(-γt)](5)
其中,α和γ为常量。
对任意的0<α<1,γ>0,有
A t
i
→0,r t i→r0i,as t→#(6)
最简单的情况是令α=γ,在实现中,文中使用的是α=γ=0.95。
2改进的蝙蝠算法(ABA)
为解决蝙蝠算法在高维问题上的弱势,引入一种交叉变换的方式,影响蝙蝠的位置更新,即将式(7)中的均匀分布的随机向量β写成一个服从Beta分布的
随机向量β
i
∈[0,1],如此式(1)就变成了式(7):
f i =f
min
+(f
max
-f
min
)β
i
(7)
Beta分布覆盖率包含了从均匀分布到正态分布及各种不对称的分布,是常见分布中少数取值在有限区间的分布,可用来当作取值在(0,1)的机率模式,具有广泛的应用前景和普适性。
为了使蝙蝠算法的位置更新更为灵活多样,将算法的速度更新公式变成以下形式:
v t
i
=εv t-1
i
+(x t
i
-x
*
)f
i
(8)其中,ε为学习因子;ε∈N(0,1)是一个服从正态分布的随机向量。
由于算法的精确度是评估算法优劣的一个重要因素,所以在算法收敛过程中,对局部最优解的搜索直接影响到算法的精确度[10]。在蝙蝠算法中,局部搜索是通过对蝙蝠的平均音量来控制的。文中使用自适应变异的依据如下[11]
x
new
=x
old
+σ'
ij
·Betarand
j
()(9)
其中,σ'
ij
=σ
ij
*exp(τN(0,1)+τ'N
j
(0,1)),σ
ij 取值为蝙蝠的最低音量A=0.25,N(0,1)表示均值为
0、标准差为1的正态随机数,N
j
(0,1)表示针对每一个j的不同的伪随机数,τ和τ'分别设置为12
槡n和12槡
槡n[12],n为迭代次数;Betarand j()是一个服从
Beta分布产生的随机数。σ'
ij
·Betarand
j
()表示音量A 随着在搜索最优解过程中不断的变化,最大值可达到给定的上限,最小值可非常接近0,随着搜索的不断进行,对局部的搜索也更为充分,从而达到更高精确度。
通过上述分析,文中提出了一种改进的蝙蝠算法—自适应变异蝙蝠算法。假设蝙蝠种群大小为n,
搜索空间的维度为D,第i只蝙蝠的位置为x(i)=(x
i1
,
x
i2
,…,x
iD
),其中i=1,2,…,n。自适应变异蝙蝠算法的基本步骤概括如下:
Step1:初始化种群蝙蝠规模和搜索空间维数,以及第i只蝙蝠位置:x(i)=randn(1,D),i=1,2,…,n;初始化速度v(i),i=1,2,…,n;初始化脉冲发射速率R,脉冲响度A(i),脉冲频率F(i),初始适应度值fitness(i)=Z(x(i))(i=1,2,…,n),当前最优适应度
值f
best
和当前最优位置(解)x
best
;
Step2:利用式(2) (4)产生新解;
Step3:判断是否满足变异条件rand>R,如满足,
则通过式(9)更新新解的位置x
new
;否则转至Step4;
Step4:判断新解的值是否满足Z
new
≤fitness(i),如果满足,转至Step5,如果满足rand<R,更新当前适
应度值为新的位置x
new
,否则转至Step5;
Step5:比较新适应度值和当前最优解适应度值是
否满足f
best
≤Z
new
,如果满足,则更新当前最优适应度值以及最优位置(解),否则转至Setp2;
Setp6:更新当前最优位置(解)x
*
,以及对应参数;判断是否满足终止条件,满足则返回Step2,否则算法结束,输出最优值。
3实验设置及结果分析
3.1测试函数
文中采用了通常进行优化算法实验的Benchmark
·
231
·计算机技术与发展第24卷