データ構造とアルゴリズム

第十二回 (2011年 1月7日)

アルゴリズムの設計方針

http://www.sw.it.aoyama.ac.jp/2010/DA/lecture12.html

Martin J. Dürst

AGU

© 2009-11 Martin J. Dürst 青山学院大学

今日の予定

これからの予定

期末試験の内容

試験範囲:
授業・プリント・プログラムの全ての内容
プログラムそのものは書く必要がないが、理解する必要はある
問題の種類:
情報数学 I や計算機実習 I と類似
過去の問題 (2008年2009年):
閲覧には Opera を推奨
図と解答例の一部は欠落
解答例は「表示」→「スタイル」→「solutions」で表示可能
注意点:
問題をよく読む (計算、証明、説明などの区別)
概念の定義を自分の言葉でおさえる
綺麗な字で書く

宿題 (レポート)

提出: 1月6日 (木) 19:00、O棟 529号室の前の箱; 3ページ程度; A4 両面左上ホチキス止め; 名前と学籍番号は一ページ目上部に記載 (表紙無し)

動的計画法のアルゴリズムで解決できる問題を調べ、その問題においての動的計画法のアルゴリズムを説明しなさい。

(詳細略)

アルゴリズムの設計方針

 

単純なアルゴリズム

ナップサック問題一般的な形

ナップサック問題の変形

  1. 品を一つ詰めればよい
    解決: 品を重さの順に並び変え、一番小さい品が入るかどうかを確認
    設計方針: 単純なアルゴリズム
  2. 品をできるだけ数多く積む
    解決: 軽い品から容量を超える寸前まで積む
    設計方針: 貪欲アルゴリズム
  3. 容量をできるだけ利用する (整数編)
    解決: 容量 c'c と品 s1,..., sk (kn) の部分問題を検討
    設計方針: 動的計画法
  4. 価値をできるだけ多くする
    設計方針: 総当たり方

これからの目的

問題例 1: 3-SAT

 

問題例 2: 独立集合

(Independent Set)

問題例 3: 巡回セールスマン

(Traveling Salesman)

問題例の共通点

多項式時間と指数的時間

多項式時間の特徴

授業改善のための学生アンケート

お願い: できるだけ自由記述を使って、具体的に書いてください