0

TicTacToe とNine Men's Morris のゲームをJavaFX で作成し、それぞれに AI を実装しました。Nine Men's Morris については、ミルの除去をまだ実装していないので、今のところは複雑な TicTacToe のようなものです。私はアルファ ベータ プルーニングでミニマックス アルゴリズムを使用しました。AI はかなりまともな動きをしていますが、ナイン メン モリスの動きの計算は非常に遅いです。AI にゲーム全体をプレイさせると、数分かかります。

評価関数については、ボード上の各行を評価する関数を使用しています。ここで、行の値は次のとおりです。

3 列の場合は 100、

2列なら10、

1列なら1、

敵のセルに対して負(-100、-10、-1)、

それ以外の場合は 0。

Minimax アルゴリズムは多かれ少なかれ同じものですが、TicTacToe の 8 行とは対照的に、Nine Men's Morris の場合、評価される行は 16 行ありますが、AI は Nine Men's Morris でははるかに遅くなります。

AI のパフォーマンスをさらに向上させるにはどうすればよいですか?

私はこの問題について研究を行っており、ニューラルネットワークを使用してミニマックス検索に焦点を当てたり、評価関数をニューラルネットワークに置き換えたりするというアイデアを見つけました。これらのソリューションは AI のパフォーマンスを改善できますか?

4

1 に答える 1

3

ニューラル ネットワークを使用せずに、アルファ ベータ プルーニングを使用してミニマックスを改善する方法は多数あります。さらに、分岐係数が比較的低い 9 人のモリスのようなゲームでは、ニューラル ネットワークは AI を助けるよりも害を及ぼす可能性があります。代わりに、さまざまなアプローチを検討します。有用なオプションは、反復的な深化で転置テーブルを使用することです。このテクニックは、このタイプのゲームに非常に役立ちます。転置表に関する記事へのリンクは次のとおりです: https://en.wikipedia.org/wiki/Transposition_table

実装に関するより具体的な質問がある場合は、チェス プログラミング wiki に、このトピックに関する記事がよく書かれています。チェスに関連していますが、どのゲームにも簡単に適用できるはずです。

https://chessprogramming.wikispaces.com/Transposition+Table

この手法をチェスとコネクト 4 の両方で使用したところ、検索時間が大幅に短縮されました。この手法の実装方法に関するより具体的な情報が必要な場合は、コメントを投稿してください。

于 2015-10-26T01:26:43.193 に答える