機械学習ノート - 遺伝的アルゴリズム

進化的アルゴリズム遺伝的アルゴリズム

進化的アルゴリズムEvoluationアルゴリズム(EAS)は、次の3つの特性を有しています。

  1. 集団ベース:比較的低い間ソリューションの現在の組の数から比較的良好な解のセットポイントを生成する:進化的最適化アルゴリズムは、プロセスとして説明することができます。現在のソリューションセットが人口と呼ばれています。
  2. あなたは今、ソリューションの多くを持っている場合は、との2つのソリューションの品質はどのようにそれを比較すること:フィットネス指向しますか?したがって、ソリューションの品質を測定するための標準の必要性:適応機能。各溶液に対応するその適合度を付与することができる適応機能。
  3. バリエーションドリブン:なし適切な電流pululation中の溶液またはない最適解ならば、我々は最適解を得るために何かをしたかったです。だから、すべてのソリューションは、新しいソリューションを生成するために、いくつかの変更を経なければならないということです。

以下は、特定のアルゴリズムを説明します。遺伝的アルゴリズム遺伝的アルゴリズム(GA)

遺伝的アルゴリズム(遺伝的アルゴリズム、GA)

遺伝的アルゴリズムは、ランダムな、古典的な進化的アルゴリズムです。ここでは、ランダムな平均値は、解決策を見つけるために遺伝的アルゴリズムを使用するために、我々は、結果の変更は、新しいソリューションを現在のソリューションにはいくつかのランダムな変換を生成します。注:遺伝的アルゴリズム(EA)は、単純な遺伝的アルゴリズム(単純な遺伝的アルゴリズム、SGA)と呼ばれる、その理由は、他の遺伝的アルゴリズムに比べて最も簡単であるということです。

遺伝的アルゴリズムはとダーウィンの進化論に影響を与えました。これは小さく、ゆっくりとした変化が役割を果たしていることによって、ゆっくりと段階的なプロセスです。そのため、遺伝的アルゴリズムは、最適なソリューションまで、既存のソリューションに小さく、ゆっくりとした変化をすることによってです。

遺伝的アルゴリズムの原則

全体の「人口」(人口)その中の遺伝的アルゴリズムの役割。この「人口」は、各個人が実際に解決策(ソリューション)で、個体数が含まれています。そして、各個人が持っている染色体を通常、この染色体は一意に対応する個人を説明している機能の集合です。同時に、多くの染色体遺伝子があります。コンピュータでは、我々は、遺伝子を発現するために多くの方法を使用することができます。以下、0と1で表現する遺伝子

もちろん、各個人が使用する必要がありますフィットネス、フィットネスは、適合関数与えられています。二人の個人間の品質を評価するために使用することができます。「環境」で、より個々のフィット感、それが保存されるべきことを示すフィットネス、高い;、特急個人が「環境」に適合しない低フィットネス、または溶液が十分ではないこと、そして個人が解消されなければなりません。

私たちは、に配置された個々の比較的高度に適応交配プール内の(交配プール)。個人の交配プールで呼ばれる両親を子供を持つことになり2人のうち交配プールのいずれかから選択してください。高品質の両親を交配することにより、我々はそれが親の子どもよりも高い品質を得ることを期待しています。子供は両親よりも低くフィットネスから生じる場合はもちろん、その後、子供が解消されます。連続反復を通じて子供は最高のフィットネスを持っていたか、これまでの前提要件に到達するまで。

子どもの人口から生じる電流は、両親のいくつかの特徴を持っています。そして、これらの子供たちは変化しません。そして、再び時に次の世代、世代が同じ子供たちに追いつくために生成することができる、と短所の父親は保持されます。したがって、私たちは、子どもたちが、彼らが集団に追加、あるいは自分の父親を排除したいです。

フローチャートは、おそらく次のように:

この時点まで、完全にGAのアルゴリズムを理解するために、我々は、次の2つの質問を把握する必要があります。

  1. 親からも、子を生成する方法は?
  2. どのようにわずかに異なる個別作る子供を修正するには?

以下は、染色体の表現と進化について説明します。

染色体表現と進化

染色体の有効な表現で、既存の多くの方法があります。染色体表現は、特定の問題のために異なります。全体探索空間の良好な表現は、それによってアルゴリズムの効率を向上させる、検索時間を短縮する、減少させることができます。

既存の染色体のメソッドを表します。

  1. バイナリ(二値):文字列は0と1に変化し、各染色体が表されています。
  2. パーミュテーション(置換):この表現は、巡回セールスマン問題として序問題のいくつかの面で非常に有効です。
  3. バリュー(値):特定の実数に染色体にコードを置きます。

例えば、我々は、バイナリ数7を表すために使用されます。

\ [0 1 1 1 \]

\(0111 \)私たちは染色体を呼び出し、その中で各文字が遺伝子であるものです。

学び、高校の生物学の学生は、染色体の二つの形式があることを知っている必要があります。

  1. 遺伝子型:ある染色体のすべての遺伝子のセット。
  2. 表現型:即ち、物理的に顕在化形状。

上記の例では、\(0111 \)遺伝子型は、数7が表現型です。

各染色体の適応度(適合値)を計算する方法を表示するには、下私たちにあるメソッドのパフォーマンス染色体を、実現した後?

仮定する適応機能(適応度関数)である:
\ [F(X)= 2X + 2 \]
ここで、\は(X \)染色体です。

以下のように、その適応度関数値のこの染色体数7は、次のとおりです。

\ [Fを(7)= 2×7 + 2 = 16 \]

適応度関数の計算は、染色体の進化(進化)と呼ばれています

初期化

各個々の完了後に次のステップのように個体数を選択することである表し集団

選択

それが適応度関数に基づいて与えられ、選択された個々の適合値、すなわち、嵌合プールに、集団からいくつかの個体を選択する、(規定値よりも高い)比較的高いです。

バリエーション

交配プールから2人の親の個人(例えば、1-2、3-4、など)のようにして注文から選択されます。別の方法は毎回ランダムに選択された二から選択されます。

両親、突然変異の操作のために選出されました。二つの操作を含みます:

  1. クロス変換
  2. 突然変異

図は概略的な相互変換および変異であります:

クロス変換

CGAのクロス変換は、染色体生物学上の類似したクロス変換されています。各染色体父親の兄弟の部分を分割し、その後、新しい染色体を形成するように再結合。父親のGETから子供一人当たりの遺伝子の数はランダムです。(この資料に記載されたアルゴリズムは、ランダムな進化的アルゴリズムに基づいているため、最も簡単な進化的アルゴリズムです。)。時々 、両親の染色体は二つの部分のランダムな位置、スプリット、交換父親に分割され、染色体または染色体の下半分の半分を選択しています。最終結果は、染色体の新世代です。これは、1つの染色体OFF操作が呼び出されているシングルポイントスイッチを(加えて、マルチポイントスイッチがあります)。

突然変異

それぞれの子のために、その遺伝子の一部を変更。もちろん、染色体の形に依存して変更する方法に固有。染色体がバイナリで表現されている場合、突然変異操作は、特定の値が0から1に又は1から0に変更されるに過ぎません。染色体が数値的方法で表現される場合には、それだけにランダム値の範囲を選択することができます。

引用文

https://www.linkedin.com/pulse/introduction-optimization-genetic-algorithm-ahmed-gad/

おすすめ

転載: www.cnblogs.com/shenhaojing/p/11482822.html