JavaScriptカーレースの進化

ゲームボックスカー2D-遺伝的アルゴリズムを使用して生成されたカーレースカーを見たことがあるかもしれません。 ゲームはFlashプラットフォームで実行され、box2d物理エンジンを使用します。 数十世代にわたって形のないフリークからかなりまともなレーシングカーがどのように発展するかを数時間見ることができます。 ゲームは数年前から存在しており、そのファンはさまざまな種類のトラックで車の新しい「品種」を育てようと競い合っています。 最近、HTML5とJavaScriptで書かれたGenetic Carsと呼ばれるこのゲームのクローンがWebに登場しました。 まだ多くの行方不明がありますが(たとえば、タイプライターエディター)、元のものよりもはるかに優れたものがいくつかあります。 たとえば、すべての車の到着を同時に観察することができます。 そして最も重要なのは、ソースを突っ走ることができるということです!







JavaScriptバージョンは、 Rafael Matsunagaによってゼロから作成されました。 オープンソースとそのバージョンのすべてのマシンの同時到着に加えて、レンダリングを無効にすることができます-この場合、物理のみが計算され、進化は数倍速くなります。 Box Car D2とは異なり、車の動作は完全には決定されていません。同じトラックの同じマシンでわずかに異なる結果が表示される場合があるため、新しい世代は前の世代より悪い結果を示すことがあります。 ただし、ユーザーが指定できる文字列に基づいて擬似ランダムに生成されるトレースは、同じ文字列に対して常に同じであるため、競合する可能性があります。



また、Genetic Carsの初期の遺伝的多様性はわずかに少なく、すべての車には2つの車輪があります。 合計で、車のゲノムは14個の遺伝子で構成されています-Box Car 2Dよりもはるかに少ないです。 それらのうちの8つが「ボディ」の各頂点の長さを調整し、3つが各ホイールに位置、サイズ、重量を調整します。



この記事を書いている間、Chromiumのバックグラウンドウィンドウで、「habrahabr.ru」という文字列に基づいて生成されたトラックで、3ダースの世代の車が競い合いました。 記録結果は178.87メートルです。






All Articles