技能一覧 › 大学数学 グラフ理論

最大流最小カット定理

残余ネットワークで増加道をくり返し探す方法(フォード・ファルカーソン法)で、最大流の値を求められる。同じ容量のカットを示して最大であることを確かめ、最小カットを数え上げられる

前提

この技能までの道筋(7 技能)
算数中学高校大学大学院

読み込み中…

右端(太枠)がこの技能です。左へドラッグすると、さらに前の前提をさかのぼれます。技能を押すと、そこまでの道筋が光ります。

一覧で見る(前提が先)
  1. 樹形図で数え上げる (算数 場合の数)
  2. 積の法則と和の法則 (算数 場合の数)
  3. 和の法則・積の法則と樹形図 (数学A 場合の数と確率)
  4. 順列・円順列・重複順列 (数学A 場合の数と確率)
  5. 組合せ (数学A 場合の数と確率)
  6. グラフの次数と握手補題 (大学数学 グラフ理論)
  7. ネットワークと s-t カットの容量 (大学数学 グラフ理論)

説明

有向ネットワークで から へ送れるフローの値の最大値(最大流)を求める方法を学びます。手順は、まだ余裕のある経路(増加道)を見つけては流量を増やすことのくり返しです。増加道がなくなったときのフローの値は、あるカットの容量と一致します。その一致によってフローが最大であることを確かめられ、さらに容量が最小のカット(最小カット)を探したり数えたりできます。

なぜそうしてよいのか

フロー が与えられたとき、残余ネットワークを次のように作ります。辺 について、 なら に残余容量 の辺を置きます(まだ流せる量)。 なら に残余容量 の逆向きの辺を置きます(流した量を取り消せる量)。残余ネットワークで から への有向道(増加道)が見つかったとします。その道の残余容量の最小値(ボトルネック)を とし、道に沿って だけ流します。前向きの辺では流量を 増やし、逆向きの辺では元の辺の流量を 減らします。こうしても容量制約と流量保存は保たれ、フローの値はちょうど 増えます。

増加道がなくなったとき、残余ネットワークで から到達できる頂点の集合を とします。 なので、 は - カットです。 から外へ出る元の辺は、すべて飽和しています()。余裕が残っていれば行き先も到達可能になり、 の定義に反するからです。同じ理由で、外から へ入る元の辺の流量はすべて です。流量が正なら逆向きの残余辺で到達できてしまいます。流量保存から、フローの値は「 から出る流量の和 へ入る流量の和」に等しくなります。したがってフローの値は です。

前提の技能で学んだとおり、どのフローの値もどのカットの容量も超えません。フローの値とカットの容量が等しいので、このフローは最大流であり、 は最小カットです(最大流最小カット定理:最大流の値=最小カットの容量)。容量がすべて整数なら、1 回の増加で値は 1 以上増えます。値は有限のカット容量で上から抑えられているので、手順は必ず終わります。また、最小カットとは容量が最大流の値に等しいカットのことです。したがって最大流の値がわかれば、各カットの容量と比べることで最小カットを数え上げられます。

手順

  1. すべての辺の流量を としたフローから始める。

  2. 残余ネットワークを作る。各辺 に前向きの残余容量 と、逆向き の残余容量 を置く( の辺は省く)。

  3. 残余ネットワークで から への増加道を 1 本探す。その道の残余容量の最小値を とし、道に沿って だけ流量を更新する。そのあと手順 2 に戻る。

  4. 増加道がなくなったら、 から到達できる頂点の集合 を求める。 が現在のフローの値に等しいことを確かめ、それを最大流の値とする。

  5. 最小カットを数えるときは、、 となる各 について を計算し、最大流の値と等しいものを数える。

例題

頂点集合 、辺と容量が の有向ネットワークがある。 から への最大流の値と、最小カット( となる頂点集合 で容量が最小のもの)の個数を、この順の組で求めよ。

例題の解答

手順 1:全辺の流量を にする。

手順 2・3(1 回目):残余ネットワークは元のネットワークと同じである。増加道 をとると、。流すと となり、値は 。

手順 2・3(2 回目):残余容量は が 、 が 。増加道 で 。流すと となり、値は 。

手順 2・3(3 回目):残余容量は が 、 が 。増加道 で 。流すと となり、値は 。

手順 4: も も飽和したので、 から出る残余辺はない( に入る元の辺はないので、逆向きの残余辺もない)。よって到達集合は で、 となり、フローの値 と一致する。したがって最大流の値は 。

手順 5: は ()の 4 通りある。




容量が のものは 3 個ある。

答えは 。

答え:

よくある誤り

この説明は AI が書き、別の AI が例題を独立に解いて答えを確かめ、説明を一歩ずつ査読しました。

入口の問題

この技能を使う問題