MathLabs
定理証明済み

最大流最小カット定理

内容

非負の辺容量を持つ、始点 ss と終点 tt を持つ任意のフローネットワークにおいて、ss-tt フローの最大値は、あらゆる ss-tt カットの中での最小容量に等しい。

なぜ正しいのか?

この定理は、最大化問題(最大の流れを求める)を、それと等価な最小化問題(最小のボトルネックを求める)に変換する。そのため、一つのカットを示すだけで、その流れがすでに最適であることを即座に検証できる証明となる。これはLP双対性や分枝限定法での枝刈りを支える主双対の考え方と同じである。

証明の概略

まず弱双対性を示す。ss が SS に、tt が TT に属する任意の ss-tt カット SS,TT と、任意の実行可能フロー ∣f∣|f| を考える。ss から出るすべての単位のフローは、最終的に tt に到達するために SS から TT へ渡らなければならず、保存則により、カットを横切る正味フローはフローの総量に等しい。TT から SS へ戻る辺はこの正味量を減らすことしかできないため、フロー値は SS から出る辺の容量の合計を決して超えない。すなわち任意のカットについて ∣f∣|f| は cap(S,T)\mathrm{cap}(S,T) 以下である。

次にFord-Fulkersonアルゴリズムを最後まで実行する:残余グラフ(残り容量とすでに送ったフローの逆転可能分)の中で ss から tt への経路を繰り返し見つけ、その経路上で最も細い辺が許す分だけフローを押し出す。容量は整数または有理数であり、使用するたびに経路上で真に減少するため、この過程は有限回の増加で終了する。

終了時には増加経路が存在しない。最終的な残余グラフで ss から到達可能なノードの集合を SS、残りを TT とする(到達する経路がないため、tt は TT に属する)。元のネットワークで SS から TT へのすべての辺は完全に飽和していなければならず(そうでなければ残余容量が残り、SS がさらに広がる)、TT から SS へのすべての辺のフローはゼロでなければならない(そうでなければその逆残余辺が SS を広げる)。

SS 内のすべてのノードについてフロー保存則を足し合わせると、総フロー値は飽和した順方向辺の容量の合計からゼロの逆方向フローを引いたものに正確に等しく、これはこのカットに対する cap(S,T)\mathrm{cap}(S,T) そのものである。最初の段落で示した上界と合わせると、このカットは達成可能な最小容量を実現しており、したがって最大フロー値は最小カット容量に等しい。

この定理を使うトピック

ステップごとの証明

この定理のステップごとの証明はまだありません。

参考文献

  1. Alexander Schrijver (2003). Combinatorial Optimization: Polyhedra and Efficiency
  2. Anna R. Karlin, Nathan Klein, Shayan Oveis Gharan (2021). A (Slightly) Improved Approximation Algorithm for Metric TSP · arXiv:2007.01409