Logical Min-Cut NP-Completeですか?


24

Logical Min Cut(LMC)問題定義

が重みなし有向グラフであり、とが 2つの頂点であり、がから到達可能であると仮定します。LMC問題は、次の制約に従ってエッジを削除することで、から到達不能にする方法を研究しています。s t V t s t s GG=(V,E)stVtstsG

  1. 削除されるエッジの数は最小限でなければなりません。
  2. 頂点のすべての出口エッジを削除することはできませんG(つまり、外向きのエッジを持つ頂点では、外向きのエッジをすべて削除することはできません)。

この2番目の制約は、論理的削除と呼ばれます。そこで、tsから到達できないようなGのエッジの論理的で最小限の削除を探します。Gts

ソリューションの試み

LMC問題の論理的除去制約を無視すると、重みなし有向グラフの最小カット問題にGなるため、多項式で解くことができます(最大フロー最小カット定理)。

LMC問題の最小除去制約を無視すると、再びDAGで多項式的に解くことができます。ksから到達可能で、tkから到達できないような頂点見つけます。次に、sからkへの任意のパスであるパスpを考えます。ここで、パスpをサブグラフとして考えてください。答えはサブグラフすべての出口エッジになります。頂点が多項式時間で DFSによって見つけられることは明らかです。残念ながら、このアルゴリズムは一般的に機能しませんkkstkpskpp k GGpkG 任意の有向グラフの場合。

ダイナミックプログラミング手法でLMC問題を解決しようとしましたが、問題を解決するために必要な状態の数が指数関数的になりました。さらに、3-SAT、max2Sat、max-cut、cliqueなどのいくつかのNP-Completeの問題を、なんとか削減できなかったLMC問題に還元しようとしました。

個人的には、がバイナリDAG(つまり、2次を超えるノードを持つノードがないDAG)であっても、LMC問題はNP完全であると思います。G

ご質問

  1. LMCの問題は、任意の有向グラフでNP-完全ですか?(主な質問)G
  2. LMCの問題は任意のDAGでNP-Complete ですか?G
  3. LMCの問題は、任意のバイナリDAGでNP-Complete ですか?G

グラフが無向の場合、問題はと確信しています。それはあなたの質問に対する十分な答えでしょうか?P
アレックス10ブリンク

@SaeedAmiri:t 最小カットを見つけます。頂点を切断する場合、この頂点はsまたはtでなければなりません。両方の場合、そのような最小カットはありません。仮定tが切断頂点となるT V エッジ。このエッジを削除し、svで再帰的に最小カットを実行します。ststt(t,v)sv
アレックス10ブリンク

簡単な観察により、次の問題がNP完全である場合、LMC問題もNP完全であると結論付けることができます(逆が真であるとは限りません)。仮定する有向グラフです。我々は、上の最小カット持つことができる方法Gを(区画VST STからエッジの数STが最小である)と、頂点が存在しないVに属するとV STのすべての出口端のヘッドvが属しT(出口縁からであるSG=(V,E)GVSTSTvVvTS)。T
-amirv


2
Amirv、制約(2)だけの問題について、あなたが提案するアルゴリズムは、私が理解しているように、まったく正しくありません。すべてのノードvに対して、sからvへのパスとvからtへのパスが存在する場合でも、解決策がある場合があります。V = { s t a }E = { s t s a a s }のグラフを考えてください。G=(V,E)V={s,t,a}E={stsaas}
ニールヤング

回答:


1

