進化的アルゴリズム - 親の選択と生存者の選択

進化的アルゴリズム(EA: Evolutionary Algorithm)は進化的計算(Evolutionary Computation)のサブセットで、生物の個体群のシミュレーションなどに利用されるメタヒューリスティックな最適化アルゴリズムです。EA は、生物の進化から着想されるメカニズム、つまり「生殖」(reproduction)、「突然変異」(mutation)、「遺伝子組み換え」(recombination)、「淘汰」(selection)などを用います。最適化問題に対する解の候補群が、1 つの母集団(個体群)として機能し、適合度関数によりその品質が決定されます。このような演算が反復実行され、母集団の進化が起こります。

進化的アルゴリズムのシーケンス

ASCMO-STATICで使用される進化的アルゴリズムは、1つの「初期化」と、停止目標に達するまで反復実行される1つの「ループ」から成ります。多目的最適化の停止目標(Number of Evaluations)は、"Multi Result Optimization" ウィンドウ(Optimization > Multi Result > Settings)で設定することができます。

  1. 初期化(Initialization):固体群である母集団の初期状態をランダムに生成します。これが第一世代となります。

  2. 評価(Evaluation):母集団内の各個体の適合度(生存しやすい度合)を評価します。

  3. 停止目標(Number of Evaluation)に達するまで、以下の世代交代を繰り返します。

    • 選択(Selection):生殖に最も適した固体の選択
    • 遺伝子組み換え(Recombination):遺伝子の交差(Crossover)による新種の固体の生成
    • 突然変異(Mutation):子孫においてランダムに発生する変化
    • 評価(Evaluation):上記(ステップ2)を参照
    • 選択(Selection):新しい世代の決定

ここでASCMO-STATICは、以下の選択処理を識別します。

親の選択(Parent Selection)

この選択処理においては、評価と遺伝子組み換えに親世代が関わります。この背景として、ランダムな突然変異による新しい世代の生成があるため、最適化目標に向かって努力する必要はありません。これは、適合度関数に従って子を生成するより好ましいとも言えます。

生存者の選択(Survivor Selection)

この選択処理においては、評価と遺伝子組み換えに親世代が関わりません。