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 のパフォーマンスを改善できますか?