Stockfish DD – evaluate 評価関数

今回は評価関数です。Stockfishの評価関数evaluate()は、手番側から見た評価値を返すので、後手番であれば符号を反転して返す、みたいな処理が必要です。

min-max法やαβ法のサンプルコードで、手番側から見た評価値なのか、先手から見た評価値なのかハッキリ書いていないことが多々あります。ひどいケースではネガマックスの説明がどこもおかしい件のようになります。

あとは評価関数のデバッグとして、盤面をflip(180度回転させること)してそのときの評価値を計算し、それが元の値の符号を反転させたものになるかどうかをチェックするassertを追加しておくと思わぬバグが見つかることもあって新しい評価関数を設計・実装するときにはかなり有益だと思います。

 

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です