本發(fā)明屬于智能算法應(yīng)用技術(shù)領(lǐng)域,尤其涉及一種基于改進的蜂群算法的工程約束參數(shù)優(yōu)化方法。
背景技術(shù):
工程參數(shù)優(yōu)化問題廣泛地存在于日常生產(chǎn)生活中,傳統(tǒng)的工程約束參數(shù)優(yōu)化方法存在諸多不令人滿意的問題,難以滿足工程約束參數(shù)優(yōu)化的需求。一般來說,工程參數(shù)優(yōu)化問題都是在許多線性或非線性約束的前提下。但是,由于目前對工程約束參數(shù)優(yōu)化問題的求解方法認識還不夠深入,如果搜索空間不可微或參數(shù)間為非線性性,則往往得不到全局最優(yōu)解,即陷入局部優(yōu)化。因此,全局搜索和局部搜索的平衡機制對優(yōu)化算法的成功時很重要的,需要一種不依賴于系統(tǒng)模型的具體表達方式的約束參數(shù)優(yōu)化方法。
蜂群算法是一種新型的仿生學(xué)優(yōu)化算法,思想是利用蜜蜂群體搜索蜜源的路線進行判斷選擇的方式方法。該算法具有較強的適應(yīng)性、正反饋性和魯棒性,但也存在易陷入局部最優(yōu)解?;煦绶淙核惴ㄊ抢没煦缢惴ǖ娜帕行?,利用混沌變量具有遍歷性、隨機性和規(guī)律性的特點,改進蜂群算法容易過早收斂、易陷于局部最優(yōu)、對邊緣定位不準確等問題。本文采用混沌蜂群算法進行工程約束參數(shù)的優(yōu)化,該方法能夠快速、清晰、準確且有效性強。
技術(shù)實現(xiàn)要素:
本發(fā)明的目的在于提供一種能夠彌補傳統(tǒng)蜂群算法存在結(jié)構(gòu)復(fù)雜難以確定、局部優(yōu)化、搜索效率低等缺點,提出一種快速、清晰、準確的算法解決一般工程約束參數(shù)的優(yōu)化方法。
本發(fā)明的目的是這樣實現(xiàn)的:
基于改進人工蜂群算法的工程約束參數(shù)優(yōu)化方法,包括以下步驟:
步驟一:通過混沌算法確定參數(shù)向量即其取值范圍,用目標函數(shù)和等式或不等式進行描述;在實驗區(qū)域范圍內(nèi)隨機投放足夠數(shù)量的蜜蜂,蜜蜂隨機搜索路徑時會不斷更新信息素矩陣,利用蜂群算法的正反饋性,最終產(chǎn)生的信息素矩陣,從而確定蜂源的位置。初始的信息素矩陣不能為0,蜜蜂轉(zhuǎn)移將不能開始,所以要采用隨機矩陣作為信息素矩陣初始化。蜜蜂下一步要走的位置,由轉(zhuǎn)移概率決定。
步驟二:根據(jù)步驟一中確定的參數(shù)向量的個數(shù)和取值范圍,初始化人工蜂群,確定最大限制迭代次數(shù)Limit、最大循環(huán)次數(shù)c及搜索目標參數(shù)個數(shù)N,令引領(lǐng)蜂在初始位置領(lǐng)域內(nèi)隨機地搜索蜜源;
所涉及的引領(lǐng)蜂初始位置表達式為:
式中,Rij為0到1之間的隨機數(shù),N為0到1之間的設(shè)定值;i=1....N,j=1...N,V為蜜源的個數(shù),為第j個參數(shù)的最小取值,為第j個參數(shù)的最大取值,rand(0,1)表示0到1范圍內(nèi)的隨機數(shù);
引領(lǐng)蜂初始位置領(lǐng)域L的位置表達式為:
其中,wij為引領(lǐng)蜂初始位置,lij為引領(lǐng)蜂領(lǐng)域搜索位置,φij為參數(shù)搜索步長,取值范圍為[-F,F],F為0到1之間的隨機數(shù);
F的表達式為:
步驟三:以概率P選取步驟一中由混沌算法確定的參數(shù)作為調(diào)整對象,引入概率P控制搜索過程中矩陣向量中參數(shù)的個數(shù),并適當(dāng)?shù)母淖儾介L參數(shù)F,首先由引領(lǐng)蜂在當(dāng)前蜜源鄰域內(nèi)隨機搜索新的蜜源,獲取個蜜源的代價函數(shù)值qi,由qi計算適應(yīng)度函數(shù)值Qi,在當(dāng)前搜索的位置Qi大于qi時,則轉(zhuǎn)移到其它為去過的蜜源,引領(lǐng)蜂將在新的蜜源附近搜索并記錄Qi較大的蜜源位置信息;
所涉及的M表達式為:
M=e-a·b/c
其中,b為蜂群循環(huán)次數(shù),c為最大循環(huán)次數(shù),a為控制參數(shù);
所涉及的適應(yīng)度函數(shù)值fiti表達式為:
式中,abs()為取絕對值函數(shù);
步驟四:待所有引領(lǐng)蜂搜索結(jié)束,根據(jù)各引領(lǐng)蜂所在蜜源的適應(yīng)度函數(shù)值Qi,得到跟隨蜂轉(zhuǎn)至各蜂源概率Pi,依據(jù)概率進行位置更新,并記錄每次蜂群迭代搜索過程中的適應(yīng)度函數(shù)值最大的蜜源位置wbest;
所涉及的轉(zhuǎn)移概率Pi表達式為:
其中,Qmin為本次循環(huán)后適應(yīng)度函數(shù)值最小值,a為調(diào)整因子;
步驟五:重復(fù)步驟三、步驟四,經(jīng)過有限循環(huán)搜索,得到參數(shù)的最有估計值。
當(dāng)?shù)螖?shù)大于最大限制迭代次數(shù)Limit時,要放棄所在蜜源,同時由偵查蜂代替引領(lǐng)蜂產(chǎn)生一個新的位置。
根據(jù)權(quán)利要求書所述的基于改進人工蜂群算法的工程約束參數(shù)優(yōu)化方法,其特征在于,當(dāng)參數(shù)超過其取值范圍時,更新邊界條件,將得到的新參數(shù)設(shè)定為邊界的最值。
本發(fā)明的優(yōu)勢在于:
傳統(tǒng)的人工蜂群算法中,蜂群搜索過程中只改變某一個參數(shù),本發(fā)明不斷以一定概率判斷參數(shù)是否更新,將搜索范圍提高至多維度,不再只是像傳統(tǒng)的蜂群算法只在一維空間搜索,也因此使蜂群的搜索能力大幅度提高。發(fā)明中當(dāng)搜索步長是一定的,然而實際工程中隨著搜索次數(shù)增加,范圍會不斷的發(fā)生改變,因此步長也會發(fā)生自適應(yīng)變化,本發(fā)明考慮到這一因素,在保證搜索準確度的不下降的情況下,盡可能的減少搜索時間,提高效率。針對不同階段施加不同的壓力度,本發(fā)明改變跟隨蜂選擇引領(lǐng)蜂的轉(zhuǎn)移概率,既保證蜂群的多樣性,又加快參數(shù)估計的收斂速度,本文的混沌蜂群算法進行工程約束參數(shù)的優(yōu)化,能夠快速、清晰、準確且有效性強。
附圖說明
圖1是本發(fā)明的方法流程圖;
圖2是本發(fā)明提供的改變步長搜索示意圖;
圖3是本發(fā)明提供的伸縮結(jié)構(gòu)示意圖;
圖4是本發(fā)明提供的傳統(tǒng)蜂群算法和改進混沌蜂群算法對工程約束參數(shù)優(yōu)化效果對比圖;
具體實施方式
結(jié)合附圖對發(fā)明針對傳統(tǒng)蜂群算法的搜索策略進行改進,充分發(fā)揮人工蜂群算法的搜索能力和開發(fā)能力,并將改進后的人工蜂群搜索算法應(yīng)用到工程約束參數(shù)優(yōu)化過程,避免局部最優(yōu)情況出現(xiàn),同時,保證一定的收斂速度和收斂精度。
本發(fā)明包括以下幾個步驟:
步驟一:通過混沌算法確定參數(shù)向量即其取值范圍,用目標函數(shù)和等式或不等式進行描述;在實驗區(qū)域范圍內(nèi)隨機投放足夠數(shù)量的蜜蜂,蜜蜂隨機搜索路徑時會不斷更新信息素矩陣,利用蜂群算法的正反饋性,最終產(chǎn)生的信息素矩陣,從而確定蜂源的位置。初始的信息素矩陣不能為0,蜜蜂轉(zhuǎn)移將不能開始,所以要采用隨機矩陣作為信息素矩陣初始化。蜜蜂下一步要走的位置,由轉(zhuǎn)移概率決定。
步驟二:根據(jù)步驟一中確定的參數(shù)向量的個數(shù)和取值范圍,初始化人工蜂群,確定最大限制迭代次數(shù)Limit、最大循環(huán)次數(shù)c及搜索目標參數(shù)個數(shù)N,令引領(lǐng)蜂在初始位置領(lǐng)域內(nèi)隨機地搜索蜜源;
步驟三:以概率P選取步驟一中由混沌算法確定的參數(shù)作為調(diào)整對象,引入概率P控制搜索過程中矩陣向量中參數(shù)的個數(shù),并適當(dāng)?shù)母淖儾介L參數(shù)F,首先由引領(lǐng)蜂在當(dāng)前蜜源鄰域內(nèi)隨機搜索新的蜜源,獲取個蜜源的代價函數(shù)值qi,由qi計算適應(yīng)度函數(shù)值Qi,在當(dāng)前搜索的位置Qi大于qi時,則轉(zhuǎn)移到其它為去過的蜜源,引領(lǐng)蜂將在新的蜜源附近搜索并記錄Qi較大的蜜源位置信息;
步驟四:待所有引領(lǐng)蜂搜索結(jié)束,根據(jù)各引領(lǐng)蜂所在蜜源的適應(yīng)度函數(shù)值Qi,得到跟隨蜂轉(zhuǎn)至各蜂源概率Pi,依據(jù)概率進行位置更新,并記錄每次蜂群迭代搜索過程中的適應(yīng)度函數(shù)值最大的蜜源位置wbest;
步驟五:若選擇蜜源,則轉(zhuǎn)化為引領(lǐng)蜂搜索新的蜜源,同時在蜜源附近搜索并記錄適應(yīng)度函數(shù)值較大的蜜源位置;
步驟六:如果迭代次數(shù)大于最大限制迭代次數(shù)Limit,得到的最優(yōu)解仍沒有變化,要放棄所在蜜源,同時由偵察蜂代替引領(lǐng)蜂產(chǎn)生一個新的位置;
步驟七:如果某一參數(shù)超過其最大取值范圍,應(yīng)將該參數(shù)設(shè)定為該邊界的最大值或最小值;
步驟八:記錄每次蜂群迭代搜索過程中的適應(yīng)度函數(shù)值最大的蜜源位置xbest,重復(fù)步驟三至步驟七,經(jīng)過有限次循環(huán)搜索,得到參數(shù)的最優(yōu)估計值。
各步驟具體為:
一種基于改進人工蜂群算法的工程約束參數(shù)優(yōu)化方法,實時參數(shù)估計方法包括以下步驟:
步驟一:通過混沌算法確定參數(shù)向量即其取值范圍,用目標函數(shù)和等式或不等式進行描述;在實驗區(qū)域范圍內(nèi)隨機投放足夠數(shù)量的蜜蜂,蜜蜂隨機搜索路徑時會不斷更新信息素矩陣,利用蜂群算法的正反饋性,最終產(chǎn)生的信息素矩陣,從而確定蜂源的位置。初始的信息素矩陣不能為0,蜜蜂轉(zhuǎn)移將不能開始,所以要采用隨機矩陣作為信息素矩陣初始化。蜜蜂下一步要走的位置,由轉(zhuǎn)移概率決定。
步驟二:根據(jù)步驟一中確定的參數(shù)向量的個數(shù)和取值范圍,初始化人工蜂群,確定最大限制迭代次數(shù)Limit、最大循環(huán)次數(shù)c及搜索目標參數(shù)個數(shù)N,令引領(lǐng)蜂在初始位置領(lǐng)域內(nèi)隨機地搜索蜜源;
步驟三:以概率P選取步驟一中由混沌算法確定的參數(shù)作為調(diào)整對象,引入概率P控制搜索過程中矩陣向量中參數(shù)的個數(shù),并適當(dāng)?shù)母淖儾介L參數(shù)F,首先由引領(lǐng)蜂在當(dāng)前蜜源鄰域內(nèi)隨機搜索新的蜜源,獲取個蜜源的代價函數(shù)值qi,由qi計算適應(yīng)度函數(shù)值Qi,在當(dāng)前搜索的位置Qi大于qi時,則轉(zhuǎn)移到其它為去過的蜜源,引領(lǐng)蜂將在新的蜜源附近搜索并記錄Qi較大的蜜源位置信息;
步驟四:待所有引領(lǐng)蜂搜索結(jié)束,根據(jù)各引領(lǐng)蜂所在蜜源的適應(yīng)度函數(shù)值fiti,得到跟隨蜂轉(zhuǎn)移至各蜜源概率Pi,依據(jù)概率進行位置更新;
步驟五:若選擇蜜源,則轉(zhuǎn)化為引領(lǐng)蜂搜索新的蜜源,同時在蜜源附近搜索并記錄適應(yīng)度函數(shù)值較大的蜜源位置;
步驟六:如果迭代次數(shù)大于最大限制迭代次數(shù)Limit,得到的最優(yōu)解仍沒有變化,要放棄所在蜜源,同時由偵察蜂代替引領(lǐng)蜂產(chǎn)生一個新的位置;
步驟七:如果某一參數(shù)超過其最大取值范圍,應(yīng)將該參數(shù)設(shè)定為該邊界的最大值或最小值;
步驟八:記錄每次蜂群迭代搜索過程中的適應(yīng)度函數(shù)值最大的蜜源位置xbest,重復(fù)步驟三至步驟七,經(jīng)過有限次循環(huán)搜索,得到參數(shù)的最優(yōu)估計值。
在步驟一中,針對具體工程約束問題,確定參數(shù)向量及其取值范圍,一個工程約束問題可定義可以如下(分別代表面積、體積、重量等):
minf(x),x=(x1,x2,...,xn)∈Rn
s.t.g1(x)≤0,i=1,2,...,n
hj(x)=0,j=1,2,...,p
lk≤xk≤uk,k=1,2,...,n
其中,x=(x1,x2,...,xn)∈Rn是參數(shù)向量,xi=(i=1,...,n)為參數(shù)向量中某一具體參數(shù),n為參數(shù)向量中參數(shù)的個數(shù),m和p分別表示不等式約束和等式約束條件的個數(shù),f(x)為目標函數(shù),gi(x)≤0和hj(x)=0表示參數(shù)向量在n維空間上的邊界條件約束,lk和uk分別表示xk的下界和上界。
在步驟二中,初始化人工蜂群,確定蜂群數(shù)量,分成三組分別測試,第一組引領(lǐng)蜂的數(shù)量多于跟隨蜂;第二組一半為引領(lǐng)蜂,另一半為跟隨蜂;第三組中跟隨蜂數(shù)量多于引領(lǐng)蜂。經(jīng)過仿真發(fā)現(xiàn)第二組的效率最高,因此設(shè)定為一半引領(lǐng)蜂,另一半為跟隨蜂。
設(shè)定最大限制迭代次數(shù)Limit、最大循環(huán)次c及搜索目標參數(shù)個數(shù)N。根據(jù)參數(shù)向量的取值范圍,隨機確定各引領(lǐng)蜂的初始位置,即
其中,i=1...SN,j=1...D,SN為蜜源(引領(lǐng)蜂)的數(shù)量,D為參數(shù)向量中參數(shù)的個數(shù),為第j個參數(shù)的最小取值,為第j個參數(shù)的最大取值,rand(0,1)表示0到1范圍內(nèi)的隨機數(shù)。蜂群初始化后令引領(lǐng)蜂在初始位置鄰域內(nèi)隨機地搜索蜜源。
在步驟三中,根據(jù)一定概率選取參數(shù)向量中部分參數(shù)作為調(diào)整對象,在標準人工蜂群算法中,只進行一維參數(shù)變化,嚴重制約了搜索性能,考慮引入?yún)?shù)M控制過程中改變參數(shù)向量中參數(shù)的個數(shù)。每個引領(lǐng)蜂進行搜索時,按下式進行參數(shù)變化
其中,wij為引領(lǐng)蜂初始位置,lij為引領(lǐng)蜂領(lǐng)域搜索位置,φij為參數(shù)搜索步長,取值范圍為[-F,F],F為0到1之間的隨機數(shù);
當(dāng)蜂群循環(huán)次數(shù)較小時,選取較大的M,保持蜂群的多樣性,擴大搜索范圍,加快搜索過程;當(dāng)蜂群循環(huán)次數(shù)較大時,選取較小的M,縮小搜索范圍,提高搜索穩(wěn)定性,保證搜索的精度。因此,綜合考慮蜂群搜索的速度和精度影響,令M按下面的規(guī)律變化;
M=e-a·b/c
其中,b為蜂群循環(huán)次數(shù),c為最大循環(huán)次數(shù),a為控制參數(shù)。
此外,隨迭代次數(shù)增加,自適應(yīng)調(diào)整搜索步長調(diào)節(jié)參數(shù)F,如圖1所示,如果本次預(yù)想移動的方向與本次迭代最優(yōu)解的方向基本一致則增大步長,否則減小步長,見圖1,其中φ是蜂群移動方向與最優(yōu)蜜源方向的夾角,wbest是當(dāng)前蜂群搜索到適應(yīng)度值最大的位置。為了保證穩(wěn)定性,限定步長最大不超過Fmax。令F按下面規(guī)律變化
跟隨蜂根據(jù)各蜜源對應(yīng)的代價函數(shù)值fi,由fi獲取適應(yīng)度函數(shù)值fiti,
式中,abs()為取絕對值函數(shù)。
將搜索到蜜源的qi與當(dāng)前蜜源位置的適應(yīng)度函數(shù)值Qi進行比較,如當(dāng)前搜索qi計算適應(yīng)度函數(shù)值Qi,在當(dāng)前搜索的位置Qi大于qi時,則轉(zhuǎn)移到其它為去過的蜜源,引領(lǐng)蜂將在新的蜜源附近搜索并記錄Qi較大的蜜源位置信息;
在步驟四中,根據(jù)上面得到的適應(yīng)度函數(shù)值Qi,獲取轉(zhuǎn)移至個蜜源概率Pi,在標準人工蜂群智能算法中,通過下式獲取轉(zhuǎn)移概率Pi
其中,N表示蜜源的個數(shù)。
在搜索最優(yōu)解過程中,不同階段的選擇壓力不同,當(dāng)蜂群循環(huán)次數(shù)較小時,希望適應(yīng)度相對較小的引領(lǐng)蜂也有機會招募到跟隨蜂,使蜂群保持較高的種群多樣性;當(dāng)蜂群循環(huán)次數(shù)較大時,希望縮小搜索范圍,加快搜索進度。
根據(jù)引領(lǐng)蜂的適應(yīng)度函數(shù)值計算轉(zhuǎn)移概率Pi,按下式計算:
其中,N為蜜源的個數(shù),Qi為第i各蜜源對應(yīng)的適應(yīng)度函數(shù)值,蜂群循環(huán)次數(shù)為c,Qmin本次循環(huán)后適應(yīng)度函數(shù)值最小值,c為最大循環(huán)次數(shù),a為調(diào)整因子。
跟隨蜂按照上面的轉(zhuǎn)移至個引領(lǐng)蜂概率Pi,選擇其中某個引領(lǐng)蜂進行跟隨,從而進行位置更新。
在步驟六中,如果經(jīng)過一定次數(shù)迭代后,得到的最優(yōu)解沒有改進,要放棄所在蜜源,同時由偵察蜂代替引領(lǐng)蜂產(chǎn)生一個新的位置。在標準人工蜂群算法中,按下式確定新的位置
其中,j為改變參數(shù)向量中某一個參數(shù)序號,和分別表示當(dāng)前蜂群指示的第j個參數(shù)的最小值和最大值,
與引領(lǐng)蜂和跟隨蜂一樣,標準的人工蜂群算法只能進行一維參數(shù)搜索,為了提高蟻群的多樣性,做出如下改進
式中,Rij為0到1之間的隨機數(shù),M為0到1之間的設(shè)定值,與引領(lǐng)蜂搜索過程中取值一致,令M按照下面的規(guī)律變化:
M=e-a·b/c
其中,b為蜂群循環(huán)次數(shù),c為最大循環(huán)次數(shù),a為控制參數(shù)。
在步驟七中,如果參數(shù)向量中某一參數(shù)超過其最大取值范圍,應(yīng)將該參數(shù)設(shè)定為該邊界的最大值和最小值,即
其中,j為改變參數(shù)向量中某一個參數(shù)序號,和分別表示當(dāng)前蜂群指示的第j個參數(shù)的最小值和最大值,
本發(fā)明的一種基本改進人工蜂群算法的工程約束參數(shù)優(yōu)化方法,流程圖如圖2所示,包括以下幾個步驟:
步驟一:針對具體工程約束參數(shù)優(yōu)化問題,確定參數(shù)向量及其取值范圍用
目標函數(shù)和等式(或不等式)進行描述。
具體為,針對具體工程約束問題,確定參數(shù)向量及其取值范圍,用目標函數(shù)
和等式(或不等式)進行描述,一般工程上的約束參數(shù)指的是零件的機械結(jié)構(gòu)尺寸,長度、直徑、齒數(shù)等,目標函數(shù)一般為面積、體積、重量等,一個工程約束問題可定義如下:
minf(x),x=(x1,x2,...,xn)∈Rn
s.t.g1(x)≤0,i=1,2,...,n
hj(x)=0,j=1,2,...,p
lk≤xk≤uk,k=1,2,...,n
其中,x=(x1,x2,...,xn)∈Rn是參數(shù)向量,xi=(i=1,...,n)為參數(shù)向量中某一具體參數(shù),n為參數(shù)向量中參數(shù)的個數(shù),m和p分別表示不等式約束和等式約束條件的個數(shù),f(x)為目標函數(shù),gi(x)≤0和hj(x)=0表示參數(shù)向量在n維空間上的邊界條件約束,lk和uk分別表示xk的下界和上界。
步驟二:根據(jù)參數(shù)向量的個數(shù)和取值范圍,初始化人工蜂群,確定最大限制迭代次數(shù)Limit、最大循環(huán)次數(shù)c及搜索目標參數(shù)個數(shù)N。根據(jù)參數(shù)向量的取值范圍,隨機確定各引領(lǐng)蜂的初始位置,即
其中,i=1...N,j=1...N,V為蜜源(引領(lǐng)蜂)的數(shù)量,N為參數(shù)向量中參數(shù)的個數(shù),為第j個參數(shù)的最小取值,為第j個參數(shù)的最大取值,rand(0,1)表示0到1范圍內(nèi)的隨機數(shù)。
蜂群初始化后,令引領(lǐng)蜂在初始位置鄰域內(nèi)隨機地搜索蜜源。
步驟三:以概率M選取參數(shù)作為調(diào)整對象,并自適應(yīng)調(diào)節(jié)搜索步長,令引領(lǐng)蜂在當(dāng)前蜜源鄰域內(nèi)隨機搜索新的蜜源,獲取各蜜源的代價函數(shù)值qi,由qi計算適應(yīng)度函數(shù)值Qi,如果搜索位置的適應(yīng)度函數(shù)值大于當(dāng)前蜜源的適應(yīng)度函數(shù)值,則轉(zhuǎn)移至新的蜜源。
具體為,根據(jù)一定概率選取參數(shù)向量中部分參數(shù)作為調(diào)整對象,在標準人工
蜂群算法中,只進行一維參數(shù)變化,嚴重制約了搜索性能,考慮引入?yún)?shù)M控制搜索過程中改變參數(shù)向量中參數(shù)的個數(shù)。每個引領(lǐng)蜂進行搜索時,按下式進行參數(shù)變化
其中,wij為引領(lǐng)蜂初始位置,lij為引領(lǐng)蜂領(lǐng)域搜索位置,Rij為0到1之間的隨機數(shù),M為0到1之間的設(shè)定值,φij參數(shù)搜索步長,取值范圍為[-F,F],F為0到1之間的可調(diào)參數(shù);
當(dāng)蜂群循環(huán)次數(shù)較小時,選取較大的M,保持蜂群的多樣性,擴大搜索范圍,加快搜索過程;當(dāng)蜂群循環(huán)次數(shù)較大時,選取較小的M,縮小搜索范圍,提高搜索穩(wěn)定性,保證搜索的精度。因此,綜合考慮蜂群搜索的速度和精度影響,令M按下面的規(guī)律變化;
M=e-a·b/c
其中,b為蜂群循環(huán)次數(shù),c為最大循環(huán)次數(shù),a為控制參數(shù)。
此外,隨迭代次數(shù)增加,自適應(yīng)調(diào)整搜索步長調(diào)節(jié)參數(shù)F,如圖1所示,如果本次預(yù)想移動的方向與本次迭代最優(yōu)解的方向基本一致則增大步長,否則減小步長,見圖1,其中φ是蜂群移動方向與最優(yōu)蜜源方向的夾角,wbest是當(dāng)前蜂群搜索到適應(yīng)度值最大的位置。為了保證穩(wěn)定性,限定步長最大不超過Fmax。令SF按下面規(guī)律變化
跟隨蜂根據(jù)各蜜源對應(yīng)的代價函數(shù)值qi,由qi獲取適應(yīng)度函數(shù)值Qi,
式中,abs()為取絕對值函數(shù)。
將搜索到蜜源的適應(yīng)度函數(shù)值(蜜量)與當(dāng)前蜜源位置的適應(yīng)度函數(shù)值進行比較,如果搜索蜜源的適應(yīng)度函數(shù)值大于當(dāng)前蜜源的適應(yīng)度函數(shù)值,則轉(zhuǎn)移至新的蜜源,否則,繼續(xù)搜索新的蜜源。
步驟四,待所有引領(lǐng)蜂搜索結(jié)束,根據(jù)各引領(lǐng)蜂所在蜜源的適應(yīng)度函數(shù)值fiti,得到跟隨轉(zhuǎn)移至各蜜源概率Pi
其中,N表示蜜源的個數(shù)。
在搜索最優(yōu)解過程中,不同階段的選擇壓力不同,當(dāng)蜂群循環(huán)次數(shù)較小時,希望適應(yīng)度相對較小的引領(lǐng)蜂也有機會招募到跟隨蜂,使蜂群保持較高的種群多樣性;當(dāng)蜂群循環(huán)次數(shù)較大時,希望縮小搜索范圍,加快搜索進度。
根據(jù)引領(lǐng)蜂的適應(yīng)度函數(shù)值計算轉(zhuǎn)移概率Pi,按下式計算:
其中,N為蜜源的個數(shù),Qi為第i各蜜源對應(yīng)的適應(yīng)度函數(shù)值,蜂群循環(huán)次數(shù)為c,Qmin本次循環(huán)后適應(yīng)度函數(shù)值最小值,c為最大循環(huán)次數(shù),a為調(diào)整因子。
跟隨蜂按照上面的轉(zhuǎn)移至個引領(lǐng)蜂概率Pi,選擇其中某個引領(lǐng)蜂進行跟隨,從而進行位置更新。
步驟五:若選擇蜜源,則轉(zhuǎn)化為引領(lǐng)蜂搜索新的蜜源,同時在蜜源附近搜索并記錄適應(yīng)度函數(shù)值較大的蜜源位置。
步驟六:如果迭代次數(shù)大于最大限制迭代次數(shù)Limit,得到的最優(yōu)解仍沒有變化,要放棄所在蜜源,同時由偵察蜂代替引領(lǐng)蜂產(chǎn)生一個新的位置。
具體為,如果迭代次數(shù)大于最大限制迭代次數(shù)Limit,得到的最優(yōu)解仍沒有變化,要放棄所在蜜源,同時由偵察蜂代替引領(lǐng)蜂產(chǎn)生一個新的位置。在標準人工蜂群算法中,按下式確定新的位置
其中,j為改變參數(shù)向量中某一個參數(shù)序號,和分別表示當(dāng)前蜂群指示的第j個參數(shù)的最小值和最大值,
與引領(lǐng)蜂和跟隨蜂一樣,標準的人工蜂群算法只能進行一維參數(shù)搜索,為了提高蟻群的多樣性,做出如下改進
式中,Rij為0到1之間的隨機數(shù),M為0到1之間的設(shè)定值,與引領(lǐng)蜂搜索過程中取值一致,令M按照下面的規(guī)律變化:
M=e-a·b/c
其中,b為蜂群循環(huán)次數(shù),c為最大循環(huán)次數(shù),a為控制參數(shù)。
步驟七中,如果參數(shù)向量中某一參數(shù)超過其最大取值范圍,應(yīng)將該參數(shù)設(shè)定為
該邊界的最大值和最小值,即
其中,j為改變參數(shù)向量中某一個參數(shù)序號,和分別表示當(dāng)前蜂群指示的第j個參數(shù)的最小值和最大值,
步驟八:記錄每次蜂群迭代搜索過程中的適應(yīng)度函數(shù)值最大的蜜源位置wbest,重復(fù)步驟三至步驟七,經(jīng)過有限次數(shù)循環(huán)搜索,得到參數(shù)的最優(yōu)估計值。
實施過程:伸縮繩結(jié)構(gòu)如圖3所示,優(yōu)化的目標是尋求滿足最小偏差、切應(yīng)力、湍振頻率等一系列約束條件的多個角車變量,及平均卷直徑D(x1)、線直徑d(x2)和活動卷的數(shù)量p(x3),使得伸縮繩的重量最小。
伸縮繩問題的數(shù)學(xué)模型描述如下:
min f(x)=(x3+2)x2x1,x=(x1,x2,x3)∈R3
g4(x)=(x1+x2)/1.5-1≤0
0.05≤x1≤2,0.25≤x1≤1.3,3.2≤x1≤15
初始條件:人工蜂群數(shù)量N為100,最大限制次數(shù)Limit為50,最大循環(huán)次數(shù)為1000,目標參數(shù)個數(shù)為3,分別利用標準人工蜂群算法和改進后蜂群算法,在上述條件下進行對比仿真。
仿真結(jié)果見圖4,仿真結(jié)果表明:在工程約束優(yōu)化問題求解中,相比標準人工蜂群算法改進后的蜂群算法的收斂時間明顯縮短,即有效提高搜索效率,而且在收斂精度上也有較大提高。
從以上實施例不難看出,針對一般工程約束參宿優(yōu)化方法存在結(jié)構(gòu)復(fù)雜難以確定、局部最優(yōu)、走左效率低等問題。本發(fā)明在傳統(tǒng)人工蜂群算法的基礎(chǔ)上,改進搜索策略和選擇策略,充分發(fā)揮人工蜂群算法的搜索能力和開發(fā)能力,并將改進后的人工蜂群搜索算法應(yīng)用到工程約束參數(shù)優(yōu)化過程,實現(xiàn)多維度快速、清晰、準確且有效性工程約束參數(shù)的優(yōu)化。