一种基于混沌反向学习的粒子群改进算法的制作方法

文档序号:12272410阅读:1618来源:国知局

本发明涉及粒子群优化算法的技术领域,具体地说,特别涉及到一种基于混沌反向学习的粒子群改进算法。



背景技术:

针对粒子群优化算法的性能受自身参数设置的影响,后期速度缓慢、易陷入局部极小等问题。近年来PSO算法的研究及其应用主要从以下几个方面展开:拓扑结构的改进;学习策略的研究、PSO混合优化算法的研究、PSO算法的应用研究。而学习策略改进的目的是为了增强粒子间信息交流,增强种群的多样性,进而提升种群跳出局部最优解的能力。一种广泛学习的粒子群(Comprehensive Learning Particle Swarm Optimizer,简称CLPSO)算法被提出,该算法的“社会部分”粒子由除自身以外所有粒子构成,极大地增加了每个粒子向其他粒子最优性学习的机会;为改进CLPSO算法的不足,一种自适应学习策略被提出了,根据种群中粒子的运行状况,动态地为每个粒子指派学习样本,以增强粒子间的信息交流。但是上述这些改进策略在某种程度上起了积极作用,但在收敛精度等方面仍存在不足。



技术实现要素:

本发明的目的在于针对现有技术中的不足,提供一种基于混沌反向学习的粒子群改进算法,以解决现有技术中存在的问题。

本发明所解决的技术问题可以采用以下技术方案来实现:

一种基于混沌反向学习的粒子群改进算法,包括反向学习策略和混沌粒子群优化;

所述反向学习策略的具体步骤如下:

首先产生初始解Xi,然后求出每个初始解所对应的反向解Xi1

并计算所有初始解的适应度值,最后对产生的所有解按适应度值排序,将适应度值较优的前N个解作为初始种群的解Zid(t)(d=1,2,…D),其用于提高解的质量和求解效率;

接着结合反向学习策略并将混沌引入到惯性因子、学习因子、粒子速度和位置的更新中去,具体流程如下:

步骤1:初始化参数,例如粒子群体规模M、最大迭代次数T,惯性因子的范围[Wmin,Wmax],一般取[0.4,0.9]、学习因子的范围[Cmin,Cmax],一般取[1.4,2.0]、粒子群飞行速度范围[Vmin,Vmax]、维数为D、各优化问题变量取值范围为[Pdmin,Pdmax](d=1,…,D),根据下式产生W、C1、C2、R1和R2的混沌时间序列;

W(t)=4.0W(t-1)(1-W(t-1))

W(t)=Wmin+(Wmax-Wmin)W(t)

Ri(t)=4.0Ri(t-1)(1-Ri(t-1)),Ri∈(0,1)

Ci(t)=4.0Ci(t-1)(1-Ci(t-1))

Ci(t)=Cmin+(Cmax-Cmin)Ci(t)

步骤2:选择种群和混沌初始化粒子的位置和速度;

步骤2.1随机产生D维每个分量数值在(0,1)上的向量Z0d(t)(d=1,2,…,D),D为变量个数,利用典型的Logistic映射产生N个不同轨迹的混沌序列Zid(t)(d=1,2,…D),通过反向学习策略选择最优种群,即作为初始种群;

步骤2.2根据Zid(t)=Pmind+(Pmaxd-Pmind)Zid(t)将初始种群进行取值范围的标准化;

步骤2.3计算粒子群的适应度值,并从N个初始群体中选择性能较好的M个解作为粒子的初始位置,随机产生M个初始速度;

步骤2.4将每个粒子个体极值Pdbest作为当前位置,计算其适应度值,取适应值最好的粒子对应的个体极值作为初始全局极值Gdbest

步骤3:判断收敛准则是否满足,如果满足,则输出全局最优位置和其适应度值,算法结束;若不满足,则进入步骤4;

步骤4:根据粒子群速度和位置更新公式进行迭代计算,更新粒子的速度和位置;

步骤5:根据选取的适应度函数比较适应度F(Pdi)和F(Pdbest),如果F(Pdi)<F(Pdbest),则更新Pdbest

