劉 珍, 孫京誥
(華東理工大學(xué)信息科學(xué)與工程學(xué)院,上海 200237)
一種改進(jìn)的細(xì)菌覓食優(yōu)化算法
劉珍,孫京誥
(華東理工大學(xué)信息科學(xué)與工程學(xué)院,上海 200237)
摘要:針對(duì)細(xì)菌覓食優(yōu)化算法存在收斂速度慢、尋優(yōu)精度低、易陷入局部最優(yōu)等缺點(diǎn),提出了一種改進(jìn)的細(xì)菌覓食優(yōu)化算法。改進(jìn)原有固定步長(zhǎng)的游動(dòng)方式,引入自適應(yīng)步長(zhǎng)調(diào)整策略,提出了基于非線性遞減的余弦自適應(yīng)步長(zhǎng);改進(jìn)細(xì)菌位置的更新方式,借鑒人工蜂群的方法,采用混合的更新方式;改進(jìn)優(yōu)勝劣汰的選擇標(biāo)準(zhǔn),保留最優(yōu)個(gè)體,對(duì)復(fù)制后的父代個(gè)體引入雜交算子;改進(jìn)遷徙方式,提出種群進(jìn)化因子,防止進(jìn)化停滯不前。將本文算法用于經(jīng)典函數(shù)以及PID參數(shù)整定測(cè)試,仿真實(shí)驗(yàn)結(jié)果驗(yàn)證了該算法的有效性。
關(guān)鍵詞:細(xì)菌覓食優(yōu)化算法; 自適應(yīng)步長(zhǎng); 位置更新方式; 雜交算子; 種群進(jìn)化因子
20世紀(jì)40年代以來,實(shí)際工程問題呈現(xiàn)出越來越多的復(fù)雜性,包括多極值、強(qiáng)非線性、多約束性和高維度等。傳統(tǒng)的優(yōu)化方法已經(jīng)不能解決諸多實(shí)際生產(chǎn)、生活中所面臨的復(fù)雜問題,智能優(yōu)化算法應(yīng)運(yùn)而生。細(xì)菌覓食優(yōu)化算法[1]作為一種新型的智能優(yōu)化算法具有良好的全局優(yōu)化能力、魯棒性強(qiáng)以及算法簡(jiǎn)單等優(yōu)點(diǎn),受到了不同領(lǐng)域的關(guān)注[2-4]。
針對(duì)步長(zhǎng)固定的問題,Chen等[5]提出了自適應(yīng)搜索的細(xì)菌覓食優(yōu)化算法;劉小龍等[6]提出了靈敏度的概念,對(duì)細(xì)菌的游動(dòng)步長(zhǎng)加以調(diào)節(jié);Niu等[7-8]在驗(yàn)證了步長(zhǎng)大小的選取對(duì)全局收斂的快速性和全局最優(yōu)解的獲得具有重要影響的基礎(chǔ)上,提出了線性遞減與指數(shù)非線性遞減的自適應(yīng)步長(zhǎng);Mishra[9]提出了基于TS模糊機(jī)制來選取最優(yōu)步長(zhǎng)。算法融合方面,Biswas等[10]提出了一種基于差分算法和BFO(Bacterial Foraging Optimization)算法的混合全局優(yōu)化算法,除此之外,與BFO算法相結(jié)合的算法還有粒子群算法[11]、遺傳算法[12]等。細(xì)菌覓食算法已經(jīng)在電氣控制、模式識(shí)別、生產(chǎn)調(diào)度等方面得到廣泛應(yīng)用。
本文針對(duì)細(xì)菌覓食優(yōu)化算法存在收斂速度慢、尋優(yōu)精度低、易陷入局部最優(yōu)等缺點(diǎn),改進(jìn)了原有固定步長(zhǎng)的前進(jìn)方式,引入了自適應(yīng)步長(zhǎng)調(diào)整策略;位置更新方面,借鑒蜂群的方法,采用了混合的更新方式;改進(jìn)了復(fù)制操作中優(yōu)勝劣汰的選擇機(jī)制,并對(duì)復(fù)制后除當(dāng)前最優(yōu)父代外的其他父代細(xì)菌除引入了交叉算子;在遷徙操作中引入了種群進(jìn)化因子,提出了一種改進(jìn)的細(xì)菌覓食優(yōu)化算法用于經(jīng)典函數(shù)以及PID參數(shù)整定測(cè)試,仿真實(shí)驗(yàn)結(jié)果驗(yàn)證了該算法的有效性。
1細(xì)菌覓食優(yōu)化算法
1.1概述
細(xì)菌覓食優(yōu)化算法是根據(jù)大腸桿菌的覓食行為提出的。大腸桿菌根據(jù)所處的環(huán)境來改變身體表面鞭毛的旋轉(zhuǎn)方向,使其進(jìn)行翻轉(zhuǎn)與游動(dòng),以期尋找到豐富的食物源,避開有毒區(qū)域。
同其他細(xì)菌一樣,經(jīng)過一段時(shí)間后,根據(jù)優(yōu)勝劣汰的自然選擇機(jī)制,部分大腸桿菌會(huì)淘汰、消亡,而存留下來的大腸桿菌會(huì)進(jìn)行自我繁殖。此外,所處環(huán)境的變化,也會(huì)導(dǎo)致該區(qū)域細(xì)菌的消亡或增生。細(xì)菌游動(dòng)和翻轉(zhuǎn)如圖1所示。
圖1 細(xì)菌游動(dòng)和翻轉(zhuǎn)示意圖
通過模擬大腸桿菌的覓食行為,細(xì)菌覓食優(yōu)化算法主要由趨向性操作、復(fù)制操作和遷徙操作組成。
1.2趨向性操作
趨向性操作是算法的核心操作,模擬的是大腸桿菌游動(dòng)和翻轉(zhuǎn)的覓食行為。在環(huán)境較差的區(qū)域,細(xì)菌會(huì)翻轉(zhuǎn)得比較頻繁,而在環(huán)境較好的區(qū)域,細(xì)菌則會(huì)較多地游動(dòng)。設(shè)細(xì)菌的種群規(guī)模為S,維度為n,則細(xì)菌i的位置用維度為n的向量表示。細(xì)菌覓食優(yōu)化算法采用隨機(jī)初始化的方式初始化細(xì)菌的位置,初始化公式如下:
(1)
細(xì)菌i的趨向性操作可用式(2)、式(3)表示:
θ(i,j+1,k,l)=θ(i,j,k,l)+C(i)×φ(i,j)
(2)
(3)
其中:θ(i,j,k,l)表示細(xì)菌i在第j次趨向性操作、第k次復(fù)制操作和第l次遷徙操作時(shí)的位置,代表著所在優(yōu)化區(qū)間內(nèi)的一個(gè)可行解;C(i)為細(xì)菌i的趨向性步長(zhǎng);φ(i)為細(xì)菌i翻轉(zhuǎn)時(shí)在隨機(jī)方向上的一個(gè)隨機(jī)單位方向向量;Δ(i)為一個(gè)隨機(jī)向量。
1.3復(fù)制操作
根據(jù)優(yōu)勝劣汰的自然機(jī)理,經(jīng)過一段時(shí)間后,覓食能力弱的細(xì)菌最終會(huì)被淘汰,而覓食能力強(qiáng)的細(xì)菌則會(huì)繁衍后代,維持種群的規(guī)模。通過模擬此現(xiàn)象,提出了復(fù)制操作。
根據(jù)細(xì)菌覓食能力的強(qiáng)弱,選擇適當(dāng)?shù)脑u(píng)價(jià)指標(biāo)函數(shù),即適應(yīng)度函數(shù)。通過對(duì)細(xì)菌i在趨向性操作中經(jīng)歷的所有位置的適應(yīng)度總和進(jìn)行優(yōu)劣排序,淘汰排在后面的占50%種群數(shù)的細(xì)菌。對(duì)于保留下來的細(xì)菌進(jìn)行復(fù)制操作,各自生成的新個(gè)體與自身完全相同,具有相同的覓食能力、相同的位置。復(fù)制操作維持了種群規(guī)模的不變性。
1.4遷徙操作
當(dāng)細(xì)菌所處周圍環(huán)境由于各種原因而突然發(fā)生變化或者逐漸改變時(shí),可能會(huì)使此局部區(qū)域的細(xì)菌群集體死亡或集體遷移。通過模擬此現(xiàn)象,提出了遷徙操作。
遷徙操作以一定的概率發(fā)生,當(dāng)細(xì)菌個(gè)體滿足遷徙發(fā)生的概率時(shí),則這個(gè)細(xì)菌個(gè)體死亡,并在解空間的任意位置上隨機(jī)產(chǎn)生一個(gè)新的個(gè)體,這個(gè)細(xì)菌個(gè)體可能會(huì)擁有與原細(xì)菌不同的細(xì)菌覓食能力,有利于跳出局部最優(yōu)解,促進(jìn)全局最優(yōu)解的尋找。設(shè)遷徙概率為Ped,種群規(guī)模為S,則細(xì)菌遷徙操作的流程如圖2所示。
設(shè)細(xì)菌執(zhí)行趨向性操作、復(fù)制操作和遷徙操作的次數(shù)分別為Nc、Nre、Ned,用參數(shù)j、k、l分別對(duì)其計(jì)數(shù),計(jì)數(shù)參數(shù)初始時(shí)設(shè)置為0,細(xì)菌覓食優(yōu)化算法的流程圖如圖3所示。
2改進(jìn)的細(xì)菌覓食算法
2.1概述
針對(duì)BFO算法收斂速度慢、易陷入局部最優(yōu)的缺點(diǎn),本文提出ABFO(Adaptive Bacterial Foraging Optimization)算法,從以下幾個(gè)方面改進(jìn)BFO算法:
圖2 遷徙操作流程圖
圖3 細(xì)菌覓食優(yōu)化算法流程圖
(1)改進(jìn)趨向性操作。引入自適應(yīng)策略,將固定步長(zhǎng)改為自適應(yīng)步長(zhǎng),隨著迭代次數(shù)的增加而減少,同時(shí)借鑒蜂群的方法,采用混合的位置更新方式對(duì)細(xì)菌進(jìn)行趨化操作。
(2)改進(jìn)復(fù)制操作。改進(jìn)優(yōu)勝劣汰的選擇機(jī)制,根據(jù)細(xì)菌當(dāng)前適應(yīng)度值的優(yōu)劣進(jìn)行排序,同時(shí)對(duì)于復(fù)制后的半數(shù)細(xì)菌,保留其中的精英個(gè)體,并對(duì)此半數(shù)細(xì)菌剩下的細(xì)菌引進(jìn)交叉算子。
(3)改進(jìn)遷徙操作。引入種群進(jìn)化因子,防止種群進(jìn)化不前,陷入局部最優(yōu)。
2.2趨向性操作的改進(jìn)
2.2.1趨向性步長(zhǎng)的改進(jìn)步長(zhǎng)的選擇對(duì)于細(xì)菌覓食優(yōu)化算法的性能有直接的影響,較大的步長(zhǎng)易于全局搜索、尋找最優(yōu)解,但精度不夠,可能會(huì)由于步長(zhǎng)過大而錯(cuò)失全局最優(yōu)解;較小的步長(zhǎng)可以提高精度,但全局收斂速度慢,同時(shí)也可能會(huì)陷入局部最優(yōu);固定的步長(zhǎng)難以平衡全局搜索與局部搜索的要求。因此,為了配合BFO算法初期的全局搜索以及后期的局部搜索對(duì)步長(zhǎng)的要求,本文提出了一種基于余弦的自適應(yīng)步長(zhǎng),改進(jìn)原有的固定步長(zhǎng)。由于余弦函數(shù)在區(qū)間(0,π)的函數(shù)值是遞減的,步長(zhǎng)C隨著迭代次數(shù)的增加而非線性遞減,使得算法在初期以較大的步長(zhǎng)進(jìn)行全局搜索,縮小最優(yōu)解可能所在的區(qū)域,在算法后期則用較小的步長(zhǎng)對(duì)縮小的區(qū)域范圍進(jìn)行局域搜索,這一規(guī)律與覓食行為相符合?;谟嘞业淖赃m應(yīng)步長(zhǎng)C的計(jì)算公式如下:
(4)
其中:Cmin≤C≤Cmax;gen為當(dāng)前迭代次數(shù);genm為最大迭代次數(shù)。
2.2.2位置更新方式的改進(jìn)算法的融合是算法改進(jìn)的重要方向,細(xì)菌覓食算法和人工蜂群算法具有不同的產(chǎn)生新個(gè)體的方式,擁有不同的尋優(yōu)效果,本文借鑒蜂群算法,采用混合的位置更新方式來更新細(xì)菌的位置。假設(shè)種群規(guī)模為S,其中的半數(shù)細(xì)菌s1按照原BFO算法中的方式更新位置,剩下的半數(shù)細(xì)菌s2則按照人工蜂群的更新方式更新位置。因此,菌群s1、s2的位置更新方式分別為式(5)、式(6)。θ(i,j+1,k,l)=θ(i,j,k,l)+C×φ(i,j)
(5)
θ(i,j+1,k,l)=
θ(i,j,k,l)+rand×(θ(i,j,k,l)-θ(r,j,k,l))
(6)
其中:r為在當(dāng)前種群S中隨機(jī)選擇的一個(gè)不等于i的細(xì)菌,即r≠i,且r∈{1,2,…,S}。式(6)中θ(i,j,k,l)-θ(r,j,k,l)在本質(zhì)上相當(dāng)于步長(zhǎng)向量,隨著迭代次數(shù)的增加,搜索空間縮小,θ(i,j,k,l)與θ(r,j,k,l)之間的距離減小,即步長(zhǎng)向量長(zhǎng)度減小,步長(zhǎng)的動(dòng)態(tài)調(diào)整有利于算法精度的提高。采用不同的更新方式,使得細(xì)菌位置更新得多樣化,又不失去算法分析的合理性?;旌系母路绞接欣诜N群多樣化的保持以及最優(yōu)解的獲得。
此外,為了防止進(jìn)化停滯,加強(qiáng)細(xì)菌趨向性的有效性,引入相應(yīng)的計(jì)數(shù)參數(shù)trail,用于記錄個(gè)體位置連續(xù)未得到改善的次數(shù),當(dāng)細(xì)菌對(duì)應(yīng)的trail達(dá)到一定的數(shù)值時(shí),根據(jù)迭代次數(shù),對(duì)該細(xì)菌的位置進(jìn)行重新初始化或擾動(dòng)。
2.3復(fù)制操作的改進(jìn)
原有的BFO算法是對(duì)細(xì)菌趨向性操作經(jīng)過的所有位置的適應(yīng)度值的和進(jìn)行優(yōu)劣排序,由于細(xì)菌位置是在趨向性操作下逐步加強(qiáng)改善的,是細(xì)菌所經(jīng)歷的歷史最優(yōu)值,細(xì)菌的當(dāng)前位置更能反映細(xì)菌的覓食能力,而且采用細(xì)菌的當(dāng)前位置能夠降低算法的復(fù)雜度,因此,本文采用當(dāng)前細(xì)菌位置的適應(yīng)度值進(jìn)行優(yōu)劣排序,對(duì)優(yōu)秀的半數(shù)細(xì)菌S/2進(jìn)行復(fù)制,復(fù)制后的子代替換原細(xì)菌種群中較差的S/2細(xì)菌。
由于復(fù)制后的新種群規(guī)模為S的細(xì)菌群中,每個(gè)父代都有一個(gè)與其相同的子代,降低了種群的多樣性。因此,為了增加種群的多樣性以及防止最優(yōu)個(gè)體的丟失,本文對(duì)父代個(gè)體(除了最優(yōu)父代外)引入了雜交算子,與最優(yōu)個(gè)體進(jìn)行雜交,雜交公式如下:
(7)
2.4遷徙操作的改進(jìn)
遷徙操作的存在有利于跳出局部最優(yōu)解,尋找全局最優(yōu)解。BFO算法按照給定的固定概率進(jìn)行遷徙,沒有考慮種群的進(jìn)化情況。根據(jù)種群的進(jìn)化情況進(jìn)行遷徙,有利于算法尋優(yōu)的有效性。當(dāng)種群進(jìn)化程度較快時(shí),種群群體處在快而有效的尋優(yōu)狀態(tài),以較低的遷徙概率進(jìn)行遷徙,可以保留當(dāng)前有利的位置信息;當(dāng)種群進(jìn)化程度較慢時(shí),種群群體很大程度上陷入了局部最優(yōu),需要以較高的遷徙概率進(jìn)行遷徙,跳出局部最優(yōu)解,防止種群進(jìn)化不前。本文改進(jìn)了原有BFO算法中的遷徙操作,引入了種群進(jìn)化因子f。
(8)
其中:fgen代表第gen代的最優(yōu)適應(yīng)度值;rand作用是防止分母為0。當(dāng)f=0時(shí),進(jìn)化停滯;當(dāng)0
2.5ABFO算法流程
(1) 初始化參數(shù),生成初始種群
(2) Forl=ltoNedDo
(3)Fork=ktoNreDo
(4) Forj=jtoNcDo
(5)Fori=itos1Do
(6) 自適應(yīng)步長(zhǎng),細(xì)菌位置原更新方式
(7)End For
(8)Fori=s1+1 toSDo
(9) 自適應(yīng)步長(zhǎng),細(xì)菌位置新更新方式
(10)End For
(11) End For
(12) 改進(jìn)的復(fù)制操作
(13) End For
(14) 基于種群進(jìn)化因子的遷徙操作
(15)End For
3仿真實(shí)驗(yàn)與分析
3.1函數(shù)測(cè)試
本文采用表1所示的8個(gè)標(biāo)準(zhǔn)測(cè)試函數(shù)對(duì)BFO、DBFO[13]以及ABFO的性能分別進(jìn)行測(cè)試對(duì)比。這些函數(shù)的全局最優(yōu)解采用常規(guī)的方法通常較難獲得,而且隨著函數(shù)維數(shù)的升高,優(yōu)化難度會(huì)急劇增加。
表1 標(biāo)準(zhǔn)測(cè)試函數(shù)
本文算法的參數(shù)選取參考文獻(xiàn)[13],將測(cè)試函數(shù)的維度設(shè)為30,細(xì)菌種群規(guī)模為40,固定步長(zhǎng)為0.01×區(qū)間長(zhǎng)度,趨化次數(shù)Nc=40,游動(dòng)次數(shù)Ns=5,復(fù)制次數(shù)Nre=5,遷徙次數(shù)Ned=5,遷徙概率Ped=0.25。BFO、DBFO和ABFO 3種算法在每個(gè)測(cè)試函數(shù)上的運(yùn)行次數(shù)均為20次。測(cè)試結(jié)果的精度達(dá)到10-15等級(jí)時(shí),以0代替,測(cè)試結(jié)果見表2。BFO、DBFO以及ABFO 3種算法的運(yùn)行時(shí)間經(jīng)四舍五入保留一位小數(shù)點(diǎn)后的數(shù)據(jù)如表3所示。其中,DBFO算法在表中的實(shí)驗(yàn)結(jié)果均參照文獻(xiàn)[13],由于原文獻(xiàn)并未給出標(biāo)準(zhǔn)差,因此,本文在此項(xiàng)中用*號(hào)表示。
表2 函數(shù)測(cè)試運(yùn)行結(jié)果
由表2可以看出,在8個(gè)標(biāo)準(zhǔn)測(cè)試函數(shù)中,除了ABFO與DBFO算法對(duì)于測(cè)試函數(shù)f2所求得的最優(yōu)解持平之外,ABFO算法所求得的最優(yōu)解均優(yōu)于DBFO算法和BFO 算法,并且在易陷入早熟收斂的Rosenbrock函數(shù)f5、較難獲得全局最優(yōu)解的Rastrigrin函數(shù)f6和Acklley函數(shù)f7中,ABFO算法的最優(yōu)解精度達(dá)到了0,提高了尋優(yōu)精度和尋找全局最優(yōu)解的能力,突破了BFO算法易陷入局部最優(yōu)解的缺點(diǎn)。但是由最差解和平均解可知,ABFO算法尋優(yōu)的整體水平還有待提高。
由表3可知,ABFO算法的時(shí)間復(fù)雜度最低、收斂速度最快。在DBFO算法中,由于雙種群的存在,其種群規(guī)模為80,若將其時(shí)間折半,考慮到趨向性操作中最大游動(dòng)步數(shù)的存在,可以認(rèn)為DBFO算法運(yùn)行所需要的時(shí)間與BFO算法運(yùn)行所需要的時(shí)間相差無幾,具有相同的時(shí)間復(fù)雜度。
算法的收斂性是檢測(cè)算法性能的重要指標(biāo),選取測(cè)試函數(shù)f7、f8加以測(cè)試。算法收斂性能曲線如圖4所示。測(cè)試結(jié)果表明,本文的改進(jìn)算法針對(duì)測(cè)試函數(shù)f7、f8最優(yōu)解的尋優(yōu)均能較快收斂,驗(yàn)證了算法的收斂性能。
由表2、表3可知,本文改進(jìn)的ABFO算法無論在尋優(yōu)精度、運(yùn)行速度,還是全局優(yōu)化能力方面,均優(yōu)于BFO算法和DBFO算法。圖4所示的收斂性能測(cè)試曲線也表明了該算法良好的收斂性能。函數(shù)測(cè)試的仿真實(shí)驗(yàn)結(jié)果表明ABFO算法的有效性。
3.2應(yīng)用實(shí)例
PID控制器是目前應(yīng)用最為廣泛的控制器,PID控制器的參數(shù)整定是控制系統(tǒng)設(shè)計(jì)的核心內(nèi)容。PID控制系統(tǒng)框圖如圖5所示。
表3 函數(shù)測(cè)試運(yùn)行時(shí)間
圖4 算法收斂性能測(cè)試曲線
圖5 PID控制系統(tǒng)框圖
圖中,r(t)為系統(tǒng)輸入;e(t)為系統(tǒng)偏差,也為控制器輸入;u(t)為控制器輸出;y(t)為系統(tǒng)輸出。設(shè)PID控制的傳遞函數(shù)C(s)的表示形式為
(9)
其中,Kp、Ti、Td分別表示比例系數(shù)、積分時(shí)間常數(shù)和微分時(shí)間常數(shù),三者都是可調(diào)的參數(shù)。PID控制器的輸出信號(hào)u(t)為
(10)
參照文獻(xiàn)[2],選取被控對(duì)象的傳遞函數(shù)G(s)為
(11)
本文將BFO算法、DBFO算法、ABFO算法分別用于PID參數(shù)整定。PID參數(shù)的優(yōu)化整定就是在Kp、Ti、Td的可行域內(nèi)尋找到一組控制參數(shù),在滿足系統(tǒng)穩(wěn)定的前提下,使選取的性能指標(biāo)最優(yōu)[14],使系統(tǒng)擁有較優(yōu)的控制品質(zhì)[15]。針對(duì)BFO算法、DBFO算法以及ABFO算法,本文選取常用的性能指標(biāo)ITAE作為優(yōu)化算法的適應(yīng)度評(píng)價(jià)函數(shù)J,如式(12)所示。
(12)
BFO算法、DBFO算法、ABFO算法整定PID控制器的框圖如圖6所示。
圖6 BFO、DBFO、ABFO優(yōu)化PID系統(tǒng)框圖
本文采用MATLAB軟件進(jìn)行仿真。在simulink仿真實(shí)驗(yàn)中,采用單位階躍函數(shù)作為系統(tǒng)輸入,設(shè)置simulink系統(tǒng)模塊仿真時(shí)間為10 s。優(yōu)化算法通過調(diào)用simulink系統(tǒng)模塊,將尋優(yōu)參數(shù)賦值給系統(tǒng)模塊,經(jīng)過系統(tǒng)每次仿真得出結(jié)果,計(jì)算系統(tǒng)性能評(píng)價(jià)函數(shù),根據(jù)得出的性能評(píng)價(jià)函數(shù)來指導(dǎo)算法的尋優(yōu),如此循環(huán)往復(fù),直到達(dá)到算法的最大迭代次數(shù),算法尋優(yōu)結(jié)束,從而得出一組最優(yōu)的PID參數(shù)。
在PID參數(shù)整定優(yōu)化中,BFO算法、DBFO算法以及ABFO算法的基本參數(shù)設(shè)置為:種群規(guī)模S=20,維度n=3,Ns=5,Ped=0.25。根據(jù)算法參數(shù)對(duì)算法性能的影響,選取Nc、Nre、Ned3個(gè)參數(shù)為三因素,選用正交表L9(34)安排試驗(yàn)。通過正交試驗(yàn),得出三參數(shù)在BFO、DBFO、ABFO中取值的優(yōu)化方案分別為(15,4,4)、(15,2,6)、(15,4,6)。PID參數(shù)整定方法有很多,為了更好地測(cè)試ABFO算法的PID參數(shù)整定效果,本文還加入了工程整定方法中的衰減曲線法進(jìn)行PID參數(shù)整定。
BFO、DBFO、ABFO算法分別運(yùn)行10次所得的PID控制系統(tǒng)參數(shù),以及衰減曲線法所得到的控制系統(tǒng)參數(shù)如表4所示,相應(yīng)的單位階躍響應(yīng)曲線如圖7所示。其中,J、Jm、Jw分別表示算法在運(yùn)行的10次中所求得的適應(yīng)度值的最優(yōu)值、平均值和最差值;算法BFO、DBFO、ABFO中的Kp、Ti、Td為最優(yōu)適應(yīng)度J時(shí)相應(yīng)的值,σ、tr、ts分別表示相應(yīng)的超調(diào)量、上升時(shí)間、穩(wěn)定時(shí)間。
表4 控制系統(tǒng)參數(shù)
圖7 階躍響應(yīng)曲線
由表4及圖7可知,ABFO算法尋優(yōu)所得的評(píng)價(jià)函數(shù)的適應(yīng)度值最好,DBFO算法次之;衰減曲線法整定PID參數(shù)時(shí),所得系統(tǒng)階躍響應(yīng)的超調(diào)量最大,穩(wěn)定時(shí)間最長(zhǎng),而ABFO算法的穩(wěn)定時(shí)間最短,與DBFO算法相當(dāng);ABFO算法所得系統(tǒng)的階躍響應(yīng)速度與DBFO、BFO算法相當(dāng),僅次于衰減曲線法的響應(yīng)速度。因此,在PID整定方面,相比于BFO算法、DBFO算法以及衰減曲線法,ABFO算法對(duì)控制器參數(shù)整定的綜合控制效果最好,具有更好的控制品質(zhì)。
為了進(jìn)一步驗(yàn)證ABFO算法的性能,本文在PID參數(shù)整定過程中加入了一個(gè)干擾,采用幅值為0.2的階躍信號(hào)作為擾動(dòng)信號(hào),并在20 s時(shí)開始對(duì)系統(tǒng)進(jìn)行干擾。將BFO算法、DBFO算法、ABFO算法以及衰減曲線法用于具有擾動(dòng)系統(tǒng)的PID參數(shù)整定,算法尋優(yōu)所得的最優(yōu)解及相應(yīng)的性能指標(biāo)如表5所示,其相應(yīng)的系統(tǒng)階躍響應(yīng)曲線如圖8所示。
表5 基于擾動(dòng)的控制系統(tǒng)參數(shù)
由表5及圖8可知,ABFO算法求得的適應(yīng)度值性能指標(biāo)的最優(yōu)值和平均值均最小,DBFO算法次之,BFO算法最差;當(dāng)系統(tǒng)具有擾動(dòng)時(shí),用衰減曲線法求解的PID參數(shù)整定效果依然最差;ABFO算法、DBFO算法、BFO算法相對(duì)應(yīng)系統(tǒng)的階躍響應(yīng)曲線相差無幾。因此,對(duì)具有輸出擾動(dòng)的系統(tǒng)進(jìn)行PID參數(shù)整定時(shí),ABFO算法依然具有最好的綜合控制性能。
圖8 基于擾動(dòng)的階躍響應(yīng)曲線
4結(jié)論
本文通過對(duì)BFO算法的介紹與分析,針對(duì)其收斂速度慢、尋優(yōu)精度低以及易陷入局部最優(yōu)解的特點(diǎn),改進(jìn)了BFO算法。在趨向性操作中,將固定步長(zhǎng)改為隨迭代次數(shù)增加而逐漸減少的自適應(yīng)步長(zhǎng),提高了算法的局部搜索能力,同時(shí)改進(jìn)了細(xì)菌位置的更新方式,采用了混合的位置更新方式,有利于種群的多樣性的保持;在復(fù)制操作中,按照細(xì)菌當(dāng)前位置的適應(yīng)度值排序,替代原BFO算法趨向性操作中所有的適應(yīng)度和排序,減少了算法的復(fù)雜度,并更加準(zhǔn)確地反映了細(xì)菌覓食的能力,同時(shí)在保留最優(yōu)個(gè)體的情況下,對(duì)復(fù)制后的父代引入雜交算子,提高了種群的多樣性;在遷徙操作中,引入種群進(jìn)化因子,替代固定的遷徙概率,有利于細(xì)菌尋優(yōu)的有效性,防止種群進(jìn)化停滯不前。函數(shù)仿真測(cè)試以及PID參數(shù)整定的仿真實(shí)驗(yàn)結(jié)果表明,本文提出的改進(jìn)的細(xì)菌覓食優(yōu)化算法(ABFO算法),提高了尋優(yōu)精度、收斂速度以及全局尋優(yōu)的能力。
參考文獻(xiàn):
[1]PASSINO K M.Biomimicry of bacterial foraging for distributed optimization and control[J].IEEE Control System Magazine,2002,22(3):52-67.
[2]呂振,沈建國(guó).改進(jìn)的細(xì)菌覓食優(yōu)化算法[J].計(jì)算機(jī)系統(tǒng)應(yīng)用,2014,23(5):182-187.
[3]周雅蘭.細(xì)菌覓食優(yōu)化算法的研究與應(yīng)用[J].計(jì)算機(jī)工程與應(yīng)用,2010,46(20):16-21.
[4]李娜,雷秀娟.細(xì)菌覓食優(yōu)化算法的研究進(jìn)展[J].計(jì)算機(jī)技術(shù)與發(fā)展,2014,24(8):39-44.
[5]CHEN Hanning,ZHU Yunlong,HU Kunyuan.Self-adaptation in bacterial foraging optimization algorithm[C]//2008 3th International Conference on Intelligent System and Knowledge Engineering(ISKE 2008).Xiamen:IEEE,2008:1026-1031.
[6]劉小龍,趙奎領(lǐng).基于免疫算法的細(xì)菌覓食優(yōu)化算法[J].計(jì)算機(jī)應(yīng)用,2012,32(3):634-637.
[7]NIU Ben,FAN Yan,ZHAO Pei.A novel bacterial foraging optimizer with linear decreasing Chemotaxis step[C]//2nd International Workshop on Intelligent Systems and Applications (ISA).Wuhan:IEEE,2010:1-4.
[8]NIU Ben,WANG Jingwen,WANG Hong.Bacterial-inspired algorithms for solving constrained optimization problems[J].Neurocomputing,2015,148(9):54-62.
[9]MISHRA S.A hybrid least square-fuzzy bacterial foraging strategy for harmonic estimation[J].IEEE Transaction on Evolutionary Computation,2005,9(1):6l-73.
[10]BISWAS A,DASGUPTA S,DAS S,etal.A synergy of differential evolution and bacterial foraging algorithm for global optimization[J].Neural Network World,2007,17(6):607-626.
[11]田亞菲,張范勇,閻石.基于粒子群優(yōu)化的細(xì)菌覓食優(yōu)化算法[J].控制工程,2012,19(6):993-996.
[12]KIM D H,ABRAHAM A,CHO J H.A hybrid genetic algorithm and bacterial foraging approach for global optimization[J].Information Sciences,2007,177(18):3918-3937.
[13]姜建國(guó),周佳薇,鄭迎春,等.一種雙菌群細(xì)菌覓食優(yōu)化算法[J].深圳大學(xué)學(xué)報(bào)(理工版),2014,31(1):43-51.
[14]湛鋒,魏星,郭建全,等.基于改進(jìn)粒子群優(yōu)化算法的PID參數(shù)整定[J].繼電器,2005,33(19):23-27.
[15]任子武,傘冶,陳俊風(fēng).改進(jìn)PSO算法及在PID參數(shù)整定中應(yīng)用研究[J].系統(tǒng)仿真學(xué)報(bào),2006,18(10):2870-2873.
An Improved Bacterial Foraging Optimization Algorithm
LIU Zhen,SUN Jing-gao
(School of Information Science and Engineering,East China University of Science and Technology,Shanghai 200237,China)
Abstract:Aiming at the shortcomings in bacterial foraging optimization algorithm,e.g.,slower convergence speed,lower precision,easily falling into the local optimal solution,this paper proposes an improved bacterial foraging optimization algorithm.The fixed step adjusting is replaced by an adaptive step adjusting strategy via decreasing nonlinearly.By means of the idea of artificial bee colony,a mixed updating method on the bacterial position is introduced.The fittest selection criterion is improved and the crossover operator is introduced into the reproduced parents while retaining the best individual.The population evolution factor is proposed in order to prevent the stop of the evolution.Finally,the proposed algorithm is tested on the classic functions and the tuning of PID parameters,which shows their effectiveness.
Key words:bacterial foraging optimization algorithm; adaptive step;position update mode; crossover operator; population evolution factor
收稿日期:2015-03-19
作者簡(jiǎn)介:劉珍(1989-),女,山東人,碩士生,研究方向?yàn)榧?xì)菌覓食優(yōu)化算法與控制理論。E-mail:liuzhen10704@163.com 通信聯(lián)系人:孫京誥,E-mail:sunjinggao@126.com
文章編號(hào):1006-3080(2016)02-0225-08
DOI:10.14135/j.cnki.1006-3080.2016.02.012
中圖分類號(hào):TP273
文獻(xiàn)標(biāo)志碼:A