28

私は本のいくつかの紹介セクションと両方のトピックに関するいくつかの論文を読みました、そしてこれらの2つの方法はほとんどまったく同じであるように私には見えます。とはいえ、まだ実際に深く研究する時間がなかったので、間違っているかもしれません。

遺伝的アルゴリズムと進化戦略の違いは何ですか?それらの違いは何ですか?また、どこが似ていますか?

4

5 に答える 5

24

進化戦略では、個体は実数のベクトルとしてコード化されます。繁殖時には、親がランダムに選択され、最も適した子孫が選択されて次世代に挿入されます。ESの個人は自己適応しています。ステップサイズまたは「突然変異の強さ」は個体にエンコードされているため、優れた個体を選択することで、優れたパラメーターが次世代に伝わります。

遺伝的アルゴリズムでは、個体は整数としてコード化されます。選択は、彼らの健康に比例した親を選択することによって行われます。したがって、最初の選択が行われる前に、個人を評価する必要があります。遺伝的演算子はビットレベルで機能します(たとえば、ビット文字列を複数の部分に切断し、それらを他の親の部分と交換したり、単一のビットを切り替えたりします)。

それが理論です。実際には、両方の進化的アルゴリズムを区別するのが難しい場合があり、ハイブリッドアルゴリズム(たとえば、遺伝演算子のパラメーターをエンコードする整数(ビット文字列)の個人)を作成する必要があります。

于 2011-10-20T08:57:07.553 に答える
4

進化戦略(ES)を研究しているときに、このスレッドに偶然出くわしました。

Paulが以前に気づいたように、これは特定のアルゴリズムの実装の詳細であるため、ここではエンコーディングは実際には違いではありませんが、ESではより一般的であるように見えます。

質問に答えるには、最初に少し後退して、ESアルゴリズムの内部を調べる必要があります。ESには、進化の内因性および外因性パラメーターの概念があります。内因性パラメーターは個人に関連付けられているため、それらと一緒に進化し、外因性は「外部」から提供されます(たとえば、開発者によって一定に設定されるか、反復番号に応じて値を設定する関数/ポリシーが存在する可能性があります)。

したがって、個々のkは2つの部分で構成されます。

  • y(k)-個々の遺伝子型を示すオブジェクトパラメータのセット(たとえば、real / int値のベクトル)
  • s(k)-突然変異の統計的特性を制御できる戦略パラメーターのセット(例:実数/整数値のベクトル)

これらの2つのベクターが選択され、変異され、再結合されます。

GAとESの主な違いは、従来のGAではアルゴリズムパラメータのタイプに違いがないことです。実際、すべてのパラメーターは「外部」から設定されるため、ES用語では外因性です。

他にも小さな違いがあります。たとえば、ESでは選択ポリシーは通常1つで同じであり、GAでは交換可能な複数の異なるアプローチがあります。

より詳細な説明はここにあります(第3章を参照):進化戦略。包括的な紹介

于 2019-01-09T09:43:50.400 に答える
3

GAに関するほとんどの新しい教科書では、整数の代わりに実数値のコーディングが導入されています。つまり、個人は実数のベクトルとしてコーディングできます。これは、連続パラメータGAと呼ばれます(たとえば、Haupt&Haupt、「Practical Genetic Algorithms」、J.Wiley&Sons、1998を参照)。したがって、これはES実数コーディングと実質的に同じです。

親の選択に関しては、GAのために公開された多くの異なる戦略があります。私はそれらすべてを知りませんが、私はすべての中から選択することを想定しています(いくつかのアプリケーションで最高のものが使用されているだけではありません)。

于 2013-05-08T11:30:53.887 に答える
1

主な違いは、遺伝的アルゴリズムが整数のシーケンスを使用してソリューションを表すのに対し、進化戦略は実数のシーケンスを使用することです-参照:http://en.wikipedia.org/wiki/Evolutionary_algorithm#

于 2011-10-16T21:05:48.597 に答える
0

ウィキペディアのソース(http://en.wikipedia.org/wiki/Genetic_algorithm)と@Vaughn Catoが言ったように、両方の手法の違いは実装に依存しています。EAは実数を使用し、GAは整数を使用します。

ただし、実際には、問題の定式化やプログラムで整数または実数を使用できると思います。あなた次第です。たとえば、タンパク質の折り畳みの場合、二面角のセットがベクトルを形成すると言うことができます。これは実数のベクトルですが、エントリは整数でラベル付けされているので、問題を定式化し、整数演算に基づいてプログラムを作成できると思います。それは単なるアイデアです。

于 2011-10-18T01:38:28.410 に答える