一种基于改进物种保存策略的多峰优化骨干微粒群算法的制作方法

文档序号:16136976发布日期:2018-12-01 01:07阅读:403来源:国知局

本发明涉及优化领域,尤其涉及一种基于改进物种保存策略的多峰优化骨干微粒群算法。

背景技术

无论是军事、工农业,还是日常生活,都大量存在优化问题。对于该问题的解决途径主要分两大类:传统优化算法和智能优化算法。传统优化算法主要包括:导数法,直接法,枚举法等。这些方法通常都是沿着适应度函数的梯度方向搜索,容易陷入局部最小值,并对搜索起点较敏感。为此,近年来,发展形成了各种具有全局搜索特性的智能优化算法,如遗传算法、模拟退火算法、微粒群算法等。微粒群算法(particleswarmoptimization,简称pso)因其实现容易、精度高、收敛快等优点引起了学术界的重视,并且在解决实际问题中展示了其优越性。

标准的pso和骨干pso(bbpso)算法虽然都是全局优化算法,但都是针对搜索空间中只有一个全局最优解而设计的。在进化过程中由于选择压力的存在,使他们无法得到多个全局最优解和一些质量较好的局部最优解。针对多峰优化问题,国内外学者们将小生境技术引入进化算法中,并为此提出了许多小生境策略,比如:排挤策略、适应度分享策略、物种保存策略、多物种策略等等。但是基于这些策略的多峰优化算法并不完美,在实际应用过程中仍然存在一些不足,比如:存在设置参数多,收敛速度慢,适应度值波动振荡等问题。



技术实现要素:

发明目的:针对现有多峰优化算法存在的不足,提出一种基于改进物种保存策略的多峰优化骨干微粒群算法。

技术方案:为实现上述目的,本发明首先对物种保存策略进行改进,然后将该策略引入到bbpso中,形成能够实现多峰搜索的改进bbpso(ibpso)。其中主要的创新点包括:1)种子的选择范围改为所有微粒的个体极值,防止出现振荡现象;2)定义了物种的相似度σ,用以保持种子的多样性,其中σ为任意两个种子间的欧氏距离;3)子种群的形成不再依赖于小生境半径,非种子微粒归属于离自身最近的种子。

该算法法具体包括以下步骤:

步骤1:构造优化问题的适应度函数,进行算法初始化;

步骤2:利用适应度函数,计算每个微粒的适应值;

步骤3:更新微粒个体极值;

步骤4:更新/确定物种种子;

步骤5:计算微粒到各个种子的距离,确定微粒的归属;

步骤6:更新微粒位置xi,其中每个微粒的第j维位置更新公式为:,式中n(∙)表示高斯分布;是高斯分布的均值;是高斯分布的标准差;

步骤7:若满足停止条件,搜索停止,输出所有全局最优位置和全局最优适应值。否则,返回步骤2继续搜索。

进一步地,所述步骤1中的算法初始化具体包括:随机产生微粒的位置,计算其适应度值,并将这两者初始化个体极值,设置算法所需参数,包括种群规模、最大迭代代数和物种相似度阈值σ*

进一步地,所述步骤3中个体极值更新方式:将每个微粒当前位置的适应度值与原个体极值比较,如果当前位置更佳则取代原个体极值,否则个体极值保持不变。

进一步地,所述步骤4中更新/确定物种种子的方式:

(4.1)对所有微粒的个体极值按照适应度值的优劣进行降序排列形成集合spbest,设置种子集xs为空集;

(4.2)将全局极值作为种子放入种子集xs

(4.3)将spbest中的其余个体与xs中已有的种子进行相似度比较,如果该微粒的个体极值与所有种子的欧氏距离都大于σ*,则这个微粒个体极值就会被加入到种子集中,直至遍历整个spbest

进一步地,所述步骤5中距离的计算方式:可以是欧氏距离也可以是其它距离定义方式;所述微粒归属确定方式:非种子微粒属于离自身最近的种子。

进一步地,所述步骤7中停止条件包括适应值误差小于设定阈值或迭代次数超过最大代数。

有益效果:本发明提供的基于改进物种保存策略的多峰优化骨干微粒群算法,仅需设置种群规模、最大迭代代数和种群相似度阈值,因此受参数因素的影响较小;种子的遴选范围为微粒的个体极值,可有效防止出现振荡现象;物种的相似度σ的引入保证了种子的多样性,提高了全局搜索能力;子种群的形成以非种子微粒与种子间距离远近进行自动归属,大大提高了子种群的搜索范围。因此,所提优化算法不但可以同时搜索多个峰值,而且具有全局搜索能力强,收敛速度快,求解精度高,参数设置少等优点,非常适合工程实际应用。

