1. 程式人生 > >人工魚群算法總結

人工魚群算法總結

快的 出現 並行處理 增強 bsp 函數 數值 實現 限制

( 隔了一段時間再來總結,就像重新學習了一次似的,以後一定要及時總結。本編總結系當時研究算法時記錄的一些內容,部分原創,部分源自網絡)

一、 人工魚的結構模型

人工魚是真實魚抽象化、虛擬化的一個實體,其中封裝了自身數據和一系列行為,可以接受環境的刺激信息,做出相應的活動。其所在的環境由問題的解空間和其他人工魚的狀態,它在下一時刻的行為取決於自身的狀態和環境的狀態,並且它還通過自身的活動來影響環境,進而影響其他人工魚的活動。

技術分享圖片

二、 人工魚群算法的尋優原理

人工魚群算法在尋優的過程中,可能會集結在幾個局部最優解的周圍,使人工魚跳出局部最優解,實現全局尋優的因素主要有:

  • 覓食行為中重復次數較少時,為人工魚提供了隨機移動的機會,從而可能跳出局部最優解;
  • 隨機步長使得人工魚在前往局部最優解的途中,有可能轉向全局最優解;
  • 擁擠度因子 δδ 限制了聚群的規模,使得人工魚能夠更廣泛的尋優;
  • 聚群行為能夠促使少出陷於局部最優解的人工魚趨向全局最優解的人工魚方向聚集,從而逃出局部最優解;
  • 追尾行為加快了人工魚向更優狀態遊動。

三、 人工魚群算法實現的步驟

  1. 初始化設置,包括種群規模N、每條人工魚的初始位置、人工魚的視野Visual、步長step、擁擠度因子δ、重復次數Trynumber;
  2. 計算初始魚群各個體的適應值,取最優人工魚狀態及其值賦予給公告牌;
  3. 對每個個體進行評價,對其要執行的行為進行選擇,包括覓食Pray、聚群Swarm、追尾Follow和評價行為
    bulletin;
  4. 執行人工魚的行為,更新自己,生成新魚群;
  5. 評價所有個體。若某個體優於公告牌,則將公告牌更新為該個體;
  6. 當公告牌上最優解達到滿意誤差界內或者達到叠代次數上限時算法結束,否則轉步驟3。

四、人工魚群算法實現流程圖

技術分享圖片

五、 各種參數對收斂性的影響

人工魚群算法中,覓食行為奠定了算法收斂的基礎;聚群行為增強了算法收斂的穩定性;追尾行為增強了算法收斂的快速性和全局性;其評價行為也對算法收斂的速度和穩定性提供了保障。

人工魚群算法有5個基本參數:群規模N、人工魚的視野Visual、步長Step、擁擠度因子δ、重復次數Trynumber
1. 視野Visual:由於視野對算法中個行為都有較大影響,因此,它的變化對收斂性能影響也比較復雜。當視野範圍較小時,人工魚的覓食行為和隨機行為比較突出;視野範圍較大時,人工魚的追尾行為和聚群行為將變得比較突出,相應的算法的復雜度也會有所上升。總的來說:視野越大,越容易使人工魚發現全局最優解並收斂。


2. 步長Step:對於固定步長,隨著步長的增加,收斂的速度得到了一定的加速,但在超過一定的範圍後,有使得收斂速度減緩,步長過大時會出現震蕩現象而大大影響收斂速度。采用隨機步長的方式在一定程度上防止了震蕩現象的發生,並使得該參數的敏感度大大降低了,但最快的收斂速度還是最優固定步長的收斂速度,所以,對於特定的優化問題,我們可以考慮采用合適的固定步長或者變尺度方法來提高收斂速度。
3. 群規模N:人工魚的數目越多,跳出局部最優解的能力越強,同時,收斂的速度也越快。當然,付出的代價就是算法每次叠代的計算量也越大,因此,在使用過程中,滿足穩定收斂的前提下,應當盡可能的減少個圖數目。
4. 嘗試次數Trynumber:嘗試次數越多,人工魚的覓食行為能力越強,收斂的效率也越高。在局部極值突出的情況下,應該適當的減少以增加人工魚隨機遊動的概率,克服局部最優解。
5. 擁擠度因子δ:在求極大值問題中,δ=1/(αnmax),α∈(0,1]δ=1/(αnmax),α∈(0,1];在求極小值問題中,δ=αnmax,α∈(0,1]δ=αnmax,α∈(0,1]。其中α為極值接近水平, nmax為期望在該鄰域內聚集的最大人工魚數目。擁擠度因子與nf相結合,通過人工魚是否執行追尾和聚群行為對優化結果產生影響。以極大值為例(極小值的情況正好與極大值相反),δ越大,表明允許的擁擠程度越小,人工魚擺脫局部最優解的能力越強;但是收斂速度會有所減緩,這主要因為人工魚在逼近最優解的同時,會因避免過分擁擠而隨機走開或者受其他人工魚的排斥作用,不能精確逼近極值點。可見,雖然δ的引入避免了人工魚過度擁擠而陷入局部最優解,但是另一方面,該參數會使得位於極值點附件的人工魚之間存在相互排斥的影響,而難以想極值點精確逼近。所以,對於某些局部極值不是很嚴重的具體問題,可以忽略擁擠的因素,從而在簡化算法的同時也加快算法的收斂速度和提高結果的精確程度。

六、 人工魚群算法的特點

  1. 只需比較目標函數值,對目標函數的性質要求不高;
  2. 對初值的要求不高,隨機產生或設置為固定值均可,魯棒性強;
  3. 對參數設定的要求不高,容許範圍大;
  4. 收斂速度較慢,但是具備並行處理能力;
  5. 具備較好的全局尋優能力,能快速跳出局部最優點;
  6. 對於一些精讀要求不高的場合,可以用它快速得到一個可行解;
  7. 不需要問題的嚴格機理模型,甚至不需要問題的精確描述,這使得它的應用範圍得以延伸。

人工魚群算法總結