ルーレット選択

概要

ルーレット選択は,適応度に基づいて親候補の個体の中から親個体を選ぶための確率的手法である. ルーレット選択においては,各個体の選ばれる確率はその適応度に比例する.

手順

  1. fit_reverseFalse(デフォルト)に設定されている場合,これはエネルギーを適応度として用いる最小化モードに対応しており,親候補の適応度には –1 が掛けられる.
  2. 適応度 $ f_i $ は,以下の式により線形スケーリングされて $ f'_i $ に変換される.ここで, $ a $ および $ b $ は,それぞれ a_rlt および b_rlt で指定されるパラメータであり, $ a > b $ でなければならない.
    $$ f_i' = \frac{a - b}{f_{\mathrm{max}} - f_{\mathrm{min}}} f_i + \frac{b f_{\mathrm{max}} - a f_{\mathrm{min}}}{f_{\mathrm{max}} - f_{\mathrm{min}}} $$
  3. スケーリング後の適応度 $ f'_i $ は,次式により選択確率に変換される:
    $$ p_i = \frac{f_i'}{\sum_k f_k'} $$
    $ p_i $ は, $ i $ 番目の個体が選ばれる確率を表す.
  4. 親個体は, $ p_i $ に基づいてルーレット選択により1つずつ選ばれ,必要な数に達するまで繰り返される.

利点

  • すべての個体が非ゼロの確率で選ばれる可能性がある
  • 適応度のスケーリングによって選択圧を調整できる

注意

  • デフォルトでは a_rlt = 10.0b_rlt = 1.0
  • 意味のある選択圧を得るためには,適応度のスケーリングが重要である. 下の図は, $ a $ が比較的小さい場合(左)と比較的大きい場合(右)における $ p_i $ の例を示している.
    $ a $ が小さすぎると選択圧が弱くなり,適応度の高い個体が優先されにくくなる.

fig_EA_roulette fig_EA_roulette