遺伝的アルゴリズム
遺伝的アルゴリズムとは?
GA(遺伝的アルゴリズム、Genetic Algorithms)は、進化論的な考え方に基づいてデータを操作し、最適解探索や学習、推論を行う手法です。
遺伝的アルゴリズムのしくみ
GAで扱うデータ構造は、GTYPE(genotype)とPTYPE(phenotype)の二層構造からなります。
GTYPEは遺伝子型のアナロジーで、GAのオペレータ(後述)の操作対象となります。PTYPEは表現型(発現型)であり、GTYPEの環境内での行動や構造の発現を表します。また、PTYPEから環境に応じて適合度(fitness value)が決まります。
https://gyazo.com/d720773b862beee6d57c7574e3204f2f
いくつかの個体が集まって集団を構成しているとします。これを世代tの集団とします。
個体にはそれぞれ適合度が決まっています。
これらの個体は生殖活動(recombination、reproduction)を行い、次の世代 t+1の子孫を作り出します。生殖の際には、適合度の高いものほど子孫をより多くつくるように、適合度の低いものほど死にやすいようにします(選択もしくは淘汰)。
その結果、世代 t +1の各個体の適合度は、世代 t のそれよりも良いことが期待され、集団全体を見たときの適合度が上がっているはずです。
同様に、世代 t +1、t +2、…と繰り返していくと世代が上がるにつれ、次第に集団全体が良くなっていく、というのがGAの基本的な考え方となります。
https://gyazo.com/f9deec6858a524ed7df10b5423a8a3df
手法
適合度に比例した割合で個体を選択する方式です。これを実現する一番単純な方法は、適合度に比例した面積を有するルーレットをつくり、それを回して当たった場所の個体を選択するという方法です。
集団の中から個体をある個対数(トーナメントサイズ)だけランダムに選び出し、その中で適合度の最も高いものを選択します。この過程を集団数が得られるまで繰り返す選択方式のことです。この方式はトーナメントサイズの値で様々なバリエーションの選択が行えます。
適合度の高い個体のいくつかを、そのまま次の世代に残すという手法です。適合度の高い個体が偶然選択されずに死滅することを防ぐことができます。これは上の2つと組み合わせて用いられます。