法政の遺伝的アルゴリズムの課題

日曜日に法政の友達の課題を手伝ってみた。

 なにやら遺伝的アルゴリズムを用いて理想的なドアの閉じ方を見つけるらしい。

流れとしては以下のようにする。

 

  1. 1世代目の個体をN個作る。
  2. こうさ(漢字わかりませんでした)を用いて個体の要素を入れ替える。
  3. 評価関数を用いて良さげな個体を選ぶ。
  4. 2,3を何回か行い2世代目の個体をN個つくる。
  5. 収束していくまで繰り返し良さげな個体を選ぶ。

 

評価関数はRunge-kuttaを使うように指定されていて、どうやら速度と距離を積分で出してるっぽい。

また、たまに値を別のものにする突然変異を2の後に行うことがある。ニューラルネットワークでいるdropoutと似てるのかも。自分的には5%くらいでいいだろと思ったが友達は50%がいいと言っていた。それもう突然変異じゃなくね。

 

だんだん収束していくのを見るのが面白かった。

参考:

https://qiita.com/Azunyan1111/items/975c67129d99de33dc21  7/10 2018