始めての遺伝的アルゴリズム
こんにちは、あゆめぐです。
マッチ箱の脳という人工知能の本をしっていますか?(10年以上前のものですが・・・。)
イラストが入っていてとてもわかりやすい人工知能の本です!
amazonのkindleだと600円で売っているのでプライム会員は0円らしい・・・。
なので気になった方はどうぞ〜
作者の方は私の好きなゲームであるがんばれ森川君2号やアストロノーカをつくったかたです。
というわけで、本日はマッチ箱の脳の最初にのっていたやつをUnityでちょっとためしてみました。
問題としては各項目3択の全10問の問題があって、それを全問正解するまでがんばらせるというものです。
詳しいことは本を・・・うん・・・。
簡単に私が覚えているルールは
- 10体のあゆめぐちゃん(本ではマッチ箱)がテストを受けます。
- 成績の悪い2匹には出て行ってもらいます。
- 優秀な二匹の子供を二匹作ります
- ランダムな位置で二匹の遺伝子(解答)を入れ替えます。
- ランダムな確率で突然変異がおこります。
- 私の場合は1~11のランダムで11の場合は突然変異なし
- それ以外の場合はその番号の解答を+1しました。3になったら0にする
あとはこれを全問正解するまで繰り返させます。
問題はかわることはありません。
またそれぞれの個体が解答を途中でかえるなどもありません。
早いときで9世代、遅いと50世代くらいで全問正解しました。
とりあえず処理のソースを
##あゆめぐクラス
これは1匹のあゆめぐちゃんのクラスです。
dnaにテストの解答、scoreにテストの点数が入ります
##テストクラス
こちらはテストのクラスです。
問題数や解答の変数があり、採点するメソッドGetScoreがあります。
##動かすクラス
えーっとえーっとコンソールはってもつまらないと思うので次の記事でUIでもつけてみようかな・・・。
うん、これだけだとシュールだし、なにしてるかわからないよね・・・。
では今回はここまでで・・・w