本發(fā)明涉及復雜非線性函數求解領域,尤其涉及一種基于自適應變步長混沌狼群尋優(yōu)算法的非線性函數求解方法。
背景技術:
經過漫長的自然選擇與生物進化,造就了自然界許多奇妙的群體智能現象,令人嘆為觀止的同時也給我們帶來了無盡的科學啟示。為了求解復雜非線性函數問題,人們提出了許多仿生群體智能尋優(yōu)算法,如遺傳算法(genetic algorithm,GA)、粒子群算法(particle swarm optimization,PSO)、人工蜂群算法(artificial bee colony,ABC)等。與傳統(tǒng)尋優(yōu)方法相比,群體智能算法實現簡單、可以不受搜索空間和目標函數形態(tài)的制約,這為大量復雜非線性函數的求解提供了諸多選擇。然而,隨著研究的深入,研究者們逐漸發(fā)現這些群體智能尋優(yōu)算法不同程度地都存在著一些不足,如算法計算精度不高、后期收斂速度較慢或易陷入局部最優(yōu)等。這些存在的問題也激發(fā)著研究者們逐步探索新的群體智能方法,為人類解決復雜非線性函數求解問題提供了許多新的思路。
Yang等人于2007年仿生狼群捕食行為在文獻(Yang Chenguang,Tu Xuyan,Chen Jie.Algorithm of marriage in honey bees optimization based on the wolf pack search[C]//Proceedings of IEEE Computer Society International Conference on Intelligent Pervasive Computing,Jeju Island,2007:462-467.)中提出一種群體智能優(yōu)化算法—狼群搜索算法(wolf pack search algorithm,WPS),并將其成功地與ABC算法融合,應用于機器人路徑規(guī)劃優(yōu)化中。隨后WPS算法在工作流程優(yōu)化(Ye Y,Yin J,Feng Z,et al.Wolf-pack algorithm for business process model syntactic and semantic structure verification in the workflow management environment[C]//IEEE Asia-Pacific Services Computing Conference.IEEE Computer Society,2010:694-699.)、電池充電增強管理系統(tǒng)優(yōu)化(Hung T C,Huang S J,Pai F S,et al.Design of lithium-ion battery charging system enhanced with wolf pack algorithm[C]//International Conference on Innovations in Bio-Inspired Computing&Applications.IEEE,2012:195-200.)、PID參數優(yōu)化(Wu H S,Zhang F M.A uncultivated wolf pack algorithm for high-dimensional functions and its application in parameters optimization of PID controller[C]//IEEE Congress on Evolutionary Computation,2014:1477-1482.)等方面得到了應用研究。雖然WPS算法有著良好的收斂速度,但是其存在求解精度不高、易陷入局部最優(yōu)以及搜索越界降低收斂速度的不足。為彌補這個缺陷,周強等人于2013年以WPS算法為基礎,引入領導者策略,在《計算機應用研究》2013年第30卷第9期2629-2632頁刊載的“一種基于領導者策略的狼群搜索算法”文獻中提出一種基于領導者策略的狼群搜索算法(leader wolf pack search algorithm,簡稱為LWPS算法),并通過數值實驗研究表明,LWPS算法在收斂速度和求解精度方面比WPS算法、ABC算法、PSO算法及GA算法均有較大的提高。
但是,在深入研究中發(fā)現LWPS算法尚存在以下不足:(1)在競爭領導者狼時,各競選狼隨著搜索次數的不斷增加,當前最優(yōu)解也越趨近于局部最優(yōu)解,此時競選狼的搜索步長也應該越精細,以保證算法局部最優(yōu)解的搜索精度,而LWPS算法中的搜索步長是一個常值,其不具備自適應調節(jié)能力,易影響局部最優(yōu)解的搜索精度;(2)圍攻行為要求人工狼具有較強的局部尋優(yōu)能力,這就要求圍攻步長能夠隨著迭代次數的增加自適應地調整,而LWPS算法中的圍攻步長在算法迭代后期趨近于0,導致尋優(yōu)無變化,易出現早熟收斂的現象。因此,LWPS算法的性能還有待于進一步改進。
技術實現要素:
針對上述存在問題,本發(fā)明對LWPS算法進行改進,并將其用于解決復雜非線性函數求解問題,提出一種基于自適應變步長混沌狼群尋優(yōu)算法(chaos wolf optimization algorithm with adaptive variable step,CWOA)的非線性函數求解方法,旨在彌補LWPS算法的不足,豐富非線性函數求解的理論方法。
為了解決上述存在的技術問題,本發(fā)明是通過下述技術方案來實現的:
一種基于自適應變步長混沌狼群尋優(yōu)算法(CWOA)的非線性函數求解方法,其具體實施步驟包括如下內容:
步驟一:初始化狼群
初始化狼群中人工狼的數目N,搜索空間維數D,搜索空間取值范圍[wdmax,wdmin],最大迭代次數nmax,競選首領狼的數目q,最大搜索次數Hmax,搜索方向h,搜索步長初始值stepa0,移動步長stepb,圍攻閾值r0,圍攻步長初始值stepc0,淘汰狼的個數m;利用Logistic混沌映射表達式(1)產生N個混沌變量,并按表達式(2)把混沌變量投影到尋優(yōu)變量的取值區(qū)間,作為狼群的初始化位置;
Chaosn+1=μ×Chaosn(1-Chaosn)μ=4,Chaosn∈[0,1] (1)
式中,Chaos(0,1)為在區(qū)間[0,1]內均勻分布的混沌變量;
步驟二:競爭領導者狼
選取q匹適應度值較好的人工狼作為競選者,讓其在自己周圍的h個方向按表達式(3)不斷進行自適應變步長搜索,如果競選狼搜索到的位置pkjd優(yōu)于當前位置wjd,則進行位置移動,否則不移動;當競選狼搜索次數H達到最大搜索次數Hmax,則結束搜索行為,選取位置最優(yōu)的競選狼作為領導者狼;
第j(j=1,2…,q)匹競選狼在其周圍第k(k=1,2…,h)個方向產生的搜索位置pkjd為:
pkjd=wjd+Chaos(-1,1)×α×stepa0 (3)
Chaos(-1,1)=-1+2×Chaos(0,1) (4)
式中,wjd是第j匹競選狼在第d維的當前位置,Chaos(-1,1)為在區(qū)間[-1,1]內均勻分布的混沌變量,stepa0為搜索步長初始值,α為搜索步長自適應調節(jié)因子,0<α<1,α采用表達式(5)進行自適應確定:
步驟三:領導者狼召喚奔襲
其它人工狼向著領導者狼的位置奔襲移動,而且在奔襲的過程中繼續(xù)搜索獵物并按表達式(6)進行位置更新;若人工狼更新后的位置gid優(yōu)于當前位置wid,則進行位置移動,否則不移動;
第i匹人工狼更新后的位置gid為:
gid=wid+Chaos(-1,1)×stepb×(wld-wid) (6)
式中,wid是第i匹狼在第d維的當前位置,stepb是移動步長,wld為領導者狼在第d維的位置;
步驟四:包圍獵物
領導者狼搜尋到獵物,通過嚎叫召喚同伴包圍獵物,其他人工狼以領導者狼為中心展開包圍,當滿足預設的圍攻閾值r0條件時,執(zhí)行圍攻行為,通過表達式(7)進行位置更新;人工狼對獵物進行圍攻后,只有當更新后的位置優(yōu)于原來位置時才進行位置移動,否則保持位置不變;最后,依照表達式(9)對更新后的位置進行越界處理;
式中,為第n代第i匹狼在第d維的當前位置,為第n+1代第i匹狼在第d維的當前位置,rand(0,1)為在區(qū)間[0,1]內產生的隨機數,r0為預設的圍攻閾值,stepc為圍攻步長,其值隨著迭代次數的增加而自適應地減小,表達式為式(8):
式中,stepc0為圍攻步長初始值;n為當前迭代次數;
狼群圍攻獵物后位置會發(fā)生變化,若不在搜索空間內,需要依照表達式(9)對更新后的位置進行越界處理:
步驟五:分配食物更新狼群
根據“優(yōu)勝劣汰”的原則進行群體更新,去除狼群中最差的m匹人工狼,同時通過Logistic混沌映射表達式(1)產生m個混沌變量,并按表達式(2)把混沌變量投影到尋優(yōu)變量的取值區(qū)間,替代最差的m匹人工狼,以保持種群的多樣性;
步驟六:終止條件判斷
判斷是否達到最大迭代次數,若滿足條件則退出循環(huán),輸出最優(yōu)解;否則,轉至步驟二。
由于采用上述技術方案,本發(fā)明提供的一種基于自適應變步長混沌狼群尋優(yōu)算法(CWOA)的非線性函數求解方法具有這樣的有益效果:
(1)為了提高人工狼的搜索精度,本發(fā)明對搜索步長進行了改進;改進公式中加入了自適應調節(jié)因子α,使算法在優(yōu)良解域附近具有開辟新的解空間的能力,提高了算法的精細搜索能力;
(2)為了更好地適應人工狼的局部尋優(yōu)要求,本發(fā)明對圍攻步長公式進行了改進;改進公式中加入了隨機調節(jié)因子rand(0,1),避免了圍攻步長在迭代后期由于趨近于0而易出現早熟收斂的現象,使圍攻行為具備全程自適應調節(jié)的能力;
(3)本發(fā)明利用混沌變量進行優(yōu)化搜索,相對于隨機搜索而言提高了尋優(yōu)效率。
附圖說明
圖1是本發(fā)明方法的流程圖;
圖2是本發(fā)明實施例的收斂曲線對比圖;其中a)是Matyas的收斂曲線,b)是Easom的收斂曲線,c)是Sumsquares的收斂曲線,d)是Sphere的收斂曲線,e)是Eggcrate的收斂曲線,f)是Six Hump Camel Back的收斂曲線,g)是Bohachevsky3的收斂曲線,h)是Bridge的收斂曲線,i)是Booth的收斂曲線,j)是Bohachevsky1的收斂曲線,k)是Ackley的收斂曲線,l)是Quadric的收斂曲線。
具體實施方式
下面結合附圖及實施例對本發(fā)明進行進一步詳細說明。
參見圖1,是本發(fā)明方法的流程圖,一種基于自適應變步長混沌狼群尋優(yōu)算法(CWOA)的非線性函數求解方法,其具體實施步驟包括如下內容:
步驟一:初始化狼群
初始化狼群中人工狼的數目N,搜索空間維數D,搜索空間取值范圍[wdmax,wdmin],最大迭代次數nmax,競選首領狼的數目q,最大搜索次數Hmax,搜索方向h,搜索步長初始值stepa0,移動步長stepb,圍攻閾值r0,圍攻步長初始值stepc0,淘汰狼的個數m;利用Logistic混沌映射表達式(1)產生N個混沌變量,并按表達式(2)把混沌變量投影到尋優(yōu)變量的取值區(qū)間,作為狼群的初始化位置;
Chaosn+1=μ×Chaosn(1-Chaosn)μ=4,Chaosn∈[0,1] (1)
式中,Chaos(0,1)為在區(qū)間[0,1]內均勻分布的混沌變量;
步驟二:競爭領導者狼
選取q匹適應度值較好的人工狼作為競選者,讓其在自己周圍的h個方向按表達式(3)不斷進行自適應變步長搜索,如果競選狼搜索到的位置pkjd優(yōu)于當前位置wjd,則進行位置移動,否則不移動;當競選狼搜索次數H達到最大搜索次數Hmax,則結束搜索行為,選取位置最優(yōu)的競選狼作為領導者狼;
第j(j=1,2…,q)匹競選狼在其周圍第k(k=1,2…,h)個方向產生的搜索位置pkjd為:
pkjd=wjd+Chaos(-1,1)×α×stepa0 (3)
Chaos(-1,1)=-1+2×Chaos(0,1) (4)
式中,wjd是第j匹競選狼在第d維的當前位置,Chaos(-1,1)為在區(qū)間[-1,1]內均勻分布的混沌變量,stepa0為搜索步長初始值,α為搜索步長自適應調節(jié)因子,0<α<1,α采用表達式(5)進行自適應確定:
步驟三:領導者狼召喚奔襲
其它人工狼向著領導者狼的位置奔襲移動,而且在奔襲的過程中繼續(xù)搜索獵物并按表達式(6)進行位置更新;若人工狼更新后的位置gid優(yōu)于當前位置wid,則進行位置移動,否則不移動;
第i匹人工狼更新后的位置gid為:
gid=wid+Chaos(-1,1)×stepb×(wld-wid) (6)
式中,wid是第i匹狼在第d維的當前位置,stepb是移動步長,wld為領導者狼在第d維的位置;
步驟四:包圍獵物
領導者狼搜尋到獵物,通過嚎叫召喚同伴包圍獵物,其他人工狼以領導者狼為中心展開包圍,當滿足預設的圍攻閾值r0條件時,執(zhí)行圍攻行為,通過表達式(7)進行位置更新;人工狼對獵物進行圍攻后,只有當更新后的位置優(yōu)于原來位置時才進行位置移動,否則保持位置不變;最后,依照表達式(9)對更新后的位置進行越界處理;
式中,為第n代第i匹狼在第d維的當前位置,為第n+1代第i匹狼在第d維的當前位置,rand(0,1)為在區(qū)間[0,1]內產生的隨機數,r0為預設的圍攻閾值,stepc為圍攻步長,其值隨著迭代次數的增加而自適應地減小,表達式如式(8)所示:
式中,stepc0為圍攻步長初始值;n為當前迭代次數;
狼群圍攻獵物后位置會發(fā)生變化,若不在搜索空間內,需要依照表達式(9)對更新后的位置進行越界處理:
步驟五:分配食物更新狼群
根據“優(yōu)勝劣汰”的原則進行群體更新,去除狼群中最差的m匹人工狼,同時通過Logistic混沌映射表達式(1)產生m個混沌變量,并按表達式(2)把混沌變量投影到尋優(yōu)變量的取值區(qū)間,替代最差的m匹人工狼,以保持種群的多樣性;
步驟六:終止條件判斷
判斷是否達到最大迭代次數,若滿足條件則退出循環(huán),輸出最優(yōu)解;否則,轉至步驟二。
為了驗證本發(fā)明方法的有效性,選取國際上常用的12個標準非線性測試函數進行測試,并將求解效果與基于領導者策略的狼群搜索算法(LWPS)以及經典的遺傳算法(GA)、粒子群算法(PSO)進行比較。標準測試函數如表1所示。
表1標準測試函數
表1中所選函數涉及單峰、多峰、可分、不可分等多種特征的復雜非線性函數。單峰函數在定義域內只有全局最優(yōu)值,沒有局部極值;而多峰函數在定義域內有多個局部極值,相對單峰函數而言更加復雜。一般尋優(yōu)算法在對多峰函數進行尋優(yōu)時很容易陷入局部最優(yōu),較難找到多峰函數的全局最優(yōu)值,所以多峰函數常被用來檢驗尋優(yōu)算法的全局搜索性能和避免早熟收斂的能力。另外,若一個復合函數可用單變量函數之和表示則此函數為可分的,反之為不可分函數。由于不可分函數變量間關系復雜,因此對此類函數尋優(yōu)相對更加困難。此外,搜索空間的維數也是個重要因素,很多對于低維函數效果很好的算法對于高維復雜函數的尋優(yōu)效果卻較差。表1中函數的變量維數從2維至30維,都是難度較大的復雜非線性函數尋優(yōu)問題,具有很好的測試性,可較為全面的反應尋優(yōu)算法的性能。
本發(fā)明方法基于Matlab R2013b用M語言編程實現,GA算法采用英國謝菲爾德大學(University of Sheffield)開發(fā)的算法工具箱,PSO算法采用美國北卡羅萊納州大學(North Carolina A&T State University)的Brian教授開發(fā)的工具箱,LWPS算法根據周強等在《計算機應用研究》2013年第30卷第9期2629-2632頁刊載的“一種基于領導者策略的狼群搜索算法”文獻中提供的編程思路實現。各尋優(yōu)算法的初始化規(guī)模皆設置為N=50,最大迭代次數設置為nmax=600,其它參數分別遵循Sriniva M等在《Computer》1994年第27卷第6期第17-26頁刊載的“Genetic algorithms:a survey”文獻、Kennedy J等在《IEEE International Conference on Neural Networks》1995年第4卷第1942-1948頁刊載的“Particle swarm optimization”文獻和周強等在《計算機應用研究》2013年第30卷第9期2629-2632頁刊載的“一種基于領導者策略的狼群搜索算法”文獻的基本原則,設置如表2所示。
表2算法參數表
為了直觀地比較各優(yōu)化算法的尋優(yōu)精度和收斂速度,分別對每個測試函數隨機進行尋優(yōu)計算,分別得到其收斂曲線,如圖2所示,其中a)是Matyas的收斂曲線,b)是Easom的收斂曲線,c)是Sumsquares的收斂曲線,d)是Sphere的收斂曲線,e)是Eggcrate的收斂曲線,f)是Six Hump Camel Back的收斂曲線,g)是Bohachevsky3的收斂曲線,h)是Bridge的收斂曲線,i)是Booth的收斂曲線,j)是Bohachevsky1的收斂曲線,k)是Ackley的收斂曲線,l)是Quadric的收斂曲線。由圖2可以看出,與GA、PSO和LWPS算法相比,本發(fā)明提出的CWOA算法具有相對更高的尋優(yōu)精度;而且能夠更快的收斂到目標函數值,具有較快的收斂速度,在尋優(yōu)精度和收斂速度方面表現出了較好的優(yōu)越性,具有較好的尋優(yōu)能力,能夠更準、更快地尋找到復雜非線性函數的最優(yōu)解。