二、演算法流程
在乙個n維空間,種群規模為np,即僱傭蜂的個數,僱傭蜂(蜜源)的位置xi = ,那麼其目標函式值指定為fit =,初始化後進入僱傭蜂階段:
其中,φ是擾動因子,通常設定區間[-1,1],i ≠j,在種群np中尋找乙個不等於i的蜜源。更新蜜源並求解目標函式值,將使用貪婪選擇方法將xi替換或保留。選擇結束後,對每個蜜源的目標函式值求解並更新其跟隨度:
得到跟隨概率(選擇概率)pi, 採用輪盤賭的選擇方式來選擇新的蜜源進行更新。
2. 觀察蜂階段。根據定義的觀察蜂數量,以同樣的方式更新觀察蜂:
%
% 觀察蜂階段
for i=
1:gc_size
r=rand;
% 採用輪盤賭隨機選擇乙個蜜源,對該蜜源進行更新
j=find
(r<=p,1,
'first');
k=randi
(gy_size,1)
;%選擇乙個除個體i的其它乙個個體
while k==j
k=randi
(gy_size,1)
; end
fai=rand*2-
1;%加速係數,取值範圍[-1
,1] new_pop=
pops
(j,:
)+fai.*(
pops
(j,:)-
pops
(k,:))
;%更新僱傭蜂的位置
% 邊界處理
new_pop =
min(pop_max,new_pop)
; new_pop =
max(pop_min,new_pop)
;
new_cost=
fun(new_pop,fun_num)
;%更新相應的函式值
if new_cost<
cost
(j)%貪婪方式儲存最佳蜜源,若沒更新,則記錄
pops
(j,:
)=new_pop;
cost
(i)=new_cost;
else
l(i)=l
(i)+1;
%記錄此蜜源的更新停滯次數
endend
偵查蜂階段。如果乙個蜜源達到限定迭代次數limit後,仍沒有進行更新,則進入偵查蜂階段:重新被初始化然後進行探索更新。
三、流程圖
人工蜂群演算法(ABC)
bee colony algorithms 蜂群演算法的分類 基於繁殖行為的演算法 蜜蜂交配優化演算法 蜜蜂進化型遺傳演算法 蜂王演算法 基於採蜜行為的演算法 人工蜂群演算法 abc 虛擬蜜蜂演算法 蜂群優化演算法 生物學機理 1 不同角色之間的交流 轉換及協作來實現 2 採蜜行為包括蜜源 採蜜蜂與...
人工智慧 A演算法
在狀態空間搜尋中,如果每一步都利用估價函式f n g n h n 對open表中的結點進行排序,則稱a演算法。它是一種為啟發式搜尋演算法。演算法型別 把初始結點s0放入open表中,f s0 g s0 h s0 如果open表為空,則問題無解 失敗退出 把open表的第乙個結點取出放入closed表...
《演算法筆記》Dijkstra演算法筆記
今日在華農終於接近完成閱讀演算法筆記,有點點成就感,做下dijkstra跟dfs演算法結合的筆記 簡單狀態 純dijkstra include include include define inf 1000000000 using namespace std const int maxn 1010 ...