ホタルアルゴリズム
ホタルアルゴリズムは疑似コードを用いて次のように記述される。
ループあたりの目的関数評価の数は、上記の擬似コードがn * nであることを示唆していても、ホタルごとに1つの評価である(YangのMATLABコードに基づく)。 したがって、目的関数評価の総数は(世代数)*(ホタルの数)となる。
2つのホタル x i {\displaystyle \mathbf {x} _{i}} と x j {\displaystyle \mathbf {x} _{j}} の任意のペアの主となる更新式は、以下のように表される:
ここで、 α t {\displaystyle \alpha _{t}} はステップ数を制御するパラメータで、 ε t {\displaystyle {\boldsymbol {\epsilon }}_{t}} はガウス分布などの分布から描かれたベクトルである。
γ → 0 {\displaystyle \gamma \rightarrow 0} である特殊なケースでは、標準的な粒子群最適化と同じである。 実際、内側のループ(jのループ)を消去し、明るさ I j {\displaystyle I_{j}} を現在の最適解 g ∗ {\displaystyle g^{*}} に置き換えると、標準的な粒子群最適化と同じになる。
ホタルの発光は、他のホタルを引き付ける信号システムとして機能している。 Xin-She Yangは、このホタルアルゴリズムを次のように仮定した:
すべてのホタルは性別を持たず、個々のホタルは他のすべてのホタルに引き付けられる。
魅力はそれらの明るさに比例し、どの2つのホタルにとっても、明るくない方はより明るい方に引き付けられ、移動する。ただし、強度(見かけ上の明るさ)は、互いの距離が大きくなるにつれて減少する。
与えられたホタルより明るいホタルがいなければ、そのホタルはランダムに動く。
ホタルの明るさは目的関数と関連付けられる。
一般的に、自然に触発されたメタヒューリスティクスは、精巧なメタファーの背後にある目新しさのなさを隠しているとして、研究界で批判を集めている。 ホタルアルゴリズムは、定着している粒子群最適化とほとんど同じであると批判されている。