ソフトウェア基礎論
Foundations of Software Science
講義内容
ソフトウェアシステムを設計する際に大切なことは, まず対象を簡潔にモデ
ル化し, 次に, 対象の性質を明らかにするための方法論をもつことである。
このような観点に立ち,本講義前半では,データベース理論を取り上げ,重要
な概念と方法論を紹介する。後半では,計算複雑さ理論の基礎について開設す
る。
- データベース理論
データベースにおける質問言語に関する理論的な事柄を説明する。
- 関係代数, 関係論理
- 一階述語質問
- 再帰質問
- 否定を含む再帰質問
- 計算複雑さ
「計算機出問題を解くときの,問題の難しさをはかる尺度はあるのだろうか」
といった疑問に答えていく。
- 計算複雑さの定義と諸性質
- NP完全性(Cook の定理,還元による証明法)
- 他のクラスの完全性(PSPACE完全性など)
- 他の話題(多項式時間階層,確率アルゴリズムなど)
教科書
(2)の教科書
J.ホップクロフト・J.ウルマン著,野崎・高橋・町田・山崎訳:オートマトン
言語理論 計算論II,サイエンス社,1986.
参考書
授業中に紹介する
前提とする知識(必ずしも先修条件ではない)
- アルゴリズムとデータ構造 ( アルゴリズム概論 )
- 形式言語理論, 計算可能性 ( 計算理論 I )
- 一階述語論理 ( 人工知能基礎論 )