宋 鈺,石立寶
電力系統(tǒng)國(guó)家重點(diǎn)實(shí)驗(yàn)室深圳研究室(清華大學(xué)深圳國(guó)際研究生院),廣東 深圳 518055
布谷鳥(niǎo)算法(Cuckoo Search algorithm,CS)是由學(xué)者Yang X S 和Deb S 于2009 年提出的一種智能優(yōu)化算法,算法提出的靈感來(lái)源于自然界布谷鳥(niǎo)的寄生性育雛行為[1]。相比于其他智能優(yōu)化算法,CS具有控制參數(shù)少、算法易實(shí)現(xiàn)、尋優(yōu)路徑優(yōu)以及全局搜索能力強(qiáng)的優(yōu)點(diǎn)[2],近年來(lái)被廣泛應(yīng)用于優(yōu)化[3-4]、預(yù)測(cè)[5-6]以及圖像去噪[7]等領(lǐng)域。學(xué)者們針對(duì)布谷鳥(niǎo)算法展開(kāi)了系統(tǒng)而深入的研究。文獻(xiàn)[8]通過(guò)馬爾科夫鏈模型證明了布谷鳥(niǎo)算法的收斂性。為克服布谷鳥(niǎo)算法后期收斂速度變慢、搜索能力降低的缺點(diǎn),一些學(xué)者提出將布谷鳥(niǎo)算法與其他智能優(yōu)化算法相結(jié)合,充分利用兩種算法的優(yōu)點(diǎn)以獲得更佳的求解效果[9-11]。另外一些學(xué)者則致力于提升布谷鳥(niǎo)算法本身的性能。2011 年Valian E 等人提出了一種基于自適應(yīng)機(jī)制的布谷鳥(niǎo)算法,通過(guò)動(dòng)態(tài)改變布谷鳥(niǎo)算法中的參數(shù)提高了算法的局部和全局搜索能力,進(jìn)而提升了算法的計(jì)算精度和收斂速度[12]。此后,國(guó)內(nèi)外學(xué)者分別提出了多種動(dòng)態(tài)改變布谷鳥(niǎo)算法參數(shù)的自適應(yīng)機(jī)制。其中,部分研究依據(jù)當(dāng)前迭代次數(shù)來(lái)改變?cè)摯蔚懈鲄?shù)的大小[12-14],另一些研究則依據(jù)每次迭代中各解的好壞來(lái)改變本次迭代中各解相應(yīng)的參數(shù)[15-17]。這些研究在一定程度都取得了較好的改進(jìn)效果。
本文首先簡(jiǎn)述了布谷鳥(niǎo)算法的基本原理。為了進(jìn)一步提高布谷鳥(niǎo)算法的計(jì)算精度和收斂速度,本文在已有研究成果基礎(chǔ)上提出了一種新的自適應(yīng)布谷鳥(niǎo)算法。該算法可依據(jù)解的好壞來(lái)控制其發(fā)現(xiàn)概率的大小,并在運(yùn)算初期依據(jù)迭代次數(shù)、解的好壞、種群規(guī)模和總迭代次數(shù)動(dòng)態(tài)改變步長(zhǎng),在運(yùn)算后期,不考慮迭代次數(shù)、種群規(guī)模的影響,僅依據(jù)解的好壞動(dòng)態(tài)改變步長(zhǎng)。最后,本文利用仿真實(shí)驗(yàn)對(duì)比了所提算法與其他算法的求解效果,證明了所提算法的優(yōu)越性。
布谷鳥(niǎo)算法的靈感源于布谷鳥(niǎo)的育雛行為。一些布谷鳥(niǎo)會(huì)將自己的蛋產(chǎn)入云雀、黃鶯等宿主鳥(niǎo)的巢中,讓它們代替自己育雛。由于布谷鳥(niǎo)蛋與宿主鳥(niǎo)蛋外表相似,往往不易被宿主鳥(niǎo)發(fā)現(xiàn)。當(dāng)宿主鳥(niǎo)沒(méi)有發(fā)現(xiàn)布谷鳥(niǎo)蛋時(shí),它會(huì)同時(shí)孵化布谷鳥(niǎo)蛋和自己的蛋。由于布谷鳥(niǎo)蛋的孵化時(shí)間短于宿主鳥(niǎo)蛋,先孵化的布谷鳥(niǎo)幼雛本能地破壞鳥(niǎo)巢中的其他鳥(niǎo)蛋以獲取更多的資源。當(dāng)宿主鳥(niǎo)發(fā)現(xiàn)布谷鳥(niǎo)蛋時(shí),它會(huì)拋出布谷鳥(niǎo)蛋或放棄整個(gè)鳥(niǎo)巢并選擇其他地方重新筑巢。為了簡(jiǎn)化和模擬布谷鳥(niǎo)的育雛行為,學(xué)者Yang X S 和Deb S 提出了以下三條理想規(guī)則。
規(guī)則1每只布谷鳥(niǎo)每次只產(chǎn)一個(gè)蛋,并隨機(jī)選擇一個(gè)寄生巢來(lái)放置。
規(guī)則2在隨機(jī)選擇的一組寄生巢中,最好的寄生巢會(huì)被保留到下一代。
規(guī)則3可利用的寄生巢的數(shù)量是一定的,布谷鳥(niǎo)蛋被宿主鳥(niǎo)發(fā)現(xiàn)的概率為Pa。
此外,研究表明自然界中許多動(dòng)物的覓食路徑可以用 Lévy 飛行描述。Lévy 飛行是服從 Lévy 分布的隨機(jī)搜索路徑,由頻繁出現(xiàn)的短步長(zhǎng)和偶爾出現(xiàn)的長(zhǎng)步長(zhǎng)組成。在布谷鳥(niǎo)算法中,學(xué)者Yang X S 和Deb S 利用Lévy 飛行描述布谷鳥(niǎo)的飛行軌跡并更新鳥(niǎo)巢的位置。Lévy 飛行中大量的短步長(zhǎng)有利于布谷鳥(niǎo)算法局部尋優(yōu),可以提高算法的搜索精度,同時(shí)少量的長(zhǎng)步長(zhǎng)可以擴(kuò)大算法的搜索范圍,有助于算法跳出局部最優(yōu)。
將布谷鳥(niǎo)、宿主鳥(niǎo)巢以及布谷鳥(niǎo)蛋均看作解,則從自然界布谷鳥(niǎo)行為中抽象出布谷鳥(niǎo)算法的主要步驟為:
步驟1初始化各參數(shù),隨機(jī)生成一組初始解并計(jì)算它們的適應(yīng)度。
步驟2通過(guò)Lévy飛行對(duì)解進(jìn)行更新,如式(1)所示:

