bee colony algorithms
蜂群演算法的分類(基於繁殖行為的演算法、蜜蜂交配優化演算法、蜜蜂進化型遺傳演算法、蜂王演算法)
基於採蜜行為的演算法(人工蜂群演算法(abc)、虛擬蜜蜂演算法、蜂群優化演算法)
生物學機理
1、不同角色之間的交流、轉換及協作來實現
2、採蜜行為包括蜜源、採蜜蜂與待採蜜蜂
蜂群演算法存在的問題
1、引數設定對演算法效能影響很大
2、容易陷入區域性最優,早熟
3、無理論支援,數學證明
4、平行計算,分布式
5、僅應用在組合優化問題
引數:
蜜源:可能的最優解
角色(role):引領蜂(leader),偵察蜂(scouter),跟隨蜂(follower)
蜜蜂行為:搜尋(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,演算法結束;否則跳到引領蜂的階段
人工蜂群演算法(ABC)演算法筆記丨matlab實現
二 演算法流程 在乙個n維空間,種群規模為np,即僱傭蜂的個數,僱傭蜂 蜜源 的位置xi 那麼其目標函式值指定為fit 初始化後進入僱傭蜂階段 其中,是擾動因子,通常設定區間 1,1 i j,在種群np中尋找乙個不等於i的蜜源。更新蜜源並求解目標函式值,將使用貪婪選擇方法將xi替換或保留。選擇結束後...
人工智慧 A演算法
在狀態空間搜尋中,如果每一步都利用估價函式f n g n h n 對open表中的結點進行排序,則稱a演算法。它是一種為啟發式搜尋演算法。演算法型別 把初始結點s0放入open表中,f s0 g s0 h s0 如果open表為空,則問題無解 失敗退出 把open表的第乙個結點取出放入closed表...
演算法基礎2 求abc的全排列
演算法基礎 求abc的全排列有幾種方式 採用遞迴的方式,對abc的排列進行解析 先上 塊 public class demo2 private static voidf char data,int k system.out.println for int i k i data,k 1 回溯 結果 a...