Slides

Werbung
2-Zusammenhang mit Chain Decompositions
v1
v2
C1
C2
v3
v4
v5
v6
C5
v7
C3
C4
v9
v 10
v8
Jens M. Schmidt
© 12.10.17
Jens M. Schmidt
Überblick
●
2-Kanten- und 2-Zusammenhang, Ohrendekompositionen
●
Chain Decompositions + 2-Zusammenhangstests
●
Starke Orientierungen, st-Orientierungen und -numberings (a.k.a. (1,1)-Orders)
●
Block-Cut Trees, 2-kontrahierbare Kanten
© 12.10.17
Jens M. Schmidt
Knoten- und Kantenzusammenhang
●
●
●
S  V ist ein Separator, falls G-S nicht zusammenhängend ist.
G ist k-zusammenhängend, falls n>k ist und jeder Separator Größe k hat.
Knotenzusammenhang (G) ist größte Zahl k, für die G k-zusammenhängend ist.
Motivation:
● Ausfallsichere Netzwerke
(PC- und Transportnetzwerke)
● Struktur des Graphen
●
●
●
=2
=3
=4
S  E heißt Schnitt, wenn G-S nicht zusammenhängend ist.
G ist k-kantenzusammenhängend, falls n>1 ist und jeder Schnitt Größe k hat.
Kantenzusammenhang (G) ist größte Zahl k, für die G k-kantenzshng. ist.
Für jeden Graph G gilt: (G)  (G)  (G).
© 12.10.17
Jens M. Schmidt
2-Zusammenhang
Brücke
2-zshng.?
2-kantenzshng.?
nein
nein
nein
nein
cut-vertex
nein
ja
Ziele:
● Effiziente Erkennung von 2-Kanten- und 2-Zusammenhang
● Weitere Charakterisierungen des 2-Zusammenhangs
● Berechnung der 2-Zusammenhangskomponenten
ja
ja
© 12.10.17
Jens M. Schmidt
Ohrendekompositionen
Ein Ohr eines Graphen G ist entweder ein Kreis P mit |V(G  P)|=1 oder ein Pfad,
der sich exakt in beiden Endknoten mit G schneidet (letzteres heißt offenes Ohr).
P
G
Ohr
G
P
offenes Ohr
© 12.10.17
Jens M. Schmidt
Ohrendekompositionen
Eine (offene) Ohrendekomposition von G ist eine Folge G1,G2,...,Gk von Teilgraphen
von G, so dass
● G ein Kreis ist
1
● G = G ist, und
k
● G
i+1 durch Hinzufügen eines (offenen) Ohres P i+1 zu Gi entsteht.
offene Ohrendekomposition
© 12.10.17
Jens M. Schmidt
Ohrendekompositionen
Eine (offene) Ohrendekomposition von G ist eine Folge G1,G2,...,Gk von Teilgraphen
von G, so dass
● G ein Kreis ist
1
● G = G ist, und
k
● G
i+1 durch Hinzufügen eines (offenen) Ohres P i+1 zu Gi entsteht.
1
offene Ohrendekomposition
© 12.10.17
Jens M. Schmidt
Ohrendekompositionen
Eine (offene) Ohrendekomposition von G ist eine Folge G1,G2,...,Gk von Teilgraphen
von G, so dass
● G ein Kreis ist
1
● G = G ist, und
k
● G
i+1 durch Hinzufügen eines (offenen) Ohres P i+1 zu Gi entsteht.
1
offene Ohrendekomposition
© 12.10.17
Jens M. Schmidt
Ohrendekompositionen
Eine (offene) Ohrendekomposition von G ist eine Folge G1,G2,...,Gk von Teilgraphen
von G, so dass
● G ein Kreis ist
1
● G = G ist, und
k
● G
i+1 durch Hinzufügen eines (offenen) Ohres P i+1 zu Gi entsteht.
1
offene Ohrendekomposition
© 12.10.17
Jens M. Schmidt
Ohrendekompositionen
Eine (offene) Ohrendekomposition von G ist eine Folge G1,G2,...,Gk von Teilgraphen
von G, so dass
● G ein Kreis ist
1
● G = G ist, und
k
● G
i+1 durch Hinzufügen eines (offenen) Ohres P i+1 zu Gi entsteht.
1
offene Ohrendekomposition
© 12.10.17
Jens M. Schmidt
Ohrendekompositionen
Theorem [Whitney'32]: Sei G schlicht.
● G 2-zusammenhängend <=> G hat eine offene Ohrendekomposition
● G 2-kantenzusammenhängend <=> G hat eine Ohrendekomposition
Kreis G1 darf zusätzlich
Beweis (Kantenzusammenhang analog):
gewählt werden
<=:
● G ist Kreis und damit 2-zusammenhängend
1
● Hinzufügen eines offenen Ohres P erhält 2-Zusammenhang:
i
● |V(G )|>2
i
● G enthält keinen cut-vertex in P , da Restgraph zshngd. wäre
i
i
● G enthält keinen cut-vertex in G
i
i-1-Pi (warum?)
Pi
G i-1
=>: algorithmisch mit Chain Decompositions
Gi
© 12.10.17
Jens M. Schmidt
Überblick
●
2-Kanten- und 2-Zusammenhang, Ohrendekompositionen
●
Chain Decompositions + 2-Zusammenhangstests
●
Starke Orientierungen, st-Orientierungen und -numberings (a.k.a. (1,1)-Orders)
●
Block-Cut Trees, 2-kontrahierbare Kanten
© 12.10.17
Jens M. Schmidt
Chain Decompositions
Algorithmus [Chain Decomposition] auf schlichtem zusammenhängendem Graph G:
● Berechne DFS-Baum T von G (mit Wurzel r)
● Konvention: Baumkanten zu r, Rückwartskanten von r weg orientiert
● Für eine Rückwärtskante e sei C(e) der mit T geschlossene Fundamentalkreis
● Markiere jede Kante als unbesucht
v1
r
v1
v2
v2
C1
C2
v3
v4
v5
v6
v7
G
●
v8
v3
v4
v9
v7
v10
v5
v6
C5
C3
C4
v9
v 10
v8
Für jeden Knoten v in aufsteigender DFI-Reihenfolge und jede unbesuchte
Rückwärtskante e inzident zu v
● Traversiere C(e) von e aus bis zur ersten besuchten Kante (und markiere
© 12.10.17
Jens M. Schmidt
besuchte Kanten)
● Nenne traversierten Teilgraphen chain. Sei C die i-te so gefundene chain.
i
Chain Decompositions
Nice facts:
● Wenn C existiert (d.h. wenn eine Rückwartskante existiert), ist C ein Kreis.
1
1
● Laufzeit: O(m)
● Anzahl der chains ist?
v1
v2
C1
C2
v3
v4
v5
v6
C5
v7
C3
C4
v9
v 10
v8
© 12.10.17
Jens M. Schmidt
Chain Decompositions
Nice facts:
● Wenn C existiert (d.h. wenn eine Rückwartskante existiert), ist C ein Kreis.
1
1
● Laufzeit: O(m)
● Anzahl der chains ist m-n+1, da jede Rückwärtskante genau 1 chain erzeugt.
Die Folge C := (C1,C2,...,Cm-n+1) heißt chain decomposition von G.
v1
v2
C1
C2
v3
v4
v5
v6
C5
v7
C3
C4
v9
v 10
v8
© 12.10.17
Jens M. Schmidt
2-Zusammenhangstests
Lemma: Kante e ist Brücke <=> e ist nicht in einer chain von C enthalten
Beweis:
=>:
● Annahme: Sei e in C und sei b die Rückwartskante in C
i
i
● Dann ist e im Kreis C(b) enthalten.
da Kreise keine Brücken enthalten können
<=:
●
●
●
e ist Baumkante, da jede Rückwärtskante in einer chain ist.
Sei x der Endknoten von e mit größter Distanz zu r in T (also x  r)
und sei T(x) der Teilbaum von T mit Wurzel x.
Es gibt keine Rückwärtskante mit genau einem Endknoten in T(x),
sonst wäre e in einer chain.
=> e trennt r von x
=> e ist Brücke
e
x
T(x)
=> Korollar [S. 2013]: G ist 2-kantenzshngd. => C ist Ohrendekomposition
=> Theorem [S. 2013]: G ist 2-kantenzshngd. <=> C partitioniert E
leicht zu testen in Zeit O(m)!
© 12.10.17
Jens M. Schmidt
2-Zusammenhangstests
Lemma: Sei (G)2. v ist ein cut-vertex <=> v ist Endknoten einer Brücke oder
erster Knoten eines Kreises in C-{C1}.
=> Theorem [S. 2013]:
G ist 2-zshngd. <=> C partitioniert E und C1 ist der einzige Kreis in C.
notwendig, da   
leicht zu testen in Zeit O(m)
v1
G 2-zshngd: Chain Decomposition ist
offene Ohrendekomposition.
G 2-kantenzshngd: Chain Decomposition
ist Ohrendekomposition.
v2
C1
C2
v3
v4
Brücke, da nicht in chain
v5
v6
C5
v7
C3
C4
v9
v 10
v8
cut-vertices, da erste Knoten
einer Kreis-chain  C1
© 12.10.17
Jens M. Schmidt
Überblick
●
2-Kanten- und 2-Zusammenhang, Ohrendekompositionen
●
Chain Decompositions + 2-Zusammenhangstests
●
Starke Orientierungen, st-Orientierungen und -numberings (a.k.a. (1,1)-Orders)
●
Block-Cut Trees, 2-kontrahierbare Kanten
© 12.10.17
Jens M. Schmidt
Starke Orientierungen
●
●
Eine Orientierung eines ungerichteten Graphen ersetzt jede Kante durch eine
gerichtete.
Starke Orientierung = Orientierung, die stark zusammenhängend ist
(d.h. jeder Knoten ist von jedem anderen über gerichteten Pfad erreichbar)
Wann ist Städteplanung mit
Einbahnstraßen möglich?
mit Brücke keine starke
Orientierung möglich
Theorem [Robbins '39]: Für jeden zusammenhängenden Graph G mit n>1 gilt:
G 2-kantenzusammenhängend <=> G hat eine starke Orientierung
Beweis: <=: G kann nach obigem Argument keine Brücke enthalten
=>: n=2: G enthält mindestens 2 Parallelkanten 
● n>2: G hat Ohrendekomposition
● Orientiere G zu gerichtetem Kreis
1
● Füge jedes Ohr als gerichteten Pfad hinzu (Richtung beliebig)
● Damit erreicht jeder neue Knoten jeden alten und umgekehrt
© 12.10.17
Jens M. Schmidt
Starke Orientierungen können also in Zeit O(m) berechnet werden (falls existent).
st-Orientierungen und -numberings
●
●
Eine st-Orientierung / bipolare Orientierung für st  E ist eine azyklische
Orientierung mit genau einer Quelle s (Knoten mit Eingangsgrad 0) und genau
einer Senke t (Knoten mit Ausgangsgrad 0).
Ein st-numbering / (1,1)-order für st  E ist eine Totalordnung 1,...,n der Knoten
mit s=1 und t=n, so dass jeder Knoten v  {s,t} einen Nachbarn mit kleinerer
Nummer und einen mit größerer Nummer hat.
n
t
v3
5
v6
v4
4
3
v5
s
st-Orientierung
2
1
st-numbering
© 12.10.17
Analoge Varianten für Kantenzusammenhang existieren [Schlipf & S. 2016]. Jens M. Schmidt
st-Orientierungen und -numberings
Theorem: G 2-zshngd. <=> G hat ein st-numbering <=> G hat eine st-Orientierung.
Beweis:
● =>: Orientiere alle Kanten in Zeit O(m) zu ihrem jeweils höheren Endknoten.
● <=: ?
n
t
v3
5
v6
v4
4
3
v5
s
st-Orientierung
2
1
st-numbering
© 12.10.17
Jens M. Schmidt
st-Orientierungen und -numberings
Theorem: G 2-zshngd. <=> G hat ein st-numbering <=> G hat eine st-Orientierung.
Beweis:
● =>: Orientiere alle Kanten in Zeit O(m) zu ihrem jeweils höheren Endknoten.
● <=: Topologische Sortierung in Zeit O(m).
● <=: Menger-argument mit den beiden Pfaden der jeweils kleineren und
größeren Nachbarn (2 Fälle).
n
t
v3
5
v6
v4
4
3
v5
s
st-Orientierung
2
1
st-numbering
© 12.10.17
Jens M. Schmidt
st-Orientierungen und -numberings
Theorem: G 2-zshngd. <=> G hat ein st-numbering <=> G hat eine st-Orientierung.
Beweis:
=>: Algorithmisch (Existenzbeweis geht einfacher)
● Berechne chain decomposition mit r:=s und t als (eindeutigem) Kind von r in T.
● Verwalte spezielles st-numbering < für die Vereinigung G der ersten i Ohren.
i
● Repräsentiere Kanten ab mit a < b durch Orientierung a→b
spätere st-Orientierung
● Für G =C =s,a,b,...,t, initialisiere mit s<t und s<a<b<...<t.
1
1
s
t
v3
v4
© 12.10.17
Jens M. Schmidt
v5
v6
st-Orientierungen und -numberings
Theorem: G 2-zshngd. <=> G hat ein st-numbering <=> G hat eine st-Orientierung.
Beweis:
=>: Algorithmisch (Existenzbeweis geht einfacher)
● Berechne chain decomposition mit r:=s und t als (eindeutigem) Kind von r in T.
● Verwalte spezielles st-numbering < für die Vereinigung G der ersten i Ohren.
i
● Repräsentiere Kanten ab mit a < b durch Orientierung a→b
spätere st-Orientierung
● Für G =C =s,a,b,...,t, initialisiere mit s<t und s<a<b<...<t.
1
1
● P
=nächste chain mit Endknoten v und u, uTi(v); w=Kind von v mit uTi(w).
i+1
● Falls v→w, orientiere P
von v nach u & füge innere Knoten vor u in < ein.
i+1
s
s<v3<t
t
v3
v4
© 12.10.17
Jens M. Schmidt
v5
v6
st-Orientierungen und -numberings
Theorem: G 2-zshngd. <=> G hat ein st-numbering <=> G hat eine st-Orientierung.
Beweis:
=>: Algorithmisch (Existenzbeweis geht einfacher)
● Berechne chain decomposition mit r:=s und t als (eindeutigem) Kind von r in T.
● Verwalte spezielles st-numbering < für die Vereinigung G der ersten i Ohren.
i
● Repräsentiere Kanten ab mit a < b durch Orientierung a→b
spätere st-Orientierung
● Für G =C =s,a,b,...,t, initialisiere mit s<t und s<a<b<...<t.
1
1
● P
=nächste chain mit Endknoten v und u, uTi(v); w=Kind von v mit uTi(w).
i+1
● Falls v→w, orientiere P
von v nach u & füge innere Knoten vor u in < ein.
i+1
s
s<v3<t
s<v4<v3<t
t
v3
v4
© 12.10.17
Jens M. Schmidt
v5
v6
st-Orientierungen und -numberings
Theorem: G 2-zshngd. <=> G hat ein st-numbering <=> G hat eine st-Orientierung.
Beweis:
=>: Algorithmisch (Existenzbeweis geht einfacher)
● Berechne chain decomposition mit r:=s und t als (eindeutigem) Kind von r in T.
● Verwalte spezielles st-numbering < für die Vereinigung G der ersten i Ohren.
i
● Repräsentiere Kanten ab mit a < b durch Orientierung a→b
spätere st-Orientierung
● Für G =C =s,a,b,...,t, initialisiere mit s<t und s<a<b<...<t.
1
1
● P
=nächste chain mit Endknoten v und u, uTi(v); w=Kind von v mit uTi(w).
i+1
● Falls v→w, orientiere P
von v nach u & füge innere Knoten vor u in < ein.
i+1
● Falls v←w, orientiere P
von u nach v & füge innere Knoten nach u in < ein.
i+1
s
s<v3<t
s<v4<v3<t
s<v4<v5<v3<t
t
v3
v4
© 12.10.17
Jens M. Schmidt
v5
v6
st-Orientierungen und -numberings
Theorem: G 2-zshngd. <=> G hat ein st-numbering <=> G hat eine st-Orientierung.
Beweis:
=>: Algorithmisch (Existenzbeweis geht einfacher)
● Berechne chain decomposition mit r:=s und t als (eindeutigem) Kind von r in T.
● Verwalte spezielles st-numbering < für die Vereinigung G der ersten i Ohren.
i
● Repräsentiere Kanten ab mit a < b durch Orientierung a→b
spätere st-Orientierung
● Für G =C =s,a,b,...,t, initialisiere mit s<t und s<a<b<...<t.
1
1
● P
=nächste chain mit Endknoten v und u, uTi(v); w=Kind von v mit uTi(w).
i+1
● Falls v→w, orientiere P
von v nach u & füge innere Knoten vor u in < ein.
i+1
● Falls v←w, orientiere P
von u nach v & füge innere Knoten nach u in < ein.
i+1
s
t
v3
v4
1
s<v3<t
s<v4<v3<t
s<v4<v5<v3<t
s<v4<v5<v6<v3<t
v5
n
5
2
v6
© 12.10.17
Jens M. Schmidt
3
4
st-Orientierungen und -numberings
Theorem: G 2-zshngd. <=> G hat ein st-numbering <=> G hat eine st-Orientierung.
Beweis:
● Invariante: < ist st-numbering von G , so dass für jede Vater-Kind-Kante vw in T
i
i
und jeden Knoten x in Ti(w) (des Teilgraphen) gilt:
s
● v < w impliziert v < x (alle Knoten in T (w) sind größer als v)
i
● v > w impliziert v > x (alle Knoten in T (w) sind kleiner als v)
t
i
● Für G erfüllt
1
v3
● Invariante für G
erfüllt für Kanten
i+1
v
● vw und dessen Vorgängerbaumkanten
v4
v5
(da v < u und innere Knoten von Pi+1 nahe u in <),
v6
w
● alle Baumkanten in P
(nach Orientierung), und
i+1
● alle weiteren Baumkanten.
● Laufzeit O(m)
Ti(w)
u
© 12.10.17
Jens M. Schmidt
Überblick
●
2-Kanten- und 2-Zusammenhang, Ohrendekompositionen
●
Chain Decompositions + 2-Zusammenhangstests
●
Starke Orientierungen, st-Orientierungen und -numberings (a.k.a. (1,1)-Orders)
●
Block-Cut Trees, 2-kontrahierbare Kanten
© 12.10.17
Jens M. Schmidt
Block-Cut Trees
Motivation:
● In vielen Problemen zieht man sich auf 1-, 2- oder 3-Zusammenhangskomponenten zurück (für k=2 heißen diese Blöcke), z.B. für
● Planaritätstests, Einbettungsprobleme und Graph Drawing,
● Färbungsprobleme,
● Nowhere-Zero Flows,
● ...
● Struktureller Erkenntnisgewinn in Graphen, z.B. über
● „Gut vernetzte“ Gebiete
● Potentielle Angriffsstellen
© 12.10.17
Jens M. Schmidt
Block-Cut Trees
Sei G schlicht. Ein Block ist ein inklusionsmaximaler zshngd. Teilgraph ohne cutvertex (d.h. entweder 2-zusammenhängend oder eine Kante oder ein Knoten).
Lemma 1: Jede zwei Blöcke von G schneiden sich in höchstens einem Knoten.
v
Beweis:
● Angenommen Blöcke A und B schneiden sich in zwei Knoten.
● Dann existiert ein offenes Ohr für A;
zur Maximalität.
A
Lemma 2: Die Blöcke von G partitionieren E.
Beweis:
● Jede Kante ist nach Definition in einem Block enthalten.
● Wegen Lemma 1 liegt keine Kante in zwei Blöcken.
B
w
Lemma 3: Jeder Kreis von G ist in einem Block enthalten.
Beweis: Kreise sind 2-zusammenhängend.
© 12.10.17
Jens M. Schmidt
Block-Cut Trees
M = Menge der Blöcke von G
C = Menge der cut-vertices von G
Ein Block-Cut Tree ist der bipartite Graph mit Knotenmenge M  C und Kanten
zwischen B  M und c  C falls c  B.
G
Block-Cut Tree von G
© 12.10.17
Jens M. Schmidt
Block-Cut Trees
Theorem: Der Block-Cut Tree eines zusammenhängenden Graphen ist ein Baum:
Beweis:
● Ein Kreis hätte Länge 4 und enthält deswegen 2 cut-vertices v und w.
=> Ein Block ist nicht maximal, da ein offenes Ohr existiert, das v und w enthält.
Berechnung mit chain decompositions in O(n+m): siehe Übung.
© 12.10.17
Jens M. Schmidt
2-Kontrahierbare Kanten
Sei G/e der Graph der aus G durch Kontrahieren der Kante e entsteht
(entstehende Parallelkanten werden zu einer gebündelt).
e heißt k-kontrahierbar, wenn G/e k-zusammenhängend ist
Enthält jeder k-zusammenhängende Graph G  Kk+1 eine k-kontrahierbare Kante?
k=1: ja (jede Kante ist 1-kontrahierbar)
k=2: ja (es hat sogar jeder Knoten eine solche inzidente Kante; siehe Übung)
k=3: ja
k4: nein!
Beweis für k=2:
● Sei P das letzte Ohr einer Ohrendekomposition, das keine Kante ist (existiert).
i
● Dann ist jede Kante e  P 2-kontrahierbar:
i
● Wenn i=1 ist, ist P ein Kreis  K 
i
3
● Sonst ist G
i-1 2-zshng. und damit auch der Untergraph G i-1(Pi/e) von G/e
© 12.10.17
Jens M. Schmidt
Zusammenfassung
●
●
●
Seit den 1970ern sind verschiedene Linearzeitalgorithmen für obige Probleme
bekannt (Tarjan, Even, Harary, Gabow, Tsin, …)
Chain decompositions vereinfachen und vereinen diese
… und sind Schlüsselkonzept für analoge (kompliziertere) Strukturen für
3-Kanten- [Mehlhorn, Neumann, S. 2016] und 3-Zusammenhang [S. 2016].
Algorithmus berechnet...
Laufzeit
Methode
------------------------------------------------------------------------------------------------------------2-Kantenzusammenhangstest + alle Brücken O(n+m)
2-Zusammenhangstest + alle cut-vertices
O(n+m)
Offene Ohrendekomposition, falls 2-zshngd.
O(n+m) chain ist offenes Ohr
Ohrendekomposition, falls 2-kantenzshngd.
O(n+m) chain ist Ohr
Starke Orientierung, falls 2-kantenzshngd.
O(n+m) orientiere chains
st-Orientierung, falls 2-zshngd.
O(n+m) orientiere chains
st-numbering, falls 2-zshngd.
O(n+m) topologische Sortierung
Blöcke + Block-Cut Tree
O(n+m) bei Erstellung der chain d.
2-kontrahierbare Kante, falls 2-zshngd. und K3 O(n+m) in letztem langen Ohr © 12.10.17
Jens M. Schmidt
Herunterladen