80 likes | 173 Views
回路システム ― 最大フローアルゴリズム ―. 担当 本木 実. ,0. ,0. ,0. ,0. ,0. ,0. ,0. ,0. ,0. ,0. ,0. ,0. ,0. ,0. 最大フローアルゴリズム(ラベリング法). z. u. 0. 4. 3. 全てのノードが「ラベル付け未」. 4. 3. 2. 4. v. t. s. 全ての経路のフローは0. 3. y. 3. 2. 2. 2. 4. 4. w. 2. x. u (s+,4). z (u+,4). 4,0. ◎ ルーチンB(フロー変更).
E N D
回路システム―最大フローアルゴリズム― 担当 本木 実
,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 最大フローアルゴリズム(ラベリング法) z u 0. 4 3 全てのノードが「ラベル付け未」 4 3 2 4 v t s 全ての経路のフローは0 3 y 3 2 2 2 4 4 w 2 x
u(s+,4) z(u+,4) 4,0 ◎ルーチンB(フロー変更) 3,0 4,0 3,0 2,0 yにラベル(x+,ε(t))があれば: fxyを( fxy + ε(t) )に変更 s(-,ε(s) =∞) v(s+,4) y(u+,2) t 3,0 3,0 (x+,2) 2,0 2,0 yにラベル(x-,ε(t))があれば: fyxを( fyx - ε(t) )に変更 4,0 w(s+,4) 2,0 x(v+,2) 最大フローアルゴリズム(ラベリング法) (s+,4) (u+,4) z ◎ルーチンA(ラベル付け) u (a) 4,0 ラベル(x+,ε(y)): 経路に沿って節xから ε(y)だけ増加させられる。 ε(y)=min[ε(x),Cxy-fxy] 3,0 4,0 3,0 2,0 s (-,ε(s) =∞) 4,0 (s+,4) v (u+,3) y t 3,0 3,0 (x+,2) 2,0 2,0 2,0 4,0 4,0 ラベル(x-,ε(y)): 経路に沿って節xから ε(y)だけ減少させられる。 (s+,4) 2,0 w x (v+,2) 4,2 2,2 4,2
u(s+,4) z(u+,4) 4,0 ◎ルーチンB(フロー変更) 3,0 4,0 3,0 2,0 yにラベル(x+,ε(t))があれば: fxyを( fxy + ε(t) )に変更 s(-,ε(s) =∞) 4,2 v(s+,2) y(u+,3) t 3,0 3,0 (x+,2) 2,0 2,0 yにラベル(x-,ε(t))があれば: fyxを( fyx - ε(t) )に変更 2,2 w(s+,4) x(w+,2) 最大フローアルゴリズム(ラベリング法) (s+,4) (u+,4) z ◎ルーチンA(ラベル付け) u (b) 4,0 ラベル(x+,ε(y)): 経路に沿って節xから ε(y)だけ増加させられる。 ε(y)=min[ε(x),Cxy-fxy] 3,0 4,0 3,0 2,0 (-,ε(s) =∞) s 4,2 (s+,2) v (u+,3) y t 3,0 3,0 (x+,2) 2,0 2,0 2,2 4,0 4,2 ラベル(x-,ε(y)): 経路に沿って節xから ε(y)だけ減少させられる。 (s+,4) 2,0 w (w+,2) x 4,2 4,4 2,2
u(s+,4) z(u+,4) 4,0 ◎ルーチンB(フロー変更) 3,0 2,0 yにラベル(x+,ε(t))があれば: fxyを( fxy + ε(t) )に変更 s(-,ε(s) =∞) 4,2 v(s+,2) y(u+,3) t 3,0 (y+,3) 2,0 2,0 yにラベル(x-,ε(t))があれば: fyxを( fyx - ε(t) )に変更 2,2 4,2 4,4 w(s+,2) 2,2 x 最大フローアルゴリズム(ラベリング法) (s+,4) (u+,4) z ◎ルーチンA(ラベル付け) u (c) 4,0 ラベル(x+,ε(y)): 経路に沿って節xから ε(y)だけ増加させられる。 ε(y)=min[ε(x),Cxy-fxy] 3,0 4,0 3,0 2,0 s (-,ε(s) =∞) 4,2 (s+,2) v (u+,3) y t 3,0 3,0 (y+,3) 2,0 2,0 2,2 4,2 4,4 ラベル(x-,ε(y)): 経路に沿って節xから ε(y)だけ減少させられる。 (s+,2) 2,2 w x 4,3 3,3 3,3
u(s+,1) z(u+,1) ◎ルーチンB(フロー変更) 3,3 2,0 yにラベル(x+,ε(t))があれば: fxyを( fxy + ε(t) )に変更 s(-,ε(s) =∞) 4,2 v(s+,2) y(v+,2) t 3,0 3,3 (z+,1) 2,0 2,0 yにラベル(x-,ε(t))があれば: fyxを( fyx - ε(t) )に変更 2,2 4,2 4,4 w(s+,2) 2,2 x 最大フローアルゴリズム(ラベリング法) (s+,1) (u+,1) z ◎ルーチンA(ラベル付け) u (d) 4,0 ラベル(x+,ε(y)): 経路に沿って節xから ε(y)だけ増加させられる。 ε(y)=min[ε(x),Cxy-fxy] 3,0 4,3 3,3 2,0 s (-,ε(s) =∞) 4,2 (s+,2) v (v+,2) y t 3,0 3,3 (z+,1) 2,0 2,0 2,2 4,2 4,4 ラベル(x-,ε(y)): 経路に沿って節xから ε(y)だけ減少させられる。 (s+,2) 2,2 w x 4,1 3,1 4,4
u(y-,2) z(u+,2) ◎ルーチンB(フロー変更) 4,4 2,0 yにラベル(x+,ε(t))があれば: fxyを( fxy + ε(t) )に変更 s(-,ε(s) =∞) v(s+,2) y(v+,2) t 3,3 (z+,2) 2,0 2,0 yにラベル(x-,ε(t))があれば: fyxを( fyx - ε(t) )に変更 2,2 4,2 4,4 w(s+,2) 2,2 x 最大フローアルゴリズム(ラベリング法) (y-,2) (u+,2) z ◎ルーチンA(ラベル付け) u (e) 4,1 ラベル(x+,ε(y)): 経路に沿って節xから ε(y)だけ増加させられる。 ε(y)=min[ε(x),Cxy-fxy] 3,1 4,4 3,3 2,0 s (-,ε(s) =∞) 4,2 (s+,2) v (v+,2) y t 3,0 3,3 (z+,2) 2,0 2,0 ラベル(x-,ε(y)): 経路に沿って節xから ε(y)だけ減少させられる。 ε(y)=min[ε(x),fyx] 2,2 4,2 4,4 (s+,2) 2,2 w x 4,3 3,3 3,1 4,4 3,2
u(y-,1) z(u+,1) 4,3 ◎最小カットを探す 3,3 4,4 3,1 _ 2,0 s(-,ε(s) =∞) XXが最小カット 4,4 v(w+,2) y(v+,1) t X={s,w,v,y,u,z} 3,2 3,3 _ X={x,t} 2,0 2,0 2,2 4,2 4,4 最大フローは 3+3+2+2=10 w(s+,2) 2,2 x 最大フローアルゴリズム(ラベリング法) 付けられず (y-,1) (u+,1) z ◎ルーチンA(ラベル付け) u (f) 4,3 ラベル(x+,ε(y)): 経路に沿って節xから ε(y)だけ増加させられる。 ε(y)=min[ε(x),Cxy-fxy] 3,3 4,4 3,1 2,0 s (-,ε(s) =∞) 4,4 (w+,2) v y (v+,1) t 3,2 3,3 2,0 2,0 ラベル(x-,ε(y)): 経路に沿って節xから ε(y)だけ減少させられる。 ε(y)=min[ε(x),fyx] 2,2 4,2 4,4 (s+,2) 2,2 w x ラベル付け未 ラベル付け未