サポートページトップへ
リバーシプログラムの作り方
序章
はじめに
リバーシのルール
ソースコードの記述について
第1章 盤面の処理
1.1 定数と関数の定義
1.2 盤面の生成、初期化
1.3 石を返す処理
1.4 返せる石数を調べる処理
1.5 盤面をコピー、反転させる処理
1.6 その他の盤面処理
1.7 盤面の操作と表示
第2章 ゲーム木と探索
2.1 コンピュータ思考の関数定義
2.2 各関数の実装
2.3 ゲーム木
2.4 MinMax法とNegaMax法
2.5 αβ法
第3章 盤面の評価
3.1 評価関数の定義
3.2 パターンによる局面評価
3.3 評価クラスの構造
3.4 評価クラスの生成とファイルの読み書き
3.5 評価関数の実装
3.6 評価パラメータの更新
3.7 中盤の探索
3.8 自己対局による学習
第4章 性能改善
4.1 石数取得の高速化
4.2 着手の高速化
4.3 候補手リストの導入
4.4 終盤探索のリーフ展開
4.5 候補手の並び替え
4.6 評価パラメータ更新の改善
第5章 着手毎のパターン更新
5.1 パターン更新も含めた着手
5.2 パターンの初期化
5.3 着手時のパターン更新
5.4 評価と探索の修正
第6章 定石
6.1 定石関連関数の定義
6.2 定石クラスの構造と生成
6.3 定石データの読み書き
6.4 局面の比較
6.5 局面情報の取得と登録
6.6 定石の探索
6.7 定石の登録
第7章 前向き枝刈り
7.1 単純な枝刈り
7.2 Multi Prob Cut (MPC)
7.3 MPCを使用した探索
7.4 MPCパラメータの計算
第8章 置換表
8.1 置換表の関数定義
8.2 ハッシュ法
8.3 ハッシュ関数の実装
8.4 置換表の構造と生成
8.5 局面の登録と取得
8.6 置換表を使用した探索
8.7 その他の処理と効果の検証
課題と改善点
参考文献
おわりに
©2006-2008 Daiki Sanno, All Rights Reserved
mailto:support@es-cube.net