ホタルアルゴリズム

数学的最適化において、 ホタルアルゴリズム（英: Firefly Algorithm）とは、Xin-She Yangによって提案された、 ホタルの発光現象をもとにしたメタヒューリスティクスのひとつである。 
概要.
ホタルの発光は、他のホタルを引き付ける信号システムとして機能している。 Xin-She Yangは、このホタルアルゴリズムを次のように仮定した: 
ホタルの明るさは目的関数と関連付けられる。 
アルゴリズム.
ホタルアルゴリズムは疑似コードを用いて次のように記述される。 
 Begin
 1) 目的関数: 
 2) ホタル の初期状態を生成;
 3) 光の強さ " を と関連付けられるように定義
 (例えば, 最大化問題では, 
 4) 吸収係数 " を定義
 While (t < 世代数)
 for i = 1 : n (すべての n 匹のホタル)
 for j = 1 : i (n 匹のホタル)
 によって距離 r で 魅力度 を変化
 ホタルi を ホタルj に移動; 
 新たな解を評価し、光の強さ " を更新;
 end if 
 end for j
 end for i
 ホタルを順位付けし、現在の最良のホタルを見つける
 end while
 結果や視覚化の後処理
 end
ループあたりの目的関数評価の数は、上記の擬似コードがn * nであることを示唆していても、ホタルごとに1つの評価である（YangのMATLABコードに基づく）。 したがって、目的関数評価の総数は（世代数）*（ホタルの数）となる。 
2つのホタル formula_1と formula_2の任意のペアの主となる更新式は、以下のように表される: 
 formula_3 
ここで、formula_4はステップ数を制御するパラメータで、formula_5はガウス分布などの分布から描かれたベクトルである。 
formula_6である特殊なケースでは、標準的な粒子群最適化と同じである。 実際、内側のループ（jのループ）を消去し、明るさ formula_7を現在の最適解 formula_8に置き換えると、標準的な粒子群最適化と同じになる。 
問題点.
一般的に、自然に触発されたメタヒューリスティクスは、精巧なメタファーの背後にある目新しさのなさを隠しているとして、研究界で批判を集めている。 ホタルアルゴリズムは、定着している粒子群最適化とほとんど同じであると批判されている。