Genetic-algorithms-quick-guide

提供:Dev Guides
移動先:案内検索

遺伝的アルゴリズム-はじめに

遺伝的アルゴリズム(GA)は、 Genetics and Natural Selection の原則に基づいた検索ベースの最適化手法です。 これは、解決するのに一生かかるかもしれない困難な問題に対する最適または最適に近いソリューションを見つけるために頻繁に使用されます。 最適化問題の解決、研究、機械学習で頻繁に使用されます。

最適化の概要

最適化とは、*何かをより良くする*プロセスです。 どのプロセスでも、次の図に示すように、入力のセットと出力のセットがあります。

最適化

最適化とは、「最適な」出力値が得られるような方法で入力値を見つけることです。 「最良」の定義は問題ごとに異なりますが、数学的には、入力パラメーターを変えることで1つ以上の目的関数を最大化または最小化することを意味します。

入力が取り得るすべての可能なソリューションまたは値のセットが、検索スペースを構成します。 この探索空間には、最適な解を与える点または点の集合があります。 最適化の目的は、検索スペースでそのポイントまたはポイントのセットを見つけることです。

遺伝的アルゴリズムとは何ですか?

自然は常にすべての人類にとって素晴らしいインスピレーションの源となっています。 遺伝的アルゴリズム(GA)は、自然selectionと遺伝学の概念に基づいた検索ベースのアルゴリズムです。 GAは、 Evolutionary Computation として知られるはるかに大きな計算のブランチのサブセットです。

GAはジョン・ホランドと彼の学生およびミシガン大学の同僚、特にDavid Eによって開発されました。 ゴールドバーグは、その後、さまざまな最適化問題で試行され、高い成功を収めています。

GAでは、特定の問題に対する*プールまたは可能な解決策の集団*があります。 その後、これらのソリューションは組換えや突然変異(自然遺伝学のように)を受け、新しい子供を生み出し、このプロセスはさまざまな世代にわたって繰り返されます。 各個人(または候補解)には(目的関数値に基づいて)適合値が割り当てられ、適合者には、より多くの「適合」個体を交配して生み出す可能性が高くなります。 これは、ダーウィンの「適者生存」の理論と一致しています。

このようにして、停止基準に達するまで、世代を超えてより良い個人またはソリューションを「進化」させ続けます。

遺伝的アルゴリズムは本質的に十分にランダム化されていますが、履歴情報も活用するため、ランダムローカル検索(さまざまなランダムソリューションを試行し、これまでのベストを追跡する)よりもはるかに優れたパフォーマンスを発揮します。

GAの利点

GAにはさまざまな利点があり、GAは非常に人気があります。 これらには-

  • 派生情報は必要ありません(多くの実際の問題では利用できない場合があります)。
  • 従来の方法と比較して、より高速で効率的です。
  • 非常に優れた並列機能を備えています。
  • 連続関数と離散関数の両方、および多目的問題を最適化します。
  • 単一のソリューションではなく、「良い」ソリューションのリストを提供します。
  • 問題に対する答えは常に得られ、時間の経過とともに改善されます。
  • サーチスペースが非常に大きく、多数のパラメータが関係する場合に役立ちます。

GAの制限

他の手法と同様に、GAにもいくつかの制限があります。 これらには-

  • GAはすべての問題、特に単純で派生情報が利用可能な問題に適しているわけではありません。
  • フィットネス値は繰り返し計算されるため、問題によっては計算コストが高くなる場合があります。
  • 確率的であるため、ソリューションの最適性または品質に関する保証はありません。
  • 適切に実装されていない場合、GAは最適なソリューションに収束しない可能性があります。

GA –モチベーション

遺伝的アルゴリズムには、「十分に」ソリューションを「十分に」提供する機能があります。 これにより、遺伝的アルゴリズムは最適化問題の解決に使用するのに魅力的です。 GAが必要な理由は次のとおりです-

難しい問題を解決する

コンピュータサイエンスには、 NP-Hard である大きな問題があります。 これが本質的に意味することは、最も強力なコンピューティングシステムでさえ、その問題を解決するのに非常に長い時間(偶数年!)を要するということです。 このようなシナリオでは、GAは短時間で*使用可能な最適に近いソリューション*を提供する効率的なツールであることが証明されています。

勾配ベースの方法の失敗

従来の計算ベースの方法は、ランダムなポイントから開始し、丘の頂上に到達するまで勾配の方向に移動することにより機能します。 この手法は効率的であり、線形回帰のコスト関数のような単一ピークの目的関数に対して非常にうまく機能します。 しかし、ほとんどの実際の状況では、風景と呼ばれる非常に複雑な問題があります。これは多くの山と谷で構成されており、そのような方法は失敗します。次の図に示すように。

