最小カットはネットワークフローより簡単ですか?


18

max-flow min-cut定理のおかげで、任意のアルゴリズムを使用してネットワークグラフの最大フローを計算し、 -min-cut を計算できることがわかります。したがって、最小の計算の複雑さ最大値の計算の複雑度以下である留分 -flowを。s t s t (s,t)(s,t)(s,t)

少なくてもいいですか?最小カットを計算するアルゴリズムは、max-flowアルゴリズムよりも高速ですか?(s,t)

私は、削減の削減発見しようとしたに)-max-フローの問題を -minカット問題は、しかし、私は1つを見つけることができませんでした。私が最初に考えたのは、分割統治アルゴリズムを使用することでした。まず、グラフを2つの部分に分割する最小カットを見つけます。ここで、左部分の最大フローと右部分の最大フローを再帰的に見つけ、それらをカットを横断するすべてのエッジと結合します。これは実際に最大フローを生成するために機能しますが、その最悪の場合の実行時間は、min-cutアルゴリズムの実行時間の倍にもなります。より良い削減はありますか?s t O | V |(s,t(s,t)O(|V|)

max-flow min-cut定理は、max-flowのを計算する複雑さがmin-cutの容量を計算する複雑さと同じであることを示していますが、それは私が求めていることではありません。最大フローを見つけ、最小カットを(明示的に)見つける問題について質問しています。

これは、以下を除き、min-cutからのmax-flowの計算と非常に密接に関連しています。おそらく与えられた我々は見つけることができますいくつかのグラフの最小カットするような、それは簡単の最大フローを計算することができます、他の質問の範囲外だものです。G ' G ' GGGGG


2
@AshkanKzme、私はあなたをフォローしていません。詳しく説明してもらえますか?質問の4番目の段落で述べているように、max-flow min-cut定理は、max-flowのがmin-cutの容量に等しいことを示しています。これはあなたが考えていることだと思う。ただし、max-flowのを知っていても、max-flow自体はわかりません(たとえば、特定の各エッジで送信する量)。この質問は、max-flow自体の計算の複雑さと、min-cut自体の計算の複雑さについて尋ねています。私の質問は、質問の2番目の段落で述べたとおりです。
DW

2
@AshkanKzme、いいえ、間違った仮定をしていません。Ford-Fulkersonが最小カットを見つけるための可能な限り最速のアルゴリズムであると暗黙的に仮定しています... あなたは標準的なルーキーの間違いを下限の証明で作っているように聞こえます:「この問題をより速く解決する方法は見当たらないので、不可能であるに違いありません」。(PS max-flow min-cutについての標準的な教科書のことを教えています。私はあなたの手助けの試みに感謝しますが、私はすでにそれに精通しています...)
DW

1
「最小カットしかなければ、最大のフローを得ることができると証明できると思う」という声明に関しては、その証拠に答えを書くことをお勧めします。私の質問は尋ねています。私はそれの証拠を見たことがありませんが、もしあれば、それを書き上げて欲しいと思います!
DW

1
@DW質問はもう少し良くなったと思う。私はあなたが多項式チューリング縮約を与えるという事実に夢中になったと思います。を証明するために一定のチューリングリダクションが必要ではありませんか?そのようなリダクションが不可能であることを証明しても、それを反証しませんか?f(n)=Θ(g(n))
トーマスボスマン

1
@ThomasBosman、はい、それは正しいです。[ごめんなさい。私が質問で与えた削減は、非常に弱い下限であるであることを証明しています。であることを証明する削減があるかもしれないが、そのようなものを構築する方法がわからない。]f n = Ω g n f(n)=Ω(g(n)/n)f(n)=Ω(g(n))
DW

回答:


-1

可能なアプローチは次のとおりです。

各頂点とでの流入の正確な流出を知っているので、カットSを知っていて、からへのフローを見つけることは、コストがゼロの最小コストネットワークフロー問題です。仮定する示し流れとノードアークマトリックス(すなわち行 COLの、あれば1を有する尾である、-1頭場合、ゼロはそうでない)、およびletそのようなことであるもしt V S t f S t A i j i j b A f = b f | V | 3StVStfStAijijbAf=bf需給とフローの保全を満たします。次に、ガウス消去法を使用すると、操作で実行可能なソリューションを見つけることができます。|V|3

フローからカットを見つけるには、最大でをとる残差グラフを作成する必要があります時間、そして潜在的に横断する頂点。 | V ||E||V|

そのため、完全なグラフと最小カットがソースまたはシンクのみである場合、削減は両方の方向で最悪の場合に等しい時間がかかります。ただし、特別な構造が与えられた場合、実行可能な解を見つけることはよりも速くできると思います。しかし、それを証明する方法がわかりません。| V | 3Af=b|V|3


ガウス消去法を使用してを見つける方法がわかりません。我々は持っている一次方程式 不明。通常、したがって、未知数を一意に決定するのに十分な方程式はありません。見落としているトリックはありますか?| V | | E | | E | > | V |f|V||E||E|>|V|
DW

私もこれに関する専門家ではないので、間違っているかもしれません。しかし、独自の解決策がないという事実は、それを容易にするようです。行を削減した階層型に縮小すると、が得られます独立した列。次に、その部分行列との一意のソリューションを他のすべての列のゼロフローと組み合わせると、一意でないソリューションが生成されますが、それ自体は問題ではありません。私が予見できる問題は、が容量の制約に違反していることですが、直感的にこれを直接回避する方法があると思いますb f|V|bf
トーマスボスマン

Af=b

そうだね。制約(上と下)を追加することもできますが、これには解決策があることがわかっていますが、| V | +2 | E |があります。最大フローを直接計算するよりも遅くなります。
トーマスボスマン

もう1つの問題は、容量の制約が不平等(平等ではない)であるため、ガウス消去法を使用できないことです。線形プログラミングを使用する必要があります。直接最大流量。
DW
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.