良い動きをして他のプレイヤーに勝つことを学習するチェス エンジンをプログラムしたいと考えています。チェス盤の表現と、すべての可能な動きを出力する関数を既にコーディングしました。したがって、ボードの特定の状況がどれほど良いかを示す評価関数だけが必要です。したがって、与えられた位置を評価する人工ニューラル ネットワークを使用したいと思います。出力は数値でなければなりません。値が高いほど、白人プレーヤーの位置が高くなります。
私のアプローチは、385 個のニューロンのネットワークを構築することです。ボードには 6 つのユニークなチェスの駒と 64 のフィールドがあります。したがって、すべてのフィールドに対して 6 つのニューロン (すべてのピースに 1 つ) を使用します。白い駒がある場合、入力値は 1 です。黒い駒がある場合、値は -1 です。そのフィールドにそのようなピースがない場合、値は 0 になります。さらに、プレイヤーが移動するためのニューロンが 1 つ必要です。白のターンの場合、入力値は 1 であり、黒のターンの場合、値は -1 です。
ニューラルネットワークの構成はなかなか良いと思います。しかし、主要な部分が欠けています: このニューラル ネットワークをコーディング言語 (Delphi など) に実装するにはどうすればよいでしょうか? 各ニューロンの重みは最初は同じであるべきだと思います。試合の結果に応じて、重みを調整する必要があります。しかし、どのように?2 人のコンピューター プレイヤー (両方とも私のエンジンを使用) を対戦させるべきだと思います。白が勝った場合、黒は重みが良くないというフィードバックを受け取ります。
したがって、ニューラル ネットワークをコーディング言語に実装するのを手伝っていただければ幸いです (Delphi が最適ですが、それ以外の場合は疑似コードです)。前もって感謝します!