第16章 動的計画法 アルゴリズムイントロダクション.

Slides:



Advertisements
Similar presentations
組合せ最適化輪講 2.3 連結性 川原 純. 2.3 連結性 内容 – グラフ上の節点をすべてたどるアルゴリズム 計算機上でのグラフの表現 – 強連結成分を求めるアルゴリズム トポロジカル順序を求める方法も – k- 連結、 k- 辺連結について – 2- 連結グラフの耳分解について.
Advertisements

HBSP モデル上での 行列積を求めるアルゴリ ム 情報論理工学 吉岡健太.
A Simple Constant Time Enumeration Algorithm for Free Trees 中野 眞一 宇野 毅明 群馬大学 情報学研究所 2003 年 9 月 19 日 アルゴリズム研究会.
【事例演習5】  字句解析     解 説  “ハッシュを用いた字句解析の方法”.
区間グラフにおける区間表現からMPQ-treeを効率よく構成するアルゴリズム
4.3 マージソート.
輪読・計算幾何学 第3章 多角形の三角形分割 徳山研究室 M1 鈴木 晶子.
2009/12/4 グラフ (2) 第10講: 平成21年12月4日 (金) 4限 E252教室 コンピュータアルゴリズム.
ネットワーク理論講義補助資料 Text. 組合せ最適化とアルゴリズム 4.5 節 主・双対法 pp
データ構造と アルゴリズム 第十二回 知能情報学部 知能情報学科 新田直也.
豊中高校土曜講座「数学セミナー2003」 プラトン多面体の数学 なぜ正多面体は5種類しかないのか 大阪府立豊中高等学校 深川 久.
ラベル付き区間グラフを列挙するBDDとその応用
近似アルゴリズム 第10章 終了時刻最小化スケジューリング
データ構造とアルゴリズム論 第6章 探索のアルゴリズム
曲面上のグラフの彩色 ~種数の増加,面の制限及び局所平面性~
On the Enumeration of Colored Trees
An Algorithm for Enumerating Maximal Matchings of a Graph
分子生物情報学 動的計画法に基づく配列比較法 (ペアワイズアライメント法)
Approximation of k-Set Cover by Semi-Local Optimization
Natural Semantics 実行過程の、最初と最後の状態(state)の関係を考える。
Semantics with Applications
宇野 毅明 国立情報学研究所 2002年3月 東北大大学院 情報科学研究科ワークショップ
第7章 データベース管理システム 7.1 データベース管理システムの概要 7.2 データベースの格納方式 7.3 問合せ処理.
データ構造とアルゴリズム 第6回の2 木 ~ データ構造(3)~.
最短路問題のための LMS(Levelwise Mesh Sparsification)
電気回路Ⅱ 演習 特別編(数学) 三角関数 オイラーの公式 微分積分 微分方程式 付録 三角関数関連の公式
5.5 The Linear Arboricity of Graphs (グラフの線形樹化数)
本時のねらい 「円周角と中心角の意味を理解し、二つの角の関係について、操作・実験を通して予測したことを確認し、定理としてまとめる。」
二分探索木によるサーチ.
発表日:平成15年4月25日 担当者:時田 陽一 担当箇所:第3章 誤差評価に基づく学習 3.1 Widrow-Hoffの学習規則
7-3.高度な木 (平衡木) AVL木 平衡2分木。回転操作に基づくバランス回復機構により平衡を保つ。 B木
生命情報学入門 配列のつなぎ合わせと再編成
第4章 組合せ論理回路 (4) Quine McCluskeyの方法.
三角形や四角形ではない図形の 角の大きさの和を求めよう。.
第25章 単一始点最短路 3節 Bellman-Fordのアルゴリズム
本時のねらい 「直角三角形の合同条件を導き、それを理解し、証明ができるようにする。」
古代の難問と曲線 (3時間目) 筑波大学大学院 教育研究科 1年                 石井寿一.
第9回 優先度つき待ち行列,ヒープ,二分探索木
25. Randomized Algorithms
分子生物情報学(2) 配列のマルチプルアライメント法
First Course in Combinatorial Optimization
正多角形の作図 プログラミングで多角形を描く方法を考えよう 1時間目.
連続領域におけるファジィ制約充足問題の 反復改善アルゴリズムによる解法 Solving by heuristic repair Algorithm of the Fuzzy Constraint Satisfaction Problems with Continuous Domains 北海道大学.
9.通信路符号化手法1 (誤り検出と誤り訂正の原理)
学 正多角形のどんな性質を使えば,プログラミングで正多角形を描くことができるだろうか。
5 Recursions 朴大地.
最短ネットワーク問題:シュタイナー問題 3-G 023145 長谷川 和弘.
2016年度 有限幾何学 中間試験 問1 次のグラフを描け.(描けない場合は理由を述べよ) 各20点
生物情報ソフトウェア特論 (2)たたみ込みとハッシュに 基づくマッチング
需要点,供給点,辺容量を持つ木の分割アルゴリズム
ナップサック問題 クマさん人形をめぐる熱いドラマの結末.
わかりやすいパターン認識 第7章:部分空間法  7.1 部分空間法の基本  7.2 CLAFIC法                  6月13日(金)                  大城 亜里沙.
第9回 優先度つき待ち行列,ヒープ,二分探索木
Max Cut and the Smallest Eigenvalue 論文紹介
計算の理論 I ー正則表現とFAの等価性ー 月曜3校時 大月 美佳.
解析学 ー第9〜10回ー 2019/5/12.
アルゴリズムとデータ構造 第2章 リスト構造 5月24日分
11.動的計画法と擬多項式時間アルゴリズム.
利用者の制限領域を 最小化する施設配置問題 :中学校配置の評価
4.プッシュダウンオートマトンと 文脈自由文法の等価性
指令1 三角形の謎にせまれ!.
コストのついたグラフの探索 分枝限定法 A*アルゴリズム.
離散数学 11. その他のアルゴリズム 五島.
問2 次の問に答えよ. (ただし,握手補題,オイラーの定理,Oreの定理 は授業で紹介したものとする) (1) 握手補題を書け.
生物情報ソフトウェア特論 (4)配列解析II
情報生命科学特別講義III (3)たたみ込みとハッシュに 基づくマッチング
MPIを用いた 並列処理 情報論理工学研究室 06‐1‐037‐0246 杉所 拓也.
線形符号(10章).
各種荷重を受ける 中空押出形成材の構造最適化
グラフの帯域幅連続多重彩色 を求めるアルゴリズム (Bandwidth Consective Multicolorings of Graphs) 西関研究室 西川和秀.
Presentation transcript:

