遺伝的アルゴリズム:早期収束との戦い

前のエッセイ( 遺伝的アルゴリズムの母集団サイズの選択 )で、遺伝的アルゴリズムの性能に必要な最小母集団サイズが決定されました。

N = 1 + LOG2(1 /(1-P1 ^(1 / L))))、ここで

P1は、染色体のランダムセットに各遺伝子座に必要なすべての要素が含まれる必要な確率です。

Lは染色体の長さです。



実際には、この人口規模が必要になりますが、遺伝的アルゴリズムの効果的な運用には十分ではありません。

これは、収束が早すぎるために発生します。アルゴリズムは、グローバルな最大値に達する前に停止します(多くの場合、ローカルな最大値に達することもあります)。

この理由は、アルゴリズムの性質そのものにあります。染色体の適合度が高いほど、クロッシングに参加する可能性が高くなります。 したがって、彼女が何度も交差点に参加できるようになります。

このように、染色体の遺伝コードは、その適合度関数が母集団の平均値を大幅に上回り、優位性を得て、母集団から遺伝コードの他のセットを置き換えます。



しかし、そのような染色体の適合度が適合度関数のグローバルな最大値(初期段階では自然)よりもはるかに小さく、集団サイズが多様性を維持するのに十分でない場合、最適から遠く離れた値への早すぎる収束(または、最良の場合、局所への収束)高値)保証。

はるかに高い適応性を持つ染色体が集団のさらなる世代に現れたとしても、その瞬間までに前のリーダーは増殖する時間を持ち、新しいリーダーは単に「足場を得る」ことができる前に人口から「絞り出される」可能性があります。



この現象に対処する広範な方法は、それ自体を示唆しています-人口のサイズを増加させますが、集中的な(リソースを消費しない)方法を見つけることははるかに興味深いです。





フィットネス関数の局所的または全体的な最大値に到達する可能性は、そのタイプに大きく依存することにすぐに注目する価値があります。

以下は、以下で考慮される問題の適合度関数の極大の領域の例です。



例として、巡回セールスマンのような問題が解決されます。染色体の長さL = 25

-水平軸には、可能なすべての染色体値が10進座標系で示されています(たとえば、染色体101001010111111111110101010はx = 21692298に対応します)。

-縦軸は、フィットネス関数の値を表します。

(ご覧のとおり、極大値は互いに非常に強く分離されています。この問題では、早期収束のすべての前提条件が守られています)。



したがって、染色体の初期セットは、遺伝暗号と適合値の両方で非常に分散しています。

次に、交配の遺伝的演算子の仕事の結果として、可能な組み合わせの列挙があります。 フィットネス選択メカニズムは、これらの組み合わせに適用されます。フィットネスが高いキットほど、クロスに参加する可能性が高くなります。 その結果、後続の世代のセットは、高値のエリアを中心にグループ化され始めます。

しかし、かなりの確率で、遺伝物質を含む染色体を他の領域の染色体とグローバル最大値の近くにある領域と交差させた結果として形成された子孫はあまり適応されず、混雑することが判明するかもしれません。

したがって、彼らの遺伝物質は人口に失われます。



したがって、遺伝的アルゴリズムの最初の段階では、「有望な」遺伝物質の損失の可能性を減らしながら、適応度に応じて選択を行うことが重要になります。

その結果、全体として人口の適応度を高めることにより、最大限の多様性を維持してください。



ここでは、自然の経験が非常に役立ちます。

古典的な遺伝的アルゴリズムの交差演算子は減数分裂に本質的に対応します-遺伝的アルゴリズムでのみ、子孫の数は祖先の数に等しくなります。

しかし、自然界には別の種類の生殖もあります。 有糸分裂であり、遺伝的アルゴリズムでの使用に適応させることもできます。



基本的な原理として、最高のフィットネス関数値を持つ染色体が有糸分裂によって増殖し、最低のフィットネス関数値を持つ染色体が減数分裂によって伝播することを確立します。

