© 04.12.18 Jens M. Schmidt
Zertifizierende 3-Zusammenhangstests
Jens M. Schmidt
9 4 8
3 1 2
7
4
4
1
5 7 5
6
© 04.12.18
Beispiel 3-Zusammenhang
nicht 3-zusammenhängend 3-zusammenhängend
© 04.12.18 Jens M. Schmidt
Beispiel 3-Zusammenhang
nicht 3-zusammenhängend
Zertifikat: Separationspaar 3-zusammenhängend Zertifikat: ?
ZSHK aller Knotenpaare: Platz O(n 3 )
© 04.12.18
●
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
Überblick
© 04.12.18 Jens M. Schmidt
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
●
Beweist Fehlerfreiheit...
●
...jeder Instanz!
●
nicht nur bei Implementierungs-, sondern auch Hardware- und Algorithmenentwurfsfehlern
●
Zertifikat kann in Praxis sogar oft formal verifiziert werden (Coq, Isabelle) Sei G schlicht.
●
2-Zusammenhang: Ohrendekompositionsalgorithmus ist zertifizierend
●
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.
=> sind nicht zertifizierend
Zertifizierende Algorithmen
„weiche“ Bedingungen
© 04.12.18
Zertifizierende 3-Zusammenhangstests:
●
O(nm 2 ) Algorithmus mit Tutte-Kontraktionssequenz
●
Finde und kontrahiere n-1 mal eine 3-kontrahierbare Kante (3-Zshngstest)
●
O(n 3 ) durch vorherige Kantenreduktion mit Nagamochi-Ibaraki
●
2006 [Albroscheit-Rote]: O(n 2 ), gemischte Zertifikate
●
2010 [Mehlhorn-Schweitzer]: O(n 2 ), berechnet Tutte-Kontraktionssequenz
●
2010 [S.]: O(n 2 ), berechnet Tutte- und Barnette-Grünbaum-Sequenz
●
2010 [Elmasry-Mehlhorn-S.]: O(n+m) für Hamiltonsche Graphen
●
2012 [S.]: O(n+m) generell
Historie
hier
© 04.12.18 Jens M. Schmidt
Unterteilungen und Glättungen
K 4 = Glättung(H)
(Glättung ist wohldefiniert, falls jeder maximale Kantenzug mit inneren Knoten des Grads 2 verschiedene Endknoten des Grads mindestens 3 hat)
die 4 links von H
H = Unterteilung von K 4 unterteilen
glätten
© 04.12.18
●
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
Überblick
© 04.12.18 Jens M. Schmidt
Eine Kante e von G heißt entfernbar, wenn Glättung(G-e) 3-zusammenhängend ist.
Thm [Barnette-Grünbaum 1969]: Jeder 3-zshngd. Graph G K 4 enthält eine entfernbare Kante. → Beweis später genereller
Umkehrung der Glättung(G-e) definiert BG-Operationen:
●
Jede BG-Operation erhält 3-Zusammenhang → Übung
Barnette-Grünbaum Operationen
a b a b
y y
x a
v f
b w
a v
b w
x y
x y
x
y
Parallelkanten
hinzufügbar a b, y {a,b} e f, e nicht parallel zu f
© 04.12.18 Jens M. Schmidt
Thm: G 3-zshngd. <=> G von K 4 mit BG-operationen konstruierbar (Beweis später).
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
BG-Sequenz
BG-Sequenz G
G K 4
K -Unterteilung in G
© 04.12.18 Jens M. Schmidt
●
Korollar: Jeder 3-zshngd. Graph enthält eine K 4 -Unterteilung.
●
Mit der Bijektion können wir von der K 4 -Unterteilung ausgehend Pfade
hinzufügen, die den hinzugefügten Kanten von BG-Operationen 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.
BG-Pfade
BG-Pfad kein BG-Pfad kein BG-Pfad
H P
x
y H
x P
y H P
x
y
© 04.12.18
BG-Pfade
3-zshngd. Graph H' H'-Unterteilung H in G
Kanten von H' Links von H
Startgraph ist K 4 Startgraph ist K 4 -Unterteilung
BG-Operation BG-Pfad
Knoten Knoten vom Grad mind. 3 (schwarz)
© 04.12.18 Jens M. Schmidt
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.
●
Falls Knoten in G-V(H) existiert:
Existenz der Sequenzen
H
...
... G
.. . ...
© 04.12.18
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.
●
Falls Knoten in G-V(H) existiert:
●
Mengers Theorem in G ergibt BG-Pfad von H
Existenz der Sequenzen
H
...
... G
.. . ...
© 04.12.18 Jens M. Schmidt
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.
●
Falls Knoten in G-V(H) existiert:
●
Mengers Theorem in G ergibt BG-Pfad von H
●
Sonst existiert Kante in G-E(H):
●
Diese ist BG-Pfad von H
●
Fall H Glättung(H):
●
x := innerer Knoten eines Links L=a,...,b.
●
A := Menge der inneren Knoten aller
Links von H, die L oder parallel zu L sind.
●
B := V(H)-A-a-b.
●
Wende Menger zwischen A und B in G an:
=> 3 A-B-Pfade; einer vermeidet a und b
=> G-E(H) enthält A-B-Pfad x'y mit y H-a-b
●
x'y ist Ohr von H und damit BG-Pfad, da x' und y nicht in parallelen Links sind
Existenz der Sequenzen
H
...
... G
.. . ...
...
H B
...
G
x’
L
a
b
x
... y
A
© 04.12.18
Korollar: G 3-zshngd. <=> 3 und es existiert eine BG-Pfadsequenz von einer (beliebigen) K 4 -subdivision in G nach G.
Beweis:
=>: nach Lemma
<=:
●
BG-Operationen erhalten 3-Zusammenhang.
●
BG-Pfade auch, wenn der finale Graph keine Knoten des Grads 2 enthält.
Existenz der Sequenzen
© 04.12.18 Jens M. Schmidt
●
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
Überblick
© 04.12.18
●
Wie findet man BG-Pfade jeweils in Zeit O(m)?
●
Einfache Erreichbarkeitssuche durch DFS/BFS, die Knoten a und b vermeidet.
●
Wie findet man effizient eine K 4 -Unterteilung?
●
Mit chain decompositions:
●
DFS-Wurzel r hat genau ein Kind b und Grad 3
●
C 1 ist Kreis und C 2 offenes Ohr mit Endknoten i
=> C 1 C 2 ist K 2 3 -Unterteilung und b i wegen 3-Zshng.
●
{r,i} ist kein Separationspaar
Berechnung in Zeit O(n 2 )
K 2 3 -Unterteilung
r b i
C 1 C 2
© 04.12.18 Jens M. Schmidt r
i
●
Wie findet man BG-Pfade jeweils in Zeit O(m)?
●
Einfache Erreichbarkeitssuche durch DFS/BFS, die Knoten a und b vermeidet.
●
Wie findet man effizient eine K 4 -Unterteilung?
●
Mit chain decompositions:
●
DFS-Wurzel r hat genau ein Kind b und Grad 3
●
C 1 ist Kreis und C 2 offenes Ohr mit Endknoten i
=> C 1 C 2 ist K 2 3 -Unterteilung und b i wegen 3-Zshng.
●
{r,i} ist kein Separationspaar
=> chain von innerem Knoten des r-i-Baumpfads bis zu einem Knoten ≠i im Teilbaum T(i).
●
Laufzeit O(m)
→ Thm: zertifizierender 3-Zusammenhangstest mit Laufzeit O(nm).
Faktor n statt m, da jede BG-Pfad-Einzelkante in konstanter Zeit gefunden wird.
●
Nagamochi-Ibaraki (spätere Vorlesung):
Kantenreduktion vorab in Zeit O(m), bewirkt m 3n-3
→ Thm: zertifizierender 3-Zusammenhangstest mit Laufzeit O(n 2 ).
Berechnung in Zeit O(n 2 )
K 4 -Unterteilung
C 1 C 2
© 04.12.18
Starte mit K 2 3 -Unterteilung und lasse ersten BG-Pfad K 4 -Unterteilung erstellen.
Linearzeit
v
9v
10v
11v
12v
13v
14v
15v
16v
17v
2v
4v
1v
7v
6v
5v
8v
3© 04.12.18 Jens M. Schmidt
Starte mit K 2 3 -Unterteilung und lasse ersten BG-Pfad K 4 -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 des Endknotens von D enthält.
●
Klassifikation der chains in 3 Typen entlang der chain-Reihenfolge:
Linearzeit
C
14C
6C
4C
5C
2C
1C
8C
11C
0C
15C
10v
2v
3v
4C
7v
1v
7C
16C
17C
13C
12C
3C
9v
6v
5v
8v
9v
10v
11v
12v
13v
14v
15v
16v
17© 04.12.18
Sei C i Kind von C k , s(C i )=Startknoten, t(C i )=Endknoten von C i und a→ T b a-b-Pfad in T.
Chain-Klassifikation
C
14C
6C
4C
5C
2C
1C
8C
11C
0C
15C
10v
2v
3v
4C
7v
1v
7C
16C
17C
13C
12C
3C
9v
6v
5v
8v
9v
10v
11v
12v
13v
14v
15v
16v
17© 04.12.18 Jens M. Schmidt
Sei C i Kind von C k , s(C i )=Startknoten, t(C i )=Endknoten von C i und a→ T b a-b-Pfad in T.
Typ 1: s(C i )→ T t(C i ) C k
Typ 2: nicht Typ 1 und s(C i )=s(C k )
●
Typ 2a: C i ist Rückwärtskante. Typ 2b: C i ist keine Rückwärtskante, markiere C i Typ 3: weder Typ 1 noch Typ 2. Typ 3a: C k ist unmarkiert. Typ 3b: C k ist markiert.
Chain-Klassifikation
C
14C
6C
4C
5C
2C
1C
8C
11C
0C
15C
10v
2v
3v
4C
7v
1v
7C
16C
17C
13C
12C
3C
9v
6v
5v
8v
9v
10v
11v
12v
13v
14v
15v
16v
17Typ 1 Typ 2
●
Typ 2a (nur C 3 )
●
Typ 2b Typ 3
●
3a
●
3b (nur C 14 und C 16 )
C
iD
0C
k.. .
y
.. .
Erstelle bei Typ 3b caterpillar L i , der C i und alle markierten
direkten Vorfahrchains (Typ 2b) enthält; demarkiere letztere.
L 14 ={C 14 ,C 6 ,C 4 } L 16 ={C 16 ,C 5 }
© 04.12.18 Jens M. Schmidt
S l := aktueller Teilgraph von G (ist Unterteilung eines 3-zshngd. Graphen) Erstrebenswerte Invariante für jedes S l :
●
nach oben abgeschlossen (jeder Vater einer chain in S l ist auch in S l ) und
●
modular (S l ist Vereinigung von chains)
Aber: Es gibt modulare und abgeschlossene S , für die keine chain BG-Pfad ist!
Restriktion R1
C
14C
6C
4C
5C
2C
1C
8C
11C
0C
15C
10v
2v
3v
4C
7v
1v
7C
16C
17C
13C
12C
3C
9v
6v
5v
8v
9v
10v
11v
12v
13v
14v
15v
16v
17C
3C
0C
4C
2C
1© 04.12.18 Jens M. Schmidt
Lösung durch Restriktion R1:
Füge entweder einzelne chains als BG-Pfade oder ganze caterpillars hinzu, so dass S l immer modular und abgeschlossen ist.
●
Caterpillars können dann kanonisch in einzelne BG-Pfade zerlegt werden.
Restriktion R1
C
14C
6C
4C
5C
2C
1C
8C
11C
0C
15C
10v
2v
3v
4C
7v
1v
7C
16C
17C
13C
12C
3C
9v
6v
5v
8v
9v
10v
11v
12v
13v
14v
15v
16v
17C
iD
0C
k.. .
y
.. .
© 04.12.18
Restriktion R2:
In S l (außer der ersten K 2 3 -Unterteilung) existiert kein link aus ausschließlich Baumkanten, der einen parallelen link hat.
Restriktion R2
...
C
iC
jC
i...
verboten erlaubt
© 04.12.18 Jens M. Schmidt
●
Sei Kinder 12 (C i ) die Menge der Kinder von C i der Typen 1 und 2, die nicht in S l enthalten sind.
●
Sei Typ 3 (C i ) die Menge der chains des Typs 3, die an einem Knoten in C i starten und nicht in S l enthalten sind.
Theorem 1: Sei Kinder 12 (C j )=Typ 3 (C j )= für alle Vorfahren C j einer chain C i .
Dann existiert eine Ordnung auf den chains in Kinder 12 (C i ) Typ 3 (C i ), 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
Existenz
C
3C
2C
0C
4C
6C
5C
1y
x
●Typ 3 (C 0 ) = {C 5 ,C 6 }, füge C 5 +C 3 als caterpillar hinzu. Füge C 6 hinzu.
●
Kinder 12 (C 3 ) = {C 4 }, füge C 4 hinzu.
© 04.12.18 Jens M. Schmidt
Wie findet man solch eine Ordnung? Mit Intervall-Überlappungen!
●
Chains in Typ 3 (C i ), deren Segmente von S l keine chain aus Kinder 12 (C j ) enthalten, können sofort hinzugefügt werden.
●
Bilde die restlichen Segmente von S l wie folgt auf Intervallmengen ab.
Intervall-Überlappungen
H
4v
1...
C
iv
2v
3H
3H
2H
1v
4v
5v
6v
7v
8v
9v
3v
4v
5v
1v
2v
6v
7v
8v
9I(H
1)
I(H
3) I(H
4)
I(H
2)
I
0C
iv
0Ordnung: I 0 (schwarze innere Knoten), I(H 3 ), I(H 4 ), I(H 2 ), I(H 1 )
Amortisiert Zeit O(1) pro Element erreichbar!
© 04.12.18 Jens M. Schmidt
Bearbeite C 0 :
●
Da Kinder 12 (C 0 )= , können wir die chains in Typ 3 (C 0 )={C 7 ,C 8 ,C 9 } in aufsteigender Ordnung (Väter in Segmenten zuerst) hinzufügen.
Beispiel
Unterteilung S 3 ={C 0 ,C 1 ,C 2 }
C
14C
6C
4C
5C
2C
1C
8C
11C
0C
15C
10v
2v
3v
4C
7v
1v
7C
16C
17C
13C
12C
3C
9v
6v
5v
8v
9v
10v
11v
12v
13v
14v
15v
16v
17© 04.12.18
Bearbeite C 0 :
●
Da Kinder 12 (C 0 )= , können wir die chains in Typ 3 (C 0 )={C 7 ,C 8 ,C 9 } in aufsteigender Ordnung (Väter in Segmenten zuerst) hinzufügen.
●
Nach Hinzufügen von C 7 : K 4 -Unterteilung
Beispiel
Unterteilung S 4
C
14C
6C
4C
5C
2C
1C
8C
11C
0C
15C
10v
2v
3v
4C
7v
1v
7C
16C
17C
13C
12C
3C
9v
6v
5v
8v
9v
10v
11v
12v
13v
14v
15v
16v
17© 04.12.18 Jens M. Schmidt
Bearbeite C 1 : Kinder 12 (C 1 )=Typ 3 (C 1 )= → nichts zu tun
Bearbeite C 2 : Kinder 12 (C 2 )={C 3 ,C 4 ,C 10 ,C 12 ,C 13 } und Typ 3 (C 2 )={C 14 ,C 15 }
●
Nach Theorem 1 werden C 3 ,C 10 ,C 12 ,C 13 und der caterpillar L 14 hinzugefügt.
●
Um eine zulässige Ordnung der chains zu finden, gruppieren wir diese nach Segmenten von S 6 und berechnen die folgende Abbildung auf Intervallmengen.
Beispiel
Unterteilung S 6
C
14C
6C
4C
5C
2C
1C
8C
11C
0C
15C
10v
2v
3v
4C
7v
1v
7C
16C
17C
13C
12C
3C
9v
6v
5v
8v
9v
10v
11v
12v
13v
14v
15v
16v
17© 04.12.18 Jens M. Schmidt
●
I 0 ist durch inneren Knoten v 5 bestimmt. Sei H das Segment, das C 14 enthält.
●
Die Interval-Überlappungsfolge I 0 ,I(C 10 ),I(C 12 ),I(C 13 ),I(C 3 ),I(H) ergibt die Ordnung der hinzuzufügenden Segmente.
●
In jedem Segment H' werden diejenigen chains und caterpillars (top-down in U) hinzugefügt, die Vorfahren von H' (Kinder (C ) Typ (C )) sind.
Beispiel
Unterteilung S 6
C
14C
6C
4C
5C
2C
1C
8C
11C
0C
15C
10v
2v
3v
4C
7v
1v
7C
16C
17C
13C
12C
3C
9v
6v
5v
8v
9v
10v
11v
12v
13v
14v
15v
16v
17C
2v
3v
5v
8v
9I
0v
10v
17v
1I(C
10)
I(C
12)
I(C
13)
I(C
3) I(H)
v
0H
© 04.12.18 Jens M. Schmidt
Bearbeite C 3 : nichts zu tun
Bearbeite C 4 : Kinder 12 (C 4 )={C 5 } und Typ 3 (C 4 )={C 16 }
●
Füge die zwei BG-Pfade des caterpillars L 16 ={C 5 ,C 16 } hinzu.
Beispiel
Unterteilung S 14
C
14C
6C
4C
5C
2C
1C
8C
11C
0C
15C
10v
2v
3v
4C
7v
1v
7C
16C
17C
13C
12C
3C
9v
6v
5v
8v
9v
10v
11v
12v
13v
14v
15v
16v
17© 04.12.18 Jens M. Schmidt
Bearbeite C 5 : nichts zu tun
Bearbeite C 6 : Kinder 12 (C 6 )={C 17 } und Typ 3 (C 6 )=
●
Der innere Knoten v 13 von C 6 impliziert, dass sich ein Interval aus I 0 mit C 17 überlappt.
Füge C hinzu.
Beispiel
Unterteilung S 16
C
14C
6C
4C
5C
2C
1C
8C
11C
0C
15C
10v
2v
3v
4C
7v
1v
7C
16C
17C
13C
12C
3C
9v
6v
5v
8v
9v
10v
11v
12v
13v
14v
15v
16v
17© 04.12.18 Jens M. Schmidt
Bearbeite C 7 : nichts zu tun
Bearbeite C 8 : Kinder 12 (C 8 )={C 11 } und Typ 3 (C 8 )=
●
Der innere Knoten v 6 von C 8 impliziert, dass sich ein Interval aus I 0 mit C 11 überlappt.
●
Füge C 11 hinzu.
Beispiel
Unterteilung S 17
C
14C
6C
4C
5C
2C
1C
8C
11C
0C
15C
10v
2v
3v
4C
7v
1v
7C
16C
17C
13C
12C
3C
9v
6v
5v
8v
9v
10v
11v
12v
13v
14v
15v
16v
17© 04.12.18
Beispiel
Unterteilung S 18 =G
C
14C
6C
4C
5C
2C
1C
8C
11C
0C
15C
10v
2v
3v
4C
7v
1v
7C
16C
17C
13C
12C
3C
9v
6v
5v
8v
9v
10v
11v
12v
13v
14v
15v
16v
17© 04.12.18 Jens M. Schmidt
●
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
Überblick
© 04.12.18
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).
Tuttes Wheel-Theorem
W 5
© 04.12.18 Jens M. Schmidt
●
Tuttes Kontraktionssequenz existiert und kann in Zeit O(m) berechnet werden
→ durch BG-Sequenz, s. Übung
●