最小カットから最大フローを計算する


16

最大フローの応答を計算することを知っています。容量のあるネットワークの最小カットは同等です。cf. 最大フロー最小カット定理

最大フローを計算するためのアルゴリズム(多少効率的)があり、最大フローが与えられた場合の最小カットの計算も難しくも高価でもありません。

しかし、その逆はどうですか?最小カットが与えられた場合、最大フローをどのように決定できますか?もちろん、ゼロからMax-Flowを解決することなく、できればそれより高速です。

いくつかの考え:

  • 最小カットから、最大流量値がわかります。この情報が標準パスのAugmenting-PathおよびPush-Relabelのアプローチにどのように役立つかはわかりませんが、後者の適応はやや理にかなっています。

  • 最小カットを使用してネットワークを2つの部分に分割して再帰することはできません(最悪の場合(1つのパーティションがシングルトンの場合)、問題を縮小しないためです)。また、小さなインスタンスの最小カットもありません。

  • 最大フロー速度の値を知っていると、おそらく補完的なスラックネス条件によって、Max-Flow LPを解くことができますか?


関連質問:最小カットを計算するアルゴリズム(最大フローアルゴリズムを使用しない)を知っていますか?
ラファエル

3
間違いなく、Kargerのランダム化アルゴリズムは非常に人気のあるアルゴリズムであり、そのために最大フローの知識は必要ありません。
ジュホ14

2
ランダム化されたアルゴリズムが必要ない場合、Stoer-Wagnerアルゴリズムは非常に単純なものであり、フローテクニックもありません。
十宝

2
良いもの!ここには別の課題があります。最小カットを知ることだけが伝えるすべてのカットはVのサブセットと同型なので、情報のビット(最大)。ただし、最大フローにはさらに多くが必要になる場合がありますV | 表現する情報のビット(特に容量が大きい場合)。したがって、情報理論的には、カットだけを見てフローを吐き出すアルゴリズムを期待することはできません。グラフも見て、追加の計算を行う必要があります。(これは障壁ではないことを理解しています。)|V|V|V|
DW

回答:


6

最悪の場合、最小カット自体は最大流量に関する多くの情報を伝えません。グラフで、最小s t -cutの値がwであるとします。重みwを持つ新しい頂点s 'とエッジs 's を追加してGを拡張する場合、新しいグラフの最小s 'tカットはエッジs 's のみで構成されますG=(V,E)s,twGs(s,s)ws,t(s,s)、取得方法に関する情報 sから tへのフローの w単位。wst

事実上、最小カットはフローの価値を示しますが、そのフローを達成する方法はわかりません。これは、カットの値を見つけるためにバイナリ検索を行うことができるため、最小カットを知ることで、最大で対数係数だけフローを見つけることができることを意味します。


しかし、その対数係数は潜在的なフロー値の間隔のサイズにあるため、グラフサイズのみに依存するmax-flowの解決に関する既存の上限とは比較できません。とは言っても、対数的な高速化でさえも興味深いでしょう。max-flowの値を知ることは何の役にも立たないとは思いません。
ラファエル

-2

確かに、maxflowを計算する前に最小カットを計算できるアルゴリズムがあります。このような2つのアルゴリズムは、プッシュリラベルと密接に関連する疑似フローアルゴリズムです。後者の方が効率的です。これらのアルゴリズムは両方とも、最小カットからmaxflowを導出するために繰り返し改善される残差グラフの特別なプロパティを使用します。詳細については、コードと論文を読むことを強くお勧めします。

プッシュ再ラベルの場合について詳しく説明すると、アルゴリズムがそれ以上フローをシンクにプッシュできない場合、最小カットが計算されていることが保証されます。アルゴリズムのこの部分は、より良い名前がないためフェーズ1と呼ばれます。フェーズ2は、単一の深さの最初の検索を使用して残差グラフのサイクルを繰り返しキャンセルし、過剰をソースにプッシュすることにより、最小カットを最大フローに変換するより効率的なステージです。フェーズ2は、フェーズ1よりも無症状で効率的であることが証明できると思います。


4
質問を読み直してください。それはあなたが答えたものではありません。
ラファエル

私が与えたPRの例は、最小カットを計算している間に、途中で他の情報を計算したと仮定しています。元の質問では、後続のmaxflow計算を容易にするために、他の情報をmin-cutと一緒に保持できるかどうかは指定されていませんでした。あなたの元の質問を「最小カットと他の情報なしで、最大フローをどのように決定できるか」と述べるのは公平ですか?
ldog

2
「Aを与え、Bを計算する」と述べました。唯一の合理的な仮定は、A のみが与えられるということです。そうでなければ、計算問題について話すことは非常に曖昧な問題になります。
ラファエル

失礼ですが同意できません。実用的な観点からは、追加情報(PRアルゴリズムの情報など)を計算せずに最小カットを計算することは決してありません。ここではコンテキストが重要です。
ldog
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.