布穀鳥搜尋演算法 bou3 guk1 niu5 sau2 cam4 jin2 syun3 faat3 (英文 :cuckoo search algorithm )係一種機械學習 上會用嘅最佳化 演算法 :喺自然界,布穀鳥 出咗名會喺第啲品種嘅雀鳥嘅巢嗰度生蛋,而啲布穀鳥仔生咗出嚟之後,仲會本能噉將同一個巢嘅蛋推出去巢外,等佢養父母集中精神淨係餵佢-布穀鳥仔會寄生喺第啲雀鳥嗰度;布穀鳥演算法就係建基於布穀鳥嘅繁殖過程嘅做法。虛擬碼 如下[ 1] :
Objective function:
f
(
x
)
,
x
=
(
x
1
,
x
2
,
…
,
x
d
)
;
{\displaystyle f(\mathbf {x} ),\quad \mathbf {x} =(x_{1},x_{2},\dots ,x_{d});\,}
產生
n
{\displaystyle n}
個寄主巢;
While 終止條件未達到
隨機攞隻布穀鳥,設定佢個解答(解答喺機械學習上就係柞模型參數)
評估佢嘅表現
F
i
{\displaystyle F_{i}}
[For maximization,
F
i
∝
f
(
x
i
)
{\displaystyle F_{i}\propto f(\mathbf {x} _{i})}
];
隨機攞個寄主巢,佢嘅表現係
F
j
{\displaystyle F_{j}}
if
F
i
>
F
j
{\displaystyle F_{i}>F_{j}}
將
j
{\displaystyle j}
放棄,以布穀鳥個解答取代;
end if
將表現最差嗰啲巢刪除;
得淨低嗰啲巢有得繁殖。
end while
↑ Valian, E., Mohanna, S., & Tavakoli, S. (2011). Improved cuckoo search algorithm for feedforward neural network training. International Journal of Artificial Intelligence & Applications , 2(3), 36-43.