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

第十一回 (2009年12月 18日)

動的計画法

http://www.sw.it.aoyama.ac.jp/2009/DA/lecture11.html

Martin J. Dürst

AGU

© 2008-09 Martin J. Dürst 青山学院大学

目次

前回のまとめ

行列の乗算

三行列の連鎖乗算

乗算の順番の数

乗算の数 順番の数
0 1
1 1
2 2
3 5
4 14
5 42
6 132
7 429
8 1430
9 4862
 

乗算の最適な順番

最適化の順番と途中結果の記憶

計算の実例

n=5, r0=2, r1=3, r2=4, r3=2, r4=4, r5=5

mincost 0 1 2 3 4 5
b (分岐点)
0 (r0=2) 0 24
  1
1 (r1=3) 0 24
  2
2 (r2=4) 0 32
  3
3 (r3=2) 0 40
  4
4 (r4=4) 0
 
5  
 
(r5=5)

 

連鎖乗算の最適化の計算量

動的計画法では問題によって O(n2), O(nm) 等さまざまな計算量がある

動的計画法の概要

(dynamic programming)

動的計画法の基本要素

動的計画法の応用

Ruby による履歴管理

アルゴリズムの設計方針

宿題 (レポート)

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

動的計画法 (貪欲アルゴリズムやネットワークフローでも可) のアルゴリズムで解決できる問題を調べて、一つ選んで、その問題と一般の方法を詳しく説明しなさい。

注意点: