Next: 3 プログラムの使い方
Up: 2.2 内部表現
Previous: 2.2.2 状態
各状態で
存在し得る手
のそれぞれに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 プログラム