©
16.09.20 Jens M. Schmidt
2-Zusammenhang mit Chain Decompositions
Jens M. Schmidt
C4
C3
C2
C1
C5
v10
v4 v1
v6
v5 v9
v3
v2
v7
v8
©
16.09.20 Jens M. Schmidt
●
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
Überblick
©
16.09.20 Jens M. Schmidt
●
S V ist ein Separator, falls G-S mehr Komponenten als G hat.
●
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.
●
S E heißt Schnitt, falls ein A V existiert mit (A):={xy E: x A,y A}=S (insbesondere ist G-S nicht zusammenhängend).
●
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 mit n>1 gilt: (G) (G) (G) D (G) .
Knoten- und Kantenzusammenhang
(G)=2
(G)=3
(G)=4 (Minimalgrad) D (G)=5 (Maximalgrad) Motivation:
●
Ausfallsichere Netzwerke
(PC- und Transportnetzwerke)
●
Struktur des Graphen
G
©
16.09.20 Jens M. Schmidt
Ziele:
●
Effiziente Erkennung von 2-Kanten- und 2-Zusammenhang
●
Weitere Charakterisierungen des 2-Zusammenhangs
●
Berechnung der 2-Zusammenhangskomponenten
Hilfreiche Implikation des Satzes von Menger [hier ohne Beweis]:
●
Graph G ist k-(kanten-)zusammenhängend <=> n>1 und G zwischen jeden zwei Knoten k intern knotendisjunkte (kantendisjunkte) Wege enthält.
2-Zusammenhang
2-zshng.?
2-kantenzshng.?
Brücke cut-vertex
nein nein nein
ja ja
nein ja
nein
©
16.09.20 Jens M. Schmidt
Ein Ohr eines Graphen G ist entweder ein Kreis P mit |V(G P)|=1 oder ein Pfad, der G genau in seinen Endknoten schneidet (letzteres Ohr heißt offenes Ohr).
Ohrendekompositionen
G P
G P
Ohr offenes Ohr
©
16.09.20 Jens M. Schmidt
Eine (offene) Ohrendekomposition von G ist eine Folge G
1,G
2,...,G
kvon Teilgraphen von G, so dass
●
G
1=: P
1ein Kreis ist
●
G
k= G ist, und für alle 0<i<k
●
G
i+1durch Hinzufügen eines (offenen) Ohres P
i+1zu G
ientsteht.
Ohrendekompositionen
offene Ohrendekomposition
©
16.09.20 Jens M. Schmidt
Eine (offene) Ohrendekomposition von G ist eine Folge G
1,G
2,...,G
kvon Teilgraphen von G, so dass
●
G
1=: P
1ein Kreis ist
●
G
k= G ist, und für alle 0<i<k
●
G
i+1durch Hinzufügen eines (offenen) Ohres P
i+1zu G
ientsteht.
Ohrendekompositionen
offene Ohrendekomposition
1
©
16.09.20 Jens M. Schmidt
Eine (offene) Ohrendekomposition von G ist eine Folge G
1,G
2,...,G
kvon Teilgraphen von G, so dass
●
G
1=: P
1ein Kreis ist
●
G
k= G ist, und für alle 0<i<k
●
G
i+1durch Hinzufügen eines (offenen) Ohres P
i+1zu G
ientsteht.
Ohrendekompositionen
offene Ohrendekomposition
1
©
16.09.20 Jens M. Schmidt
Eine (offene) Ohrendekomposition von G ist eine Folge G
1,G
2,...,G
kvon Teilgraphen von G, so dass
●
G
1=: P
1ein Kreis ist
●
G
k= G ist, und für alle 0<i<k
●
G
i+1durch Hinzufügen eines (offenen) Ohres P
i+1zu G
ientsteht.
Ohrendekompositionen
offene Ohrendekomposition
1
©
16.09.20 Jens M. Schmidt
Eine (offene) Ohrendekomposition von G ist eine Folge G
1,G
2,...,G
kvon Teilgraphen von G, so dass
●
G
1=: P
1ein Kreis ist
●
G
k= G ist, und für alle 0<i<k
●
G
i+1durch Hinzufügen eines (offenen) Ohres P
i+1zu G
ientsteht.
Ohrendekompositionen
offene Ohrendekomposition
1
©
16.09.20 Jens M. Schmidt
Theorem [Whitney'32]: Sei G schlicht.
●
G 2-zusammenhängend <=> G hat eine offene Ohrendekomposition
●
G 2-kantenzusammenhängend <=> G hat eine Ohrendekomposition Beweis (Kantenzusammenhang analog):
<=:
●
G
1ist Kreis und damit 2-zusammenhängend (Menger)
●
Hinzufügen eines offenen Ohres P
ierhält 2-Zusammenhang:
●
|V(G
i)|>2
●
G
ienthält keinen cut-vertex in P
i, da Restgraph zshngd. ist (wenn cut-vertex Endknoten ist, wegen 2-Zshng. von G
i)
●
G
ienthält keinen cut-vertex in G
i-1-P
i(warum?)
=>: jetzt algorithmisch mit Chain Decompositions
Ohrendekompositionen
P
iG
i-1G
iKreis G
1darf zusätzlich
gewählt werden
©
16.09.20 Jens M. Schmidt
●
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
Überblick
©
16.09.20 Jens M. Schmidt
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 jede Rückwärtskante e sei C(e) der mit T geschlossene Fundamentalkreis
●
Markiere jede Kante als unbesucht
●
Für jeden Knoten v in aufsteigender DFI (depth first index)-Reihenfolge und jede unbesuchte Rückwärtskante e inzident zu v
●
Traversiere C(e) von e aus bis zur ersten besuchten Kante (und markiere besuchte Kanten)
●
Nenne traversierten Teilgraphen chain. Sei C
idie i-te so gefundene chain.
Chain Decompositions
v10
v4
v1
v6
v5
v9 v3
v2
v7
v8
C4
C3
C2
C1
C5
v10
v4
v1
v6
v5
v9 v3
v2
v7
v8
r
G
©
16.09.20 Jens M. Schmidt
Nice facts:
●
Wenn C
1existiert (d.h. wenn eine Rückwartskante existiert), ist C
1ein Kreis.
●
Laufzeit: O(m)
●
Anzahl der chains ist?
Chain Decompositions
C4
C3
C2
C1
C5
v10
v4 v1
v6
v5 v9
v3
v2
v7
v8
©
16.09.20 Jens M. Schmidt
Nice facts:
●
Wenn C
1existiert (d.h. wenn eine Rückwartskante existiert), ist C
1ein Kreis.
●
Laufzeit: O(m)
●
Anzahl der chains ist m-n+1, da jede Rückwärtskante genau 1 chain erzeugt.
(dies gilt auch für alle Ohrendekompositionen durch leichtes Abzählargument) Die Folge C := (C
1,C
2,...,C
m-n+1) heißt chain decomposition von G.
Chain Decompositions
C4
C3
C2
C1
C5
v10
v4 v1
v6
v5 v9
v3
v2
v7
v8
©
16.09.20 Jens M. Schmidt
Lemma: Kante e ist Brücke <=> e ist nicht in einer chain von C enthalten Beweis:
=>:
●
Annahme: Sei e in C
iund sei b die Rückwartskante in C
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 Daraus folgt sofort:
Korollar [S. 2013]: G ist 2-kantenzshngd. => C ist Ohrendekomposition Theorem [S. 2013]: G ist 2-kantenzshngd. <=> C partitioniert E
2-Zusammenhangstests
T(x) e
x
leicht zu testen in Zeit O(m)!
©
16.09.20 Jens M. Schmidt
Lemma: Sei (G) 2. Dann ist v ein cut-vertex <=> v ist Endknoten einer Brücke oder erster Knoten eines Kreises in C-{C
1}.
Korollar [S. 2013]:
G ist 2-zshngd. <=> C partitioniert E, und C
1ist der einzige Kreis in C.
2-Zusammenhangstests
leicht zu testen in Zeit O(m) notwendig, da
C4
C3
C2
C1
C5
v10
v4
v1
v6
v5
v9
v3
v2
v7
v8
Brücke, da nicht in chain
cut-vertices, da erste Knoten einer Kreis-chain C
1Ergibt 2-Kanten- und 2-Zusammen- hangstest in Zeit O(m).
Falls G 2-kantenzshngd.: Chain Decom- position ist Ohrendekomposition.
Falls G 2-zshngd.: Chain Decomposition
ist offene Ohren-dekomposition.
©
16.09.20 Jens M. Schmidt
●
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
Überblick
©
16.09.20 Jens M. Schmidt
●
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).
Theorem [Robbins '39]: Für zusammenhängende Multigraphen 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
1zu gerichtetem Kreis
●
Füge jedes Ohr als gerichteten Pfad hinzu (Richtung beliebig)
●
Damit erreicht jeder neue Knoten jeden alten und umgekehrt
Starke Orientierungen können also in Zeit O(m) berechnet werden (falls existent).
Starke Orientierungen
mit Brücke keine starke Orientierung möglich Wann ist Städteplanung mit
Einbahnstraßen möglich, so
dass man „zurückkommt“?
©
16.09.20 Jens M. Schmidt
●
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.
Analoge Varianten für Kantenzusammenhang existieren
[2017 Schlipf-S. - Edge-Orders] [2019 Schlipf-S. - st-edge-numberings from ear d.].
st-Orientierungen und -numberings
st-Orientierung
v
4s
v
5v
6v
3t
st-numbering
3
1
2 4 5
n
Softwaredemo Pigale:
[2Connected.tgf]
©
16.09.20 Jens M. Schmidt
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.
●
<=: ?
st-Orientierungen und -numberings
v
4s
v
5v
6v
3t
3
1
2 4 5
n
st-Orientierung st-numbering
©
16.09.20 Jens M. Schmidt
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 zwischen jeden zwei Knoten v < w:
●
Sei K der Kreis, der aus w, den Pfaden der iterativ jeweils größeren und kleineren Nachbarn von w, und der Kante 1n besteht.
●
Falls v in K ist, enthält K die Mengerpfade zwischen v und w.
●
Andernfalls schließen die zwei Pfade der iterativ größeren und kleineren Nachbarn von v, die an K enden, einen Kreis.
st-Orientierungen und -numberings
v
4s
v
5v
6v
3t
3
1
2 4 5
n
st-Orientierung st-numbering
©
16.09.20 Jens M. Schmidt
Theorem: G 2-zshngd. <=> G hat ein st-numbering <=> G hat eine st-Orientierung.
Beweis:
=>: Algorithmisch [nach Brandes 2002] Existenzbeweis ist einfacher → Übung
●
Berechne chain decomposition mit r:=s und t als (eindeutigem) Kind von r in T.
●
Verwalte spezielles st-numbering < für die Vereinigung G
ider ersten i Ohren.
●
Repräsentiere Kanten ab mit a < b durch Orientierung a→b spätere st-Orientierung
●
Für G
1=C
1=s,a,b,...,t, initialisiere mit s<t und s<a<b<...<t.
st-Orientierungen und -numberings
v
4s
v
5v
6v
3t
©
16.09.20 Jens M. Schmidt
Theorem: G 2-zshngd. <=> G hat ein st-numbering <=> G hat eine st-Orientierung.
Beweis:
=>: Algorithmisch [nach Brandes 2002] Existenzbeweis ist einfacher → Übung
●
Berechne chain decomposition mit r:=s und t als (eindeutigem) Kind von r in T.
●
Verwalte spezielles st-numbering < für die Vereinigung G
ider ersten i Ohren.
●
Repräsentiere Kanten ab mit a < b durch Orientierung a→b spätere st-Orientierung
●
Für G
1=C
1=s,a,b,...,t, initialisiere mit s<t und s<a<b<...<t.
●
P
i+1=nächste chain mit Endknoten v und u, u T
i(v); w=Kind von v mit u T
i(w).
●
Falls v→w, orientiere P
i+1von v nach u & füge innere Knoten vor u in < ein.
st-Orientierungen und -numberings
v
4s
v
5v
6v
3t
s<v
3<t
©
16.09.20 Jens M. Schmidt
Theorem: G 2-zshngd. <=> G hat ein st-numbering <=> G hat eine st-Orientierung.
Beweis:
=>: Algorithmisch [nach Brandes 2002] Existenzbeweis ist einfacher → Übung
●
Berechne chain decomposition mit r:=s und t als (eindeutigem) Kind von r in T.
●
Verwalte spezielles st-numbering < für die Vereinigung G
ider ersten i Ohren.
●
Repräsentiere Kanten ab mit a < b durch Orientierung a→b spätere st-Orientierung
●
Für G
1=C
1=s,a,b,...,t, initialisiere mit s<t und s<a<b<...<t.
●
P
i+1=nächste chain mit Endknoten v und u, u T
i(v); w=Kind von v mit u T
i(w).
●
Falls v→w, orientiere P
i+1von v nach u & füge innere Knoten vor u in < ein.
st-Orientierungen und -numberings
v
4s
v
5v
6v
3t
s<v
3<t
s<v
4<v
3<t
©
16.09.20 Jens M. Schmidt
Theorem: G 2-zshngd. <=> G hat ein st-numbering <=> G hat eine st-Orientierung.
Beweis:
=>: Algorithmisch [nach Brandes 2002] Existenzbeweis ist einfacher → Übung
●
Berechne chain decomposition mit r:=s und t als (eindeutigem) Kind von r in T.
●
Verwalte spezielles st-numbering < für die Vereinigung G
ider ersten i Ohren.
●
Repräsentiere Kanten ab mit a < b durch Orientierung a→b spätere st-Orientierung
●
Für G
1=C
1=s,a,b,...,t, initialisiere mit s<t und s<a<b<...<t.
●
P
i+1=nächste chain mit Endknoten v und u, u T
i(v); w=Kind von v mit u T
i(w).
●
Falls v→w, orientiere P
i+1von v nach u & füge innere Knoten vor u in < ein.
●
Falls v←w, orientiere P
i+1von u nach v & füge innere Knoten nach u in < ein.
st-Orientierungen und -numberings
v
4s
v
5v
6v
3t
s<v
3<t
s<v
4<v
3<t
s<v
4<v
5<v
3<t
©
16.09.20 Jens M. Schmidt
Theorem: G 2-zshngd. <=> G hat ein st-numbering <=> G hat eine st-Orientierung.
Beweis:
=>: Algorithmisch [nach Brandes 2002] Existenzbeweis ist einfacher → Übung
●
Berechne chain decomposition mit r:=s und t als (eindeutigem) Kind von r in T.
●
Verwalte spezielles st-numbering < für die Vereinigung G
ider ersten i Ohren.
●
Repräsentiere Kanten ab mit a < b durch Orientierung a→b spätere st-Orientierung
●
Für G
1=C
1=s,a,b,...,t, initialisiere mit s<t und s<a<b<...<t.
●
P
i+1=nächste chain mit Endknoten v und u, u T
i(v); w=Kind von v mit u T
i(w).
●
Falls v→w, orientiere P
i+1von v nach u & füge innere Knoten vor u in < ein.
●
Falls v←w, orientiere P
i+1von u nach v & füge innere Knoten nach u in < ein.
st-Orientierungen und -numberings
s<v
3<t s<v
4<v
3<t s<v
4<v
5<v
3<t s<v
4<v
5<v
6<v
3<t
v
4s
v
5v
6v
3t
2
1
3
4 5
n
©
16.09.20 Jens M. Schmidt
Theorem: G 2-zshngd. <=> G hat ein st-numbering <=> G hat eine st-Orientierung.
Beweis:
●
Invariante: < ist st-numbering von G
i, so dass für jede Vater-Kind-Kante vw in T
iund jeden Knoten x in T
i(w) (des Teilgraphen) gilt:
●
v < w impliziert v < x (alle Knoten in T
i(w) sind größer als v)
●
v > w impliziert v > x (alle Knoten in T
i(w) sind kleiner als v)
●
Für G
1erfüllt.
●
Sei v Startknoten von P
i+1. Invariante für G
i+1ist erfüllt für:
●
vw und dessen Vorgängerbaumkanten
(da v < u und innere Knoten von P
i+1nahe u in <),
●
alle Baumkanten in P
i+1(nach Orientierung), und
●
alle weiteren Baumkanten.
●
Laufzeit: O(m).
st-Orientierungen und -numberings
v
4s
v
5v
6v
3t
Ti(w)
v
w
u
©
16.09.20 Jens M. Schmidt
Theorem: G 2-zshngd. <=> G hat ein st-numbering <=> G hat eine st-Orientierung.
Alternativer Beweis:
=>: Mit neuem einfachen Algorithmus [Schlipf-S. 2019]:
●
Sei P
1,...,P
kOhrendekomposition und p
iund q
iEndknoten des Ohres P
i(beliebig gewählt), so dass p
1=s, st P
1, q
1= . p
iheißt Repräsentant von P
i(gepunktet)
●
Ein innerer Knoten v von P
isei abhängig vom Repräsentanten p
i, von sich selbst und zusätzlich (rekursiv) von jedem Knoten, von dem p
iabhängig ist.
Hierbei gelten alle Knoten von P
1als innere Knoten von P
1.
●
Gewicht w(v) eines Knotens v ist die Anzahl aller von v abhängigen Knoten.
●
Berechnung von letztem zum ersten Ohr in Zeit O(m)
Easy st-Numberings
3
4 1
2
v
4s
v
5v
6t
v
2©
16.09.20 Jens M. Schmidt
Theorem: G 2-zshngd. <=> G hat ein st-numbering <=> G hat eine st-Orientierung.
Alternativer Beweis:
=>: Mit neuem einfachen Algorithmus [Schlipf-S. 2019]:
●
Sei P
1,...,P
kOhrendekomposition und p
iund q
iEndknoten des Ohres P
i(beliebig gewählt), so dass p
1=s, st P
1, q
1= . p
iheißt Repräsentant von P
i(gepunktet)
●
Ein innerer Knoten v von P
isei abhängig vom Repräsentanten p
i, von sich selbst und zusätzlich (rekursiv) von jedem Knoten, von dem p
iabhängig ist.
Hierbei gelten alle Knoten von P
1als innere Knoten von P
1.
●
Gewicht w(v) eines Knotens v ist die Anzahl aller von v abhängigen Knoten.
●
Berechnung von letztem zum ersten Ohr in Zeit O(m)
Easy st-Numberings
3
4 1
2
v
4s
v
5v
6t
v
21
©
16.09.20 Jens M. Schmidt
Theorem: G 2-zshngd. <=> G hat ein st-numbering <=> G hat eine st-Orientierung.
Alternativer Beweis:
=>: Mit neuem einfachen Algorithmus [Schlipf-S. 2019]:
●
Sei P
1,...,P
kOhrendekomposition und p
iund q
iEndknoten des Ohres P
i(beliebig gewählt), so dass p
1=s, st P
1, q
1= . p
iheißt Repräsentant von P
i(gepunktet)
●
Ein innerer Knoten v von P
isei abhängig vom Repräsentanten p
i, von sich selbst und zusätzlich (rekursiv) von jedem Knoten, von dem p
iabhängig ist.
Hierbei gelten alle Knoten von P
1als innere Knoten von P
1.
●
Gewicht w(v) eines Knotens v ist die Anzahl aller von v abhängigen Knoten.
●
Berechnung von letztem zum ersten Ohr in Zeit O(m)
Easy st-Numberings
3
4 1
2
v
4s
v
5v
6t
v
21 2
©
16.09.20 Jens M. Schmidt
Theorem: G 2-zshngd. <=> G hat ein st-numbering <=> G hat eine st-Orientierung.
Alternativer Beweis:
=>: Mit neuem einfachen Algorithmus [Schlipf-S. 2019]:
●
Sei P
1,...,P
kOhrendekomposition und p
iund q
iEndknoten des Ohres P
i(beliebig gewählt), so dass p
1=s, st P
1, q
1= . p
iheißt Repräsentant von P
i(gepunktet)
●
Ein innerer Knoten v von P
isei abhängig vom Repräsentanten p
i, von sich selbst und zusätzlich (rekursiv) von jedem Knoten, von dem p
iabhängig ist.
Hierbei gelten alle Knoten von P
1als innere Knoten von P
1.
●
Gewicht w(v) eines Knotens v ist die Anzahl aller von v abhängigen Knoten.
●
Berechnung von letztem zum ersten Ohr in Zeit O(m)
Easy st-Numberings
3
4 1
2
v
4s
v
5v
6t
v
21 2
1
3
©
16.09.20 Jens M. Schmidt
Theorem: G 2-zshngd. <=> G hat ein st-numbering <=> G hat eine st-Orientierung.
Alternativer Beweis:
=>: Mit neuem einfachen Algorithmus [Schlipf-S. 2019]:
●
Sei P
1,...,P
kOhrendekomposition und p
iund q
iEndknoten des Ohres P
i(beliebig gewählt), so dass p
1=s, st P
1, q
1= . p
iheißt Repräsentant von P
i(gepunktet)
●
Ein innerer Knoten v von P
isei abhängig vom Repräsentanten p
i, von sich selbst und zusätzlich (rekursiv) von jedem Knoten, von dem p
iabhängig ist.
Hierbei gelten alle Knoten von P
1als innere Knoten von P
1.
●
Gewicht w(v) eines Knotens v ist die Anzahl aller von v abhängigen Knoten.
●
Berechnung von letztem zum ersten Ohr in Zeit O(m)
Easy st-Numberings
3
4 2 1
v
4s
v
5v
6t
v
21 2
1
1 3 6
©
16.09.20 Jens M. Schmidt
Theorem: G 2-zshngd. <=> G hat ein st-numbering <=> G hat eine st-Orientierung.
Alternativer Beweis:
=>: Mit neuem einfachen Algorithmus [Schlipf-S. 2019]:
●
Idee: Gewicht eines Knotens schafft genügend Platz für seine finale st-Nummer.
●
Intervall I(p
1) := [1,n]. Schiebe dieses von Repräsentanten auf innere Knoten.
Easy st-Numberings
3
4 2 1
v
4s
v
5v
6t
v
21 2
1
1
3
6
©
16.09.20 Jens M. Schmidt
Theorem: G 2-zshngd. <=> G hat ein st-numbering <=> G hat eine st-Orientierung.
Alternativer Beweis:
=>: Mit neuem einfachen Algorithmus [Schlipf-S. 2019]:
●
Idee: Gewicht eines Knotens schafft genügend Platz für seine finale st-Nummer.
●
Intervall I(p
1) := [1,n]. Schiebe dieses von Repräsentanten auf innere Knoten.
●
Für i:=1 bis k, partitioniere I[p
i] in Intervalle, für jeden Knoten von P
i-q
ieins:
Intervalle bleiben immer konsekutiv und dadurch vergleichbar mit <.
●
Traversiere die inneren Knoten von P
ivon q
inach p
i(exklusive p
iund q
i).
●
Der jeweils nächste Knoten v erhält die w(v) verbleibenden
●
größten Nummern in I[p
i], falls I[p
i]<I[q
i] oder i=1
Easy st-Numberings
3
4 2 1
v
4s
v
5v
6t
v
21 2
1
1 3
6
[1,6]©
16.09.20 Jens M. Schmidt
Theorem: G 2-zshngd. <=> G hat ein st-numbering <=> G hat eine st-Orientierung.
Alternativer Beweis:
=>: Mit neuem einfachen Algorithmus [Schlipf-S. 2019]:
●
Idee: Gewicht eines Knotens schafft genügend Platz für seine finale st-Nummer.
●
Intervall I(p
1) := [1,n]. Schiebe dieses von Repräsentanten auf innere Knoten.
●
Für i:=1 bis k, partitioniere I[p
i] in Intervalle, für jeden Knoten von P
i-q
ieins:
Intervalle bleiben immer konsekutiv und dadurch vergleichbar mit <.
●
Traversiere die inneren Knoten von P
ivon q
inach p
i(exklusive p
iund q
i).
●
Der jeweils nächste Knoten v erhält die w(v) verbleibenden
●
größten Nummern in I[p
i], falls I[p
i]<I[q
i] oder i=1
Easy st-Numberings
3
4 2 1
v
4s
v
5v
6t
v
21 2
1
1 3 6
[4,6]
[1,6]
©
16.09.20 Jens M. Schmidt
Theorem: G 2-zshngd. <=> G hat ein st-numbering <=> G hat eine st-Orientierung.
Alternativer Beweis:
=>: Mit neuem einfachen Algorithmus [Schlipf-S. 2019]:
●
Idee: Gewicht eines Knotens schafft genügend Platz für seine finale st-Nummer.
●
Intervall I(p
1) := [1,n]. Schiebe dieses von Repräsentanten auf innere Knoten.
●
Für i:=1 bis k, partitioniere I[p
i] in Intervalle, für jeden Knoten von P
i-q
ieins:
Intervalle bleiben immer konsekutiv und dadurch vergleichbar mit <.
●
Traversiere die inneren Knoten von P
ivon q
inach p
i(exklusive p
iund q
i).
●
Der jeweils nächste Knoten v erhält die w(v) verbleibenden
●
größten Nummern in I[p
i], falls I[p
i]<I[q
i] oder i=1
●
Aktualisiere Intervall I[p
i] von p
iauf die verbleibenden Werte.
Easy st-Numberings
3
4 2 1
v
4s
v
5v
6t
v
21 2
1
1 3 6
[3,3]
[4,6]
[1,6]
©
16.09.20 Jens M. Schmidt
Theorem: G 2-zshngd. <=> G hat ein st-numbering <=> G hat eine st-Orientierung.
Alternativer Beweis:
=>: Mit neuem einfachen Algorithmus [Schlipf-S. 2019]:
●
Idee: Gewicht eines Knotens schafft genügend Platz für seine finale st-Nummer.
●
Intervall I(p
1) := [1,n]. Schiebe dieses von Repräsentanten auf innere Knoten.
●
Für i:=1 bis k, partitioniere I[p
i] in Intervalle, für jeden Knoten von P
i-q
ieins:
Intervalle bleiben immer konsekutiv und dadurch vergleichbar mit <.
●
Traversiere die inneren Knoten von P
ivon q
inach p
i(exklusive p
iund q
i).
●
Der jeweils nächste Knoten v erhält die w(v) verbleibenden
●
größten Nummern in I[p
i], falls I[p
i]<I[q
i] oder i=1
●
Aktualisiere Intervall I[p
i] von p
iauf die verbleibenden Werte.
Easy st-Numberings
3
4 2 1
v
4s
v
5v
6t
v
21 2
1
1 3
6
[1,2][3,3]
[4,6]
©
16.09.20 Jens M. Schmidt
Theorem: G 2-zshngd. <=> G hat ein st-numbering <=> G hat eine st-Orientierung.
Alternativer Beweis:
=>: Mit neuem einfachen Algorithmus [Schlipf-S. 2019]:
●
Idee: Gewicht eines Knotens schafft genügend Platz für seine finale st-Nummer.
●
Intervall I(p
1) := [1,n]. Schiebe dieses von Repräsentanten auf innere Knoten.
●
Für i:=1 bis k, partitioniere I[p
i] in Intervalle, für jeden Knoten von P
i-q
ieins:
Intervalle bleiben immer konsekutiv und dadurch vergleichbar mit <.
●
Traversiere die inneren Knoten von P
ivon q
inach p
i(exklusive p
iund q
i).
●
Der jeweils nächste Knoten v erhält die w(v) verbleibenden
●
größten Nummern in I[p
i], falls I[p
i]<I[q
i] oder i=1
●
kleinsten Nummern in I[p
i], falls I[p
i]>I[q
i].
●
Aktualisiere Intervall I[p
i] von p
iauf die verbleibenden Werte.
Easy st-Numberings
3
4 2 1
v
4s
v
5v
6t
v
21 2
1
1 3 6
[3,3]
[4,6]
[2,2]
[1,1]
©
16.09.20 Jens M. Schmidt
Theorem: G 2-zshngd. <=> G hat ein st-numbering <=> G hat eine st-Orientierung.
Alternativer Beweis:
=>: Mit neuem einfachen Algorithmus [Schlipf-S. 2019]:
●
Idee: Gewicht eines Knotens schafft genügend Platz für seine finale st-Nummer.
●
Intervall I(p
1) := [1,n]. Schiebe dieses von Repräsentanten auf innere Knoten.
●
Für i:=1 bis k, partitioniere I[p
i] in Intervalle, für jeden Knoten von P
i-q
ieins:
Intervalle bleiben immer konsekutiv und dadurch vergleichbar mit <.
●
Traversiere die inneren Knoten von P
ivon q
inach p
i(exklusive p
iund q
i).
●
Der jeweils nächste Knoten v erhält die w(v) verbleibenden
●
größten Nummern in I[p
i], falls I[p
i]<I[q
i] oder i=1
●
kleinsten Nummern in I[p
i], falls I[p
i]>I[q
i].
●
Aktualisiere Intervall I[p
i] von p
iauf die verbleibenden Werte.
Easy st-Numberings
3
4 2 1
v
4s
v
5v
6t
v
21 2
1
1 3 6
[3,3]
[6,6]
[2,2]
[1,1]
[4,5]
©
16.09.20 Jens M. Schmidt
Theorem: G 2-zshngd. <=> G hat ein st-numbering <=> G hat eine st-Orientierung.
Alternativer Beweis:
=>: Mit neuem einfachen Algorithmus [Schlipf-S. 2019]:
●
Idee: Gewicht eines Knotens schafft genügend Platz für seine finale st-Nummer.
●
Intervall I(p
1) := [1,n]. Schiebe dieses von Repräsentanten auf innere Knoten.
●
Für i:=1 bis k, partitioniere I[p
i] in Intervalle, für jeden Knoten von P
i-q
ieins:
Intervalle bleiben immer konsekutiv und dadurch vergleichbar mit <.
●
Traversiere die inneren Knoten von P
ivon q
inach p
i(exklusive p
iund q
i).
●
Der jeweils nächste Knoten v erhält die w(v) verbleibenden
●
größten Nummern in I[p
i], falls I[p
i]<I[q
i] oder i=1
●
kleinsten Nummern in I[p
i], falls I[p
i]>I[q
i].
●
Aktualisiere Intervall I[p
i] von p
iauf die verbleibenden Werte.
Easy st-Numberings
3
4 2 1
v
4s
v
5v
6t
v
21 2
1
1 3 6
[3,3]
[6,6]
[2,2]
[1,1]
[4,4]
[5,5]
©
16.09.20 Jens M. Schmidt
Theorem: G 2-zshngd. <=> G hat ein st-numbering <=> G hat eine st-Orientierung.
Alternativer Beweis:
=>: Mit neuem einfachen Algorithmus [Schlipf-S. 2019]:
●
Idee: Gewicht eines Knotens schafft genügend Platz für seine finale st-Nummer.
●
Intervall I(p
1) := [1,n]. Schiebe dieses von Repräsentanten auf innere Knoten.
●
Für i:=1 bis k, partitioniere I[p
i] in Intervalle, für jeden Knoten von P
i-q
ieins:
Intervalle bleiben immer konsekutiv und dadurch vergleichbar mit <.
●
Traversiere die inneren Knoten von P
ivon q
inach p
i(exklusive p
iund q
i).
●
Der jeweils nächste Knoten v erhält die w(v) verbleibenden
●
größten Nummern in I[p
i], falls I[p
i]<I[q
i] oder i=1
●
kleinsten Nummern in I[p
i], falls I[p
i]>I[q
i].
●
Aktualisiere Intervall I[p
i] von p
iauf die verbleibenden Werte.
→ st-Numbering in Zeit O(m)
Aus jeder Ohrendekomposition berechenbar (bisherige Ansätze
funktionierten nur für spezielle, von DFS-Bäumen abhängige Ohrendekomp.).
Easy st-Numberings
2
1
4
5 6
3
©
16.09.20 Jens M. Schmidt
●
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
Überblick
©
16.09.20 Jens M. Schmidt
Motivation:
●
In vielen Problemen zieht man sich auf 1-, 2- oder 3-Zusammenhangs- komponenten 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
Block-Cut Trees
©
16.09.20 Jens M. Schmidt
Sei G schlicht. Ein Block ist ein zshngd. Graph ohne cut-vertex (d.h. entweder 2- zusammenhängend oder eine Kante oder ein Knoten).
Ein Block von G ist ein inklusionsmaximaler Teilgraph von G, der ein Block ist.
Lemma 1: Jede zwei Blöcke von G schneiden sich in höchstens einem Knoten.
Beweis:
●
Angenommen Blöcke A und B≠A schneiden sich in mindestens zwei Knoten.
●
Falls V(A)=V(B), sind A und B wegen Inklusionsmaximalität nicht verschieden.
=> |V(A)|>2<|V(B)| und es existiert ein Knoten a V(A)-V(B).
●
Nach Satz von Menger existieren zwei intern
knotendisjunkte Pfade von a zu Knoten aus B in A-E(B).
●
Deren Vereinigung ist offenes Ohr für B; zur Maximalität.
Lemma 2: Jede zwei Blöcke von G sind kantendisjunkt.
Beweis: Jede Kante ist in einem Block enthalten => Folgerung aus Lemma 1.
Lemma 3: Jeder Kreis von G ist in einem Block enthalten.
Beweis: Kreise sind 2-zusammenhängend.
Block-Cut Trees
A B
v w
a b
©
16.09.20 Jens M. Schmidt
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.
Block-Cut Trees
Block-Cut Tree von G
G
©
16.09.20 Jens M. Schmidt
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 vor. Übung
Block-Cut Trees
©
16.09.20 Jens M. Schmidt
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 K
k+1eine 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
idas letzte Ohr einer Ohrendekomposition, das keine Kante ist (existiert).
●
Dann ist jede Kante e P
i2-kontrahierbar:
●
Wenn i=1 ist, ist P
iein Kreis K
3
●
Sonst ist G
i-12-zusammenhängend und damit auch der aufspannende Teilgraph G
i-1( P
i/e ) von G/e.
2-Kontrahierbare Kanten
©
16.09.20 Jens M. Schmidt
●
Seit den 1970ern sind verschiedene Linearzeitalgorithmen für obige Probleme bekannt (Tarjan, Even, Harary, Gabow, Tsin, …)
●
Chain Decompositions vereinfachen und vereinen diese
●