遺伝的アルゴリズム:最適な人口サイズ

前のエッセイ( 遺伝的アルゴリズム:早期収束との戦い)では、有糸分裂演算子の使用が早期収束と戦う効果的な方法として選択されました。



有糸分裂演算子が適用される各染色体は、それと完全に同一の少なくとも1つの子孫を意図的に生成します。

さらに、染色体の適合度が母集団全体の平均適合度の値を超えると、染色体が2番目の子孫を生成する可能性が高くなります。



適合度の低い染色体は、交配のためのプールを形成します。 プールからのペアワイズ染色体交差は、必要な総人口サイズに達するまで実行されます(有糸分裂オペレーターを使用してすでに作成された染色体を考慮に入れて)。 交差する染色体の選択は、ルーレット法によってランダムに行われます(適合度の高い染色体は、ルーレットホイール上のより大きなセクターに対応します)。 母集団のサイズは、遺伝的アルゴリズムの全期間を通じて一定のままです。



有糸分裂演算子が適用される染色体の割合は、母集団の適応度の平均値に反比例し、母集団の適応度の標準偏差に直接比例します(さらに、線形依存ではなく対数を選択します)。 第一世代では、有糸分裂によって伝播する人口の割合を50%に設定します





したがって、結果が母集団のサイズに依存するのは次のとおりです。

画像

-縦軸には、遺伝的アルゴリズムの結果として得られた染色体のフィットネス関数の平均値。1はグローバル関数の最大値に等しいフィットネス関数の値です。

-人口サイズの値は、水平軸に沿ってプロットされます。1は、N(最小必須人口サイズ)に等しい人口サイズです。

N = 1 + LOG2(1 /(1-P ^(1 / L))) ここで:

Pは、集団が組換えに必要なすべての要素を含む必要な確率です。

Lは染色体内の遺伝子座の数です。

考慮された例では、N = 20



グラフは、実質的に無制限のリソースの状況で、飽和に達するまで(絶対最大値の達成に対応するまで)常に人口のサイズを増やすことができることを示しています。



リソースが限られている場合(最終的には時間の制約になります)、その使用の有効性の問題が重要になります。



達成された結果/計算に費やされたリソースの比率の観点から、どの規模の人口が最も収益性が高いかという問題を検討してください。



問題を次のように再定式化します。2Nの人口サイズでGAを1回実行するか、Nの人口サイズでアルゴリズムを2回実行し、得られた2から最良の結果を選択する方が利益が高いものは何ですか?

比較結果は次のグラフで確認できます。

画像



-縦軸には、遺伝的アルゴリズムの結果として得られた染色体のフィットネス関数の平均値。1はグローバル関数の最大値に等しいフィットネス関数の値です。

-横軸は、フィットネス関数の計算数を示します。1はN計算です。

計算の数は、母集団のサイズ(N単位で表される)として定義され、世代数(アルゴリズムが停止する前)を掛け、アルゴリズムの開始数を掛けます。



x1で示される点は、母集団のサイズNに対応します。

この場合、最初のポイントはGAの1回の起動に対応しています。

2番目のポイントは、2回目のGAの起動と、得られた結果からの最大値の選択などに対応します。



x2で示される点は、2Nの母集団サイズに対応します

など



効率の顕著な増加は、サイズNの母集団からサイズ2Nの母集団に移動する場合にのみ達成されることが明確にわかります。

人口のさらなる増加は、効率の顕著な増加につながりません。



したがって、制限時間の厳しい状況では、制限時間を使い果たしていない場合に人口サイズ2NでGAを起動し、GAを再度実行して最適な結果を選択するなどの効果的な戦略があります。 -制限がなくなるまで。

その結果、制限時間に達するまで、結果は一貫して改善されました。

制限を使い果たすまでの開始回数は常に変化します(どちらもアルゴリズムが停止する前の世代数の変動によるものであり、他のタスクによるプロセッサーの負荷に応じて、同じプロセッサー時間が物理時間で異なるという事実によります)。

また、そのような物理的な可能性がある場合、パラレルへの複数の起動が可能です。



All Articles