Hier war mein erster Versuch einer Auseinandersetzung. Es war falsch, aber ich habe es nach dem "EDIT:" behoben
Wenn Sie das Max-Cut-Problem mit negativen Kantengewichten effizient näherungsweise lösen könnten, könnten Sie das Max-Cut-Problem nicht mit positiven Kantengewichten lösen? Beginnen Sie mit einem Max-Cut-Problem, dessen optimale Lösung b ist . Setzen Sie nun eine große negative Gewichtungskante (mit Gewicht - a ) zwischen u und v . Die optimale Lösung für das neue Problem ist b - a , daher erhalten Sie mit unserem hypothetischen Approximationsalgorithmus eine Lösung mit maximalem Schnitt, deren Wert höchstens ( b - a ) / 2 schlechter als optimal ist. In der Originalgrafik ist der maximale Schnitt noch maximalb−auvb−a(b−a)/2( b - a ) / 2 schlechter als optimal. Wenn Sie a in der Nähe von b wählen, verletzt dies das Unannäherungsergebnis, dass Sie, wenn P ≠ NP,den Maximalschnittnicht besser als einen 16 / 17- Faktorapproximieren können. (b−a)/2ab≠16/17
BEARBEITEN:
Der obige Algorithmus funktioniert nicht, da Sie nicht garantieren können, dass sich u und v auf entgegengesetzten Seiten des Schnitts im neuen Diagramm befinden, selbst wenn sie ursprünglich waren. Ich kann dies jedoch wie folgt beheben.uv
Nehmen wir an, wir haben einen Approximationsalgorithmus, der einen Schnitt innerhalb eines Faktors von 2 von OPT ergibt, solange die Summe aller Kantengewichte positiv ist.
Beginnen Sie wie oben mit einem Diagramm G mit allen nicht negativen Gewichten an den Kanten. Wir werden eine modifizierte Graph finden G * mit einigen negativen Gewichten , so dass , wenn wir den max Schnitt annähern können G * innerhalb eines Faktors von 2, wir den max Schnitt annähern können GGG∗G∗G sehr gut.
Wählen Sie zwei Scheitelpunkte u und v und hoffen Sie, dass sie sich auf den gegenüberliegenden Seiten des maximalen Schnitts befinden. (Sie können dies für alle möglichen v wiederholen, um sicherzustellen, dass ein Versuch funktioniert.) Setzen Sie nun ein großes negatives Gewicht - d auf alle Kanten ( u , x ) und ( v , x ) für x ≠ u , v und ein großes positives Gewicht a auf Kante ( u , v ) . Es sei angenommen , dass der optimale Schnitt Gewicht aufweist O P T .uvv−d(u,x)(v,x)x≠u,va(u,v)OPT
Ein Schnitt mit dem Wert c in G , bei dem sich die Scheitelpunkte u und v auf derselben Seite des Schnitts befinden, hat jetzt den Wert c - 2 d m, wobei m die Anzahl der Scheitelpunkte auf der anderen Seite des Schnitts ist. Ein Schnitt mit ( u , v ) auf gegenüberliegenden Seiten mit dem ursprünglichen Wert c hat jetzt den Wert c + a - ( n - 2 ) d . Wenn wir also d groß genug wählen , können wir alle Schnitte mit u und erzwingencGuvc−2dmm(u,v)cc+a−(n−2)ddu vvauf der gleichen Seite negativen Wert zu haben, so dass , wenn es ein Schnitt mit positivem Wert ist, dann ist die optimale cut in G * haben u und v auf gegenüberliegenden Seiten. Beachten Sie, dass wir jedem Schnitt mit u und v ein festes Gewicht ( a - ( n - 2 ) d ) hinzufügenG∗uv(a−(n−2)d)uv auf gegenüberliegenden Seiten .
Sei f = ( a - ( n - 2 ) d ) . Wählen Sie a so, dass f ≈ - 0.98 O P T (wir werden dies später begründen). Ein Schnitt mit dem Gewicht c in G mit u und v auf gegenüberliegenden Seiten wird nun ein Schnitt mit dem Gewicht c - 0,98 O P T . Dies bedeutet, dass der optimale Schnitt in G ∗ ein Gewicht von 0,02 O P hat . Unser neuer Algorithmus findet einen Einschnittf=(a−(n−2)d)af≈−0.98OPTcGuvc−0.98OPTG∗ T hat0.02OPTG * mit Gewicht mindestens 0,01 O P T . Dies führt zu einem Schnitt in der Originalkurve G mit einem Gewicht von mindestens 0,99 O P T (da alle Schnitte in G ∗ mit positivem Gewicht u und v trennenG∗0.01OPTG0.99OPTG∗uv ), der besser ist als das Ergebnis der Unangemessenheit.
Es ist kein Problem, d groß genug zu wählen , um einen Schnitt mit u und v auf derselben Seite negativ zu machen, da wir d so groß wählen können, wie wir wollen. Aber wie haben wir a so gewählt, dass f ≈ - .99 O P T, als wir O P T nicht kannten ? Wir können O P T sehr gut approximieren ... wenn T die Summe der Kantengewichte in G ist , wissen wir 1duvdaf≈−.99OPTOPTOPTTG2 T≤OPT≤T. So haben wir einen ziemlich engen Bereich von Werten fürf, und wir können iterierenfzwischenEinnahme aller Werte-0,49Tund-.99Tin Intervallen von0,005T. Für eines dieser Intervalle istf≈-0,98OPTgarantiert, und daher wird garantiert, dass eine dieser Iterationen einen guten Schnitt zurückgibt.12T≤OPT≤Tff−.49T−.99T0.005Tf≈−0.98OPT
Schließlich müssen wir überprüfen, ob das neue Diagramm Kantengewichte aufweist, deren Summe positiv ist. Wir begannen mit einem Diagramm, dessen Kantengewichte die Summe T hatten , und addierten f zur Summe der Kantengewichte. Da - 0,99 T ≤ f ≤ - 0,49 T , sind wir in Ordnung Tf−.99T≤f≤−.49T