先日公開したブラウザゲーム「2D物理エンジンレースカー進化シミュレーター」ですが、
身近な人から「何が面白いのかよくわからない」と言われてしまいました。
せっかく楽しめるゲームなのに、一人で面白さを独占するのはもったいない!そこで、少しでもその魅力を伝えられればと思い解説編の記事を書きました。
遺伝的アルゴリズムの概要
遺伝的アルゴリズムについて詳しく知りたい方は、Wikipediaが参考になります。
遺伝的アルゴリズム – Wikipedia
簡単に説明すると、遺伝的アルゴリズムは「強い個体を選んで次の世代に引き継ぐ」仕組みです。
たくさんの個体(ここではレースカー)を作って競わせ、その中で特に優れたものを選びます。
そして、それらを掛け合わせることで、次の世代はより強くなっていきます。
このプロセスを繰り返すことで、どんどん進化していくのが特徴です。
2D物理エンジンレースカー進化シミュレーターへの遺伝的アルゴリズムの適用
遺伝的アルゴリズムを利用するには、遺伝情報を持つ「遺伝子」が必要であり、それを「掛け合わせる」ことができなければなりません。
しかし、複雑なアルゴリズムそのものを遺伝情報として扱うのは難しそうだったため、まずは簡易的な走行ロボットを作成し、いくつかのパラメータだけで動作するアルゴリズムを組み込みました。
以下が実際の遺伝情報(遺伝子)のコードです。
続きを読む…