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, uTi(v); w=Kind von v mit uTi(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, uTi(v); w=Kind von v mit uTi(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, uTi(v); w=Kind von v mit uTi(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, uTi(v); w=Kind von v mit uTi(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 k4: 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