式中,xi(t)和xi(t+1)分別為第t次和t+1 次迭代時(shí)的第i個(gè)解,α是步長(zhǎng)參數(shù),Levy(β)代表遵循Lévy 飛行的隨機(jī)步長(zhǎng)。
步驟3比較新解的適應(yīng)度值和舊解的適應(yīng)度值,若新解的適應(yīng)度值優(yōu)于舊解的適應(yīng)度值,則用新解替換舊解。
步驟4根據(jù)發(fā)現(xiàn)概率丟棄部分解,然后隨機(jī)偏好游走生成同樣多的解來(lái)代替被丟棄的解,如式(2)所示:xi(t+1)=xi(t)+r?Heaviside(Pa-ε)?(xk(t)-xj(t))(2)式中,r和ε為[0,1]區(qū)間內(nèi)正態(tài)分布的隨機(jī)數(shù),Heaviside(u) 表示階躍函數(shù),Pa為發(fā)現(xiàn)概率,xk(t) 和xj(t)為第t次迭代時(shí)的兩個(gè)隨機(jī)解。
步驟5計(jì)算通過(guò)步驟2至步驟4產(chǎn)生的新一代的解的適應(yīng)度值并挑選出最優(yōu)解。
步驟6重復(fù)步驟2至步驟5,直到達(dá)到最大迭代次數(shù)。
在布谷鳥(niǎo)算法中,參數(shù)α控制每次迭代的步長(zhǎng)δ(即變異量),并且α越大,步長(zhǎng)δ越大。發(fā)現(xiàn)概率Pa控制產(chǎn)生新解的概率,并且Pa越大,產(chǎn)生新解的概率越大。而步長(zhǎng)和產(chǎn)生新解的概率越大,每次迭代的搜索范圍就越大,算法的全局尋優(yōu)能力就越強(qiáng),收斂速度也就越快。但隨著搜索規(guī)模的擴(kuò)大,算法的局部尋優(yōu)能力會(huì)下降,算法的搜索精度也會(huì)下降。與之相反地,α和Pa越小,每次迭代的搜索范圍就越小,全局尋優(yōu)能力就越差,收斂速度也就越慢,但算法的局部尋優(yōu)能力會(huì)增強(qiáng),搜索精度也會(huì)提高。針對(duì)不同的優(yōu)化問(wèn)題,應(yīng)選取適當(dāng)?shù)摩梁蚉a以同時(shí)獲取較快的收斂速度與較高的搜索精度。然而目前并沒(méi)有一種系統(tǒng)的方法來(lái)確定α和Pa。此外,還應(yīng)在較差解附近用較大的α和Pa全局尋優(yōu)以提高收斂速度,用較小的α和Pa在較好解的附近局部尋優(yōu)以提高搜索精度。而在傳統(tǒng)的布谷鳥(niǎo)算法中,α和Pa為定值,不能根據(jù)解的好壞進(jìn)行動(dòng)態(tài)調(diào)整。針對(duì)以上問(wèn)題,本文在文獻(xiàn)[14-16]的基礎(chǔ)上提出了步長(zhǎng)δ和發(fā)現(xiàn)概率Pa的動(dòng)態(tài)調(diào)整機(jī)制,令δ和Pa隨著解的好壞、迭代次數(shù)的大小而自發(fā)地朝著合適的方向變化。
假設(shè)優(yōu)化問(wèn)題的目標(biāo)為求解函數(shù)最小值,xmin(t)和xmax(t)分別表示第t次迭代時(shí)的最優(yōu)解和最差解,它們對(duì)應(yīng)的適應(yīng)度值分別為fmin(t)和fmax(t),即第t次迭代時(shí)求解出的最小和最大適應(yīng)度。則對(duì)于最差解xmax(t),其步長(zhǎng)δmax(t)應(yīng)為一個(gè)很大的值。受到文獻(xiàn)[18]思想的啟發(fā),δmax(t)可采用如下方式確定:

