一种自适应多变异策略的差分进化方法及系统与流程

文档序号:19221030发布日期:2019-11-26 02:08阅读:616来源:国知局
一种自适应多变异策略的差分进化方法及系统与流程

本发明涉及差分进化算法技术领域,特别涉及一种自适应多变异策略的差分进化方法及系统。



背景技术:

差分进化算法(differentialevolution,de)是作为一种新型的全局优化算法,因其效率高、鲁棒性强、实现简单而得到广泛的应用。差分进化算法是以遗传算法的思想为基础发展而来,它与遗传算法和粒子群算法等其它进化算法一样也拥有“群体”和“进化”的概念,个体之间通过协作和竞争求解复杂空间中的最优解。

差分进化算法自身有着其它算法不可比拟的优点,但是同时它也并不是完全没有不足。de算法个体进化过程与自然界生物的进化过程有类似之处,其算法核心是种群通过不断地迭代进化过程使每个个体朝着最优方向进化,在每一次迭代操作都会选择适应度值高的个体进入到下一代。尽管de算法相对简单并且全局性较强,但算法本身也有很多需要改进的地方:

(1)de算法中的种群在进化后期存在早熟收敛现象。

(2)算法对于参数设置敏感,参数设置不当会导致收敛过快以及出现局部最优等问题,在标准的de算法中参数为固定值,不能自适应变化,导致无法满足不同阶段算法不同需求。

(3)标准de算法采用的是单一的差分变异策略,这导致算法的收敛速度较慢,并且容易陷入局部最优。

(4)de算法在变异操作结束后直接进行交叉操作,可能会造成变异操作产生的优秀解个体的分量被之后的交叉操作所破坏,造成最优解的丢失,加大了查找最优解的时间消耗。

(5)de算法在交叉操作步骤对交叉个体反向选择可以产生反向交叉个体向量,但是标准de算法往往忽略了对反向交叉向量的利用,这会造成最优解个体的丢失。



技术实现要素:

本发明提供的一种自适应多变异策略的差分进化方法及系统,解决了现有de算法不能快速收敛得到最优解的技术问题。

为解决上述技术问题,本发明提出的一种自适应多变异策略的差分进化方法包括:

随机初始化种群参数;

根据当前的进化代数计算变异因子和交叉因子;

根据变异因子,结合多种变异策略,对种群个体进行变异操作,获得变异个体;

根据交叉因子选择父代个体或变异个体的分量,获得交叉个体;

根据预设的适度函数获得目标个体和交叉个体的适度值,并根据适度值获得下一代个体。

进一步地,根据预设的适度函数获得目标个体和交叉个体的适度值,并根据适度值获得下一代个体包括:

根据交叉因子反向选择父代个体或变异个体的分量,获得反交叉个体;

根据预设的适度函数获得目标个体、变异个体、交叉个体、反交叉个体的适度值,并根据适度值获得下一代个体。

进一步地,根据当前的进化代数计算变异因子和交叉因子的具体公式为:

其中,f(t)表示变异因子,cr(t)表示交叉因子,w(t)表示权重因子,t表示进化代数,t表示种群最大进化代数,fmax表示变异因子最大值,fmin表示变异因子最小值,crmin表示交叉因子最小值,crmax表示交叉因子最大值。

进一步地,根据变异因子,结合多种变异策略,对种群个体进行变异操作,获得变异个体的具体公式为:

其中,λ表示权重因子,u表示影响因子,vi(t)表示种群当代进化代数对应的变异个体,t表示进化代数,t表示种群最大进化代数,xi表示当前个体,xr1(t)、xr2(t)、xr3(t)、xr4(t)代表随机选中的种群当代进化代数对应的四个不同于xi的个体,xbest(t)表示当代种群中最优的个体,f表示变异因子。

进一步地,根据预设的适度函数获得目标个体、变异个体、交叉个体、反交叉个体的适度值,并根据适度值获得下一代个体的计算公式具体为:

