最大流問題 単語

サイダイリュウモンダイ

1.1千文字の記事

最大流問題とは、最大の流量をめる問題である。線計画問題のひとつ。

概要

例えば、ある地点から他の地点に物資を送るとする。このとき、いくつかの地点を経由し、分岐や合流をしながら物資が送られるとする。送られる過程で、それぞれの地点からそれぞれの地点に一度に送ることのできる量の最大値が決まっている際、全体で一度に送れる量の最大値はいくらなのか。これを考えるのが最大流問題である。最大流問題では、送られる量をフロー、出発点をソース、終着点をシンクという。

フロー増加法

最大流問題を解くアルゴリズムのひとつ。

  1. フローをすべて0にする。
  2. 残余ネットワーク(後述)をめる。
  3. 残余ネットワークソースからシンクへつながる路がなければ、6へ飛ぶ。あれば、その中から1つ選ぶ。
  4. その路の残余容量の中で最小のものを、その路の各フローに加える。既に流れている方向と逆方向にフローを加えるのは、フローを減少することを意味する。
  5. 2へ戻る。
  6. この時点での流れ方が、最大流である。

残余ネットワークとは

「あとどれだけフローを増加できるか」を図にしたもの。

例えば、地点Aから地点Bへ最大で5流せるとし、実際に2流れているとする。このとき、さらにフローを3だけ増やすこともできるし、流れている2をキャンセルすることもできる。この量を「残余容量」という。AからBへの残余容量は3、BからAへの残余容量は2である。残余容量をすべてめ、図にしたものが残余ネットワークである。

最大流問題の例です。

上図を例にして、最大流をフロー増加法でめる。

フローをすべて0にしたときの残余ネットワークは、上図に一致する。A→B→Eにフローを4加えると、残余ネットワークは次のとおり。

残余ネットワーク(第1段階)

A→D→Eに6加える。

残余ネットワーク(第2段階)

A→C→Eに2加える。

残余ネットワーク(第3段階)

A→B→C→Eに1加える。

残余ネットワーク(第4段階)

AからEにつながる路がないため、ループ脱出。最大流は13で、次のように流せばよいことがわかる。(流量は括弧付きで記す)

この例の最適解です。

最大流最小カット定理

全体を、ソースを含む部分Sとシンクを含む部分Tの2つに分割するとき、SとTの組をカットという。Sの点からTの点に流れ込む容量の合計を、そのカットの容量という。存在しうカットの中で容量が最小のものは、その容量と最大流が一致する。これが最大流最小カット定理である。つまり、最大流をめることと最小カットめることは同等な関係にある。これは線形計画問題における双対問題であることを意味している。

前述の例でいうと、最小カットは以下の通り。

最小カットです。

他のカットを調べても、確かに13より小さくなることはない。

関連項目

この記事を編集する

掲示板

おすすめトレンド

ニコニ広告で宣伝された記事

記事と一緒に動画もおすすめ!
ルナ・ルーン[単語]

提供: よんよんぜろはち山

もっと見る

急上昇ワード改

最終更新:2025/12/06(土) 07:00

ほめられた記事

最終更新:2025/12/06(土) 07:00

ウォッチリストに追加しました!

すでにウォッチリストに
入っています。

OK

追加に失敗しました。

OK

追加にはログインが必要です。

           

ほめた!

すでにほめています。

すでにほめています。

ほめるを取消しました。

OK

ほめるに失敗しました。

OK

ほめるの取消しに失敗しました。

OK

ほめるにはログインが必要です。

タグ編集にはログインが必要です。

タグ編集には利用規約の同意が必要です。

TOP