0

私は、他のいくつかのAIと競合する2Dレーシングゲーム用のAIを構築する学校のプロジェクトを持っています。

レーシングトラックの白黒のビットマップ画像が表示されます。マップを受け取った後、車の基本的な統計(ハンドリング、加速、最高速度、ブレーキ)を選択できます。AIはゲームのサーバーに接続し、現在の加速とステアリングの2番目の数値を数回与えます。ちなみに、私が選んだ言語はC++です。質問は

  1. 最高の戦略またはアルゴリズムは何ですか(私は試して勝ちたいので)?私は現在、ネット上で見つかったいくつかのアイデアと私自身の1つか2つのアイデアを念頭に置いていますが、コーディングを始める前に、私の視点が最高の1つであることを望んでいます。
  2. その件に関してどんな良い本がありますか?
  3. どのサイトを参照する必要がありますか?
4

3 に答える 3

6

この問題に対する「正しい答え」はありません。これはかなり自由形式であり、さまざまなオプションが機能する可能性があります。

さまざまな制御統計を選択した後、AIに車の制御方法を最適に決定させる方法として、強化学習を検討することをお勧めします。強化学習モデルは、基礎となる制御システムの観点から特定の操作を行うための優れたシステムに向けて作業するようにコンピューターをトレーニングできます。

使用するコントロールを決定するには、強化学習のフレーバーを使用するか、コントロールのさまざまな組み合わせを試して、それらがどの程度「適合」するかを確認できる教師あり学習アルゴリズムを調査することができます。特定のマップ。たとえば、マップを小さなブロックに分割してから、最大数のブロックでどのコントロールが適切に機能するかを確認してみてください。

たどりたい経路をプロットするという点では、A*は最短経路を見つけるためのよく知られたアルゴリズムです。あなたの場合、それがどれほど役立つかはわかりませんが、それは教科書に基づいた検索アルゴリズムです。

対戦相手のレーサーを避けて、よりトリッキーな状況に追いやろうとするために、ある種の対戦相手のモデリングシステムを開発する必要があるかもしれません。ユニバーサルポートフォリオはこれを行う1つの方法ですが、この場合にどれほど役立つかはわかりません。1つのオプションは、トラックと敵の車の周りに潜在的なフィールドを開発して、車が障害物を回避しようとするのを助けることかもしれません。これは、パスファインディングにはA*よりも実際には良い選択かもしれません。戦術演習に興味がある場合は、簡単なミニマックス検索が、閉じ込められないようにするため、または敵を閉じ込める方法を見つけるための良い方法かもしれません。

私はAIの専門家ではありませんが、上記のリンクは良い出発点になると思います。競争で頑張ってください!

于 2011-02-21T21:57:57.813 に答える
3

その件に関してどんな良い本がありますか?

このテーマについて私が読んだ最高の本は、MatBucklandによる「ProgrammingGameAIbyExample」です。経路計画ステアリング動作の両方に関する章があり、さらに多くの章があります(ステートマシン、グラフ理論、リストは続きます)。

于 2011-02-21T22:01:51.380 に答える
1

上記のすべての解決策は優れており、人々はそれらをテストするために多大な努力を払ってきました。「TogeliusandLucas」または「LoiaconoandLanzi」を検索してください。彼らは、ニューロエボリューション、模倣(強化学習を介して行われる)、力場などのようなことを試みました。私の観点から、行くための最良の方法は中心線です。実装には1時間かかります。対照的に、(たとえば)ニューロエボリューションは簡単でも高速でもありません。私はそれについて論文を書きました、そしてあなたが適切なハードウェアを持っているならば、それは簡単にフルタイムで数ヶ月かかることがあります。

于 2011-04-01T07:00:37.147 に答える