【遺伝的アルゴリズム】遺伝的アルゴリズムのスクリプトを組む時、参考資料を読むときに入れておくとよい用語

約一か月振りの投稿になります。 最近、いろいろありまして、新しいことに挑戦している最中です。

さて、
挑戦している中の一つに、遺伝的アルゴリズムを使うというものがあります。
今回は、遺伝的アルゴリズムを勉強しようと思ったとき、押さえておくと情報が集めやすい用語を記載していきます。

ただ、専門家ではないので、もしかしたら誤った情報を記載している可能性もあります。
もし、誤りがあった場合はご指摘いただけると幸いです。

遺伝的アルゴリズムとは

あるお題に対して優れた個体を作るというのが目的です。
遺伝的アルゴリズムは「genetic algorithm」と言い、略して「ga」と称する事もあります。

お題を数値化し、適当な個体を集め評価します。
数値化したお題の事を適応度と言います。
評価が高い個体をベースに、次世代の個体を複数用意しまた評価します。

それを何度も繰り返すことによって、いずれ、適応度が高い個体が作れるというのがこのアルゴリズムです。

f:id:nakahashi_h:20180719130225p:plain

遺伝関連の用語

遺伝的アルゴリズムを調べるにあたって、理科とか生物学とかの言葉を知っていないと困難になります。
簡単にイメージすると下記のような事です。

f:id:nakahashi_h:20180719130250p:plain

文字にすると下記のようになります。

個体群
    -> 個体 ≒<b>染色体</b>の集まり
         ->染色体 ≒ <b>DNA</b>の集まり
             -> DNAを結びつける設計図が<b>遺伝子</b>

用語集

英語 日本語
gene 遺伝子
chromosome 染色体
individual 個体。次世代については、offspringを使ったりします。

アルゴリズム周りの用語

次に、アルゴリズムの説明の中で良く目にする用語です。

基本的な流れ

まず、遺伝的アルゴリズムの流れをざっくり説明すると次のようになります。

  1. 1世代目に当たる個体群を用意
  2. 個体の適応度を評価
  3. 適応度の低い個体を淘汰
  4. 現在の個体から次世代の個体を作るために、適応度が高い個体と交叉させる
  5. 一定の確率で突然変異を起こす

以降は、淘汰、交叉、突然変異を繰り返して世代を重ねていきます。

用語集

英語 日本語
generation 世代
selection 淘汰(選択)
fitness 適応度
crossover 交叉(入れ替える)
mutant 突然変異

参考URL

このスライドが端的でわかりやすいのでお勧めです。

www.slideshare.net



以上です。 概念だけでも勉強するのが難しいので、用語を知っているとそれだけ読み解くのがかなり楽になります。
今後も、いろいろ記事を書いていこうと思いますのでよろしくお願いします。