G =(V、E)を重み付きDAG、sとtをGの2つの頂点、LSTMC =(G、s、t)を論理st min-cut問題のインスタンスとします。LSTMCの問題がNPであることは明らかです。今、LSTMCがNPハードであることを示す必要があります。ヒットセットの問題をLSTMCの問題に減らします。S = {s1、s2、...、sn}を与えられたセットとし、{a1、a2、...、am}をすべてのセットの和集合とします。番号k1が与えられると、ヒットセット問題の決定問題は、Sのすべての要素(すべてのセットsi st i = 1..n)が少なくとも1つのAの要素を含むようなk1要素を持つセットAが存在するかどうかを示します。ヒットセットの問題をHS(S)として示します。アルゴリズムHS2LSTMCにより、セットSから重み付きDAG G 'を構築します。このアルゴリズムは、sをDAG G 'のソース頂点と見なします。HS st i = 1..nの各セットsiに対して、アルゴリズムは対応する頂点を考慮します。si、およびsから各siに無限の重みを持つエッジを追加します。次に、入力セットst j = 1..mの和集合の各要素ajについて、アルゴリズムは対応する頂点ajを考慮し、各siからの重みがゼロのエッジをHSの任意のaj st aj∈siに追加します。最後に、アルゴリズムはtとkと呼ばれる2つの最終頂点を考慮し、各aj st j = 1..mから2つのエッジを両方の最終頂点に追加します。G 'は多項式時間で作成できることは明らかです。

