Processing math: 100%

組合せとグラフの理論(塩田)第13回 (3) 最大フロー・最小カット定理

前へ / 戻る / 次へ

最大フロー・最小カット定理

 そしていよいよ、驚くべき定理です。
Th.8(最大フロー・最小カット定理) N の最大フロー φ と最小カット K=(S,¯S) は必ず
( φ の値 ) =Ψ(K)
を満たす。すなわち
( 最大フローの値 ) = ( 最小カットの容量 )
が成り立つ。
 N前回の「残りを表すネットワーク」とし、次の定理と一緒に証明しましょう。
Th.9(前回の Th.11) ネットワーク N=(D,Ψ) のフロー φ が最大フローであることと、 N が増加道を持たないことが同値である。
Th.9 の証明 ) は前回示しました。逆に、N が増加道を含まないと仮定して、φ が最大フローであることを導きましょう。
  1. N において入口 v から到達可能な頂点全ての集合を S と置きます。 もちろん vS であり、また N には増加道が無いので wS ですから K=(S,¯S)N のカットになります。
  2. a=xyK=(S,¯S) を任意に取ります。 もし Ψ(a)>0 であれば、N の中の v-x 道と a=xy をつなげば v-y 道が作れるので y¯S であることに矛盾します。 従って Ψ(a)=0 でなければなりません。
  3. N の作り方から
    Ψ(a)=Ψ(a)φ(a)+φ(a1)
    ですが、フローの条件より φ(a)Ψ(a), φ(a1)0 ですから、2° により φ(a)=Ψ(a) かつ φ(a1)=0 が言えます。 a1(¯S,S) の弧ですから、結局
    • K=(S,¯S) の全ての弧 a に対して φ(a)=Ψ(a)
    • (¯S,S) の全ての弧 a に対して φ(a)=0
    であることがわかりました。
  4. 3° と Th.5 より ( φ の値 ) =Ψ(K) となり、 Th.7 より φ は最大フローです。同時に Th.8 も証明できました。(証明終)
Rem.10 最大フロー φ に対しては
( φ の値 ) =Ψ(K)
を満たすカット K が必ず存在します。 もしそのような K が上手く見つかれば、N を作らなくても φ が最大フローであることが言えます。 比較的小さいグラフで最大フローの手計算をするときにはしばしば有効な手段です。

最大フロー・最小カットの例

Ex.11(教科書 p.183)
N :
の最大フローは
φ :  
でした。Th.5 の等号条件をヒントに対応する最小カット K を探すと次の赤い弧たちがそうです。
記号で書くと、S={v,x,y,z}, ¯S={w} として K=(S,¯S) になります。 また
も最小カットです。こちらは S={v,x,y}, ¯S={w,z} の場合です。
Rem.12 「Def.1 のカット」は「教科書のカット」のうち極小なものを指しますので、 Th.7, Th.8 は「教科書のカット」の意味でも成立しています。