GA動機

優れたソリューションを迅速に取得する

巡回セールスマン問題(TSP)のようないくつかの困難な問題には、経路探索やVLSI設計などの実際のアプリケーションがあります。 GPSナビゲーションシステムを使用していて、ソースから目的地までの「最適な」パスを計算するのに数分(または数時間)かかっていることを想像してください。 このような実世界のアプリケーションの遅延は許容できないため、「高速」に配信される「十分な」ソリューションが必要です。

遺伝的アルゴリズム-基礎

このセクションでは、GAを理解するために必要な基本的な用語を紹介します。 また、GAの一般的な構造は、*擬似コード形式とグラフィカル形式*の両方で表示されます。 読者は、このセクションで紹介したすべての概念を適切に理解し、このチュートリアルの他のセクションを読むときにも留意してください。

基本用語

遺伝的アルゴリズムに関する議論を始める前に、このチュートリアル全体で使用されるいくつかの基本的な用語に精通することが不可欠です。

  • 人口-それは、与えられた問題に対するすべての可能な(エンコードされた)解決策のサブセットです。 GAの人口は、人間の代わりに人間を表すCandidate Solutionsがあることを除いて、人間の人口に類似しています。
  • 染色体-染色体は、与えられた問題に対するそのような解決策の1つです。
  • 遺伝子-遺伝子は染色体の1つの要素位置です。
  • アレル-遺伝子が特定の染色体に対して取る値です。

用語

  • 遺伝子型-遺伝子型は計算空間の人口です。 計算空間では、ソリューションはコンピューティングシステムを使用して簡単に理解および操作できる方法で表されます。
  • 表現型-表現型は、現実世界の状況で表現されるようにソリューションが表現される、実際の現実世界のソリューション空間の人口です。
  • デコードとエンコーディング-単純な問題の場合、表現型と遺伝子型*のスペースは同じです。 ただし、ほとんどの場合、表現型と遺伝子型のスペースは異なります。 デコードはソリューションを遺伝子型から表現型空間に変換するプロセスであり、エンコードは表現型から遺伝子型空間に変換するプロセスです。 フィットネス値の計算中にGAで繰り返し実行されるため、デコードは高速になります。 +たとえば、0/1ナップザック問題を考えます。 表現型空間は、選択するアイテムのアイテム番号のみを含むソリューションで構成されます。 +ただし、遺伝子型空間では、長さn(nはアイテムの数)のバイナリ文字列として表すことができます。 位置x *の 0は、 x ^ th ^ アイテムが選択されることを表し、1は逆を表します。 これは、遺伝子型と表現型のスペースが異なる場合です。

表現型および遺伝子型空間

  • フィットネス関数-単に定義されたフィットネス関数は、入力としてソリューションを取り、出力としてソリューションの適合性を生成する関数です。 場合によっては、フィットネス関数と目的関数が同じである場合もあれば、問題に基づいて異なる場合もあります。
  • 遺伝演算子-これらは子孫の遺伝的組成を変更します。 これらには、クロスオーバー、突然変異、選択などが含まれます。

基本構造

GAの基本構造は次のとおりです-

最初の母集団(ランダムに生成されるか、他のヒューリスティックによってシードされる)から始め、この母集団から交配のために親を選択します。 親に交叉演算子と突然変異演算子を適用して、新しい子孫を生成します。 そして最後に、これらの子孫が人口の既存の個人に取って代わり、プロセスが繰り返されます。 このようにして、遺伝的アルゴリズムは実際にある程度人間の進化を模倣しようとします。

次の各ステップは、このチュートリアルの後半で個別の章として扱われます。

基本構造

GAの一般化された擬似コードは、次のプログラムで説明されています-

GA()
   initialize population
   find fitness of population

   while (termination criteria is reached) do
      parent selection
      crossover with probability pc
      mutation with probability pm
      decode and fitness calculation
      survivor selection
      find best
   return best

遺伝子型の表現

遺伝的アルゴリズムを実装する際に行う最も重要な決定の1つは、ソリューションの表現に使用する表現を決定することです。 不適切な表現は、GAのパフォーマンスを低下させる可能性があることが観察されています。

したがって、適切な表現を選択し、表現型と遺伝子型の空間間のマッピングを適切に定義することは、GAの成功に不可欠です。

このセクションでは、遺伝的アルゴリズムで最も一般的に使用される表現のいくつかを紹介します。 ただし、表現は非常に問題に固有のものであり、読者は、ここで述べた別の表現または表現の組み合わせが自分の問題により適していることに気付くかもしれません。

バイナリ表現

これは、GAで最も単純で最も広く使用されている表現の1つです。 このタイプの表現では、遺伝子型はビット文字列で構成されています。

