問題に応じたアルゴリズムの設計と解析手法について述べる.そのため,導入として,アルゴリズムの記述の仕方と記号等を概観し,アルゴリズムの効率の尺度として計算量を示す.一方,計算量を尺度とした効率に加え,アルゴリズムから得られる出力の良好度(精度や誤り率など)を尺度として,様々な問題に対するアルゴリズムを設計するとともに,その良好度の理論解析を行う.具体的には,数え上げなどで重要となる数時間アルゴリズム,効率的なアルゴリズムとして代表的な乱択アルゴリズム,部分情報から良好な出力を探索するオンライン・アルゴリズム,特殊な構造(独立性の一般概念)を有する問題群に対する貪欲アルゴリズムを示し,それらの理論解析を行う.
本講義を履修することにより,以下の能力を習得する.
1) 問題に応じたアルゴリズムの設計と解析手法.
2) 計算量(時間計算量や領域計算量など)を尺度としたアルゴリズムの評価方法
3) 出力の良好度(精度や誤り率など)を尺度としたアルゴリズムの評価方法
計算量,乱択アルゴリズム,オンライン・アルゴリズム,代数的手法,確率的手法
✔ 専門力 | 教養力 | コミュニケーション力 | 展開力(探究力又は設定力) | 展開力(実践力又は解決力) |
数回の講義ごとに,その授業内容の復習のために演習問題を宿題(締切はその次の講義)を出します.次の講義では,その内容の解説を行います.
授業計画 | 課題 | |
---|---|---|
第1回 | 導入(アルゴリズムの記述の仕方,記号等) | アルゴリズムの基本概念 |
第2回 | 計算量 | 基本プログラミング言語の定式化 |
第3回 | 指数時間アルゴリズム:準指数時間アルゴリズム | 準指数時間アルゴリズムの例 |
第4回 | 指数数時間アルゴリズム:平均時多項式時間アルゴリズム | 指数時間アルゴリズムの解析 |
第5回 | 指数数時間アルゴリズム:列挙アルゴリズム | 指数時間アルゴリズムの例 |
第6回 | 乱択アルゴリズム: 系列の同一性判定 | 多変数多項式の零点と次数の関係 |
第7回 | 乱択アルゴリズム: 行列の積の検証 | 非零ベクトルの直行性 |
第8回 | 乱択アルゴリズム: 最大カット | 期待値の線形性の応用 |
第9回 | 非乱択化: 最大カット | 2限定独立の応用 |
第10回 | オンライン・アルゴリズム: 仕事割り当て | 代表的なオンラインアルゴリズムの例 |
第11回 | オンライン・アルゴリズム: キャッシング | 代表的なオンラインアルゴリズムの例 |
第12回 | 貪欲アルゴリズム: 最小全域木 | 代表的な貪欲アルゴリズムの例 |
第13回 | 貪欲アルゴリズム: 一般化(マトロイド) | 貪欲アルゴリズムの特徴付け |
第14回 | 代数的手法: 集合族 | 代表的な代数的手法の例 |
第15回 | 確率的手法: 最大独立集合 | 代表的な確率的手法の例 |
講義資料はOCW-iで公開あるいは講義中に配布する.
1. Fedor V. Fomin and Dieter Kratsch, Exact Exponential Algorithms, Springer, 2010
2. Stasys Jukna, External Combinatorics, Springer, 2001.
3. Allan Borodin and Ran El-Yaniv, Online Computation and Competitive Analysis, Cambridge Univ. Press, 1998.
4. Noga Alon and Joel H. Spencer, The Probabilistic Method, 3rd eds, Wiley, 2008.
授業中に出題する宿題に対するレポート(計5回程度)ならびに期末レポートにより評価する.
履修条件は特に設けないが,アルゴリズムに関する基礎知識が必要である.
Osamu Watanabe watanabe[at]is.titech.ac.jp
Toshiya Itoh titoh[at]c.titech.ac.jp
メールで事前予約すること