1.21k likes | 1.42k Views
ネットワーク理論 Text. Part 3 pp. 57-104. 最短路問題 pp.58-84 Ford 法 , 双対問題とポテンシャル, Bellman 方程式と Bellman-Ford 法 負の費用をもつ閉路がある場合,閉路を含まない場合 最大流問題 pp.85-94 最小費用流問題 pp.95-104. 飛脚に払う費用 (単位は両). 大名の例題. 終点. 始点. c は枝集合 E から 非負の実数全体への写像. 点とそれに接続する 枝が交互に並んだもの. 最短路問題(定義). 点集合 V 枝集合 E
E N D
ネットワーク理論Text. Part 3 pp. 57-104 • 最短路問題 pp.58-84 • Ford法,双対問題とポテンシャル,Bellman方程式とBellman-Ford法 • 負の費用をもつ閉路がある場合,閉路を含まない場合 • 最大流問題 pp.85-94 • 最小費用流問題 pp.95-104 1
飛脚に払う費用 (単位は両) 大名の例題 終点 始点 2
cは枝集合Eから 非負の実数全体への写像 点とそれに接続する 枝が交互に並んだもの 最短路問題(定義) • 点集合 V • 枝集合 E • 有向グラフ G=(V,E) • 枝の費用 c: E → R+ • 目的:始点sから終点tまでの最小費用のパス 最短路 3
氷を運びますか? Ford法(アイディア) 費用=10(両) 宿場1 富士山 氷の価格=0(両) 氷の価格=9(両) 氷の価格=10(両) 氷の価格=11(両) 4
点のポテンシャル y : V→ R 氷を運びますか? ywがyv+cvw以上なら 飛脚は氷を運ぶ! y は点集合 V から 実数全体への写像 アイディアの形式化小売価格=ポテンシャル 費用=cvw 点w 点v 氷の価格=yv(両) 氷の価格= yw(両) 5
「小売価格の見直し」操作 費用=10(両) 宿場1 富士山 氷の価格=0(両) 小売価格が 適正でない! 氷の価格=13(両) 小売価格の 見直し 氷の価格=10(両) 6
Ford法(飛脚組合バージョン) • 富士山の氷の価格=0;他の宿場町の氷の価格=∞ • while 小売価格が適正でなければ... do • (wにおける)価格が適正でない枝 vw に対して「小売価格の見直し」 7
解いてみよう!(2) ∞ ∞ 0 ∞ ∞ 9
解いてみよう!(3) ∞ ∞ 0 価格が適正でない ∞ ∞→5 10
解いてみよう!(4) ∞ ∞→10 0 価格が適正でない ∞ 5 11
解いてみよう!(5) ∞ 10→8 0 価格が適正でない ∞ 5 12
解いてみよう!(6) ∞ 8 0 価格が適正でない ∞→7 5 13
解いてみよう!(7) ∞→13 8 0 価格が適正でない 7 5 14
解いてみよう!(8) 13→9 8 0 価格が適正でない 7 5 15
解いてみよう!(9) 9 8 0 全ての価格が 適正になった 7 5 16
ポテンシャルの実行不能,実行可能 • 小売価格=ポテンシャル • ポテンシャルが実行不能(小売価格が適正でない) • ポテンシャルが実行可能(小売価格が適正) 17
Ford法 集合の差演算 • ys:=0, yv :=∞, • While ポテンシャル yが実行不能 do • yw>yv+cvwを満たす枝を見つけてyw:=yv+cvw 18
双対問題とポテンシャル-まずは線形計画として定式化-双対問題とポテンシャル-まずは線形計画として定式化- • 変数 xvw: 最短路(最適パス)が枝vwを使うなら1,それ以外なら0 • 例:始点 s に対して,xs1=0, xs2=1 (8ページ目のスライド参照)xがパスを表すためには...始点 s から飛脚が1人出ていく!xs1+xs2=1 19
線形計画として定式化2 • xがパスを表すためには...点1に飛脚が入ってきたら出ていかなければならない!xs1+x21 -x12-x1t =0 • 点2に飛脚が入ってきたら出ていかなければならない!xs2+x12–x21-x23 =0 • 点3に飛脚が入ってきたら出ていかなければならない!x23-x3t =0 • 終点tには飛脚が入ってくる! x1t+x3t =1 20
線形計画として定式化3 • パスに含まれている枝の費用の合計は最小化 最小化10xs1+5xs2+2x12+x1t+3x21+2x23+6x3t条件 -xs1- xs2 =-1 xs1 - x12-x1t+ x21 =0 xs2+ x12 - x21- x23 =0 x23- x3t =0 x1t + x3t =1 21
双対問題を作ってみよう! • 絶対に失敗しない方法 (Lagrange緩和を用いる!) まず,主問題のそれぞれの制約式に対応する双対変数を用意 22
双対問題を作ってみよう! 最小化10xs1+5xs2+2x12+x1t+3x21+2x23+6x3t条件 -xs1- xs2 =-1 xs1 - x12-x1t+ x21 =0 xs2+ x12 - x21- x23 =0 x23- x3t =0 x1t + x3t =1 ×ys ×y1 ×y2 ×y3 ×yt (xs1+xs2-1)×ys (-xs1+x12+x1t-x21)×y1 (-xs2-x12+x21+x23)×y2 (-x23+x3t)×y3 (-x1t-x3t+1)×yt 任意の実数 (負でも良い) =0 23
双対問題を作ってみよう! 最小化 10xs1+5xs2+2x12+x1t+3x21+2x23+6x3t +(xs1+xs2-1)ys+(-xs1+x12+x1t-x21)y1 +(-xs2-x12+x21+x23)y2+(-x23+x3t)y3 +(-x1t-x3t+1)yt 条件 主問題と同じ =0 任意の実数 この部分は0 24
双対問題を作ってみよう! 目的関数をyについてまとめる 最小化 yt-ys +(10+ys-y1)xs1+(5+ys-y2)xs2+(2+y1-y2)x12 +(1+y1-yt)x1t+(3+y2-y1)x21 +(2+y2-y3)x23+(6+y3-yt)x3t 条件 主問題と同じ 25
最小化 最適値 最大化 下界(目的関数に加えた項の 合計は0,式を緩和したので) 双対問題を作ってみよう! 目的関数に加えた制約を全て緩和 下界を与える 最小化 yt-ys+(10+ys-y1)xs1+(5+ys-y2)xs2+(2+y1-y2)x12 +(1+y1-yt)x1t+(3+y2-y1)x21+(2+y2-y3)x23+(6+y3-yt)x3t 条件 xは0以上 0以上でないと 発散してしまう 26
双対問題 ポテンシャルが実行可能である条件 小売価格が適正 双対問題 最大化 yt-ys 条件 27
双対問題の意味合いを考えてみよう(ポテンシャルと双対変数の関係)双対問題の意味合いを考えてみよう(ポテンシャルと双対変数の関係) • 双対変数yは宿場町での氷の小売価格(ポテンシャル)を表す. • 双対問題の目的関数は,江戸と富士山の小売の価格(ポテンシャル)の差の最大化を表す. • 双対問題の制約式は,小売価格が適正(ポテンシャルが実行可能)であることを表す. 28
Bellman方程式とBellman-Ford法-双対問題を眺めてみよう!-Bellman方程式とBellman-Ford法-双対問題を眺めてみよう!- よりy1=min{ys+10,y2+3}である. 同様に y2=min{ys+5,y1+2}, y3=min{y2+2}, yt=min{y1+1,y3+6} 29
Bellman方程式 Bellman方程式 つまり次式を満たすyを求めれば良い. 30
y1=min{10,y2+3} y2=min{5,y1+2} y3=y2+2 yt=min{y1+1,y3+6} Bellman方程式を解こう1 ys=0(富士山sの小売価格は0) y1=min{ys+10,y2+3} y2=min{ys+5,y1+2} y3=min{y2+2} yt=min{y1+1,y3+6} 31
Bellman方程式を解こう2 y1=min{10,y2+3}を y2=min{5,y1+2} に代入 y2=min{5,min{10,y2+3}+2} 整理して y2=min{5,min{12,y2+5}} もっと整理して y2=min{5,12,y2+5};よって y2 =5 32
Bellman方程式を解こう3 y2 =5 がわかったので... y1=min{10,y2+3}より y1=min{10,5+3} =8 y3=y2+2 より y3=5+2=7 yt=min{y1+1,y3+6}より yt= min{8+1,7+6}=9 より系統的な方法はないものか? (手計算でなくコンピュータでもできるように!) 33
点wにk+1本の枝を経由してくるときの費用 点vにk本の枝を経由してくるときの 費用にvからwへ移動の費用を加えたもの 点wにk本の枝を経由 してくるときの費用 Bellman方程式(修正版) yv(k)=始点sから,たかだかk本の枝を経由し, 点vに至る最適パスの費用 34
Bellman方程式(修正版)をもとにしたFord法-Bellman-Ford法-Bellman方程式(修正版)をもとにしたFord法-Bellman-Ford法- Bellman-Ford法を言葉で書くと... k=0のときは簡単! ys(0)=0(始点 s までは枝 0 本で費用0) yv(0)=∞(s以外の点vには,枝 0 本では行けない) これを初期条件として... k=1,2,3,4(点の数から1を減じた回数だけ;なぜか?) の順にy(k) を計算する. 35
Bellman-Ford法の適用例 表の値はyv(k) 0 0 0 0 8 10 8 8 5 5 5 5 最適値 7 ∞ 7 7 9 ∞ 11 9 36
Bellman-Ford法 ys(0):=0, yv(0):=∞, for k=0 to n-1 do yw(k+1):=yw(k) ,∀w ∈V for all do if yv(k)+cvw<yw(k) then yw(k+1):=yv(k)+cvw 37
Bellman-Ford法の適用例最適パスを記憶する場合 sからきたことを表す 表の値はyv(k)と直前の点pr(Previousの略) 38
Bellman-Ford法の適用例 sからきたことを表す 0 0 0 0 10 s 8 2 8 2 8 2 5 s 5 s 5 s 5 s 最適値 ∞ 7 2 7 2 7 2 ∞ 9 1 11 1 9 1 39
最短路木(最適パスの情報を含んだ木) Bellman-Ford法の表を後からたどることにより, 最短路木を作成 1 t s 2 3 40
演習問題1 • Aから各点への最短路をFord法で求めてみよう. • Aから各点への最短路をBellman-Ford法で求めてみよう. B E A 5 4 注:無向グラフなので A->B,B->Aの両方向に 枝がある有向グラフと みなして解くこと! 4 3 C 9 F 3 3 10 D 4 41
演習問題2 下のネットワークにおいて,sからtへの最短路を Bellman-Ford法で求めることができるかな? (オプション課題) 42
ネットワーク理論Text. Part 3 pp. 57-104 • 最短路問題 pp.58-84 • Ford法,双対問題とポテンシャル,Bellman方程式とBemmlan-Ford法 • 負の費用をもつ閉路がある場合,閉路を含まない場合 • 最大流問題 pp.85-94 • 最小費用流問題 pp.95-104 43
飛脚に払う費用 (単位は両) 大名の例題 終点 始点 Ford法を適用してみよう 44
Ford法の適用 ∞ ∞ 1 1 t 10 0 -5 s 6 3 2 5 2 3 2 ∞ ∞ 45
Ford法の適用 ∞→10 ∞ 1 1 t 10 0 -5 s 6 3 2 5 2 3 2 ∞ ∞ 46
Ford法の適用 10 ∞ 1 1 t 10 0 -5 s 6 3 2 5 2 3 2 ∞ ∞→5 47
Ford法の適用 10 ∞ 1 1 t 10 0 -5 s 6 3 2 5 2 3 2 ∞→7 5 48
Ford法の適用 10→2 ∞ 1 1 t 10 0 -5 s 6 3 2 5 2 3 2 7 5 49
合計費用が負の閉路 (=負の閉路) Ford法の適用 10→2→1→ ∞ 1 1 t 10 0 -5 s 6 3 2 5 2 3 終わらない! 2 5→4→3→ 7→6→5→ 50