ソリューション空間がブール決定変数で構成されている一部の問題(yesまたはno)では、バイナリ表現は自然です。 たとえば、0/1ナップザック問題を取り上げます。 n個のアイテムがある場合、n個の要素のバイナリ文字列で解を表すことができます。x^ th ^要素は、アイテムxが選択されている(1)かどうか(0)を示します。

バイナリ表現

他の問題、特に数値を扱う問題については、バイナリ表現で数値を表現できます。 この種のエンコーディングの問題は、ビットごとに重要性が異なるため、突然変異演算子とクロスオーバー演算子が望ましくない結果をもたらす可能性があることです。 これは、 Gray Coding を使用することである程度解決できます。1ビットの変更はソリューションに大きな影響を与えないためです。

実価値のある表現

離散変数ではなく連続変数を使用して遺伝子を定義する問題の場合、実際の値の表現が最も自然です。 ただし、これらの実数値または浮動小数点数の精度はコンピューターに限定されます。

実際の価値のある表現

整数表現

離散的な価値のある遺伝子の場合、ソリューション空間を常に「はい」または「いいえ」のバイナリに制限することはできません。 たとえば、北、南、東、西の4つの距離をエンコードする場合は、 \ {0,1,2,3} としてエンコードできます。 このような場合、整数表現が望ましいです。

整数表現

順列表現

多くの問題では、ソリューションは要素の順序で表されます。 このような場合、順列表現が最も適しています。

この表現の典型的な例は、巡回セールスマン問題(TSP)です。 この場合、セールスマンはすべての都市のツアーに参加し、各都市を1回だけ訪問して、出発都市に戻る必要があります。 ツアーの合計距離は最小限に抑える必要があります。 このTSPの解決策は、当然すべての都市の順序付けまたは並べ替えであるため、この問題には並べ替え表現を使用するのが理にかなっています。

置換表現

遺伝的アルゴリズム-人口

人口は、現在の世代のソリューションのサブセットです。 染色体のセットとして定義することもできます。 GAの母集団を扱う際に留意すべき点がいくつかあります-

  • 人口の多様性を維持する必要があります。そうしないと、早期収束につながる可能性があります。
  • 母集団のサイズはあまり大きくしないでください。GAの速度が低下する可能性がありますが、小さな母集団では適切な交配プールには不十分な場合があります。 したがって、試行錯誤によって最適な母集団サイズを決定する必要があります。

母集団は、通常、*母集団、サイズx、染色体サイズ*の2次元配列として定義されます。

人口の初期化

GAで母集団を初期化するには、2つの主要な方法があります。 彼らは-

  • ランダム初期化-初期集団に完全にランダムな解を入力します。
  • ヒューリスティックな初期化-問題の既知のヒューリスティックを使用して初期集団を作成します。

人口全体がヒューリスティックを使用して初期化されるべきではないことが観察されています。これは、人口が同様の解を持ち、多様性が非常に少ない結果になる可能性があるためです。 ランダム解が母集団を最適化するものであることが実験的に観察されています。 したがって、ヒューリスティックな初期化では、人口全体をヒューリスティックベースのソリューションで埋めるのではなく、いくつかの適切なソリューションで人口をシードし、残りをランダムなソリューションで埋めます。

ヒューリスティックな初期化は、場合によっては母集団の初期適合度にのみ影響することも観察されていますが、最終的には、最適性につながるのは解の多様性です。

母集団モデル

広く使用されている2つの人口モデルがあります-

定常状態

定常状態のGAでは、各反復で1つまたは2つの子孫を生成し、母集団から1つまたは2つの個体を置き換えます。 定常状態のGAは、 Incremental GA とも呼ばれます。

世代別

世代別モデルでは、「n」個の子孫を生成します。nは母集団のサイズで、反復の終わりに母集団全体が新しい母集団に置き換えられます。

遺伝的アルゴリズム-フィットネス関数

単純に定義された適応度関数は、問題の*候補解を入力として、出力として*検討中の問題に対する解の「適合度」を生成する関数です。

フィットネス値の計算はGAで繰り返し実行されるため、十分に高速である必要があります。 フィットネス値の計算が遅いと、GAに悪影響を及ぼし、例外的に遅くなる可能性があります。

ほとんどの場合、適応度関数と目的関数は、目的が与えられた目的関数を最大化または最小化することと同じです。 ただし、複数の目的と制約を持つより複雑な問題の場合、*アルゴリズムデザイナー*は異なるフィットネス関数を選択する場合があります。

フィットネス関数は、次の特性を持っている必要があります-

  • フィットネス関数は、計算するのに十分に高速でなければなりません。
  • 特定のソリューションがどの程度適合しているか、または特定のソリューションから個人がどれだけ適合できるかを定量的に測定する必要があります。