このようなメカニズムに最も近い類推は、いずれかの繁殖方法を使用できる微生物の繁殖です。 環境に最も適応している微生物にとっては、できるだけ早く複製を開始することが有利であり、適応度が最も低い微生物は、遺伝物質の組換えを開始して適合度の高いオプションを検索することが有益です。



有糸分裂オペレーターが適用される各染色体は、それと完全に同一の子孫を少なくとも1つ生成します。

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



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



初期段階では、有糸分裂オペレーターを使用して収束を遅くし、母集団の適合性を高め(および適合パラメーターの広がりを減少させ)、集団の遺伝物質の最大の多様性を維持することが有益です。

最終段階では、平均インディケーターの平均レベルが高く、このインディケーターの広がりが低い染色体の集団がありますが、同時に集団には多種多様な遺伝物質があります(これにより、フィットネス関数の局所的最大値の領域が十分にカバーされます)全体の人口のために。



したがって、世代ごとに、有糸分裂演算子が適用される染色体の割合は、母集団の適合度の平均値に反比例し、母集団の適合度の標準偏差に直接比例すると仮定します。

有糸分裂によって伝播する母集団の割合を決定するために、標準偏差と適合度の平均値の比に対する線形依存性を使用できますが、対数依存性を使用すると最良の結果が得られます(対数依存性の場合、有糸分裂によって伝播する染色体の割合はよりゆっくりと減少します)。 ただし、線形依存性と対数依存性の両方について、有糸分裂演算子にさらされた母集団は、アルゴリズムの後半でゼロになる傾向があります。

第一世代では、有糸分裂によって伝播する人口の割合を1/2に選択します。 したがって、最初の段階では交差の対象となる母集団のサイズも総数の1/2に等しいため、十分条件を確保するために、母集団のサイズを2Nに選択します。



これは、標準的な遺伝的アルゴリズム(青の色合い)と有糸分裂アルゴリズム(赤茶色の色合い)の染色体分布の様子です。 両方の場合の人口サイズ:2N。

染色体は、属する世代に応じて5つの五分位に分けられます。

以前の世代は明るい色で表示されます。



-水平軸には、可能なすべての染色体値が10進座標系で示されています(たとえば、染色体101001010111111111110101010はx = 21692298に対応します)。

-縦軸は、フィットネス関数の値を表します。

グラフからわかるように、すでに初期段階にある標準的な遺伝的アルゴリズムは、局所的最大値の領域(グローバルな最大値の領域を含む)の周りのグループ化によって特徴付けられ、その後、領域の1つの周囲の染色体の集中と、他の領域に属する遺伝物質の集団の混雑がランダムに発生します。

同時に、初期段階の有糸分裂を伴うアルゴリズムは、領域全体に染色体が広く分布し(同等の適合値)、後の段階で、グローバル最大領域への体系的なドリフトが見られます。



このグラフでは、標準的な遺伝的アルゴリズム(青いグラフ)と比較して、減数分裂と有糸分裂の両方を使用した遺伝的アルゴリズムの有効性(赤いグラフ)を比較できます。



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

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



有糸分裂オペレーターを使用すると、遺伝的アルゴリズムの有効性が大幅に向上する可能性があることは明らかです。

したがって、サイズが2Nの母集団(計算された例ではN = 20)の有糸分裂を使用するアルゴリズムでは、可能な最大の0.9694の平均結果が得られます。 標準の遺伝的アルゴリズムを使用して同じ値を達成するには、7Nの母集団が必要です。

最大有糸分裂アルゴリズムから0.98の結果を達成するには、3Nの母集団が必要であり、標準アルゴリズムは11Nの母集団を必要とします



PS>もう少し時間が来たら、次の記事で結果のより詳細な分析-多数のカット-をレイアウトします。これにより、最適な母集団のサイズの評価に近づくことができます。



更新:質問と興味深いコメントをありがとう-夕方にしか答えられません(残念ながら日中は機会がありません)。 知覚を促進するために校正も行います。



All Articles