本发明属于进化算法技术领域,具体涉及一种基于生物进化原则的改进粒子群算法。
技术背景
粒子群算法(particleswarmoptimization,pso)是近年来由j.kennedy和r.c.eberhart等提出的一种通过模拟鸟群觅食行为的一种群体协作随机搜索算法。pso随机产生一组粒子,计算适应度值来评价粒子的优劣,通过迭代寻找最优解,它是通过追随当前搜索到的最优值来寻找全局最优。在整个搜索过程中,所有粒子均是群体成员,因此pso是不以适者生存原则为基础的进化算法。其概念简单、实现容易、收敛速度快、鲁棒性强,在函数优化、资源调配、图形图像处理、尺寸形状优化,结构可靠性优化设计和有限元模型修正等邻域得到广泛应用。但在复杂的优化问题中,粒子群算法存在早熟收敛,很容易陷入局部最优解,而且在迭代后期收敛速度慢,存在效率低的问题。
技术实现要素:
本发明是为了解决水光互补电站安全经济运行问题而进行的,目的在于提供一种基于生物进化原则的改进粒子群算法(animprovedparticleswarmoptimizationalgorithmbasedontheprincipleofbiologicalevolution,简称bepso)。
本发明为了实现上述目的,采用了以下方案:
本发明提供一种基于生物进化原则的改进粒子群算法,其特征在于,包括以下步骤:步骤1:初始化基于生物进化原则的改进粒子群算法的参数,该参数包括群体个数n、搜索参数的维度d、最大迭代次数gmax、惯性权重ω、学习因子c1和c2;步骤2:初始化种群位置和速度,计算每个粒子适应度值,初始化全局最优;步骤3:判断是否进入交叉变异操作,若是,进入步骤4,否则跳至步骤5;步骤4:按适应度值从小到大的顺序对粒子群进行排序分组,前一半粒子为优解组,剩下的为劣解组,优解组进行杂交操作,劣解组进行变异操作,然后将两组粒子合并成一个新种群,再同原种群一起按适应度值从小到大顺序进行排序,选出前一半新的优良粒子;步骤5:更新粒子的位置和速度,更新个体最优和全局最优;步骤6:对基于生物进化原则的改进粒子群算法是否收敛或者是否达到最大迭代次数进行判断,若是,则输出全局最优解的位置,作为优化问题的解;若否,则回转执行步骤3。
优选地,本发明提供的基于生物进化原则的改进粒子群算法,还可以具有以下特征:步骤3包括如下子步骤:步骤3.1:生成一个(0,1)之间的随机数rand;步骤3.2:以当前迭代次数g为变量构建函数p,
优选地,本发明提供的基于生物进化原则的改进粒子群算法,还可以具有以下特征:步骤4包括如下子步骤:步骤4.1:按适应度值从小到大的顺序对粒子群进行排序分组,前一半粒子为优解组,剩下的为劣解组;步骤4.2:优解组按照如下公式进行杂交操作:
进一步地,本发明提供的基于生物进化原则的改进粒子群算法,还可以具有以下特征:在步骤5中,粒子的位置和速度更新的公式为:
发明的作用与效果
本发明所提出的基于生物进化原则的改进粒子群算法,模拟自然界优胜劣汰的生物进化规律,以粒子群算法为基础,采取分组控制策略,根据适应度值大小进行排序,将粒子分为一半优解组和一半劣解组,优解组进行交叉运算,生成更优子代,劣解组进行变异运算,增加群体多样性同时可产生优秀子代,然后合并成新种群,为进一步增加群体多样性,将新种群和初始种群合成扩大种群,再根据适应度值大小进行排序,选出前一半粒子进行更新迭代;同时通过控制进入交叉、变异运算的概率显著提高粒子群算法的全局、局部搜索能力和收敛速度。本发明能广泛应用在函数优化、资源调配、图形图像处理和有限元模型修正等包含多个相近局部最优的复杂优化问题中。
附图说明
图1为本发明实施例涉及的基于生物进化原则的改进粒子群算法的流程图;
图2(a)和(b)分别为本发明实施例涉及的对于测试函数2的三维图和等值线图;
图3为本发明实施例涉及的对于测试函数1的收敛图;
图4为本发明实施例涉及的桁架模型图;
图5为本发明实施例涉及的对于模型修正问题参数收敛图。
具体实施方式
以下结合附图对本发明涉及的基于生物进化原则的改进粒子群算法的具体实施方案进行详细地说明。
<实施例>
如图1所示,本实施例所提供的基于生物进化原则的改进粒子群算法(bepso)包括以下步骤:
步骤1:初始化基于生物进化原则的改进粒子群算法的参数,这些参数包括群体个数n、搜索参数的维度d、最大迭代次数gmax、惯性权重ω、学习因子c1和c2。
步骤2:初始化种群,计算每个粒子适应度值,初始化全局最优。第i个粒子的位置为xi和第i个粒子的飞行速度为vi,则:
xi=(xi1,xi2…,xid)(1)
vi=(vi1,vi2…,vid)(2)
群体中具有最优适应度粒子的位置记为:
pg=(pg1,pg2…,pgd)(3)
群体中具有最优适应度粒子的位置记为:
pi=(pi1,pi2…,pid)(4)
步骤3:判断是否进入交叉变异操作,生成一个(0,1)之间的随机数rand,以当前迭代次数g为变量构建函数p,
若rand>p进入步骤4,否则跳至步骤5;在迭代前期,p接近于1,以较小概率进行交叉变异等操作,随迭代次数增加,进行交叉变异等操作的概率显著增大;当迭代次数达到gmax时,p接近于0.15,进行交叉变异的概率很高。
通过控制进行交叉变异等操作的概率,让算法在迭代前期充分利用基本pso在早期较强的全局搜索能力进行搜索,搜索效率高;随迭代次数增加,进行交叉变异的概率显著增加;在迭代后期,让算法以高概率随机进行交叉变异操作,充分发挥每个粒子在群体的作用,克服基本pso在迭代后期收敛效率低的问题,显著提高算法的搜索效率。
步骤4:按适应度值从小到大进行排序分组,前一半粒子为优解组,剩下的为劣解组,优解组进行杂交操作,劣解组进行变异操作,然后将两组粒子合并成一个新种群,再同原种群一起按适应度值排序,选出前一半新的优良粒子;
按适应度值从小到大进行排序分组,前一半粒子为优解组,剩下的为劣解组;优解组进行杂交操作,具体实现如下:
式中
对优解组粒子引入杂交操作,产生继承优良父代特征的更优子代,加快最优解的收敛速度,提高搜索效率。
劣解组进行变异操作,具体实现如下:
f(g)=r2(1-g/gmax)2(9)
式中
对劣解组粒子引入变异操作,既可以增加群体的多样性,增强全局搜索能力,也可以让较差的粒子通过变异,产生优解,加快收敛速度。
将新生成的
进一步增加了群体多样性,增强了算法全局搜索能力,有效避免陷入局部最优值。
步骤5:更新粒子的位置和速度,更新个体最优和全局最优;
粒子的位置和速度的更新公式为:
xi+1=xi+vi+1δt(11)
式中vi表示粒子当前的速度,vi+1表示下次迭代后粒子的速度,ω表示惯性权重,xi表示粒子当前的位置,xi+1表示下次迭代后粒子的位置,pi表示迭代中第i个粒子当前飞过的最好值,为粒子个体最优,pg表示整个群体中粒子最优值,为全局最优,c1、c2表示学习因子,
步骤6:判断,基于生物进化原则的改进粒子群算法是否收敛或者是否达到最大迭代次数?若是,则输出全局最优解的位置,即为优化问题的解;若否,则回转执行步骤3。
根据如上内容,本实施例所提供的基于生物进化原则的改进粒子群算法(bepso)显著提高粒子群算法的全局、局部搜索能力和收敛速度,有效避免陷入局部最优值。
实施例中,利用bepso算法对2个代表性测试函数进行优化,测试函数1为单峰球函数,测试其收敛速度快,搜索效率高,测试函数2为自定义的峰值非常接近的多峰值函数,测试其避免陷入局部最优值的能力;最后将该算法用在一桁架结构的有限元模型修正上,验证了该算法优越的跳出局部最优值的能力。测试函数如图2所示,实验的开发环境如下:matlabr2014b,cpu为i7-6500u@2.5ghz。
测试函数1:范围[-50,50]
测试函数2:范围[0,1]
基本pso,breedpso,simuapso,psoga,bepso被用于优化上述函数,各算法基本参数选取与基本pso保持一致,惯性权重取0.729,c1=c2=2,最大迭代次数为200。各算法重复执行200次,计算200次解的最优值、平均值、方差如下表1、表2所示。
表1五种算法优化测试函数1的结果
表2五种算法优化测试函数2的结果
由表1和表2可知,bepso均值远小于其他算法,表明bepso的整体搜索性能优于其他算法;bepso方差远小于其他算法,表明bepso的稳定性优于其他算法。收敛曲线如图3所示,表明bepso有更好的全局搜索能力和收敛性。所以在优化函数方面bepso表现出明显的改进效果,整体性能也很好。针对三个峰值非常接近的测试函数2,bepso优化得到最优解的成功率最高,具有良好跳出局部最优,找到全局最优能力。
有限元模型修正问题,设计参数多,存在多个局部最优解,将上面五种优化算法用于优化桁架6个设计参数,桁架结构如图4所示。
由表3及收敛曲线图5知,针对复杂且存在较多的局部最优问题,在相同条件下,基本pso算法寻找到最优解概率仅8%,而bepso找到最优解概率高达76%,表现出了优越的跳出局部最优解的能力。bepso均值远小于其他算法,表明bepso的整体搜索性能优于其他算法;bepso方差远小于其他算法,表明bepso的稳定性优于其他算法。所以,bepso的全局、局部搜索能力强和收敛速度快,且能有效避免陷入局部最优值,能更好应用在有限元模型修正等复杂优化问题上。
表3五种算法优化桁架结构的结果
通过上述测试函数和有限元模型修正问题,证明了bepso的全局、局部搜索能力强和收敛速度快,且能有效避免陷入局部最优值的优越能力。
以上实施例仅仅是对本发明技术方案所做的举例说明。本发明所涉及的基于生物进化原则的改进粒子群算法并不限定于在以上实施例中所描述的内容,而是以权利要求所限定的范围为准。本发明所属领域技术人员在该实施例的基础上所做的任何修改或补充或等效替换,都在本发明的权利要求所要求保护的范围内。