場合によっては、当面の問題の固有の複雑さのために、フィットネス関数を直接計算することができない場合があります。 そのような場合、ニーズに合わせて適合度近似を行います。

次の画像は、0/1ナップザックの解のフィットネス計算を示しています。 これは、ピックされているアイテム(1のあるアイテム)の利益値を合計し、ナップザックがいっぱいになるまで要素を左から右にスキャンする単純なフィットネス関数です。

バイナリ表現

遺伝的アルゴリズム-親の選択

親の選択は、次の世代の子孫を作成するために交配および再結合する親を選択するプロセスです。 親の選択は、良い親が個人をより良い、より適切なソリューションに導くため、GAの収束率にとって非常に重要です。

ただし、1つの非常に適切なソリューションが数世代で母集団全体を引き継ぐことを防ぐように注意する必要があります。これにより、ソリューション空間でソリューションが互いに近くなり、多様性が失われることになります。 人口の良好な多様性を維持することは、GAの成功にとって非常に重要です。 1つの非常に適切なソリューションで母集団全体を占有することは、*早期収束*と呼ばれ、GAでは望ましくない状態です。

フィットネス比例選択

Fitness Proportionate Selectionは、親を選択する最も一般的な方法の1つです。 これにおいて、すべての個人は、その適応度に比例する確率で親になることができます。 したがって、より健康な人は、彼らの機能を次世代に交配して伝播する可能性が高くなります。 したがって、このような選択戦略は、集団内のより適切な個人に選択圧力を適用し、時間とともにより良い個人を進化させます。

円形のホイールを考えてみましょう。 ホイールは* n個のパイ*に分割されます。nは母集団内の個人の数です。 各個人は、フィットネス値に比例する円の一部を取得します。

フィットネス比例選択の2つの実装が可能です-

ルーレットホイールの選択

ルーレットホイールの選択では、前述のように円形のホイールが分割されます。 図に示すように、ホイールの円周上の固定点が選択され、ホイールが回転します。 固定点の前に来るホイールの領域が親として選択されます。 2番目の親についても、同じプロセスが繰り返されます。

ルーレットホイールの選択

フィット感のある人は、ホイール上でより大きなパイを持っているため、ホイールが回転すると固定点の前に着地する可能性が高くなります。 したがって、個人を選択する確率は、そのフィットネスに直接依存します。

賢明な実装、私たちは次の手順を使用します-

  • S =罰金の合計を計算します。
  • 0とSの間の乱数を生成します。
  • 母集団の先頭から開始して、P <Sになるまで、部分合計Pに細目を追加し続けます。
  • PがSを超える個体は、選択された個体です。

確率的ユニバーサルサンプリング(SUS)

確率的ユニバーサルサンプリングはルーレットホイールの選択に非常に似ていますが、次の図に示すように、固定点が1つだけではなく、複数の固定点があります。 したがって、すべての親は、ホイールを1回回転させるだけで選択されます。 また、このような設定は、非常にフィットする個人が少なくとも1回選択されることを促進します。

SUS

フィットネスが負の値をとることができる場合、フィットネスの比例選択法は機能しないことに注意してください。

トーナメント選択

K-Wayトーナメント選択では、母集団からK人の個人をランダムに選択し、これらの中から最高のものを選択して親になります。 次の親を選択するために同じプロセスが繰り返されます。 トーナメント選択は、負のフィットネス値でも機能するため、文学でも非常に人気があります。

トーナメント選択

ランク選択

ランク選択は負のフィットネス値でも機能し、母集団内の個人のフィットネス値が非常に近い場合に使用されます(これは通常、実行の最後に発生します)。 これにより、次の画像に示すように、各個人がほぼ同じ割合でパイを共有します(フィットネス比例選択の場合のように)。したがって、各個人は、互いにどの程度フィットしても、ほぼ同じ確率で選択されます親。 これにより、フィッターの方への選択圧力が失われ、GAがそのような状況で親選択を下すようになります。

ランク選択

これでは、親を選択する際にフィットネス値の概念を削除します。 ただし、人口内のすべての個人は、フィットネスに従ってランク付けされます。 親の選択は、フィットネスではなく各個人のランクに依存します。 ランクの高い人は、ランクの低い人よりも優先されます。

Chromosome Fitness Value Rank
A 8.1 1
B 8.0 4
C 8.05 2
D 7.95 6
E 8.02 3
F 7.99 5

ランダム選択

この戦略では、既存の母集団から親をランダムに選択します。 より適格な個人に対する選択圧力はないため、この戦略は通常回避されます。

遺伝的アルゴリズム-クロスオーバー

