基于混沌序列的粒子群算法Word下载.docx
《基于混沌序列的粒子群算法Word下载.docx》由会员分享,可在线阅读,更多相关《基于混沌序列的粒子群算法Word下载.docx(5页珍藏版)》请在冰豆网上搜索。
0引言
粒子群算法(ParticleSwarmOptimization,PSO)是1995年由美国社会心理学家Kennedy和电气工程师Eberhart受人工生命研究结果的启发共同提出的一种群体智能算法,它与其他进化算法一样,也是基于“种群”和“进化”,通过个体之间的协作和竞争,实现复杂空间最优解的搜索。
同其他算法比较,PSO的优势在于简单、容易实现并且没有许多参数需要调整,已经被广泛应用于约束优化、电力系统、神经网络等领域。
PSO算法提出以来,为了提高收敛的全局性,主要是保证粒子的多样性。
Lovbjerg提出了一种自组织临界点控制算法,对每个微粒增加了当前临界值属性,以达到控制种群多样性的目的;
Suganthan引入了空间邻域的概念,保证群体的多样性;
Miranda等人则使用了变异、选择和繁殖多种操作同时自适应确定速度更新公式中的邻域最佳位置以及惯性权值和加速常数保证了群体的多样性;
为了避免PSO算法的过早收敛问题,Riget和Vesterstr提出了一种保证种群多样性的粒子群算法(AttractiveandRepulsiveParticleSwarmOptimizer,简称ARPSO)。
曾建潮等提出了一种保证全局收敛的PSO算法(简称SPSO),当xk(t)=pg=pk时,粒子k停止进化,在搜索空间中随机产生一个新的粒子来代替停止的粒子,与其余经过更新pi,pg后的粒子一起进化,大大提高了PSO的全局收敛能力与速度。
1基本粒子群算法
与其他演化算法类似,PSO也是基于群体的。
将每个个体看作是n维搜索空间中的一个没有重量和体积的粒子,并在搜索空间中以一定的速度飞行,根据对环境的适应度将群体中的粒子移动到较好的区域。
设:
Xi=(xi1,xi2,…,xin)为粒子i的当前位置;
Vi=(vi1,vi2,…,vin)为粒子i的当前飞行速度;
Pi=(pi1,pi2,…,pin)为粒子i所经历过的最好位置,称为个体最好位置,也可用Pbest表示;
Pg=(pg1,pg2,…,pgn)为所有粒子经历过的最佳位置,称为全局最好位置,也可用Gbest表示。
PSO算法的进化方程为:
vij(t+1)=wvij(t)+c1r1×
(pij-xij(t))+c2r2×
(pgi-xij(t))
(1)
xij(t+1)=xij(t)+vij(t+1)
(2)
其中:
下标“i”表示粒子i,下标“j”表示粒子的第j维,t表示第t代,w为惯性权重,c1、c2为加速常数,通常在0~2间取值,r1~U(0,1),r2~U(0,1)为两个相互独立的均匀分布的随机数。
粒子通过不断地学习更新,最终寻找到解空间中最优解所在的位置,最后输出的Gbest就是算法找到的全局最优解。
2基于混沌序列的PSO算法
在PSO算法运行过程中,很容易发生早熟收敛。
为了克服PSO算法的这种早熟收敛问题,本文提出一种能够保证种群多样性的PSO算法——基于混沌序列的粒子群算法(简称CPSO算法)。
PSO算法运行若干代之后,所有的粒子都趋向于Pg,此时粒子所搜索的范围相对比较小,粒子的多样性就相对比较差。
引入欧氏距离公式:
dij=∑nk=1(xik-xjk)2(i,j=1,2,…,N)(3)
设一个以Pg为中心,以ε为半径的球。
则:
dig=∑nk=1(xik-xgk)2(i=1,2,…,N)(4)
即用dig表示Xi到Pg的距离。
如果dig≤ε,说明粒子i位于这个球内。
假设有总共N个粒子,球内的粒子数为M,如果M/N的值大于一定数α,就定义为粒子的多样性比较差。
此时为了增加粒子的多样性,对球内的粒子进行逃逸。
即M/N的值大于α时,对球内的粒子随机选择一部分进行逃逸。
混沌序列可以使粒子较为均匀的分布,而且可以使以Pg为中心的球内的需要逃逸的粒子跳到这个球外面的其它区域,所以当M/N的值大于α,对随机选择出来的球内的部分粒子在搜索空间内运用混沌序列进行逃逸重新产生。
Logistic序列:
xn+1=μxn(1-xn)(5)
xn∈[0,1],1≤μ≤4。
当μ=4时,序列完全处于混沌状态。
Logistic序列的变型:
当xij(t)<0时:
xij(t+1)=μx-{ij}(t)(1+x-{ij}(t))(6)
当x--{ij}(t)≥0时:
xij(t+1)=μxij(t)(1-xij(t))(7)
当0≤xij(t)≤1,取μ=4;
当xij(t)<0或xij(t)>1时,取μ=1.5。
这样,既不失Logistic序列的混沌性,又可以增强逃逸的有目的性。
算法步骤如下:
Step1:
初始化各粒子的位置与速度;
Step2:
计算各粒子的适应值;
Step3:
对于每个粒子,将其适应值与所经历的最好位置Pi的适应值进行比较,若较好,则将其作为当前的最好位置;
将其适应值与全局所经历的最好位置Pg的适应值进行比较,若较好,则将其作为当前的全局最好位置;
Step4:
以Pg为中心,根据公式(4)计算所有粒子到Pg的距离d,如果d<ε,说明这个粒子在以Pg为中心,ε为半径的球内。
Step5:
判断结束条件是否满足,如果满足,则结束,否则,执行Step6;
Step6:
对于所有粒子,执行如下操作:
(1)根据公式
(1)、
(2)更新粒子的速度和位置。
(2)对于每个粒子,将其适应值与所经历的最好位置Pi的适应值进行比较,若较好,则将其作为当前的最好位置。
(3)对于每个粒子,将其适应值与全局所经历的最好位置Pg的适应值进行比较,若较好,则将其作为当前的全局最好位置。
Step7:
如果在球内的粒子达到一定数量(M/N>α),执行Step8;
否则,执行Step6;
Step8:
对球内的粒子随机选择一部分,根据公式(6)、(7)进行逃逸;
Step9:
返回Step2。
3实例计算
本文引入3个多维基准优化问题,将CPSO与PSO进行对比。
(1)Sphere函数。
f1(X)=∑ni=1x2i-100≤xi≤100
(2)Ackley函数。
f2(X)=20+e-20exp(-0.21n∑ni=1x2i)-exp1n∑ni=1cos(2πxi)-32.768≤xi≤32.768
(3)Griewank函数。
f3(X)=14000∑ni=1x2i-∏ni=1cos(xii)+1
-600≤xi≤600
对于PSO和CPSO,取粒子数N=30,w的取值在[1,0]之间随代数线性递减,c1=1.2,c2=1.8,vmax=xmax/2。
对于CPSO,取半径ε=0.3,M/N的值α=0.6。
当M/N>α时,把球内的M个粒子随机选择M-4个运用混沌序列重新产生。
对于f1、f2、f33个n维测试函数,我们分别取n=50和n=100。
运行100次,每次运行3000代,对PSO和CPSO的收敛率和平均收敛代数进行比较实验。
结果如表1所示。
为了进一步比较,运行次数和代数不变,对PSO和CPSO在运行中的最大值、最小值和平均值进行比较。
结果如表2所示。
从表1和表2足以证明CPSO的寻优率和全局收敛性对于PSO,有了明显的提高。
这都源于CPSO当粒子陷入局部最优时,运用逃逸策略使陷入局部最优的粒子能够及时地跳出局部最优点,进入解空间的其它区域进行搜索,提高了种群的多样性,能有效地避免早熟收敛问题。
4结束语
本文将混沌序列引入PSO算法,提出了一种能够保证种群多样性的PSO算法——基于混沌序列的粒子群算法(CPSO)。
CPSO使陷入局部最优位置的发生停滞的粒子能够及时跳出局部最优,进入解空间的其它区域进行搜索,增大了粒子种群的多样性,克服了PSO算法的早熟收敛问题,大大增强了PSO算法的全局搜索能力。
参考文献:
[1]KENNEDYJ,EBERHARTRC.ParticleSwarmOptimization[C].In:
ProceedingsofIEEEInternationalConferenceonNeuralNetworks,IEEEServiceCenter,Piscataway,NJ,1995.
[2]RAYT,LIEWKM.Aswarmwithaneffectiveinformationsharingmechanismforunconstrainedandconstrainedsingleobjectiveoptimizationproblems[A].ProcIEEEIntConfonEvolutionaryComputation[C].Seoul,2001.
[3]PARKJ,CHOIK,ALLSTOTDJ.Parasitic-awareRFCircuitDesignandOptimization[J].IEEETransactionsonCircuitsandSystemsI:
FundamentalTheoryandApplications,2004(10).
[4]EBERHARTR,HUXIAOHUI.Humantremoranalysisusingparticleswarmoptimization[A].ProcoftheCongressonEvolutionaryComputation[C].Washington,1999.
[5]LOVBJERGM,KRINKT.Extendingparticleswarmoptimizerswithself-organizedcritically.In:
Proc.oftheIEEEInt’lConf.onEvolutionaryComputation.Honolulu:
IEEEInc,2002.
[6]SUGANTHANPN.Particleswarmoptimizerwithneighbourhoodoperator[C].In:
ProceedingsoftheCongressonEvolutionaryComputation,WashingtonDC,USA,1999.
[7]V.MIRANDAANDN.FONSECA.EPSO:
evolutionaryparticleswarmoptimization,anewalgorithmwithapplicationsinpowersystems[W].inIEEE/PESTransmissionandDistributionConf.ExhibitionAsiaPacific,Oct.2002
(2).
[8]RIGETJ,VESTERSTROEMJS.ADiversity-GuidedParticleSwarmOptimizer-theARPSO.TechnicalReportNo.2002-02[R].DepartmentofComputerScience,UniversityofAarhus,EVALife,2002.
[9]曾建潮,崔志华.一种保证全局收敛的PSO算法[J].计算机研究与发展,2004(8).
[10]曾建潮,介婧,崔志华.粒子群算法[M].北京:
科学出版社,2004.
ParticleSwarmAlgorithmBasedOnChaoticSequences
Abstract:
CPSOalgorithmBasedonchaoticsequencesisproposed.CPSOalgorithmcanensureparticlethediversityofpopulationandefficientlymakeparticlesglobalsearch.Andthebenchmarkoptimizationproblemwithtypicalsimulatedexperiment,verifiedtheeffectivenessofCPSO.
KeyWords:
ParticleSwarmAlgorithm;
Diversity;
Convergence;
ChaoticSequences