第16章 動的計画法 アルゴリズムイントロダクション

動的計画法(DP) とは Dynamic Programming 最適化問題に使用される手法 Programing : 表を引く手法 適用可能な問題には構造的な制限がある. 適用可能であれば効率的に最適解を算出可

動的計画法(DP) の構造 基本的に以下の構造 …どういうこと? 1. 最適解の構造を特長づける 2. 最適解の値を再帰的に定義する. 3. ボトムアップ形式で最適解の値を計算 4. 求められた情報から一つの最適解を構成 …どういうこと? 最適解の中に部分的に最適な解があればOK!

連鎖行列積 DPで効率よく解く事の出来る問題の一例 n個の行列の積を考える どの順番で計算すると計算回数が一番少なくなる?

連鎖行列積 総当たりで計算すると… 通り数は適切なカッコの付け方 総通り数は これは碁盤目状の道を対角線に向かって進むときに対角線を超えない通り方と等しい (対角線を超える=カッコの対応が正しく付かない) 総通り数は Stirling‘s formula       から導出. 指数的に増えてくるのであまり頭良くない.

連鎖行列積 最適解を観察してみる が最適解だとする. 二つの積から順々に構成することが可能. 最適解の構造を特長付けできた.           が最適解だとする. この解は部分問題の最適解        を持つ. 最適解が他のパターンだとしても, などの部分的な最適解を部分的に含む. 二つの積から順々に構成することが可能. 最適解の構造を特長付けできた.

連鎖行列積 最適解の値を再帰的に定義    : 行列積     にかかるコスト  

連鎖行列積 ボトムアップに最適解を計算 部分問題に対する最適解を計算 再帰的に計算が可能 再帰するたびに計算するのではなく  その値を表に覚えておく 129 63 75 95 21 35 57 6 20 8

連鎖行列積 最適解を構成 最適解の構造を構成したい. 積がどこで分かれているのかを示す値を別の表で記憶する 129 63 75 95 1 1 129 63 75 95 1 1 3 3 21 35 57 2 3 3 6 20 3 3 8 4 最適解の構造を構成したい. 積がどこで分かれているのかを示す値を別の表で記憶する

連鎖行列積 最適解を構成 1 1 3 3 2 3 3 3 3 4