この章では、クロスオーバー演算子が他のモジュールと一緒に何であるか、それらの用途と利点について説明します。

クロスオーバーの概要

クロスオーバー演算子は、生殖および生物学的クロスオーバーに似ています。 これでは、複数の親が選択され、親の遺伝物質を使用して1つ以上の子孫が生成されます。 通常、クロスオーバーはGAで p〜c〜 の確率で適用されます。

クロスオーバー演算子

このセクションでは、最も一般的に使用されるクロスオーバー演算子のいくつかについて説明します。 これらのクロスオーバー演算子は非常に汎用的であり、GA Designerは問題固有のクロスオーバー演算子も実装することを選択する場合があることに注意してください。

ワンポイントクロスオーバー

この1点交差では、ランダムな交差点が選択され、その2つの親の尾が交換されて、新しい子孫が得られます。

ワンポイントクロスオーバー

マルチポイントクロスオーバー

マルチポイントクロスオーバーは、1つのポイントのクロスオーバーを一般化したもので、交互のセグメントを交換して新しい子孫を取得します。

マルチポイントクロスオーバー

均一なクロスオーバー

均一なクロスオーバーでは、染色体をセグメントに分割せず、各遺伝子を個別に扱います。 この場合、基本的に各染色体のコインを反転させて、子孫に含めるかどうかを決定します。 また、コインを片方の親に偏らせて、その親からの子供により多くの遺伝物質を持たせることができます。

ユニフォームクロスオーバー

全算術組換え

これは一般的に整数表現に使用され、次の式を使用して2つの親の加重平均を取ることにより動作します-

  • Child1 =α.x+(1-α).y
  • Child2 =α.x+(1-α).y

明らかに、α= 0.5の場合、次の図に示すように、両方の子は同一になります。

全算術組換

デイビスのオーダークロスオーバー(OX1)

OX1は、相対的な順序に関する情報を子孫に送信することを目的とした、置換ベースのクロスオーバーに使用されます。 次のように動作します-

  • 親に2つのランダムなクロスオーバーポイントを作成し、それらの間のセグメントを最初の親から最初の子孫にコピーします。
  • 次に、2番目の親の2番目のクロスオーバーポイントから開始し、残りの未使用の番号を2番目の親から最初の子にコピーして、リストを折り返します。
  • 親の役割を逆にして、2番目の子についても繰り返します。

Davis ’Order Crossover

部分的にマッピングされたクロスオーバー(PMX)、順序ベースのクロスオーバー(OX2)、シャッフルクロスオーバー、リングクロスオーバーなど、他にも多くのクロスオーバーが存在します。

遺伝的アルゴリズム-突然変異

突然変異の概要

簡単に言えば、突然変異は、新しい解決策を得るために、染色体の小さなランダムな微調整として定義されるかもしれません。 遺伝集団の多様性を維持および導入するために使用され、通常は低い確率で適用されます- p〜m〜 確率が非常に高い場合、GAはランダム検索に縮小されます。

突然変異は、探索空間の「探索」に関連するGAの一部です。 交差は必須ではないが、突然変異はGAの収束に不可欠であることが観察されています。

突然変異演算子

このセクションでは、最も一般的に使用される突然変異演算子のいくつかを説明します。 クロスオーバー演算子と同様に、これは完全なリストではなく、GA設計者はこれらのアプローチの組み合わせまたは問題固有の突然変異演算子がより役立つと感じるかもしれません。

ビット反転突然変異

このビットフリップミューテーションでは、1つ以上のランダムビットを選択して反転します。 これは、バイナリエンコードされたGAに使用されます。

ビットフリップ突然変異

ランダムリセット

ランダムリセットは、整数表現のビットフリップの拡張です。 これでは、許容値のセットからランダムな値がランダムに選択された遺伝子に割り当てられます。

スワップ突然変異

スワップ変異では、染色体上の2つの位置をランダムに選択し、値を交換します。 これは、順列ベースのエンコードでは一般的です。

Swap Mutation

スクランブル突然変異

スクランブル突然変異は、順列表現でも人気があります。 これでは、染色体全体から遺伝子のサブセットが選択され、それらの値はランダムにスクランブルまたはシャッフルされます。

スクランブル突然変異

反転突然変異

反転変異では、スクランブル変異のように遺伝子のサブセットを選択しますが、サブセットをシャッフルする代わりに、サブセット内の文字列全体を単に反転します。

反転突然変異

遺伝的アルゴリズム-生存者の選択

生存者選択ポリシーは、追い出される個人と次世代に保持される個人を決定します。 より適切な個人が人口から追い出されないようにすると同時に、人口の多様性を維持する必要があるため、これは重要です。

