基於全局信息的人工魚群算法的製作方法
2023-07-27 03:49:56 1
專利名稱:基於全局信息的人工魚群算法的製作方法
技術領域:
本發明涉及一種人工魚群算法,確切地說就是把全局最優信息加入到人工魚位置的更新 中去,並提出人工魚的吞食行為和跳躍行為,屬於人工魚群算法技術領域。
背景技術:
人工魚群算法是一種新穎高效的群體智能算法,它模擬魚群的行為進行隨機的搜索,主 要利用人工魚的覓食、聚群、追尾和跳躍等行為,通過利用魚群中各個個體的局部信息達到 全局尋優的目的,基本的人工魚群算法具有良好的克服局部極值、取得全局最優值的能力, 算法簡單易於程序實現,具有良好的收斂性能。但是基本的人工魚群算法也存在算法精度低、 後期收斂慢、複雜度較高等缺點。
基本人工魚群算法的一些定義和基本行為描述-
人工魚的個體狀態可以表示為向量,=0^,...,;0,其中A('",...,")為欲求尋優的變量;人工 魚所在的位置的食物濃度表示為N/CV),其中y為目標函數值;人工魚個體之間的距離表示 為《=|,,-d Kis"W表示人工魚的感知距離;5為擁擠度因子。
1) 覓食行為
設人工魚的當前狀態為;r,,在其感知的範圍內隨機的選擇一個狀態A,如果在求極大值 問題中,y,A,則向該方向前進一步
人工魚的位置增量=0 1的隨機數x人工魚步長x (A狀態的位置矢量-義,狀態的位置矢 量)/距離;
反之,再重新隨機選擇狀態x"判斷是否滿足前進條件;這樣反覆嘗試trm"歷Z^r次後,
如果仍不滿足前進條件,則隨機移動一步。
2) 群聚行為
設人工魚的當前狀態為x,,參考當前人工魚視野範圍內(鄰《<&"。/)的同伴數目 及中
心位置&,如果中心食物濃度與中心夥伴數的比值大於擁擠度因子和當前人工魚食物濃度的
乘積,表明夥伴中心有較多的食物並且不太擁擠,則向夥伴中心位置方向前進一步
人工魚的位置增量=0 1的隨機數x人工魚步長x (x。狀態的位置矢量-x,狀態的位置矢
量)/距離;
否則執行覓食行為。 3)追尾行為設人工魚的當前狀態為《,參考當前人工魚的視野範圍內有最大食物濃度JO的夥伴A,如 果Y,的食物濃度與附近夥伴數的比值大於擁擠度因子和當前人工魚食物濃度的乘積,表明x, 有較高的食物濃度並且周圍不太擁擠,則向A",方向前進一步
人工魚的位置增量=0 1的隨機數x人工魚步長x (A狀態的位置矢量-義,狀態的位置矢
量)/距離;
否則執行覓食行為。
發明內容
為了提高人工魚群算法的收斂速度和後期收斂精度,本發明提出一種基於全局信息的人 工魚群算法,將全局最優人工魚的信息加入到人工魚的位置更新公式中,提出了人工魚的跳 躍行為和吞食行為,以增加基本人工魚群算法的全局尋優能力,降低基本人工魚群算法的運
算複雜度。
本發明的基於全局信息的人工魚群算法的行為描述如下
(1) 覓食行為
設當前全局最優的人工魚為;^,,,人工魚的當前狀態為《,在其感知的範圍內隨機的選擇 一個狀態義,,如果在求極大值問題中,,則向義,和最優人工魚&,,的矢量和方向前進一 步
人工魚的位置增量=0 1的隨機數x人工魚步長x (《狀態的位置矢量+最優人工魚& 的 位置矢量-《狀態的位置矢量)/距離;
反之,再重新隨機選擇狀態^,判斷是否滿足前進條件;這樣反覆嘗試^y一""M&er次後,
如果仍不滿足前進條件,則隨機移動一步;
(2) 群聚行為
設全局最優的人工魚為^^,,人工魚的當前狀態為Y,,參考當前人工魚視野範圍內(即 的同伴數目",及中心位置a,如果中心食物濃度與中心夥伴數的比值大於擁擠度因
子和當前人工魚食物濃度的乘積,表明夥伴中心有較多的食物並且不太擁擠,則向a和;^,的 矢量和方向前進一步
人工魚的位置增量=0 1的隨機數x人工魚步長x d狀態的位置矢量+最優人工魚;^的 位置矢量-A狀態的位置矢量)/距離;否則執行覓食行為; (3)追尾行為
設當前全局最優的人工魚為<^,,人工魚的當前狀態為A,參考當前人工魚的視野範圍內 有最大食物濃度y,的夥伴x,,如果^食物濃度與附近夥伴數的比值大於擁擠度因子和當前人 工魚食物濃度的乘積,表明^有較高的食物濃度並且周圍不太擁擠,則向;^和」^的矢量和
方向前進一步
人工魚的位置增量=0 1的隨機數x人工魚步長x (^狀態的位置矢量+最優人工魚^ ,的 位置矢量-x,狀態的位置矢量)/距離;
否則執行覓食行為;
(4) 跳躍行為
當人工魚種群的最優值在多次迭代變化量很小或者不變的情況下,尋優結果可能陷入了 局部值,本發明引入跳躍行為,在所有人工魚中選擇某些人工魚並且隨機的設置它們的參數
某條人工魚的下一狀態=現在的狀態+0 1的隨機數x使狀態發生改變的參數x人工魚的
視野;
讓一些人工魚跳躍出現在的局部最優的狀態,跳躍行為的引入避免算法陷入局部最優並 提高了尋求全局最優解的能力;
(5) 吞食行為
人工魚群算法的收斂速度與人工魚的數量成正比,人工魚個體越多收斂速度越快,但是 隨著人工魚數目的增多,將會需求更多的存儲空間,也會造成算法複雜度的增長。為解決高 複雜度的問題,本發明引入了人工魚的吞食的行為。人工魚群算法中目標函數值很低、弱小 的人工魚對算法的性能影響很小,但卻增加了算法的複雜度。根據自然界中弱小的魚會被大 魚吞食的現象,把目標函數值低於一定閾值的人工魚淘汰掉,就像自然界中弱小的魚會被吞 食掉一樣,減少人工魚的數量從而降低算法的複雜度,算法的性能依然良好。
按照上述人工魚群行為的描述,本發明的基於全局信息的人工魚群算法包括以下步驟
(1) 首先進行初始化設置,包括人工魚群的個體數M每條人工魚的初始位置,人工魚 的視野Ki'犯W,最大迭代次數嘗試次數7>r—""/^er,擁擠度因子5和要執行吞食行 為的閾值7Lra^e;
(2) 計算每條人工魚的適應度值,並記錄全局最優的人工魚的狀態;
(3) 對每條人工魚進行評價,對其要執行的行為進行選擇,包括覓食行為、群聚行為、 追尾行為、吞食行為和跳躍行為;
(4) 執行人工魚選擇的行為,基於全局信息和局部信息更新人工魚的位置信息;
(5) 更新全局最優人工魚的狀態;(6)如果滿足循環結束的條件就輸出結果,否則就跳轉到步驟(2)。
本發明對基本人工魚群算法進行了改進,提出了一種新的魚群尋優模式和新穎的人工魚 行為,包括人工魚位置更新模式的改進和兩種新穎的人工魚的行為的提出,全局信息的加入, 提高了基本魚群算法的收斂速度和尋優精度,吞食行為的提出降低了算法的複雜度,跳躍行 為的提出增強了算法的擺脫局部極值的能力。
附圖是本發明的流程示意圖。
具體實施例方式
本發明的全局魚群算法的流程如附圖所示,包括如下步驟
1. 首先進行初始化設置,包括人工魚群的個體數,每條人工魚的初始位置,人工魚的視
野,最大迭代次數,嘗試次數,擁擠度因子和要執行吞食行為的閾值;
2. 計算每條人工魚的適應度值,並記錄全局最優的人工魚的狀態;
3. 對每條人工魚進行評價,對其要執行的行為進行選擇;
4. 執行人工魚選擇的行為,更新人工魚的位置信息;
5. 更新全周最優人工魚的狀態;
6. 如果滿足循環結束的條件就輸出結果,否則就跳轉到2.。
仿真結果表示,全局信息人工魚群算法具有更好的性能,如有更快的收斂速度和熟練精度, 有更低的算法複雜度,有著更好的全局尋優能力。
權利要求
1.一種基於全局信息的人工魚群算法,包括以下步驟(1)首先進行初始化設置,包括人工魚群的個體數N,每條人工魚的初始位置,人工魚的視野Visual,最大迭代次數I_max,嘗試次數Try_number,擁擠度因子δ和要執行吞食行為的閾值T_value;(2)計算每條人工魚的適應度值,並記錄全局最優的人工魚的狀態;(3)對每條人工魚進行評價,對其要執行的行為進行選擇,包括覓食行為、群聚行為、追尾行為、吞食行為和跳躍行為;各行為的描述如下A覓食行為設當前全局最優的人工魚為Xbest,人工魚的當前狀態為Xi,在其感知的範圍內隨機的選擇一個狀態Xj,如果在求極大值問題中,Yi<Yj,則向Xj和最優人工魚Xbest的矢量和方向前進一步人工魚的位置增量=0~1的隨機數×人工魚步長×(Xj狀態的位置矢量+最優人工魚Xbest的位置矢量-Xi狀態的位置矢量)/距離;反之,再重新隨機選擇狀態Xj,判斷是否滿足前進條件;這樣反覆嘗試try_number次後,如果仍不滿足前進條件,則隨機移動一步;B群聚行為設當前全局最優的人工魚為Xbest,人工魚的當前狀態為Xi,參考當前人工魚視野範圍內的同伴數目nf及中心位置Xc,如果中心食物濃度與中心夥伴數的比值大於擁擠度因子和當前人工魚食物濃度的乘積,表明夥伴中心有較多的食物並且不太擁擠,則向Xc和Xbest的矢量和方向前進一步人工魚的位置增量=0~1的隨機數×人工魚步長×(Xc狀態的位置矢量+最優人工魚Xbest的位置矢量-Xi狀態的位置矢量)/距離;否則執行覓食行為;C追尾行為設當前全局最優的人工魚為Xbest,人工魚的當前狀態為Xi,參考當前人工魚的視野範圍內有最大食物濃度Yj的夥伴Xj,如果Xj食物濃度與附近夥伴數的比值大於擁擠度因子和當前人工魚食物濃度的乘積,表明Xj有較高的食物濃度並且周圍不太擁擠,則向Xj和Xbest的矢量和方向前進一步人工魚的位置增量=0~1的隨機數×人工魚步長×(Xj狀態的位置矢量+最優人工魚Xbest的位置矢量-Xi狀態的位置矢量)/距離;否則執行覓食行為;D跳躍行為在所有人工魚中選擇某些人工魚並且隨機的設置它們的參數某條人工魚的下一狀態=現在的狀態+0~1的隨機數×使狀態發生改變的參數×人工魚的視野;讓一些人工魚跳躍出現在的局部最優的狀態;E吞食行為根據自然界中弱小的魚會被大魚吞食的現象,把目標函數值低於一定閾值的人工魚淘汰掉;(4)執行人工魚選擇的行為,基於全局信息和局部信息更新人工魚的位置信息;(5)更新全局最優人工魚的狀態;(6)如果滿足循環結束的條件就輸出結果,否則就跳轉到步驟(2)。
全文摘要
本發明提出了一種基於全局信息的人工魚群算法,包括以下步驟(1)首先進行初始化設置;(2)計算每條人工魚的適應度值,並記錄全局最優的人工魚的狀態;(3)對每條人工魚進行評價,對其要執行的行為進行選擇,包括覓食行為、群聚行為、追尾行為、吞食行為和跳躍行為;(4)執行人工魚選擇的行為,基於全局信息和局部信息更新人工魚的位置信息;(5)更新全局最優人工魚的狀態;(6)如果滿足循環結束的條件就輸出結果,否則就跳轉到步驟(2)。本發明對基本人工魚群算法進行了改進,提出了一種新的魚群尋優模式和人工魚的吞食行為和跳躍行為,降低了算法的複雜度,增強了算法的全局尋優能力,提高了算法的收斂速度和收斂精度。
文檔編號G06N3/00GK101515338SQ20091001964
公開日2009年8月26日 申請日期2009年3月6日 優先權日2009年3月6日
發明者江銘炎, 程永明, 袁東風 申請人:山東大學