おそらく負の重みを持つ重み付き有向非循環グラフの最小stカット


9

私は次の問題に遭遇しました:

実際のエッジの重みと2つの頂点sとtを持つ有向非循環グラフが与えられた場合、最小stカットを計算します。

一般的なグラフの場合、これはNP困難です。エッジの重みを逆にするだけで、max-cutを簡単に減らすことができるためです(私が間違っている場合は修正してください)。

DAGの状況はどうですか?最小カット(または最大カット)は多項式時間で解決できますか?それはNPハードであり、そうであれば、既知の近似アルゴリズムはありますか?

私はこれについて仕事を見つけようとしましたが、できなかったので(たぶん、検索で間違ったキーワードを使用しているだけかもしれません)、誰かがこれについて何か知っている(または見つける)ことを望んでいました。


2
ここで、min-cutの線形計画法はどこで失敗しますか?
Peter Shor

en.wikipedia.org/wiki/…の表記を使用):負の重みを持つエッジの場合、d_ {ij}は任意に大きくできます。上からd_ {ij}の境界を設定した場合でも、負の重みを持つエッジの可能な最大値を常に取得します。したがって、そのようなプログラムの解決策は、常に有効なstカットを生成するとは限りません。私はそのような問題をあまり経験していないので間違っているかもしれません。もしそうなら、私を訂正してください。基本的に、max-cut(任意のウェイトを使用)がDAGに対して効率的に解決できるかどうかを知りたいです。
ジョージ

1
これを機能させるには、最初の不等式を等式に変更する必要があります:。なぜそれが失敗するのかはまだわかりませんが、何かが足りないのかもしれません。私はそれについてあまり考えていません。dij=pjpi
Peter Shor

ここに何か欠けているのはおそらく私です。これは、すべてのが整数値を取ることを保証しますか?上からp iを1でバインドすることもできますが、これが機能するかどうかはわかりません。問題は、これを解決できる場合は、エッジの重みを逆にすることでmax-cutを減らすことができ、max-cutはNPハードであるため不可能です。しかし、私はここで間違っているかもしれません。pipi
ジョージ

1
DAGのst max-cut NP-hardはありますか?グラフがDAGではない場合、サイクルがある場合は不等式が必要になるため、その不等式を等式に変更することはできません。したがって、一般的なケースでは、LPは負の重みでは機能しません。
Peter Shor

回答:


10

コメントで問題をさらに改善しました。具体的には、すべてのエッジがソースからシンクtに向かって流れるDAGがあります(つまり、すべてのエッジがsからtへのパス上にあります)。最初のピースがsに接続され、2番目ピースがtに接続されている、DAGの2つのピース間の最小カットを見つけたいとします。この問題の場合、負のエッジウェイトがあっても、MIN-CUTの標準線形プログラミングアルゴリズムのバリエーションが機能します。ststst

(i,j)cijpidij=pipj

minimize (i,j)Ecijdijsubject to    dij=pipj  (i,j)E   dij0           (i,j)E   ps=1   pt=0

0pi1stdij=pipjstpi01Cww[0,1]Cwipiwpi<w


0pileq1

@George:通常のMin-Cut LPに積分解があることを示すのと同じ議論です。オンラインのどこかに、より長い(そしてより理解しやすい)説明があるはずです。
Peter Shor

OK、検索します。あなたの助けを本当にありがとう!
ジョージ
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.