其中,f(·)表示预设的适度函数,xit+1表示下一代目标个体,uit+1表示下一代交叉个体,f(uit+1)表示下一代交叉个体的适度值,vit+1表示下一代变异个体,f(vit+1)表示下一代变异个体的适度值,hit+1表示下一代反交叉个体,f(hit+1)表示下一代反交叉个体的适度值,f(xit)表示当代目标个体的适度值,xbest表示当代种群中适度值最优的个体,xavg表示当代种群中的所有个体的中值。

进一步地,变异因子最大值fmax=1,变异因子最小值fmin=0.4,交叉因子最小值为crmin=0.6,交叉因子最大值为crmax=0.9。

本发明提出的一种自适应多变异策略的差分进化系统包括:

存储器、处理器以及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时实现本发明的自适应多变异策略的差分进化方法的步骤。

与现有技术相比,本发明的优点在于:

本发明提供的自适应多变异策略的差分进化方法及系统,通过随机初始化种群参数,根据当前的进化代数计算变异因子和交叉因子,根据变异因子,结合多种变异策略,对种群个体进行变异操作,获得变异个体,根据交叉因子选择父代个体或变异个体的分量,获得交叉个体,根据预设的适度函数获得目标个体和交叉个体的适度值,并根据适度值获得下一代个体,解决了现有de算法不能快速收敛得到最优解的技术问题,通过将变异因子和交叉因子设置为随进化过程自适应变化,从而加快算法在进化后期的适度值的收敛速度,同时保证收敛的精度,且通过结合多种变异策略,对种群个体进行变异操作,可以在种群进化过程中的不同阶段自适应选择不同的变异策略,从而兼顾搜索能力和收敛性。

附图说明

图1是本发明实施例一的自适应多变异策略的差分进化方法的流程图;

图2是本发明实施例二的自适应多变异策略的差分进化方法的流程图;

图3是本发明实施例二的交叉操作过程图;

图4是本发明实施例二的反向交叉操作过程图;

图5是本发明实施例二的iade算法中种群第t次迭代的工作过程;

图6是本发明实施例二的f1函数值种群进化图;

图7是本发明实施例二的f3函数值种群进化图;

图8是本发明实施例二的f6函数值种群进化图;

图9是本发明实施例二的f8函数值种群进化图;

图10是本发明实施例的自适应多变异策略的差分进化系统框图。

附图标记:

10、存储器;20、处理器。

具体实施方式

为了便于理解本发明,下文将结合说明书附图和较佳的实施例对本发明作更全面、细致地描述,但本发明的保护范围并不限于以下具体的实施例。

以下结合附图对本发明的实施例进行详细说明,但是本发明可以由权利要求限定和覆盖的多种不同方式实施。

实施例一

参照图1,本发明实施例一提供的自适应多变异策略的差分进化方法,包括:

步骤s101,随机初始化种群参数;

步骤s102,根据当前的进化代数计算变异因子和交叉因子;

步骤s103,根据变异因子,结合多种变异策略,对种群个体进行变异操作,获得变异个体;

步骤s104,根据交叉因子选择父代个体或变异个体的分量,获得交叉个体;

步骤s105,根据预设的适度函数获得目标个体和交叉个体的适度值,并根据适度值获得下一代个体。

本发明实施例提供的自适应多变异策略的差分进化方法,通过随机初始化种群参数,根据当前的进化代数计算变异因子和交叉因子,根据变异因子,结合多种变异策略,对种群个体进行变异操作,获得变异个体,根据交叉因子选择父代个体或变异个体的分量,获得交叉个体,根据预设的适度函数获得目标个体和交叉个体的适度值,并根据适度值获得下一代个体,解决了现有de算法不能快速收敛得到最优解的技术问题,通过将变异因子和交叉因子设置为随进化过程自适应变化,从而加快算法在进化后期的适度值的收敛速度,同时保证收敛的精度,且通过结合多种变异策略,对种群个体进行变异操作,可以在种群进化过程中的不同阶段自适应选择不同的变异策略,从而兼顾搜索能力和收敛性。

实施例二

参照图2,本发明实施例二提供的自适应多变异策略的差分进化方法,包括:

步骤s201,随机初始化种群参数。

