技术领域
[0001] 本发明涉及进化算法技术领域,尤其涉及一种融合进化方法、装置及存储介质。
相关背景技术
[0002] 近年来,随着计算机技术的快速发展,为了在一定程度上解决大空间、非线性、全局寻优、组合优化等复杂问题,不少进化算法不断涌现,如差分进化算法和粒子群算法等。差分进化算法结构简单、通用、可靠性高,但计算效率较低。粒子群算法搜索速度快、效率高,算法简单,但容易陷入局部最优解。
[0003] 因为这些算法独特的优势,获得了国内外学者的广泛关注,掀起了研究热潮,并在电子、通信、计算机、自动化、机器人、经济学和管理学等众多学科和信号处理、图像处理、生产调度、任务分配、模式识别、自动控制和机械设计等众多领域,得到了成功应用。但单种进化算法由于自身的缺点(例如差分进化算法计算效率较低、粒子群算法容易陷入局部最优解),不利于优化问题的解决。
具体实施方式
[0018] 以下通过特定的具体实例说明本公开的实施方式,本领域技术人员可由本说明书所揭露的内容轻易地了解本公开的其他优点与功效。显然,所描述的实施例仅仅是本公开的一部分实施例,而不是全部的实施例。本公开还可以通过另外不同的具体实施方式加以实施或应用,本说明书中的各项细节也可以基于不同观点与应用,在没有背离本公开的精神下进行各种修饰或改变。需说明的是,在不冲突的情况下,以下实施例及实施例中的特征可以相互组合。基于本公开中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本公开保护的范围。
[0019] 需要说明的是,下文描述在所附权利要求书的范围内的实施例的各种方面。应显而易见,本文中所描述的方面可体现于广泛多种形式中,且本文中所描述的任何特定结构及/或功能仅为说明性的。基于本公开,所属领域的技术人员应了解,本文中所描述的一个方面可与任何其它方面独立地实施,且可以各种方式组合这些方面中的两者或两者以上。举例来说,可使用本文中所阐述的任何数目个方面来实施设备及/或实践方法。另外,可使用除了本文中所阐述的方面中的一或多者之外的其它结构及/或功能性实施此设备及/或实践此方法。
[0020] 图1为本发明实施例提供的融合进化方法流程图。如图1所示,该方法包括:
[0021] S1,创建初始种群。
[0022] 具体地,随机生成群体规模为NP个个体的初始群体。群体规模的大小将影响优化的最终结果以及优化效率。当群体规模NP太小时,优化性能一般不会太好。采用较大的群体规模可以减小优化算法陷入局部最优解的机会,但较大的群体规模意味着计算复杂度高。NP取值一般为10~100。
[0023] S2,计算所述初始种群中个体的适应度。
[0024] 对群体中的个体,进行适应度计算。在具体应用中,适应度函数的设计要结合求解问题本身的要求而定。适应度函数评估是进化选择的依据,适应度函数设计直接影响到进化算法的性能。常见的适应度函数构造方法主要有:目标函数映射成适应度函数、基于序的适应度函数等。
[0025] S3,对所述初始种群中的个体进行差分进化操作,产生第一子代种群,并且对所述初始种群中的个体进行粒子群进化操作,产生第二子代种群。
[0026] 具体地,对种群中的个体进行变异操作、交叉操作、边界条件处理和选择操作的差分进化操作,产生子代种群1(第一子代种群);同时对种群中的个体进行速度更新、位置更新和边界调节处理的粒子群进化操作,产生子代种群2(第二子代种群)。
[0027] S4,将所述第一子代种群个体和第二子代种群个体合并,按适应度排序,取适应度高的前一半种群个体为第三子代种群(子带种群3)。
[0028] S5,合并得到的子代种群按照初始种群的融合进化方法进行融合进化,直至满足终止条件。
[0029] 判断是否满足终止条件,终止条件可以是最大进化代数G,也可以是目标函数值的最小阈值等。G取值一般为100~500,最小阈值一般取10‑6。若满足终止条件,则输出最优结果,算法结束;若不满足,则进行进化循环优化操作,直至达到终止条件,输出最优结果。
[0030] 本发明实施例融合了差分进化算法和粒子群算法,有效提高了进行算法的优化效率和优化效果。
[0031] 下面以一具体实例详细描述本发明实现过程。
[0032] 运用差分进化算法与粒子群算法融合的进化算法,计算函数如下函数的最小值。函数公式如下:
[0033]
[0034] 其中xi的范围是‑512≤xi≤512,个体x的维数n=10。这是一个简单的平方和函数,只有一个最小点x=(0,0,…,0),理论最小值f(0,0,…,0)=0。
[0035] 其具体实施步骤为:
[0036] 第一步,创建初始种群。
[0037] 随机生成群体规模NP为50个个体的初始群体,每个个体的维数是10,每一维取值范围均为[‑512~512]。
[0038] 第二步,进行适应度计算。
[0039] 取适应度为函数f(x)值,对群体中的每一个个体进行适应度计算。
[0040] 第三步,判断是否满足终止条件:
[0041] 取终止条件为最大进化代数G为100。判断是否满足终止条件,若满足终止准则,则输出最优结果,算法结束;若不满足,则进行步骤四操作。
[0042] 第四步,同时进行差分进化操作和粒子群进化操作
[0043] 对种群中的个体进行变异操作、交叉操作、边界条件处理和选择操作的差分进化操作,产生子代种群1;同时对种群中的个体进行速度更新、位置更新和边界调节处理的粒子群进化操作,产生子代种群2。
[0044] 第五步,产生新的子代种群
[0045] 进行子代种群1个体和子代种群2个体合并,并按适应度排序,取适应度高的前一半种群个体为子代种群3,进行下一步循环操作。
[0046] 第六步,转至步骤二
[0047] 进行进化循环优化操作,直至达到终止条件,输出最优结果。
[0048] 在相同条件下,运用差分进化算法、粒子群算法及两者融合的进化算法求函数f(x)的优化解及函数最小值如表1所示。可见融合算法比单独的差分进化算法、粒子群算法有更好的优化结果。
[0049] 表1
[0050]
[0051] 本发明实施例还提供一种融合进化装置,包括:初始种群创建模块、适应度计算模块、进化处理模块、融合进化模块和循环优化模块。
[0052] 初始种群创建模块用于创建初始种群;适应度计算模块用于计算所述初始种群中个体的适应度;进化处理模块用于对所述初始种群中的个体进行差分进化操作,产生第一子代种群,并且对所述初始种群中的个体进行粒子群进化操作,产生第二子代种群;融合进化模块用于将所述第一子代种群个体和第二子代种群个体合并,按适应度排序,取适应度高的前一半种群个体为第三子代种群;循环优化模块用于将合并得到的子代种群按照初始种群的融合进化方法进行融合进化,直至满足终止条件。
[0053] 本发明实施例还提供一种计算机可读存储介质,包括指令,当所述指令在计算机上运行时,使所述计算机执行上述实施例提供的融合进化方法。
[0054] 如图2所示,本发明实施例还提供一种融合进化装置2000,包括处理器2001、存储器2003及存储在存储器2003上的并可在处理器2001上运行的计算机程序,处理器2001执行程序时实现上述实施例提供的融合进化方法。
[0055] 其中,处理器2001和存储器2003相连,如通过总线2002相连。可选地,电子设备2000还可以包括收发器2004,收发器2004可以用于该电子设备与其他电子设备之间的数据交互,如数据的发送和/或数据的接收等。需要说明的是,实际应用中收发器2004不限于一个,该融合进化装置2000的结构并不构成对本发明实施例的限定。
[0056] 处理器2001可以是CPU(Centra l Process i ng Un it,中央处理器),通用处理器,DSP(D i gita l S i gna l Processor,数据信号处理器),AS I C(App l i cat i on Spec i f i c I ntegrated Ci rcu it,专用集成电路),FPGA(F i e l d Programmab l e Gate Array,现场可编程门阵列)或者其他可编程逻辑器件、晶体管逻辑器件、硬件部件或者其任意组合。其可以实现或执行结合本发明公开内容所描述的各种示例性的逻辑方框,模块和电路。处理器2001也可以是实现计算功能的组合,例如包含一个或多个微处理器组合,DSP和微处理器的组合等。
[0057] 总线2002可包括一通路,在上述组件之间传送信息。总线2002可以是PCI(Per i phera l Component I nterconnect,外设部件互连标准)总线或E I SA(Extended I ndustry Standard Arch i tecture,扩展工业标准结构)总线等。总线2002可以分为地址总线、数据总线、控制总线等。为便于表示,图2中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
[0058] 存储器2003可以是ROM(Read On l y Memory,只读存储器)或可存储静态信息和指令的其他类型的静态存储设备,RAM(Random Access Memory,随机存取存储器)或者可存储信息和指令的其他类型的动态存储设备,也可以是EEPROM(E l ectr i ca l l y Erasab l e Programmab l e Read On l y Memory,电可擦可编程只读存储器)、CD‑ROM(Compact D i sc Read On l y Memory,只读光盘)或其他光盘存储、光碟存储(包括压缩光碟、激光碟、光碟、数字通用光碟、蓝光光碟等)、磁盘存储介质或者其他磁存储设备、或者能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。
[0059] 存储器2003用于存储执行本发明方案的应用程序代码(计算机程序),并由处理器2001来控制执行。处理器2001用于执行存储器2003中存储的应用程序代码,以实现前述方法实施例所示的内容。
[0060] 所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,上述描述的装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
[0061] 在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。
[0062] 作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本发明实施例方案的目的。
[0063] 另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以是两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
[0064] 集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分,或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read‑Only Memory)、随机存取存储器(RAM,RandomAccess Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
[0065] 以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。