gomokuの場合、ニューラルネットワークや遺伝的アルゴリズムを使用するのは少しやり過ぎのようです。どちらも時間がかかり、たいていの場合、思い通りに行かないためです。五目並べゲームツリーはかなり大きいですが、マッピングとは対照的に、ミニマックス、ゲームツリーの剪定、および優れたヒューリスティック関数(2および3、4、2の半分をカウントするなど)から適切なAIを取得できます。完全なスペース。
アルファベータプルーニングとミニマックスに慣れていない場合は、https: //www.cs.cornell.edu/courses/cs312/2002sp/lectures/rec21.htmを参照してください。
ニューラルネットワークや遺伝的アルゴリズムを本当に使用したい場合は、学習体験をすることができます。ニューラルネットワークに関して、それを行う1つの方法は次のとおりです。
- ボード状態入力(空、黒、白の場合は0、1、2のシーケンス)を受け取り、ボード状態の「良さ」の値を出力するヒューリスティック関数を定義します。ニューラルネットワークはヒューリスティック関数です。
- これらのゲームの動きが最適であると想定して、現在の最高の動き(現在のパラメーターによる)とデータが言う動きが最高であるという違いのトレーニングを行います。これがエラー関数の定義方法です!したがって、この違いを最小限に抑え、ニューラルネットワークの動きが最強であることが理想的であり、ゲームデータが最強であることが理想的です(このエラー関数の最適化は、逆伝播または遺伝的アルゴリズムによって行うことができます)。
- 理想的には、この時点で、ハードコードされたヒューリスティックの代わりに、ゲームツリーの移動評価に(「強い」)ニューラルネットワークベースの評価関数を使用できます。
もちろん、これは1つの方法にすぎず、最初にゲームデータを見つける必要があります。
余談ですが、遺伝的アルゴリズムの適用は、上記のニューラルネットワークでのパラメーターの最適化やゲームツリーの検索など、いくつかの方法で発生する可能性があるため、問題の設定をどのように定義するかを明確にしてください!ニューラルネットワークを適用する別の方法についても同様です。
最後に、ゴムクが解決されたことを知ることは役に立ちます。他の人の考えやアイデアについては、https://stackoverflow.com/questions/6952607/ai-strategy-for-gomoku-a-variation-of-tic-tac-toeを参照して
ください。