Kap. 2: Maximum Cut in planaren Graphen Professor Dr. Petra Mutzel Lehrstuhl für Algorithm Engineering, LS11 5./6. VO 13./20. November 2006 Überblick • 2.1 Einführung – Schnitte in Graphen – Planare Graphen – Euler-Graphen • 2.2 Transformation in T-Join Problem • 2.3 Algorithmus für das T-Join Problem kleinsten Gewichts 2 2.1 Einführung • Sei G=(V,E) ungerichtet: • Eine Kantenmenge F⊆E heißt Schnitt (engl.: Cut ), wenn es eine Knotenmenge W⊆V gibt, so dass F := δ(W) := { uv∈E: u∈W, v∈V\W } gilt. Cut δ(W): W={2,3} 1 W 3 2 5 4 6 Achtung: Cut ≠ (s,t)-Cut (trennt geg. s von t) 3 Maximum Cut Problem • Gegeben: Graph G=(V,E), ungerichtet, mit Kantengewichten c∈RE. • Gesucht: Schnitt F = δ(W) mit maximalem Gewicht c(F):= ∑ c(e) e∈F Cut δ(W): W={2,3} 1 W 3 2 5 4 6 4 Komplexität Das Maximum Cut Problem ist NP-schwierig, sogar wenn alle Gewichte c(e)=1 sind. In polynomieller Zeit lösbar, wenn • alle Gewichte negativ sind (bis auf höchstens ein c(e)), dann: Minimum Cut Problem (lösbar z.B. mit Hilfe von Maximalen Flüssen in Netzwerken. • G ein planarer Graph ist Reduktion zu T-Join Problem (Hadlock 1975) → jetzt! 5 Planare Graphen Ein Rätsel A B C G W E Rätselbuch von Dudeney, 1911 6 Erster Versuch A B C G W E 7 Neuer Versuch A B C G W E 8 Nach Umordnung B C E G A Das geht nicht! W 9 Def. planarer Graph • G=(V,E) ist planar genau dann, wenn eine injektive Abbildung der Knoten und Kanten von G auf die Ebene existiert, die folgende Bedingungen erfüllt: – Jedem Knoten wird ein Punkt zugeordnet und – jede Kante vw wird auf eine stetige Kurve abgebildet, die die Bilder von v und w verbindet. – Dabei dürfen die Bilder verschiedener Kanten nur die Bilder ihrer gemeinsamen Endpunkte gemeinsam haben. • Das Bild einer solchen Abbildung heißt planare Zeichnung. • G ist also planar, wenn er eine planare Zeichnung besitzt (d.h. ohne Kantenkreuzungen in die Ebene gezeichnet werden kann). 10 Planare Graphen • G heißt eben, wenn G planar in die Ebene eingebettet ist. • Ein ebener Graph unterteilt die Ebene in verschiedene zusammenhängende Gebiete (Flächen, engl.: faces). Eine davon ist unbegrenzt, sie heißt Außenfläche. 1 3 2 1 5 4 G ist planar 6 3 2 5 4 6 und jetzt auch eben 11 Kombinatorische Planare Einbettungen a C e A b B c d ≅ a b Geordnete Liste (Uhrzeiger) der Liste (Gegenuhrzeiger) der Randknoten jeder Region: Nachbarn für jeden Knoten: a: b: c: d: e: c ≅ ≅ a e A: a, b, e B: b, a, c, d C: c, a, e, b, d c, e, b e, d, a a, d b, c b, a Spiegelbild e e b a d d c b d c Ein planarer 3-zusammenhängender Graph hat genau 2 kombinatorische Einbettungen 12 Kombinatorische Einbettungen Ein (planarer) Graph kann exponentiell viele verschiedene Einbettungen besitzen a c d e ..... .. Graph G mit n Knoten und (n-2)! kombinatorischen Einbettungen b Viele Optimierungsprobleme über der Menge aller kombinatorischen Einbettungen sind NP-schwierig 13 Theorem von Kuratowski Ein Graph ist genau dann planar wenn er keine Unterteilung des K3,3 und K5 enthält. K3,3 K5 Planaritätstest und Einbettungsberechnung: lineare Zeit (später in VO) 14 Planare Graphen Lemma: Sei G ein planarer Graph. Dann gilt: |E| ≤ 3|V|-6 für |V|≥3. Beweis: aus Eulerscher Polyederformel: |E|+2 = |V|+|F| 15 Euler-Graphen Def.: Ein Graph heißt Euler-Graph (Eulersch), wenn ein geschlossener Kantenzug existiert, der alle Knoten besucht und dabei jede Kante genau einmal durchläuft. Lemma: Sei G=(V,E) zusammenhängend. Dann sind die folgenden Aussagen äquivalent: • G ist Eulersch • Jeder Knoten in G hat geraden Knotengrad • Die Kantenmenge von G kann in kantendisjunkte Kreise zerlegt werden. Beweis: Übung 16 Duale Graphen Def.: Geg. ein ebener Graph G=(V,E) mit Flächen R. Dann ist der geometrisch duale Graph G*=(V*,E*) def. als: • V*:= R • Kanten E* sind def. wie folgt: für alle f,g∈R und e∈E, so dass e die Flächen f und g begrenzt, entsteht eine Kante e*=fg. Beobachtungen: • Für jede Kante in E existiert eine eindeutige Kante in E* und vice versa. • Es gilt: (G*)*=G 17 Beispiel: Dualer Graph 18 Duale Graphen • Ein Elementarschnitt F in G ist ein Schnitt bei dem für jedes F´⊂F gilt: F´ ist kein Schnitt. minimal bzgl. Inklusion • Jeder (einfache) Kreis in G entspricht einem Elementarschnitt in G* und umgekehrt. Bw.: „⇒“: Sei C ein Kreis in G. Betrachte G*\C*: zerfällt in zwei Teile ⇒ C* ist Schnitt in G*. „⇐“: klar 5 G G* 1 C 3 2 4 7 6 19 2.2 Max Cut in planaren Graphen • Eine Menge F⊆E ist ein Schnitt in G genau dann wenn (V*,F*) ein Eulerscher Untergraph in G* ist. • Bw.: „⇒“: Sei F=δ(W) Schnitt in G. • F ist Vereinigung von Elementarschnitten δ(W1)∪δ(W2)∪…∪δ(Wk). • Jeder Elementarschnitt ist einfacher Kreis in G* • Schnitt F* ≙ C1∪ C2∪…∪Ck, sogar kantendisjunkte Vereinigung (weil jede Kante im Schnitt nur 1 Mal vorkommt)→Eulersch • • • • „⇐“: Sei F* Eulerscher Untergraph F*= C1⊍C2 ⊍ …⊍Ck (einfache Kreise) Alle Ci entsprechen Elementarschnitten in G: δ(Wi) F=δ(W1)∪ δ(W2)∪…∪δ(Wk). 20 Max Cut in planaren Graphen • Idee: Bestimme einen maximalen Eulerschen Untergraphen im dualen Graphen G* von G. • Problem: Knoten mit ungeradem Knotengrad: nicht Eulersch. Def. T-Join: • Knoten heißt gerade, wenn er geraden Knotengrad hat, sonst ungerade. • T: Menge der ungeraden Knoten in G • Kantenmenge J⊆E heißt T-Verbindung (T-Join), falls in (V,J) alle Knoten aus T einen ungeraden Grad und alle Knoten aus V \ T einen geraden Grad haben. 21 T-Join und Euler-Graphen Lemma: J⊆E ist T-Join in G ⇔ (W,F) mit F:=E\J ist Eulerscher Untergraph von G. • Bw.: „⇒“: Sei J ein T-Join. • Menge der ungeraden Knoten in G = Menge der ungeraden Knoten in (V,J) • F:=E\J enthält keine ungeraden Knoten. • „⇐“: Sei (W,F) Eulerscher Untergraph von G. Sei J:=E\F. • Menge der ungeraden Knoten in E und J ist die gleiche • In (V, E\F) behalten also alle Knoten aus T ungeraden Grad und alle Knoten aus V\T geraden Grad. • J:=E\F ist folglich ein T-Join. 22 T-Join und Eulersche Graphen Lemma: Sei G=(V,E) ein Graph mit Gewichten ce für alle e∈E, F,J⊆E und T:= {Menge der ungeraden Knoten in G}. Dann ist das Problem max c(F) mit F Eulersch äquivalent zu min c(J) mit J ist T-Join. 23 Das minimale T-Join Problem Gegeben: Graph G=(V,E) mit Gewichten ce∈R für alle e∈E und eine Knotenmenge T⊆V, |T| gerade. Gesucht ist ein T-Join kleinsten Gewichts. Definitionen: • E– := {e∈E: ce<0} • N := {v∈V: v ungerade in (V,E–)} • T´:= T ∆ N, wobei T Menge der ungeraden Knoten • T´ sind also Knoten, die mit ungerader Anzahl von Kanten mit nichtnegativem Gewicht inzident sind. 24 Das minimale T-Join Problem Lemma: Es gilt: J ist T-Join ⇔ J ∆ E– ist T´-Join Bw.: „⇒“: z.z.: Sei v∈T´= T ∆ N , z.z.: v ist ungerade in J ∆ E– Fall 1: v∈T und v∉N: v ist in (V,J) ungerade aber in (V,E–) gerade ⇒ v ist in (V,J ∆ E–) ungerade. Fall 2: v∉T und v∈N: v ist in (V,J) gerade aber in (V,E–) ungerade ⇒ v ist in (V,J ∆ E–) ungerade. Sei v∈ V \ T´ , z.z.: v ist gerade in J ∆ E– : Fall 1: v∈T und v∈N: v ist in (V,J) und in (V,E–) ungerade ⇒ v ist in (V,J ∆ E–) gerade. Fall 2: v∉T und v∉N: v ist in (V,J) und in (V,E–) gerade ⇒ v ist in (V,J ∆ E–) gerade. „⇐“: genauso: 4 Fälle 25 Das minimale T-Join Problem Lemma: Sei G=(V,E), J⊆E, J´:=J∆E–, T und T´:= T ∆ N. Das Problem min ∑ c(e) mit J ist T-Join e∈J ist äquivalent zu min ∑ |c(e)| mit J´ ist T´-Join e∈J´ Bw.: Für alle e mit c(e)≥0 gilt: e∈J ⇔ e ∈ J ∆ E– • Für alle e mit c(e)<0 gilt: e∈J ⇔ e ∉ J ∆ E– • c(J) = c(J\ E–) + c(J∩ E–) = • = c(J\ E–) - c(E–\J) + c(E–\J) + c(J∩ E–) = • = |c| (J ∆ E–) + c(E–), c(E–) ist konstant. 26 2.3 Lösung des minimalen T-Join Problems Gegeben: Graph G=(V,E) mit Gewichten de≥0 für alle e∈E und eine Knotenmenge T´⊆V, |T´| gerade. Gesucht ist ein T´-Join kleinsten Gewichts. Spezialfälle: • Falls |T´|=2, dann: kürzester (u,v)-Weg (T={u,v}). • Falls alle Knoten v∈V ungerade sind, und |V| ungerade, dann: existiert keine Lösung. • Falls alle Knoten v∈V ungerade sind, und |V| gerade, dann: minimales perfektes Matching 27 Algorithmus zur Lösung des minimalen T-Join Problems • Für alle Knotenpaare (u,v)∈T´: berechne kürzesten (u,v)-Weg bzgl. Gewichte d → Länge sei wuv. • Sei (T´, ET´) der vollständige Graph auf der Knotenmenge T´. Jede Kante (u,v)∈ET´ sei mit dem Gewicht wuv belegt. Bestimme in (T´,ET´) ein minimales perfektes Matching M. • Seien Puv die in (1) bestimmten Wege für uv∈M. Setze J´:= ∆ Puv. uv∈M 28 Satz: Der Algorithmus berechnet einen T´-Join kleinsten Gewichts. Bw.: Das Ergebnis ist T´-Join: klar. z.z.: optimal • Sei d(J´) := ∑ de . Sei J1 eine weitere T´-Verbindung. e∈J´ • Wir zeigen: d(J1)≥d(J´). Enthält J1 einen Kreis C, so ist J2:=J1∆C auch T´-Join mit d(J2)≤d(J1). Wiederhole, bis T´-Join Tk, der keinen Kreis enthält und d(Jk)≤d(J1). • Es ist leicht zu sehen, dass Jk eine Vereinigung von (|T´| / 2) (ui,vi)-Wegen Pi mit ui,vi∈T´ ist. Die Länge von Pi ist nicht kleiner als wuivi. • Summe der Weglängen ist ≥ w(M´) mit M´={u1v1,…,umvm} in (T´,ET´). 29 • Aus d(J1)≥d(Jk)≥w(M´) ≥w(M)≥d(J´) folgt die Beh. Algorithmus für planares Max Cut 1. Berechne den dualen Graphen G* 2. Bestimme T´:={v∈V*: ungerade mit Gewicht ≥ 0} 3. Für alle Knotenpaare in T´: Berechne kürzesten (u,v)-Weg bzgl. Gewichte |c| 4. Berechne den vollständigen Graphen (T´, ET´) 5. Bestimme in (T´,ET´) ein minimales perfektes Matching M. 6. Seien Puv die in (3) bestimmten Wege für uv∈M. Dann setze J´:= ∆ Puv Beispiel: s. Tafel uv∈M 7. Für jede Kante e∈E: Falls (e∈J´ und ce<0) oder (e∈E\J´ und ce≥0) , dann liegt e im maximalen 30 Schnitt. Analyse des Algorithmus Lemma: • Der Algorithmus berechnet den maximalen Schnitt in G=(V,E) korrekt. • Die Laufzeit wird dominiert von der Laufzeit zur Bestimmung eines perfekten Matchings kleinsten Gewichts. • Dieses kann z.B. in Zeit O(|V|2 |E|) berechnet werden. • In Bezug auf |T´| ist die Laufzeit O(|T´|4). 31