動的計画法の基本 なぜ連鎖行列積で動的計画法が使えたか? 部分構造の最適性 部分問題の重複性 問題の最適解がその内部に部分問題に対する最適解を含んでいた. →問題を小さく考える事ができた 部分問題の重複性 再帰アルゴリズムが同じ部分問題を何度も訪れていた. →記憶することでコストを下げる事ができた →もし記憶せずに毎回計算していたら…?

動的計画法の基本 もし毎回計算していたら…

動的計画法の基本 もし毎回計算していたら、指数コストかかる. 上からn段目にかかる計算回数を   とすると      を仮定して,帰納的に証明.

動的計画法の基本 動的計画法が効率的に動く背景 部分構造の最適性 部分問題の重複性 →問題を小さく考える事ができた →記憶することで時間コストを下げる

最長共通部分系列(LCS) 二つの系列X,Yにおける,最も長い,共通部分系列Zを求める問題     は共通部分系列(Common Subsequence) これは最長? 最長なものの例として      など.

最長共通部分系列(LCS) 動的計画法が使えるか? 以上二つを満たせば動的計画法で解ける. 部分構造の最適性 部分問題の再起解 最適解がその部分問題の最適解を必ず含む? 部分問題の最適解は再帰的に使用される?

最長共通部分系列(LCS) 定理16.1(LCSの部分構造の最適性) let : 1. ならば であり,かつ, は と とのLCSである. 1.    ならば     であり,かつ,          は  と  とのLCSである. 2.    のとき,   ならば  は   と とのLCSである. 3.    のとき,   ならば         は  と  とのLCSである.

最長共通部分系列(LCS) 定理16.1(LCSの部分構造の最適性) Proof:(1)背理法. のとき でないなら,        のとき      でないなら, しかし,   なので は最長ではない…矛盾  はLCS?  も背理法で.  LCSじゃないと仮定→LCSであるWを仮定→矛盾.

最長共通部分系列(LCS) 定理16.1(LCSの部分構造の最適性) Proof:(2)背理法. , のとき, が のLCS? LCSじゃないと仮定→LCSであるWを仮定→矛盾. (3)も対称的に同じ.

最長共通部分系列(LCS) 動的計画法が使えるか? 解を再帰的に表現したい. 系列 と のLCSの長さを として, 部分構造の最適性 ○ 部分構造の最適性 ○ 部分問題の再起解 解を再帰的に表現したい. 先ほどの最適性を使って表現する. 系列 と のLCSの長さを  として,

最長共通部分系列(LCS) 動的計画法を使うと 異なる部分問題は 通りしかない 最適解の構成は? 最適値をボトムアップに計算する. 異なる部分問題は   通りしかない 最適値をボトムアップに計算する. 最適解の構成は? 右下から見る 一致すれば左上に 一致しない    なら左に    なら上に この手法で    時間. 1 1 1 1 1 1 1 2 2 1 1 2 2 2 2 1 1 1 2 3 3 1 2 2 2 3 3 1 2 2 3 3 4 1 2 2 3 4 4

最適三角形分割問題 ある凸な多角形を考える この多角形の頂点と頂点とを結び,複数の三角形に分割することを考える. その分割した三角形で定義できる重みを考える 例:(総辺長,内接円の半径,…) 三角形全てに対する重みの和を最小にする三角形分割を求める

最適三角形分割問題 どう考えるか? 解析木という考え方 解を木構造で表現 一つの解が一意に一つの 解析木と対応付け. 辺 を根, 辺  を根, その他の既存の辺を葉, 引いた辺を節として, 三角形が一つの親子になる 木を構成する 一つの解が一意に一つの  解析木と対応付け.

最適三角形分割問題 解析木は 部分構造の最適性 実は… 確認すると… がある!→動的計画法. 連鎖行列積も解析木を持つ 連鎖行列積は最適三角形 分割問題の特殊例. 確認すると…

最適三角形分割問題 連鎖行列積そのものは(当然ながら)使えない. 同じ考え方で再帰を作る 多角形     の 最適三角形分割の重みを   とすると,

動的計画法まとめ 動的計画法は再帰的に最適性がある問題に使える. 部分構造の最適性 部分問題の重複性 解析木を作れるなら動的計画法が使える. →問題を小さく考える事ができた 部分問題の重複性 →記憶することで時間コストを下げる 解析木を作れるなら動的計画法が使える. しかしながら,ある一定の記憶領域と時間を必要とする(線形時間や対数領域は無理)