第1章 プロローグ 1 |
1.1 「からくり」から人工知能へ 1 |
1.2 チェスとコンピュータ 1 |
1.3 ゲームとコンピュータ,そして将棋とコンピュータ 3 |
1.4 コンピュータ将棋の歴史 5 |
第2章 コンピュータ将棋ことはじめ 9 |
2.1 将棋の局面データ 9 |
2.2 着手データ 11 |
2.3 駒効きのデータ 12 |
第3章 将棋の探索 14 |
3.1 探索木と探索 14 |
3.2 将棋の探索 15 |
3.3 通常の探索 16 |
3.4 捕獲探索 20 |
第4章 評価関数 21 |
4.1 評価関数 21 |
4.2 簡単な評価関数 21 |
4.3 駒の価値の精密化 23 |
4.4 駒の価値以外の価値 23 |
4.5 評価関数を利用する場所について 25 |
4.6 インクリメンタル計算 25 |
4.7 評価関数の計算時間と正確さの設計 25 |
第5章 将棋の探索2 27 |
5.1 探索における並べ替え 27 |
5.2 前向き枝刈り 29 |
5.3 手の拡張 30 |
5.4 確率による拡張 31 |
5.5 並列探索 32 |
5.6 そのほかの探索の工夫 32 |
第6章 プロの棋譜から強いコンピュータ将棋が作れるか 34 |
6.1 棋譜データから強いコンピュータ将棋を作れるか 34 |
6.2 棋譜データから定跡を作る 35 |
第7章 トランスポジション・テーブル-同じ計算を再度しないこと 37 |
7.1 同じ計算をしない 37 |
7.2 将棋の同一局面 37 |
7.3 同一局面とは何か 38 |
7.4 どんな情報を保存するか 39 |
7.5 データ構造 40 |
7.6 インデックスの衝突の(不)処理 41 |
7.7 トランスポジション・テーブル利用のアルゴリズム 42 |
7.8 ハシシュ関数の構成法 43 |
7.9 詰探索におけるトランスポジション・テーブル 44 |
7.10 将棋の局面における順序関係 44 |
7.11 トランスポジション・テーブルの有効性 45 |
第8童 詰探索の理念 47 |
8.1 詰探索とは 47 |
8.2 詰探索の歴史 47 |
8.3 証明数 48 |
8.4 証明数探索 49 |
第9章 詰将棋ルーチンのアルゴリズム 51 |
9.1 詰探索の構成要素 51 |
9.2 df-pn探索 51 |
9.3 動作を追う 53 |
第10章 詰将棋の論理 56 |
10.1 詰将棋とコンピュータ 56 |
10.2 詰将棋とは何か 56 |
第11章 詰将棋の自動生成 61 |
11.1 詰将棋を自動生成する 61 |
11.2 詰将棋作成手法 61 |
11.3 逆算法 62 |
11.4 順算法(正算法) 62 |
11.5 ランダム法 63 |
11.6 列挙法 63 |
11.7 コンピュータの生成した詰将棋 64 |
第12章 見込みのあることと、見込みのないこと 67 |
12.1 見込みのあること 67 |
12.2 見込みのないこと 67 |
12.3 もう一つの見込みのないこと 68 |
第13章 学習とチューニング 70 |
13.1 学習とチューニング 70 |
13.2 何を学習するか 70 |
13.3 教師値を何にするか 71 |
13.4 注意すべき点 72 |
第14章 コンピュータ将棋選手権の結果とコンピュータ将棋選手権の予測 74 |
14.1 コンピュータ将棋選手権 74 |
14.2 レーティング 79 |
14.3 コンピュータ将棋間の強さ比較と予測の実際 81 |
14.4 シミュレーション 85 |
第15章コンピュータ将棋対人間の対戦と人間を打ち負かす日 89 |
15.1 プロとの角落対戦 89 |
15.2 竜王とBonanzaとの対戦 90 |
15.3 レーティング換算で精密な強さ比較を行う 92 |
15.4 集団間のレーティング差を求める 94 |
15.5 人間側の対策 97 |
第16章 コンピュータ将棋システムとその開発者 99 |
16.1 永世名人 99 |
16.2 IS将棋と棚瀬将棋 100 |
16.3 柿木将棋 102 |
16.4 YSS 103 |
16.5 KCC将棋 104 |
16.6 金沢将棋 105 |
16.7 TACOS 106 |
16.8 Bonanza 107 |
16.9 激指 108 |
第17章 エピローグ 110 |
17.1 コンピュータ将棋の情報源 110 |
17.2 おわりに,そしてコンピュータ将棋が勝った後の課題 111 |
索引 113 |