最大流問題とは、最大の流量を求める問題である。線型計画問題のひとつ。
例えば、ある地点から他の地点に物資を送るとする。このとき、いくつかの地点を経由し、分岐や合流をしながら物資が送られるとする。送られる過程で、それぞれの地点からそれぞれの地点に一度に送ることのできる量の最大値が決まっている際、全体で一度に送れる量の最大値はいくらなのか。これを考えるのが最大流問題である。最大流問題では、送られる量をフロー、出発点をソース、終着点をシンクという。
最大流問題を解くアルゴリズムのひとつ。
「あとどれだけフローを増加できるか」を図にしたもの。
例えば、地点Aから地点Bへ最大で5流せるとし、実際に2流れているとする。このとき、さらにフローを3だけ増やすこともできるし、流れている2をキャンセルすることもできる。この量を「残余容量」という。AからBへの残余容量は3、BからAへの残余容量は2である。残余容量をすべて求め、図にしたものが残余ネットワークである。
フローをすべて0にしたときの残余ネットワークは、上図に一致する。A→B→Eにフローを4加えると、残余ネットワークは次のとおり。
A→D→Eに6加える。
A→C→Eに2加える。
A→B→C→Eに1加える。
AからEにつながる路がないため、ループ脱出。最大流は13で、次のように流せばよいことがわかる。(流量は括弧付きで記す)
全体を、ソースを含む部分Sとシンクを含む部分Tの2つに分割するとき、SとTの組をカットという。Sの点からTの点に流れ込む容量の合計を、そのカットの容量という。存在しうるカットの中で容量が最小のものは、その容量と最大流が一致する。これが最大流最小カット定理である。つまり、最大流を求めることと最小カットを求めることは同等な関係にある。これは線形計画問題における双対問題であることを意味している。
前述の例でいうと、最小カットは以下の通り。
他のカットを調べても、確かに13より小さくなることはない。
掲示板
急上昇ワード改
最終更新:2025/12/06(土) 07:00
最終更新:2025/12/06(土) 07:00
ウォッチリストに追加しました!
すでにウォッチリストに
入っています。
追加に失敗しました。
ほめた!
ほめるを取消しました。
ほめるに失敗しました。
ほめるの取消しに失敗しました。