日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

人工鱼群算法python实现

發布時間:2023/12/10 python 38 豆豆
生活随笔 收集整理的這篇文章主要介紹了 人工鱼群算法python实现 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

人工魚群算法

基本思想

人工魚群算法是一種基于模擬魚群行為的優化算法,是由李曉磊等在2002年提出的一種新型的尋優算法。在一片水域中,魚生存的數目最多的地方就是本水域中富含營養物質最多的地方,依據這一特點來模仿魚群的覓食等行為,從而實現全局尋優,這就是魚群算法的基本思想。

在魚類的活動中,可以分為覓食行為、聚群行為、追尾行為和隨機行為這四種行為,如何利用簡單有效的方式來構造實現這些行為將是算法實施的主要問題。

  • 覓食行為主要就是循著食物多的方向游動的一種行為,在尋優中則是向較優方向進行的迭代方式

  • 在聚群行為中,借鑒的思想對每條人工魚規定了這樣兩個規則
    1.盡量向鄰近伙伴的中心移動
    2.避免過分擁擠,這樣就能基本實現人工魚的聚群能力;

  • 追尾行為就是一種向臨近的最活躍者追逐的行為,在尋優算法中可以理解為是向附近的最優化伙伴前進的過程

  • 隨機行為就是人工魚在其視野內隨機移動的行為,在尋優算法中這種行為有助于解跳出局部最優

算法原理

1.覓食行為

指魚循著食物多的方向游動的一種行為,人工魚Xi在其視野內隨機選擇一個狀態Xj,分別計算它們的目標函數值進行比較,如果發現Yj比Yi優,則Xi向Xj方向移動一步,否則Xi繼續選擇Xj,判斷是否滿足前進條件,反復嘗試trynumber次后,仍沒有滿足前進條件,則隨機移動一步使Xi達到新的狀態。

人工魚的視覺描述

看看流程圖

2.聚群行為

魚在游動過程中為了保證自身的生存和躲避危害會自然地聚集成群 。人工魚Xi搜索其視野內的伙伴數目nf及中心位置Xc,若Yc/nf<δYi(求極小值時使用小于號,在求極大值時則相反)表明伙伴中心位置狀態較優且不太擁擠,則Xi朝伙伴的中心位置移動一步,否則執行覓食行為

3.追尾行為

指魚向其視野區域內的最優方向移動的一種行為。人工魚Xi搜索視野內最優的適應度最高的個體Xj,并搜索人工魚Xj的視野內的伙伴數目nf,若Yj/nf<δYi,表明Xj的狀態較優且不太擁擠,Xi朝著Xj一步,否則執行覓食行為

總的來說算法在運算過程中,會同時進行聚群和追尾行為。而覓食行為屬于這兩種行為中發現聚群對象或者追尾對象附近擁擠度過大時,人工魚選擇的行為方式,若在覓食過程中,未發現比自身適應度高的人工魚,則按步長step隨機移動。最后對聚群行為和追尾行為得到的適應度值進行比較,選擇優秀的人工魚作為下一代的個體。其總框架圖如下:

擁擠度因子

擁擠度因子的取值

擁擠度因子的影響

以極大值為例(極小值的情況正好和極大值相反), δ δδ越大,表明允許的擁擠程度越小,人工魚擺脫局部最優的能力越強;但是收斂的速度會有所減緩,這主要因為人工魚在逼近極值的同時,會因避免過分擁擠而隨機走開或者受其它人工魚的排斥作用,不能精確逼近極值點。可見,δ δδ的引入避免了人工魚過度擁擠而陷入局部極值,另一方面,該參數會使得位于極值點附近的人工魚之間存在相互排斥的影響,而難以向極值點精確逼近,所以,對于某些局部極值不是很嚴重的具體問題,可以忽略擁擠的因素,從而在簡化算法的同時也加快了算法的收斂速度和提高結果的精確程度。

python代碼實現

def func(x):x1, x2 = xreturn 1 / x1 ** 2 + x1 ** 2 + 1 / x2 ** 2 + x2 ** 2from sko.AFSA import AFSAafsa = AFSA(func, n_dim=2, size_pop=50, max_iter=300,max_try_num=100, step=0.5, visual=0.3,q=1, delta=0.5) best_x, best_y = afsa.run() print(best_x, best_y)

[1.00274898 0.99989597] 4.000030188126589

總結

以上是生活随笔為你收集整理的人工鱼群算法python实现的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。