具体地,本实施例的iade(improvedadaptationdifferentialevolution自适应多变异策略的差分进化)算法在进行寻优前,首先随机初始化种群参数,具体包括:种群最大进化代数t,种群个体np,种群个体维数d,变异因子最大值fmax,变异因子最小值fmin,交叉因子最大值crmax,交叉因子最小值crmin等参数。且本实施例的初代种群通过随机的方式生成,随机初始化方式如下所示:

xi,j(0)=xli,j+rand()*(xui,j-xli,j)(1)

其中,i表示为种群个体下标,取值区间为种群个体数[1,2,…,np],j表示为种群个体分量编号,取值区间为个体维数[1,2,…,d],0表示种群进化的代数,xi,j(0)表示种群第0代第i个种群个体的第j个分量,xli,j表示个体分量取值的下界,xui,j表示个体分量取值的上界,rand()函数用于生成[0,1)范围内的均匀分布的随机数,用以生成涵盖指定取值范围内的种群个体向量。

步骤s202,根据当前的进化代数计算变异因子和交叉因子。

变异操作是对种群个体进行突变以增加种群的多样性。通过对目标个体进行扰动,生成变异个体,可以防止种群陷入局部最优。变异操作步骤是在第t次迭代中,从种群中随机选择两个互不相同的个体相减生成随机差分向量加以权值后与第三个随机选择的种群个体通过求和操作生成变异个体,对于父代种群中某一个个体向量而言,经变异获得的个体vi的计算方式为:

vi(t)=xr1(t)+f*(xr2(t)-xr3(t))(2)

式中,t代表当前种群进化的代数,序号r1、r2、r3是从种群个体集合随机选择的三个与当前个体i序号不相同的索引的个体,同时保证个体xr1、xr2、xr3各自互不相同,以随机个体xr1作为基向量,通过xr2和xr3的随机向量差加权后进行扰动生成变异向量。f是变异因子,取值在[0,2]之间,用于控制随机差分向量的影响程度,是保证个体发生突变的关键。当两个个体的向量差越小时说明个体相似程度越大,整个种群逐渐逼近最优解。变异因子f值的大小会对算法的全局寻优能力产生影响。当f值较小时,算法更偏向于局部搜索,可能解搜索的区域范围较小;当f值较大时,算法不会在局部极值点发生搜索停滞现象,但较大的f值会导致收敛速度变慢。

现阶段,de算法有着很多不同模式的变异策略,一般用“de/a/b”的形式进行表示,a表示如何从种群个体中选取参与变异操作的个体,一般取值为rand、best以及current。其中,rand表示参与变异操作的个体是随机个体,best表示变异操作主要是基于当前最优解对应的个体,current表示变异操作是以种群当前的目标个体为基向量进行操作;b表示变异操作中用到的差分项的项数,一般为整数。标准de算法中的模式用“de/rand/1”表示,除此之外de算法还有表1所示的五种变异策略。

表1de算法变异策略

变异策略中涉及的xr1、xr2、xr3、xr4、xr5表示种群内与当前个体不同并且互不相同的随机个体向量,xbest表示种群中的最优适应度值对应的个体向量,f为变异因子。

对于不同的变异策略,差分进化算法的性能差异比较大,de/rand/1和de/rand/2变异策略基向量为随机个体,搜索范围广,最优值查找速度较慢;de/best/1和de/best/2以当代种群中最优个体为基向量,搜索范围局限在最优个体附近,易出现早熟收敛现象;de/current-to-best/2以及de/rand-to-best/2变异策略的收敛和搜索能力较为均衡。

