基于优化问题的多目标布谷鸟搜索算法关键字:布谷鸟搜索、元启发式算法、多目标、最优化摘要:在工程设计方面,很多问题都是典型的多目标问题,而且,都是复杂的非线性问题。
现在我们研究的优化算法就是为了解决多目标化的问题,使得与单一目标问题的解决有明显的区别,计算结果和函数值有可能会增加多目标问题的特性。
此时,元启发式算法开始显示出自己在解决多目标优化问题中的优越性。
在本篇文章中,我们构造了一个新的用于解决多目标优化问题的算法——布谷鸟搜索算法。
我们通过一系列的多目标检验函数对其的有效性已经做出来检验,发现它可以应用于解决结构设计等问题中去,例如:光路设计、制动器设计等。
另外,我么还对该算法的主要特性和应用做了相关的分析。
1.简介在设计问题中经常会考虑到很多多重的复杂问题,而且这些问题往往都具有很高的非线性性。
在实际中,不同的目标之间往往会有分歧和冲突,有时候,实际的最优化解决方案往往不存在,而一些折中的和近似的方案往往也可以使用。
除了这些挑战性和复杂性以外,设计问题还会受到不同设计目标的约束,而且还会被设计代码、设计标准、材料适应性、和可用资源的选择,以及设计花费等所限制,甚至是关于单一目标的全局最优问题也是如此,如果设计函数有着高度的非线性性,那么全局最优解是很难达到的,而且,很多现实世界中的问题经常是NP- ,为整数时,我们有当图2表明他们在100步之内的飞行路线时,图1则表示他们飞行100个步长所遵循的levy分布图。
这一情况指出levy飞行比布朗随机游动在发现事物方面的能力要有效的多,以内其有着较大的搜索范围。
对于他的有效性,又很多原因可以作为解释,其中一种是由于levy的方差比布朗运动的线性关系有着更快的增长率。
(10)2.3 多布标布谷鸟搜索算法在最初由杨新社教授和Deb教授提出的单一目标的布谷鸟优化算法中使用了三条基本的准则:(1)每一只布谷鸟一次只产一个蛋,然后会将你这一只蛋丢到随机选择的一个巢穴中。
(2)在一个最佳的巢中,有着质量最优的蛋,这会使下一代更好的繁殖下去。
(3)可供选择的寄主巢穴的数量是有限的,而且寄主也会发现异种蛋,这样的几率为,也会扔掉这些异种的蛋,或者直接丢弃自己原本的巢穴而去建一个新的巢。
对于k个不同目标的多目标优化问题,我们可以将以上规则做以修改,使得此规则可以同时用于多目标的需要。
(1)每一个布谷鸟一次只产一个蛋,然后将这些蛋放入随机选择的巢中,第k个蛋代表第k个目标。
(2)每一个巢中的蛋都会以的几率被遗弃,同样一个有k 个蛋的巢也会根据蛋的相似性和区别以的几率被重建。
有时,随机的混合也会用于其中。
简单的说,这个最后的假设可以近似的看成一个分数,而且这n个巢也会被新的巢所取代,对于目标的最大化,一个解决方法的适应性和可行性可以简单地归结为一些目标函数的求解问题,而且不受限制的方法也应该被广泛的发现。
用数学的语言来说,第一条规则可以修改为一个随机过程,这样的话,一个新的算法策略就可以随机的由随机游走或者levy飞行来总结得出。
同时,有局限性的数字序列可以由算法决定,也可以想象为一个交叉的过程,对于每一个巢,可以有k种如(11)式的解决方法,本质上说,第二条规则则可以被修改为精英策略,这样最佳的解决策略就可以用于下一代中,而且,这样的选择也可以帮助我们确认此算法过程的正确性。
除此之外,第三条规则可以被类似的考虑为变异,这样最差的解决方法就可以以一定几率被丢弃,新的解决策略就可以根据解决策略之间的相似性被我们发现。
这样也就可以将levy飞行与不同结果的解决策略相结合,从而使得这样的变异变得向量化。
这种独特的结合过程可以很好的确认算法的有效性。
基于这三种规则,多目标布谷鸟搜索算法的基本步骤可以总结为如表3的一系列伪代码,当我们发现新的可以用于解决策略时,用i表示布谷鸟,那么一个levy飞行就可以用以下式子来表示(11)此时是一个步长,在大多数情况下,我们可以使用。
为了使不同的解决策略可以有很好的适应性,我们也可以使用如下式子:(12)这里的为一个常数,当两个不同的随机解决策略在一个时期内相一致时,这种模拟就可以看出巢中的蛋被发现的几率就会很小。
这里的表示被选择的目标,当其中的随机步长由levy 分布中的最大步长决定时,levy 飞行有效的提供了一个随机游走的模型:(13)此式有一个无穷大的方差,且有无限种可能,在这里,有着连续的跳跃点或步长的布谷鸟的本质,其实是一个遵循规定步长的分布。
另外,最差巢穴会以比率被遗弃,所以新的巢穴可以通过随机的游走和混合来被重新建立,被混合的蛋可以通过一些数字序列与寄主的蛋之间的相似性和区别来给出。
显然,步长大小s 的决定不是通过levy 飞行给出的一般值,一个应经被杨新社教授研究过的一个设计问题可以简单的总结如下:)(||01.0~)()()()(1)()(0t i t j t i t j x x v u levy x x s -⊕-=ββα(14)当u 和v 都服从正交的分布时,即:(15)1,2]2/)1[()2/sin)()1(/12/)1(=⎭⎬⎫⎩⎨⎧+Γ+Γ=-v u σββπββσββ此时,为标准的伽马分布函数。
3. 数值结果3.1 参数研究现在被提及的多目标布谷鸟搜索是用Matlab 来实现的,其计算时间在一到两分钟之内,我们已经通过一系列变化的参数对其进行了测试,例如:种群规模n 、levy 飞行参数、发现几率。
=0.1.0.2...,0.5...,0.9,我们可以发现应用到实际中的最佳参数值分别是:n=25-50, =0.25-0.5, =1或1.5.另外参数可以去0.01到0.5之间的值,且最佳的取值为0.1。
3.2 多目标测试函数我们对于多目标优化问题,有很多不同的测试函数,但是,我们仍需要建立一个更为广泛的函数使得其可以包含Pareto front 分布和Pareto 优化问题。
为了得到多目标布谷鸟搜索算法,我们需要在这些函数中选择的建立一个凸函数、非凸函数和非连续的Pareto front 分布函数。
我们也需要建立一个包含复杂的Pareto 函数,为了更为具体的说明本文的问题,我们测试了如下的五个函数:在通过多目标布谷鸟搜索算法整理了200个Pareto点后,我们可以对Pareto front 与Pareto 作如图4的对比:我们可以定义距离或者两个函数分布之间的误差估计如下式子:∑=-=-=Njt ejtefPF PFPFPFE122)((24)当N表示数值的点时,正确的集合可以由以下的循环来得出,如图5:图5,表明参数根据左边循环与右边对数关系的下降趋势。
我们可以清楚的看到我们的布谷鸟搜索算法实际上对于大多数参数都收敛。
所有测试函数的测试结果我们在表1做出了总结。
关于Pareto 分布的相关函数结果如图6和图7所示:为了把之前提过的多目标布谷鸟搜索算法和其他已经建立的多目标函数做以对比,我们认真的选取了文献中一些可用的结果,在那些不适用额结果中,我们尝试着用一些已被证明的算法来对这些结果做以重新的研究,特别的,我们也将其他算法做了相关的对比,包括矢量估计遗传算法VEGA、矢量估计遗传算2、多目标进化差分算法MODE、多目标优化进化遗传算法DEMO、多目标蜂群算法、强Pareto 算法。
这些算法的性能总计如表2:4.优化设计优化设计,特别是设计结构优化,在工业和工程中有很多的应用。
在文献中对此的研究有很多不同的评价标准。
其中包括对于梁的焊接标准和制动器的设计。
在本篇文章的最后,我们将运用多目标布谷鸟搜索算法对这两种设计标准做以研究。
4.1 梁的焊接设计关于梁的焊接设计是一个已经被很多研究者解决的经典设计问题。
此问题中有4个设计变量:宽(w)、长(L)、深度(d)、整个梁的厚度(h)。
我们的设计目标是使得制造的成本和产品的倾斜度达到最小。
这个问题可以用数学语言来表示为:具体过程:我们对此做的简单的限制为:0.2≥hwdL≥≤,1.0≤,.012510,通过使用MOCS,我们对这一问题做出了解决。
关于近似的Pareto front 问题我们在图8中根据50种非限制性经过1000次迭代对此问题作了相关的总结。
为了了解我们提出的MOCS怎样在实际的设计问题中使用,我们同样将其运用到其他的类似问题中,在图9中我们把绘制的图像的指数收敛速度作了对比,通过对比,我发现MOCS的收敛速度在指数收敛的算法中收敛速度最快。
4.2 制动器设计通过多目标优化算法设计一个多用的制动器需要另一个设计标准。
我们的目标是其质量和制动时间达到最小,其中的参数有内直径r、外直径R、推力F、表面摩擦力S。
这些都是在转矩、压力、温度和制动距离这些的限制下设计的,这个设计问题可以用式子表示为:Pareto front问题,通过MOCS进行1000此迭代之后选择的50个点如图10,我们可以看出它的曲线是光滑的,比之前的结果更优。
图11中绘制了关于指数收敛的收敛速度的比较图,我们从这两个图中看出MOCS的收敛速度在两种情况下都比较快,这也就再一次的说明了MOCS为我们提供了一个更为有效的解决优化设计问题的方法。
对于这三种基准问题和测试函数的模拟表明,MOCS 确实是一种对于多目标优化问题而言非常有效的算法,它可以解决很多高度非线性的有许多复杂限制条件的问题。
5.总结我们知道,基于多目标的优化问题本身是很难得以解决的,在本篇文章中,我们成功的对此问题建立了一个新的算法,称之为多目标布谷鸟搜索算法。
我们提出的这个MOCS已经通过一系列测试函数对其有效性和准确性做了相关的测试研究,并且将此算法运用到了很多工程结构问题当中,结果表明,此算法是一个行之有效的算法。
在与其他算法的比较中,布谷鸟搜索算法在很多测试中都有着较好的表现,这要归结于布谷鸟算法将其他优秀算法的结合能力上。
例如,levy飞行、精英策略、变量变换、交叉变异。
此外不是特别优秀的算法往往会被好的算法所取代,因此所有这些算法之间的平衡与巧妙结合的机制也非常重要,显然,通过一系列测试函数确认的算法将会有一个很好的发展前景。
被提出的其他的测试函数和比较规则也是非常必要的,在我们未来的工作中,我们将会关注一系列测试问题中的参数研究,包括非连续的和混合的优化问题,我们将努力测试出Pareto front 问题的多样性,以提高算法不同的适应性,其实更好的适应于更多不同的问题。
有很多有效的科学技术可以使得Pareto front 问题更具多样性,而一些技术之间的相互结合可以很好地提高MOCS的有效性。
以后我们更进一步的研究就会更在意多目标优化问题的算法与其他主流方法的不同,另外,这也会使得其他的算法可以由更加令人满意的效果。