直感(ヒューリスティック)を活用し、
第1章 人工知能とヒューリスティック探索
1.1 なぜ人工知能に探索が必要なのか
1.2 ヒューリスティック探索とは
1.3 本書の読み進め方
1.4 練習問題の解答
1.5 関連書籍
1.6 Python実装について
第2章 状態空間問題
2.1 状態空間問題とは
2.1.1 状態空間グラフ
2.1.2 状態空間問題の解とそのコスト
2.2 状態空間問題の例
2.2.1 グリッド経路探索問題
2.2.2 スライディングパズル
2.2.3 多重整列問題(MSA)
2.2.4 倉庫番
2.2.5 巡回セールスマン問題(TSP)
2.3 非明示的状態空間グラフによる状態空間問題の定式化
2.4 状態空間問題の難しさ
2.5 Python実装
2.6 まとめ
練習問題
Appendix 状態空間問題以外の問題について
第3章 情報なし探索
3.1 木探索アルゴリズム
3.2 グラフ探索アルゴリズム
3.3 幅優先探索(BrFS)
3.4 深さ優先探索(DFS)
3.4.1 深さ優先探索
3.4.2 再帰による深さ優先探索
3.5 ダイクストラ法
3.6 情報なし探索の比較
3.7 Python実装
3.8 まとめ
練習問題
Appendix 情報なし探索では不十分なのか
第4章 ヒューリスティック探索
4.1 ヒューリスティックとは
4.2 ヒューリスティック関数
4.3 A*探索
4.4 ヒューリスティック関数に望ましい性質
4.5 ヒューリスティック関数の性質とA*探索
■ h_1(u) ≦ h_2(u)では不十分なのか
4.6 ヒューリスティック関数の例
4.6.1 グリッド経路探索問題
4.6.2 スライディングパズル
4.6.3 巡回セールスマン問題(TSP)
4.7 非最適解を発見するためのヒューリスティック探索
4.7.1 重み付きA*探索(wA*)
4.7.2 貪欲最良優先探索(GBFS)
4.7.3 山登り法(HC)
4.7.4 強制山登り法(EHC)
4.8 ヒューリスティック探索が思ったより遅い場合
4.9 Python実装
4.10 まとめ
練習問題
Appendix 関連するアルゴリズム
第5章 グラフ探索のためのデータ構造
5.1 オープンリスト
5.1.1 データ構造の選択
5.1.2 タイブレーキング
5.2 クローズドリスト
5.2.1 ハッシュテーブル
5.2.2 ハッシュの衝突の解消方法
5.2.3 ハッシュ関数
5.2.4 遅延重複検出
5.3 Python実装
5.4 まとめ
練習問題
Appendix 関連文献
第6章 時間・空間制限下のヒューリスティック探索
6.1 最適解を見つけたい場合のアルゴリズム
6.1.1 反復深化深さ優先探索(DFID)と反復深化A*(IDA*)
6.1.2 逆方向探索と両方向探索
6.1.3 シンボリック探索
6.2 最適解でなくても良い場合のアルゴリズム
6.2.1 ビームサーチ
6.2.2 モンテカルロ法
6.2.3 分枝限定法(BnB)
6.2.4 新奇性探索
6.3 追加のハードウェアリソースを使ったアルゴリズム
6.3.1 並列探索
6.3.2 外部記憶探索
6.4 Python実装
練習問題
第7章 ゲーム木探索
7.1 〇×ゲーム
7.2 二人ゲーム問題
7.3 ゲーム木
7.4 α-β分枝法
7.5 モンテカルロ木探索
7.6 ゲームの解決
■ 余談:ゲームの超弱解決
練習問題
Appendix 本章で扱った以外の問題
第8章 自動行動計画問題
8.1 古典的プランニング問題の定義
8.2 STRIPSモデルにおけるヒューリスティック関数の自動生成
8.2.1 ゴールカウントヒューリスティック
8.2.2 適用条件緩和
8.2.3 削除緩和
8.2.4 コスト分割
8.2.5 最長経路
8.2.6 抽象化
8.2.7 ランドマークによるヒューリスティック
8.2.8 機械学習によるヒューリスティック関数の学習
8.3 自動行動計画問題の記述言語:PDDL
8.4 自動行動計画問題の例
8.5 Python実装
練習問題
Appendix 自動行動計画問題の関連研究
第9章 大規模言語モデル(LLM)によるテキスト生成
9.1 言語モデル(LM)
9.2 LLMの発展の歴史
9.3 テキスト生成問題
9.3.1 テキスト生成問題とは
9.3.2 状態空間問題への帰着
9.4 デコーディングアルゴリズム
9.4.1 目的関数の設計
9.4.2 ベイズリスク最小化デコーディング
9.4.3 探索アルゴリズム
練習問題
Appendix LLMの今後の発展