步骤6:如果F(Pdbest)<F(Gdbest)进行更新Gdbest

步骤7:判断收敛准则是否满足;如果满足,则输出全局最优位置和其适应度值,算法结束;若不满足,则进入步骤8;

步骤8:根据下式计算平均粒距Dis和群体适应度方差,并判断Dis<α且δ2<H是否成立,即判断算法是否陷入局部最优,若不成立,转步骤4;

其中,L为搜索空间对角最大长度;Pid表示第i个粒子的第d维坐标值;表示所有粒子第d维坐标值的均值;m为粒子群的粒子数目,F为粒子i的适应度,Favg为粒子群目前的平均适应度,F为归一化因子,用于限制δ2的大小;

步骤9:根据下式更新粒子的速度和位置,使粒子跳出局部最优;

Vdi(t+1)=W(t)Vdi(t)+C1(t)×R1(t)×(Pdbest(t)-Pdi(t))+C2(t)×R2(t)×(Gdbest(t)-Pdi(t))

Pdi(t+1)=Pdi(t))+Vdi(t+1))

步骤10:对最优位置Gdbest进行混沌优化;

步骤10.1根据Gdbest(t)=(Gdbest-Pdmin)/(Pmaxd-Pmind)将Gdbest映射到(0,1);

步骤10.2将Gdbest代入到式Logistic映射中,迭代产生混沌变量序列;

步骤10.3将产生的混沌变量通过逆映射Gdbest(t)=Pmind+(Pmaxd-Pmind)Zid(t)到原解空间;

步骤10.4在原解空间对混沌变量的每一个可行解计算其适应度值,得到性能最优的可行解Gdbest

步骤11:用Gdbest替代当前群体中任意一个粒子的位置;

步骤12:判断算法是否达到最大迭代次数或满足求解精度要求,若满足则输出全局最优位置和其适应度值,算法结束;否则返回步骤3。

与现有技术相比,本发明的有益效果如下:

针对粒子群优化算法性能受其本身参数设置的影响大,且后期速度缓慢,易陷入局部极小和早熟问题,本发明提出了混沌反向学习的粒子群优化方法,考虑到混沌具有对初值敏感、计算精度高、易跳出局部极小和全局渐近收敛等特点,引入混沌理论,并且利用反向学习策略初始化种群,使得初始化个体尽可能均匀分布在搜索空间,从而提升算法的局部搜索能力,有效地避免早熟收敛。

附图说明

图1为本发明所述的基于混沌反向学习的粒子群改进算法的结构框图。

具体实施方式

为使本发明实现的技术手段、创作特征、达成目的与功效易于明白了解,下面结合具体实施方式,进一步阐述本发明。

参见图1,本发明所述的基于混沌反向学习的粒子群改进算法,主要包括反向学习策略和混沌粒子群优化。反向学习策略基本原理:反向学习策略为每个初始候选解生成相对应的反向解,并从这两类解(候选解和相对应的反向解)中选择距离较近(即适应度较优)的解作为初始种群中的成员,将有助于提高优化过程中的收敛速率。即为保持种群的多样性和使初始种群的个体尽可能均匀分布,利用反向学习策略生成初始种群。首先产生初始解Xi,然后求出每个初始解所对应的反向解Xi1

并计算所有初始解的适应度值,最后对产生的所有解按适应度值排序,将适应度值较优的前N个解作为初始种群的解Zid(t)(d=1,2,…,D),这将有助于提高解的质量和求解效率。

本发明结合反向学习策略并将混沌引入到惯性因子、学习因子、粒子速度和位置的更新中去,具体流程如下

步骤1:初始化参数,例如粒子群体规模M、最大迭代次数T,惯性因子的范围[Wmin,Wmax],一般取[0.4,0.9]、学习因子的范围[Cmin,Cmax],一般取[1.4,2.0]、粒子群飞行速度范围[Vmin,Vmax]、维数为D、各优化问题变量取值范围为[Pdmin,Pdmax](d=1,…,D),根据下式产生W、C1、C2、R1和R2的混沌时间序列。

