本發(fā)明涉及優(yōu)化領域,尤其涉及一種基于增強局部搜索能力的人工蜂群優(yōu)化方法。
背景技術:
優(yōu)化是許多科學和工程領域中一個重要的問題,在生產與生活中,人們經常會遇到如何安排生產資源、銷售計劃,或者怎樣合理選取參數、路徑,才能使總利潤最大、總成本最小、總時間最短,或使相應產品指標達到最優(yōu)、資源利用率迖到最經濟等諸如此類的問題,這些問題都可以歸結為最優(yōu)化問題。傳統(tǒng)的優(yōu)化方法具有對初值的強依賴性、容易陷入局部極值點、可能得不到全局最優(yōu)值、一般要求解析的目標函數是連續(xù)且可導的,變量也是連續(xù)的、而對于一些復雜的非線性的、離散的或多目標值的優(yōu)化問題,用傳統(tǒng)的優(yōu)化方法很難得到理想的結果等缺點。為了解決這些問題,研究者們開始將目光轉向對大自然中生物所展示出的智能行為的模擬和研究,從而開啟了一個重要的研究領域仿生智能計算來解決以往難以實現(xiàn)的優(yōu)化問題。
人工蜂群算法(abc)是一種模擬蜜蜂群體尋找優(yōu)良蜜源的仿生智能計算方法,與遺傳算法、粒子群算法、蟻群算法等智能計算方法相比,該算法的突出優(yōu)點是在每次迭代中都進行全局和局部搜索、控制參數少、易于實現(xiàn)、計算方便等。
但是,人工蜂群算法仍存在一些問題,種群初始化盲目性、局部搜索能力弱和易陷入局部最優(yōu)的缺點。因此,本發(fā)明人對其進一步的探索和研究,提出一種基于增強局部搜索能力的人工蜂群優(yōu)化方法。
技術實現(xiàn)要素:
本發(fā)明的技術目的在于提出一種基于增強局部搜索能力的人工蜂群優(yōu)化方法,以增強局部搜索能力,與abc的較強全局搜索能力平衡,提高收斂速度,改善算法性能。
為了解決上述技術問題,本發(fā)明的技術方案如下:
一種基于增強局部搜索能力的人工蜂群優(yōu)化方法,包括以下步驟:
步驟1、設置esabc的參數,所述參數包括種群大小sn、采蜜蜂個數ne、跟隨蜂個數no、最大迭代次數mcn、個體維數d、閾值limit;
步驟2、按公式(1)進行初始化,得到初始種群:
其中,i=1,2,…,sn,j=1,2,…,d;sn表示食物源(解)的數量;d表示解的維數;
所述公式(2)為洛倫茲混沌系統(tǒng),通過該公式產生三組分布均勻、遍歷性好的混沌迭代序列;其中,取x(0),y(0),z(0)為初始值,δ,γ,β為洛倫茲系統(tǒng)的參數,取值分別為δ=10,β=8/3,γ>24.74,從產生的三組混沌序列中隨機選一維,記作
步驟3、根據公式(3)分別計算各個解的適應值fit,并將適應值排名前sn/2的解作為初始的采蜜蜂種群,剩余的蜜蜂則為觀察蜂種群:
fiti=0.1/(0.1+1/|lgfi|),0≤fi≤10-λ(3)
其中,fiti表示第i個個體的適應值,fi表示第i個個體的函數值,λ則由計算機的計算精度決定;
步驟4、在由步驟3選擇出來的采蜜蜂附近進行鄰域搜索,搜索策略如公式(4)所示:
其中,r為{1,2,…,sn}內的隨機整數,且r≠i,i和j的含義同公式(1),
步驟5、按照公式(3)計算其適應值fit_new,若fit<fit_new,更新當前采蜜蜂,trial(i)=0,否則,trial(i)++;
步驟6、對于跟隨蜂,首先根據公式(5)計算選擇概率p,以概率p(i)搜索新的食物源,然后轉化為采蜜蜂進行鄰域搜索,根據公式(3)計算適應值,比較并判斷是否更新,同時修改標識向量trial(i);其中概率計算如公式(5)所示:
步驟7、判斷trial(i)>limit是否成立,若成立,則放棄該食物源,進入偵查蜂階段,根據公式(1)生成新的食物源,若不成立,轉至步驟8;
步驟8、記錄最優(yōu)解;
步驟9、判斷是否滿足終止條件iter≥mcn,若滿足,則輸出最優(yōu)解,否則,返回步驟4。
采用上述方案后,本發(fā)明具有以下特點:
一、初始化種群時采用一種遍歷性好、分布均勻的高維混沌序列產生方式,增強了初始種群的多樣性和分布性,在一定程度上避免了abc中隨機初始化的盲目性;
二、采用基于對數的適應度評價方式劃分初始的采蜜蜂種群和觀察蜂種群,通過該方法把個體間差異明顯化,擴大了種群個體適應值的差異性,減小了選擇壓力,進而把函數值相似但不同的種群個體區(qū)分開,使得優(yōu)秀個體有更大的概率被跟隨開采;
三、本發(fā)明并采用一種增強局部搜索能力的搜索策略,在一定程度上有效地避免了陷入局部最優(yōu),提高了解的精度。
下面結合附圖和具體實施方式對本發(fā)明的技術方案進行詳細說明。
附圖說明
圖1是本發(fā)明一種基于增強局部搜索能力的人工蜂群優(yōu)化方法的流程簡圖;
圖2-12是本發(fā)明分別對于11個測試函數在d=30的情況下的進化曲線圖;
圖13-22是本發(fā)明分別對于11個測試函數在d=60的情況下的進化曲線圖。
具體實施方式
本發(fā)明公開的一種基于增強局部搜索能力的人工蜂群優(yōu)化方法(esabc),能夠達到搜索某一問題最優(yōu)解的目的。下面是本發(fā)明的一個實施例,具體說明如何應用本發(fā)明esabc。
實施例:通過matlab(商業(yè)數學軟件,用于算法開發(fā)、數據可視化、數據分析以及數值計算的高級技術計算語言和交互式環(huán)境)對12個典型的函數最小化問題的仿真尋優(yōu)來測試本發(fā)明esabc的性能,并與abc(傳統(tǒng)人工蜂群算法)、gabc(用于與本發(fā)明esabc性能比較,參考zhug,kwongs.gbest-guidedartificialbeecolonyalgorithmfornumericalfunctionoptimization[j].appliedmathematics&computation,2010,217(7):3166-3173.)進行比較。測試函數介紹如表1所示。
表1.測試函數
表1中f01-f04為單峰函數,f05-f12為多峰函數。esabc,abc和gabc被用于優(yōu)化上述函數,三個算法在相同的實驗背景下運行,且每個測試函數獨立運行10次以避免偶然性,并記錄最優(yōu)值、最差值、平均值和方差。
如圖1所示,是采用本發(fā)明的一種基于增強局部搜索能力的人工蜂群優(yōu)化方法對上述12個典型的函數最小化問題的仿真尋優(yōu)過程,包括:
s1、設置初始參數。本例設初始參數為:維數d=30&60,種群個數sn=150,最大迭代次數mcn=1000,閾值limit=100;
s2、按公式(1)進行初始化,得到初始種群:
其中,i=1,2,…,sn,j=1,2,…,d;sn表示食物源(解)的數量;d表示解的維數;
所述公式(2)為洛倫茲混沌系統(tǒng),通過該公式產生三組分布均勻、遍歷性好的混沌迭代序列,在一定程度上避免了abc中隨機初始化的盲目性;其中,取x(0),y(0),z(0)為初始值,δ,γ,β為洛倫茲系統(tǒng)的參數,取值分別為δ=10,β=8/3,γ>24.74,從產生的三組混沌序列中隨機選一維,記作
s3、根據公式(3)分別計算各個解的適應值fit,即將步驟s2得到的初始個體向量(解)代入測試函數,即得到目標函數值fi,如ellipitic函數,目標函數值
fiti=0.1/(0.1+1/|lgfi|),0≤fi≤10-λ(3)
其中,fiti表示第i個個體的適應值,fi表示第i個個體的函數值,λ則由計算機的計算精度決定,此處,取λ=8;
其他測試函數采用同樣方式計算每個個體的適應值fit;
s4、在由步驟s3選擇出來的采蜜蜂附近進行鄰域搜索,搜索策略如公式(4)所示:
其中,r為{1,2,…,sn}內的隨機整數,且r≠i,i和j的含義同公式(1),
s5、按照公式(3)計算其適應值fit_new,若fit<fit_new,更新當前采蜜蜂,trial(i)=0,否則,trial(i)++;
步驟6、對于跟隨蜂,首先根據公式(5)計算選擇概率p,以概率p(i)搜索新的食物源,然后轉化為采蜜蜂進行鄰域搜索,根據公式(3)計算適應值,比較并判斷是否更新,同時修改標識向量trial(i);其中概率計算如公式(5)所示:
s7、判斷trial(i)>limit是否成立,若成立,則放棄該食物源,進入偵查蜂階段,根據公式(1)生成新的食物源,若不成立,轉至s8;
s8、記錄最優(yōu)解;
s9、判斷是否滿足終止條件iter≥mcn,若滿足,則輸出最優(yōu)解,否則,返回s4。
表2和表3分別為d=30和d=60的實驗結果,其中d=30的情況對其中11個函數進行測試,d=60的情況在10個函數進行測試。
表2.三種算法優(yōu)化結果(d=30)
表3.三種算法優(yōu)化結果(d=60)
由表2可看出:對于單峰函數,esabc的解的精度和穩(wěn)定性均優(yōu)于abc和gabc;對于多峰函數,除了himmelblau函數,esabc的性能均優(yōu)于abc和gabc。
由表3可以看出:d=60時,除了ackley函數,esabc的解均優(yōu)于abc和gabc。
收斂曲線用于評價三種算法的性能。為了更好地分析收斂曲線,在迭代中取對數,三種算法的收斂曲線如圖2-12(d=30)及圖13-22(d=60)所示。由圖2-12可知:對于himmelblau函數,三個算法的收斂精度一樣,esabc的收斂速度比gabc慢,比abc快;對于其他函數,esabc的收斂精度均好于abc和gabc,收斂速度總體上快于另外兩個算法。由圖13-22可知:除了ackley函數的精度和收斂速度差于gabc,優(yōu)于abc;對于其余函數,esabc的解均優(yōu)于abc和gabc。
總體來說,本發(fā)明esabc在解的精度和收斂速度方面都有所提高。
以上所述,僅是本發(fā)明較佳實施例而已,并非對本發(fā)明的技術范圍作任何限制,故凡是依據本發(fā)明的技術實質對以上實施例所作的任何細微修改、等同變化與修飾,均仍屬于本發(fā)明技術方案的范圍內。