一部のGAは*エリート主義*を採用しています。 簡単に言えば、人口の現在の最も適したメンバーが常に次世代に伝播されることを意味します。 したがって、いかなる状況においても、現在の人口の最も適したメンバーを置き換えることはできません。

最も簡単なポリシーは、ランダムなメンバーを母集団から追い出すことですが、そのようなアプローチでは収束の問題が頻繁に発生するため、次の戦略が広く使用されています。

年齢ベースの選択

年齢に基づく選択では、フィットネスの概念はありません。 それは、各個体が有限世代の集団で許可されており、その後、繁殖が許可され、その後、その適性がどれほど良好であっても集団から追い出されるという前提に基づいています。

たとえば、次の例では、年齢は、個人が人口に含まれている世代の数です。 人口の最も古いメンバー、すなわち P4とP7は人口から追い出され、残りのメンバーの年齢は1ずつ増加します。

年齢ベースの選択

フィットネスベースの選択

このフィットネスベースの選択では、子供たちは人口の中で最もフィットしない個体を置き換える傾向があります。 最小適合個体の選択は、トーナメント選択、フィットネス比例選択など、前述の選択ポリシーのバリエーションを使用して実行できます。

たとえば、次の画像では、子供たちは母集団の最小適合個体P1とP10を置き換えます。 P1とP9のフィットネス値は同じであるため、母集団からどの個体を削除するかは任意です。

フィットネスベースの選択

遺伝的アルゴリズム-終了条件

遺伝的アルゴリズムの終了条件は、GAの実行がいつ終了するかを決定する上で重要です。 最初は、GAが非常に速く進行し、数回の反復ごとに優れたソリューションが提供されることが観察されましたが、改善が非常に小さい後の段階で飽和する傾向があります。 通常、実行の終了時にソリューションが最適に近くなるような終了条件が必要です。

通常、次の終了条件のいずれかを維持します-

  • X回の反復で母集団に改善がない場合。
  • 絶対世代に達したとき。
  • 目的関数の値が特定の事前定義された値に達したとき。

たとえば、遺伝的アルゴリズムでは、人口が改善されていない世代を追跡するカウンターを保持します。 最初に、このカウンターをゼロに設定します。 集団内の個人よりも優れた子孫を生成しないたびに、カウンターをインクリメントします。

ただし、子孫のいずれかの適合性が優れている場合は、カウンターをゼロにリセットします。 アルゴリズムは、カウンターが所定の値に達すると終了します。

GAの他のパラメーターと同様に、終了条件も非常に問題に固有であり、GA設計者はさまざまなオプションを試して、特定の問題に最適なものを確認する必要があります。

生涯適応のモデル

このチュートリアルでは、これまでに説明したものはすべて、進化のダーウィンのモデルに対応しています。つまり、自然selectionと組換えと突然変異による遺伝的変異です。 自然界では、個人の遺伝子型に含まれる情報のみが次世代に伝達されます。 これが、これまでチュートリアルで行ってきたアプローチです。

ただし、ライフタイム適応の他のモデル- Lamarckian Model および Baldwinian Model も存在します。 どちらのモデルが最良であるかは議論の余地があり、研究者によって得られた結果は、生涯適応の選択が非常に問題特有であることを示していることに注意してください。

多くの場合、ミームアルゴリズムのように、GAをローカル検索とハイブリッド化します。 そのような場合、ローカル検索後に生成された個人に対して何を行うかを決定するために、ラマルクモデルまたはボールドウィンモデルのどちらかを選択することができます。

ラマルクモデル

ラマルキアンモデルは基本的に、個人が生涯で獲得する特性はその子孫に引き継ぐことができると言っています。 フランスの生物学者ジャン・バプティスト・ラマルクにちなんで名付けられました。

にもかかわらず、遺伝子型の情報しか伝達できないことは誰もが知っているので、自然生物学はラマルキズムを完全に無視しています。 ただし、計算の観点から、ラマルクモデルを採用すると、いくつかの問題に対して良い結果が得られることが示されています。

Lamarckianモデルでは、ローカル検索演算子が近傍を調べ(新しい特性を取得)、より良い染色体が見つかった場合、それが子孫になります。

ボールドウィニアンモデル

ボールドウィンモデルは、ジェームズマークボールドウィン(1896)にちなんで名付けられた中間的なアイデアです。 Baldwinモデルでは、染色体は有益な行動を学習する傾向をエンコードできます。 つまり、ラマルクのモデルとは異なり、獲得した形質を次世代に伝達せず、ダーウィンのモデルのように獲得した形質を完全に無視することもありません。

ボールドウィンモデルは、これらの両極端の中間にあり、個人が特定の特性を獲得する傾向が、特性自体ではなくコード化されています。

