情報知能学科「アルゴリズムとデータ構造」

Slides:



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

2015 年度 有限幾何学 期末試験 次の各問に答えよ.( (1), (2), (3), (4), (5), (7), (8), (10) は答えだけでよい) (1) 有向閉路が存在しない位数 4 のトーナメントを描け. (2) 内点の個数が 10 個の正則 2 分木の葉の個数を求めよ. (3) グラフ.
1 線形代数学. 2 履修にあたって 電子情報システム学科 必修 2005 年度1セメスタ開講 担当 草苅良至 (電子情報システム学科) 教官室: G I 511 内線: 2095 質問等は上記のいずれかに行なうこと。 注意計算用のノートを準備すること。
0章 数学基礎.
到着時刻と燃料消費量を同時に最適化する船速・航路計画
区間グラフにおける区間表現からMPQ-treeを効率よく構成するアルゴリズム
2009/12/4 グラフ (2) 第10講: 平成21年12月4日 (金) 4限 E252教室 コンピュータアルゴリズム.
・力のモーメント ・角運動量 ・力のモーメントと角運動量の関係
Bipartite Permutation Graphの ランダム生成と列挙
データ構造と アルゴリズム 第十二回 知能情報学部 知能情報学科 新田直也.
動的計画法 表の作成 制約の追加 練習問題.
動的計画法 表の作成 制約の追加 練習問題.
C言語 配列 2016年 吉田研究室.
近似アルゴリズム 第10章 終了時刻最小化スケジューリング
第11回 整列 ~ バケットソート,基数ソート,ヒープソート~
演習00-0 “Hello,world![改行]”を表示するプログラムを作成せよ. 1 1.
★どんな2次方程式でも解けるようになろう! ★公式を覚えよう! ★これは覚えんばいかんぞ!
An Algorithm for Enumerating Maximal Matchings of a Graph
Extremal Combinatrics Chapter 4
情報知能学科「アルゴリズムとデータ構造」
流れ(3時間分) 1 ちらばりは必要か? 2 分散・標準偏差の意味 3 計算演習(例題と問題) 4 実験1(きれいな山型の性質を知ろう)
上坂吉則 尾関和彦 文一総合出版 宮崎大輔2003年6月28日(土)
 Combinations(2)        古川 勇輔.