W(t)=4.0W(t-1)(1-W(t-1))

W(t)=Wmin+(Wmax-Wmin)W(t)

Ri(t)=4.0Ri(t-1)(1-Ri(t-1)),Ri∈(0,1)

Ci(t)=4.0Ci(t-1)(1-Ci(t-1))

Ci(t)=Cmin+(Cmax-Cmin)Ci(t)

步骤2:选择种群和混沌初始化粒子的位置和速度。

步骤2.1随机产生D维每个分量数值在(0,1)上的向量Z0d(t)(d=1,2,…,D),D为变量个数,利用典型的Logistic映射产生N个不同轨迹的混沌序列Zid(t)(d=1,2,…,D),通过反向学习策略选择最优种群,即作为初始种群。

步骤2.2根据Zid(t)=Pmind+(Pmaxd-Pmind)Zid(t)将初始种群进行取值范围的标准化。

步骤2.3计算粒子群的适应度值,并从N个初始群体中选择性能较好的M个解作为粒子的初始位置,随机产生M个初始速度。

步骤2.4将每个粒子个体极值Pdbest作为当前位置,计算其适应度值,取适应值最好的粒子对应的个体极值作为初始全局极值Gdbest

步骤3:判断收敛准则是否满足,如果满足,则输出全局最优位置和其适应度值,算法结束。若不满足,则进入步骤4。

步骤4:根据粒子群速度和位置更新公式进行迭代计算,更新粒子的速度和位置。

步骤5:根据选取的适应度函数比较适应度F(Pdi)和F(Pdbest),如果F(Pdi)<F(Pdbest),则更新Pdbest

步骤6:如果F(Pdbest)<F(Gdbest)进行更新Gdbest

步骤7:判断收敛准则是否满足。如果满足,则输出全局最优位置和其适应度值,算法结束。若不满足,则进入步骤8。

步骤8:根据下式计算平均粒距Dis和群体适应度方差,并判断Dis<α且δ2<H是否成立,即判断算法是否陷入局部最优,若不成立,转步骤4。

其中,L为搜索空间对角最大长度;Pid表示第i个粒子的第d维坐标值;表示所有粒子第d维坐标值的均值;m为粒子群的粒子数目,F为粒子i的适应度,Favg为粒子群目前的平均适应度,F为归一化因子,用于限制δ2的大小。

步骤9:根据下式更新粒子的速度和位置,使粒子跳出局部最优。

Vdi(t+1)=W(t)Vdi(t)+C1(t)×R1(t)×(Pdbest(t)-Pdi(t))+C2(t)×R2(t)×(Gdbest(t)-Pdi(t))

Pdi(t+1)=Pdi(t))+Vdi(t+1))

步骤10:对最优位置Gdbest进行混沌优化。

步骤10.1根据Gdbest(t)=(Gdbest-Pdmin)/(Pmaxd-Pmind)将Gdbest映射到(0,1)。

步骤10.2将Gdbest代入到式Logistic映射中,迭代产生混沌变量序列。

步骤10.3将产生的混沌变量通过逆映射Gdbest(t)=Pmind+(Pmaxd-Pmind)Zid(t)到原解空间。

步骤10.4在原解空间对混沌变量的每一个可行解计算其适应度值,得到性能最优的可行解Gdbest

步骤11:用Gdbest替代当前群体中任意一个粒子的位置。

步骤12:判断算法是否达到最大迭代次数或满足求解精度要求,若满足则输出全局最优位置和其适应度值,算法结束;否则返回步骤3。

以上显示和描述了本发明的基本原理和主要特征和本发明的优点。本行业的技术人员应该了解,本发明不受上述实施例的限制,上述实施例和说明书中描述的只是说明本发明的原理,在不脱离本发明精神和范围的前提下,本发明还会有各种变化和改进,这些变化和改进都落入要求保护的本发明范围内。本发明要求保护范围由所附的权利要求书及其等效物界定。

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