私はconnect4AIに取り組んでおり、多くの人がこのデータセットを使用していて、8プライでのすべての法的位置とその最終的な結果が含まれているのを見ました。
検索アルゴリズムとしてアルファ/ベータプルーニングを使用した標準のミニマックスを使用しています。このデータセットは私のAIにとって本当に役立つ可能性があるようです。しかし、私はそれを実装するための最良の方法を見つけようとしています。最善のアプローチは、リストを処理し、ボードの状態を最終的な結果(勝ち、負け、引き分け)のハッシュとして使用することだと思いました。
このようなデータセットを使用するAIを設計するための最良の方法は何ですか?ボードの状態をハッシュし、それを従来の検索アルゴリズム(ミニマックスなど)で正しい軌道に乗せるという私の考えはありますか?またはより良い方法がありますか?
更新:私は最終的に大規模な移動データベースをプレーンなテスト形式に変換しました。1はXと-1 Oを表します。次に、ボードの状態の文字列、最終的な結果を表す整数を使用し、それをstd::unsorted_map
(を参照してください。私が遭遇した問題のために、順序付けられていないマップでオーバーフローをスタックします)。マップのパフォーマンスは素晴らしかった。それは迅速に構築され、ルックアップは高速でした。しかし、私は検索を正しく行うことができませんでした。ゲームのターン数が8未満のときにデータベースを検索してから、通常のアルファベータに切り替えるという問題に取り組む正しい方法はありますか?