進化戦略
(μ,λ)-ES系の組み換えは遺伝的アルゴリズムの交叉と同様の操作である。 各個体に上述の突然変異を行う前に、探索ベクトルx の値を個体間で次のような操作を行う。
(入れ換え)個体 a の探索ベクトル x の成分 xiと個体 b の探索ベクトル x の成分 xiを入れ換える
(中間値)個体 a の探索ベクトル x の成分 xiと個体 b の探索ベクトル x の成分 xiをそれぞれ(xi + xi)/2 に置き換える。
他にも内分点を取るなどの操作が提案されている。
(μ/ρ,λ)-ES と表記した際は、ρ個の親から交叉して1つの新しい個体を作り、それをλ回繰り返してλ個の新しい個体を作る。
σの更新方法は n (x の要素数)毎の探索時に過去 10n 回の成功確率を見て、成功率が 2n 回(1/5ルール)未満なら 0 以上 1 以下の実数定数 c をσにかける。逆に 2n 回以上の成功率なら σをc で割ることが推奨されている。 c の値は一概には決められないが Schwefel は 0.85 を推奨している。
アルゴリズムの流れをまとめると(μ,λ)-ES系のアルゴリズムは以下のようになる。
μ個の個体をランダムに生成して、それぞれの個体の目的関数を評価する。
いくつかの個体に対しては組み換え操作を行う。
各個体を適当に選択し、その個体に突然変異操作を行った個体を新たにλ個生成する。
それぞれの個体の目的関数を評価する。
生き残る個体を決定する (μ,λ)-ESの場合は新たに生成したλ個の個体(λ>μ)の内上位μ個を選び、残りを削除する。 (μ+λ)-ESの場合は新たに生成したλ個の個体と生成元のμ個の個体を混ぜ合わせ上位μ個の個体を選び、残りを削除する。
終了条件を満たすまで2. 以下の操作を繰り返し、最終的に最も成績の良い個体の探索ベクトルを解として出力する。