3.1 評価関数の定義 |
本章では局面を評価する関数を作成します。
単に評価を行うだけでなく、評価に使用するパラメータを更新できるようにします。
対局を重ねて強くなるプログラムを作成するのが本章の目的です。
局面評価にはEvaluatorクラスを使用します。
関数の定義は"evaluator.h"に記述してあります。
"evaluator.h"では以下の定数を定義しています。
/* 1石あたりの評価値 */ #define DISK_VALUE 1000
この定数によって、評価値が1石あたりどの程度になるのかを決めます。
例えば評価値が8000であれば、8石勝ちの局面であることを見込んでいます。
評価クラスの生成を行います。
引数 なし
戻り値 生成したEvaluatorクラス
評価クラスの破棄を行います。
引数
self : Evaluatorクラスへのポインタ
戻り値 なし
評価パラメータをファイルから読み込みます。
引数
self : Evaluatorクラスへのポインタ
in_file_name : 評価パラメータのファイル名
戻り値 読み込みに成功したら1、失敗したら0
評価パラメータをファイルに書き込みます。
引数
self : Evaluatorクラスへのポインタ
in_file_name : 評価パラメータのファイル名
戻り値 書き込みに成功したら1、失敗したら0
与えられた盤面の評価を行います。
盤面は黒番であるとして評価を行います。
引数
self : Evaluatorクラスへのポインタ
in_board : 評価を行う盤面
戻り値 盤面の評価値
与えられた盤面と評価値に基づいて評価パラメータの更新を行います。
与えられた盤面に含まれる評価パラメータが更新されます。
引数
self : Evaluatorクラスへのポインタ
in_board : 盤面
in_value : 盤面の評価値
戻り値 なし