上述解的更新過(guò)程如圖1 所示,其中a和b點(diǎn)分別代表。

圖1 解的更新過(guò)程
而對(duì)于最優(yōu)解xmin(t),其步長(zhǎng)δmin(t)應(yīng)為一個(gè)很小的值。此外,隨著迭代次數(shù)的增加,xmin(t)應(yīng)逐漸趨于最全局優(yōu)解,相應(yīng)地,其步長(zhǎng)δmin(t)也應(yīng)逐漸趨于一個(gè)很小的值。同時(shí),當(dāng)?shù)螖?shù)很大時(shí),種群規(guī)模對(duì)于求解結(jié)果的影響較小。綜合考慮這些因素,提出采用如下表達(dá)式來(lái)確定δmin(t)的第k個(gè)分量δmin,k(t):

式中,p為種群規(guī)模。經(jīng)過(guò)大量實(shí)驗(yàn)發(fā)現(xiàn),當(dāng)其指數(shù)取2.5時(shí)效果最好。
由于種群規(guī)模最小為1,因此在任何一次迭代時(shí),δmin,k(t)都小于,不存在變異后解超出約束范圍的情況。此外,智能優(yōu)化算法的求解精度和穩(wěn)定程度會(huì)隨著種群規(guī)模和迭代次數(shù)的增加而提高,但種群規(guī)模和迭代次數(shù)的增加會(huì)導(dǎo)致運(yùn)算時(shí)間和規(guī)模的擴(kuò)大,同時(shí)種群規(guī)模和迭代次數(shù)的不同取值也可能對(duì)優(yōu)化結(jié)果造成較大影響。而在式(4)的機(jī)制下,δmin,k(t)會(huì)隨著種群規(guī)模和迭代次數(shù)的增加而減小,這將制約種群規(guī)模和迭代次數(shù)增加對(duì)優(yōu)化結(jié)果的正面影響,進(jìn)而減小種群規(guī)模和迭代次數(shù)的不同取值對(duì)優(yōu)化結(jié)果造成的影響。
而對(duì)于第t次迭代時(shí)的第i個(gè)解xi(t),它的步長(zhǎng)δi(t)應(yīng)位于區(qū)間[δmax(t),δmin(t)]內(nèi),并且它對(duì)應(yīng)的適應(yīng)度f(wàn)i(t)越大,δi(t)就應(yīng)該越大。鑒于此,本文采用指數(shù)形式來(lái)描述δi,k(t)和fi(t)的關(guān)系,即有:

式中,δi,k(t)為步長(zhǎng)δi(t)的第k個(gè)分量,ai,k(t)和bi,k(t)分別為相應(yīng)的系數(shù)。當(dāng)xi,k(t)在區(qū)間內(nèi)時(shí)取-,反之取+。結(jié)合式(3)與(4),可得到:

解得ai,k(t)和bi,k(t)分別為:

在以上提出的步長(zhǎng)動(dòng)態(tài)調(diào)整機(jī)制下,在算法運(yùn)行的初期,迭代次數(shù)較小時(shí),由于各解對(duì)應(yīng)的適應(yīng)度差值較大,根據(jù)式(5)和式(7)可知,此時(shí)算法的步長(zhǎng)較大,算法的全局搜索能力較強(qiáng),收斂速度較快。而到了算法運(yùn)行的后期,大多數(shù)解對(duì)應(yīng)的適應(yīng)度會(huì)趨近最小適應(yīng)度,根據(jù)式(5)和式(7)可知,此時(shí)步長(zhǎng)δi,k(t)會(huì)趨近式(4)。由于該式的分母中存在t+p2.5,在算法運(yùn)行后期迭代次數(shù)t很大時(shí),搜索步長(zhǎng)δi,k(t)會(huì)急劇減小,導(dǎo)致算法的全局搜索能力和收斂速度下降,甚至還可能使算法陷入局部最優(yōu)。為解決這個(gè)問(wèn)題,本文在算法運(yùn)行前期使用式(5)來(lái)控制步長(zhǎng),在算法運(yùn)行后期引入一種不考慮種群規(guī)模和迭代次數(shù)的自適應(yīng)機(jī)制來(lái)控制步長(zhǎng),其基本原理如式(8)和式(9)所示:

式中,為第二種自適應(yīng)機(jī)制下第t次迭代時(shí)第i個(gè)解的步長(zhǎng)參數(shù)分別為第二種自適應(yīng)機(jī)制下步長(zhǎng)參數(shù)的最大值和最小值,為第二種自適應(yīng)機(jī)制下的步長(zhǎng),xi,k(t)是第t次迭代時(shí)第i個(gè)解的第k個(gè)分量,‖xi(t)-xmin(t)‖為xi(t)與xmin(t)之間的距離,dmax(t)為最優(yōu)解和其他解距離的最大值。
當(dāng)解越接近最優(yōu)解時(shí),其‖xi(t)-xmin(t)‖和(xi,k(t)-xmin,k(t))的值越小,由式(8)和式(9)可知,其搜索步長(zhǎng)也越小,有利于在最優(yōu)解附近局部尋優(yōu);反之,當(dāng)個(gè)體距離最優(yōu)位置越遠(yuǎn)時(shí),其‖xi(t)-xmin(t)‖和(xi,k(t)-xmin,k(t))的值越大,相應(yīng)搜索步長(zhǎng)也越大,有利于差的解跳出當(dāng)前的不利位置。因此該自適應(yīng)機(jī)制可以提高算法的全局尋優(yōu)和局部尋優(yōu)能力。此外,式(9)還通過(guò)引入Lévy飛行避免使算法陷入局部最優(yōu)。
將上述兩種步長(zhǎng)動(dòng)態(tài)調(diào)整策略相結(jié)合,可使算法在避免陷入局部最優(yōu)的同時(shí)獲得較快的收斂速度和較高的搜索精度。結(jié)合后的步長(zhǎng)動(dòng)態(tài)調(diào)整機(jī)制為:

式中,T為轉(zhuǎn)折代數(shù),大量實(shí)驗(yàn)的結(jié)果表明,T取50~150之間的值時(shí)優(yōu)化效果最佳。
本文采用文獻(xiàn)[16]所提出的自適應(yīng)機(jī)制來(lái)描述發(fā)現(xiàn)概率,如式(11)所示:

式中,pa,i(t)為第t次迭代時(shí)第i個(gè)解的發(fā)現(xiàn)概率,pa,max和pa,min分別為發(fā)現(xiàn)概率的最大值和最小值。當(dāng)某個(gè)解對(duì)應(yīng)的適應(yīng)度接近最小適應(yīng)度時(shí),其發(fā)現(xiàn)概率接近最小值,說(shuō)明它不容易被拋棄;反之,當(dāng)個(gè)體的適應(yīng)度與最小適應(yīng)度相差很大時(shí),其發(fā)現(xiàn)概率接近最大值,說(shuō)明它容易被拋棄。這有利于好的解被留下而壞的解被替換,從而可以加速算法的收斂速度。
參數(shù)動(dòng)態(tài)調(diào)整的自適應(yīng)布谷鳥(niǎo)算法流程圖如圖2所示。

圖2 參數(shù)動(dòng)態(tài)調(diào)整的自適應(yīng)布谷鳥(niǎo)算法流程圖
相應(yīng)的偽代碼為:
1.Initialize a population withnsolutionsxi( 1),i=1,2,…,n
2.For all solutions do
3.Calculate fitness value byFi(1)=f(xi(1))
4.End for
5.While iteration numbert<max iteration number
6.Calculate mutation step size by formula(10)
7.Generate new solutions according to mutation step size
8.Calculate fitness values of new solutions by

11.End if
12.Calculate discovery rate by formula(11)
13.Abandon some solutions according to discovery rate and generate new solutions to replace them by formula(2)
14.Calculate the fitness values of all solutions and pick out the best solution
15.Iteration numbert=t+1
16.End while
為驗(yàn)證所提出的自適應(yīng)布谷鳥(niǎo)算法的有效性,本文選取表1所示的10個(gè)標(biāo)準(zhǔn)測(cè)試函數(shù)進(jìn)行仿真分析,并對(duì)比常規(guī)布谷鳥(niǎo)算法(以下記為CS)、文獻(xiàn)[12]、[13]、[15]、[16]提出的改進(jìn)的布谷鳥(niǎo)算法(以下分別記為ICS1、ICS2、ICS3 和ICS4)、粒子群算法(以下記為PSO)以及本文提出的參數(shù)動(dòng)態(tài)調(diào)整的自適應(yīng)布谷鳥(niǎo)算法(以下記為ACS)的測(cè)試結(jié)果。各算法的參數(shù)設(shè)置分別如表2和表3所示。其中,ACS的最優(yōu)參數(shù)設(shè)置通過(guò)大量實(shí)驗(yàn)獲得,其余各算法分別依照文獻(xiàn)[12]、[13]、[15]、[16]設(shè)置參數(shù)。實(shí)驗(yàn)的測(cè)試平臺(tái)為Matlab?環(huán)境,所用計(jì)算機(jī)硬件配置為(Intel?Core?i5-5200U)2.2 GHz,內(nèi)存為4 GB。