このボールドウィンモデルでは、ローカル検索演算子が近傍を調べ(新しい特性を取得)、より良い染色体が見つかった場合、改善された適合度を染色体に割り当てるだけで、染色体自体は変更しません。 適応度の変化は、将来の世代に直接渡されなくても、染色体が「形質を獲得する」能力を意味します。

効果的な実施

GAは本質的に非常に一般的であり、最適化の問題にそれらを適用するだけでは良い結果が得られません。 このセクションでは、GAデザイナーまたはGA実装者の作業を支援および支援するいくつかのポイントについて説明します。

問題固有のドメイン知識を導入する

より具体的なドメイン固有の知識がGAに組み込まれることが観察されています。より良い客観的な値が得られます。 問題固有のクロスオーバーまたはミューテーション演算子、カスタム表現などを使用して、問題固有の情報を追加できます。

次の画像は、Michalewicz(1990)によるEAの見解を示しています-

効果的な実装

混雑を軽減

混雑は、非常に適合した染色体が多く繁殖するときに発生し、数世代では、人口全体が同様の適合度を持つ同様のソリューションで満たされます。 これは、GAの成功を確実にするための非常に重要な要素である多様性を減らします。 混雑を制限する方法は多数あります。 それらのいくつかは-

  • *突然変異*多様性を導入する。
  • *ランク選択*および*トーナメント選択*に切り替えると、類似のフィットネスを持つ個人のフィットネス比例選択よりも選択圧力が高くなります。
  • フィットネスの共有-この場合、人口にすでに類似の個人が含まれている場合、個人のフィットネスは低下します。

ランダム化が役立ちます!

最良の解決策は、集団に多様性を与えるため、ランダム化された染色体によって駆動されることが実験的に観察されています。 GAの実装者は、最良の結果を得るために十分な量のランダム化と母集団の多様性を維持するように注意する必要があります。

GAとローカル検索のハイブリッド化

ローカル検索とは、特定のソリューションの近傍にあるソリューションをチェックして、より良い客観的な値を探すことです。

GAをローカル検索とハイブリッド化すると便利な場合があります。 次の画像は、ローカル検索をGAに導入できるさまざまな場所を示しています。

GAのハイブリッド化

パラメータとテクニックのバリエーション

遺伝的アルゴリズムには、「すべてに適合するサイズ」や、すべての問題に有効な魔法の式はありません。 最初のGAの準備が整った後でも、母集団のサイズ、突然変異、交差確率などのパラメーターをいじるのに多くの時間と労力がかかります。 特定の問題に合ったものを見つけるために。

遺伝的アルゴリズム-高度なトピック

このセクションでは、遺伝的アルゴリズムのいくつかの高度なトピックを紹介します。 GAの概要だけを探している読者は、このセクションをスキップすることを選択できます。

制約付き最適化問題

制約付き最適化問題は、特定の制約を受ける特定の目的関数値を最大化または最小化する必要がある最適化問題です。 したがって、解空間のすべての結果が実行可能であるわけではなく、次の図に示すように、解空間には実行可能な領域が含まれています。

制約付き最適化

そのようなシナリオでは、クロスオーバー演算子と突然変異演算子は、実行不可能なソリューションを提供する可能性があります。 したがって、制約付き最適化問題を処理する場合、GAで追加のメカニズムを使用する必要があります。

最も一般的な方法のいくつかは-

  • *ペナルティ関数*を使用すると、実行不可能なソリューションの適合性が低下し、できれば、違反した制約の数または実行可能領域からの距離に比例して適合性が低下します。
  • 実行不可能な解決策を取り、違反した制約が満たされるように修正する*修復関数*を使用します。
  • *実行不可能な解決策*を母集団に入力することを許可しません。
  • ソリューションの実行可能性を保証する*特殊な表現またはデコーダー関数*を使用します。

基本的な理論的背景

このセクションでは、ビルディングブロックの仮説とともに、スキーマとNFLの定理について説明します。

スキーマ定理

研究者は、遺伝的アルゴリズムの動作の背後にある数学を解明しようとしており、オランダのスキーマ定理はその方向への一歩です。 スキーマ定理をより一般的にするために、この1年でさまざまな改善と提案が行われました。

このセクションでは、スキーマ定理の数学を掘り下げるのではなく、スキーマ定理が何であるかについての基本的な理解を深めようとします。 知っておくべき基本的な用語は次のとおりです-

  • スキーマ*は「テンプレート」です。 正式には、アルファベット= \ {0,1、}上の文字列です。 +ここで、は重要ではなく、任意の値を取ることができます。 +したがって、 *10 1は01001、01011、11001、または11011を意味する可能性があります。+幾何学的に、スキーマはソリューション検索スペースの超平面です。
  • スキーマの Order は、遺伝子内の指定された固定位置の数です。