確率・統計輪講資料 6-5 適合度と独立性の検定 6-6 最小2乗法と相関係数の推定・検定 M1 西澤.
データ構造とアルゴリズム論 第2章 配列(構造)を使った処理
最短路問題のための LMS(Levelwise Mesh Sparsification)
10.通信路符号化手法2 (誤り検出と誤り訂正符号)
5.5 The Linear Arboricity of Graphs (グラフの線形樹化数)
計算量理論輪講 岩間研究室 照山順一.
最短経路.
情報工学総合演習 D-I 近似アルゴリズム 埼玉大学 理工学研究科 山田 敏規、 橋口 博樹、 堀山 貴史
線形代数学 谷津 哲平 第1章 ベクトル 1.1 ベクトル空間 1.2 ベクトルの一次独立性 1.3 部分ベクトル空間
k 個のミスマッチを許した点集合マッチング・アルゴリズム
第25章 単一始点最短路 3節 Bellman-Fordのアルゴリズム
決定木とランダムフォレスト 和田 俊和.
ネットワーク理論 Text. Part 3 pp 最短路問題 pp 最大流問題 pp.85-94
離散数学 08. グラフの探索 五島.
Curriki原典
2011/06/21-24 情報知能学科「アルゴリズムとデータ構造」 担当:白井英俊
アルゴリズムとデータ構造 第3章 ヒープ 6月10日分
25. Randomized Algorithms
First Course in Combinatorial Optimization
A Simple Algorithm for Generating Unordered Rooted Trees
変換されても変換されない頑固ベクトル どうしたら頑固になれるか 頑固なベクトルは何に使える?
Q q 情報セキュリティ 第8回:2005年6月3日(金) q q.
A Dynamic Edit Distance Table
パターン認識特論 担当:和田 俊和 部屋 A513 主成分分析
9.通信路符号化手法1 (誤り検出と誤り訂正の原理)
アルゴリズムとデータ構造 2011年7月8日課題の復習
ナップサック問題 クマさん人形をめぐる熱いドラマの結末.
アルゴリズムとデータ構造 第3章 ヒープ 5月31日分
情報知能学科「アルゴリズムとデータ構造」
問題作成、解説担当:中島 副担当:坪坂、松本
第16章 動的計画法 アルゴリズムイントロダクション.
A02 計算理論的設計による知識抽出モデルに関する研究
地理情報システム論 第4回 コンピュータシステムおける データ表現(2)
2009/11/27 グラフ (1) 第9講: 平成21年11月27日 (金) 4限 E252教室 コンピュータアルゴリズム.
ヒープソート.
Chapter5 Systems of Distinct Representatives
コストのついたグラフの探索 分枝限定法 A*アルゴリズム.
計算の理論 I 反復補題 火曜3校時 大月 美佳 平成16年7月13日 佐賀大学知能情報システム学科.
生物情報ソフトウェア特論 (4)配列解析II
参考:大きい要素の処理.
3 一次関数 1章 一次関数とグラフ §4 方程式とグラフ         (3時間).
線形符号(10章).
プログラミング入門2 第5回 配列 変数宣言、初期化について
グラフの帯域幅連続多重彩色 を求めるアルゴリズム (Bandwidth Consective Multicolorings of Graphs) 西関研究室 西川和秀.
アルゴリズム ~すべてのプログラムの基礎~.
プログラミング論 バイナリーサーチ 1.
ペンシルパズル「一本線」のヒント数の扱いに関する解析
Presentation transcript:

情報知能学科「アルゴリズムとデータ構造」 8章 動的計画法 杉原厚吉.(2001).「データ構造とアルゴリズム」. 東京:共立出版. 2010/07/09-13 情報知能学科「アルゴリズムとデータ構造」 担当:白井英俊

本章の目的 多くの可能な組み合わせの中から、最適な組み合わせを見つけるという問題においては、「ありえない組み合わせ」を早い段階で除外するのが常套手段 最適性の原理が成り立つ問題において、上記の方法を実現する「動的計画法」を学ぶ

最適性の原理(principle of optimality) 最適性の原理:最適解は、その一部を取り出しても、それ自体(対応する小問題の)最適解である、という性質 例:グラフG=(V,E)で、各辺e∊Eが、非負の長さをもつ場合 vsからvtまでの黒線が最短路とすれば、 v1からv2まではp2が最短路 vt v1 p2 v2 p3 p1 vs p’2

動的計画法(dynamic programming) 最適性の原理が成り立つ場合において、小問題の最適解を積み重ねることで大問題の最適解を解く技法 代表例   グラフG=(V, E)のすべての頂点対の間の最短路の長さを計算するアルゴリズム All-Shortest-Paths

All-Shortest-Paths 頂点の集合 V={v1, v2, …, vn} グラフG=(V, E)のすべての頂点対の間の最短路の長さを計算するアルゴリズム 頂点の集合 V={v1, v2, …, vn} l(vi,vj): 辺eの両端点がvi、vjの時の辺eの長さ  dk(i,j):k番目以下の頂点のみを途中で経由してもよいという条件のもとでの、viからvjへの最短路の長さ 計算量はO(n3) 初期値の設定 for 1 ≦i<j≦n do d0(i,j) ← l(vi,vj); for k ← 1 until n do for 1 ≦i<j≦n do dk(i,j) ← min{dk-1(i,j) , dk-1(i,k)+dk-1(k,j)}; 元の値とk番目頂点経由の値と比較