表1 測(cè)試函數(shù)

表2 各種布谷鳥(niǎo)算法參數(shù)設(shè)置

表3 粒子群算法參數(shù)設(shè)置
針對(duì)不同測(cè)試函數(shù),各算法獨(dú)立運(yùn)行100 次,得到的實(shí)驗(yàn)結(jié)果如表4 所示。其中,f1為單峰函數(shù),但由于它在全局最小值附近函數(shù)值變化極為緩慢,因此常被用于評(píng)價(jià)算法的后期搜索性能。從100 次實(shí)驗(yàn)結(jié)果的最大值、最小值、平均值以及達(dá)到目標(biāo)值的次數(shù)可以看出,ACS 的求解精度較 CS、ICS 以及 PSO 有大幅提高。同時(shí),ACS 求解結(jié)果的方差遠(yuǎn)遠(yuǎn)小于其余算法,說(shuō)明ACS的求解結(jié)果更加穩(wěn)定。f2是一個(gè)復(fù)雜的多峰函數(shù),擁有無(wú)數(shù)的局部極小值和局部最大值,常導(dǎo)致算法在求解時(shí)陷入局部最優(yōu)。可以看到,雖然ACS 的求解精度和穩(wěn)定性遠(yuǎn)遠(yuǎn)高于其他算法,但在求解后期卻陷入了局部最優(yōu)值4.44E?15。f3是典型的非線性多模態(tài)函數(shù),搜索空間大并擁有許多局部極小點(diǎn),通常被認(rèn)為是智能優(yōu)化算法很難求解的復(fù)雜問(wèn)題。雖然從100 次實(shí)驗(yàn)結(jié)果的平均值和最大值來(lái)看,ACS的求解精度只是略微優(yōu)于其他算法,但ACS達(dá)到目標(biāo)值1E?05的次數(shù)更多,并且能夠在其余算法的最好求解結(jié)果達(dá)不到1E?05 時(shí)搜索到全局最優(yōu)解0,這說(shuō)明ACS 的求解能力高于其余算法。與此類似,同樣f4也是一個(gè)典型的非線性多模態(tài)函數(shù)。它的局部極小值的個(gè)數(shù)與問(wèn)題的維數(shù)成正比,且函數(shù)峰谷起伏不定,因此也很難求解出全局最優(yōu)值。可以看到,雖然ACS的100次實(shí)驗(yàn)結(jié)果均值和方差都與其他算法的結(jié)果相差不大,但ACS 可以搜索到全局最優(yōu)解0,并且有更大的概率達(dá)到目標(biāo)值。f5的全局最小值位于一個(gè)拋物線形的山谷中,由于山谷內(nèi)函數(shù)值變化很小,很難求解出全局最優(yōu)值,常被用于評(píng)價(jià)算法的搜索能力。可以看出,ACS在求解這個(gè)問(wèn)題時(shí)的求解精度和穩(wěn)定性都遠(yuǎn)遠(yuǎn)高于其余算法,說(shuō)明ACS 的搜索能力很強(qiáng)。f6是一個(gè)復(fù)雜的二維函數(shù),擁有無(wú)數(shù)個(gè)局部極小值并具有強(qiáng)烈振蕩的特征,是評(píng)價(jià)算法收斂性和搜索能力的經(jīng)典函數(shù)。可以從100次實(shí)驗(yàn)結(jié)果的最大值看出,ICS1、ICS2、ICS3、ICS4 以及 PSO 均在求解時(shí)陷入了局部最優(yōu)值9.71E?03,而ACS 則避開(kāi)了該值。同時(shí),ACS可以搜索到全局最優(yōu)值0,并且求解結(jié)果的最大值、平均值、方差以及達(dá)到目標(biāo)值的次數(shù)均遠(yuǎn)遠(yuǎn)超過(guò)了其他算法。說(shuō)明ACS 具有很強(qiáng)的收斂性和搜索能力。f7、f8和f9均為復(fù)雜多峰值函數(shù),擁有許多局部極小值點(diǎn)。可以看到,ACS 的求解結(jié)果的最值、平均值以及穩(wěn)定性均優(yōu)于其他算法,并且ACS 大多數(shù)時(shí)候總能達(dá)到目標(biāo)值。f10為一單峰函數(shù),常被用于檢測(cè)算法的尋優(yōu)能力。可以看到,ACS的求解精度和穩(wěn)定性均遠(yuǎn)遠(yuǎn)優(yōu)于其他算法,說(shuō)明ACS的尋優(yōu)能力很強(qiáng)。

