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

ネットワークと s-t カットの容量

有向ネットワークのフロー(容量制約と流量保存を満たすもの)の値を計算できる。- カット の容量 を求め、フローの値がどのカットの容量も超えないことを使える

前提

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

読み込み中…

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

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

説明

有向グラフの各辺に「流せる量の上限(容量)」を付けたものをネットワークといい、出発点 から到着点 へ物や情報を流す様子を表します。この技能では、流し方(フロー)が規則を満たしているかを確かめてその値を計算すること、頂点を 側と 側に分ける「カット」の容量を計算することを学びます。さらに「フローの値はどのカットの容量も超えない」という事実を使って、流せる量の上限を見積もったり、あるフローが最大であることを確かめたりできるようになります。

なぜそうしてよいのか

記号を定めます。ネットワークとは、頂点集合 、有向辺の集合 、区別された 2 頂点 (ソース)と (シンク)、各辺 の容量 の組です(辺がない では とします)。フロー とは各辺に流量 を割り当てたもので、(1) 容量制約 、(2) 流量保存「 以外の各頂点 で、 に入る流量の和 から出る流量の和」を満たすものです。フローの値 は「 から出る流量の和 に入る流量の和」と定めます。

- カットとは、、 となる頂点の部分集合 のことで、その容量を 、つまり「 の内側から外側へ向かう辺の容量の和」と定めます。外側から内側へ向かう辺は数えません。

なぜ なのかを見ます。 の各頂点 について「出る流量 入る流量」を足し合わせます。流量保存により 以外の頂点( なので は含まれない)では 、 では なので、合計は です。一方、この合計を辺ごとに見直すと、両端が の中にある辺は、始点で 、終点で と数えられて打ち消し合います。残るのは と外側をまたぐ辺だけで、 となります。握手補題で次数の和を辺ごとに数え直したのと同じ「数え方を変える」発想です。右辺の第 1 項は容量制約で 以下、第 2 項は 以上なので、 が従います。したがって、あるフローの値とあるカットの容量が等しければ、そのフローは最大(どのフローの値もその値を超えない)で、そのカットは容量最小だとわかります。

手順

  1. フローが与えられたら、各辺で を確かめ、 以外の各頂点で「入る流量の和 出る流量の和」を確かめる。

  2. フローの値を から出る流量の和 に入る流量の和 で計算する。

  3. - カット (, )を選び、 の内側から外側へ向かう辺だけを拾って容量を足し、 を求める。 以外の頂点が 個なら、カットは各頂点を に入れるか入れないかで 通りある。

  4. どのフロー とどのカット についても なので、カットの容量の最小値はフローの値の上限になる。

  5. 上限と等しい値をもつフローを実際に作れれば、それがフローの値の最大値だと結論できる。

例題

頂点集合 、有向辺とその容量が , , , , であるネットワーク(これ以外の辺はない)について、 から へのフローの値の最大値を求めよ。

例題の解答

【手順 3】 以外の頂点は の 2 個なので、- カットは 通りある。内側から外側へ向かう辺の容量を足すと:
・: で 。
・: で 。
・: で (辺 は外側から内側へ向かうので数えない)。
・: で 。
【手順 4】カットの容量の最小値は なので、どのフローも値は 以下である。
【手順 5・手順 1】, , , , とおく。どの辺でも流量は 以上かつ容量以下である。頂点 では入る量 、出る量 。頂点 では入る量 、出る量 。よって流量保存も満たし、これはフローである。
【手順 2】 に入る辺はないので、。
上限 に達するフローがあるので、最大値は である。

答え:

よくある誤り

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

入口の問題

この技能を使う問題

この技能の次に学べること