インテリジェントアルゴリズム-遺伝的アルゴリズム(3)

一緒に書く習慣を身につけましょう!「ナゲッツデイリーニュープラン・4月アップデートチャレンジ」に参加して12日目です。クリックしてイベントの詳細をご覧ください

1.遺伝的アルゴリズム

遺伝的アルゴリズムの一般的な考え方の概要は次のとおりです:遺伝的アルゴリズムは、最初に初期解セットを何らかの方法で遺伝子遺伝子配列(染色体)にコンパイルする必要があります。下の図に示すように、コンパイルされた染色体です、これは、初期解を表します(対応します)。もちろん、すべての集団遺伝子をカバーするために、多くの、多くの類似した染色体が最初にコンパイルされる必要があります。次に、そのような染色体の多くが初期集団を形成します。次に、生殖が開始され、母集団の各染色体の長所と短所(適合性)が計算されて比較され、一部の貧しい個人が排除されます。

残りの個体については、遺伝子組換えが行われ、 2つの染色体間で遺伝子配列が交換(クロスオーバー)されて、新しい子孫染色体配列が形成されます。新しい子孫の染色体配列については、突然変異の可能性があります(染色体遺伝子配列のいくつかの遺伝子の変化)。

次に、これらの子孫を親として使用し、適者生存を実現するために上記のすべての操作を繰り返し、何世代にもわたって繁殖した後、最終的に保存された染色体が最適な解決策となります。

遺伝的アルゴリズムの基本的な考え方と関連する専門用語の説明については、インテリジェントアルゴリズム-遺伝的アルゴリズム(1)-ナゲット(juejin.cn)を参照してください

遺伝的アルゴリズムの例の詳細な説明については、インテリジェントアルゴリズム-遺伝的アルゴリズム(2)-ナゲット(juejin.cn)を参照してください。

2.重要な要素の選択

2.1符号化方法

一般的に使用されるエンコード方法には、主に次のものが含まれます。そのうち、最初の3つがより一般的に使用されます。要するに、コーディング方法は、問題の解決策(スキーム)を一連のコードに変換する変換プロセスです。

  • バイナリエンコーディング:この方法は、いくつかの0-1の問題に使用されます。各要素には、0または1の2つの選択肢があります。例:1111001100111011111100
  • 整数エンコーディング:各遺伝子セグメントは整数で表されます(例:3 4 1 2 5)
  • 実際のエンコーディング:たとえば、3.1 5.2 4.3 6.0 8.2
  • グレイコードエンコーディング
  • シンボルエンコーディング
  • DNAコード

2.2 适应度函数的选取

适应度主要反应个体的“好坏”程度(一致性)。适应度函数的选取直接影响遗传算法的收敛速度以及能否找到最优解。通常情况下,适应度函数都是由问题的目标函数直接或间接转换而来。例如,最大化问题可以直接由目标函数充当适应度函数,目标值=适应度值也就说明目标值越大,适应度值也越大,也就代表这个个体越好。

最小化问题,可以选择目标函数的相反数作为适应度函数,目标值越小(例如1<10),此个体越好,适应度值越大(-1>-10),适应度值反映了该个体的好坏程度,即此个体越“好”,适应度值越大。

还有很多其他的构造方法,也可以采取一些非线性(曲线变化)的函数来表示,总之需要遵循“一致性”原则。

适应度函数的选择会导致一些问题:

  • 进化初期,个别超常个体(某个体适应值太大了,能力超群)控制选择过程
  • 进化末期,个体差异太小(大家适应值都差的微乎其微)导致陷入局部极值

2.3 选取方式

  • 轮盘赌选择法:把每个个体适应度,依照该个体适应度占总体适应度的概率,做成一个圆盘,如下所示。转动 n n (根据题意自行设定)次圆盘,被转到的个体留下,其余淘汰掉。

image.png

  • 锦标赛选择法:每次从所有个体中抽取随机抽取 n n 个个体,保留下其中最好的,重复此过程抽取 m m 次,所有保留下来的个体放一起就是选出来的个体。
  • 随机遍历抽样法:设定n为需要选择的个体数目,等距离选择个体,选择指针的距离为 1 n 1/n 。第一个指针的位置由 [ 0 l n ] [0,l/n] の一様乱数によって決定され下の図に示すように、最初に、個々のフィットネスが全体的なフィットネスを占める確率に応じて、各個人が線分に分割され、10の線分が図で分割されます( 10 10 人)次に、ポインタを使用してこの線分を等間隔でポイントします。ポイントされた個人は選択された個人です。図で選択された個人は次のとおりです。 1 2 3 4 6 8 1、2、3、4、6、8

image.png

おすすめ

転載: juejin.im/post/7088713290087399455