表4 多種算法的計(jì)算結(jié)果
各算法求解10 個(gè)標(biāo)準(zhǔn)函數(shù)的收斂曲線分別如圖3至圖12所示。可以看到,在求解初期,多數(shù)時(shí)候ACS的收斂速度雖然小于PSO 的,但大于其余算法。而PSO到了求解后期會(huì)陷入局部最優(yōu),ACS 除去在求解f2時(shí)陷入了局部最優(yōu),其余情況下都能在求解后期依然保持很快的收斂速度。

圖3 f1 的收斂曲線

圖4 f2 的收斂曲線

圖5 f3 的收斂曲線

圖6 f4 的收斂曲線

圖7 f5 的收斂曲線

圖8 f6 的收斂曲線

圖9 f7 的收斂曲線

圖10 f8 的收斂曲線

圖11 f9 的收斂曲線

圖12 f10 的收斂曲線
CS和ACS求解各函數(shù)所需的時(shí)間如表4中平均運(yùn)行時(shí)間所示。可以看到,CS 與ACS 求解各函數(shù)的運(yùn)行時(shí)間都很短,說(shuō)明兩種算法的運(yùn)行速度均很快。此外,ACS求解各問(wèn)題所需的時(shí)間略大于CS的求解時(shí)間。這是由于ACS 在CS 的基礎(chǔ)上增加了自適應(yīng)機(jī)制,使得ACS 的計(jì)算復(fù)雜度有一定的提高,導(dǎo)致ACS 求解優(yōu)化問(wèn)題所需的時(shí)間有所變長(zhǎng)。需要說(shuō)明的是,本文所提出的自適應(yīng)機(jī)制僅需簡(jiǎn)單的代數(shù)運(yùn)算即可實(shí)現(xiàn),不會(huì)對(duì)算法造成很大的運(yùn)算負(fù)擔(dān)。
綜上所述,相較于其他各算法,ACS 具有更高的計(jì)算精度和穩(wěn)定性,收斂速度更快,不易陷入局部最優(yōu)。此外,所提出的自適應(yīng)機(jī)制在一定程度上沒(méi)有給ACS增加運(yùn)算負(fù)擔(dān)。
本文簡(jiǎn)述了布谷鳥(niǎo)算法的基本原理。在前人研究基礎(chǔ)上,本文提出了一種基于參數(shù)動(dòng)態(tài)調(diào)整機(jī)制的自適應(yīng)布谷鳥(niǎo)算法。所提出算法會(huì)依據(jù)解的好壞動(dòng)態(tài)改變發(fā)現(xiàn)概率的大小,并在運(yùn)算前期和后期分別利用兩種自適應(yīng)機(jī)制控制步長(zhǎng)動(dòng)態(tài)變化。通過(guò)對(duì)比該算法與其他算法求解10 個(gè)標(biāo)準(zhǔn)測(cè)試函數(shù)的結(jié)果,可知本文所提算法計(jì)算復(fù)雜性較低,并且在計(jì)算精度、穩(wěn)定性以及收斂速度上均具有一定的優(yōu)勢(shì)。
計(jì)算機(jī)工程與應(yīng)用2020年23期