王曉艷,曹德欣
中國(guó)礦業(yè)大學(xué) 數(shù)學(xué)學(xué)院,江蘇 徐州 221116
粒子群優(yōu)化(particle swarm optimization,PSO)[1]算法是受鳥(niǎo)群捕食行為啟發(fā)提出的一種群體智能算法。該算法簡(jiǎn)單、收斂快、魯棒性高、易于實(shí)現(xiàn),已經(jīng)在特征選擇[2]、移動(dòng)機(jī)器人定位[3]、工程設(shè)計(jì)[4]等多個(gè)問(wèn)題上被廣泛應(yīng)用。然而,在算法后期,粒子常常被困于局部最優(yōu),從而過(guò)早收斂,因此研究人員從改進(jìn)參數(shù)、增加種群多樣性、與其他智能算法結(jié)合等方向?qū)αW尤核惴ㄟM(jìn)行改進(jìn)。Shi和Eberhart提出線性遞減慣性權(quán)重[5],算法性能得到提升,之后又針對(duì)動(dòng)態(tài)系統(tǒng)提出一種隨機(jī)調(diào)整慣性權(quán)重[6]的方法。文獻(xiàn)[7]設(shè)計(jì)了一種自適應(yīng)慣性權(quán)重,并對(duì)群體最優(yōu)引入混沌策略,從而避免粒子陷入局部極值。文獻(xiàn)[8]利用其他粒子的個(gè)體歷史最優(yōu)來(lái)更新粒子的速度,以提高種群的多樣性。文獻(xiàn)[9]結(jié)合RMSProp算法中對(duì)學(xué)習(xí)率每個(gè)維度自適應(yīng)調(diào)整的策略,設(shè)計(jì)自適應(yīng)的慣性權(quán)重。文獻(xiàn)[10]對(duì)粒子的進(jìn)化趨勢(shì)進(jìn)行干預(yù),減少隨機(jī)性,同時(shí)用個(gè)體最優(yōu)指導(dǎo)群體最優(yōu)在單個(gè)維度的學(xué)習(xí),提高收斂精度。文獻(xiàn)[11]將遺傳算法、蟻群算法和粒子群算法相結(jié)合,提升算法的探索和開(kāi)發(fā)能力。同時(shí),有學(xué)者利用混合多種不同進(jìn)化策略或?qū)W習(xí)機(jī)制的方式,取長(zhǎng)補(bǔ)短,克服算法缺陷。文獻(xiàn)[12]中讓粒子根據(jù)歷史經(jīng)驗(yàn)和環(huán)境感知自適應(yīng)選擇不同的進(jìn)化策略。文獻(xiàn)[13]引入三洞系統(tǒng)捕獲策略提升種群多樣性,多維隨機(jī)干擾策略和早熟擾動(dòng)策略提升算法精度。文獻(xiàn)[14]在簡(jiǎn)化粒子群算法的基礎(chǔ)上融入基于相似度及聚集度分析的萊維飛行,幫助粒子逃離局部最優(yōu)。這些措施對(duì)算法性能有一定程度的提升。
在粒子群算法中,整個(gè)種群都采用同一個(gè)進(jìn)化策略,迭代后期就易出現(xiàn)多樣性不足,從而降低算法全局尋優(yōu)能力。將種群分為多個(gè)子群,分別采取不同的學(xué)習(xí)機(jī)制,是一種較好的增加種群多樣性方式。文獻(xiàn)[15]將種群分為三個(gè)協(xié)同優(yōu)化的子群,各個(gè)子群分別側(cè)重搜索不同的區(qū)域,實(shí)現(xiàn)算法性能提升。文獻(xiàn)[16]將粒子群分為多個(gè)子種群,并分別采取不同的DPPSO變體進(jìn)化,子種群間以一定的遷移規(guī)則實(shí)現(xiàn)信息交流,提升算法穩(wěn)定性。文獻(xiàn)[17]根據(jù)粒子適應(yīng)值以及適應(yīng)值均值和標(biāo)準(zhǔn)差將粒子所在區(qū)域分為拒絕域、親近域、合理域,并分別選取不同的慣性權(quán)重和學(xué)習(xí)因子。文獻(xiàn)[18]根據(jù)粒子適應(yīng)值,在迭代過(guò)程中將粒子動(dòng)態(tài)分為三個(gè)階層,并分別采取局部、標(biāo)準(zhǔn)、全局學(xué)習(xí)模型,增加種群多樣性。但是目前大多的分群策略都是依據(jù)粒子適應(yīng)值的優(yōu)劣進(jìn)行的,對(duì)粒子的進(jìn)化能力關(guān)注較少,導(dǎo)致算法較易陷入局部最優(yōu)。
基于此,本文基于粒子的進(jìn)化能力將粒子群分為不同子群,并融合多策略的思想,提出基于進(jìn)化能力的多策略粒子群優(yōu)化算法(EAMSPSO)。首先,在線性遞減慣性權(quán)重中引入隨機(jī)性,設(shè)計(jì)一種帶有隨機(jī)波動(dòng)的慣性權(quán)重,使粒子在算法后期仍然具有跳出當(dāng)前區(qū)域的能力,利于全局搜索。其次,將粒子按照進(jìn)化能力分為進(jìn)步粒子、暫時(shí)停退粒子、長(zhǎng)久停退粒子,并依據(jù)不同子群的特性分別執(zhí)行不同的進(jìn)化策略,增加種群多樣性。
半無(wú)限規(guī)劃問(wèn)題(semi-infinite programming,SIP)是數(shù)學(xué)規(guī)劃中的一類(lèi)典型非光滑優(yōu)化問(wèn)題,是數(shù)學(xué)規(guī)劃中的一個(gè)重要研究分支,在最優(yōu)控制、信息技術(shù)、交通問(wèn)題等領(lǐng)域中有著廣泛的應(yīng)用。但半無(wú)限規(guī)劃自身的特點(diǎn)和復(fù)雜性,給數(shù)值求解帶來(lái)困難。有學(xué)者利用精確罰
函數(shù)法[19]、濾波器信賴(lài)域方法[20]、區(qū)間算法[21]進(jìn)行求解,取得了較好的結(jié)果。本文將EAMSPSO算法應(yīng)用于半無(wú)限規(guī)劃問(wèn)題的求解。
PSO算法由一個(gè)隨機(jī)種群開(kāi)始,群體中的粒子均有自身的速度參數(shù)和位置參數(shù),粒子通過(guò)追蹤自己在飛行過(guò)程中搜索到的最佳位置即個(gè)體最優(yōu),以及全部粒子經(jīng)過(guò)的最優(yōu)位置即群體最優(yōu),更新速度和位置,不斷迭代以達(dá)到最優(yōu)。
設(shè)一個(gè)種群含有N個(gè)粒子,每個(gè)粒子是D維空間中的個(gè)體。對(duì)粒子i,用Xi=[Xi1,Xi2,…,XiD]表示粒子位置,用Vi=[Vi1,Vi2,…,ViD]表示飛行速度,個(gè)體最優(yōu)位置用pbest表示,群體最優(yōu)位置用gbest表示。速度和位置更新方程是:
其中,t為當(dāng)前迭代次數(shù),w為慣性權(quán)重,c1、c2為學(xué)習(xí)因子,r1、r2為(0,1)間均勻分布的隨機(jī)數(shù)。
文獻(xiàn)[5]中說(shuō)明,在算法中慣性權(quán)值能夠協(xié)調(diào)局部、全局搜尋能力。慣性權(quán)重較大,對(duì)于初始種群的依賴(lài)較小,粒子發(fā)現(xiàn)新領(lǐng)域的能力較強(qiáng),利于全局搜索;反之,若慣性權(quán)重較小,算法則更趨向局部搜尋。對(duì)于線性遞減的慣性權(quán)重,每代所有粒子的慣性權(quán)重都一樣,粒子的慣性權(quán)重在算法后期都較小,如果初步搜尋到的領(lǐng)域中包含全局最優(yōu)解,粒子可以較迅速地聚攏至全局最優(yōu),相反如果前期搜索到的區(qū)域不存在全局最優(yōu)解,那么在迭代后期粒子失去了跳出當(dāng)前區(qū)域的能力,就會(huì)陷入局部極值。針對(duì)這一問(wèn)題,在線性遞減策略中引入隨機(jī)性,同時(shí)考慮不同粒子的位置的優(yōu)劣,給予位置較優(yōu)的粒子較小的慣性權(quán)重,位置較差的粒子較大的慣性權(quán)重,設(shè)計(jì)一種帶隨機(jī)波動(dòng)的慣性權(quán)重,如下:
其中,t為當(dāng)前迭代次數(shù),T為總迭代次數(shù),wmax、wmin為線性遞減慣性權(quán)重的最大、最小值。r[1,E]是[1,E]上的隨機(jī)整數(shù),其中E是一個(gè)整數(shù),E的大小決定波動(dòng)的程度。ranki是粒子i的歷史最優(yōu)在整個(gè)種群中的位次,個(gè)體最優(yōu)位置越好,排序越靠前,位次越小。
改進(jìn)后的慣性權(quán)重總體呈減小趨勢(shì),但是存在一定的隨機(jī)波動(dòng)。前期較大的慣性權(quán)重能夠使得粒子在初期進(jìn)行廣泛的搜尋,同時(shí)后期也有一定的概率獲得比較大的慣性權(quán)重,從而使粒子具有跳出局部極值的能力。
定義1粒子i在第t(t≥2)代的適應(yīng)值變化定義為:
當(dāng)ΔF(Xit)<0時(shí),說(shuō)明粒子按照當(dāng)前方向移動(dòng),適應(yīng)值下降,即粒子處于進(jìn)步狀態(tài),當(dāng)前的速度仍然具有可參考性。反之,說(shuō)明粒子按照當(dāng)前方向移動(dòng),適應(yīng)值沒(méi)有變好反而變差了,當(dāng)前速度方向的可參考性降低。
定義2粒子i在第t(t>d,d>1)代的粒子活性定義為:
當(dāng)dF(Xit)<0時(shí),說(shuō)明粒子位置對(duì)比d代前更好,反映出粒子仍然存在活性,否則說(shuō)明粒子位置有可能連續(xù)d代無(wú)優(yōu)化,粒子已經(jīng)失去活性。
PSO算法中所有粒子都按照式(1)、(2)更新速度、位置,沒(méi)有考慮到不同表現(xiàn)的粒子的差異性,導(dǎo)致進(jìn)化后期,容易出現(xiàn)多樣性丟失,從而早熟收斂。考慮到這一問(wèn)題,本文在每次迭代中,根據(jù)適應(yīng)值的變化將粒子分為進(jìn)步粒子和停止或者退步的粒子簡(jiǎn)稱(chēng)停退粒子。針對(duì)停退粒子進(jìn)一步根據(jù)粒子活性分為暫時(shí)停退粒子和長(zhǎng)久停退粒子,并根據(jù)不同類(lèi)型粒子的特點(diǎn)采取不同的進(jìn)化策略。
2.2.1 進(jìn)步粒子
進(jìn)步粒子即適應(yīng)值下降的粒子,說(shuō)明粒子當(dāng)前在沿著正確的方向移動(dòng)。因此,粒子應(yīng)該參考過(guò)去的經(jīng)驗(yàn)繼續(xù)前進(jìn)。進(jìn)步粒子采用原算法中粒子的進(jìn)化方式,通過(guò)參考上一代中的速度,并追隨個(gè)體歷史最優(yōu)和全局最優(yōu)進(jìn)行更新,保留原算法的優(yōu)點(diǎn)。
2.2.2 暫時(shí)停退粒子
暫時(shí)停退粒子即d代內(nèi)粒子的位置沒(méi)有變好,說(shuō)明粒子當(dāng)前的速度方向可能需要調(diào)整。針對(duì)暫時(shí)停退的粒子,減小對(duì)歷史速度的參考,或者對(duì)其進(jìn)行反向參考。更新方式按照式(6)、(2)。
其中,ε是為了減小或者反向?qū)v史速度的參考而引入的調(diào)節(jié)因子。
2.2.3 長(zhǎng)久停退粒子
長(zhǎng)久停退粒子即超過(guò)d代(含d代)粒子的適應(yīng)值沒(méi)有變好。對(duì)于這些粒子分為兩種情況進(jìn)行討論,一類(lèi)是個(gè)體最優(yōu)對(duì)應(yīng)的適應(yīng)值較優(yōu)的粒子,這類(lèi)粒子可能已經(jīng)陷入局部最優(yōu),如果仍然按照原始進(jìn)化策略更新會(huì)導(dǎo)致粒子停滯在局部最優(yōu)。同時(shí),這類(lèi)粒子的適應(yīng)值較優(yōu)說(shuō)明它們占據(jù)的位置較好,靠近最優(yōu)解的概率相對(duì)較大,因此這類(lèi)粒子以一定的概率在個(gè)體最優(yōu)位置周?chē)M(jìn)一步搜索,或者沿著全局最優(yōu)的方向搜索。具體更新方式按照式(7)、(8):
其中,β、α、γ是服從(0,1)正態(tài)分布的隨機(jī)數(shù),pa表示在個(gè)體最優(yōu)周?chē)阉鞯母怕剩?-pa為沿全局最優(yōu)方向搜尋的概率。
另一類(lèi)是個(gè)體最優(yōu)對(duì)應(yīng)的適應(yīng)值相對(duì)較差的粒子,這類(lèi)粒子本身占據(jù)的位置相對(duì)較差,而且適應(yīng)值沒(méi)有下降,說(shuō)明這類(lèi)粒子的位置和速度均需要重新調(diào)整,讓這類(lèi)粒子直接由個(gè)體歷史最優(yōu)出發(fā),向群體最優(yōu)方向進(jìn)行搜索。具體的更新方式如式(9)、(8)。
其中,r是(0,1)之間均勻分布的隨機(jī)數(shù)。
根據(jù)2.1和2.2節(jié)的介紹,提出基于進(jìn)化能力的多策略粒子群優(yōu)化算法(EAMSPSO),算法的具體執(zhí)行流程在圖1中展示。
圖1 算法執(zhí)行流程Fig.1 Algorithm execution flow
算法EAMSPSO
輸入:種群規(guī)模N、總迭代次數(shù)T
輸出:gbest
1.隨機(jī)初始化N個(gè)粒子;
2.計(jì)算粒子適應(yīng)值;
3.初始化gbest;
4.Whilet 5.Fori=1 toNdo 6.按照式(3)更新慣性權(quán)重; 7.若t>2按式(4)計(jì)算ΔF(Xit-1)否則為-∞; 8.若t>d+1按式(5)計(jì)算dF(Xit-1)否則為-∞; 9.IfΔF(Xit-1)≥0 10.IfdF(Xit-1)≥0 11.根據(jù)個(gè)體最優(yōu)對(duì)應(yīng)適應(yīng)值的優(yōu)劣按照式(7)、(8)或式(9)、(8)更新; 12.Else 13.按照式(6)、(2)更新速度、位置; 14.End if 15.Else 16.按照式(1)、(2)更新速度、位置; 17.End if 18.更新pbest、gbest; 19.End for 20.End while 21.Returngbest 在PSO算法里,設(shè)共N個(gè)粒子,粒子維數(shù)為D,共迭代T次。算法時(shí)間復(fù)雜度主要體現(xiàn)在種群初始化以及粒子速度、位置、適應(yīng)值更新上。假設(shè)計(jì)算粒子適應(yīng)度值的時(shí)間為f(D),則種群初始化的復(fù)雜度是O(ND+Nf(D)),進(jìn)行粒子更新的復(fù)雜度為O(TND+TNf(D)),算法總時(shí)間復(fù)雜度為O(TN(D+f(D)) )[14]。 在EAMSPSO算法中,種群初始化的復(fù)雜度仍然為O(ND+Nf(D))。每次迭代,首先要計(jì)算粒子的適應(yīng)值變化方向和粒子活性,該過(guò)程的時(shí)間復(fù)雜度為O(N)。其次,粒子被分為進(jìn)步粒子、暫時(shí)停退粒子、長(zhǎng)久停退粒子三類(lèi)分別更新,設(shè)每次迭代進(jìn)步粒子的個(gè)數(shù)為n1,暫時(shí)停退粒子的個(gè)數(shù)為n2,長(zhǎng)久停退粒子的個(gè)數(shù)為n3,那么n1+n2+n3=N。在每次迭代中,進(jìn)步粒子、暫時(shí)停退粒子、長(zhǎng)久停退粒子更新的時(shí)間復(fù)雜度分別為O(n1D+n1f(D))、O(n2D+n2f(D))、O(n3D+n3f(D)),所以種群更新一次的時(shí)間復(fù)雜度是O(n1D+n1f(D))+O(n2D+n2f(D))+O(n3D+n3f(D))=O(ND+Nf(D))。此外,對(duì)于長(zhǎng)久停退粒子需要根據(jù)個(gè)體最優(yōu)的適應(yīng)值優(yōu)劣分別采取不同的更新策略,因此在每次迭代時(shí),需要將粒子根據(jù)個(gè)體最優(yōu)位置的適應(yīng)值進(jìn)行排序,排序過(guò)程的時(shí)間復(fù)雜度為O(N2)。綜上可知,每次迭代中包含粒子適應(yīng)值變化方向和粒子活性計(jì)算、粒子更新、排序三個(gè)步驟,時(shí)間復(fù)雜度分別是O(N)、O(ND+Nf(D))、O(N2),當(dāng)粒子的維度比較小的時(shí)候,粒子維度與種群規(guī)模接近,當(dāng)粒子的維度適中或較大時(shí),種群規(guī)模接近或者小于粒子維度,所以算法總體復(fù)雜度近似為O(TN(D+f(D)))。 本文通過(guò)10個(gè)基準(zhǔn)函數(shù)測(cè)試EAMSPSO算法性能。 (1)Sphere函數(shù) (2)Schwefel 2.22函數(shù) (3)Rotated Hyper-Ellipsoid函數(shù) (4)Sum of Different Powers函數(shù) (5)Zakharov函數(shù) (6)Griewank函數(shù) (7)Rastrigin函數(shù) (8)Ackley函數(shù) (9)Quartic函數(shù) (10)Shubert函數(shù) 其中,函數(shù)f1~f9的理論最優(yōu)均為0,f10理論最優(yōu)為?186.730 9。f1~f5、f9是單峰函數(shù),f6~f8、f10是多峰函數(shù)。 實(shí)驗(yàn)在MATLAB軟件環(huán)境下進(jìn)行,算法的粒子規(guī)模設(shè)為40,算法最大迭代次數(shù)設(shè)為2 000。EAMSPSO算法中c1=c2=2,粒子活性的評(píng)估間隔d取為3。ε取為(0,0.5)之間的隨機(jī)數(shù),使得暫時(shí)停退粒子可以減小對(duì)歷史速度的參考,在進(jìn)化后期還存在一定的可能對(duì)歷史速度進(jìn)行反向參考。個(gè)體最優(yōu)適應(yīng)值較優(yōu)粒子的比例取為1/3。為了平衡算法的探索和開(kāi)發(fā)能力,使長(zhǎng)久停退的個(gè)體最優(yōu)適應(yīng)值較優(yōu)的粒子以相同的概率在個(gè)體最優(yōu)周?chē)阉骱脱厝肿顑?yōu)方向搜尋,因此pa取為50%。 本文采用帶隨機(jī)波動(dòng)的慣性權(quán)重,以使粒子可以跳出局部最優(yōu),從而提高算法性能。針對(duì)慣性權(quán)重中的參數(shù)wmax、wmin、E,本文設(shè)置以下幾組參數(shù),并在函數(shù)f2和f9上進(jìn)行實(shí)驗(yàn)對(duì)比。不同的參數(shù)組合均獨(dú)立運(yùn)行30次,實(shí)驗(yàn)結(jié)果在表1中展示。從表1中的數(shù)據(jù)可以看出,wmax為0.8,wmin為0.3,E的值取為5時(shí),其實(shí)驗(yàn)效果最好。所以本文wmax取0.8,wmin取0.3,E取為5。 表1 慣性權(quán)重的參數(shù)對(duì)比Table 1 Parameter comparison of inertia weights 為了測(cè)試算法的性能,通過(guò)3.1節(jié)中的10個(gè)基準(zhǔn)測(cè)試函數(shù)測(cè)試EAMSPSO算法性能,并與線性遞減慣性權(quán)重粒子群優(yōu)化算法(LPSO)[5]、綜合學(xué)習(xí)粒子群優(yōu)化算法(CLPSO)[8]、具備自糾正和逐維學(xué)習(xí)能力的粒子群算法(SCDLPSO)[10]、粒子群優(yōu)化與灰狼優(yōu)化的混合算法(HPSOGWO)[22]進(jìn)行對(duì)比實(shí)驗(yàn)。LPSO、SCDLPSO算法中c1=c2=2,w:0.9~0.4,CLPSO算法中c=1.494 45,w:0.9~0.4,HPSOGWO算法中c1=c2=c3=0.5,w=0.5+rand()/2。5種算法分別在10個(gè)測(cè)試函數(shù)上獨(dú)立運(yùn)行30次。 3.3.1 算法在低維函數(shù)上的實(shí)驗(yàn) 將基準(zhǔn)測(cè)試函數(shù)f1~f9的維度設(shè)置為30維,5種不同算法對(duì)10個(gè)函數(shù)的優(yōu)化結(jié)果,包括各個(gè)算法獨(dú)立運(yùn)行30次得到的平均值、最大值和標(biāo)準(zhǔn)差,在表2中展示。其中,加粗的結(jié)果為對(duì)比實(shí)驗(yàn)中最好的結(jié)果。5種算法在10個(gè)測(cè)試函數(shù)下的適應(yīng)度值變化趨勢(shì)對(duì)比在圖2中展示。 3.3.2 算法在高維函數(shù)上的實(shí)驗(yàn) 利用單峰函數(shù)f1、f2和多峰函數(shù)f6、f8測(cè)試EAMSPSO算法對(duì)于高維問(wèn)題的優(yōu)化性能,將這4個(gè)函數(shù)維度設(shè)置為100維。各個(gè)算法對(duì)函數(shù)優(yōu)化30次的平均值在表3中展示。 表3 五種算法對(duì)高維測(cè)試函數(shù)的實(shí)驗(yàn)結(jié)果對(duì)比Table 3 Comparison of experimental results of five algorithms on high-dimensional test functions 當(dāng)測(cè)試函數(shù)維度較低時(shí),由表2中的結(jié)果可以看出,在單峰函數(shù)上,對(duì)于函數(shù)f1、f3、f4、f5,本文算法EAMSPSO均可收斂到理論最優(yōu),其他算法在迭代次數(shù)內(nèi)均未達(dá)到理論最優(yōu)。對(duì)于函數(shù)f2和f9,本文算法及對(duì)比算法均未能收斂到理論最優(yōu),但是從表2和圖2中可看出,相比其他對(duì)比算法,EAMSPSO算法找到的解相對(duì)更優(yōu)。多峰函數(shù)具有多個(gè)局部極值,求解困難度較高,對(duì)于函數(shù)f6、f7,本文算法EAMSPSO與算法HPSOGWO可以找到最優(yōu)值,其他算法在迭代次數(shù)內(nèi)未達(dá)到理論最優(yōu),而且從圖2中可以看出算法EAMSPSO的收斂速度快于算法HPSOGWO。對(duì)于函數(shù)f8,所有算法均未收斂到理論最優(yōu),但從表2中的求解結(jié)果和圖2中的收斂曲線可以看出,算法EAMSPSO的求解精度和收斂速度均優(yōu)于其他算法。多峰函數(shù)f10理論最優(yōu)非零,本文算法EAMSPSO和算法LPSO、CLPSO、SCDLPSO均可以找到最優(yōu)解,從求解的標(biāo)準(zhǔn)差來(lái)看本文算法的穩(wěn)定性更好。 圖2 低維函數(shù)不同算法的適應(yīng)值變化趨勢(shì)對(duì)比圖Fig.2 Comparison chart of fitness value change trend of different algorithms for low-dimensional functions 表2 五種算法對(duì)低維測(cè)試函數(shù)的實(shí)驗(yàn)結(jié)果對(duì)比Table 2 Comparison of experimental results of five algorithms on low-dimensional test functions 當(dāng)測(cè)試函數(shù)設(shè)置為100維時(shí),對(duì)于函數(shù)f1、f6算法EAMSPSO仍然可以找到最優(yōu)解,對(duì)于函數(shù)f2、f8五種算法均未到達(dá)理論最優(yōu),但是相比對(duì)比算法,EAMSPSO算法求解的精度更高。可見(jiàn)本文提出的EAMSPSO算法不僅對(duì)低維問(wèn)題的優(yōu)化效果較好,對(duì)于高維問(wèn)題的求解同樣具有優(yōu)勢(shì)。 數(shù)值結(jié)果表明,本文提出的EAMSPSO算法可以有效地跳出局部極值,且算法的穩(wěn)定性較高。對(duì)無(wú)論是低維還是高維函數(shù),單峰還是多峰函數(shù),EAMSPSO算法求解精度和收斂速度上都具備優(yōu)勢(shì)。 本文所研究的半無(wú)限規(guī)劃問(wèn)題具體表達(dá)形式如下: 其中,X(0)={x=(x1,x2,…,xn)T∈Rn},f:Rn→R,?i:Rn×Rpi→R。 利用罰函數(shù)問(wèn)題(11)可以轉(zhuǎn)化為無(wú)約束優(yōu)化問(wèn)題(12): F(x,β)=f(x)+βq(x),q(x)=max{0,h(x)},β為罰因子,當(dāng)罰因子足夠大時(shí)問(wèn)題(12)的解就是問(wèn)題(10)的解。 本文采用EAMSPSO算法求解半無(wú)限規(guī)劃問(wèn)題(10),即求解問(wèn)題(12)。當(dāng)給定罰因子后,F(xiàn)(x)是關(guān)于x的函數(shù),算法中粒子位置即x,粒子適應(yīng)值即F(x)函數(shù)值。該問(wèn)題的難點(diǎn)在于適應(yīng)值的計(jì)算,F(xiàn)(x)計(jì)算中包含一個(gè)求解最大值的子問(wèn)題即對(duì)h(x)的計(jì)算: 計(jì)算過(guò)程中需要對(duì)m個(gè)求最大值的問(wèn)題進(jìn)行求解。當(dāng)x給定時(shí),?i(x,t)即為關(guān)于t的函數(shù)。每個(gè)求最大值問(wèn)題都可以轉(zhuǎn)化無(wú)約束優(yōu)化問(wèn)題(13)的形式。 針對(duì)無(wú)約束優(yōu)化問(wèn)題(13),同樣可以采用EAMSPSO算法進(jìn)行求解。 將EAMSPSO算法應(yīng)用于半無(wú)限規(guī)劃問(wèn)題1~5的求解,并與3.3節(jié)中的對(duì)比算法進(jìn)行對(duì)比,各個(gè)算法參數(shù)與3.3節(jié)保持一致。求解半無(wú)限規(guī)劃問(wèn)題時(shí),算法粒子規(guī)模設(shè)為40,最大迭代次數(shù)設(shè)為500,每個(gè)算法獨(dú)立運(yùn)行5次求平均值。同時(shí)每個(gè)適應(yīng)值的計(jì)算包含的求最值問(wèn)題,采用同樣的算法進(jìn)行計(jì)算,種群規(guī)模設(shè)為40,最大迭代次數(shù)設(shè)為100。數(shù)值結(jié)果在表4~8中展示。 表4 問(wèn)題1的計(jì)算結(jié)果Table 4 Calculation result of question 1 表5 問(wèn)題2的計(jì)算結(jié)果Table 5 Calculation result of question 2 表6 問(wèn)題3的計(jì)算結(jié)果Table 6 Calculation result of question 3 表7 問(wèn)題4的計(jì)算結(jié)果Table 7 Calculation result of question 4 表8 問(wèn)題5的計(jì)算結(jié)果Table 8 Calculation result of question 5 問(wèn)題1[23]: Subject to?(x,t)=x12+2x2t2+ex1+x2-et≤0,t∈[0,1] 最優(yōu)解為(0.719 961,?1.450 487)。 問(wèn)題2[23]: 最優(yōu)解為(-ln 1.1,ln 1.1)。 問(wèn)題3[24]: 最優(yōu)解為(0,0,0)。 問(wèn)題4[25]: 最優(yōu)解為(?1,0,0)。 問(wèn)題5[25]: 最優(yōu)解為(3,0,0,0,0,0)。 問(wèn)題1、2、3中,t是一維變量,問(wèn)題4、5中t是二維變量。從實(shí)驗(yàn)結(jié)果可以看出,對(duì)于問(wèn)題1、問(wèn)題2和問(wèn)題4,算法EAMSPSO可以找到最優(yōu)解,其他對(duì)比算法均未找到最優(yōu)解,而且從函數(shù)值來(lái)看,對(duì)比算法求得的函數(shù)值小于算法EAMSPSO,說(shuō)明對(duì)比算法在求適應(yīng)值中包含的最大值問(wèn)題時(shí)存在未達(dá)到最優(yōu)的情況。問(wèn)題3的目標(biāo)函數(shù)不可微,本文算法EAMSPSO及對(duì)比算法在迭代次數(shù)內(nèi)均未達(dá)到理論最優(yōu),但從求解結(jié)果可以看出,本文算法的求解精度更高。對(duì)于問(wèn)題5,五種算法均未找到理論最優(yōu),CLPSO算法的求解結(jié)果最優(yōu),其次是本文算法EAMSPSO??梢?jiàn),EAMSPSO算法適用于半無(wú)限規(guī)劃問(wèn)題的求解,且具有一定的優(yōu)勢(shì)。 本文提出了基于進(jìn)化能力的多策略粒子群優(yōu)化算法(EAMSPSO)。該算法設(shè)計(jì)了帶隨機(jī)波動(dòng)的慣性權(quán)重,可以使粒子在進(jìn)化后期也具有跳出當(dāng)前區(qū)域的能力。將粒子群按照適應(yīng)值變化方向和粒子活性分為進(jìn)步粒子、暫時(shí)停退粒子、長(zhǎng)久停退粒子,并分別采取不同的進(jìn)化策略,提高全局尋優(yōu)能力。實(shí)驗(yàn)結(jié)果表明,EAMSPSO算法在求解精度和收斂速度上都具備優(yōu)勢(shì)。同時(shí),將EAMSPSO算法應(yīng)用于半無(wú)限規(guī)劃問(wèn)題的求解,進(jìn)一步驗(yàn)證了改進(jìn)算法的有效性。2.4 算法的時(shí)間復(fù)雜度分析
3 性能測(cè)試
3.1 測(cè)試函數(shù)
3.2 參數(shù)設(shè)置
3.3 數(shù)值實(shí)驗(yàn)
3.4 結(jié)果分析
4 EAMSPSO算法求解半無(wú)限規(guī)劃問(wèn)題
4.1 問(wèn)題描述及算法
4.2 數(shù)值實(shí)驗(yàn)
4.3 結(jié)果分析
5 結(jié)束語(yǔ)