3.2 パターンによる評価

着手可能な手数を調べる時に、縦横斜めの各列についてそれぞれ調べて和をとる方法があるということを、前回説明しました。
その考えをさらに進めて、1列のパターンすべてにあらかじめ評価値を与えておく方法があります。
また、辺と隅のパターンにも評価値を与えておきます。
そして局面の評価値は、各パターンの評価値の和となります。


パターンによる評価のイメージ
図1. パターンによる評価のイメージ

例えばLogistelloでは、図2に示す11種類のパターンに対する評価値を決めています。
各パターンに対する評価値はゲームの段階によって変化させることもあり、Logistelloでは1試合60手を13の段階に分けています。


Logistelloで使用する評価値のパターン
図2. Logistelloで使用する評価値のパターン

この方法では、高速に局面の評価値を求めることができるという利点があります。
例えば、上から2列目の8個のパターンに対応するインデックスを求めるときは、1章の変数banを使って

((((((ban[A2]*3+ban[B2])*3+ban[C2])*3+ban[D2])*3+ban[E2])*3+ban[F2])*3+ban[G2])*3+ban[H2];

という式から計算することができます。
しかし、パターン数が多いので、各パターンの評価値を記憶するために多くのメモリとディスク領域を消費するという欠点があります。
もっとも、最近のパソコンならそれを十分格納できるスペックを持っています。

パターン数が多いために、その評価値づけも大変な作業です。
一つ一つのパターンに対し、手作業で入力するわけにはいきません。
次節では、この評価値付けの方法について解説します。


トップに戻る
3.1 評価の基本
3.3 重みの最適化