本發(fā)明涉及粒子群優(yōu)化算法的技術(shù)領(lǐng)域,具體地說,特別涉及到一種基于混沌反向?qū)W習(xí)的粒子群改進(jìn)算法。
背景技術(shù):
針對(duì)粒子群優(yōu)化算法的性能受自身參數(shù)設(shè)置的影響,后期速度緩慢、易陷入局部極小等問題。近年來PSO算法的研究及其應(yīng)用主要從以下幾個(gè)方面展開:拓?fù)浣Y(jié)構(gòu)的改進(jìn);學(xué)習(xí)策略的研究、PSO混合優(yōu)化算法的研究、PSO算法的應(yīng)用研究。而學(xué)習(xí)策略改進(jìn)的目的是為了增強(qiáng)粒子間信息交流,增強(qiáng)種群的多樣性,進(jìn)而提升種群跳出局部最優(yōu)解的能力。一種廣泛學(xué)習(xí)的粒子群(Comprehensive Learning Particle Swarm Optimizer,簡(jiǎn)稱CLPSO)算法被提出,該算法的“社會(huì)部分”粒子由除自身以外所有粒子構(gòu)成,極大地增加了每個(gè)粒子向其他粒子最優(yōu)性學(xué)習(xí)的機(jī)會(huì);為改進(jìn)CLPSO算法的不足,一種自適應(yīng)學(xué)習(xí)策略被提出了,根據(jù)種群中粒子的運(yùn)行狀況,動(dòng)態(tài)地為每個(gè)粒子指派學(xué)習(xí)樣本,以增強(qiáng)粒子間的信息交流。但是上述這些改進(jìn)策略在某種程度上起了積極作用,但在收斂精度等方面仍存在不足。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明的目的在于針對(duì)現(xiàn)有技術(shù)中的不足,提供一種基于混沌反向?qū)W習(xí)的粒子群改進(jìn)算法,以解決現(xiàn)有技術(shù)中存在的問題。
本發(fā)明所解決的技術(shù)問題可以采用以下技術(shù)方案來實(shí)現(xiàn):
一種基于混沌反向?qū)W習(xí)的粒子群改進(jìn)算法,包括反向?qū)W習(xí)策略和混沌粒子群優(yōu)化;
所述反向?qū)W習(xí)策略的具體步驟如下:
首先產(chǎn)生初始解Xi,然后求出每個(gè)初始解所對(duì)應(yīng)的反向解Xi1,
并計(jì)算所有初始解的適應(yīng)度值,最后對(duì)產(chǎn)生的所有解按適應(yīng)度值排序,將適應(yīng)度值較優(yōu)的前N個(gè)解作為初始種群的解Zid(t)(d=1,2,…D),其用于提高解的質(zhì)量和求解效率;
接著結(jié)合反向?qū)W習(xí)策略并將混沌引入到慣性因子、學(xué)習(xí)因子、粒子速度和位置的更新中去,具體流程如下:
步驟1:初始化參數(shù),例如粒子群體規(guī)模M、最大迭代次數(shù)T,慣性因子的范圍[Wmin,Wmax],一般取[0.4,0.9]、學(xué)習(xí)因子的范圍[Cmin,Cmax],一般取[1.4,2.0]、粒子群飛行速度范圍[Vmin,Vmax]、維數(shù)為D、各優(yōu)化問題變量取值范圍為[Pdmin,Pdmax](d=1,…,D),根據(jù)下式產(chǎn)生W、C1、C2、R1和R2的混沌時(shí)間序列;
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隨機(jī)產(chǎn)生D維每個(gè)分量數(shù)值在(0,1)上的向量Z0d(t)(d=1,2,…,D),D為變量個(gè)數(shù),利用典型的Logistic映射產(chǎn)生N個(gè)不同軌跡的混沌序列Zid(t)(d=1,2,…D),通過反向?qū)W習(xí)策略選擇最優(yōu)種群,即作為初始種群;
步驟2.2根據(jù)Zid(t)=Pmind+(Pmaxd-Pmind)Zid(t)將初始種群進(jìn)行取值范圍的標(biāo)準(zhǔn)化;
步驟2.3計(jì)算粒子群的適應(yīng)度值,并從N個(gè)初始群體中選擇性能較好的M個(gè)解作為粒子的初始位置,隨機(jī)產(chǎn)生M個(gè)初始速度;
步驟2.4將每個(gè)粒子個(gè)體極值Pdbest作為當(dāng)前位置,計(jì)算其適應(yīng)度值,取適應(yīng)值最好的粒子對(duì)應(yīng)的個(gè)體極值作為初始全局極值Gdbest;
步驟3:判斷收斂準(zhǔn)則是否滿足,如果滿足,則輸出全局最優(yōu)位置和其適應(yīng)度值,算法結(jié)束;若不滿足,則進(jìn)入步驟4;
步驟4:根據(jù)粒子群速度和位置更新公式進(jìn)行迭代計(jì)算,更新粒子的速度和位置;
步驟5:根據(jù)選取的適應(yīng)度函數(shù)比較適應(yīng)度F(Pdi)和F(Pdbest),如果F(Pdi)<F(Pdbest),則更新Pdbest;
步驟6:如果F(Pdbest)<F(Gdbest)進(jìn)行更新Gdbest;
步驟7:判斷收斂準(zhǔn)則是否滿足;如果滿足,則輸出全局最優(yōu)位置和其適應(yīng)度值,算法結(jié)束;若不滿足,則進(jìn)入步驟8;
步驟8:根據(jù)下式計(jì)算平均粒距Dis和群體適應(yīng)度方差,并判斷Dis<α且δ2<H是否成立,即判斷算法是否陷入局部最優(yōu),若不成立,轉(zhuǎn)步驟4;
其中,L為搜索空間對(duì)角最大長(zhǎng)度;Pid表示第i個(gè)粒子的第d維坐標(biāo)值;表示所有粒子第d維坐標(biāo)值的均值;m為粒子群的粒子數(shù)目,F為粒子i的適應(yīng)度,Favg為粒子群目前的平均適應(yīng)度,F(xiàn)為歸一化因子,用于限制δ2的大??;
步驟9:根據(jù)下式更新粒子的速度和位置,使粒子跳出局部最優(yōu);
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:對(duì)最優(yōu)位置Gdbest進(jìn)行混沌優(yōu)化;
步驟10.1根據(jù)Gdbest(t)=(Gdbest-Pdmin)/(Pmaxd-Pmind)將Gdbest映射到(0,1);
步驟10.2將Gdbest代入到式Logistic映射中,迭代產(chǎn)生混沌變量序列;
步驟10.3將產(chǎn)生的混沌變量通過逆映射Gdbest(t)=Pmind+(Pmaxd-Pmind)Zid(t)到原解空間;
步驟10.4在原解空間對(duì)混沌變量的每一個(gè)可行解計(jì)算其適應(yīng)度值,得到性能最優(yōu)的可行解Gdbest;
步驟11:用Gdbest替代當(dāng)前群體中任意一個(gè)粒子的位置;
步驟12:判斷算法是否達(dá)到最大迭代次數(shù)或滿足求解精度要求,若滿足則輸出全局最優(yōu)位置和其適應(yīng)度值,算法結(jié)束;否則返回步驟3。
與現(xiàn)有技術(shù)相比,本發(fā)明的有益效果如下:
針對(duì)粒子群優(yōu)化算法性能受其本身參數(shù)設(shè)置的影響大,且后期速度緩慢,易陷入局部極小和早熟問題,本發(fā)明提出了混沌反向?qū)W習(xí)的粒子群優(yōu)化方法,考慮到混沌具有對(duì)初值敏感、計(jì)算精度高、易跳出局部極小和全局漸近收斂等特點(diǎn),引入混沌理論,并且利用反向?qū)W習(xí)策略初始化種群,使得初始化個(gè)體盡可能均勻分布在搜索空間,從而提升算法的局部搜索能力,有效地避免早熟收斂。
附圖說明
圖1為本發(fā)明所述的基于混沌反向?qū)W習(xí)的粒子群改進(jìn)算法的結(jié)構(gòu)框圖。
具體實(shí)施方式
為使本發(fā)明實(shí)現(xiàn)的技術(shù)手段、創(chuàng)作特征、達(dá)成目的與功效易于明白了解,下面結(jié)合具體實(shí)施方式,進(jìn)一步闡述本發(fā)明。
參見圖1,本發(fā)明所述的基于混沌反向?qū)W習(xí)的粒子群改進(jìn)算法,主要包括反向?qū)W習(xí)策略和混沌粒子群優(yōu)化。反向?qū)W習(xí)策略基本原理:反向?qū)W習(xí)策略為每個(gè)初始候選解生成相對(duì)應(yīng)的反向解,并從這兩類解(候選解和相對(duì)應(yīng)的反向解)中選擇距離較近(即適應(yīng)度較優(yōu))的解作為初始種群中的成員,將有助于提高優(yōu)化過程中的收斂速率。即為保持種群的多樣性和使初始種群的個(gè)體盡可能均勻分布,利用反向?qū)W習(xí)策略生成初始種群。首先產(chǎn)生初始解Xi,然后求出每個(gè)初始解所對(duì)應(yīng)的反向解Xi1,
并計(jì)算所有初始解的適應(yīng)度值,最后對(duì)產(chǎn)生的所有解按適應(yīng)度值排序,將適應(yīng)度值較優(yōu)的前N個(gè)解作為初始種群的解Zid(t)(d=1,2,…,D),這將有助于提高解的質(zhì)量和求解效率。
本發(fā)明結(jié)合反向?qū)W習(xí)策略并將混沌引入到慣性因子、學(xué)習(xí)因子、粒子速度和位置的更新中去,具體流程如下
步驟1:初始化參數(shù),例如粒子群體規(guī)模M、最大迭代次數(shù)T,慣性因子的范圍[Wmin,Wmax],一般取[0.4,0.9]、學(xué)習(xí)因子的范圍[Cmin,Cmax],一般取[1.4,2.0]、粒子群飛行速度范圍[Vmin,Vmax]、維數(shù)為D、各優(yōu)化問題變量取值范圍為[Pdmin,Pdmax](d=1,…,D),根據(jù)下式產(chǎn)生W、C1、C2、R1和R2的混沌時(shí)間序列。
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隨機(jī)產(chǎn)生D維每個(gè)分量數(shù)值在(0,1)上的向量Z0d(t)(d=1,2,…,D),D為變量個(gè)數(shù),利用典型的Logistic映射產(chǎn)生N個(gè)不同軌跡的混沌序列Zid(t)(d=1,2,…,D),通過反向?qū)W習(xí)策略選擇最優(yōu)種群,即作為初始種群。
步驟2.2根據(jù)Zid(t)=Pmind+(Pmaxd-Pmind)Zid(t)將初始種群進(jìn)行取值范圍的標(biāo)準(zhǔn)化。
步驟2.3計(jì)算粒子群的適應(yīng)度值,并從N個(gè)初始群體中選擇性能較好的M個(gè)解作為粒子的初始位置,隨機(jī)產(chǎn)生M個(gè)初始速度。
步驟2.4將每個(gè)粒子個(gè)體極值Pdbest作為當(dāng)前位置,計(jì)算其適應(yīng)度值,取適應(yīng)值最好的粒子對(duì)應(yīng)的個(gè)體極值作為初始全局極值Gdbest。
步驟3:判斷收斂準(zhǔn)則是否滿足,如果滿足,則輸出全局最優(yōu)位置和其適應(yīng)度值,算法結(jié)束。若不滿足,則進(jìn)入步驟4。
步驟4:根據(jù)粒子群速度和位置更新公式進(jìn)行迭代計(jì)算,更新粒子的速度和位置。
步驟5:根據(jù)選取的適應(yīng)度函數(shù)比較適應(yīng)度F(Pdi)和F(Pdbest),如果F(Pdi)<F(Pdbest),則更新Pdbest。
步驟6:如果F(Pdbest)<F(Gdbest)進(jìn)行更新Gdbest。
步驟7:判斷收斂準(zhǔn)則是否滿足。如果滿足,則輸出全局最優(yōu)位置和其適應(yīng)度值,算法結(jié)束。若不滿足,則進(jìn)入步驟8。
步驟8:根據(jù)下式計(jì)算平均粒距Dis和群體適應(yīng)度方差,并判斷Dis<α且δ2<H是否成立,即判斷算法是否陷入局部最優(yōu),若不成立,轉(zhuǎn)步驟4。
其中,L為搜索空間對(duì)角最大長(zhǎng)度;Pid表示第i個(gè)粒子的第d維坐標(biāo)值;表示所有粒子第d維坐標(biāo)值的均值;m為粒子群的粒子數(shù)目,F為粒子i的適應(yīng)度,Favg為粒子群目前的平均適應(yīng)度,F(xiàn)為歸一化因子,用于限制δ2的大小。
步驟9:根據(jù)下式更新粒子的速度和位置,使粒子跳出局部最優(yōu)。
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:對(duì)最優(yōu)位置Gdbest進(jìn)行混沌優(yōu)化。
步驟10.1根據(jù)Gdbest(t)=(Gdbest-Pdmin)/(Pmaxd-Pmind)將Gdbest映射到(0,1)。
步驟10.2將Gdbest代入到式Logistic映射中,迭代產(chǎn)生混沌變量序列。
步驟10.3將產(chǎn)生的混沌變量通過逆映射Gdbest(t)=Pmind+(Pmaxd-Pmind)Zid(t)到原解空間。
步驟10.4在原解空間對(duì)混沌變量的每一個(gè)可行解計(jì)算其適應(yīng)度值,得到性能最優(yōu)的可行解Gdbest。
步驟11:用Gdbest替代當(dāng)前群體中任意一個(gè)粒子的位置。
步驟12:判斷算法是否達(dá)到最大迭代次數(shù)或滿足求解精度要求,若滿足則輸出全局最優(yōu)位置和其適應(yīng)度值,算法結(jié)束;否則返回步驟3。
以上顯示和描述了本發(fā)明的基本原理和主要特征和本發(fā)明的優(yōu)點(diǎn)。本行業(yè)的技術(shù)人員應(yīng)該了解,本發(fā)明不受上述實(shí)施例的限制,上述實(shí)施例和說明書中描述的只是說明本發(fā)明的原理,在不脫離本發(fā)明精神和范圍的前提下,本發(fā)明還會(huì)有各種變化和改進(jìn),這些變化和改進(jìn)都落入要求保護(hù)的本發(fā)明范圍內(nèi)。本發(fā)明要求保護(hù)范圍由所附的權(quán)利要求書及其等效物界定。