pyevolveによる遺伝的アルゴリズム(2)

pyevolveによる遺伝的アルゴリズム(1)


GAを更に理解するために、GAの用語を説明します。
用語さえ分かれば、サンプルコードを眺めるだけで何をやってるかだいたいわかるようになります。

Genome(遺伝子)

ドイツ語で「ゲノム」と読みます。
遺伝子(Gene)+染色体(Chromosome)を合わせた造語で、遺伝子の全配列を指します。
pyevolveでは、Chromosomeを統括するリストをGenomeと呼んでいます。

Chromosome(染色体)

染色体は、遺伝子を構成する要素です。
発音は難しいのですが、「クロウマソウム」と読みます。

Allele(対立遺伝子)

訳は『対立遺伝子』です、なんか遺伝子同士の抗争でも勃発してんのかと思いますが違います。
簡単に言えば遺伝子の構成要素の種類のことです。
GAで遺伝子が「0」と「1」の2つの値で構成される場合、対立遺伝子は「0」と「1」となります。
遺伝子の値を複数の種類に限定したいときに設定します。

Generation(世代)

GAが何世代に渡って進化を試行するかを決定します。
試行世代数を増やすと最適解が出る可能性が上がりますが、計算時間は長くなります。

Population Size(標本数)

1世代における遺伝子の種類数です。
Population Sizeが50であれば、1世代に50個の遺伝子が存在します。
標本数を増やすと最適解が出る可能性が上がりますが、計算時間は長くなります。

SimpleGA(単純GA)

GAでは、優秀な遺伝子を残す『選択』と、子供の作成方法である『交叉』に、いくつかの方法が存在します。
pyevolveでは『ルーレット選択』と『一点交叉』で行われるGAを言います。
GAでは色々な選択と交叉を選ぶ事ができますが、ほとんどの場合はSimpleGAで十分な解を得る事ができます。

次回は、遺伝的アルゴリズムの問題点を説明します・・・