各状態で指し得る手(空いているマス目の数だけある) のそれぞれにQ値が存在する。 プログラムはこのQ値全体のテーブルを保持しており、 プログラム終了時にファイルに書き込んで、 次回起動時に利用することもできる。
Q値テーブルの構成を、以下でボトムアップの順に説明する。 なお今回は状態番号を定数で mod を取り、その値をQ値探索の際の Hash 値に用いた。
QL
StateFun = q(State, QL)
State
とそれに対応する
Q値リストを要素とするファンクタ。
HashList = [StateFun1, StateFun2, ...]
StateFun
を要素に持つリスト。
要素である StateFun
の状態値には、
上述の mod 値が同じという共通点がある。
Q = {HashList1, HashList2, ...}