next up previous
Next: 3 プログラムの使い方 Up: 2.2 内部表現 Previous: 2.2.2 状態

2.2.3 Q値テーブル

 

各状態で 存在し得る手gif のそれぞれにQ値が存在する。 プログラムはこのQ値全体のテーブルを保持しており、 プログラム終了時にファイルに書き込んで、 次回起動時に利用することもできる。

Q値テーブルの構成を、以下でボトムアップの順に説明する。 なお今回は状態番号を定数で mod を取り、その値をQ値探索の際の Hash 値に用いた。

QL
Q値のリスト、要素は可能な手の数(空きマスの数)だけ含まれる。
StateFun = q(State, QL)
状態番号 State とそれに対応する Q値リストを要素とするファンクタ。
HashList = [StateFun1, StateFun2, ...]
StateFun を要素に持つリスト。要素である StateFun の状態値には、 上述の mod 値が同じという共通点がある。
Q = {HashList1, HashList2, ...}
Q値テーブル全体。HashList のベクタ内の位置は、上述の mod 値 (Hash 値)に対応している.



Q-learning により学習を行う Tic-Tac-Toe プログラム