附图说明

图1是算法的优化流程图;

图2是三种算法在rastrigin函数上的实验结果;

图3是三种算法在himmelblau’s函数上的实验结果。

具体实施方式

下面结合附图和实例对本发明的实施过程作进一步详细说明。

图1是本算法的优化流程图。

采用的编程软件是matlabr2013a,选择2个常用的标准测试函数进行举例说明。为了对比分析,另外2种多模态优化算法scga和spso也对测试函数进行了优化,三种算法的参数设置如表1所示,其中scga是由jian-pingli在“aspeciesconservinggeneticalgorithmformultimodalfunctionoptimization”一文中提出的物种保存策略遗传算法;spso是由xiao-dongli在“adaptivelychoosingneighbourhoodbestsusingspeciesinparticleswarmoptimizerformultimodalfunctionoptimization”一文中提出的多物种微粒群算法。

测试函数1:rastrigin

x1,x2∈[-5,5](1)

测试函数2:himmelblau’s

x1,x2∈[-5,5](2)

利用本发明对两个测试函数进行寻优,具体过程如下:

1.将测试函数作为优化问题的适应度函数,利用randn随机函数在可行域[-5,5]的二维范围内对微粒位置和个体极值赋初始值;

2.利用适应度函数,计算每个微粒的适应值,并保存;

3.更新微粒个体极值:将每个微粒当前位置的适应度值与原个体极值比较,如果当前位置更佳则取代原个体极值,否则个体极值保持不变;

4.更新/确定物种种子;

(4.1)对所有微粒的个体极值按照适应度值的优劣进行降序排列形成集合spbest,设置种子集xs为空集;

(4.2)将适应度最好的微粒作为种子放入种子集xs

(4.3)将spbest中的其余个体与xs中已有的种子进行相似度比较,如果该微粒的个体极值与所有种子的欧氏距离都大于σ*,则这个微粒个体极值就会被加入到种子集中,直至遍历整个spbest

5.计算微粒到各个种子的欧氏距离,将非种子微粒归属为离自身最近的种子;

6.更新微粒位置xi,其中每个微粒的第j维位置更新公式:,式中n(∙)表示高斯分布;是高斯分布的均值;是高斯分布的标准差;

7.判断是否达到最大迭代代数,达到则停止搜索,输出所有全局最优位置和全局最优适应值,否则,返回步骤2继续搜索。

表1优化算法参数设置

三种算法在2个测试函数上的实验结果如图2,图3所示。对于rastrigin函数,所提算法ibpso性能是最好的,scga次之,spso最差。在图2(a)中,寻优误差aes的定义如式(3)所示(kgo为实际最优解数,seed为种子,fit(∙)为适应度函数),从该图的进化曲线可见:无论是收敛速度还是收敛精度ibpso都要优于其他2种算法。其中spso由于种子的遴选范围是微粒自身,因此在收敛过程中存在误差波动的现象;而scga和ibpso分别采用了物种保存策略和在个体极值中选择种子的策略,有效地克服了该问题。

(3)

如图2(b)和图2(c)所示,scga和spso都未能全部找出事先约定的9个最优解,scga找到了8个,spso只找到了5个,并且适应度最好的(0,0)全局最优解也未能找到。这是由于scga和spso都采用了固定的小生境半径来确定子种群的缘故,这种固定半径的方式限制了子种群的全局开发能力,使其容易遗漏更好的极值点。ibpso没有采用此种方式来确定子种群,而是采用了以各个微粒与种子间的距离进行自适应调整子种群的方式。这种方式在迭代过程初期会使微粒具有更大的飞行范围,可以提高算法的全局搜索能力;并且随着代数的增加,搜索半径自动调整减小提高了算法的局部开发能力。图2(d)很好的验证了这一点,ibpso不但全部找到了9个最优极值点,而且位置精度也很高。

图3是三种算法在himmelblau’s函数上的实验结果。himmelblau’s函数具有4个全局最小值,这4个极值相距较远且极值周围环境比较平坦,容易导致算法收敛速度下降和个别极值点的遗漏。在该函数上,scga性能最差,不但遗漏了右上角的极值点,而且求解精度也不高。spso虽然找到了4个全局最优解,但是也存在求解精度不高的问题。ibpso是性能的优胜者不但准确地找到了所有的极值点,而且收敛精度也很高,在45代之前就超过了matlab的计算精度。

综上所述可以得出基于改进物种保存策略的多峰优化骨干微粒群算法具有收敛速度快、全局搜索能力强、求解精度高等优点,非常适合实际工程的应用。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1