アルゴリズム特論

年度 2007
科目名 アルゴリズム特論
教員名 松原 康夫
授業概要 コンピュータサイエンスで言う、手続きとアルゴリズムの違いや、計算の手間の問題について解説する。具体的なアルゴリズムについては、単に理論的に解説するのではなく、因数分解、構文解析、パズルを自動的に解くことや探索を高速化する発見法、などについてJavaで実際に動くプログラムを構築することを目標とする。そのため、必要に応じて、オブジェクト指向プログラミングの考えかたをも解説する。
授業計画 アルゴリズムの概念
Turingマシン
・停止問題
計算の複雑さ
・多項式時間と指数関数時間
・NP問題
オブジェクト指向
・Javaの処理系
・抽象データ型
データ構造とアルゴリズム
・配列とソート
・木構造
・集合
・有向グラフ
・無向グラフ
・ハッシュテーブル
探索アルゴリズム
・再帰的手続き
・バックトラック法
・横型探索法
評価方法 評価方法:基本的には学期末のテストによるが、日頃の課題への取り組み状況をも考慮する。
教科書
参考書
メッセージ アルゴリズムはデータ構造と密接な関係がある。具体的なデータ構造を与えて、実際に動くプログラムを書かなければ役に立たない。この授業ではJavaで実際にプログラムを書いてみるので、オブジェクト指向の考え方も一緒に学んでみよう。