Slides

Werbung
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 GK4 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
ab, y{a,b}
Jede BG-Operation erhält 3-Zusammenhang → Übung
a
v
f
b
a
x
b
w
v
y
w
ef, 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 HG 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 HG 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 HG 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 yH-{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
=> C1C2 ist K23-Unterteilung und bi 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
=> C1C2 ist K2 -Unterteilung und bi 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 m3n-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
Herunterladen