本發(fā)明涉及粒子群算法領(lǐng)域,更具體地,涉及一種基于越界重置的參數(shù)列維化粒子群算法。
背景技術(shù):
在二十世紀(jì)九十年代初期,學(xué)者們受到自然界中以群體為單位活動的動物、昆蟲等的社會活動機制的啟發(fā)而提出了群智能優(yōu)化算法。而群智能優(yōu)化算法中的粒子群優(yōu)化算法涉及的各種基本數(shù)學(xué)操作和計算相對簡單,方法易于理解和實現(xiàn),只有非常少的參數(shù)需要調(diào)整,其數(shù)據(jù)處理過程對CPU和內(nèi)存的要求也不高,潛在的并行性和分布式特點為處理大量的數(shù)據(jù)提供了保證,所以越來越多的被用來解決工程技術(shù)和經(jīng)濟生活領(lǐng)域等問題。國內(nèi)外學(xué)者提出了一系列仿生的群智能優(yōu)化算法,比較典型的有遺傳算法,蟻群算法,粒子群優(yōu)化算法,人工魚群算法,人工蜂群算法,混合蛙跳算法,螢火蟲算法等。文獻“Arpan Kumar Kar.Bio inspired computing–A review of algorithms and scope of applications[J].Expert Systems with Applications,2016,59:20–32.”中指出粒子群優(yōu)化算法本身的思想簡單、容易操作及能有效解決問題的能力,在很多研究和工程領(lǐng)域得到廣泛應(yīng)用,但其后期收斂速度慢、缺乏跳出局部極值的有效機制致使其容易發(fā)生早熟收斂的問題。
隨著人類生活和經(jīng)濟領(lǐng)域的不斷擴大,面對的問題越來越復(fù)雜,對最優(yōu)解的要求越來越高,因此也對算法的性能提出了更高的要求。如何提升算法跳出局部最優(yōu)解的能力,如何解決算法收斂精度低的缺點,如何降低算法的計算復(fù)雜度和提升算法的執(zhí)行效率等,尤其是如何解決在處理高維復(fù)雜問題時,易遇到早熟現(xiàn)象而無法收斂到最優(yōu)值,以及收斂精度低而無法滿足實際問題要求的情況,都成為粒子群優(yōu)化算法亟需解決的問題。因此,無論是從理論研究還是應(yīng)用研究的角度考慮,進行粒子群優(yōu)化算法理論及其應(yīng)用的研究都是具有重要學(xué)術(shù)意義和現(xiàn)實價值的。
技術(shù)實現(xiàn)要素:
本發(fā)明的目的是針對粒子群優(yōu)化算法存在早熟以及精度低的問題,引入列維飛行的原理,提出了一種改進的粒子群優(yōu)化算法。本發(fā)明避免了列維飛行的高隨機性帶來的粒子在邊界滯留從而失去尋優(yōu)能力的情況,進一步提升了算法的性能,很大程度上降低了粒子群容易陷入局部最優(yōu)而無法收斂到最優(yōu)解的問題,而且具有更快的收斂速度和更高的收斂精度。
本發(fā)明的技術(shù)方案是:
一種基于越界重置的參數(shù)列維化粒子群算法,該算法通過冪率分布來調(diào)整粒子群算法的參數(shù)取值,并針對做出長距離移動后在邊界滯留的粒子,引入越界重置機制。
本發(fā)明的算法包括以下步驟:
(1)、初始化粒子群優(yōu)化算法的相關(guān)參數(shù);
(2)、根據(jù)列維飛行原理采用下述公式分別初始化步長向量levyw(β),和將前述步長向量對應(yīng)賦值給標(biāo)準(zhǔn)粒子群算法中的慣性權(quán)重w、學(xué)習(xí)因子c1,c2,
其中,u,v都服從正態(tài)分布,即
σu=1
其中,Γ是標(biāo)準(zhǔn)Gamma函數(shù),即β是列維飛行的系數(shù),控制著列維飛行的距離,取值范圍是(0,2];
(3)、根據(jù)前述步長向量更新每一個粒子的速度和位置
其中,i表示粒子編號,1≤i≤N,N表示粒子總數(shù);d表示空間維度編號,1≤d≤M,M表示搜索空間的維度,若針對三個參數(shù)尋優(yōu),則一個粒子可代表這三個參數(shù),此時可以將搜索空間映射到三維空間,每個維度代表一個參數(shù),轉(zhuǎn)換成坐標(biāo)系可以理解成x,y,z軸;t表示迭代次數(shù),rand1、rand2為隨機參數(shù),取值范圍(0,1];是編號為i的粒子個體在維度d經(jīng)歷過的最好位置,即局部最優(yōu)位置;Gd是種群在維度d所經(jīng)歷過的最好位置,即全局最優(yōu)位置;
(4)、根據(jù)基準(zhǔn)測試函數(shù)更新每一個粒子的適應(yīng)度函數(shù)值;
(5)、根據(jù)對步驟(3)獲取的各粒子位置和步驟(4)獲取的各粒子的適應(yīng)度函數(shù)值,更新每一個粒子的局部最優(yōu)位置和全局最優(yōu)位置;
(6)、判斷是否滿足迭代次數(shù),若滿足,則輸出步驟(5)獲取的最優(yōu)結(jié)果,結(jié)束算法;否則迭代次數(shù)加1,并返回步驟(3)。
本發(fā)明的步驟(4)中,首先根據(jù)步驟(3)獲取的各粒子位置判斷其是否超過求解維度空間的最大或最小值,若越界,則通過越界重置機制重新確定粒子的位置,再根據(jù)基準(zhǔn)測試函數(shù)更新每一個粒子的適應(yīng)度函數(shù)值,否則直接根據(jù)基準(zhǔn)測試函數(shù)更新每一個粒子的適應(yīng)度函數(shù)值。
本發(fā)明的第d維的位置變化范圍和速度變化范圍分別為[-xd,max,xd,max]和[-vd,max,vd,max]。
本發(fā)明的初始化粒子群優(yōu)化算法的相關(guān)參數(shù)具體包括:初始化粒子總數(shù)N;搜索空間的維度M;最大迭代次數(shù)T;每一個粒子i的位置粒子i個體在各維度經(jīng)歷過的最好位置即局部最優(yōu)位置種群在各維度所經(jīng)歷過的最好位置,即全局最優(yōu)位置Gbest=(G1,G2,...,GM);粒子群初始位置和速度,其中,粒子群初始位置和速度隨機產(chǎn)生;初始化還包括:根據(jù)基準(zhǔn)測試函數(shù)初始化每一個粒子的適應(yīng)度值。
本發(fā)明中,越界重置機制是指:在迭代中若某一維的或超過邊界則取邊界值,對于在邊界滯留的粒子做出如下判斷,若發(fā)現(xiàn)該粒子連續(xù)三次及三次以上都取邊界值,則表明此粒子已經(jīng)失去尋優(yōu)能力,需要在待解空間內(nèi)重新初始化該粒子的位置,使該粒子重新獲得尋優(yōu)的能力。。
本發(fā)明的有益效果:
本發(fā)明對參數(shù)進行動態(tài)調(diào)整使其取值滿足冪率分布,從而使得尋優(yōu)過程中步長的轉(zhuǎn)移規(guī)則滿足列維飛行,即粒子以小概率在搜索空間中做出長距離的移動,以大概率在搜索空間做短距離的移動,使粒子更易于跳出局部最優(yōu),協(xié)調(diào)了算法的全局搜索與局部搜索能力。
本發(fā)明針對做出長距離移動后在邊界滯留的粒子,引入粒子越界重置機制,使得粒子重新獲得尋優(yōu)能力。仿真結(jié)果表明,提出的算法針對不同類型且高維的基準(zhǔn)測試函數(shù)相比現(xiàn)有的同類算法,不僅增強了跳出局部最優(yōu)的能力,而且具有更快的收斂速度和更高的收斂精度。
具體實施方式
下面結(jié)合實施例對本發(fā)明作進一步的說明。
一種基于越界重置的參數(shù)列維化粒子群算法,該算法通過冪率分布來調(diào)整粒子群算法的參數(shù)取值,并針對做出長距離移動后在邊界滯留的粒子,引入越界重置機制。
粒子群優(yōu)化算法的數(shù)學(xué)描述如下:設(shè)搜索空間為M維,粒子數(shù)為N,第i個粒子位置表示為向量第i個粒子“飛行”歷史中的過去最優(yōu)位置(即該位置對應(yīng)解最優(yōu))為參考所有粒子的適應(yīng)度值,中的最優(yōu)個體被記作Gbest=(G1,G2,...,GM);第i個粒子的位置變化率(速度)為向量每個粒子的位置按如下公式進行變化:
在公式(1)中,c1,c2為正常數(shù),稱為學(xué)習(xí)因子;rand1、rand2為隨機參數(shù),取值范圍(0,1];w為慣性因子。第d(1≤d≤M)維的位置變化范圍和速度變化范圍分別為[-xd,max,xd,max]和[-vd,max,vd,max],迭代中若某一維的xid或vid超過邊界則取邊界值,若連續(xù)三次及三次以上取得邊界值,則利用越界重置機制初始化粒子的位置。粒子群初始位置和速度隨機產(chǎn)生,然后按公式(1)與(2)進行迭代,直至滿足停止條件。
列維飛行原理如下:
Levy飛行的搜索方式與普通算法的路徑不同,該搜索方式隨機性較強。廣義的說,列維飛行是一個步長大小服從冪率分布的隨機游走,而游走方向是服從均勻分布的。本發(fā)明提出的算法中所使用的列維數(shù)發(fā)生器使用了具有列維分布特征的Mantegna法則來選擇步長向量。
在Mantegna法則中,步長的大小s設(shè)計為:
在公式(3)中,u,v都服從正態(tài)分布,即
這里
σu=1 (4)
在公式(5)中,Γ是標(biāo)準(zhǔn)Gamma函數(shù),即β是列維飛行的系數(shù),它控制著列維飛行的距離,一般在(0,2]之間。該分布說明步長的轉(zhuǎn)移形成了一個服從冪律分布的隨機行走過程,更新的公式為:
α=O(L/10)
在公式(6)中,是點對點乘法,α是步長控制量,L是搜索空間的大小,Levy(β)就是一個步長大小服從冪率分布的隨機行走。此處,具體的步長大小的是利用上面所說的Mantegna法則來實現(xiàn)的,而方向的取法是服從均勻分布的??杀硎緸椋?/p>
這樣,粒子的尋優(yōu)過程是按照列維飛行的步長轉(zhuǎn)移規(guī)則,受最優(yōu)解的引導(dǎo)移動到新位置的。通過列維飛行運動,不僅增強了算法的全局搜索速度,也加強了局部搜索能力,這樣就可以令算法在陷入局部最優(yōu)時能通過小概率下的長距離轉(zhuǎn)移跳出局部最優(yōu)并且繼續(xù)尋優(yōu)。
在本發(fā)明中,PSO的參數(shù)(w,c1,c2)根據(jù)Mantegna法則產(chǎn)生,并且服從冪率分布。因此,對粒子的速度變化重新定義:
在公式(8)中,levyw(β),and分別獨立的根據(jù)公式(3)產(chǎn)生。公式(2)可以重新表示成:
本發(fā)明對粒子群優(yōu)化算法的改進是基于列維飛行原理形成的,在粒子群優(yōu)化算法的迭代過程中,該算法將冪率分布融入粒子群算法的參數(shù)變化中,使得粒子的步長轉(zhuǎn)移滿足列維飛行,轉(zhuǎn)移方向滿足均勻分布。改進后的算法使得粒子的搜索步長以大頻率做布朗運動,以小頻率做列維飛行。粒子在解空間內(nèi)進行探索的過程中,列維飛行的高隨機性使得探索過程能迅速從一個區(qū)域跳到另一個區(qū)域,從而使得算法的全局搜索能力增強;布朗運動的短步長保證了粒子群算法的局部搜索能力,尤其是在最優(yōu)解附近。所以列維飛行對搜索域的全局探索能力和局部探索遠(yuǎn)遠(yuǎn)強于普通的布朗運動。在實驗的過程中發(fā)現(xiàn),有時列維飛行的高隨機性會導(dǎo)致步長跨度過大,使得粒子轉(zhuǎn)移后在搜索空間的邊界徘徊發(fā)生無法繼續(xù)尋優(yōu)的情況。因此本發(fā)明在此基礎(chǔ)之上,為算法加入了越界重置機制,越界重置機制的原理就是判斷粒子當(dāng)前所在位置是否重復(fù)取得求解空間的最大或最小值,并對失去尋優(yōu)能力的粒子當(dāng)前位置進行初始化,使得已經(jīng)越界并在搜索空間邊界滯留的粒子重新獲得尋優(yōu)的能力。
本發(fā)明未涉及部分均與現(xiàn)有技術(shù)相同或可采用現(xiàn)有技術(shù)加以實現(xiàn)。