一種變步長自適應的改進人工魚群算法
【專利摘要】本發明公開了一種變步長自適應的改進人工魚群算法其特征是按如下步驟進行:步驟1、初始化;步驟2、公告板初始化;步驟3、執行聚群行為;步驟4、執行追尾行為;步驟5、執行覓食行為;步驟6、判斷終止條件;步驟7、輸出食物濃度最大值。本發明能增強算法跳出局部最優能力、加快全局收斂速度和提高計算結果精度,從而滿足解決實際問題的需要。
【專利說明】一種變步長自適應的改進人工魚群算法
【技術領域】
[0001]本發明涉及一種變步長自適應的改進人工魚群算法。
【背景技術】
[0002]各個領域中許多問題都需要建立模型來解決,最終都要歸結為函數優化問題,因此函數優化應用越來越普遍,越來越復雜,其特點:多變量,多極值,震蕩性強,非線性。2002年李曉磊從仿生學機理中獲得啟發,提出了人工魚群算法,該算法的特點:初始值要求不高;魯棒性強;收斂速度快;全局搜索能力強。人工魚群算法設計參數較少,實現較簡單且效率高,該算法的思想已應用到計算機領域。
[0003]該算法還有以下缺點:前期收斂速度快,但后期收斂速度慢;尋優結果精度不高;易陷入局部最優。當前有研究,通過改變步長和擁擠度因子以提高算法效率;將模糊聚類思想引入算法中以提高其效率;基于差分策略改進人工魚群算法以提高其搜索效率;引入變異算子和小生境思想改進人工魚群算法將小生境排擠機制引入人工魚群算法;將粒子群算法與人工魚群算法相結合,以提高收斂速度。以上的改進研究在一定程度上提高了人工魚群算法的優化性能,但后期收斂速度慢、結果精度低、易陷入局部最優等問題仍然未得到很好地解決,需要進一步的改進完善。
【發明內容】
[0004]本發明的目的在于提出一種基于變步長自適應的改進人工魚群算法,能增強算法跳出局部最優能力、加快全局收斂速度和提高計算結果精度,從而滿足解決實際問題的需要。
[0005]為解決上述技術問題,本發明所采用的技術方案是:
[0006]本發明一種變步長自適應的改進人工魚群算法的特點是,
[0007]假設有N條人工魚X = (X1, X2,...,Xi, -,XJ, I ^ i ^ N, Xi表示第i條人工魚;定義人工魚X的食物濃度為Y = f (X),所述人工魚X的感知范圍為Visual ;所述人工魚X的移動步長為Step ;所述人工魚X的擁擠度因子為δ ;所述人工魚X的搜索食物濃度Y的嘗試次數為try_number ;所述改進人工魚群算法是按如下步驟進行:
[0008]步驟1、初始化:
[0009]利用RandO函數初始化所述N條人工魚X ;初始化所述感知范圍Visual,所述移動步長Step,所述擁擠度因子δ ,所述嘗試次數try_number,令當前迭代次數I = O,最大迭代次數為L, L > O,人工魚的概率因子a,a e (0,I),常系數為C ;
[0010]步驟2、公告板初始化:
[0011]通過Y = f(X)獲得所述N條人工魚的食物濃度為Y = (Y1, Y2,…,Yi,…,YN},以max (Y1, Y2,…,Yi,…,Yj作為最優值賦值給公告板Ytjbj ;
[0012]步驟3、執行聚群行為:
[0013]步驟3.1、通過式(I)獲得第i條人工魚Xi與第j條人工魚之間的距離Clij,從而獲得第i條人工魚Xi與所述N條人工魚X之間的距離Di = {dn,di2,…,Clij,…,diN}:
[0014]Clij = I IX1-XjI |1 ^ j(I)
[0015]步驟3.2、根據(Iij ( Visual,獲得所述距離 Di = {dn, di2,...,(Iij,...,diN}中每個距離Clij小于等于感知范圍Visual的人工魚個數m以及與所述人工魚相對應的m個人工魚{Xn,Xi2,…,XJ,則通過式⑵獲得中心位置X。:
【權利要求】
1.一種變步長自適應的改進人工魚群算法,其特征是, 假設有N條人工魚X = (X1, X2,...,Xi,…,XN},I≤i≤N, Xi表示第i條人工魚;定義人工魚X的食物濃度為Y = f (X),所述人工魚X的感知范圍為Visual ;所述人工魚X的移動步長為Step ;所述人工魚X的擁擠度因子為δ ;所述人工魚X的搜索食物濃度Y的嘗試次數為try_number ;所述改進人工魚群算法是按如下步驟進行: 步驟1、初始化: 利用RandO函數初始化所述N條人工魚X ;初始化所述感知范圍Visual,所述移動步長Step,所述擁擠度因子δ ,所述嘗試次數try_number,令當前迭代次數I = O,最大迭代次數為L, L > O,人工魚的概率因子a,a e (O, I),常系數為C ; 步驟2、公告板初始化: 通過Y = f(X)獲得所述N條人工魚的食物濃度為Y = (Y1, Y2, - ,Yi, - ,YJ,以max (Y1, Y2,…,Yi,…,Yj作為最優值賦值給公告板Ytjbj ; 步驟3、執行聚群行為: 步驟3.1、通過式(I)獲得第i條人工魚Xi與第j條人工魚之間的距離Clij,從而獲得第i條人工魚Xi與所述N條人工魚X之間的距離Di = {dn,di2,…,Clij,…,diN}:
Clij = I IX1-XjI |1 ^ j(I) 步驟3.2、根據dij≤ Visual,獲得所述距離Di = {dn, di2,…,(Iij,…,diN}中每個距離扎小于等于感知范圍Visual的人工魚個數m以及與所述人工魚相對應的m個人工魚{Xn,Xi2,…,XJ,則通過式⑵獲得中心位置X。: Y— ^V/i+A^/2H—卜入,im“、 步驟3.3、利用式(3)判斷所述中心位置X。的食物濃度Y。是否大于第i條人工魚Xi的食物濃度Yi,若式(3)成立,執行步驟3.4,否則執行步驟5 ; Yc/m> SYi (3) 步驟3.4、利用式(4)獲得所述移動步長Step:
Step = RandX | Xc-Xi | (4) 步驟3.5、利用式(5)獲得第i條人工魚Xi的移動所到的位置Xi next: Xi next =Xi+RandxstePx Χy€ / (5) —AC-Ai 步驟4、執行追尾行為: 步驟4.1、根據dij ( Visual,獲得所述距離Di = {dn, di2,…,(Iij,…,diN}中每個距離Clij小于等于感知范圍Visual的人工魚個數η以及所述人工魚相對應的η個人工魚的食物濃度{Yn,Yi2,…,YJ,令最大食物濃度Ymax = max {Yn, Yi2,…,YJ,并獲得與所述最大食物濃度Υ_以及所對應的食物濃度最大的人工魚Xmax ;
步驟 4.2、根據 dMXj = I I Xmax-Xj I I ( Visual,獲得所述距離 Dniax = {dmaxl, dmax2,…,dmaxJ,…,dmaxN}中每個距離dmaxj小于等于感知范圍Visual的人工魚個數η’ ; 步驟4.3、利用式(6)判斷所述最大人工魚位置Xmax的食物濃度Ymax是否大于第i條人工魚Xi的食物濃度Yi,若式(6)成立,執行步驟4.4,否則執行步驟5 ;Y-/n,> SYi (6) 步驟4.4、利用式(7)獲得所述移動步長Step:
Step = RandX | Xmax-Xi | | (7) 步驟4.5、利用式(8)獲得第i條人工魚Xi所移動到的位置Xi next,:
步驟5、執行覓食行為: 步驟5.1、令t = O ; 步驟5.2、利用RandO函數在第i條人工魚Xi的感知范圍內隨機產生覓食位置Xrand ; 步驟5.3、若Λ Y = Yrand-Yi > O或者exp (CX I X Λ Y) > α,則令移動步長 Step = RandX | Xrand-Xi | |,并執行步驟5.4 ;否則執行步驟5.5 ; 步驟5.4、通過式(9)獲得第i條人工魚Xi所移動到的位置Xi next";
步驟5.5、將t+1的值賦給t ;且滿足t ( try_number時,執行步驟5.2 ;否則執行步驟.5.6 ; 步驟5.6、通過式(10)獲得第i條人工魚Xi所移動到的位置Xi next"'; Xinext" ' = Xj+RandXStep (10) 步驟5.7、若Yi > Yobj,則將第i條人工魚Xi的食物濃度Y1賦值給所述公告板Ytjbj ;步驟6、若當前迭代次數I <最大迭代次數L,則將1+1賦值給1,并執行步驟3 ;否則執行步驟7 ; 步驟7、輸出所述公告板Ytjw,所述公告板Ytjw即為食物濃度最大值。
【文檔編號】G06N3/00GK104077629SQ201410346042
【公開日】2014年10月1日 申請日期:2014年7月18日 優先權日:2014年7月18日
【發明者】倪志偉, 朱旭輝, 程美英, 倪麗萍, 伍章俊 申請人:合肥工業大學