Ein vielschichtiges Problem

12

Ich suche einen Namen oder Hinweise auf dieses Problem.

Bei einem gewichteten Graphen eine Aufteilung der Eckpunkte in bis zu n = | gefunden V | setzt S 1 , ... , S n , um den Wert der Schnittkanten zu maximieren: c ( S 1 , ... , S n ) = i j ( ( u , v ) E : u iG=(V,E,w)n=|V|S1,,Sn beachtedaß einige der SätzeSikann leer sein. Das Problem ist also im Wesentlichen max k-cut, außer dassknicht Teil der Eingabe ist: Der Algorithmus kann jedes beliebigekauswählen, um den Wert der Schnittkanten zu maximieren. Das Problem ist offensichtlich trivial, wenn die Kantengewichte nicht negativ sind: Platzieren Sie einfach jeden Scheitelpunkt für sich und schneiden Sie alle Kanten aus. Um die Sache interessant zu machen, sind negative Gewichtsränder erlaubt.

c(S1,,Sn)=ij((u,v)E:uSi,vSjw(u,v))
Sikk

Ist das ein untersuchtes Problem? Hinweise auf algorithmische oder Härteergebnisse sind erwünscht!

Aaron Roth
quelle
2
+11G±1

Antworten:

11

Das Problem ist eine Variante von Correlation Clustering (CC), Bansal, N., Blum, A. und Chawla, S. (2004). "Korrelationsclustering". Machine Learning Journal (Sonderausgabe zu theoretischen Fortschritten bei der Datenclusterung, S. 86–113, doi: 10.1023 / B: MACH.0000033116.57574.95.

G(v,w)a(v,w)b(v,w)PcP(v,w)a(v,w)vwPb(v,w)PVv,wc(v,w)

a(v,w)=0b(v,w)O(logn)

Die beschriebenen PTASs basieren auf der glatten Polynom-Programmiertechnik: Im allgemeinsten Fall glaube ich nicht, dass Ihr Problem die Anforderungen der Technik erfüllen würde.

Gianluca Della Vedova
quelle
18

Ich kenne keine Referenzen, aber ich kann zeigen, dass es NP-vollständig ist, indem ich die Grafikfarbe reduziere.

Ausgehend von einem Graphen G und einer Anzahl k von Farben, mit denen G gefärbt werden soll, erstellen Sie einen neuen Graphen G ', der aus G zusammen mit k neuen Scheitelpunkten besteht, sodass jeder neue Scheitelpunkt mit jedem Scheitelpunkt in G verbunden ist. Weisen Sie Gewicht + kn zu jede Kante von G, weight + kn zu jeder Kante, die zwei der k neuen Eckpunkte verbindet, und weight -1 zu jeder Kante, die die k neuen Eckpunkte mit G verbindet.

Wenn dann G k-farbig sein kann, ergibt die Färbung (zusammen mit einer Partition, die jeden der neuen Scheitelpunkte einer der Farbklassen zuordnet) das Gesamtgewicht kn (m + k (k-1) / 2) - (k -1) n.

In der anderen Richtung müssen bei einer Partition, die dieses Gesamtgewicht erreicht, alle Kanten von G und alle Kanten zwischen Paaren neuer Scheitelpunkte abgeschnitten werden. Das Schneiden aller Kanten von G definiert eine Färbung von G, und das Schneiden von Kanten zwischen Paaren neuer Scheitelpunkte impliziert, dass jeder Scheitelpunkt von G höchstens einem der k neuen Scheitelpunkte benachbart sein kann. Um den optimalen - (k - 1) n - Term im Gewicht zu erhalten, muss daher jeder Scheitelpunkt von G genau einem der neuen Scheitelpunkte benachbart sein, und daher kann es in der durch definierten Färbung nur k Farbklassen geben Trennwand.

Das heißt, Partitionen mit der angegebenen Gewichtsgrenze stimmen 1-1 mit den k-Farbtönen von G überein. Dies definiert also eine Reduzierung von Farbtönen auf Ihr Partitionsproblem.

David Eppstein
quelle
11

Lassen Sie mich Davids netten NP-Vollständigkeitsnachweis durch einen Verweis auf den von Jukka in einem Kommentar zur Frage gestellten Sonderfall ergänzen. Wenn das Diagramm das vollständige Diagramm ist und die Kantengewichte auf ± 1 beschränkt sind, entspricht das Problem dem NP-vollständigen Problem, das als Cluster-Bearbeitung bezeichnet wird.

Cluster-Bearbeitung ist das folgende Problem, das von Shamir, Sharan und Tsur [SST04] eingeführt wurde. Hier ist ein Cluster-Graph ein Graph, der eine Vereinigung von vertex-disjunkten Cliquen darstellt, und ein Edit ist das Hinzufügen oder Entfernen einer Kante.

Cluster Editing
Instance : Ein Graph G = ( V , E ) und eine ganze Zahl k ∈ℕ.
Frage : Ist es möglich, G um höchstens k in einen Clustergraphen umzuwandeln ? Bearbeitungen umzuwandeln?

Die Clusterbearbeitung ist NP-vollständig [SST04].

Um zu sehen, dass die Clusterbearbeitung dem oben genannten Sonderfall des aktuellen Problems entspricht, sei G = ( V , E ) ein Graph. Sei n = | V | und betrachte G als einen Untergraphen des vollständigen Graphen K n . Geben Sie in K n den Kanten in G das Gewicht -1 und den Kanten, die nicht in G sind, das Gewicht +1 . Dann kann G durch höchstens k Bearbeitungen genau dann in einen Clustergraphen umgewandelt werden, wenn eine Partition ( S 1 ,…, S n ) existiert, so dass c ( S 1 ,…, S n)(n2)

[SST04] Ron Shamir, Roded Sharan und Dekel Tsur. Probleme mit der Änderung von Clustergraphen. Discrete Applied Mathematics , 144 (1–2): 173–182, November 2004. http://dx.doi.org/10.1016/j.dam.2004.01.007

Tsuyoshi Ito
quelle