Satz. Das Problem in der Post ist NP-schwer.
Mit "das Problem in der Post" meine ich, wenn ein Graph und eine ganze Zahl k gegeben sind, k Kanten zu wählen , um die Kapazitäten von zu erhöhen, um den minimalen Schnitt in dem modifizierten Graphen zu maximieren.G=(V,E)kk
Die Idee ist, von Max Cut zu reduzieren. In etwa hat ein gegebener Graph genau dann die maximale Schnittgröße s, wenn Sie die Kapazität von n - 2 Kanten erhöhen können, so dass der resultierende Graph die minimale Schnittgröße s hat . Die Idee ist, dass n - 2 Kanten gerade ausreichen, um den resultierenden Graphen zu zwingen, nur einen Schnitt mit endlicher Kapazität zu haben, und das kann jeder Schnitt sein, den Sie wählen.G=(V,E)sn−2sn−2
Diese Idee funktioniert nicht ganz, da für einen bestimmten Schnitt die durch C und V ∖ C induzierten Teilgraphen jeweils verbunden werden müssen. Sie können dies jedoch mit einem geeigneten Gadget umgehen.(C,V∖C)CV∖C
Beweis.
Definieren Sie bei einem verbundenen Graphen einen verbundenen Schnitt als Schnitt ( C , V ∖ C ), so dass die durch C und V ∖ C induzierten Teilgraphen jeweils verbunden sind. Definieren Sie Max. Verbundenen Schnitt als das Problem, einen verbundenen Schnitt (in einem bestimmten verbundenen Diagramm) zu finden, um die Anzahl der Kanten zu maximieren, die den Schnitt kreuzen.G=(V,E)( C., V.∖ C.)C.V.∖ C.
Wir zeigen, dass Max Connected Cut sich auf das Problem in der Post reduziert. Dann zeigen wir, dass sich der ungewichtete Max Cut auf Max Connected Cut reduziert.
Lemma 1. Max Connected Cut reduziert sich in Poly-Zeit auf das im Beitrag definierte Problem.
Beweis. Bei einer Max-Connected-Cut-Instanz sei k = | V | - 2 . Um das Lemma zu beweisen, beweisen wir Folgendes:G = ( V., E.)k = | V.| -2
Anspruch 1: Für jedes gibt es einen verbundenen Schnitt ( C , V ∖ C ) in G mit einer Kapazität von mindestens s , IFF ist es möglich, k Kantenkapazitäten in G auf unendlich zu erhöhen , so dass der resultierende Graph einen minimalen Schnitt hat Kapazität mindestens s .s > 0( C., V.∖ C.)GskGs
NUR WENN: Angenommen, es liegt ein angeschlossener Schnitt der Kapazität von mindestens s vor . Sei T 1 und T 2 Teilbäume, die sich über C bzw. V ∖ C erstrecken , und erhöhe dann die Kapazitäten der Kanten in T 1 und T 2 . (Beachten Sie, dass | T 1 | + | T 2 | = | C | - 1 + | V ∖ C.( C., V.∖ C.)sT.1T.2C.V.∖ C.T.1T.2 .) Der einzige im Diagramm verbleibende Schnitt mit endlicher Kapazität ist dann ( C , V ∖ C ) mit einer Kapazität von mindestens s , sodass der resultierende Graph eine minimale Schnittkapazität von mindestens s aufweist .| T.1|+|T2|=|C|−1+|V∖C|−1=|V|−2=k(C,V∖C)ss
IF: Angenommen, es ist möglich, Kantenkapazitäten in G zu erhöhen, so dass der resultierende Graph eine minimale Schnittkapazität von mindestens s hat . Betrachten Sie den Teilgraphen, der durch die k erhabenen Kanten gebildet wird. Nehmen Sie ohne Verlust der Allgemeinheit an, dass dieser Untergraph azyklisch ist. (Andernfalls "heben" Sie eine Kante aus einem Zyklus erhöhter Kanten auf und heben stattdessen eine nicht angehobene Kante an, die zwei verbundene Komponenten aus dem Teilgraphen verbindet. Dies erhöht nur den minimalen Schnitt im resultierenden Diagramm.) Durch Auswahl von k = n - 2 Der Teilgraph der erhabenen Kanten hat zwei verbundene Komponenten, beispielsweise C und V ∖ C.kGskk=n−2CV∖CDaher ist der einzige Schnitt mit endlicher Kapazität im resultierenden Diagramm . Und dieser Schnitt hat eine Kapazität von mindestens s , wie es in der ursprünglichen Grafik der Fall war.(C,V∖C)s
Dies beweist die Behauptung (und das Lemma). (QED)
Der Vollständigkeit halber zeigen wir, dass Max Connected Cut NP-vollständig ist, indem wir den ungewichteten Max Cut reduzieren.
Lemma 2. Ungewichteter Max Cut reduziert sich in Polyzeit auf Max Connected Cut .
Beweis. Definieren Sie für jede ganze Zahl den Graphen P ( N ) so , dass er aus zwei Pfaden A und B mit jeweils der Länge N mit Kanten von jedem Scheitelpunkt in A zu jedem Scheitelpunkt in B besteht . Wir überlassen es dem Leser als Übung zu überprüfen, ob der maximale Schnitt in P ( N ) ( A auf der einen Seite, B auf der anderen Seite) die Größe N 2 hat und kein anderer Schnitt eine Größe hat, die größer ist als beispielsweise N 2 - N / 100 .N≥1P(N)ABNABP(N)ABN2N2−N/100
Hier ist die Reduzierung. Konstruieren Sie für jede ungewichtete Max-Cut-Instanz einen Graphen G ' = ( V ' , E ' ) wie folgt. Sei n = | V | . Sei N = 100 ( n 2 + 2 n ) . Fügen Sie zu G den oben definierten Graphen P ( N ) hinzu (mit seinen beiden Pfaden A und B ). Von jedem ScheitelpunktG=(V,E)G′=(V′,E′)n=|V|N=100(n2+2n)GP(N)AB eine Kante zu einem Eckpunkt in hinzuzufügen A und einer anderen Kante an einer Ecke in B . Dies definiert die Reduzierung. Zum Schluss beweisen wir, dass es richtig ist:v∈VAB
Anspruch 2: Für jedes gibt es einen Schnitt ( C , V ∖ C ) in G mit einer Kapazität von mindestens s , IFF gibt es einen verbundenen Schnitt in G 'mit einer Größe von mindestens s + N 2 + n .s≥0(C,V∖C)GsG′s+N2+n
NUR WENN: Wenn ein Schnitt in G mit einer Kapazität von mindestens s vorliegt , betrachten Sie den verbundenen Schnitt ( A ∪ C , B ∪ V ∖ C ) in G ' . Dieser verbundene Schnitt in G ' schneidet mindestens s Kanten von C nach V ∖ C plus N 2 Kanten von A nach B plus n der 2(C,V∖C)Gs(A∪C,B∪V∖C)G′G′sCV∖CN2ABn Kanten von V bis A ∪ B .2nVA∪B
IF: Angenommen, es gibt einen zusammenhängenden Schnitt in einer Größe von mindestens s + N 2 + n . A und B befinden sich auf gegenüberliegenden Seiten des Schnitts. (Andernfalls beträgt die Gesamtzahl der geschnittenen Kanten höchstens N 2 - N / 100 + | E | + 2 , da der zweitgrößte Schnitt in P ( N ) höchstens N 2 - N / 100 Kanten in P ( N ) schneidet | V.G′s+N2+nABP(N)N2−N/100P(N) .)sei C bezeichnen die Vertices in V auf der Seite des Schnittes mit A . Dann gibt es N 2 Kanten im Schnitt von A nach B und n von V nach A ∪ B , also muss es mindestens s von C nach V ∖ C geben .N2−N/100+|E|+2|V|≤N2−N/100+n2+2n=N2C.V.EINN.2EINB.nV.A ∪ B.sC.V.∖ C.
Dies beweist die Behauptung und Lemma 2. (QED)
Nach Lemmas 1 und 2 ist das Problem in der Post auch NP-hart, da ungewichteter Max Cut NP-hart ist.