一种新型的差分进化算法的制作方法

文档序号:17009679发布日期:2019-03-02 02:11阅读:230来源:国知局
一种新型的差分进化算法的制作方法

本发明涉及科学和工程的技术领域,更具体地,涉及一种新型的差分进化算法。



背景技术:

传统遗传算法通过模拟生物的交叉变异来产生新解,这种方式带有一定的随机性,不一定能收敛到全局最优,并且搜索速率较低。差分进化算法是一种高效的启发式并行搜索技术,但是,标准的差分进化算法容易造成种群个体早熟收敛问题。

进化算法是基于自然进化过程基本计算模型的一系列搜索技术,在函数优化、模式识别、机器学习、神经网络训练、智能控制等众多领域都有着广泛的应用。

进化算法(evolutionaryalgorithm,缩写为ea)的实现过程其实就是模拟生物的进化过程,它将对问题的求解类比为生物基因的适者生存的过程,通过不断的进化,最终得到最适合环境的个体,也即获得相应问题的最优解。进化算法在最初研究中,主要包括遗传算法(geneticalgorithm,缩写为ga)、进化策略(evolutionstrategy,缩写为es)和进化规划(evolutionprogramming,缩写为ep)。之后,在遗传算法的基础上又发展了差分进化(differentialevolution,缩写为de)。

遗传算法的主要思想是将问题所获得解类比为生物个体基因中的染色体,然后模仿基因进化过程中的遗传操作,在一定条件下不断地迭代繁殖,最后获得对应问题的最优解的个体。遗传算法使用的编码方式主要是二进制编码,二进制编码是一组包含0和1的序列。遗传算法使用选择算子来对个体进行优胜略汰,经典的选择方法包括轮盘赌方法,精英个体保留策略,锦标赛选择方法,排序选择方法。

差分进化de是一种基于种群差异的进化算法,具体实现为:对于具有d维优化问题,首先生成具有n个解向量的种群。我们有xi,其中i=1,2,...,n。对第t代的解xi,我们使用常规符号记为:其由d维空间中的d分量组成。这种向量可以被认为是染色体或基因组。差分进化包括三个主要步骤:变异、交叉和选择。变异过程:具体变异操作的数学表达式为:其中f∈(0,1)耀是一个参数,通常称为差分权重,为随机选取的解向量。交叉过程:交叉由交叉参数cr控制,控制交叉的速率或概率。二项式交叉方案中,对d维向量的d个分量都进行交叉。通过生成服从0~1均匀分布的随机数r,比较r与交叉参数cr的大小来确定某个分量是否变异。如果r比交叉参数cr小,则该分量取新的变异值,否则,不变。最后通过变异和交叉后,生成新个体选取中更合适的个体作为新的后代上述过程是标准版本的de。

简要评价:遗传算法有效的保存了种群的多样性,具有良好的全局搜索能力,不会陷入局部最优解的快速下降陷阱。差分进化算法新群体直接由父群体生成,具有记忆个体最优解和种群内信息共享的特点,是具有保优思想的贪婪遗传算法,能有效的提高进化算法的收敛性和搜索速率。

遗传算法的局部搜索能力较差,导致单纯的遗传算法比较费时,在进化后期搜索效率较低。并且在实际应用中,遗传算法容易产生早熟收敛的问题。差分进化算法由于后代直接从父代产生,随着进化代数的增加,个体间的差异会逐渐降低,从而导致过早收敛到局部极值附近,形成早熟收敛现象。



技术实现要素:

本发明为克服上述现有技术所述的至少一种缺陷,提供一种新型的差分进化算法,提高了进化算法的局部搜索能力,以及避免了差分算法的早熟收敛问题。

本发明的技术方案是:一种新型的差分进化算法,其中,包括以下步骤:

s1.随机生成初始种群规模为n的种群p,输出种群p;

s2.对输入种群命名为p,对种群p进行差分进化操作,产生种群规模为n的新种群q,p与q结合为种群规模为2n的新种群r,输出种群r;

s3.对输入种群命名为r,对r中的个体根据适应度进行筛选,选出适合的n个优质个体,生成并输出子代种群;

s4.对输入的子代种群返回步骤s2循环操作,直到达到进化算法的终止条件,输出具有最优适应度的个体。

与现有技术相比,有益效果是:本发明提出了一种新型的差分进化算法,由于后代直接由优秀的父代产生提高了进化算法的局部搜索能力,通过对子代进化中心点的方向的控制,避免了差分算法的早熟收敛问题,并且通过本发明有效的改进了遗传算法的收敛速度。

附图说明

图1是本发明整体算法示意图。

图2是本发明其中差分进化的示意图。

图3是本发明对比实验结果图。

具体实施方式

附图仅用于示例性说明,不能理解为对本专利的限制;为了更好说明本实施例,附图某些部件会有省略、放大或缩小,并不代表实际产品的尺寸;对于本领域技术人员来说,附图中某些公知结构及其说明可能省略是可以理解的。附图中描述位置关系仅用于示例性说明,不能理解为对本专利的限制。

如图1所示,一种新型的差分进化算法,其中,包括以下步骤:

s1.随机生成初始种群规模为n的种群p,输出种群p;

s2.对输入种群命名为p,对种群p进行差分进化操作,产生种群规模为n的新种群q,p与q结合为种群规模为2n的新种群r,输出种群r;

s3.对输入种群命名为r,对r中的个体根据适应度进行筛选,选出适合的n个优质个体,生成并输出子代种群;

s4.对输入的子代种群返回步骤s2循环操作,直到达到进化算法的终止条件,输出具有最优适应度的个体。

其中差分进化操作如下:

对于前两代新生产个体,为保存生物的多样性,使用传统的遗传算法生成新群体q,此后代数中的群体q用如下方式生成:

变异:(1)对上一代选出的优良个体进行非支配排序,均分成三等份,得到由优到劣的三个集合:r1、r2和r3;(2)根据k-均值聚类算法生成r1和r2集合的k个中心点,分别为c1、c2...ck;(3)最后根据公式生成变异个体u′i,其中ui是种群p的r3集合的一个随机个体,f∈(0,1)为差分权重,cg-1为第g-1代的均值中心,ci为聚类中心点,属于第g代的{c1、c2...ck}集合;

交叉:交叉由交叉参数cr控制,控制交叉的速率或概率;二项式交叉方案中,对d维向量的d个分量都进行交叉;通过生成服从0~1均匀分布的随机数r,比较r与交叉参数cr的大小来确定某个分量是否变异;如果r比交叉参数cr小,则该分量取新的变异值,否则,不变;

选择:最后通过变异和交叉后,生成新个体选取中更合适的个体作为新的后代

如图2所示为其中差分进化的图示,图中a、b两点分别为第一代与第二代的中心点,c点为在第三代中得到的k个聚类点之一,所需向量vep的如图所示。

如图3为在问题集immoea_f1上,目标数为3,种群规模为100时,分别使用本专利算法、eareal所得到实验结果图。

显然,本发明的上述实施例仅仅是为清楚地说明本发明所作的举例,而并非是对本发明的实施方式的限定。对于所属领域的普通技术人员来说,在上述说明的基础上还可以做出其它不同形式的变化或变动。这里无需也无法对所有的实施方式予以穷举。凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明权利要求的保护范围之内。

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