郭堃, 薛太林, 耿杰, 楊擎宇, 張昊杰
(山西大學(xué) 電力工程系,山西 太原 030013)
雞群算法(chicken swarm optimization,CSO)是Meng等人于2014年提出來的仿生優(yōu)化算法。雞群算法啟發(fā)自雞群覓食行為,與其他優(yōu)化算法相比具有參數(shù)少、收斂速度快和收斂精度高的優(yōu)點(diǎn)[1-3]。因傳統(tǒng)的無功優(yōu)化算法如梯度法、二次規(guī)劃法等要求目標(biāo)函數(shù)和約束條件盡可能可微、可導(dǎo),對(duì)數(shù)學(xué)模型精度要求較高和對(duì)初始解要求苛刻,研究學(xué)者將人工智能算法應(yīng)用到無功優(yōu)化上[4]。
電力系統(tǒng)的無功優(yōu)化問題因其擁有高維數(shù)、多變量和多約束的特點(diǎn),在面對(duì)無功優(yōu)化這樣的高維問題時(shí),雞群算法易陷入局部最優(yōu)[5]。因此,本文引入反向?qū)W習(xí)、柯西變異和學(xué)習(xí)因子來改進(jìn)雞群算法,提高算法的尋優(yōu)能力,并與其他算法比較驗(yàn)證其有效性。
雞群算法由模擬雞群的社會(huì)結(jié)構(gòu)和覓食規(guī)則而來的群智能算法,即將整個(gè)群體分為公雞、母雞和小雞三個(gè)群體。每個(gè)小組都是由公雞、母雞、雞媽媽和小雞組成,每個(gè)小組由公雞帶領(lǐng)進(jìn)行覓食,組中小雞只跟隨雞媽媽覓食。這種種群關(guān)系可以存在數(shù)代,數(shù)代后重新劃分種群關(guān)系[6]。
位置更新規(guī)則如下:
(1) CSO中將適應(yīng)度值高的定義為公雞,其覓食能力高于母雞和小雞。公雞的位置更新公式如式(1)所示。
(1)
(2) 母雞為適應(yīng)度適中的個(gè)體。母雞的覓食行為受到該子群中公雞的影響,并且也會(huì)受其他群體中的公雞母雞的影響,但不會(huì)受到小雞的影響,其位置更新公式如式(2)所示。
(2)
(3)
C2=exp(fr2-fi)
(4)
式中:Rand為0到1之間的隨機(jī)數(shù);C1為該母雞所在子群的公雞r1對(duì)該母雞i的影響系數(shù);C2為從全種群中隨機(jī)選取的公雞或母雞r2對(duì)該母雞的影響系數(shù)。
(3) 小雞受雞媽媽影響,跟隨雞媽媽進(jìn)行覓食。位置更新公式如式(3)所示。
(5)
為了改進(jìn)雞群算法在面對(duì)無功優(yōu)化這樣的高維問題時(shí),容易陷入局部最優(yōu)的問題。本文從三個(gè)方面對(duì)雞群算法進(jìn)行改進(jìn)。
為提高算法的收斂速度,引入反向?qū)W習(xí)機(jī)制對(duì)種群初始化進(jìn)行改進(jìn)。即在計(jì)算每個(gè)個(gè)體的適應(yīng)度值時(shí),同時(shí)計(jì)算其反向個(gè)體的適應(yīng)度值,并與該個(gè)體進(jìn)行比較。若該個(gè)體的適應(yīng)度值大于該反向個(gè)體,則選取該反向個(gè)體替代該個(gè)體來進(jìn)行種群適應(yīng)度值排序。反向個(gè)體的選取規(guī)則如下:
(6)
為解決母雞容易陷入局部最優(yōu)的問題,引入柯西算子來對(duì)母雞進(jìn)行變異。柯西分布函數(shù)具有中間峰值低,兩邊分布長的特點(diǎn)。一維柯西分布的概率密度函數(shù)為:
(7)
式中:t為比例參數(shù)且大于0。
本文對(duì)母雞進(jìn)行柯西變異,利用柯西分布中間峰值低的特點(diǎn),使母雞花費(fèi)在局部最優(yōu)的鄰域內(nèi)搜索的時(shí)間減少,讓母雞用更多的時(shí)間花費(fèi)在全局最優(yōu)的搜索上。使用柯西變異后的母雞位置更新公式如下:
(8)
式中:C(0,1)為比例參數(shù)為1的柯西分布所產(chǎn)生的隨機(jī)數(shù)。
由于小雞位置更新只與母雞有關(guān),當(dāng)母雞陷入局部最優(yōu)時(shí),小雞不可避免也會(huì)陷入局部最優(yōu)。為解決這個(gè)問題,引入學(xué)習(xí)因子,使小雞跟隨母雞的同時(shí)也會(huì)與公雞學(xué)習(xí)。引入學(xué)習(xí)因子的小雞位置更新規(guī)則如下:
(9)
改進(jìn)雞群算法的具體流程為:
(1)初始化雞群參數(shù)。確定雞群總數(shù)X、公雞數(shù)NG、母雞數(shù)NM、雞媽媽數(shù)NJ、小雞數(shù)NC、最大迭代次數(shù)和更新代數(shù)G等基本參數(shù)。
(2)設(shè)置目標(biāo)函數(shù),迭代次數(shù)k=1。
(3)判斷當(dāng)前迭代次數(shù)是否是更新代數(shù)G的整數(shù)倍:若是則運(yùn)用式(6)計(jì)算雞群每個(gè)個(gè)體和其反向個(gè)體的適應(yīng)度值,判斷是否反向個(gè)體要替代該個(gè)體,然后對(duì)每個(gè)個(gè)體進(jìn)行適應(yīng)度排序,將雞群分成若干子群,確定子群各個(gè)體之間的等級(jí)關(guān)系,然后按步驟(4)進(jìn)行;否則直接按步驟(4)進(jìn)行。
(4)按照式(1)、式(8)和式(9)來對(duì)公雞、母雞和小雞進(jìn)行位置更新。
(5)更新個(gè)體最優(yōu)值和全局最優(yōu)值。
(6)令k=k+1,判斷是否滿足最大迭代次數(shù),若是則輸出結(jié)果,否則轉(zhuǎn)向步驟(3)。
對(duì)應(yīng)的流程如圖1所示。
圖1 改進(jìn)雞群算法流程圖
無功優(yōu)化目標(biāo)函數(shù)的建立通??紤]其經(jīng)濟(jì)性和安全性兩方面。本文從經(jīng)濟(jì)性出發(fā),以有功網(wǎng)損最小為目標(biāo)函數(shù),其表達(dá)是為:
(10)
式中:gij為電導(dǎo)納系數(shù);θij為節(jié)點(diǎn)i到節(jié)點(diǎn)j的電壓角度之差;Ui、Uj為節(jié)點(diǎn)i、j的電壓幅值。
使用MATLAB編程對(duì)IEEE 30節(jié)點(diǎn)系統(tǒng)進(jìn)行仿真。該系統(tǒng)6臺(tái)發(fā)電機(jī)分別為節(jié)點(diǎn)1、2、5、8、11、13;2個(gè)無功補(bǔ)償點(diǎn)分別為10、24;4臺(tái)有載調(diào)壓變壓器為4-12,6-9,6-10,27-28;22個(gè)負(fù)荷節(jié)點(diǎn)?;鶞?zhǔn)容量為100 MVA。節(jié)點(diǎn)接線圖如圖2所示。
圖2 IEEE-30節(jié)點(diǎn)接線圖
參數(shù)設(shè)置:算法最大迭代數(shù)為100,種群數(shù)量為100,其中公雞數(shù)為20,小雞數(shù)為20,母雞數(shù)為60,更新代數(shù)G為10,學(xué)習(xí)因子C為0.6。無功優(yōu)化前讓所有發(fā)電機(jī)電壓取1.0,變壓器變比取1.0,無功補(bǔ)償容量取0,變壓器變比上下限為0.9~1.1,步長為2.5%,無功補(bǔ)償容量上下限為0~0.5,步長為0.1,系統(tǒng)的初始網(wǎng)損為0.078。
改進(jìn)CSO、CSO、PSO、DE對(duì)上述目標(biāo)函數(shù)求最優(yōu)解,得出有功網(wǎng)損和網(wǎng)損降幅以及收斂時(shí)的迭代次數(shù)結(jié)果如表1所示。
表1 4種算法算法的性能比較
從優(yōu)化結(jié)果可以看出,通過對(duì)系統(tǒng)進(jìn)行無功優(yōu)化,改進(jìn)CSO的優(yōu)化效果均好于其算法,改進(jìn)CSO與初始潮流相比,有功網(wǎng)損從0.078降低到了0.062,降低了20.51%。從表1可以看出,改進(jìn)CSO算法的優(yōu)化結(jié)果明顯高于上述其他三種算法,說明了改進(jìn)后的CSO算法跳出局部最優(yōu)的能力大大加強(qiáng)。
在上述目標(biāo)函數(shù)下,改進(jìn)CSO、CSO、PSO、DE的收斂曲線如圖3所示。
通過圖3以及表1可以看出,改進(jìn)CSO算法在迭代次數(shù)為48次時(shí)收斂,得到的最優(yōu)值為0.062。改進(jìn)CSO算法的收斂速度和收斂精度均高于其他算法,說明改進(jìn)CSO算法跳出局部最優(yōu)的能力大大加強(qiáng),收斂速度得到提高。綜上所述,可說明改進(jìn)CSO算法的有效性和可行性。
圖3 4種算法的收斂曲線
本文提出了一種混合策略的雞群算法,引入反向?qū)W習(xí)機(jī)制對(duì)種群進(jìn)行初始化,提高算法的收斂速度。為解決母雞容易陷入局部最優(yōu)的問題,引入柯西變異來提高種群的多樣性,使母雞能跳出局部最優(yōu)。對(duì)小雞引入學(xué)習(xí)因子使其向公雞學(xué)習(xí),防止小雞跟隨母雞陷入局部最優(yōu)。結(jié)合無功優(yōu)化的特點(diǎn),從經(jīng)濟(jì)性出發(fā),以有功網(wǎng)損最小為目標(biāo)函數(shù),使用改進(jìn)的雞群算法對(duì)其進(jìn)行求解。算例結(jié)果表明,改進(jìn)雞群算法的收斂精度和收斂速度均高于其他算法。接下來的研究方向是拓展改進(jìn)雞群算法在多目標(biāo)函數(shù)的應(yīng)用。