Sei ein Graph mit der Gewichtsfunktion . Das Max-Cut-Problem besteht darin, zu finden:
If Die Gewichtsfunktion ist nicht negativ (dhG = ( V , E , W ) w : E → R arg max S ⊂ V Σ ( u , v ) ∈ E : u ∈ S , v ∉ S w ( u , v ) , w ( e ) ≥ 0
- Wähle eine zufällige Untergruppe von Vertices S
S . - Wählen Sie eine Reihenfolge für die Eckpunkte und platzieren Sie gierig jeden Eckpunkt v
v in SS oder ˉSS¯ , um die bisher ausgeschnittenen Kanten zu maximieren - Lokale Verbesserungen vornehmen : Wenn es in S einen Scheitelpunkt S
S gibt, der nach \ bar {S} verschoben werden kann ˉSS¯ , um den Schnitt zu erhöhen (oder umgekehrt), führen Sie den Schritt aus.
Die Standardanalyse all dieser Algorithmen zeigt tatsächlich, dass der resultierende Schnitt mindestens so groß ist wie 12∑e∈Ew(e)
Zum Beispiel kann Algorithmus 1 (Auswahl einer zufälligen Untergruppe von Eckpunkten) bei Diagrammen mit negativer Kantengewichtung eindeutig versagen.
Meine Frage ist:
Gibt es einen einfachen kombinatorischen Algorithmus, der eine O (1) -Näherung an das Max-Cut-Problem in Graphen mit negativen Kantengewichten liefert?
Um das möglicherweise klebrige Problem der Max-Cut-Annahme mit dem Wert 0 zu vermeiden 0
Antworten:
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 −a u v b−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)/2 a b ≠ 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.u v
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 GG G∗ 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 .u v v −d (u,x) (v,x) x≠u,v a (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 erzwingenc G u v c−2dm m (u,v) c c+a−(n−2)d d u vv auf 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∗ u v (a−(n−2)d) u v 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) a f≈−0.98OPT c G u v c−0.98OPT G∗ T hat0.02OPT G * 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.01OPT G 0.99OPT G∗ u v ), 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 1d u v d a f≈−.99OPT OPT OPT T G 2 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≤T f f −.49T −.99T 0.005T f≈−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 OrdnungT f −.99T≤f≤−.49T
quelle
In the article "Approximate Max Cut" by S. Har-Peled, the last line of the paper mentioned that the real weighted version of max-cut has been discussed in
It is indeed an SDP algorithm, and it seems to me that the approximation ratio is 0.56, though I'm not sure if the reduction discussed in the paper is ratio preserving. Maybe a deeper look into the paper will help!
quelle
Your problem has a logarithmic approximation by reduction to a quadratic programming problem.
The MaxQP problem is the problem of approximating the quadratic form xTMxxTMx for a n×nn×n matrix MM , where xx ranges over {±1}n{±1}n . MaxCut can be written in this form by setting M=12n(∑we)I−12AM=12n(∑we)I−12A where II is the identity matrix and AA is the adjacency matrix. The MaxQP algorithm of Charikar and Wirth gives an O(logn)O(logn) approximation for MaxQP as long as MM has a non-negative diagonal. So as long as ∑we≥0∑we≥0 , MaxCut with negative weights has a logarithmic approximation.
quelle