グラフ理論の問題
頂点集合 をもつ有向ネットワークがあり、有向辺とその容量は次の 本である。
を入口、 を出口とする。 を満たす頂点の部分集合 を - カットといい、その容量を ( から への辺がないときは )と定める。
から への最大流の値と、容量が最小となる - カット の個数を、この順に組で求めよ。
この問題で使うもの
- 最大流最小カット定理(説明と入口の問題)
この問題を解けるようになるまで(8 技能)
読み込み中…
右端(太枠)がこの問題で使う技能です。左へドラッグすると、さらに前の前提をさかのぼれます。技能を押すと、そこまでの道筋が光ります。
ヒント
行き詰まったら、上から順に 1 つずつ開いてください。
ヒント 1
最大流最小カット定理を使う。フォード・ファルカーソン法で増加道を見つけて流量を増やし、カットの容量と比べて最大であることを確かめる。
ヒント 2
増加道に流せる量はその道の残余容量の最小値。カットは を に入れるかどうかで 通りあり、 から外へ出る辺の容量だけを足す。
ヒント 3
に 、 に 流すと、残りの増加道は だけになる。カットの容量は で 、 で である。残りの つのカットも計算してみよう。
答えと解説
答えを見る
どこでつまずきましたか?(選ぶと、戻る場所を案内します)
解説を読む
手順 1:フォード・ファルカーソン法で流量を増やす。
はじめはすべての辺の流量を とし、残余ネットワークで から への道(増加道)を探して、その道の残余容量の最小値だけ流す。
- 増加道 :残余容量は 。流量 を流す。残余容量は が 、 が になる。
- 増加道 :残余容量は 。流量 を流す。残余容量は が 、 が になる。
- 増加道 :残余容量は 。流量 を流す。残余容量は が 、 が 、 が になる。
この時点で から出る辺 の残余容量はどちらも で、 に入る辺はもともとないので逆向きの残余辺も から出ない。よって増加道はもうない。得られたフローの値は である。
手順 2:カットの容量をすべて計算する。
なので、 は を入れるかどうかで 通りある。 から外へ出る辺の容量を足す(外から に入る辺は数えない)。
- : より
- : より
- : より ( は に入る向きなので数えない)
- : より
手順 3:最大であることの確認と最小カットの数え上げ。
どのフローの値もどのカットの容量も超えないので、フローの値は 以下である。手順 1 で値 のフローが得られたので、最大流の値は である。また最小カットの容量も であり(最大流最小カット定理)、容量 のカットは と の 個である。
よって答えは 。
別解
最大流:s→u:3, s→v:2, u→v:1, u→t:2, v→t:4。
sから出る容量の合計は 3+2=5。tに入る容量の合計は 2+4=6。
流れの例:s→u に3、s→v に2を流す。u→t に2、u→v に1を流す。v には 2+1=3 が入り、v→t に3を流す。t への流入は 2+3=5。各辺は容量以内なので、最大流は少なくとも5。
カット:s∈S, t∉S で、u,v の入れ方は4通り。
1. S={s}:c = 3+2 = 5
2. S={s,u}:s→v:2, u→v:1, u→t:2 で c = 5
3. S={s,v}:s→u:3, v→t:4 で c = 7
4. S={s,u,v}:u→t:2, v→t:4 で c = 6
最小カット容量は5で、最大流最小カット定理より最大流の値は5。
容量5のカットは S={s} と S={s,u} の2個。
検算:S={s,u} のカットで、s→v:2, u→v:1, u→t:2 はいずれも上の流れで飽和している(2, 1, 2)。S={s} でも s→u:3, s→v:2 が飽和している。よって整合する。
答え:(5, 2)