差分进化算法的变异因子f对算法的搜索规模和种群多样性起着调节的作用,算法对变异因子f的设置是非常敏感,通常f是取值于[0,2]的实数,用于控制差分项的幅度。若f设置不恰当会导致在变异阶段的无法产生新的变异个体,个体的相似度增加且逐渐趋同,同时f也影响算法的收敛速度:当f设置偏大时,个体间的差异程度增大,此时的算法搜索范围也会增大,接近于全局随机搜索的方式,收敛慢导致算法效率过低且求得的解的质量不高;当f设置偏小时,此时的算法搜索规模减小,局部搜索增强,虽然收敛速度加快但是会使算法陷入局部最优解。因此,合理设置变异因子f对于算法最优解的质量以及收敛速度影响重大。在标准差分进化算法中,f被设置为固定常数,在整个迭代求解过程中都保持固定不变,这将导致算法在进化过程中无法满足各时期对于参数的大小要求,致使算法极易陷入局部最优值无法获得全局最优,同时收敛速度也相对较慢。为了解决de算法出现的这些问题,本实施例将f设置为自适应,随着进化过程自动设置值的大小。在算法最开始迭代时,f设置为较大值,这使算法可以有较大的搜索空间保证种群的多样化能够避免全局最优值的逃逸。在后期,随着进化代数的不断增加,让f的值不断减小,此时算法能够在存在可行解的小范围内进行局部细致搜索,避免最优解被破坏,提升搜索的精度。f的改进公式为:

f(t)=fmax-(fmax-fmin)*w(t)(4)

f值的大小根据当前的进化代数进行设置,随着进化代数t的增加,权重因子w(t)的值增大,新赋的f值的大小递减,目的是进化后期在算法获得的较优解的基础上加强局部搜索,使得算法能够快速收敛到最优解。f的有效区间为[0.4,1],因此本实施例中变异因子最大值fmax=1,变异因子最小值fmin=0.4。

交叉操作在变异操作之后,是对其进一步调控,目的是为了增加种群个体的多样性。交叉操作通过预先设定的策略决定变异个体vi中用哪些维分量取代目标个体的对应位置的维分量,cr决定着交叉个体各个维分量取值来源和更新比例,此步骤很大程度上影响着之后算法中种群的多样性。

式中,交叉概率cr取值在区间[0,1]中,cr的大小决定进行交叉的分量的概率,cr越大,交换的信息量越大,交叉个体的各维分量更多来自于变异个体;cr越小,交叉个体的各维分量会更多来自于父代个体这使得种群的多样性得以保持。d代表个体的维度,rand(d)生成个体的维度范围内的随机数,j用来保证在交叉步骤中,交叉个体至少进行一次交叉操作,确保交叉个体和父代个体不完全相同以避免种群个体进化停滞不前,无法逼近最优值。具体的交叉操作过程如图3所示。图3中,交叉个体的各个分量是根据交叉因子cr决定取值,判定是取自父代目标个体向量还是变异个体向量。

de算法的交叉操作可以增加种群个体的多样性,交叉策略中的参数交叉因子cr决定着子代与父代、交叉个体之间交换的维分量的大小程度。cr越大说明变异变量贡献率越高,扰动更大,在交叉向量的各维分量中属于变异向量的各维分量所占的比重更大,这会使种群的多样性减小,有利于算法进行局部搜索从而加快收敛的速率;cr取值越小,越有利于保持种群多样性和全局搜索能力。在标准差分进化算法中cr为固定参数无法满足在进化过程中各阶段对cr大小设置的偏好。因此,在进化过程中需要根据运行情况,不断改变交叉因子cr的值,改进算法具体为:

cr(t)=crmin+(crmax-crmin)*w(t)(6)

交叉因子cr的自适应改进策略同变异因子f,cr新值的大小也根据当前的进化代数t进行设置,随着进化代数t的增加,权重因子w(t)的值增大,新赋的cr值的大小也呈增大趋势,这样可以加快算法在进化后期的适度值的收敛速度,同时保证收敛的精度。本实施例中交叉因子最小值为crmin=0.6,交叉因子最大值为crmax=0.9。

步骤s203,根据变异因子,结合多种变异策略,对种群个体进行变异操作,获得变异个体。

在de算法中,单一变异模式往往难以满足种群进化的要求,因此可以采用多种策略结合的方式整合各自的特点。de/rand/1模式能够保证种群多样性,且全局搜索能力较强,不易陷入局部最优,但收敛速度较慢;而de/best/1模式收敛速度较快。本实施例改进的变异策略合了这两种经典变异模式,可以同时兼顾搜索能力和收敛性,本实施例改进后的模式为:

vi(t)=u*xr1(t)+(1-u)*xbest(t)+f*(xr2(t)-xr3(t))(8)

其中,t表示进化代数,t种群最大进化代数,xi表示当前个体,xr1、xr2、xr3代表随机选中的三个不同于xi的个体,xbest表示当代种群中最优的个体。

