×
Copy
Open
Link
Embed
Share
Beginning
This slide
Copy link URL
Copy link URL
Copy iframe embed code
Copy iframe embed code
Copy javascript embed code
Copy javascript embed code
Share
Tweet
Share
Tweet
Slide 1
Slide 1 text
XX University 9章 動的計画モデル 2022.07.03 Abeta
Slide 2
Slide 2 text
2 切符購⼊問題 スタート地点からゴール地点までの切符を買うとき、最も安くなる購⼊組み合わせを知りたい。 三島ー掛川=23940 三島ー静岡、静岡ー掛川=10680+9420=20100 ← 安い! 駅名 掛川 静岡 9420 静岡 新富⼠ 16020 7500 新富⼠ 三島 23940 10680 7500 三島 熱海 25140 14940 10620 6240 熱海 ⼩⽥原 27060 17220 13920 10080 6840 ⼩⽥原 新横浜 37740 27060 23940 17220 14940 10680 新横浜
Slide 3
Slide 3 text
3 動的計画法 ゴール地点から考える。 0をスタート、0からi-1までの最⼩費⽤が分かっているとし、 𝑝! , … , 𝑝"#$ と書く。 𝑗から𝑖への切符費⽤を𝑐%" と書く。 0 1 j i-1 i i+1 𝑝"#$ 𝑝% 𝑝$ 𝑝! 𝑐%" 再帰的な式が得られる。 𝑝" = ( 0 min %∈ !,$,…,"#$ (𝑝% + 𝑐%" ) 𝑖 = 0 𝑖 > 0 𝑐%" は三⾓表で与えられている。スタートとゴールが同⼀駅の場合は0として、再帰式を計算できる。
Slide 4
Slide 4 text
4 最適性の原理 最適性の原理・・・決定の全系列にわたって最適化を⾏うためには、初期の状態と最初の決定がどんなもので あっても、残りの決定は最初の決定から⽣じた状態に関して最適な⽅策を構成していなければならない。 → 𝑗 < 𝑖に対し、 𝑝" を最適化するための問題で解いた𝑝% は、 𝑝% を最適化するための問題においても最適解と なっている。 0 1 j i-1 i i+1 𝑝"#$ 𝑝% 𝑝$ 𝑝! 𝑐%" 𝑝"#$ を求める 問題の最適解 𝑝% を求める問 題の最適解 𝑝$ を求める問 題の最適解 𝑝! を求める問 題の最適解
Slide 5
Slide 5 text
5 計算量 • すべての分割を総当り 2 )*! + + C) = 2+ = 𝜊(𝑘+) 2 )*! + 𝑘 = 𝑛(𝑛 + 1) 2 = 𝜊(𝑛,) • 動的計画法
Slide 6
Slide 6 text
6 アミノ酸配列のアラインメント 問題としては⽂字列の類似さを⽐較する問題。 例)DELTAとDATAを⽐較する。 D_ATA DELTA DELTA DA_TA ⼀致は加点 不⼀致は減点 ⽋損は減点 ⚠点数は⽂字に依存 • D-D=8点 • A-A=5点 • A-E=-1点 • A-L=-2点 • E-_=-8点 等 どこにギャップ( _ )を⼊れればスコアを最⼤化できるか? 9点 8点
Slide 7
Slide 7 text
7 𝑥 𝑦 アライン済 アライン済 ⽂字列𝑥と𝑦のアラインメントを考える。 具体例として、例えば𝑥 =RESEARCH、 𝑦 =DESIREとする。 最後のアラインメントは次のようになる。 E H アライン済 アライン済 E _ アライン済 アライン済 _ H ⽂字の選び⽅は3通りある。
Slide 8
Slide 8 text
8 2次元の動的計画法 𝑥の𝑖⽂字⽬と𝑦の 𝑗⽂字⽬までアラインメントが済んでいるとき、そのときの最適スコアを𝑠[𝑖, 𝑗] とする。 𝑠[𝑖, 𝑗]に辿り着く道は3通りある。その3通りのう ちスコアが最⼤になる状態を採⽤する。 𝑠[𝑖, 𝑗] = max { 𝑠 𝑖 − 1, 𝑗 − 1 + 𝑏 𝑥" , 𝑦% , 𝑠 𝑖 − 1, 𝑗 − 8, 𝑠 𝑖, 𝑗 − 1 − 8 } −8𝑗 −8𝑗 0 𝑖 = 0, 𝑗 > 0 𝑖 > 0, 𝑗 = 0 𝑖 = 𝑗 = 0 𝑖 > 0, 𝑗 > 0
Slide 9
Slide 9 text
9 ⾏列積の計算 𝑝! ×𝑝$ ⾏列と𝑝$ ×𝑝, ⾏列の積を計算するとき、掛け算の回数は𝑝! 𝑝$ 𝑝, となる。 3つの⾏列𝐴$ ×𝐴, ×𝐴- の⼤きさが10×100, 100×5, 5×50のとき、 (𝐴$ ×𝐴, )×𝐴- → 10×100×5 + 10×5×50 = 7500 𝐴$ ×(𝐴, ×𝐴- )→ 10×100×50 + 100×5×50 = 75000 となり、積の順序で掛け算回数が変わる。掛け算回数を最⼩にしたい。
Slide 10
Slide 10 text
10 分割の動的計画法 ⾏列𝐴$ 𝐴, ⋯ 𝐴+ の最後の分割を(𝐴$ ⋯ 𝐴" )(𝐴".$ ⋯ 𝐴+ )に決定する次に(𝐴$ ⋯ 𝐴" )と(𝐴".$ ⋯ 𝐴+ )を分割して、、、と 繰り返すことで動的計画法を適⽤できる。 𝐴" 𝐴".$ ⋯ 𝐴% の掛け算量を𝑚[𝑖, 𝑗]とする。分割の位置を (𝐴" ⋯ 𝐴) )(𝐴).$ ⋯ 𝐴% )のように探索すれば、次の再帰式を 得る。 𝑚[𝑖, 𝑗] = ( 0 min "/)/%#$ {𝑚 𝑖, 𝑘 + 𝑚[𝑘 + 1, 𝑗] + 𝑝"#$ 𝑝) 𝑝% } 求めたいものは𝑚[1, 𝑛]である。 𝑗 − 𝑖 = 𝑘のとき、 𝑗0 − 𝑖0 = 𝑘 − 1となる𝑚[𝑖′, 𝑗′]が 全てわかっていれば再帰式を計算できる。 𝑖 = 𝑗 𝑖 < 𝑗
Slide 11
Slide 11 text
11 最短路問題 有効グラフの最短経路を考える。 𝑑(𝑣) = ( 0 min 1∈23(5) (𝑑 𝑢 + 𝑤15 ) 𝑣 = 𝑠 𝑣 ≠ 𝑠 スタート𝑠から頂点𝑣までの最適経路⻑を𝑑(𝑣)とする。 再帰計算をどこから始めればよいか⾃然な順序はない。
Slide 12
Slide 12 text
12 ダイクストラ法 • 全てのエッジのコストが 0 以上であること。 • 負のコストがある場合はベルマン・フォード法。 • ナイーブな計算量は𝜊(𝑉,)。 • ヒープ法で𝜊(𝐸 + 𝑉log 𝑉)になる。 • 順序的に解くので並列化不可能。
Slide 13
Slide 13 text
13 最適化問題でない動的計画法 道の数え上げ 𝐹" = W 1 𝐹"#$ + 𝐹"#, 𝑖 = 1,2 𝑖 ≥ 3 1から6に⾄る道の本数を知りたい。
Slide 14
Slide 14 text
14 最適化問題でない動的計画法 Banzhaf指数 例)A,B,Cの3つの政党がある。議席数はそれぞれ10,10,1とする。過半数11で議案を通すことが出来るとき、 議案を通せる提携(党の連⽴の組み合わせ)は{A,B,C},{A,B},{B,C},{C,A}である。この集合の意味で、A,B,Cは 対等になっている。 ⼀般化して𝑛個の政党があるとする。政党の集合を𝑁と表す。空集合も提携と呼ぶ。政党𝑖の議席数を𝑤" とする。 投票が𝑞以上のとき議案を通せるとする。 Banzhaf指数は政党𝑖を含まない敗北提携のうち、政党𝑖を加えると勝利提携になるものの数を2+#$ で割った値。 𝛽" = | 𝑆 ⊆ 𝑁 ∖ 𝑖 2 %∈7 𝑤% < 𝑞 ≤ 𝑤" + 2 %∈7 𝑤% }|/2+#$
Slide 15
Slide 15 text
15 例 𝑛 = 7, 𝑤$ , 𝑤, , 𝑤- , 𝑤8 , 𝑤9 , 𝑤: , 𝑤; = 1,1,2,1,3,1,1,3 , 𝑞 = 8の例。 𝛽; を求める。 8未満かつ3加えたら 8以上になるもの。
Slide 16
Slide 16 text
16 動的計画法まとめ • 最適原理に基づく⽅法。 • 現在では多種多様の⽅法に発展して動的計画法という名前が指すものの実態がよく分からなくなった。 • 動的計画法は、実際の時間順と逆順に問題を捉え、時間順にどのような情報を積み上げておけばよいか⾒ つけることで、算法を得られる。 • 図を描け。