ここで、削除されたエッジの重みの合計が次のようにLSTMC =(G '、s、t)に論理的に削除されたエッジがある場合にのみ、HS(S)にk1要素の回答があることを示す必要がありますk1。

簡単にするために、例を提供して、証明のこの部分を実行します。

次の図では、s1 = {1、2、3}、s2 = {1、4}、およびs3 = {2、5}であるようなS = {s1、s2、s3}であるとします。図2は、ヒットセット問題HS(S)に対応するLSTMC問題の重み付きDAG G 'を示しています。この例では、セットA、つまりSのすべての要素の結合は、A = {1、2、3、4、5}です。| S |があります = 3および| A | =5。この例は、重み付きDAGの論理st min-cut問題の特定のインスタンスを使用して、ヒットセット問題の任意のインスタンスを解決する方法を示しています。LSTMC =(G '、s、t)に対する回答を計算し、E1(1≤j≤m)と呼ばれる(aj、t)の形式の回答の削除されたエッジを考慮すると、 E1はHS(S)に対する答えです。LSTMC問題の答えは、エッジセットE1 = {(s1、2)、(s1、3)、(s2、4)、(s3、5)、(1、t)、(2、t)}です。したがって、サブセットE2 = {(1、t)、(2、

削減


0

これは、任意のバイナリDAG でのLMCの多項式時間アルゴリズムです(試行)。G

これは質問#3に答えます。(事前に面倒な書き込みをして申し訳ありません。:))

まず、から到達できない頂点を「永久に」捨てます。これらはs - tパス一部ではないため、これらについては気にしません。sst

次に、最初は空のサブDAG およびBを定義します。次いで、すべての頂点のためのV G - { S Tを}ABvG{st}

からtへのパスがあるかどうかをテストします。その場合、vAに追加します。そうでない場合は、vBに追加します。vtvAvB

縁ましょ及びBは、から任意のエッジを無視し、今の各セット内の頂点によって誘導されるもの(BE SAを、からAT、およびからAB ;またからのエッジがない注意Bは、Tによって建設)。ABsAAtABBt

次に、の推移閉包を計算します。つまり、サブDAG Aの「葉」である頂点{ a }のセットを見つけることに興味があります。A{a}A

そのよう修正します。以下からの有向エッジが存在しなければならないことを確認して*トン。構造によって、(i)が存在し、これは、S - Tを通る経路*、(II)からの経路が存在しない*を介してB、及びので(III)のAは、それ自体DAGであり、*は葉でありますAから経路がない*の別の頂点を介してAtがaatstaaBAaAaAt

現在、各頂点からBのある頂点への有向エッジも存在する必要があります。または、{ a }の一部はtへの単一エッジを持っています。いずれの場合でも、a tエッジを削除できます。{a}B{a}tat

もし= 1、我々はユニークからエッジを削除しなければならないのいずれかでA *T、または頂点は、先に存在するS - Tを含むパス*に二つの経路有するTにわたり1 - *と直接一つ。後者が成立する可能性がある場合tを記録し「欲張りに逆行」します(詳細は以下を参照)。|{a}|atstataat

もし> 1の場合、{ a } tからすべてのエッジを削除するか、いくつかのエッジk < | { a } | { a }を介してsからtすべてのパスを切断するAの推移的閉包の初期。|{a}|{a}tk<|{a}|As{a}t

これは、グラフがバイナリDAGであるという事実を使用する場所です。G

前任者のセットを考えます。これらの頂点のそれぞれには最大2つの次数があるため、正確に3つのケースがあります。{a}

ケース1。前任者はある頂点へのアウトエッジとBのある頂点へのアウトエッジを持っています。{a}B

この場合には、我々が頂点に先行からエッジを削除するかは問題ではない又はにおける頂点からエッジ{ * }T。したがって、この頂点を「スキップ」できます(そして、後方パスが{ a }の別の頂点のパスとマージするかどうかを確認します)。{a}{a}t{a}

ケース2 Aの前身で頂点に外端を有し、との別の前身{ * }{a}{a}

この場合、からtへの両方のエッジを削除するか、sから両方のパスを切断する先行へのパス内の単一の以前のエッジを削除する必要があります。{a}ts

ケース3。前任者は 2つの頂点へのアウトエッジを持っています。{a}

これは、ケース2と同じであるこの問題ではない、我々は、この先行の縁部の一方からの対応する他のエッジを削除するかどうかTからエッジ、または両方{ * }Tを。私達はちょうど私たちからのパスを切断することができるかどうか知りたいにこの前任者を通じてトン、以前からのパスでは、単一のエッジと前身に。{a}t{a}tsts

全体として、の推移閉包の前任者を逆方向にスキャンすると、「これまでで最高の」選択を貪欲に追跡できます。つまり、すべてのステップで、いくつかのエッジを削除するという明確な選択肢がありますが、より良いオプションが利用可能かどうかを確認したいのです。より良いオプションが見つかると、前のオプションを「忘れる」ことができます。したがって、前任者の各層での貪欲な選択で十分です(最後まで選択をコミットするまで待機する限り)。A

したがって、いくつかの基本的なメモ化では、このプロセスの時間と空間の複雑さはせいぜいように見えます。これにより、「安い選択」を見つけたときにローカル/貪欲に特定できる一方で、以前に記録されたエッジを削除することが先験的に不明であるという事実は除外されます。したがって、エッジをチェックする順序を記録します。より良いオプションを見つけたら、以前に記録したどのエッジを削除するかを見つけるために、この時点まで検索を繰り返します。このステップの合計時間の複雑さはO | E | 2およびスペースの複雑さO | E |)です。O(|E|)O(|E|2)O(|E|)

全体として、時間の複雑さは、初期化では、推移的閉包ではO | V | 3、検索ではO | E | 2です。合計時間はO | V | 2 + | E | | V | + | V | 3O(|V|(|V|+|E|))O(|V|3)O(|E|2)O(|V|2+|E||V|+|V|3+|E|2)=O(|V|3+|E|2)

プロセスを完了すると、グラフ内のすべての頂点の少なくとも1つのアウトエッジを保持しながら、tからを切断するために必要なエッジの最小セットを取得します(または、途中で解が不可能であることがわかり、中止します)。st


私は次のステートメントを取得しません:「[arc] 各頂点からBのある頂点まで、または{ a }のいくつかはtへの単一のエッジを持っています。どちらの場合でも、任意のa t アークを削除します。」に1つのout-arcしかない場合定義により削除することはできません!ちなみに、{ a }表記は何ですか?{a}B{a}tata{a}
PAL GD

ああ-2番目の条件に関するコメントを読み間違えました。ただし、これはアルゴリズムの不可欠な部分ではありません。単一のアウトアークを削除できない場合は、削除しません。それをスキップして、逆推移的クロージャーの順序に進みます。2つの円弧または持つ頂点に到達します(到達する場合は、「解なし」を出力します)。{ * }表記Iは電流で考えているからであるコレクション最大の頂点の(推移閉包が半順序であるため、一般的に言えば、1つの以上そのような頂点が、時があります)。また、単に使用の任意の要素を意味するものに見えたA意図されていません、。s{a}aA
ダニエルアポン

2
私はついに、この問題がNP完全であることを証明することができました。
-amirv

1
@amirvああ、してください行う答えの形で証明の概要を共有!
ラファエル

1
問題は、基礎となる有向グラフが重みなしバイナリDAGであっても、NP完全です。
amirv
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.