スキーマ順序

  • Defining length は、遺伝子内の2つの最も遠い固定シンボル間の距離です。

スキーマ定義長

スキーマ定理は、平均以上の適合度、短い定義長、低次のこのスキーマは、クロスオーバーと突然変異を乗り切る可能性が高いと述べています。

構成要素の仮説

ビルディングブロックは、上記の平均適合度を備えた低次の低定義長スキーマです。 ビルディングブロックの仮説では、そのようなビルディングブロックは、そのような「ビルディングブロック」を連続的に特定して再結合することにより、GAの成功とGAの適応の進行の基盤として機能するという。

フリーランチなし(NFL)の定理

1997年にWolpertとMacreadyは、「最適化のための無料昼食定理なし」というタイトルの論文を発表しました。基本的に、考えられるすべての問題の空間を平均すると、再検討しないすべてのブラックボックスアルゴリズムは同じパフォーマンスを発揮するということです。

つまり、問題を理解すればするほど、GAの問題固有性が高まり、パフォーマンスが向上しますが、他の問題ではパフォーマンスが低下することで埋め合わせられます。

GAベースの機械学習

遺伝的アルゴリズムは機械学習にも応用できます。 分類システム*は、機械学習の分野で頻繁に使用される*遺伝学ベースの機械学習(GBML)システムの一種です。 GBMLメソッドは、機械学習に対するニッチなアプローチです。

GBMLシステムには2つのカテゴリがあります-

  • ピッツバーグアプローチ-このアプローチでは、1つの染色体が1つのソリューションをエンコードしているため、ソリューションに適合性が割り当てられます。
  • ミシガン州のアプローチ-通常、1つの解は多くの染色体で表されるため、部分解に適合度が割り当てられます。

クロスオーバー、突然変異、ラマルクまたはダーウィニアンなどの標準的な問題に留意してください。 GBMLシステムにも存在します。

遺伝的アルゴリズム-適用分野

遺伝的アルゴリズムは、主にさまざまな種類の最適化問題で使用されますが、他のアプリケーション分野でも頻繁に使用されます。

このセクションでは、遺伝的アルゴリズムが頻繁に使用される領域の一部をリストします。 これらは-

  • 最適化-遺伝的アルゴリズムは、特定の制約セットの下で特定の目的関数値を最大化または最小化する必要がある最適化問題で最も一般的に使用されます。 最適化の問題を解決するアプローチは、チュートリアル全体で強調されています。
  • 経済-GAは、クモの巣モデル、ゲーム理論の均衡解決、資産価格設定などのさまざまな経済モデルを特徴付けるためにも使用されます。
  • ニューラルネットワーク-GAは、ニューラルネットワーク、特にリカレントニューラルネットワークのトレーニングにも使用されます。
  • 並列化-GAも非常に優れた並列機能を備えており、特定の問題を解決する上で非常に効果的な手段であることが証明されており、研究に適した領域も提供しています。
  • 画像処理-GAは、さまざまなデジタル画像処理(DIP)タスクや密なピクセルマッチングに使用されます。
  • 車両ルーティングの問題-複数のソフトタイムウィンドウ、複数のデポ、および異種車両を使用しています。
  • スケジューリングアプリケーション-GAは、さまざまなスケジューリングの問題、特にタイムテーブルの問題も解決するために使用されます。
  • 機械学習-すでに説明したように、遺伝学ベースの機械学習(GBML)は機械学習のニッチ分野です。
  • ロボット軌道生成-GAは、ロボットアームが1つのポイントから別のポイントに移動する際の経路を計画するために使用されています。
  • 航空機のパラメトリック設計-GAを使用して、パラメータを変更し、より良いソリューションを展開することで航空機を設計しています。
  • * DNA分析*-GAは、サンプルに関する分光データを使用してDNAの構造を決定するために使用されています。
  • マルチモーダル最適化-GAは、マルチモーダル最適化のための非常に優れたアプローチであり、複数の最適なソリューションを見つける必要があります。
  • 巡回セールスマンの問題とその応用-GAはTSPを解決するために使用されています。

遺伝的アルゴリズム-さらなる読み物

次の本は、遺伝的アルゴリズムと進化的計算一般に関する読者の知識をさらに高めるために参照できます-

  • * David E.による検索、最適化、機械学習における遺伝的アルゴリズム ゴールドバーグ*。 遺伝的アルゴリズム+データ構造= Zbigniew Michalewicz *による進化プログラム。
  • Randy L.による実用的な遺伝的アルゴリズム Haupt および Sue Ellen Haupt
  • Kalyanmoy Deb による進化的アルゴリズムを使用した多目的最適化。