A. Tent映射與PSO演算法用於波段尋優的思想
高光譜遙感對地物光譜特徵進行了細致的刻畫,提高了地物識別的可靠性,但是隨著光譜維數增加也帶來了大量冗餘數據,給高光譜數據處理與信息識別等增添了負擔,同時也會影響地物識別的精度,故地物識別時對高光譜數據進行降維、選取特徵波段就顯得非常重要。支持向量機(Support Vector Machine,SVM)是一種機器學習演算法,由美國貝爾實驗室Vapnik針對分類和回歸問題,為適合小樣本學習問題首先提出來的(Vapnik,1995),SVM具有很好的泛化能力,並在一定程度上克服了機器學習的維數災難。近年來,SVM以及基於其他演算法改進的SVM用於高光譜影像的分類得到了廣泛應用,並取得了很好的分類精度(Melgani et al.,2004;李祖傳等,2011)。但針對高光譜數據冗餘性,粒子群優化(Particle Swarm Optimization,PSO)演算法在尋找最優特徵波段組合與進一步提高SVM分類精度方面具有較好的優勢。
PSO演算法是一種通過個體與群體之間的協作來尋找最優解的機器學習演算法,具有自適應,自組織以及快速得到最優解的能力。PSO演算法首先由Kennedy和Eberhart提出來的,後來為了使PSO有更廣泛的應用范圍,他們又提出了二進制PSO演算法(Kennedy et al.,1995,1997;Khanesar et al.,2007;張浩等,2008)。自從PSO演算法提出以來,該演算法已經在各個研究領域得到了廣泛的關注。在高光譜遙感應用方面,Monteiro和Kosugi(2007)提出基於PSO的高光譜影像最佳波段組合和最佳波段數的選取方法,並通過實驗和傳統波段選取方法相比較,證明了基於PSO進行特徵波段選取的優越性。丁勝等(2010)提出一種PSO-BSSVM分類模型,用於高光譜影像特徵波段的選取以及對SVM的參數尋優,通過和其他方法的實驗比較得出該模型可以提高分類精度。李林宜和李德仁(2011)也在模糊特徵的選取中也用了PSO演算法。總之PSO在高光譜影像分類的特徵波段選取中應用比較成功,但由於PSO容易早熟,陷入局部最優,所以針對這點以及為獲得更高的SVM分類精度,對PSO加以改進是非常有意義的。Tent映射是混沌理論中典型的混沌映射例子,Tent映射具有隨機性和遍歷性,所以把Tent映射加入PSO可以對PSO演算法容易陷入局部最優的狀況進行改善。本章就主要通過改進Tent映射後運用於二進制PSO演算法進行尋優,尋找高光譜影像SVM分類的最優特徵波段組合。
B. pso的離散演算法
很多優化問題涉及到離散或二值的變數,典型的例子包括調度問題或路由問題。而PSO演算法的更新公式和過程是面向連續空間並為其設計的,因此需要做一些修改使之適應離散空間的情況。編碼的修改可能很簡單,難點在於定義速度的意義和確定軌跡的變化。
Kennedy定義了第一個離散二進製版本的PSO演算法。微粒使用二進制字元串進行編碼。通過使用sigmoid函數,速度被限制在[0, 1]區間之內,並被解釋為「概率的變化」。Yang對該方法在量子空間進行了擴展。
Mohan提出了幾種二進制方法(直接方法、量子方法、正則方法、偏差向量方法以及混合方法),但是從有限的實驗中沒有得出什麼結論。Clerc對一些專用於某些約束優化問題如TSP問題的PSO演算法變種進行了試驗,結果顯示該方法比較有前途。Pang使用模糊矩陣來表示微粒的位置和速度,對PSO演算法的算符進行了重定義,並將其應用到TSP問題的求解。Pampara將PSO演算法與信號處理中的角調制技術結合起來,將高維二進制問題降維為一個在連續空間中定義的四維問題,並通過求解該四維問題來獲得原問題的解。Afshinmanesh重新定義了離散PSO演算法中的加法與乘法,並使用人工免疫系統中的陰性選擇來實現速度限制Vmax。
Hu提出了一種改進PSO演算法來處理排列問題。微粒被定義為一組特定值的排列,速度基於兩個微粒的相似度重新定義,微粒根據由它們的速度所定義的隨機率來變換到一個新的排列。引入了一個變異因子來防止當前的pBest陷入局部最小。在n皇後問題上的初步研究顯示改進的PSO演算法在解決約束滿意問題方面很有前途。
Migliore對原始的二進制PSO演算法進行了一些改進,提出了可變行為二進制微粒群演算法(VB-BPSO)和可變動態特性二進制微粒群演算法(VD-BPSO)。VB-BPSO演算法按照連續PSO演算法的速度更新公式的思想設計了一個新的速度更新公式,用來確定微粒位置向量每一位為1的概率。而VD-BPSO演算法則是根據一定規則在兩組不同參數確定的VB-BPSO演算法之間切換。Migliore應用該演算法設計出一種簡單魯棒的自適應無源天線。
Parsopoulos以標准函數為例測試微粒群優化演算法解決整數規劃問題的能力。Salman將任務分配問題抽象為整數規劃模型並提出基於微粒群優化演算法的解決方法。兩者對迭代產生的連續解均進行舍尾取整後評價其質量。但是PSO演算法生成的連續解與整數規劃問題的目標函數評價值之間存在多對一的映射,以整型變數表示的目標函數不能准確反映演算法中連續解的質量,而由此導致的冗餘解空間與相應的冗餘搜索降低了演算法的收斂效率。
高尚採用交叉策略和變異策略,將PSO演算法用來解決集合劃分問題。趙傳信重新定義了微粒群位置和速度的加法與乘法操作,並將PSO演算法應用到0/1背包問題求解中。EL-Gallad在PSO演算法中引入探索和勘探兩個運算元,用於求解排序問題。Firpi提出了BPSO演算法的一種保證收斂的版本(但是並未證明其保證收斂性),並將其應用到特徵選擇問題。
上述離散PSO演算法都是間接的優化策略,根據概率而非演算法本身確定二進制變數,未能充分利用PSO演算法的性能。在處理整數變數時,PSO演算法有時候很容易陷入局部最小。原始PSO演算法的思想是從個體和同伴的經驗進行學習,離散PSO演算法也應該借鑒該思想。高海兵基於傳統演算法的速度—位移更新操作,在分析微粒群優化機理的基礎上提出了廣義微粒群優化模型(GPSO),使其適用於解決離散及組合優化問題。GPSO 模型本質仍然符合微粒群優化機理,但是其微粒更新策略既可根據優化問題的特點設計,也可實現與已有方法的融合。基於類似的想法,Goldbarg將局部搜索和路徑重連過程定義為速度運算元,來求解TSP問題。
C. pso的優化求解
PSO演算法被廣泛應用於各種優化問題,並且已經成為優化領域中的一個有效演算法。除了普通函數優化之外,還包括如下方面。
混合整數非線性規劃
很多求解整數規劃的演算法是在採用實數域的演算法進行優化後,再將結果取整作為整數規劃的近似解。這種做法常常導致不滿足約束或遠離最優解。譚瑛提出一種在整數空間中直接進行進化計算的PSO演算法。劉釗針對混合整數非線性規劃中可行解產生代價較高的問題,建立了保證都是合法解的備用微粒庫,並提出微粒遷移策略,幫助微粒跳出局部最優。
雜訊和動態環境
動態系統的狀態會經常改變,甚至可能會連續變化。許多實際系統都會涉及到動態環境。例如,由於顧客的優先順序、意外的設備維護等導致的變化,調度系統中大多數計算時間都被用來進行重新調度。在實際應用中,這些系統狀態的變化就需要經常進行重新優化。
最初使用微粒群演算法跟蹤動態系統的工作由Carlisle提出,通過周期性地重置所有微粒的記憶來跟蹤動態系統。Eberhart也採用類似想法;之後Hu提出一種自適應PSO演算法,能夠自動跟蹤動態系統中的不同變化,並在拋物線benchmark函數上對不同的環境檢測和響應技術進行了實驗,其中使用的檢測方法是監控種群中最優微粒的行為。後來Carlisle使用搜索空間中的一個隨機點來確定環境是否發生變化,但是這需要集中控制,與PSO演算法的分布式處理模型不符。為此Cui提出TDPSO演算法,讓最優歷史位置的適應值隨著時間減小,從而不再需要集中控制。Blackwell在微粒的更新公式中添加了一項懲罰項,來保持微粒處於一個擴展的群中,以應對快速變化的動態環境,該方法中不需要檢測最優點是否發生變化。
Parsopoulos等的試驗表明,基本PSO演算法就可以有效而穩定地在雜訊環境中工作,且在很多情況下,雜訊的存在還可以幫助PSO演算法避免陷入局部最優。Parsopoulos還通過試驗研究了UPSO演算法在動態環境中的性能。Pugh提出一種抗雜訊的PSO演算法。Pan將假設檢驗和最優計算預算分配(OCBA)技術引入微粒群演算法,提出PSOOHT演算法,來解決雜訊環境下的函數優化問題。
上述工作的研究對象都是簡單的動態系統,所採用的實驗函數是簡單的單模函數,並且所涉及的變化都是簡單環境下的均勻變化(即固定步長)。而事實上,實際的動態系統經常是非線性的,並在復雜的多模搜索空間中非均勻變化。Li採用四個PSO模型,對一系列不同的動態環境進行了對比研究。
上述方法均是針對僅跟蹤單個最優點的情況,
D. pso的約束優化
約束優化問題的目標是在滿足一組線性或非線性約束的條件下,找到使得適應值函數最優的解。對於約束優化問題,需要對原始PSO演算法進行改進來處理約束。
一種簡單的方法是,所有的微粒初始化時都從可行解開始,在更新過程中,僅需記住在可行空間中的位置,拋棄那些不可行解即可。該方法的缺點是對於某些問題,初始的可行解集很難找到。或者,當微粒位置超出可行范圍時,可將微粒位置重置為之前找到的最好位置,這種簡單的修正就能成功找到一系列Benchmark問題的最優解。Paquet讓微粒在運動過程中保持線性約束,從而得到一種可以解決線性約束優化問題的PSO演算法。Pulido引入擾動運算元和約束處理機制來處理約束優化問題。Park提出一種改進的PSO演算法來處理等式約束和不等式約束。
另一種簡單的方法是使用懲罰函數將約束優化問題轉變為無約束優化問題,之後再使用PSO演算法來進行求解。Shi將約束優化問題轉化為最小—最大問題,並使用兩個共同進化的微粒群來對其求解。譚瑛提出一種雙微粒群的PSO演算法,通過在微粒群間引入目標信息與約束信息項來解決在滿足約束條件下求解目標函數的最優化問題。Zavala在PSO演算法中引入兩個擾動運算元,用來解決單目標約束優化問題。
第三種方法是採用修復策略,將微粒發現的違反約束的解修復為滿足約束的解。
約束滿足
PSO演算法設計的初衷是用來求解連續問題,,對微粒的位置和速度計算公式進行了重新定義,使用變數和它的關聯變數存在的沖突數作為微粒的適應度函數,並指出該演算法在求解約束滿足問題上具有一定優勢。Lin在Schoofs工作的基礎上研究了使用PSO演算法來求解通用的n元約束滿足問題。楊輕雲在Schoofs工作的基礎上對適應度函數進行了改進,把最大度靜態變數序列引入到適應度函數的計算中。
E. 二進制PSO演算法
PSO演算法中每一粒子都被看是潛在的最優解,具體實現思路是先將粒子初始化,對於每個粒子都有一個當前位置以及根據適應度值做粒子更新的速度(Kennedy et al.,1995),通過迭代計算得到最優解。PSO粒子速度計算和對應位置更新的原理如式(8.1)、式(8.2)所示:
高光譜遙感影像信息提取技術
式中:xid是粒子;c1,c2是學習因子;w是慣性因子,是粒子速度保持更新之前粒子速度的能力;pid是目前單個粒子最優位置;pgd是整個粒子群目前得到的最優位置;rand是0~1之間的隨機數。
二進制PSO首先將粒子初始化為0和1組成的序列。二進制PSO演算法是對式(8.2)作些改變,其位置更新如式(8.3)所示(程志剛等,2007):
高光譜遙感影像信息提取技術
式中: 是 Sigmoid 函數。
F. PSO演算法解決帶約束條件的優化問題
約束條件:
a11x1+a12x2+…+a1nxn≤b1
a21x1+a22x2+…+a2nxn≤b2
…………………………
am1x1+am2x2+…+amnxn≤bm
x1,x2,…,xn≥0 式中x1,x2,…,xn為企業生產的各種產品;b1,b2,…,bm為可供使用的各種投入要素的數量;
aij(i=1,2…m;j=1,2,… n)為第j種產品每生產1個單位所需要的第i種投入要素的數量;最後,非負值約束條件表示各種產品的產量必須是正值,負值是沒有意義的。
G. pso的來源背景
為了說明粒子群優化演算法的發展和形成背景,首先介紹一下早期的簡單模型,即Boid(Bird-oid)模型。這個模型是為了模擬鳥群的行為而設計的,它也是粒子群優化演算法的直接來源。
一個最簡單的模型是這樣的:每一個鳥的個體用直角坐標繫上的點表示,隨機地給它們賦一個初速度和初位置,程序運行的每一步都按照「最近鄰速度匹配」規則,很快就會使得所有點的速度變得一樣。因為這個模擬太簡單而且遠離真實情況,於是在速度項中增加了一個隨機變數,即在迭代的每一步,除了滿足「最近鄰速度匹配」之外,每一步速度還要添加一個隨機變化的量,這樣使得整個模擬看起來更為真實。
Heppner設計了一個「谷地模型」來模擬鳥群的覓食行為。假設在平面上存在一個「谷地」,即食物所在地,鳥群開始時隨機地分散在平面上,為了尋覓食物所在地,它們按照如下規則運動:
首先假設谷地的位置坐標為(x0,y0),單個鳥的位置和速度坐標分別為和(x,y),用當前位置到谷地的距離s:來衡量當前位置和速度的「好壞程度」,離谷地的距離越近,則越「好」,反之越「壞」。假設每一個鳥具有記憶能力,能夠記住曾經達到的最好位置,記作pBest,並記a為系統規定的速度調節常數,rand為一個[0,1]間的隨機數,設定速度項按照下述規則變化:
然後假設群體之間可以以某種方式通訊,每個個體能夠知道並記住到當前為止整個群體的最好位置,記為gBest,記b為系統規定的速度調節常數,Rand為一個[0,1]間的隨機數,則速度項在經過以上調整後,還必須按照下述規則變化:
在計算機上模擬的結果顯示:當a/b較大時,所有的個體很快地聚集到「谷地」上;反之,粒子緩慢地搖擺著聚集到「谷地」的四周。通過這個簡單的模擬,發現群體能很快地找到一個簡單函數(2-1)的最優點。受該模型啟發,Kennedy和Eberhart設計出了一種演化優化演算法,並通過不斷的試驗和試錯,最後將此演算法的基本型固定為:
其中符號的意義同上。研究者認為每個個體被抽象為沒有質量和體積,而僅僅具有速度和位置的微粒,故將此方法稱為「粒子群」優化演算法。
據此,可對粒子群演算法小結如下:粒子群演算法是一種基於種群的搜索過程,其中每個個體稱作微粒,定義為在D維搜索空間中待優化問題的潛在解,保存有其歷史最優位置和所有粒子的最優位置的記憶,以及速度。在每一演化代,微粒的信息被組合起來調整速度關於每一維上的分量,繼而被用來計算新的微粒位置。微粒在多維搜索空間中不斷改變它們的狀態,直到到達平衡或最優狀態,或者超過了計算限制為止。問題空間的不同維度之間唯一的聯系是通過目標函數引入的。很多經驗證據已經顯示該演算法是一個非常有效的優化工具。微粒群優化演算法的流程圖見圖2-1。
以下給出微粒群演算法的比較完整的形式化表述。在連續空間坐標系中,微粒群演算法的數學描述如下:設微粒群體規模為N,其中每個微粒在D維空間中的坐標位置向量表示為,速度向量表示為,微粒個體最優位置(即該微粒經歷過的最優位置)記為,群體最優位置(即該微粒群中任意個體經歷過的最優位置)記為。不失一般性,以最小化問題為例,在最初版本的微粒群演算法中,個體最優位置的迭代公式為:
群體最優位置為個體最優位置中最好的位置。速度和位置迭代公式分別為:
由於初始版本在優化問題中應用時效果並不太好,所以初始演算法提出不久之後就出現了一種改進演算法,在速度迭代公式中引入了慣性權重ω,速度迭代公式變為:
雖然該改進演算法與初始版本相比復雜程度並沒有太大的增加,但是性能卻有了很大的提升,因而被廣泛使用。一般的,將該改進演算法稱為標准微粒群演算法,而將初始版本的演算法稱為原始微粒群演算法。
通過分析PSO演算法的收斂行為,Clerc介紹了一種帶收縮因子的PSO演算法變種,收縮因子保證了收斂性並提高了收斂速度。此時的速度迭代公式為:
顯然,迭代公式(2-7)和(2-8)並無本質區別,只要適當選取參數,二者完全相同。
微粒群演算法有兩種版本,分別稱為全局版本和局部版本。在全局版本中,微粒跟蹤的兩個極值為自身最優位置pBest和種群最優位置gBest。對應的,在局部版本中,微粒除了追隨自身最優位置pBest之外,不跟蹤種群最優位置gBest,而是跟蹤拓撲鄰域中的所有微粒的最優位置nBest。對於局部版本,速度更新公式(2-7)變為:
其中為局部鄰域中的最優位置。
每一代中任意微粒迭代的過程見圖2-2所示。從社會學的角度來看速度迭代公式,其中第一部分為微粒先前速度的影響,表示微粒對當前自身運動狀態的信任,依據自身的速度進行慣性運動,因此參數ω稱為慣性權重(Inertia Weight);第二部分取決於微粒當前位置與自身最優位置之間的距離,為「認知(Cognition)」部分,表示微粒本身的思考,即微粒的運動來源於自己經驗的部分,因此參數c1稱為認知學習因子(也可稱為認知加速因子);第三部分取決於微粒當前位置與群體中全局(或局部)最優位置之間的距離,為「社會(Social)」部分,表示微粒間的信息共享與相互合作,即微粒的運動來源於群體中其他微粒經驗的部分,它通過認知模擬了較好同伴的運動,因此參數c2稱為社會學習因子(也可稱為社會加速因子)。
自從PSO演算法被提出以來,由於它直觀的背景,簡單而容易實現的特點,以及對於不同類型函數廣泛的適應性,逐漸得到研究者的注意。十餘年來,PSO演算法的理論與應用研究都取得了很大的進展,對於演算法的原理已經有了初步的了解,演算法的應用也已經在不同學科中得以實現。
PSO演算法是一種隨機的、並行的優化演算法。它的優點是:不要求被優化函數具有可微、可導、連續等性質,收斂速度較快,演算法簡單,容易編程實現。然而,PSO演算法的缺點在於:(1)對於有多個局部極值點的函數,容易陷入到局部極值點中,得不到正確的結果。造成這種現象的原因有兩種,其一是由於待優化函數的性質;其二是由於微粒群演算法中微粒的多樣性迅速消失,造成早熟收斂。這兩個因素通常密不可分地糾纏在一起。(2)由於缺乏精密搜索方法的配合,PSO演算法往往不能得到精確的結果。造成這種問題的原因是PSO演算法並沒有很充分地利用計算過程中獲得的信息,在每一步迭代中,僅僅利用了群體最優和個體最優的信息。(3)PSO演算法雖然提供了全局搜索的可能,但是並不能保證收斂到全局最優點上。(4)PSO演算法是一種啟發式的仿生優化演算法,當前還沒有嚴格的理論基礎,僅僅是通過對某種群體搜索現象的簡化模擬而設計的,但並沒有從原理上說明這種演算法為什麼有效,以及它適用的范圍。因此,PSO演算法一般適用於一類高維的、存在多個局部極值點而並不需要得到很高精度解的優化問題。
當前針對PSO演算法開展的研究工作種類繁多,經歸納整理分為如下八個大類:(1)對PSO演算法進行理論分析,試圖理解其工作機理;(2)改變PSO演算法的結構,試圖獲得性能更好的演算法;(3)研究各種參數配置對PSO演算法的影響;(4)研究各種拓撲結構對PSO演算法的影響;(5)研究離散版本的PSO演算法;(6)研究PSO演算法的並行演算法;(7)利用PSO演算法對多種情況下的優化問題進行求解;(8)將PSO演算法應用到各個不同的工程領域。以下從這八大類別著手,對PSO演算法的研究現狀作一梳理。由於文獻太多,無法面面俱到,僅撿有代表性的加以綜述。
H. pso的並行演算法
與大多數隨機優化演算法相似,當適應值評價函數的計算量比較大時,PSO演算法的計算量會很大。為了解決該問題,研究者提出了並行PSO演算法。與並行遺傳演算法類似,並行PSO演算法也可以有三種並行群體模型:主從並行模型、島嶼群體模型和鄰接模型。
Schutte採用同步實現方式,在計算完一代中所有點的適應值之後才進入下一代。這種並行方法雖然實現簡單,但常常會導致並行效率很差。故而有人提出非同步方式的並行演算法,可以在對數值精度影響不大的條件下提高PSO演算法的並行性能。這兩種方式採用的都是主從並行模型,其中非同步方式在求解上耦合性更高,更容易產生通信瓶頸。
Baskar提出一種兩個子種群並行演化的並發PSO演算法,其中一個子種群採用原始的PSO演算法,另一個子種群採用基於適應值距離比的PSO演算法(FDR-PSO);兩個子種群之間頻繁地進行信息交換。而El-Abd研究了在子種群中採用局部鄰域版本的協作PSO演算法,並研究了多種信息交換的方式及其對演算法性能的影響。黃芳提出一種基於島嶼群體模型的並行PSO演算法,並引入一種集中式遷移策略,提高了求解效率,同時改善了早收斂現象。
Li提出延遲交換信息的並行演算法屬於鄰接模型,該演算法可以提高速度,但可能使得解的質量變差。
I. pso的多目標優化
在多目標優化問題中,每個目標函數可以分別獨立進行優化,然後為每個目標找到最優值。但是,很少能找到對所有目標都是最優的完美解,因為目標之間經常是互相沖突的,只能找到Pareto最優解。
PSO演算法中的信息共享機制與其他基於種群的優化工具有很大的不同。在遺傳演算法(GA)中,染色體通過交叉互相交換信息,是一種雙向信息共享機制。但是在PSO演算法中,只有gBest(或nBest)給其他微粒提供信息,是一種單向信息共享機制。由於點吸引特性,傳統的PSO演算法不能同時定位構成Pareto前鋒的多個最優點。雖然通過對所有目標函數賦予不同的權重將其組合起來並進行多次運行,可以獲得多個最優解,但是還是希望有方法能夠一次同時找到一組Pareto最優解。
在PSO演算法中,一個微粒是一個獨立的智能體,基於其自身和同伴的經驗來搜索問題空間。前者為微粒更新公式中的認知部分,後者為社會部分,這二者在引導微粒的搜索方面都有關鍵的作用。因此,選擇適當的社會和認知引導者(gBest和pBest)就是MO-PSO演算法的關鍵點。認知引導者的選擇和傳統PSO演算法應遵循相同的規則,唯一的區別在於引導者應按照Pareto支配性來確定。社會引導者的選擇包括兩個步驟。第一步是建立一個從中選取引導者的候選池。在傳統PSO演算法中,引導者從鄰居的pBest之中選取。而在MO-PSO演算法中更常用的方法是使用一個外部池來存儲更多的Pareto最優解。第二步就是選擇引導者。gBest的選擇應滿足如下兩個標准:首先,它應該能為微粒提供有效的引導來獲得更好的收斂速度;第二,它還需要沿Pareo前鋒來提供平衡的搜索,以維持種群的多樣性。文獻中通常使用兩種典型的方法:(1)輪盤選擇模式,該方式按照某種標准進行隨機選擇,其目的是維持種群的多樣性;(2)數量標准:按照某種不涉及隨機選擇的過程來確定社會引導者。
Moore最早研究了PSO演算法在多目標優化中的應用,強調了個體和群體搜索二者的重要性,但是沒有採用任何維持多樣性的方法。Coello在非劣最優概念的基礎上應用了一個外部「容器」來記錄已找到的非支配向量,並用這些解來指導其它微粒的飛行。Fieldsend採用一種稱為支配樹的數據結構來對最優微粒進行排序。Parsopoulos應用了權重聚合的方法。Hu應用了動態鄰域,並在此基礎上利用擴展記憶,按詞典順序依次優化各個目標。Ray使用聚集機制來維持多樣性,並用一個多水平篩來處理約束。Lu使用了動態種群策略。Bartz-Beielstein採用歸檔技術來提高演算法性能。Li在PSO演算法中採用NSGA-II演算法中的主要機制,在局部最優微粒及其後代微粒之間確定局部最優微粒;並此基礎上又提出一種新的演算法,在適應值函數中使用最大最小策略來確定Pareto支配性。張利彪使用多個目標函數下各最優位置的均值來指導微粒飛行。Pulido使用多個子種群並採用聚類技術來求解多目標規劃問題。Mahfouf採用加權聚合方法來計算微粒的適應值,並據此確定引導微粒的搜索。Salazar-Lechuga使用適應值共享技術來引導微粒的搜索。Gong提出微粒角度的概念,並使用最小微粒角度和微粒密度來確定局部最優和全局最優微粒。基於AER模型,Zhang提出一種新的智能PSO模型,來將種群驅向Pareto最優解集。Ho提出一種新的適應值分配機制,並使用壽命(Age)變數來保存和選擇最優歷史記錄。Huang將CLPSO演算法應用到多目標規劃中。Ho提出另一種基於Pareto的與尺度無關的適應值函數,並使用一種基於正交試驗設計的智能運動機制(IMM)來確定微粒的下一步運動。Branke系統研究了多種個體最優微粒的選擇方法對MOPSO演算法性能的影響。張勇考慮儲備集更新策略在多目標PSO演算法中的關鍵作用,提出一種兩階段儲備集更新策略。
原萍提出一種分布式PSO演算法—分割域多目標PSO演算法(DRMPSO),並將其應用到基站優化問題。向量評價PSO演算法(VEPSO)是一種受向量評價遺傳演算法(VEGA)的啟發提出的一種演算法,在VEPSO演算法中,每個種群僅使用多個目標函數之一來進行評價,同時各種群之間互相交互經驗。將每個種群分配到一台網路PC上,即可直接使VEPSO演算法並行化,以加速收斂。Vlachogiannis應用並行VEPSO演算法來確定發電機對輸電系統的貢獻。熊盛武利用PSO演算法的信息傳遞機制,在PSO演算法中引入多目標演化演算法常用的歸檔技術,並採用環境選擇和配對選擇策略,使得整個群體在保持適當的選擇壓力的情況下收斂於Pareto最優解集。
由於適應值的計算非常消耗計算資源,為了減少計算量,需要減少適應值評價的次數。Reyes-Sierra採用適應值繼承和估計技術來實現該目標,並比較了十五種適應值繼承技術和四種估計技術應用於多目標PSO演算法時的效果。
保持MOPSO中的多樣性的方法主要有兩種:sigma方法和ε-支配方法。Villalobos-Arias在目標函數空間中引入條塊劃分來形成聚類,從而保持多樣性。
J. 什麼是目標函數值在粒子群演算法中有這個概念
PSO演算法是一種基於迭代的優化演算法。可以詳細理解一下PSO演算法的具體思想和尋優規則。
我用數學概念給你解釋一下目標函數值:
我們簡單的假設一條拋物線方程為y=ax^2+bx+c,存在一條直線y=mx+n與拋物線相離
求拋物線上某點距離該直線最近的距離d;
通過數學的方法,就會設拋物線上任意一點的坐標(p,q),然後建立距離方程:
d=|pm-q+n|/√(a^2+b^2) (1) 這里拋物線上所有的點都可以理解為粒子,咱們要找的就是最好的那個粒子。
我們要求d最小,(1)式這個方程就是目標函數,求得的最小值dmin就是我們要求的目標函數值。
點(p,q)就是我們得到的PSO演算法中的最優解。
PSO演算法最重要的是數學模型的建立。