本發(fā)明涉及智能優(yōu)化算法技術領域,具體是一種對布谷鳥優(yōu)化算法進行改進的方法。
背景技術:
在自然界中,布谷鳥尋找適合自己產(chǎn)卵的鳥巢位置是隨機的或類似隨機,為了模擬布谷鳥尋窩的方式,首先,需要假定以下3個理想的狀態(tài):
(1)每只布谷鳥一次只產(chǎn)一個卵,并隨機選擇鳥巢位置來孵化它;
(2)在隨機選擇的一組鳥巢中,最好的鳥巢將會被保留到下一代;
(3)所使用的宿主鳥巢的數(shù)量是固定的,而布谷鳥的鳥卵有一定的概率pa∈[0,1]被宿主鳥發(fā)現(xiàn),在這種情況下,宿主鳥就會把布谷鳥的鳥卵扔掉或者拋棄自己的巢到另外的地方重新建巢。在第三個規(guī)則當中,我們認為n個鳥巢中pa部分由新的鳥巢(具有新的隨機解)所代替。
對于一個最大值問題,一個解的適應度或質量是和它的目標函數(shù)值成正比的,這類似于其它只能算法如遺傳算法,在具體到算法中,每一個巢的位置表示一個解,當要產(chǎn)生一個新解x(t+1)時,對于每個布谷鳥都要實施一次萊維飛行,其目的是要用新的和可能更優(yōu)的解去代替不太好的解,每個布谷鳥尋巢的路徑和位置更新公式如下:
式中,a>0是步長,它與所要解決問題的尺度有關,在算法中通常取a=1;
一般來講,布谷鳥搜索算法的隨機運動就是馬爾可夫鏈,它的下一個狀態(tài)或位置只取決于當前位置(公式第一項)和轉換概率(第二項)。
在mantegna的算法中,基于萊維飛行的步長計算公式為:
式中,u、v服從正態(tài)分布;γ為標準的gamma函數(shù),該概率分布的方差與均值都是無界的。
因此,布谷鳥尋找鳥巢的運動公式為:
現(xiàn)有的布谷鳥優(yōu)化算法中種群多樣性缺失,易陷入局部最優(yōu),不利于工程化應用。
技術實現(xiàn)要素:
本發(fā)明的目的在于提供一種有效解決傳統(tǒng)布谷鳥優(yōu)化算法收斂精度低、迭代后期易陷入局部最優(yōu)的缺陷的對布谷鳥優(yōu)化算法進行改進的方法,以解決上述背景技術中提出的問題。
為實現(xiàn)上述目的,本發(fā)明提供如下技術方案:
一種對布谷鳥優(yōu)化算法進行改進的方法,包括如下步驟:
步驟10:動態(tài)自適應參數(shù)a和pa的獲??;
步驟20:反向學習策略的引入;
步驟30:多開端策略的啟用。
作為本發(fā)明進一步的方案:所述步驟10中參數(shù)a和pa的獲取過程如下:
式中,astart、aend分別表示a的初值和終值;pastart、paend分別表示pa的初值和終值;t為當前迭代次數(shù),maxgen為最大迭代次數(shù)。
作為本發(fā)明進一步的方案:所述步驟20中反向學習策略的引入過程如下:
a)初始階段:隨機產(chǎn)生n個鳥巢的初始位置
b)迭代階段:根據(jù)隨機數(shù)a值的大小,判斷是否需要啟動反向學習策略,根據(jù)適應度值的計算結果淘汰適應度值較差的個體。
作為本發(fā)明再進一步的方案:所述步驟30中多開端策略的啟用過程如下:
根據(jù)最優(yōu)解停止更新的次數(shù)s來判斷是否需要初始化種群,如果s大于允許停滯次數(shù)smax,則開始初始化種群,并將s重新置零,并保存?zhèn)€體最優(yōu)和全局最優(yōu)的信息。
與現(xiàn)有技術相比,本發(fā)明的有益效果是:
本發(fā)明建立了一種改進型布谷鳥優(yōu)化算法,與現(xiàn)有布谷鳥優(yōu)化算法相比,本發(fā)明方法充分考慮了算法收斂性和計算復雜性,設定對應的門檻條件來分別啟用反向學習策略及多開端策略,具有更快的收斂速度,更高的收斂精度,在對復雜非線性問題進行求解時,該方法既能夠有效提高計算精度,同時又能夠加快計算速度。
附圖說明
圖1為本發(fā)明的流程示意圖。
圖2為本發(fā)明基于不同a值時的迭代過程示意圖。
圖3為本發(fā)明基于不同smax值時的迭代過程示意圖。
圖4為本發(fā)明實施例中schwefel函數(shù)的迭代過程示意圖。
圖5為本發(fā)明實施例中sphere函數(shù)函數(shù)的迭代過程示意圖。
具體實施方式
下面結合具體實施方式對本專利的技術方案作進一步詳細地說明。
請參閱圖1-5,一種對布谷鳥優(yōu)化算法進行改進的方法,包括如下步驟:
步驟10:動態(tài)自適應參數(shù)a和pa的獲??;
步驟20:反向學習策略的引入;
步驟30:多開端策略的啟用。
所述步驟10中參數(shù)a和pa的獲取過程如下:
式中,astart、aend分別表示a的初值和終值;pastart、paend分別表示pa的初值和終值;t為當前迭代次數(shù),maxgen為最大迭代次數(shù)。
所述步驟20中反向學習策略的引入過程如下:
a)初始階段:隨機產(chǎn)生n個鳥巢的初始位置
b)迭代階段:根據(jù)隨機數(shù)a值的大小,判斷是否需要啟動反向學習策略,根據(jù)適應度值的計算結果淘汰適應度值較差的個體。
所述步驟30中多開端策略的啟用過程如下:
根據(jù)最優(yōu)解停止更新的次數(shù)s來判斷是否需要初始化種群,如果s大于允許停滯次數(shù)smax,則開始初始化種群,并將s重新置零,并保存?zhèn)€體最優(yōu)和全局最優(yōu)的信息。
所述對布谷鳥優(yōu)化算法進行改進的方法,具體包括如下步驟:
(1)對參數(shù)進行初始化操作,包括鳥巢的數(shù)量n、外來鳥卵發(fā)現(xiàn)概率范圍[pastart,paend]、步長范圍[astart,aend]、迭代次數(shù)maxgen、當前迭代次數(shù)t和多開端策略允許迭代次數(shù)smax等參數(shù);
(2)求取種群中各布谷鳥個體的適應度值。隨機產(chǎn)生n個鳥巢的初始位置
(3)根據(jù)當前迭代次數(shù)t,對csa中參數(shù)進行自適應調整;
(4)保留上代最優(yōu)鳥巢的位置
(5)通過概率pa保留一部分當前代中不容易被發(fā)現(xiàn)的鳥巢位置,同時隨機改變容易被發(fā)現(xiàn)的鳥巢位置,得到另一組新的鳥巢;與未改變之前的鳥巢位置進行比較,讓適應度值較好的鳥巢位置替換適應度值較差的鳥巢位置從而得到下一組更優(yōu)的鳥巢位置,對當前組鳥巢進行評估,找到當前組最優(yōu)鳥巢位置;
(6)根據(jù)隨機數(shù)a值的大小,判斷是否需要啟動反向學習策略,淘汰適應度值較差的個體;
(7)如果全局最優(yōu)解滿足更新判據(jù),則執(zhí)行t=t+1;否則,執(zhí)行s=s+1,并根據(jù)是否達到停滯次數(shù)smax,進而啟動多開端策略,循環(huán)執(zhí)行step3~step6;
(8)判斷終止條件,若滿足終止條件,則輸出最優(yōu)值,算法結束;否則,繼續(xù)迭代執(zhí)行step3~step7,直至算法終止條件被滿足。
算法收斂性是衡量智能優(yōu)化算法的一項重要指標。設智能優(yōu)化算法為γ,該算法第w次迭代結果為xw,第w+1次迭代結果為xw+1=γ(xw,ξ),其中,ξ是算法γ在整個迭代中已尋優(yōu)過的解。
條件1:函數(shù)f(x)是搜索空間s內的連續(xù)函數(shù),若f(γ(xw,ξ))≤f(x),且ξ∈s,則有f(γ(x,ξ))≤f(x)。
條件1是智能優(yōu)化算法收斂的基礎,可以保證算法在迭代中總可以產(chǎn)生優(yōu)于當前個體的新個體。
條件2:對于任意b∈s,s.t.v[b]>0,則有
由條件2可知,當b在搜索空間s中滿足v[b]>0時,智能優(yōu)化算法γ經(jīng)過連續(xù)無窮次的搜索總能夠尋找到b中的點。
定理1(改進型布谷鳥優(yōu)化算法的收斂性):改進型布谷鳥優(yōu)化算法能夠以概率1收斂到全局最優(yōu)解。
證明:在改進型布谷鳥優(yōu)化算法中,布谷鳥鳥巢個體極值和全局極值根據(jù)式(7)進行更新。
以最小化的優(yōu)化問題為例,布谷鳥優(yōu)化算法在迭代過程中更新極值序列均為單調遞減;同時,多開端策略是一種直接搜索方法,通過對當前全局最優(yōu)極值點保留并優(yōu)化能保證解進一步單調下降,即保證新解優(yōu)于舊解時才對其進行替換,故改進型布谷鳥優(yōu)化算法能夠滿足條件1。
當布谷鳥鳥巢全部收斂到全局極值點位置時,布谷鳥優(yōu)化算法處于停滯狀態(tài)。此時,全局極值點可能僅僅是局部最優(yōu)點,因算法早熟收斂所引起。由于改進型布谷鳥優(yōu)化算法中根據(jù)停滯次數(shù)smax引入多開端策略,使原本聚集在局部最優(yōu)點附近的鳥巢能夠重新隨機分布在整個搜索空間中。因此,當?shù)螖?shù)趨于無窮大時,該算法總能夠搜索到全局最優(yōu)解,故改進型布谷鳥優(yōu)化算法也能夠滿足條件2。
由上述證明可知,當?shù)螖?shù)足夠大時,改進型布谷鳥優(yōu)化算法總能夠以概率1收斂到全局最優(yōu)解。
原理:本發(fā)明通過將參數(shù)動態(tài)調整、反向學習策略及多開端策略引入到布谷鳥優(yōu)化算法中,其目的旨在有效解決傳統(tǒng)布谷鳥優(yōu)化算法種群多樣性少、收斂精度低、迭代后期易陷入局部最優(yōu)的缺陷。
為了驗證上述改進型布谷鳥優(yōu)化算法的正確性和有效性,本發(fā)明選取3個標準測試函數(shù)進行仿真驗證,測試函數(shù)分別如表1所示,改進布谷鳥優(yōu)化算法的參數(shù)如表2所示。
表1標準測試函數(shù)
表2改進型布谷鳥優(yōu)化算法中參數(shù)設置
不同隨機數(shù)a值和停滯次數(shù)smax的選取,對于改進算法的迭代次數(shù)具有較大的影響。當a值由0.1~0.9之間變化時,采用c_obl(布谷鳥優(yōu)化算法+反向學習策略)對rastrigin函數(shù)進行迭代尋優(yōu),迭代過程如圖2所示;固定a=0.5,當smax由50~250之間變化時,采用c_mobl(布谷鳥優(yōu)化算法+反向學習策略+多開端策略)對rastrigin函數(shù)進行迭代尋優(yōu),迭代過程如圖3所示。
由圖2可知,當隨機數(shù)a值選取過大或者過小時,迭代次數(shù)均較大,因此,本發(fā)明專利將a值設定為0.5。由圖3可知,隨著smax的不斷增大,迭代次數(shù)也不斷遞增,使得多開端策略逐漸失效,因此,本發(fā)明專利將smax設定為50。
在固定進化次數(shù)條件下,分別采用cuckoo(布谷鳥優(yōu)化算法)、c_pars(布谷鳥優(yōu)化算法+參數(shù)動態(tài)自適應)、c_obl、c_mobl和c_moblpars(布谷鳥優(yōu)化算法+反向學習策略+多開端策略+參數(shù)動態(tài)自適應)對函數(shù)f2~f3(m=10)進行迭代實驗比較,結果如圖4和圖5所示。由圖4和圖5可知,對于上述2種不同的函數(shù),本發(fā)明專利所提的c_moblpars均具有較高的收斂速度和收斂精度,說明反向學習策略、參數(shù)自適應調整和多開端策略的引入,更容易實現(xiàn)布谷鳥優(yōu)化算法的全局收斂。
本發(fā)明建立了一種改進型布谷鳥優(yōu)化算法,與現(xiàn)有布谷鳥優(yōu)化算法相比,本發(fā)明方法充分考慮了算法收斂性和計算復雜性,設定對應的門檻條件來分別啟用反向學習策略及多開端策略,具有更快的收斂速度,更高的收斂精度,在對復雜非線性問題進行求解時,該方法既能夠有效提高計算精度,同時又能夠加快計算速度。
上面對本專利的較佳實施方式作了詳細說明,但是本專利并不限于上述實施方式,在本領域的普通技術人員所具備的知識范圍內,還可以在不脫離本專利宗旨的前提下作出各種變化。