All-Shortest-Pathsの例 v2 for 1 ≦i<j≦n do d0(i,j) ← l(vi,vj); for k ← 1 until n do for 1 ≦i<j≦n do dk(i,j) ←       min{dk-1(i,j) , dk-1(i,k)+dk-1(k,j)}; 2 2 8 8 5 5 v1 v3 1 1 1 1 4 4 すべての(i, j) の組み合わせ v4 (1,2) (1,3) (1,4) (2,3) (2,4) (3,4) k=0 2 5 1 8 4 1 7 7 3 3 1 k=1 2 5 1 7 3 1 k=2 5 1 2 1 1 7 3 k=3 2 5 2 k=4 4

All-Shortest-Pathsの計算量 頂点対はO(n2)あるので、ここの計算量はトータルでO(n2) for 1 ≦i<j≦n do d0(i,j) ← l(vi,vj); for k ← 1 until n do for 1 ≦i<j≦n do dk(i,j) ←       min{dk-1(i,j) , dk-1(i,k)+dk-1(k,j)}; 網掛の部分の計算量はO(1). 頂点対はO(n2)あるので、 大きい網掛の部分の 計算量はトータルでO(n2) kが1からnまで変化するので、計算量はトータルでO(n3)

All-Shortest-Pathsの演習 v2 2 8 6 5 v5 9 v3 v1 1 1 1 4 v4 2

8.2 弾性マッチング 弾性マッチング(elastic matching) 前提:列A=(a1,a2,…,am)と列B=(b1,b2,,…,bn)があり、これらの要素aiとbjの間に対応コスト(実数)cijが与えられている。 2つの列の要素の対(ai, bj)の集合Tが弾性マッチングと呼ばれるための条件: (i) 2つの列の各要素は、Tの中の少なくとも一つの対に含まれる (ii) Tの中の列は列の順序を乱さない。つまり、 (ai, bj)∊T, (ak, bl) ∊Tかつi<kならば、j≦l AもBもすべての要素がどれかに対応 対応する要素が交差(図8.5(b))することはない

弾性マッチングのイメージ a1, a2, a3 a4 a5 a6 … am b1 b2 b3 b4 …. bn

コスト最小弾性マッチング 弾性マッチングTのコスト:Tに属す対のコストの和 コスト最小弾性マッチング:列Aと列Bの弾性マッチングのうち、コスト最小のもの コスト最小弾性マッチングのイメージ:2本のゴムを部分的に伸ばしたり縮めたりして、最も小さいコストで対応のとれるところを探す

コスト最小弾性マッチングの応用 例8.1: 両眼立体視 例8.2: 単語音声認識 (両目で見るように)2台のカメラで対象をとらえることによって、奥行を計測する。それには、2台のカメラがとらえた映像の対応点を決定する必要がある。対応点が分かれば、幾何学的に奥行を計算できる 例8.2: 単語音声認識   入力音声の波形データを、コンピュータに蓄積された音声データと比較して、どの単語かを認識する。音声データを一定間隔に区切ったものを音素単位とみなす。それらの対応点とコスト(例えば、周波数分析し周波数成分の大きさの差の合計)からコスト最小な標本データ⇒入力された単語を求める

コスト最小弾性マッチングの解法 列A=(a1,a2,…,am)と列B=(b1,b2,,…,bn)のコスト最小弾性マッチングを図8.8のように表して求める   水平方向に左からa1,a2,…,amを並べ、 垂直方向に左からb1,b2,…,bnを並べる これらのデータを通る垂直、水平の直線を延ばして、格子構造を作る 対応(ai, bj)は格子点 弾性マッチングはこの格子点を 左下から右上までつないだ線 bn このような線はいろいろある が最小コストのものを求める … b3 最適性原理が成り立つ ⇒動的計画法が使える b2 b1 a1 a2 a3 … am

参考:コスト最小弾性マッチングと最短路探索の関係 最小弾性マッチング問題は、格子点を「グラフの頂点」とみなす と、m*n個の頂点からなるグラフにおいて、(a1, b1)から(am , bn) への最短路探索問題とみなせる bn … b3 b2 b1 a1 a2 a3 … am ただ、最小弾性マッチングの『グラフ』は頂点の個数が多く、辺の個数が少ない (向きを考えれば各頂点に対して高々3本)。そのため、解き方が異なる。

