理論計算機科学教科書

数学的基礎から最先端研究まで

理論計算機科学の包括的な教科書。数学的基礎から最先端の研究トピックまで、体系的に学習できるように構成。140以上の図表、豊富な練習問題、実装例、実世界での応用事例を含む。

コンピュータサイエンスの理論と数学的基礎

目次

第1章 数学的基礎

1.1 集合論

1.2 論理学

1.3 証明技法

1.4 関係と関数

1.5 グラフ理論の基礎

章末問題


第2章 計算理論の基礎

2.1 計算モデル

2.2 計算可能性

2.3 決定可能性

2.4 チューリング機械の変種

2.5 万能チューリング機械

2.6 計算可能性の基本定理

2.7 計算の階層

章末問題


第3章 形式言語とオートマトン理論

3.1 形式言語

3.2 有限オートマトン

3.3 正規言語

3.4 正規言語の限界

3.5 文脈自由言語

3.6 プッシュダウンオートマトン

3.7 文脈自由言語の性質

章末問題


第4章 計算可能性理論

4.1 決定不能問題

4.2 還元可能性

4.3 再帰的可算言語の階層

4.4 Riceの定理

4.5 計算可能関数

4.6 相対計算可能性

章末問題


第5章 計算複雑性理論

5.1 時間複雑性

5.2 非決定性と NP

5.3 P vs NP 問題

5.4 空間複雑性

5.5 多項式階層

5.6 確率的計算クラス

5.7 回路複雑性

5.8 対話型証明系

章末問題


第6章 アルゴリズムの数学的解析

6.1 漸近的解析

6.2 分割統治法

6.3 動的計画法

6.4 貪欲アルゴリズム

6.5 高度な解析技法

6.6 並列アルゴリズムの解析

章末問題


第7章 データ構造の理論

7.1 抽象データ型

7.2 基本的なデータ構造

7.3 平衡木

7.4 高度なデータ構造

7.5 キャッシュ効率的データ構造

7.6 確率的データ構造

章末問題


第8章 グラフ理論とネットワーク

8.1 グラフの基本理論

8.2 最短路問題

8.3 最小全域木

8.4 ネットワークフロー

8.5 マッチング理論

8.6 グラフの彩色

8.7 特殊なグラフクラス

8.8 ランダムグラフ

章末問題


第9章 論理学と形式的手法

9.1 命題論理

9.2 一階述語論理

9.3 時相論理

9.4 プログラム検証

9.5 形式的仕様記述

9.6 定理証明支援系

章末問題


第10章 情報理論

10.1 情報量とエントロピー

10.2 情報源符号化

10.3 通信路符号化

10.4 誤り訂正符号

10.5 連続情報理論

10.6 情報理論の応用

章末問題


第11章 暗号理論の数学的基礎

11.1 暗号理論の基礎概念

11.2 対称鍵暗号

11.3 公開鍵暗号

11.4 デジタル署名

11.5 ハッシュ関数

11.6 ゼロ知識証明

11.7 高度な暗号プリミティブ

章末問題


第12章 並行計算の理論

12.1 並行計算モデル

12.2 プロセス代数

12.3 Petri ネット

12.4 時相論理による並行システムの検証

12.5 分散アルゴリズム

12.6 並行データ構造

12.7 プロセス計算の高度な話題

12.8 実時間システム

章末問題


付録A 数学記法一覧

集合論記法

論理記号

漸近記法


付録B 重要定理一覧

  1. Cantor対角線論法: 実数は非可算
  2. Church-Turingの提唱: 計算可能性の定義
  3. 停止問題の決定不能性
  4. Cook-Levinの定理: SATのNP完全性
  5. マスター定理: 分割統治の解析
  6. 最大フロー最小カット定理
  7. Gődelの不完全性定理
  8. Shannon符号化定理
  9. 4色定理
  10. FLP不可能性定理: 非同期分散合意

参考文献

基礎理論

アルゴリズム

論理学と形式手法

情報理論と暗号

並行計算