遺伝的アルゴリズムって、生物が環境に適応して進化する様子をプログラムで再現するやつなんですが、理論だけ聞いてもピンとこない人も多いですよね。僕も最初は「本当にそんなにうまく進化するの?」と半信半疑でした。
そこで思い切って、JavaScriptで実際にシミュレーターを作ってみました。答えが決まってない問題や、状況が常に変動する環境でどんなふうに生物が進化していくのか、教師なし学習の仕組みを目の当たりにできるんです。実際に動かしてみたら、思った以上にちゃんと適応してくれて、かなりテンション上がりました。
これを応用すると、ゲームのRTA攻略を目指すAIとか、株や為替相場の予測、囲碁や将棋みたいな対戦型ゲームのAI、それからRPGの敵キャラクターを自動生成するとか、アイデアがめちゃくちゃ広がります。実際に手を動かすことで、理論だけじゃわからない面白さや発見がありましたよ。