人工蜂群演算法(ABC)
Bee colony algorithms
蜂群演算法的分類(基於繁殖行為的演算法、蜜蜂交配優化演算法、蜜蜂進化型遺傳演算法、蜂王演算法)
基於採蜜行為的演算法(人工蜂群演算法(ABC)、虛擬蜜蜂演算法、蜂群優化演算法)
生物學機理
1、不同角色之間的交流、轉換及協作來實現
2、採蜜行為包括蜜源、採蜜蜂與待採蜜蜂
蜂群演算法存在的問題
1、引數設定對演算法效能影響很大
2、容易陷入區域性最優,早熟
3、無理論支援,數學證明
4、平行計算,分散式
5、僅應用在組合優化問題
引數:
蜜源:可能的最優解
角色(role):
蜜蜂行為:搜尋(search)蜜源,為蜜源招募(recruit),放棄(abandon)蜜源
蜂群引數:SN(種群規模),maxcycle(迭代次數),limit(全域性和區域性搜尋能力),n(鄰域規模),cycle(迭代次數變數)
引數說明:
引領蜂,跟隨蜂:加快演算法收斂
偵察蜂:增強演算法跳出區域性最優的能力
Limit:控制了演算法的收斂性,對演算法跳出區域性最優解有這重要影響;前期比較小,增強全域性搜尋能力,後期較小,加快收斂速度
N鄰域規模:前期比較大,增強區域性搜尋能力,後期較小,加快收斂
演算法步驟:
l初始化
種群規模SN包含引領蜂和觀察蜂,各取種群數量的一半,初始解數量FN=SN/2。
trail[i]第i個解的實驗次數初始化為0
排序:函式優劣,前50%作為引領蜂,後50%作為跟隨蜂
適應度:
引領蜂階段
鄰域搜尋
如果新解優於原先解,則替換,否則不變;
更新trail[i],若大於limit值,則拋棄該解(可以用佇列進行儲存該區域性最優解),同時,引領蜂角色轉化偵察蜂,trail[i]=0;
跟隨蜂階段
計算蜜源Xi被選擇概率P
選擇蜜源後,進行鄰域搜尋,搜尋規則:
貪婪原則,如果該解優於原引領蜂的解,則完成角色互換,跟隨蜂轉變為
引領蜂,否則不變。
直到所有跟隨蜂被分配到蜜源
偵查蜂階段
隨機產生新的解,若優於原先的解,則替代原先區域性最優解,偵察蜂轉變為引領蜂, trail[i] 清零;若不優於原先解,原先解不變;
初始化生成解的方法,隨機化方法
一輪演算法結束後,最優解被記錄,迭代次數cycle++
若cycle=maxcycle,演算法結束;否則跳到引領蜂的階段
--------------------- 本文來自 排山和倒海 的CSDN 部落格 ,全文地址請點選:https://blog.csdn.net/wangqing008/article/details/11849255?utm_source=copy