掌桥专利:专业的专利平台
掌桥专利
首页

一种基于PSO算法的物种生灭优化方法

文献发布时间:2023-06-19 09:24:30


一种基于PSO算法的物种生灭优化方法

技术领域

本发明涉及最优化技术,具体涉及一种利用粒子群优化(Particle SwarmOptimization,PSO)算法对物种生灭方法进行改进处理的方法。

背景技术

群智能优化算法是在借鉴自然现象或者生物体的各种原理的基础上发展出的一类新的优化算法,包括粒子群优化算法、蚁群算法、人工鱼群算法等。群智能优化算法能够解决不同领域的许多问题,如许多传统方法无法解决的非确定性多项式-难题(NP-Hard)问题。群智能优化算法利用群体中单个成员简单的操作,通过合作完成复杂的任务。因此,群智能优化算法一般只需要两个操作即可实现,一是个体行为操作,二是个体间的合作。如粒子群优化算法中,粒子的移动包含了粒子本身的信息(个体行为)以及整个种群对粒子的影响(个体间的合作)。尽管群智能优化算法理论简单、可操作性强、易于实现,然而,几乎所有的群智能优化算法不可避免地会发生早熟收敛、容易陷入局部最优解等问题。

Kennedy的《Particle Swarm Optimization》(Proc.the IEEE InternationalConference on Neural Networks,1995:1942-1948)利用鸟群的群体行为,提出了PSO算法。PSO算法中种群是由大量粒子组成的,每个粒子包含位置、速度和适应度值三种信息,代表着搜索区域内一种潜在的可能最优解。粒子在移动过程中,通过其自身信息和种群中其他粒子的信息来调整其移动路线。PSO算法不需要被优化函数的其他额外信息,仅需要采用基本的数学运算即可完成优化任务,具有算法理论简单、易于编程实现、参数设置少,搜索效率高的特点。

《物种生灭方法》(系统工程与电子技术,2018,40(4):941-947.)是一种新型的群智能优化算法,具有收敛速度快、搜索空间更自由、包容性强的优点,但物种生灭方法依然面临容易陷入局部最优解的问题。物种生灭方法的主要步骤分为两个阶段,第一阶段为物种大爆发,在已有物种的基础上,通过衍生使物种数目达到原来的M倍;第二阶段为物种大灭绝,对最近一次物种大爆发所产生的物种进行筛选,环境适应能力最好的S个物种将在本次物种大灭绝中幸存,其余的物种全部淘汰。环境适应能力即最优化问题中的目标函数,对于不同的优化问题目标函数的表达式不同,在群智能优化算法中,目标函数通常称为适应度函数。

发明内容

为了进一步提高群智能优化算法的收敛速度、避免种群陷入局部最优解,本发明提出一种基于PSO算法的物种生灭优化方法,具体步骤如下:

