一種新的改進粒子群優(yōu)化算法
吳昌友,王福林,馬力
(東北農(nóng)業(yè)大學(xué)工程學(xué)院,黑龍江哈爾濱150030)
摘 要:在現(xiàn)有文獻研究的基礎(chǔ)上,首先闡述標(biāo)準(zhǔn)粒子群優(yōu)化算法的基本原理,并對它加以分析,指出標(biāo)準(zhǔn)粒子群優(yōu)化算法初始粒子種群的產(chǎn)生速度慢、在優(yōu)化過程中容易陷入局部****等缺點,然后對其缺點進行改進,將改進的粒子群優(yōu)化算法和標(biāo)準(zhǔn)粒子群優(yōu)化算法進行實驗對比分析研究,從實驗結(jié)果中可知,改進粒子群優(yōu)化算法在收斂速度及收斂精度上都明顯好于標(biāo)準(zhǔn)粒子群優(yōu)化方法。
關(guān)鍵詞:粒子群優(yōu)化算法;變異;收斂速度
中圖分類號:tp 27 文獻標(biāo)識碼:a
1引言
粒子群優(yōu)化算法由kennedv和fberhan于1995年提出的一種新的全局優(yōu)化進化算法,其基本概念源于對鳥類捕食行為的模擬與遺傳算法和蟻群算法相類似,pso算法也是一種基于群集智能的演化計算技術(shù),作為一種高效的優(yōu)化方法,該算法近年來已引起了優(yōu)化及演化計算等領(lǐng)域的學(xué)者們的廣泛關(guān)注。粒子群優(yōu)化算法與其他的進化算法相比,粒子群優(yōu)化算法簡單通用、調(diào)整參數(shù)少、容易實現(xiàn),具有較強的全局收斂能力和魯棒性,且不需要借助問題的特征信息,非常適于對復(fù)雜環(huán)境中的優(yōu)化問題的求解。雖然粒子群優(yōu)化算法存在著許多優(yōu)點,同時也存在著易陷入局部****,進化后期收斂速度慢,精度較差等缺點。為了克服粒子群優(yōu)化算法的這些缺點,研究人員提出了許多改迸的粒子群算法,如李季等提出的交叉粒子群算法,呂振肅等提出的自適應(yīng)變異的粒子群優(yōu)化算法,高鷹等提出的免疫粒子群算法等,這些算法從不同方面對粒子群優(yōu)化算法進行了改進,不同程度地提高了算法的收斂速度和精度。本文對標(biāo)準(zhǔn)粒子群算法的缺點進行了改進,提出了一種新的改進粒子群優(yōu)化算法。
并將改進的pso算法與標(biāo)準(zhǔn)pso算法進行實驗對比分析,從實驗結(jié)果上可以看出,改進的pso算法能夠取得較好的優(yōu)化性能,全局收斂眭得到顯著提高。
2基本的粒子群優(yōu)化算法
與其他進化算法相類似,pso算法也將通過個體間的協(xié)作與競爭,實現(xiàn)復(fù)雜空間中****解的搜索。pso首先生成初始種群,即在可行解空間中隨機初始化一群粒子,每個粒子都為優(yōu)化問題的一個解,并由目標(biāo)函數(shù)為之確定一個適應(yīng)值。每個粒子將在解空間中運動,并由一個速度決定其方向和距離。通常粒子將追隨當(dāng)前的****粒子而動,并經(jīng)逐代搜索,最后得到****解。在每一代中,粒子將跟蹤兩個極值,一個為粒子本身迄今找到的****解,代表粒子自身的認(rèn)知水平;另一個為全種群迄今找到的****解,代表社會認(rèn)知水平。
設(shè)搜索空間為m維(指決策變量個數(shù)),粒子種群中粒子數(shù)為n。按追隨當(dāng)前****粒子的原理,粒子x。將按式改變速度和位置:
更新過程中,粒子每一維的速度均被限制在[ -vmax,vmax]內(nèi),每一維的位置亦被限制在一定范圍[ -xmax,xmax]內(nèi)。算法具體流程與一般進化算法相似,經(jīng)過初始化、適應(yīng)度計算、新的粒子的產(chǎn)生、停止準(zhǔn)則判斷等步驟,最終得到符合條件的解。
3 改進的粒子群優(yōu)化算法
1)改進初始粒子群的產(chǎn)生一般情況下,標(biāo)準(zhǔn)粒子群優(yōu)化算法的初始種群粒子都是通過隨機產(chǎn)生的,對于沒有約束的優(yōu)化問題,初始粒子種群的產(chǎn)主不會消耗大量的時間,而對于有約束條件下的優(yōu)化問題,如果還采用隨機產(chǎn)生,很難產(chǎn)生到滿足約束條件的初始粒子,所以在初始種群產(chǎn)生的過程中將消耗大量的時間,為了解決快速產(chǎn)生初始粒子群,本文采用以下方式進行產(chǎn)生。
設(shè)決策變量個數(shù)為m,初始粒子種群規(guī)模為n,ak和bk分別為設(shè)計變量邑的取值下限和上限,xi(o)為第i個初始粒子:
先隨機產(chǎn)生一個初始可行粒子x1(o),若該粒子為可行域界點,則重新產(chǎn)生,直至產(chǎn)生的初始可行粒子x1(0)為可行域的內(nèi)點為止。于是可按下式隨機產(chǎn)生一個初始粒子x2(o):
按式(4),式(5)產(chǎn)生的粒子x2 (0)需檢驗是否滿足約束條件, |