变量u的大小随迭代次数t变化,u在区间[0,1]图像为抛物线,前期数值增长缓慢,使得u值也缓慢变小。因此在前期的种群进化中,u→1,变异模式能够最大程度上倾向于de/rand/1,此时算法拥有较强的全局搜索性能使得种群个体多样化能够被保证。在后期u→0,变异策略倾向于de/best/1,此时算法的性能在搜索能力、稳定性、寻优速度上都能够达到较好的均衡,避免了算法前期收敛速度慢。经过改进后算法在种群进化过程中的不同阶段可以自适应选择不同的变异策略,搜索能力和收敛速度之间进行了平衡。

同时为了较好控制后期种群的进化方向,本实施例在原有的基础上加入一个最优差分值,同时对随机差分和最优差分加入权重因子控制各自的贡献率。改进后的变异策略公式为:

其中,λ表示权重因子,u表示影响因子,vi(t)表示种群当代进化代数对应的变异个体,t表示进化代数,t表示种群最大进化代数,xi表示当前个体,xr1(t)、xr2(t)、xr3(t)、xr4(t)代表随机选中的种群当代进化代数对应的四个不同于xi的个体,xbest(t)表示当代种群中最优的个体,f表示变异因子。

具体地,本实施例中的λ为权重因子,用于控制随机差分和最优差分分别对于变异个体扰动大小,λ取值范围为区间[0,1],大小随着种群进化代数缓慢递增,使得随机差分在进化前期权重更大,在变异向量中贡献程度最大,算法能够加强对全局搜索力度。在进化后期种群个体会收敛,使得最优解潜在的范围减小,为了加快搜索最优解的速率,因此此时需要减少种群个体的多样性,对应公式中增大最优差分的比重,使得算法能够在最优个体附近振荡搜索,增强后期种群局部寻优能力。u表示影响因子,其大小随迭代次数t变化,u在区间[0,1]图像为抛物线,u是参数用于控制差分进化算法的变异策略,因为公式融合了两种变异策略,随着进化代数可以控制倾向。u→1,变异模式能够最大程度上倾向于de/rand/1,此时算法拥有较强的全局搜索性能使得种群个体多样化能够被保证。在后期u→0,变异策略倾向于de/best/1,此时算法的性能在搜索能力、稳定性、寻优速度上都能够达到较好的均衡,避免了算法前期收敛速度慢。

步骤s204,根据交叉因子选择父代个体或变异个体的分量,获得交叉个体。

步骤s205,根据交叉因子反向选择父代个体或变异个体的分量,获得反交叉个体。

步骤s206,根据预设的适度函数获得目标个体、变异个体、交叉个体、反交叉个体的适度值,并根据适度值获得下一代个体。

de算法的个体选择步骤利用的是自然界的“优胜劣汰”思想。首先根据定义的适度函数获得个体的适度值,之后根据值的大小对个体的进行贪婪选择,若是最小化问题则适度值越小说明个体越优秀,因此当新个体的适应度值比原先的个体小时,原有个体会被淘汰,新个体会被保留至下一代,所以,种群中的个体最坏的情况是保持与原有相同的适应度值,而个体不会变差。因此,种群个体能够不断得到优化,最终收敛稳定。

式中,f(x)为所要解决问题的目标函数,本实施例假设算法解决的是最小化问题。

在标准de算法的选择操作步骤中,参与比较的两个个体是目标个体以及交叉操作产生的交叉个体,交叉操作进一步调整了变异操作得到的个体向量的各个维分量,使得个体更加多样化以便算法可以在较大范围内查找最优解。但是在变异操作步骤也可能会产生全局最优解,而由于变异操作之后会直接对变异个体进行交叉操作,交叉操作替换了变异向量的局部分量,这可能会造成优秀解被破坏。

另外,在标准de算法的交叉操作步骤中会根据交叉概率cr选择父代个体或变异个体的部分分量组成交叉个体向量,而根据交叉概率cr进行反向选择则可以构成另外一个不同的交叉个体向量,如图4加粗部分所示,而由于标准de算法中仅仅只是利用产生的其中的一个交叉个体向量,这也可能会导致优秀解个体分量的丢失。