第一步:设置物种生灭方法的参数,包括:幸存物种的数量S,物种的衍生能力A,A∈[A

第二步:设置PSO算法的参数,包括:种群大小P,学习因子c

第三步:根据优化问题建立适应度函数;对7个D维的基本测试函数的最小值进行求解,建立的适应度函数如表1所示,表中,D表示优化问题的维数,[L

表1 优化函数用例

表中,x

第四步:根据目标函数及优化区域的范围,采用随机化的方式,初始化物种生灭方法,并计算每个物种的适应度值;每一个物种的每一维初始化公式为:

Sp(s,d,k)=L

A(s,d,k)=(A

其中,Sp(s,d,k)表示第s个物种、第d维在第k次优化时的值,A(s,d,k)表示第s个物种、第d维在第k次优化时的衍生能力,s=1,2,...,S表示第s个幸存物种;d=1,2,...,D表示优化问题的第d维;k=1,2,...,Iter表示物种生灭方法的第k次迭代;rand代表(0,1)之间的随机数;

第五步:对每一个幸存物种进行一次爆发;每一次大爆发时,物种每一维的更新公式为:

Spe(s,d,k,j)=Sp(s,d,k)+rand×A(s,d,k) (3)

Ae(s,d,k,j)=(A

其中,Spe(s,d,k,j)表示第s个物种、第d维,在第k次优化的第j次爆发时的值,Ae(s,d,k,j)表示第s个物种、第d维,在第k次优化的第j次爆发时的衍生能力,j=1,2,...,M表示第j次爆发;

第六步:对每一次爆发产生的新物种进行越界判断和处理;爆发所产生物种的每一维,其数值应在[L

第七步:采用PSO算法对每次爆发产生的新物种进行深度迭代;

①在爆发产生的新物种基础上,生成P个粒子,每个粒子每一维的生成公式为:

p

v(p,d,i)=(L

其中,p

②对每个粒子进行越界判断和处理;每个粒子的每一维,其数值应在[L

③根据所建立的适应度函数,如表1所示,计算P个粒子的适应度值,选取的标准是什么选出全局最优解p

全局最优解的选择规则为:适应度值最小的粒子位置为全局最优解;

④对每个粒子的每一维按照下式进行更新;

v(p,d,i+1)=ω×v(p,d,i)+c

其中,ω为惯性权重;p

判断速度是否在[-(L

p

判断更新后的每个粒子的每一维是否在[L

⑤每次更新完粒子速度和位置后,计算更新后粒子的适应度函数值,若小于该粒子历史最优解的适应度函数值,则该粒子的历史最优解替换为更新后粒子的位置,否则该粒子的历史最优解不变;

当所有粒子完成该次迭代的位置更新后,选择所有更新后粒子的适应度函数值最小的粒子,将该粒子的适应度值与全局最优解的适应度值进行比较,若该粒子的适应度值更小,则将全局最优解替换为该粒子的位置;否则,全局最优解保持不变;

⑥令i=i+1并重复③-⑤步骤,直至完成iter次迭代;

⑦用完成迭代后的全局最优解p

第八步:计算爆发后和爆发前该物种的适应度函数值并进行比较,若新物种的适应度值更小,则将新物种标记为主支物种,否则旧物种为主支物种;只有主支物种才能进行大爆发操作;若发生主支转移,则该物种的生代数G加1,且主支物种的衍生能力更新为该新物种的衍生能力,即:A(s,d,k)=Ae(s,d,k,j);

第九步:重复第五至第八步骤,直至完成M次爆发;

第十步:将M次爆发产生的所有新物种及爆发前已有物种的适应度函数值进行排序,选择适应度值较小的S个物种,作为下一次大爆发及大灭绝的元生代物种,并对幸存物种的衍生能力进行按式(9)进行收缩,其他物种全部淘汰;幸存物种衍生能力收缩公式为:

其中,α<1,为收缩系数;

第十一步:重复第五至十步骤,直至完成Iter次迭代。

在本发明的一个具体实施例中,D=30。

本发明将粒子群优化算法融入到物种生灭方法中的每个幸存物种的爆发过程中,能够有效缩短达到优化目标所需要的迭代次数,加快群智能优化算法的收敛速度,提高最优解的质量。

附图说明

图1示出基于PSO算法的物种生灭优化方法的流程示意图;

图2给出对Sphere函数进行优化时的迭代曲线;

图3给出对Rosenbrock函数进行优化时的迭代曲线;

图4给出对Quartic函数进行优化时的迭代曲线;

图5给出对Schwefel P2.22函数进行优化时的迭代曲线;

图6给出对Rastrigin函数进行优化时的迭代曲线;

图7给出对Griewank函数进行优化时的迭代曲线;

图8给出对Ackley函数进行优化时的迭代曲线。

具体实施方式

下面结合附图详细描述本发明。

本发明一种基于PSO算法的物种生灭优化方法的详细步骤如下。

第一步:设置物种生灭方法的参数。主要包括:幸存物种的数量S,物种的衍生能力A,A∈[A

第二步:设置PSO算法的参数。主要包括:种群大小P,学习因子c

第三步:根据优化问题建立目标函数,即适应度函数。本发明对7个30维(D=30,代表优化问题的维度)的基本测试函数的最小值进行求解,建立的适应度函数如表1所示,优化区域为[L

表1 优化函数用例

表中,x

第四步:根据目标函数及优化区域的范围,采用随机化的方式,初始化物种生灭方法,并计算每个物种的适应度值。每一个物种的每一维初始化公式为:

Sp(s,d,k)=L

A(s,d,k)=(A

其中,Sp(s,d,k)表示第s个物种、第d维在第k次优化时的值,A(s,d,k)表示第s个物种、第d维在第k次优化时的衍生能力,s=1,2,...,S表示第s个幸存物种;d=1,2,...,D表示优化问题的第d维;k=1,2,...,Iter表示物种生灭方法的第k次迭代;rand代表(0,1)之间的随机数。

第五步:对每一个幸存物种进行一次爆发。每一次大爆发时,物种每一维的更新公式为:

Spe(s,d,k,j)=Sp(s,d,k)+rand×A(s,d,k) (3)

Ae(s,d,k,j)=(A

其中,Spe(s,d,k,j)表示第s个物种、第d维,在第k次优化的第j次爆发时的值,Ae(s,d,k,j)表示第s个物种、第d维,在第k次优化的第j次爆发时的衍生能力,j=1,2,...,M表示第j次爆发。

第六步:对每一次爆发产生的新物种进行越界判断和处理。爆发所产生物种的每一维,其数值应在[L

第七步:采用PSO算法对每次爆发产生的新物种进行深度迭代。

①在爆发产生的新物种基础上,生成P个粒子,每个粒子每一维的生成公式为:

p

v(p,d,i)=(L

其中,p

②对每个粒子进行越界判断和处理。每个粒子的每一维,其数值应在[L

③根据所建立的适应度函数,如表1所示,计算P个粒子的适应度值,将适应度值最小的粒子位置定为全局最优解p

④对每个粒子的每一维按照下式进行更新。

v(p,d,i+1)=ω×v(p,d,i)+c

其中,ω为惯性权重;p

判断速度是否在[-(L

p

判断更新后的每个粒子的每一维是否在[L

⑤每次更新完粒子速度和位置后,计算更新后粒子的适应度函数值,若小于该粒子历史最优解的适应度函数值,则该粒子的历史最优解替换为更新后粒子的位置,否则该粒子的历史最优解不变。

当所有粒子完成该次迭代的位置更新后,选择所有更新后粒子的适应度函数值最小的粒子,将该粒子的适应度值与全局最优解的适应度值进行比较,若该粒子的适应度值更小,则将全局最优解替换为该粒子的位置;否则,全局最优解保持不变;

⑥令i=i+1并重复③-⑤步骤,直至完成iter次迭代。

⑦用完成迭代后的全局最优解p

第八步:计算爆发后和爆发前该物种的适应度函数值并进行比较,若新物种的适应度值更小,则将新物种标记为主支物种,否则旧物种为主支物种。只有主支物种才能进行大爆发操作。若发生主支转移,则该物种的生代数G加1,且主支物种的衍生能力更新为该新物种的衍生能力,即:A(s,d,k)=Ae(s,d,k,j)。

第九步:重复第五至第八步骤,直至完成M次爆发。

第十步:将M次爆发产生的所有新物种及爆发前已有物种的适应度函数值进行排序,选择适应度值较小的S个物种,作为下一次大爆发及大灭绝的元生代物种,并对幸存物种的衍生能力进行按式(9)进行收缩,其他物种全部淘汰。幸存物种衍生能力收缩公式为:

其中,α<1,为收缩系数。

第十一步:重复第五至十步骤,直至完成Iter次迭代。

本发明中,以表1所示的优化函数为例,进行最小值的求解。对于其他的优化问题,只要明确优化区间,建立适应度函数,亦可采用本发明的方法进行优化求解。

本发明中,附图中所列算法的参数如表2所示。

表2 算法参数设置

相关技术
  • 一种基于PSO算法的物种生灭优化方法
  • 一种基于PSO-ELM算法的智能建筑空调冷机系统运行优化方法
技术分类

06120112153586