アルゴリズムElastic-Matching 列A=(a1,a2,…,am)と列B=(b1,b2,,…,bn)の最小コスト弾性マッチングを求める。c(i,j)は(ai, bj)の対応コスト. d(i,j) :列Aの最初の方の部分列(a1,a2,…,ai)と列Bの最初の方の(b1,b2,,…,bj)のコストの最小値 対応コスト 上に直線を延ばす d(1,1) ← c(1,1); for j ← 2 until n do d(1,j) ← d(1,j-1) +c(1,j); for i ← 2 until m do for j ← 1 until n do d(i,j) ← min{d(i-1,j-1), d(i-1,j), d(i,j-1)}+c(i,j); 斜め上に直線を延ばす 右に直線を延ばす 上に直線を延ばす

アルゴリズムElastic-Matchingの計算量 計算量はO(nm) 計算量はO(n) d(1,1) ← c(1,1); for j ← 2 until n do d(1,j) ← d(1,j-1) +c(1,j); for i ← 2 until m do for j ← 1 until n do d(i,j) ← min{d(i-1,j-1), d(i-1,j), d(i,j-1)}+c(i,j); 計算量はO(n  ) *m

アルゴリズムElastic-Matchingの例 d(1,1) ← c(1,1); for j ← 2 until n do d(1,j) ← d(1,j-1) + c(1,j); for i ← 2 until n do for j ← 1 until n do d(i,j) ← min{d(i-1,j-1), d(i-1,j), d(i,j-1)} +c(i,j); a1 a2 a3 a4 b1 2 5 8 3 b2 6 b3 7 1 4 2 5 8 3 6 3 2 6 7 1 5 4 j 3 12 6 11 13 5 2 8 9 15 1 7 15 18 d(i,j) i 1 2 3 4

動的計画法の練習課題 出欠課題(2) S1 S2 下図のラインで、車を組立てる最短時間とその順路を求めよ。 車を組み立てる 2つのライン がある。 各ラインには n個のステーション S1,j 、 S2,j がある。 ステーションSi,jでは組立にai,j時間、ラインを変えるにはti,j時間かかる。またラインとの引き渡しにはStartでbi, Goalでci時間かかる 下図のラインで、車を組立てる最短時間とその順路を求めよ。 (下図ではn=6。 ai,j、 bi 、 ci 、 ti,j それぞれの値を確認せよ) S1 7 9 3 4 8 4 3 2 3 1 3 4 2 Goal Start 2 1 2 2 1 4 2 S2 8 5 6 4 5 7 1   2  3 4 5 6

練習問題を解くために 以下の表を参考にせよ S1 S2 S1 S2 18 4+8= 2+7= 12 9 < 9+9 12+9+2 7 問題訂正版 以下の表を参考にせよ S1 18 S2 計算: 4+8= 2+7= 12 9 1  2 3 4 5 6 Goal 9+9 < 12+9+2 S1 7 9 3 4 8 4 3 2 3 1 3 4 2 Goal Start 2 1 2 2 1 4 2 S2 8 5 6 4 5 7 1   2  3 4 5 6

プログラム演習 宿題とする。締切りは7月18日! All-Shortest-Pathsのアルゴリズムをプログラムとして実現せよ。そのプログラムを教科書p.89, 演習問題8.2の問題に適用し、正解が得られることを確かめよ。 最小コスト弾性マッチングのアルゴリズムをプログラムとして実現せよ。そのプログラムを教科書p.89, 演習問題8.4の問題に適用して、正解が得られることを確かめよ。 最小コスト弾性マッチングのアルゴリズムを改変し、最小コストだけではなくどの部分列同士がマッチングしているかの記録も残すようにせよ。 宿題とする。締切りは7月18日!