魚群探測演算法
① 什麼是魚群演算法
artifical fish-warm algorithm
xp(v1,v2……vn)個體的當前位置,d(p,q)=(1/n)*{[v(p,1)-v(q,1)]^2+……[v
(p,n)-v(q,n)]^2},兩個體的距離,(不知道為什麼用1/n而不是開平方);visual
一隻魚的感知距離。@擁擠度因子。
第一步:覓食人工魚當前位置為Xi,在可見域內隨機選擇一個位置Xj(d(ij)
<=visual),如xj優於xi向xj前進一步,否則隨機移動一步。如出現不滿足約束則
剪去。X(j+1,k)={if x(i,k)=x(j,k) 不變,else x(j+1,k)=隨機(0,1)}。
第二步:聚群:
xi可見域內共有nf1條魚。形成集合KJi,KJi={Xj|Dij<=visual},if KJi不為空,
then
X(center)=(xj1+xj2+.....xjn)/nf1(xjk屬於kji)
X(center,k)=0,X(center,k)<0.5 1,X(center,k)>=0.5
若:FCc/nf1>@FCi(FCc為中心食物濃度,FCi為Xi點食物濃度)
則:向中心移動:X(i+1,k)=不變,當Xik=X(center,k)時;Xik=隨機(0,1),當
Xik!=X(center,k)時;
若:FCc/nf1<@FCi
則:進行覓食
第三步:追尾
在visual范圍內,某一個體食物濃度最大則稱為Xmax,若:FCmax>@FCi,則向它移動
:X(i+1,k)=當X(i,k)=X(max,k)時,X(i,k)不變,當X(i,k)!=X(max,k)時,X(i,k)=
隨機(0,1)
第四步:公告板
在運算過程中,用公告板始終記錄下最優FCi
② 魚群演算法是什麼
和蟻群演算法其實是一樣的,生物那方面不說了,主要是生成隨機數,經過數次迭代,一次次計算目標函數值從而優化答案,最後看答案分布,這樣就能計算解決全局最優,因為魚群演算法能夠跳出局部最優,所以應用於目標函數的最大值最小值是很有用的,希望能幫到你