CN111598209A - 基于串行式融合的ga&pso优化算法研究 - Google Patents
基于串行式融合的ga&pso优化算法研究 Download PDFInfo
- Publication number
- CN111598209A CN111598209A CN202010205451.4A CN202010205451A CN111598209A CN 111598209 A CN111598209 A CN 111598209A CN 202010205451 A CN202010205451 A CN 202010205451A CN 111598209 A CN111598209 A CN 111598209A
- Authority
- CN
- China
- Prior art keywords
- value
- pso
- optimal
- algorithm
- population
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/12—Computing arrangements based on biological models using genetic models
- G06N3/126—Evolutionary algorithms, e.g. genetic algorithms or genetic programming
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/004—Artificial life, i.e. computing arrangements simulating life
- G06N3/006—Artificial life, i.e. computing arrangements simulating life based on simulated virtual individual or collective life forms, e.g. social simulations or particle swarm optimisation [PSO]
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Biophysics (AREA)
- Health & Medical Sciences (AREA)
- Life Sciences & Earth Sciences (AREA)
- Theoretical Computer Science (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Biomedical Technology (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computational Linguistics (AREA)
- Software Systems (AREA)
- Artificial Intelligence (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Bioinformatics & Computational Biology (AREA)
- Evolutionary Biology (AREA)
- Physiology (AREA)
- Genetics & Genomics (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明提供了基于串行式融合的GA&PSO优化算法研究。针对遗传算法操作盲目、无方向性、计算时间长、精度不高和粒子群算法的种群多样性差,易出现早熟从而陷入局部最优等单一算法的缺点,本发明采用串行式的算法融合思想,将一个算法进化得出的种群作为另一个算法执行的初始种群,即GA‑PSO或PSO‑GA。同时本发明还提出一种改进GA‑PSO,随机初始化的粒子群个体经改进GA优化一遍直接交由PSO执行。本发明经测试函数的验证,串行式融合算法相对于单一算法在计算精度、收敛速度、全局稳定性方面均有明显提升,其中PSO‑GA在多峰函数方面的寻优能力尤为突出,另外改进GA‑PSO相对于GA‑PSO,在保证计算精度的基础上,明显提高了收敛速度。
Description
技术领域
本发明涉及基于串行式融合的GA&PSO优化算法研究,特别涉及一种改进GA-PSO优化算法,属于智能算法技术领域。
背景技术
遗传算法(GA)由美国Holland教授基于生物界优胜劣汰的自然选择现象于1975年提出用于解决优化问题,又称进化算法。遗传算法使用群体搜索技术,其所操作的对象以及问题的解均为种群。通过对当前种群施加一系列遗传操作来产生新一代种群,包括优选强势个体的选择、个体间交换基因片段产生新个体的交叉以及某位基因信息突变而产生新个体的变异等。以此逐步迭代进化直到产生最优解。其过程简单,多用于函数优化,数据挖掘,图像处理等。但有局限性,例如在多约束条件下收敛速度减慢,收敛精度不高等。
粒子群算法(PSO)是一种通过对鸟类觅食过程的模拟进行优化的算法。粒子群算法中的每个粒子肩负两个值:位置和速度。粒子的位置表征可行解,速度用来决定粒子的运动方向和距离。此外所有粒子通过跟踪自身经验极值和全局极值来更新自己的位置和速度。其原理简单,用速度位移公式迭代即可实现,此外需调节的参数较少,粒子也具有记忆性,多用于组合优化,传感器网络,车辆调度等。但随着智能优化算法的不断完善,其易陷入局部最优,难处理多维问题的缺点也暴露出来。
单一智能优化算法已经不能满足当下出现的大规模、多变量、多约束、多极化及非线性等复杂的问题,智能算法融合应运而生。近年来,已有多位学者将其融合,主要形式有三种,第一,并行式混合,如Benvidi A等提出用GA-PSO并行混合优化ANN参数,而且利用该算法处理了吸光度数据和分析物浓度的关系,取得很好效果;第二,嵌入式混合,如孙丽平将GA嵌入PSO中用于改进蒙特卡罗滤波和递推贝叶斯理滤波结合的粒子滤波样本退化问题,并且实验证明了有效性;第三,串行式混合,如Zhang J等提出在GA算法完成后叠加PSO来实现聚类,效果虽实现了,但依旧存在收敛速度慢等问题。
发明内容
针对遗传算法操作盲目、无方向性、计算时间长、精度不高和粒子群算法的种群多样性差,易出现早熟从而陷入局部最优等单一算法的缺点,本发明提供了基于串行式融合的GA&PSO优化算法研究,串行式融合算法相对于单一算法在计算精度、收敛速度、全局稳定性方面均有明显提升;此外针对已有串行式融合研究存在的收敛速度慢的问题,本发明还提供了改进GA-PSO,在保证计算精度的基础上,明显提高了收敛速度。
本发明提供基于串行式融合的GA&PSO优化算法研究,其技术方案如下。
采用串行式的算法融合思想,将一个算法进化得出的种群作为另一个算法执行的初始种群,即GA-PSO或PSO-GA。即需要先单独执行GA和PSO,而后将GA算法进化得出的种群作为PSO算法执行的初始种群,或将PSO算法迭代出的最优结果作为GA算法的初始种群。另外还提出一种改进GA-PSO,随机初始化的粒子群个体经改进GA优化一遍直接交由PSO执行。最后利用基准函数来验证各算法的性能。
单独执行GA算法包括如下步骤。
(1)变量初始化:
群体规模太小不利于遗传性能的提升,规模大可减小其陷入局部最优但意味着复杂度提升,故设染色体数目NP=100。每条染色体上的基因数D=10,最大遗传代数G=1000,交叉概率太大虽可增强搜索新区域的能力但高性能模式易被破坏故设Pc=0.8,而变异在整个遗传算法中属辅助操作,只为了增加种群多样性,不可太大,否则就纯粹随机搜索了,故Pm=0.1。
(2)染色体排序:
首先将各染色体的D位基因值分别代入适应度函数,各得一个适应度函数值,然后利用sort函数依据适应度函数升序的方式将各染色体排序。
(3)遗传操作及种群合并提取:
(3.1)采用君主方案进行选择交叉操作;
(3.2)基于概率的变异操作:逐染色体,逐基因进行遍历变异;
(3.3)染色体重排序:接下来需要对进行过遗传操作的子种群按照与以上相同方式进行升序排列。再将排好序的子种群与原排好序的父种群的适应度函数值记忆染色体组均进行合并,并重新升序排列。取前NP个染色体及其适应度函数值作为优化结果,当然最小的适应度函数值作为当代最优值。
(4)迭代:
迭代上述过程G次,将G个适应度函数值绘成曲线。
单独执行PSO算法包括如下步骤。
(1)变量初始化:
对于种群规模,设粒子个数N=100,其维数设为D=10,最大迭代次数T=1000;对于加速常数,也称学习因子c1和c2,决定粒子运行轨迹的个体经验和群体经验,一般设置c1=c2=1.5;惯性权重可控制粒子向新区域的探索能力和在原区域深度开发的能力设w=0.8时可使该算法有更快的收敛速度;根据适应度函数要求可确定粒子运动范围,即位置的最大值Xmax=20和最小值Xmin=-20,另外为了避免粒子飞过优秀区域或是陷入局部最优,设定速度最大值Vmax=10,最小值Vmin=-10。
(2)种群初始化:
种群初始化包括种群个体,个体最优位置和最优值以及全局最优位置和最优值。个体包含位置x和速度v两个值,且矩阵x和v等型,均为[N,D]型。对于个体最优位置p,由于刚只进行了初始化,只需将粒子的初始化位置赋予最优位置p,而个体最优值pbest也是由初始位置x代入适应度函数求得的。对于全局最优位置g和最优值gbest,将各个个体最优pbest与全局最优初始值比较,较小者作为全局最优值并将于此对应的个体最优位置作为全局最优位置。
(3)种群更新:
对种群初始化后,要更新种群并不断进化才可寻优。包括更新个体的最优位置和最优值,全局最优位置和最优值,各粒子的位置和速度以及边界条件的处理。对于每个粒子都要做如下更新:
(3.1) 个体的最优位置和最优值的更新:将初始化的位置代入适应度函数,将求得的函数值与对应pbest值比较,若该函数值较小,则将该粒子的位置放于对应个体最优位置矩阵p中,暂当该粒子的个体最优位置,且此时对应的个体最优值pbest也更换为该函数值;
(3.2)全局最优位置和最优值的更新:将更换后得到的pbest值与已初始化得到的全局最优值gbest作比较。若该pbest值小于gbest值,将该pbest值对应的位置放入全局最优位置矩阵g中,暂当全局最优位置,且此时的gbest值也更换为此gbest值;
(3.3)粒子的位置和速度的更新:用如下公式对该粒子的速度和位置做出更新:
v(j,:)=w* v(j,:)+c1*rand*(p(j,:)-x(j,:))+c2*rand*(g-x(j,:));
x(j,:)= x(j,:)+ v(j,:);
式中j代表某个粒子,j取(1,N);
在速度更新公式中,第一部分表示粒子维持原先速度的惯性;第二部分表示粒子向个体最优位置靠近,即为自我认知;第三部分表示粒子向全局最优位置靠近,即社会引导;
(3.4)对边界条件的处理:对于该粒子上的每一位元素(位置、速度),若存在大于最大速度或小于最小速度的情况,即飞行速度不合理,或若存在大于最大位置或小于最小位置的情况,即超出了边界,将该位的位置规范进先前的区域内。
(4)遍历:
当所有粒子遍历上述操作一遍后,即完成了一代的更新。将这一代所得的全局最优值和最优位置记录下来。记录下遍历T代后所得的T个全局最优值并绘制成曲线。
串行式算法融合研究的特征在于,将GA算法进化得出的种群作为PSO算法执行的初始种群,或将PSO算法迭代出的最优结果作为GA算法的初始种群;如下步骤执行。
(1)先PSO后GA:
初始化部分包括群体粒子个数、染色体数,粒子维数、基因数,粒子群最大迭代次数、遗传算法最大遗传代数,两个相等的学习因子,限定粒子空间位置的位置最大值、最小值,约束粒子飞行跨度的速度最大值、最小值,惯性权重,遗传算法的交叉、变异概率以及初始种群和子种群赋空间。先执行粒子群算法部分,借鉴单独使用PSO的方式,可得到迭代T代后的粒子群最优位置矩阵p。由于PSO部分与GA部分的初始矩阵互为转置关系,故此处只需要将PSO优化后得到的最优位置矩阵p转置后作为GA的初始矩阵,即简单实现了PSO与GA的串行混合,此处的GA部分也与前面单独使用GA部分保持一致。最后将GA迭代了G代后得到的各适应度值绘制成曲线即可。
(2)先GA后PSO:
对于先遗传算法后粒子群算法,可借鉴以上做法,将单独使用GA部分的执行结果作为单独执行PSO部分的初始矩阵,也可实现GA与PSO的简单串行混合。
针对已有GA-PSO收敛速度慢等问题,本发明提出的改进GA-PSO,随机初始化的粒子群个体经改进GA优化一遍直接交由PSO执行,具体改进方法如下步骤执行。
(1)初始化:
(1.1)将单个粒子初始位置、速度、最优位置、最优值矩阵合并为A,并按照初始单个粒子最优值(适应度值)利用sortrows函数将整体升序排列为B;
(1.2)将适应度值低的前一半粒子直接放入下一代,将后一半粒子放入Crocs中进行一系列遗传操作:先是基于概率的交叉操作。若由rand函数随机生成的数小于交叉概率且利用randint函数生成的一行一列数组中的某位元素为1时,则将后一半粒子两两成对地把元素为1对应位交换,实现基于概率的交叉;再是基于概率的变异操作。将粒子总数与变异概率的乘积作为迭代上限,并将粒子维数与变异概率之积作为要变异的位数,再利用randint函数从[1,N/2]和[1,D]中随机选取要变异的粒子体积元素位进行取反变异,反复迭代实现基于概率的变异操作。
(2)遗传算法优化:
将更换后得到的pbest值与已初始化得到的全局最优值gbest作比较。若该pbest值小于gbest值,将该pbest值对应的位置放入全局最优位置矩阵g中,暂当全局最优位置,且此时的gbest值也更换为此gbest值。
(3)Cross部分的更新:
(3.1)将进行过交叉变异的位置代入适应度函数中,将其函数值放入Cross中粒子最优值处,然后与原B中后N/2个粒子的对应值比较;若该函数值小于B中对应值,则将该值对应的位置放入Cross对应最优位置矩阵,否则将B的该值对应的最优位置放入Cross对应最优位置矩阵处;
(3.2)经过以上更新后,Cross的最优位置矩阵处全部为各粒子的最优位置,再将这些最优位置代入适应度函数,所得值放入对应最优值处,此时得到Cross的最优位置及最优值;
(3.3)将Cross与B中后半部分进行合并,再次利用sortrows对最优值进行升序排列,将排序所得前N/2整体投入下一代与原来直接进入下一代的粒子群体组成由GA优化后的粒子群,也即执行PSO的初始值。
(4)粒子群算法的对接:
执行PSO部分包括去依次迭代更新个体最优位置、最优值,更新全局最优位置、最优值,更新个体的位置、速度,边界条件的处理以及记录历代全局最优值等,均与上单独执行PSO部分完全一致。
算法的性能比较往往需要基准函数来验证,本发明选取的基准函数如下:
③Ackley函数:
本发明提出的串行式算法融合思想,将GA算法与PSO算法巧妙结合,扬长避短,相对于单一算法在计算精度、收敛速度、全局稳定性方面均有明显提升;另外针对现有GA-PSO技术的收敛速度慢的问题,本发明提出的改进GA-PSO,在保证计算精度的基础上,明显提高了收敛速度。
附图说明
图1是实施方式的总体流程图。
图2是实施方式中单独GA算法流程图。
图3是实施方式中单独PSO算法流程图。
图4是实施方式中改进GA(*GA)算法流程图。
图5是五种算法在Sphereh函数上的寻优过程比较。
图6是五种算法在Rastrigrin函数上的寻优过程比较。
图7是五种算法在Ackley函数上的寻优过程比较。
具体实施方式
下面结合附图对本发明作进一步说明。
图1是本发明实施方式的总体流程图,本发明要研究GA与PSO的串行式融合及改进GA-PSO,而后要通过基准函数进行五种算法的性能比较。图2是实施方式中单独GA算法流程图,包括:变量初始化,染色体排序,遗传操作及种群合并提取,迭代等基本操作。具体执行如下。
(1)变量初始化:群体规模太小不利于遗传性能的提升,规模大可减小其陷入局部最优但意味着复杂度提升,故设染色体数目NP=100。每条染色体上的基因数D=10,最大遗传代数G=1000,交叉概率太大虽可增强搜索新区域的能力但高性能模式易被破坏故设Pc=0.8,而变异在整个遗传算法中属辅助操作,只为了增加种群多样性,不可太大,否则就纯粹随机搜索了,故Pm=0.1,根据适应度函数要求可令基因值上下限分别为Xs=20,Xx=-20;并对初始种群和子种群赋空间,均为[D,NP]型,再利用下式随机获得初始种群:f=rand(D,NP)*(Xs-Xx)+Xx。
(2)染色体排序:根据适应度将各染色体升序排列,具体操作如下:
首先将各染色体的D位基因值分别代入适应度函数,各得一个适应度函数值,然后利用sort函数依据适应度函数升序的方式将各染色体排序。
(3)遗传操作及种群合并提取:
(3.1)采用君主方案进行选择交叉操作:需要将上文中排好序的适应度函数值最小的染色体定位君主染色体;确定每次交叉点个数NoPoint=round(D*Pc),Pc位为交叉概率;并利用randint函数生成一个[NoPoint,NP/2]型,元素均为1-D内整数的矩阵PoPoint,用于提取交叉基因的位置。此时再将以上排好序的染色体组赋予子种群,并对子种群进行交叉操作,如下:将君主染色体赋在NP条染色体的奇数位,偶数位保持不变,再根据交叉点个数Nopoint进行交叉。各染色体由前向后两两成对,每对染色体要交叉互换Nopoint次,交叉互换位则从矩阵PoPoint中选取;
(3.2)基于概率的变异操作:逐染色体,逐基因进行遍历。对于某染色体上某个基因。若rand随机生成数小于变异概率,则该基因按如下方式变异: nf(n,m)=rand(1,1)*(Xs-Xx)+Xx。此处也可将粒子群算法的位置更新思想融入到变异算子;
(3.3)染色体重排序:接下来需要对进行过遗传操作的子种群按照与以上相同方式进行升序排列。再将排好序的子种群与原排好序的父种群的适应度函数值记忆染色体组均进行合并,并重新升序排列。取前NP个染色体及其适应度函数值作为优化结果,当然最小的适应度函数值作为当代最优值。
(4)迭代:
迭代上述过程G次,将G个适应度函数值绘成曲线。
以上即为单独GA算法的执行过程。
图3是实施方式中单独PSO算法流程图,包括:变量初始化,种群初始化,种群更新,遍历等基本操作。具体执行如下。
(1)变量初始化:对于种群规模,设粒子个数N=100,其维数设为D=10,最大迭代次数T=1000;对于加速常数,也称学习因子c1和c2,根据粒子速度和位置的更新公式可知,这两个学习因子分别调节粒子向个体最优极值pbest和全局极值gbest方向飞行的步长,也即决定粒子运行轨迹的个体经验和群体经验,一般设置c1=c2=1.5;惯性权重可控制粒子向新区域的探索能力和在原区域深度开发的能力设w=0.8时可使该算法有更快的收敛速度[7];根据适应度函数要求可确定粒子运动范围,即位置的最大值Xmax=20和最小值Xmin=-20,另外为了避免粒子飞过优秀区域或是陷入局部最优,设定速度最大值Vmax=10,最小值Vmin=-10。
(2)种群初始化:种群初始化包括种群个体,个体最优位置和最优值以及全局最优位置和最优值。个体包含位置x和速度v两个值,且矩阵x和v等型,均为[N,D]型, x=rand(N,D)*(Xmax-Xmin)+Xmin,v的生成方式与此类似,这样为每个粒子初始化了位置和速度。对于个体最优位置p,由于刚只进行了初始化,只需将粒子的初始化位置赋予最优位置p,而个体最优值pbest也是由初始位置x代入适应度函数求得的。对于全局最优位置g和最优值gbest,将各个个体最优pbest与全局最优初始值比较,较小者作为全局最优值并将于此对应的个体最优位置作为全局最优位置。
(3)种群更新:对种群初始化后,要更新种群并不断进化才可寻优。包括更新个体的最优位置和最优值,全局最优位置和最优值,各粒子的位置和速度以及边界条件的处理。对于每个粒子都要做如下更新:
(3.1)个体的最优位置和最优值的更新:将初始化的位置代入适应度函数,将求得的函数值与对应pbest值比较,若该函数值较小,则将该粒子的位置放于对应个体最优位置矩阵p中,暂当该粒子的个体最优位置,且此时对应的个体最优值pbest也更换为该函数值;
(3.2)全局最优位置和最优值的更新:将更换后得到的pbest值与已初始化得到的全局最优值gbest作比较。若该pbest值小于gbest值,将该pbest值对应的位置放入全局最优位置矩阵g中,暂当全局最优位置,且此时的gbest值也更换为此gbest值;
(3.3)粒子的位置和速度的更新:用如下公式对该粒子的速度和位置做出更新:
v(j,:)=w* v(j,:)+c1*rand*(p(j,:)-x(j,:))+c2*rand*(g-x(j,:));
x(j,:)= x(j,:)+ v(j,:);
式中j代表某个粒子,j取(1,N);
在速度更新公式中,第一部分表示粒子维持原先速度的惯性;第二部分表示粒子向个体最优位置靠近,即为自我认知;第三部分表示粒子向全局最优位置靠近,即社会引导;
(3.4)对边界条件的处理:对于该粒子上的每一位元素(位置、速度),若存在大于最大速度或小于最小速度的情况,即飞行速度不合理,则将该位的速度重新规范在规定的最大最小速度区间内,即v=rand*(Vmax-Vmin)+Vmin。同理若存在大于最大位置或小于最小位置的情况,即超出了边界,将该位的位置规范进先前的区域内,即x=rand*(Xmax-Xmin)+Xmin。
(4)遍历:当所有粒子遍历上述操作一遍后,即完成了一代的更新。将这一代所得的全局最优值和最优位置记录下来。记录下遍历T代后所得的T个全局最优值并绘制成曲线。
接下来进行GA与PSO的串行式融合,具体操作如下。
(1)先PSO后GA:
先PSO后GA的结合方式种群先经PSO优化,可以得到很多接近最优解的个体,此时再利用GA的交叉变异去改善种群,提升种群多样性,这样极大程度上避免了陷入局部最优,并且可以快速准确地在接近最优解的个体中寻得最优值,实现全局快速寻优;
初始化部分包括群体粒子个数、染色体数,粒子维数、基因数,粒子群最大迭代次数、遗传算法最大遗传代数,两个相等的学习因子,限定粒子空间位置的位置最大值、最小值,约束粒子飞行跨度的速度最大值、最小值,惯性权重,遗传算法的交叉、变异概率以及初始种群和子种群赋空间;
先执行粒子群算法部分,借鉴单独使用PSO的方式,可得到迭代T代后的粒子群最优位置矩阵p。由于PSO部分与GA部分的初始矩阵互为转置关系,故此处只需要将PSO优化后得到的最优位置矩阵p转置后作为GA的初始矩阵,即简单实现了PSO与GA的串行混合,此处的GA部分也与前面单独使用GA部分保持一致。最后将GA迭代了G代后得到的各适应度值绘制成曲线即可。
(2)先GA后PSO:
对于先遗传算法后粒子群算法,也可借鉴以上做法,将单独使用GA部分的执行结果作为单独执行PSO部分的初始矩阵,也可实现GA与PSO的简单串行混合。初期采用GA将随机初始化的粒子群个体进行优化,用以提高计算精度,而后采用PSO向最优解均匀移动来提高收敛速度。
以上即为基于串行式算法融合思想的GA&PSO的融合过程。
图4是实施方式中改进GA(*GA)算法流程图,包括初始化,遗传算法优化,Cross部分更新等基本操作。具体执行如下。
(1)初始化:
(1.1)将单个粒子初始位置、速度、最优位置、最优值矩阵合并为A,并按照初始单个粒子最优值(适应度值)利用sortrows函数将整体升序排列为B;
(1.2)将适应度值低的前一半粒子直接放入下一代,将后一半粒子放入Crocs中进行一系列遗传操作:
①基于概率的交叉操作。若由rand函数随机生成的数小于交叉概率且利用randint函数生成的一行一列数组中的某位元素为1时,则将后一半粒子两两成对地把元素为1对应位交换,实现基于概率的交叉;
②基于概率的变异操作。将粒子总数与变异概率的乘积作为迭代上限,并将粒子维数与变异概率之积作为要变异的位数,再利用randint函数从[1,N/2]和[1,D]中随机选取要变异的粒子体积元素位进行取反变异,反复迭代实现基于概率的变异操作。
(2)遗传算法优化:
将更换后得到的pbest值与已初始化得到的全局最优值gbest作比较。若该pbest值小于gbest值,将该pbest值对应的位置放入全局最优位置矩阵g中,暂当全局最优位置,且此时的gbest值也更换为此gbest值。
(3)Cross部分的更新:
(3.1)将进行过交叉变异的位置代入适应度函数中,将其函数值放入Cross中粒子最优值处,然后与原B中后N/2个粒子的对应值比较。若该函数值小于B中对应值,则将该值对应的位置放入Cross对应最优位置矩阵,否则将B的该值对应的最优位置放入Cross对应最优位置矩阵处;
(3.2)经过以上更新后,Cross的最优位置矩阵处全部为各粒子的最优位置,再将这些最优位置代入适应度函数,所得值放入对应最优值处,此时得到Cross的最优位置及最优值;
(3.3)将Cross与B中后半部分进行合并,再次利用sortrows对最优值进行升序排列,将排序所得前N/2整体投入下一代与原来直接进入下一代的粒子群体组成由GA优化后的粒子群,也即执行PSO的初始值。
以上即为改进GA算法的执行过程,然后再与PSO算法对接,而执行PSO算法部分包括去依次迭代更新个体最优位置、最优值,更新全局最优位置、最优值,更新个体的位置、速度,边界条件的处理以及记录历代全局最优值等,均与上单独执行PSO部分完全一致。
该结合方式相对于以上所述的先单独执行上文的GA部分再单独执行上文的PSO部分,优势是显而易见的,该结合方式不需要GA迭代多次,只需一次优化即可,节省了大量寻优时间,但与此同时全局寻优性能也有所提升。
该函数在xi=0时取得最优值0,函数曲面平滑,对称,单峰;
该函数在xi=0时取得最优值0,为非线性多峰值函数,具有极多局部最优点,难优化;
③Ackley函数:
该函数在xi=0时取得最优值0,为多峰值函数,具有较多的局部最优点。
然后进行各优化算法的函数测试结果及分析。
本发明要比较的算法分别为GA,PSO,PSO-GA,GA-PSO,*GA-PSO(改进GA-PSO)。本发明在MATLAB环境下,利用三个基准函数对五种算法分别验证,将每个函数的五种寻优过程置于同一比例图中,如图5,图6,图7分别为五种算法在Sphereh函数,Rastrigrin函数,Ackley函数上的寻优过程,此外还将各算法在各函数上的平均目标函数值及平均收敛迭代次数值绘于同一表中,如表1,以便对其性能进行对比。
表1。
由表1及图5可得,上述五种优化算法的平均目标函数值均达到了很高的精度,而且其迭代收敛次数也均在100代以内。由于Sphere函数平滑,单峰且无其他局部极小值,因而PSO的易陷入局部极值的缺点并未显露,反而利用其原理简单,参数少,粒子具有记忆性等优点,一度使寻得的最优值优于GA。混合算法相对于PSO在计算精度和收敛速度上均有所提升,其中PSO-GA表现最优;而且还可以看出* GA- PSO相对于 GA- PSO计算精度相差不大,但由于改进 GA使用了对随机初始粒子优化次数锐减的方法,进而也相对提高了* GA-PSO的收敛速度。
由表1及图6,图7可得对于多峰函数而言,以上单优化算法的缺点暴露了出来,与此同时融合算法的优势也显而易见。GA由于其操作的盲目无方向性,使得收敛迭代次数高居不下,但其计算精度方面的性能却较为优秀,PSO虽早早收敛,但却是其陷入了局部最优值。对比PSO与GA-PSO发现,前期经GA的迭代,已在全局范围内寻得次优解,这时再利用PSO均匀朝最优解移动的特点,使得GA-PSO收敛精度及收敛速度均有提升,但可以发现提升效果并不是很明显,这是由于前期GA在迭代过程中以及后期PSO在移向最优值的过程中,它们的缺点依旧存在,使得收敛精度和收敛速度并没有急速提升。
对比GA与PSO-GA发现,种群先经PSO优化,可以得到很多接近最优解的个体,此时再利用GA的交叉变异去改善种群,提升种群多样性,这样极大程度上避免了陷入局部最优,并且可以快速准确地在接近最优解的个体中寻得最优值,实现全局快速寻优,由以上实验结果可以发现,面对多峰函数优化问题PSO-GA表现尤为突出,无论是收敛精度还是收敛速度方面,相对于GA均有明显提高。
此外对比GA-PSO与*GA-PSO发现,*GA-PSO相对于GA-PSO计算精度相差不大,但由于改进强化后的GA对随机初始粒子只实施一次优化便交由PSO去向最优解均匀移动,在一定程度上提高了*GA-PSO的收敛速度。
综上,本发明提出的将GA与PSO实行串行式融合,可以取长补短,互助互益。对于GA- PSO,初期采用GA在随机初始化的粒子群迭代寻优,用以提高计算精度,而后采用 PSO向最优解均匀移动来提高收敛速度,但这种结合方法的弊端是它们的缺点依旧存在,这就导致融合算法偶而提前收敛或精度不高。而对于PSO-GA,种群先经PSO优化,可以得到很多接近最优解的个体,此时再利用GA的交叉变异去改善种群,提升种群多样性,这样极大程度上避免了陷入局部最优,并且可以快速准确地在接近最优解的个体中寻得最优值,该算法在解决多峰函数优化问题方面表现优异。对于* GA-PSO,它相对于GA-PSO来说计算精度稍有提高或相差无几,但由于改进的GA优化方式及优化能力的提升,使得优化次数大大缩短,仅对初始粒子群优化一次便交由PSO寻优,这样一来提高了收敛速度,节省了计算时间。
Claims (7)
1.基于串行式融合的GA&PSO优化算法研究,其特征在于:采用串行式的算法融合思想,将一个算法进化得出的种群作为另一个算法执行的初始种群,即GA-PSO或PSO-GA,同时还提出一种改进GA-PSO,随机初始化的粒子群个体经改进GA优化一遍直接交由PSO执行,最后利用基准函数来验证各算法的性能。
2.根据权利要求1所述的基于串行式融合的GA&PSO优化算法研究,其特征在于,所述的将一个算法进化得出的种群作为另一个算法执行的初始种群,即GA-PSO或PSO-GA,即需要先单独执行GA和PSO,而后将GA算法进化得出的种群作为PSO算法执行的初始种群,或将PSO算法迭代出的最优结果作为GA算法的初始种群。
3.根据权利要求2所述的基于串行式融合的GA&PSO优化算法研究,其特征在于,所述的单独执行GA算法包括如下步骤:
(1)变量初始化:群体规模太小不利于遗传性能的提升,规模大可减小其陷入局部最优但意味着复杂度提升,故设染色体数目NP=100,每条染色体上的基因数D=10,最大遗传代数G=1000,交叉概率太大虽可增强搜索新区域的能力但高性能模式易被破坏故设Pc=0.8,而变异在整个遗传算法中属辅助操作,只为了增加种群多样性,不可太大,否则就纯粹随机搜索了,故Pm=0.1;
(2)染色体排序:首先将各染色体的D位基因值分别代入适应度函数,各得一个适应度函数值,然后利用sort函数依据适应度函数升序的方式将各染色体排序;
(3)遗传操作及种群合并提取:
(3.1)采用君主方案进行选择交叉操作;
(3.2)基于概率的变异操作:逐染色体,逐基因进行遍历变异;
(3.3)染色体重排序:接下来需要对进行过遗传操作的子种群按照与以上相同方式进行升序排列,再将排好序的子种群与原排好序的父种群的适应度函数值记忆染色体组均进行合并,并重新升序排列,取前NP个染色体及其适应度函数值作为优化结果,当然最小的适应度函数值作为当代最优值;
(4)迭代:迭代上述过程G次,将G个适应度函数值绘成曲线。
4.根据权利要求2所述的基于串行式融合的GA&PSO优化算法研究,其特征在于,所述的单独执行PSO算法包括如下步骤:
(1)变量初始化:对于种群规模,设粒子个数N=100,其维数设为D=10,最大迭代次数T=1000;对于加速常数,也称学习因子c1和c2,决定粒子运行轨迹的个体经验和群体经验,一般设置c1=c2=1.5;惯性权重可控制粒子向新区域的探索能力和在原区域深度开发的能力设w=0.8时可使该算法有更快的收敛速度;根据适应度函数要求可确定粒子运动范围,即位置的最大值Xmax=20和最小值Xmin=-20,另外为了避免粒子飞过优秀区域或是陷入局部最优,设定速度最大值Vmax=10,最小值Vmin=-10;
(2)种群初始化:种群初始化包括种群个体,个体最优位置和最优值以及全局最优位置和最优值,个体包含位置x和速度v两个值,且矩阵x和v等型,均为[N,D]型,对于个体最优位置p,由于刚只进行了初始化,只需将粒子的初始化位置赋予最优位置p,而个体最优值pbest也是由初始位置x代入适应度函数求得的,对于全局最优位置g和最优值gbest,将各个个体最优pbest与全局最优初始值比较,较小者作为全局最优值并将于此对应的个体最优位置作为全局最优位置;
(3)种群更新:对种群初始化后,要更新种群并不断进化才可寻优,包括更新个体的最优位置和最优值,全局最优位置和最优值,各粒子的位置和速度以及边界条件的处理,对于每个粒子都要做如下更新:
(3.1) 个体的最优位置和最优值的更新:将初始化的位置代入适应度函数,将求得的函数值与对应pbest值比较,若该函数值较小,则将该粒子的位置放于对应个体最优位置矩阵p中,暂当该粒子的个体最优位置,且此时对应的个体最优值pbest也更换为该函数值;
(3.2)全局最优位置和最优值的更新:将更换后得到的pbest值与已初始化得到的全局最优值gbest作比较,若该pbest值小于gbest值,将该pbest值对应的位置放入全局最优位置矩阵g中,暂当全局最优位置,且此时的gbest值也更换为此gbest值;
(3.3)粒子的位置和速度的更新:用如下公式对该粒子的速度和位置做出更新:
v(j,:)=w*v(j,:)+c1*rand(p(j,:)-x(j,:))+c2*rand*(g-x(j,:));
x(j,:)=x(j,:)+v(j,:);
式中j代表某个粒子,j取(1,N);
在速度更新公式中,第一部分表示粒子维持原先速度的惯性;第二部分表示粒子向个体最优位置靠近,即为自我认知;第三部分表示粒子向全局最优位置靠近,即社会引导;
(3.4)对边界条件的处理:对于该粒子上的每一位元素(位置、速度),若存在大于最大速度或小于最小速度的情况,即飞行速度不合理,或若存在大于最大位置或小于最小位置的情况,即超出了边界,将该位的位置规范进先前的区域内;
(4)遍历:当所有粒子遍历上述操作一遍后,即完成了一代的更新,将这一代所得的全局最优值和最优位置记录下来,记录下遍历T代后所得的T个全局最优值并绘制成曲线。
5.根据权利要求2所述的基于串行式融合的GA&PSO优化算法研究,其特征在于,所述将GA算法进化得出的种群作为PSO算法执行的初始种群,或将PSO算法迭代出的最优结果作为GA算法的初始种群;如下步骤执行:
(1)先PSO后GA:初始化部分包括群体粒子个数、染色体数,粒子维数、基因数,粒子群最大迭代次数、遗传算法最大遗传代数,两个相等的学习因子,限定粒子空间位置的位置最大值、最小值,约束粒子飞行跨度的速度最大值、最小值,惯性权重,遗传算法的交叉、变异概率以及初始种群和子种群赋空间,先执行粒子群算法部分,借鉴单独使用PSO的方式,可得到迭代T代后的粒子群最优位置矩阵p,由于PSO部分与GA部分的初始矩阵互为转置关系,故此处只需要将PSO优化后得到的最优位置矩阵p转置后作为GA的初始矩阵,即简单实现了PSO与GA的串行混合,此处的GA部分也与前面单独使用GA部分保持一致,最后将GA迭代了G代后得到的各适应度值绘制成曲线即可;
(2)先GA后PSO:对于先遗传算法后粒子群算法,可借鉴以上做法,将单独使用GA部分的执行结果作为单独执行PSO部分的初始矩阵,也可实现GA与PSO的简单串行混合。
6.根据权利要求1所述的基于串行式融合的GA&PSO优化算法研究,其特征在于,所述的提出一种改进GA-PSO,随机初始化的粒子群个体经改进GA优化一遍直接交由PSO执行,具体改进方法如下步骤执行:
(1)初始化:
(1.1)将单个粒子初始位置、速度、最优位置、最优值矩阵合并为A,并按照初始单个粒子最优值(适应度值)利用sortrows函数将整体升序排列为B;
(1.2)将适应度值低的前一半粒子直接放入下一代,将后一半粒子放入Crocs中进行一系列遗传操作:先是基于概率的交叉操作,若由rand函数随机生成的数小于交叉概率且利用randint函数生成的一行一列数组中的某位元素为1时,则将后一半粒子两两成对地把元素为1对应位交换,实现基于概率的交叉;再是基于概率的变异操作,将粒子总数与变异概率的乘积作为迭代上限,并将粒子维数与变异概率之积作为要变异的位数,再利用randint函数从[1,N/2]和[1,D]中随机选取要变异的粒子体积元素位进行取反变异,反复迭代实现基于概率的变异操作;
(2)遗传算法优化:将更换后得到的pbest值与已初始化得到的全局最优值gbest作比较,若该pbest值小于gbest值,将该pbest值对应的位置放入全局最优位置矩阵g中,暂当全局最优位置,且此时的gbest值也更换为此gbest值;
(3)Cross部分的更新:
(3.1)将进行过交叉变异的位置代入适应度函数中,将其函数值放入Cross中粒子最优值处,然后与原B中后N/2个粒子的对应值比较;若该函数值小于B中对应值,则将该值对应的位置放入Cross对应最优位置矩阵,否则将B的该值对应的最优位置放入Cross对应最优位置矩阵处;
(3.2)经过以上更新后,Cross的最优位置矩阵处全部为各粒子的最优位置,再将这些最优位置代入适应度函数,所得值放入对应最优值处,此时得到Cross的最优位置及最优值;
(3.3)将Cross与B中后半部分进行合并,再次利用sortrows对最优值进行升序排列,将排序所得前N/2整体投入下一代与原来直接进入下一代的粒子群体组成由GA优化后的粒子群,也即执行PSO的初始值;
(4)粒子群算法的对接:执行PSO部分包括去依次迭代更新个体最优位置、最优值,更新全局最优位置、最优值,更新个体的位置、速度,边界条件的处理以及记录历代全局最优值等,均与上单独执行PSO部分完全一致。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010205451.4A CN111598209A (zh) | 2020-03-23 | 2020-03-23 | 基于串行式融合的ga&pso优化算法研究 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010205451.4A CN111598209A (zh) | 2020-03-23 | 2020-03-23 | 基于串行式融合的ga&pso优化算法研究 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111598209A true CN111598209A (zh) | 2020-08-28 |
Family
ID=72188619
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010205451.4A Pending CN111598209A (zh) | 2020-03-23 | 2020-03-23 | 基于串行式融合的ga&pso优化算法研究 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111598209A (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112380945A (zh) * | 2020-11-06 | 2021-02-19 | 中国电力科学研究院有限公司 | 一种输电通道环境隐患的识别方法和系统 |
CN112732419A (zh) * | 2020-12-23 | 2021-04-30 | 张琨 | 基于pso改进算法的三维闪电数据调度研究方法 |
CN113033067A (zh) * | 2021-04-14 | 2021-06-25 | 国网上海市电力公司 | 一种基于改进粒子群算法的电流互感器j-a模型参数辨识方法 |
CN113326990A (zh) * | 2021-06-22 | 2021-08-31 | 安徽农业大学 | 基于动态遗传算法串行融合的直升机调度航线规划方法 |
US20220108186A1 (en) * | 2020-10-02 | 2022-04-07 | Francisco Daniel Filip Duarte | Niche Ranking Method |
CN115619808A (zh) * | 2022-10-31 | 2023-01-17 | 南京航空航天大学 | 一种电极片贴附方法与系统 |
-
2020
- 2020-03-23 CN CN202010205451.4A patent/CN111598209A/zh active Pending
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20220108186A1 (en) * | 2020-10-02 | 2022-04-07 | Francisco Daniel Filip Duarte | Niche Ranking Method |
CN112380945A (zh) * | 2020-11-06 | 2021-02-19 | 中国电力科学研究院有限公司 | 一种输电通道环境隐患的识别方法和系统 |
CN112732419A (zh) * | 2020-12-23 | 2021-04-30 | 张琨 | 基于pso改进算法的三维闪电数据调度研究方法 |
CN113033067A (zh) * | 2021-04-14 | 2021-06-25 | 国网上海市电力公司 | 一种基于改进粒子群算法的电流互感器j-a模型参数辨识方法 |
CN113326990A (zh) * | 2021-06-22 | 2021-08-31 | 安徽农业大学 | 基于动态遗传算法串行融合的直升机调度航线规划方法 |
CN115619808A (zh) * | 2022-10-31 | 2023-01-17 | 南京航空航天大学 | 一种电极片贴附方法与系统 |
CN115619808B (zh) * | 2022-10-31 | 2023-12-01 | 南京航空航天大学 | 一种电极片贴附方法与系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111598209A (zh) | 基于串行式融合的ga&pso优化算法研究 | |
CN110363344B (zh) | 基于miv-gp算法优化bp神经网络的概率积分参数预测方法 | |
Zhong et al. | MOMPA: Multi-objective marine predator algorithm | |
Luo et al. | Species-based particle swarm optimizer enhanced by memory for dynamic optimization | |
CN112232413B (zh) | 基于图神经网络与谱聚类的高维数据特征选择方法 | |
CN107633105B (zh) | 一种基于改进混合蛙跳算法的四旋翼无人机参数辨识方法 | |
CN105930688A (zh) | 基于改进pso算法的蛋白质功能模块检测方法 | |
CN102968665A (zh) | 并联机器人的正运动学求解方法 | |
CN113435108B (zh) | 一种基于改进的鲸鱼优化算法的战场目标分群方法 | |
CN112783210B (zh) | 无人机集群控制系统的多目标控制参数调优方法 | |
CN115116537A (zh) | 生物分子功能性动力学多转变路径的计算方法及系统 | |
CN117519244B (zh) | 无人机集群协同探测多目标的路径规划方法及系统 | |
CN110210623A (zh) | 基于模拟退火和信息熵的自适应多目标混合差分进化算法 | |
CN113468794A (zh) | 一种小型密闭空间温湿度预测及反向优化方法 | |
CN107122827A (zh) | 一种基于DGSOM神经网络的RatSLAM算法 | |
Wu et al. | An improved discrete pigeon-inspired optimisation algorithm for flexible job shop scheduling problem | |
CN113722853B (zh) | 一种面向智能计算的群智能进化式工程设计约束优化方法 | |
CN109657778B (zh) | 一种基于改进的多种群全局最优的自适应鸽群优化方法 | |
CN112784948A (zh) | 一种基于章鱼学习记忆系统仿生的混合进化方法 | |
CN113554144A (zh) | 用于多目标进化特征选择算法的自适应种群初始化方法和存储设备 | |
Hjortso et al. | Quantitative characterization of plasmid instability in Saccharomyces cerevisiae using flow cytometry-cell sorting | |
CN111860755A (zh) | 基于支持向量机回归的改进粒子群算法 | |
CN103177169B (zh) | 一种获得超材料单元结构体的参数的方法和装置 | |
CN111383710A (zh) | 基于粒子群优化双子支持向量机的基因剪接位点识别模型构建方法 | |
He et al. | An Improved Gaussian Pigeon-inspired Optimization Algorithm |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
WD01 | Invention patent application deemed withdrawn after publication | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20200828 |