因此,为了避免破坏种群潜在的优秀个体,使算法能够尽可能的获得当前最优解。对标准de算法进行改进,在改进后的de算法的选择操作步骤,从变异向量vi、交叉向量ui、反向交叉向量hi以及目标向量xi中选择适度值最佳的个体进入下一代,改进后的选择策略如公式(11)所示:

在标准de算法的选择操作步骤中,当交叉个体的适度值比父代个体的适度值大时,父代个体被保留,本实施例对此进行改进。当变异向量vi、交叉向量ui、反向交叉向量hi的适度值比父代目标向量xi的适度值大时,以最优个体和中值个体的均值作为下一代个体,以此加快算法的收敛速度和种群多样性。对公式(11)中的选择策略进一步进行改进,最终改进后选择策略的公式如下:

其中,xbest表示当代种群中适度值最优的个体,xavg表示当代种群中的所有个体的中值,xavg个体分量xavg,j计算公式如下:

根据上述对变异因子、交叉因子、变异和选择策略的改进方式,本实施例iade的算法伪代码如表2所示:

表2

iade算法中种群第t次迭代的工作过程,如图5所示。

为了验证本实施例的自适应多变异策略的差分进化算法iade的性能,本实施例选取了8个用于测试的benchmark基准函数进行仿真实验。同时为了对比改进后的差分进化算法iade对目标函数的求解性能,本实施例将算法iade与三个采用不同变异策略的de算法进行实验结果对比,选取的不同变异策略的de算法为:de/rand/1、de/best/1以及de/rand-to-best/2。

本实施例改进算法的测试环境参数如表3所示:

表3

改进的差分进化算法iade与de/rand/1、de/best/1、de/rand-to-best/2算法参数设置如表4所示:

表4

为了保证在进行算法性能测试时能够保持公平性,同时去除实验的随机误差,对各个测试函数每种算法都单独运行50次,以50次运行统计的函数值的均值作为最终结果值进行性能对比。

(1)测试函数

表5所示分别为8个测试函数中各个函数的公式、变量维数、变量的取值范围以及理论上该测试函数的最小值。

在选取的测试函数中,f1-f7属于高维函数;f1-f4是单峰函数;f5是非连续的阶梯函数,有一个最小值;f6和f7是多峰多极值函数;函数f8是具有多峰少极值的低维函数。对于单峰函数,函数值收敛率的受关注程度要高于最终的函数最优解;而对于多峰函数来说,最终的函数值可以反映出算法跳出局部最优解,搜索到全局最优解的能力。

表5

(2)仿真实验的评价方法

本实施例进行函数判优时,对比函数的均值、标准差和最优值。函数的平均值反映了算法的平均性能;标准差反映了算法运行结果的离散程度。

(3)实验结果分析

表6中所展示的数据为4种算法iade、de/rand/1、de/best/1以及de/rand-to-best/2分别对8个测试函数运行后得到的对应的目标函数的最优值、均值以及标准差。为了使实验结果可以避免偶然性,保证结果的准确性,表6中所展示的算法的最优值、均值以及标准差均取自算法50次独立运行结果的均值。

从表6算法性能实验仿真结果可以看出,iade与de/rand/1、de/best/1、de/rand-to-best/2比较,iade算法求解精度均比其它形式的de算法结果优秀,在单峰函数、多峰多极值函数以及多峰少极值函数上都展现了较好的性能,说明了算法改进后的有效性。

表6算法性能仿真结果

