Zertifizierende 3-Zusammenhangstests 7 9 7 5 4 4 3 5 8 1 1 4 2 6 Jens M. Schmidt © 22.02.17 Jens M. Schmidt Beispiel 3-Zusammenhang nicht 3-zusammenhängend 3-zusammenhängend © 22.02.17 Jens M. Schmidt Beispiel 3-Zusammenhang nicht 3-zusammenhängend Zertifikat: Separationspaar 3-zusammenhängend Zertifikat: ? ZSHK aller Knotenpaare: Platz O(n3) © 22.02.17 Jens M. Schmidt Überblick ● Zertifizierende Algorithmen ● Barnette-Grünbaum Operationen, Bijektion zu BG-Pfaden, Existenz BG-Sequenz ● Zertifizierende 3-Zusammenhangstests in Zeit O(n 2) und O(n+m) ● Tuttes Wheel-Theorem und weitere (Kon)Sequenzen © 22.02.17 Jens M. Schmidt Zertifizierende Algorithmen Algorithmus heißt zertifizierend, wenn er für jede Eingabe ein kleines und leicht zu verifizierendes Zertifikat für die Korrektheit der Ausgabe liefert. ● In der Praxis unerlässlich bei komplizierten Algorithmen „weiche“ Bedingungen ● Beweist Fehlerfreiheit... ● ...jeder Instanz! ● nicht nur bei Implementierungs-, sondern auch Hardware- und Algorithmenentwurfsfehlern ● Zertifikat kann oft sogar formal (Coq, Isabelle) verifiziert werden Sei G schlicht. ● 2-Zusammenhang: Zertifizierend durch Ohrendekomposition ● 3-Zusammenhang: Test mit SPQR-Baum in Zeit O(n+m) (1 R-Knoten?) ● 1973 Hopcroft-Tarjan ● 2000 Gutwenger-Mutzel ● Beide liefern ● Separationspaar, wenn G nicht 3-zusammenhängend ist, aber ● kein Zertifikat, wenn G 3-zusammenhängend ist. => nicht zertifizierend © 22.02.17 Jens M. Schmidt Historie Zertifizierende 3-Zusammenhangstests: ● O(nm2) Algorithmus mit Tutte-Kontraktionssequenz ● finde und kontrahiere n-1 mal eine 3-kontrahierbare Kante (3-Zshngstest) ● O(n3) durch vorherige Kantenreduktion mit Nagamochi-Ibaraki ● 2006 [Albroscheit-Rote]: O(n2), gemischte Zertifikate ● 2010 [Mehlhorn-Schweitzer]: O(n2), berechnet Tutte-Kontraktionssequenz ● 2010 [S.]: O(n2), berechnet Tutte- und Barnette-Grünbaum-Sequenz ● 2010 [Elmasry-Mehlhorn-S.]: O(n+m) für Hamiltonsche Graphen hier ● 2012 [S.]: O(n+m) generell © 22.02.17 Jens M. Schmidt Unterteilungen und Glättungen links von H unterteilen glätten K4 = Glättung(H) (wohldefiniert, falls jeder maximale Pfad mit inneren Knoten vom Grad 2 verschiedene Endknoten vom Grad mindestens 3 hat) H = Unterteilung von K4 © 22.02.17 Jens M. Schmidt Überblick ● Zertifizierende Algorithmen ● Barnette-Grünbaum Operationen, Bijektion zu BG-Pfaden, Existenz BG-Sequenz ● Zertifizierende 3-Zusammenhangstests in Zeit O(n 2) und O(n+m) ● Tuttes Wheel-Theorem und weitere (Kon)Sequenzen © 22.02.17 Jens M. Schmidt Barnette-Grünbaum Operationen Eine Kante von G heißt entfernbar, wenn Glättung(G-e) 3-zusammenhängend ist. Thm [Barnette-Grünbaum 1969]: Jeder 3-zshngd. Graph GK4 enthält eine entfernbare Kante. → Beweis nachher genereller Umkehrung der Glättung(G-e) definiert BG-Operationen: x x y y Parallelkanten hinzufügbar ● a b y a x b y ab, y{a,b} Jede BG-Operation erhält 3-Zusammenhang → Übung a v f b a x b w v y w ef, e nicht parallel zu f © 22.02.17 Jens M. Schmidt BG-Sequenz Thm: G 3-zshngd. <=> G von K4 mit BG-operationen konstruierbar (Beweis gleich). K4 BG-Sequenz G BG-Sequenz ist gutes Zertifikat! (lineare Größe, jede BG-operation in O(1) prüfbar) Berechnung? ● Idee [S. 2010]: Nutze Bijektion zu Unterteilungen 3-zshngd. Teilgraphen von G K4-Unterteilung in G © 22.02.17 G Schmidt Jens M. BG-Pfade ● ● Korollar: Jeder 3-zshngd. Graph enthält eine K 4-Unterteilung. Viel wichtiger: Bijektion erlaubt von dieser aus Pfade zu berechnen, die BGOperationen entsprechen: ● Sei H eine Unterteilung eines 3-zshngd. Graphen ● Zwei links von H heißen parallel, wenn sie die gleichen Endknoten haben. ● Ein BG-Pfad ist ein offenes Ohr x,...,y von H, so dass ● jeder x und y enthaltene link x und y als Endknoten enthält und ● nicht beide, x und y, innere Knoten von parallelen links sind. x P H y H P y y H P x x BG-Pfad kein BG-Pfad kein BG-Pfad © 22.02.17 Jens M. Schmidt BG-Pfade 3-zshngd. Graph H' Kanten von H' Startgraph ist K4 BG-Operation Knoten H'-Unterteilung H in G Links von H Startgraph ist K4-Unterteilung BG-Pfad Knoten vom Grad mind. 3 (schwarz) © 22.02.17 Jens M. Schmidt Existenz der Sequenzen G ... H ... ... Lemma: Sei G 3-zshngd. und HG Unterteilung eines 3-zshngd. Graphen. Dann enthält G einen BG-Pfad von H. Beweis: ● Fall H = Glättung(H): ... ● Jeder link von H ist Kante; alle Knoten schwarz ● Wenn Knoten in G-V(H) existiert © 22.02.17 Jens M. Schmidt Existenz der Sequenzen G ... ... ... Lemma: Sei G 3-zshngd. und HG Unterteilung eines 3-zshngd. Graphen. Dann enthält G einen BG-Pfad von H. Beweis: ● Fall H = Glättung(H): ... ● Jeder link von H ist Kante; alle Knoten schwarz ● Wenn Knoten in G-V(H) existiert ● Menger gibt BG-Pfad von H H © 22.02.17 Jens M. Schmidt Existenz der Sequenzen G ... ... ... Lemma: Sei G 3-zshngd. und HG Unterteilung eines 3-zshngd. Graphen. Dann enthält G einen BG-Pfad von H. Beweis: ● Fall H = Glättung(H): ... ● Jeder link von H ist Kante; alle Knoten schwarz ● Wenn Knoten in G-V(H) existiert ● Menger gibt BG-Pfad von H ● Sonst existiert Kante in G-E(H) H ● Diese ist BG-Pfad von H ● Fall H Glättung(H): ● Sei x innerer Knoten eines Links L=a,...,b y' ... ● {a,b} kein Separationspaar b => G-E(H) enthält xy-Pfad P mit yH-{a,b} ... ● Teilpfad x'y' von P ist Ohr von H x’ x => x'y' ist BG-Pfad W ... L H © 22.02.17 a G Jens M. Schmidt Existenz der Sequenzen Korollar: G 3-zshngd. <=> 3 und es existiert eine BG-Pfadsequenz von einer (beliebigen) K4-subdivision in G nach G. Beweis: =>: nach Lemma <=: BG-Operationen erhalten 3-Zusammenhang © 22.02.17 Jens M. Schmidt Überblick ● Zertifizierende Algorithmen ● Barnette-Grünbaum Operationen, Bijektion zu BG-Pfaden, Existenz BG-Sequenz ● Zertifizierende 3-Zusammenhangstests in Zeit O(n 2) und O(n+m) ● Tuttes Wheel-Theorem und weitere (Kon)Sequenzen © 22.02.17 Jens M. Schmidt Berechnung in Zeit O(n2) ● ● Wie findet man BG-Pfade jeweils in Zeit O(m)? ● Einfach: DFS / BFS, ein BG-Pfad muss existieren Wie findet man effizient eine K4-Unterteilung? Mit chain decompositions: ● Wurzel r hat genau ein Kind b und Grad 3 C1 ● C ist Kreis und C offenes Ohr mit Endknoten i 1 2 => C1C2 ist K23-Unterteilung und bi wegen 3-Zshng. ● {r,i} nicht Separationspaar r b C2 i K23-Unterteilung © 22.02.17 Jens M. Schmidt Berechnung in Zeit O(n2) ● ● Wie findet man BG-Pfade jeweils in Zeit O(m)? ● Einfach: DFS / BFS, ein BG-Pfad muss existieren Wie findet man effizient eine K4-Unterteilung? r Mit chain decompositions: ● Wurzel r hat genau ein Kind b und Grad 3 C1 C2 ● C ist Kreis und C offenes Ohr mit Endknoten i 1 2 i 3 => C1C2 ist K2 -Unterteilung und bi wegen 3-Zshng. ● {r,i} nicht Separationspaar => chain von innerem Knoten des r-i-Baumpfads bis zu einem Knoten im Teilbaum T(i)-{i}. K4-Unterteilung ● Laufzeit O(m) → Thm: zertifizierender 3-Zusammenhangstest mit Laufzeit O(nm). ● Nagamochi-Ibaraki (spätere Vorlesung): Kantenreduktion vorab in Zeit O(m), bewirkt m3n-3 → Thm: zertifizierender 3-Zusammenhangstest mit Laufzeit O(n2). © 22.02.17 Jens M. Schmidt Linearzeit v1 v2 v3 v4 v5 v6 v7 v8 v9 v10 v11 v17 v12 v16 v13 v14 v15 Starte mit K23-Unterteilung und lasse ersten BG-Pfad K4-Unterteilung erstellen. © 22.02.17 Jens M. Schmidt Linearzeit v1 C1 v2 C7 v4 C9 C11 C0 v3 C10 v5 v6 v7 C3 C12 C2 v8 C8 v9 C13 v10 v17 v11 C14 C4 v12 C16 C5 C15 v16 v13 C17 v14 C6 v15 Starte mit K23-Unterteilung und lasse ersten BG-Pfad K4-Unterteilung erstellen. Zeit O(m) Grundidee für Berechnung der BG-Pfade: Füge jeweils chain als BG-Pfad hinzu. ● Chains bilden Baum U! Chain C ist Kind von chain D, wenn C die T-Vaterkante© 22.02.17 Jens M. Schmidt des Endknotens von D enthält. ● Klassifikation der chains in 3 Typen entlang der chain-Reihenfolge: ● Chain-Klassifikation v1 C1 v2 C7 v4 C9 C11 C0 v3 C10 v5 v6 v7 C3 C12 C2 v8 C8 v9 C13 v10 v17 v11 C14 C4 v12 C16 C5 C15 v16 v13 C17 v14 C6 v15 Sei Ci Kind von Ck, s(Ci)=Startknoten, t(Ci)=Endknoten von Ci und a→Tb a-b-Pfad in T. © 22.02.17 Jens M. Schmidt Chain-Klassifikation v1 L14={C14,C6,C4} L16={C16,C5} C1 C7 v4 C9 C11 C0 v3 C3 C10 v5 v6 v7 ... v2 ... Typ 1 Typ 2 ● Typ 2a (nur C ) 3 ● Typ 2b Typ 3 ● 3a ● 3b (nur C und C16) 14 y C12 C2 v8 C8 Ck v9 C13 D0 v10 C14 C4 v12 C16 C5 C15 v16 v13 C17 v14 Ci v17 v11 v15 C6 Erstelle bei Typ 3b caterpillar Li, der Ci und alle markierten direkten Vorfahrchains (Typ 2b) enthält; demarkiere letztere. Sei Ci Kind von Ck, s(Ci)=Startknoten, t(Ci)=Endknoten von Ci und a→Tb a-b-Pfad in T. Typ 1: s(Ci)→Tt(Ci) Ck Typ 2: nicht Typ 1 und s(Ci)=s(Ck) © 22.02.17 ● Typ 2a: C ist Rückwärtskante. Typ 2b: C ist keine Rückwärtskante, markiere C i i i Schmidt Jens M. Typ 3: weder Typ 1 noch Typ 2. Typ 3a: Ck ist unmarkiert. Typ 3b: Ck ist markiert. Restriktion R1 v1 C1 v2 C7 v4 C9 C11 C0 v3 C10 v5 v6 v7 C3 C12 C2 v8 C8 v9 C2 C13 C3 v10 v11 C14 C4 v12 C1 C4 C16 C5 C15 v16 v13 C17 v14 C0 v17 C6 v15 Sl := aktueller Teilgraph von G (ist Unterteilung eines 3-zshngd. Graphen) Erstrebenswerte Invariante für jedes Sl: ● nach oben abgeschlossen (jeder Vater einer chain in S ist auch in S ) und l l © 22.02.17 ● modular (S ist Vereinigung von chains) l Jens M. Schmidt Aber: Es gibt modulare und abgeschlossene Sl, für die keine chain BG-Pfad ist! Restriktion R1 v1 C1 v2 C9 C11 v3 C10 v5 v6 v7 C3 ... v4 C0 C12 ... C7 C2 v8 C8 v9 y Ck C13 v10 v17 v11 C14 C4 v12 C16 C5 C15 Ci v16 v13 C17 v14 D0 C6 v15 Lösung durch Restriktion R1: Füge entweder einzelne chains als BG-Pfade oder ganze caterpillars hinzu, so dass Sl immer modular und abgeschlossen ist. ● Caterpillars können dann kanonisch in einzelne BG-Pfade zerlegt werden. © 22.02.17 Jens M. Schmidt Restriktion R2 ... ... Cj verboten erlaubt Ci Ci Restriktion R2: In Sl (außer der ersten K23-Unterteilung) existiert kein link aus ausschließlich Baumkanten, der einen parallelen link hat. © 22.02.17 Jens M. Schmidt Existenz ● ● Sei Kinder12(Ci) die Menge der Kinder von Ci der Typen 1 und 2, die nicht in Sl enthalten sind. Sei Typ3(Ci) die Menge der chains des Typs 3, die an einem Knoten in C i starten und nicht in Sl enthalten sind. Theorem 1: Sei Kinder12(Cj)=Typ3(Cj)= für alle Vorfahren Cj einer chain Ci. Dann existiert eine Ordnung auf den chains in Kinder12(Ci) Typ3(Ci), in der diese als BG-Pfade oder caterpillars hinzufügbar sind. → so dass R1 und R2 erfüllt ist, d.h. mit allen Vorgängerchains soweit vorhanden C1 x C0 C3 C2 C6 C5 y Typ3(C0) = {C5,C6}, füge C5+C3 als caterpillar hinzu. Füge C6 hinzu. ● Kinder (C ) = {C }, füge C hinzu. 12 3 4 4 ● C4 © 22.02.17 Jens M. Schmidt Intervall-Überlappungen Wie findet man solch eine Ordnung? Mit Intervall-Überlappungen! ● Chains in Typ (C ), deren Segmente von S keine chain aus Kinder (C ) enthalten, 3 i l 12 j können sofort hinzugefügt werden. ● Bilde die restlichen Segmente von S wie folgt auf Intervallmengen ab. l ... v9 I(H 3 ) v1 v2 v3 I(H 1) I(H4 ) H1 v4 v5 H3 v6 Ci I(H 2 ) v7 H2 v0 v1 v2 v3 v4 Ci v5 v6 v7 v8 v9 v8 H4 I0 Ordnung: I0 (schwarze innere Knoten), I(H3), I(H4), I(H2), I(H1) © 22.02.17 Jens M. Schmidt Amortisiert Zeit O(1) pro Element erreichbar! Beispiel v1 C1 v2 C7 v4 C9 C11 C0 v3 C10 v5 v6 v7 C3 Unterteilung S3={C0,C1,C2} C12 C2 v8 C8 v9 C13 v10 v17 v11 C14 C4 v12 C16 C5 C15 v16 v13 C17 v14 C6 v15 Bearbeite C0: ● Da Kinder (C )=, können wir die chains in Typ (C )={C ,C ,C } in aufsteigender 12 0 3 0 7 8 9 Ordnung (Väter in Segmenten zuerst) hinzufügen. © 22.02.17 Jens M. Schmidt Beispiel v1 C1 v2 C7 v4 C9 C11 C0 v3 C10 v5 v6 v7 C3 Unterteilung S4 C12 C2 v8 C8 v9 C13 v10 v17 v11 C14 C4 v12 C16 C5 C15 v16 v13 C17 v14 C6 v15 Bearbeite C0: ● Da Kinder (C )=, können wir die chains in Typ (C )={C ,C ,C } in aufsteigender 12 0 3 0 7 8 9 ● Ordnung (Väter in Segmenten zuerst) hinzufügen. Nach Hinzufügen von C7: K4-Unterteilung © 22.02.17 Jens M. Schmidt Beispiel v1 C1 v2 C7 v4 C9 C11 C0 v3 C10 v5 v6 v7 C3 Unterteilung S6 C12 C2 v8 C8 v9 C13 v10 v17 v11 C14 C4 v12 C16 C5 C15 v16 v13 C17 v14 C6 v15 Bearbeite C1: Kinder12(C1)=Typ3(C1)= → nichts zu tun Bearbeite C2: Kinder12(C2)={C3,C4,C10,C12,C13} und Typ3(C2)={C14,C15} ● ● Nach Theorem 1 werden C3,C10,C12,C13 und der caterpillar L14 hinzugefügt. © 22.02.17 Um eine zulässige Ordnung der chains zu finden, gruppieren wir diese nach Jens M. Schmidt Segmenten von S6 und berechnen die folgende Abbildung auf Intervallmengen. Beispiel v1 C1 v2 C7 v4 C9 C11 C0 v3 C10 v5 v6 v7 C3 Unterteilung S6 C12 C2 v8 C8 v9 I(H) C13 v10 C14 C4 v12 H ● ● ● C16 I(C 3 ) I(C 10) C5 C15 v16 v13 C17 v14 I(C12 ) v17 v11 v15 v0 v3 I(C13 ) v5 v8 v9 v10 v17 C2 v1 C6 I0 I0 ist durch inneren Knoten v5 bestimmt. Sei H das Segment, das C14 enthält. Die Interval-Überlappungsfolge I0,I(C10),I(C12),I(C13),I(C3),I(H) ergibt die Ordnung der hinzuzufügenden Segmente. In jedem Segment H' werden diejenigen chains und caterpillars (top-down in ©U)22.02.17 Jens M. Schmidt hinzugefügt, die Vorfahren von H' (Kinder12(C2) Typ3(C2)) sind. Beispiel v1 C1 v2 C7 v4 C9 C11 C0 v3 C10 v5 v6 v7 C3 Unterteilung S14 C12 C2 v8 C8 v9 C13 v10 v17 v11 C14 C4 v12 C16 C5 C15 v16 v13 C17 v14 C6 v15 Bearbeite C3: nichts zu tun Bearbeite C4: Kinder12(C4)={C5} und Typ3(C4)={C16} ● Füge die zwei BG-Pfade des caterpillars L16 ={C5,C16} hinzu. © 22.02.17 Jens M. Schmidt Beispiel v1 C1 v2 C7 v4 C9 C11 C0 v3 C10 v5 v6 v7 C3 Unterteilung S16 C12 C2 v8 C8 v9 C13 v10 v17 v11 C14 C4 v12 C16 C5 C15 v16 v13 C17 v14 C6 v15 Bearbeite C5: nichts zu tun Bearbeite C6: Kinder12(C6)={C17} und Typ3(C6)= ● ● Der innere Knoten v13 von C6 impliziert, dass sich ein Interval aus I0 mit C17 © 22.02.17 überlappt. Jens M. Schmidt Füge C17 hinzu. Beispiel v1 C1 v2 C7 v4 C9 C11 C0 v3 C10 v5 v6 v7 C3 Unterteilung S17 C12 C2 v8 C8 v9 C13 v10 v17 v11 C14 C4 v12 C16 C5 C15 v16 v13 C17 v14 C6 v15 Bearbeite C7: nichts zu tun Bearbeite C8: Kinder12(C8)={C11} und Typ3(C8)= ● ● Der innere Knoten v6 von C8 impliziert, dass sich ein Interval aus I0 mit C11 © 22.02.17 überlappt. Jens M. Schmidt Füge C11 hinzu. Beispiel v1 C1 v2 C7 v4 C9 C11 C0 v3 C10 v5 v6 v7 C3 Unterteilung S18=G C12 C2 v8 C8 v9 C13 v10 v17 v11 C14 C4 v12 C16 C5 C15 v16 v13 C17 v14 C6 v15 © 22.02.17 Jens M. Schmidt Überblick ● Zertifizierende Algorithmen ● Barnette-Grünbaum Operationen, Bijektion zu BG-Pfaden, Existenz BG-Sequenz ● Zertifizierende 3-Zusammenhangstests in Zeit O(n 2) und O(n+m) ● Tuttes Wheel-Theorem und weitere (Kon)Sequenzen © 22.02.17 Jens M. Schmidt Tuttes Wheel-Theorem Ein vertex splitting eines Knotens v des Grads 4 ersetzt v durch zwei adjazente Knoten x und y mit jeweils mindestens 3 Nachbarn, so dass jede Kante, die inzident zu v war, inzident zu entweder x oder y ist. Theorem [Tutte 1961]: Ein schlichter Graph G ist genau dann 3-zshngd., wenn er von einem Radgraphen durch eine Folge von Kantenadditionen und vertex splittings erzeugt werden kann. Umkehrung: Kantenlöschungen und -kontraktionen (3-zshngserhaltend). W5 © 22.02.17 Jens M. Schmidt Tuttes Wheel-Theorem ● ● Beweis der Existenz von Tuttes Kontraktionssequenz und O(m)-Algorithmus → durch BG-Sequenz, s. Übung Viele weitere Sequenzen in Zeit O(m): © 22.02.17 Jens M. Schmidt