de/best/1算法,在变异操作步骤中,选取的基向量是当代种群中适应度最优的个体,de/best/1算法相对来说,收敛速度较快,但是全局寻优的搜索能力不强,因此会导致算法较容易陷入局部最优。de/rand/1算法,在变异操作步骤中,选取的基向量是当代种群中的随机个体,这使得种群个体在搜索区域范围内的随机性和多样性增加,因此算法对于全局搜索的能力会得到加强。de/rand-to-best/2算法,在变异操作步骤中,从当代种群中的随机选取种群的一个个体作为基向量,然后与一个随机差分值和一个最优差分值加权求和,实现目标个体的变异。de/rand-to-best/2算法不仅在全局搜索能力较强并且收敛速度还较快。本实施例提出的iade算法,参数变异因子和交叉因子随着种群进化代数的增加随机自适应变化,满足了种群不同进化时期的特点,同时采用了混合的变异策略,在种群进化前期具有de/rand/1随机搜索能力强的特点使得算法可以全局搜索最优解;在种群进化后期具有de/best/1局部搜索能力较强的特点使得算法可以加大在潜在解范围内的发掘能力,反向交叉向量和变异向量一起参与最后的种群个体的选择,从而可以避免潜在最优解的丢失。

为了能够更加形象直观地展示iade算法的性能,选取了几个函数进行展现随着种群进化最优值的变化过程,如图6、图7、图8以及图9所示,图中为相同测试函数不同算法最优值随种群进化代数的变化过程。进化图中横坐标x表示种群进化代数t的变化,纵坐标y表示测试函数值的变化。

为了能够清晰地展现4个算法在性能上的对比,图中只选取了表中部分进化代数的适应度值进行显示。

从图6和图7可以看出,对于单峰函数,随着种群进化代数的增加,测试函数的值都呈现出减小的趋势,iade算法与de/best/1算法相比收敛速度相差不大,在求解精度具有优势,iade算法的求解性能明显优于de/rand/1和de/rand-to-best/2算法,在函数值收敛速度和求解精度上均具有较大优势。

从图8可以看出对于多峰多极值函数的高维函数,iade算法与de/best/1、de/rand/1和de/rand-to-best/2算法,虽然随着种群进化代数的增加,适应度函数值都成反比例趋势逼近最优解,但各个算法的收敛速度以及求解精度具有明显的差异,de/best/1算法相比其它三个算法无法跳出局部最优,求解精度最差,但收敛速度要快于de/rand/1和de/rand-to-best/2算法,4个算法中iade算法的收敛速度和求解精度均明显优于de/best/1、de/rand/1和de/rand-to-best/22算法。

从图9可以看出对于多峰少极值的低维函数,iade算法与de/best/1、de/rand/1和de/rand-to-best/2算法,随着种群进化代数的增加,适应度函数值都不断逼近最优解,但iade算法和de/best/1算法比de/rand/1和de/rand-to-best/2算法收敛速度快,iade算法和de/best/1算法相比,iade算法的收敛速度更快,iade算法的求解精度优于de/rand/1和de/rand-to-best/2算法。

综合对比实验结果,可以看出改进后的差分进化算法iade的求解精度和收敛速度均优于de/best/1、de/rand/1和de/rand-to-best/2算法。

本实施例通过对标准de算法存在的容易限于局部最优,后期收敛速度慢,参数设置困难等问题,提出了一种改进的差分进化算法iade,该算法改进了标准de算法的变异因子f、交叉因子cr、变异和选择的策略。将iade算法与其它变异模式的de算法通过8个经典benchmark函数测试,通过实验对比结果,得到结论:iade算法在收敛速度和跳出局部最优的能力都要强于其它变异模式的de算法。

差分进化算法(differentialevolution,de)是作为一种新型的全局优化算法,因其效率高、鲁棒性强、实现简单而得到广泛的应用。本实施例针对de算法迭代后期收敛速度变慢、参数依赖强设置困难等不足进行了改进,提出了改进的de算法(improvedadaptationdifferentialevolution,iade),算法改进了标准de算法的缩放因子f、交叉概率cr以及变异和选择策略,使得参数可以随着种群的迭代进化自适应调整,以满足各个时期对于参数值的不同要求,通过benchmark函数验证了改进后算法的性能。

参照图10,本发明实施例提出的自适应多变异策略的差分进化系统,包括:

存储器10、处理器20以及存储在存储器10上并可在处理器20上运行的计算机程序,其中,处理器20执行计算机程序时实现本实施例提出的自适应多变异策略的差分进化方法的步骤。

本实施例的自适应多变异策略的差分进化系统的具体工作过程和工作原理可参照本实施例中的自适应多变异策略的差分进化方法的工作过程和工作原理。

以上仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

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