Studientag zur Algorithmischen Mathematik

Werbung
Outline
Eulertouren
Zweizusammenhang
Operationen auf Multigraphen
Studientag zur Algorithmischen Mathematik
Eulertouren, 2-Zusammenhang, Bäume und
Baumisomorphismen
Winfried Hochstättler
Diskrete Mathematik und Optimierung
FernUniversität in Hagen
22. Mai 2011
Bäume
Outline
Eulertouren
Zweizusammenhang
Operationen auf Multigraphen
Outline
Eulertouren
Charakterisierung im Fall ungerichteter Graphen
Gerichtete Eulertouren
Zweizusammenhang
Operationen auf Multigraphen
Bäume
Charakterisierung von Bäumen
Isomorphietest von Bäumen
Bäume
Outline
Eulertouren
Zweizusammenhang
Operationen auf Multigraphen
Eulertouren
Eine Eulertour ist ein geschlossener Spaziergang, der jede Kante
genau einmal besucht.
Bäume
Outline
Eulertouren
Zweizusammenhang
Operationen auf Multigraphen
Eulertouren
Eine Eulertour ist ein geschlossener Spaziergang, der jede Kante
genau einmal besucht.
G ist eulersch : ⇐⇒ G hat Eulertour
Bäume
Outline
Eulertouren
Zweizusammenhang
Operationen auf Multigraphen
Eulertouren
Eine Eulertour ist ein geschlossener Spaziergang, der jede Kante
genau einmal besucht.
G ist eulersch : ⇐⇒ G hat Eulertour
3
5
1
6
2
ist eulersch
4
Bäume
Outline
Eulertouren
Zweizusammenhang
Operationen auf Multigraphen
Eulertouren
Eine Eulertour ist ein geschlossener Spaziergang, der jede Kante
genau einmal besucht.
G ist eulersch : ⇐⇒ G hat Eulertour
3
5
1
6
2
4
ist eulersch
ist nicht eulersch
Bäume
Outline
Eulertouren
Zweizusammenhang
Operationen auf Multigraphen
Eulersche Graphen
Satz
Sei G = (V , E) ein Graph. Paarweise äquivalent sind
(i) G ist eulersch.
(ii) G ist zusammenhängend und ∀v ∈ V : deg(v ) ist gerade.
(iii) G ist zusammenhängend und E ist kantendisjunkte Vereinigung
von Kreisen.
Bäume
Outline
Eulertouren
Zweizusammenhang
Operationen auf Multigraphen
Eulersche Graphen
Satz
Sei G = (V , E) ein Graph. Paarweise äquivalent sind
(i) G ist eulersch.
(ii) G ist zusammenhängend und ∀v ∈ V : deg(v ) ist gerade.
(iii) G ist zusammenhängend und E ist kantendisjunkte Vereinigung
von Kreisen.
Beweis.
(i) ⇒ (ii): klar (genauso oft rein wie raus).
Bäume
Outline
Eulertouren
Zweizusammenhang
Operationen auf Multigraphen
Eulersche Graphen
Satz
Sei G = (V , E) ein Graph. Paarweise äquivalent sind
(i) G ist eulersch.
(ii) G ist zusammenhängend und ∀v ∈ V : deg(v ) ist gerade.
(iii) G ist zusammenhängend und E ist kantendisjunkte Vereinigung
von Kreisen.
Beweis.
(i) ⇒ (ii): klar (genauso oft rein wie raus).
(ii) =⇒ (iii): Wähle v0 ∈ V und laufe solange noch neue Kanten
gefunden werden.
Bäume
Outline
Eulertouren
Zweizusammenhang
Operationen auf Multigraphen
Eulersche Graphen
Satz
Sei G = (V , E) ein Graph. Paarweise äquivalent sind
(i) G ist eulersch.
(ii) G ist zusammenhängend und ∀v ∈ V : deg(v ) ist gerade.
(iii) G ist zusammenhängend und E ist kantendisjunkte Vereinigung
von Kreisen.
Beweis.
(i) ⇒ (ii): klar (genauso oft rein wie raus).
(ii) =⇒ (iii): Wähle v0 ∈ V und laufe solange noch neue Kanten
gefunden werden. Da deg(v ) gerade ist, endet dieses
Vorgehen in v0 .
Bäume
Outline
Eulertouren
Zweizusammenhang
Operationen auf Multigraphen
Eulersche Graphen
Satz
Sei G = (V , E) ein Graph. Paarweise äquivalent sind
(i) G ist eulersch.
(ii) G ist zusammenhängend und ∀v ∈ V : deg(v ) ist gerade.
(iii) G ist zusammenhängend und E ist kantendisjunkte Vereinigung
von Kreisen.
Beweis.
(i) ⇒ (ii): klar (genauso oft rein wie raus).
(ii) =⇒ (iii): Wähle v0 ∈ V und laufe solange noch neue Kanten
gefunden werden. Da deg(v ) gerade ist, endet dieses
Vorgehen in v0 . Enferne die so gefundenen Kreise und
fahre rekursiv fort, bis der Graph leer ist.
Bäume
Outline
Eulertouren
Zweizusammenhang
Operationen auf Multigraphen
Eulersche Graphen
Satz
Sei G = (V , E) ein Graph. Paarweise äquivalent sind
(i) G ist eulersch.
(ii) G ist zusammenhängend und ∀v ∈ V : deg(v ) ist gerade.
(iii) G ist zusammenhängend und E ist kantendisjunkte Vereinigung
von Kreisen.
Beweis.
(i) ⇒ (ii): klar (genauso oft rein wie raus).
(ii) =⇒ (iii): Wähle v0 ∈ V und laufe solange noch neue Kanten
gefunden werden. Da deg(v ) gerade ist, endet dieses
Vorgehen in v0 . Enferne die so gefundenen Kreise und
fahre rekursiv fort, bis der Graph leer ist.
(iii) =⇒ (i): Setze Kreise zu Tour zusammen.
Bäume
Outline
Eulertouren
Zweizusammenhang
Operationen auf Multigraphen
Beispiel:
3
2
4
5
1
6
7
Bäume
Outline
Eulertouren
Zweizusammenhang
Operationen auf Multigraphen
Beispiel:
3
2
4
5
1
6
7
Bäume
Outline
Eulertouren
Zweizusammenhang
Operationen auf Multigraphen
Beispiel:
3
2
4
5
1
6
7
Bäume
Outline
Eulertouren
Zweizusammenhang
Operationen auf Multigraphen
Beispiel:
3
2
4
5
1
6
7
Bäume
Outline
Eulertouren
Zweizusammenhang
Operationen auf Multigraphen
Beispiel:
3
2
4
5
1
6
7
Bäume
Outline
Eulertouren
Zweizusammenhang
Operationen auf Multigraphen
Beispiel:
3
2
4
5
1
6
7
Bäume
Outline
Eulertouren
Zweizusammenhang
Operationen auf Multigraphen
Beispiel:
3
2
4
5
1
6
7
Bäume
Outline
Eulertouren
Zweizusammenhang
Operationen auf Multigraphen
Beispiel:
3
2
4
5
1
6
7
Bäume
Outline
Eulertouren
Zweizusammenhang
Operationen auf Multigraphen
Beispiel:
3
2
4
5
1
6
7
Bäume
Outline
Eulertouren
Zweizusammenhang
Operationen auf Multigraphen
Genauso oft rein wie raus
Satz: Sei D = (V , A) ein gerichteter Graph. Äquivalent sind
(1) D eulersch
(2) D zusammenhängend und ∀v ∈ V : deg+ (v ) = deg− (v )
(3) D zusammenhängend und A disjunkte Vereinigung von
gerichteten Kreisen
Bäume
Outline
Eulertouren
Zweizusammenhang
Operationen auf Multigraphen
Zweizusammenhang
G = (V , E) heißt k -zusammenhängend (k ≥ 2), falls
• |V | ≥ k + 1 und
• beim Löschen von k − 1 Knoten bleibt G zusammenhängend
Bäume
Outline
Eulertouren
Zweizusammenhang
Operationen auf Multigraphen
Zweizusammenhang
G = (V , E) heißt k -zusammenhängend (k ≥ 2), falls
• |V | ≥ k + 1 und
• beim Löschen von k − 1 Knoten bleibt G zusammenhängend
Beispiel
ist 2-zusammenhängend.
Bäume
Outline
Eulertouren
Zweizusammenhang
Operationen auf Multigraphen
Zweizusammenhang
G = (V , E) heißt k -zusammenhängend (k ≥ 2), falls
• |V | ≥ k + 1 und
• beim Löschen von k − 1 Knoten bleibt G zusammenhängend
Beispiel
ist 2-zusammenhängend.
ist nicht 2-zusammenhängend.
Bäume
Outline
Eulertouren
Zweizusammenhang
Operationen auf Multigraphen
Zweizusammenhang
G = (V , E) heißt k -zusammenhängend (k ≥ 2), falls
• |V | ≥ k + 1 und
• beim Löschen von k − 1 Knoten bleibt G zusammenhängend
Beispiel
ist 2-zusammenhängend.
ist nicht 2-zusammenhängend.
Schnittknoten
Bäume
Outline
Eulertouren
Zweizusammenhang
Operationen auf Multigraphen
Ohrenzerlegungen
Eine Ohrenzerlegung (C0 , P1 , P2 , . . . , Pm ) besteht aus einem Kreis
(C0 ) und Pfaden (Pi ) beliebiger Länge, die wie folgt angefügt werden:
Bäume
Outline
Eulertouren
Zweizusammenhang
Operationen auf Multigraphen
Ohrenzerlegungen
Eine Ohrenzerlegung (C0 , P1 , P2 , . . . , Pm ) besteht aus einem Kreis
(C0 ) und Pfaden (Pi ) beliebiger Länge, die wie folgt angefügt werden:
erlaubt:
P1
P3
C0
P2
Bäume
Outline
Eulertouren
Zweizusammenhang
Operationen auf Multigraphen
Ohrenzerlegungen
Eine Ohrenzerlegung (C0 , P1 , P2 , . . . , Pm ) besteht aus einem Kreis
(C0 ) und Pfaden (Pi ) beliebiger Länge, die wie folgt angefügt werden:
nicht erlaubt:
erlaubt:
P1
P1
P2
P3
C0
C0
P2
P2 ist kein Ohr, da P2 kein Pfad,
sondern Kreis ist
Bäume
Outline
Eulertouren
Zweizusammenhang
Operationen auf Multigraphen
Zweizusammenhang und Ohrenzerlegungen
Satz
Sei G = (V , E) Graph. Paarweise äquivalent sind:
(i) G ist 2-zusammenhängend
(ii) je zwei Knoten liegen auf gemeinsamem Kreis
(iii) G hat Ohrenzerlegung
Bäume
Outline
Eulertouren
Zweizusammenhang
Operationen auf Multigraphen
Zweizusammenhang und Ohrenzerlegungen
Satz
Sei G = (V , E) Graph. Paarweise äquivalent sind:
(i) G ist 2-zusammenhängend
(ii) je zwei Knoten liegen auf gemeinsamem Kreis
(iii) G hat Ohrenzerlegung
Beweis.
(ii) ⇒ (i): klar.
Bäume
Outline
Eulertouren
Zweizusammenhang
Operationen auf Multigraphen
Zweizusammenhang und Ohrenzerlegungen
Satz
Sei G = (V , E) Graph. Paarweise äquivalent sind:
(i) G ist 2-zusammenhängend
(ii) je zwei Knoten liegen auf gemeinsamem Kreis
(iii) G hat Ohrenzerlegung
Beweis.
(ii) ⇒ (i): klar.
(i) ⇒ (ii): Induktion nach n :=dist(u, v ).
Bäume
Outline
Eulertouren
Zweizusammenhang
Operationen auf Multigraphen
Bäume
Zweizusammenhang und Ohrenzerlegungen
Satz
Sei G = (V , E) Graph. Paarweise äquivalent sind:
(i) G ist 2-zusammenhängend
(ii) je zwei Knoten liegen auf gemeinsamem Kreis
(iii) G hat Ohrenzerlegung
Beweis.
(ii) ⇒ (i): klar.
(i) ⇒ (ii): Induktion nach n :=dist(u, v ).
u
v
v
u
x
vn−1
Outline
Eulertouren
Zweizusammenhang
Operationen auf Multigraphen
Zweizusammenhang und Ohrenzerlegungen
Satz
Sei G = (V , E) Graph. Paarweise äquivalent sind:
(i) G ist 2-zusammenhängend
(ii) je zwei Knoten liegen auf gemeinsamem Kreis
(iii) G hat Ohrenzerlegung
Beweis.
(ii) ⇒ (i): klar.
(i) ⇒ (ii): Induktion nach n :=dist(u, v ).
(i) ⇐⇒ (iii): Algorithmisch, siehe Kurstext.
Bäume
Outline
Eulertouren
Zweizusammenhang
Operationen auf Multigraphen
Operationen auf Multigraphen I
Einfügen einer Kante
˙ 0 })
G + e0 := (V , E ∪{e
Bäume
Outline
Eulertouren
Zweizusammenhang
Operationen auf Multigraphen
Operationen auf Multigraphen I
Einfügen einer Kante
˙ 0 })
G + e0 := (V , E ∪{e
Entfernen einer Kante
G \ e := (V , E \ {e})
Bäume
Outline
Eulertouren
Zweizusammenhang
Operationen auf Multigraphen
Operationen auf Multigraphen II
Entfernen eines Knotens
G \ v := (V \ {v }, {e ∈ E | v ∈
/ e})
Bäume
Outline
Eulertouren
Zweizusammenhang
Operationen auf Multigraphen
Operationen auf Multigraphen II
Entfernen eines Knotens
G \ v := (V \ {v }, {e ∈ E | v ∈
/ e})
Unterteilen einer Kante e = (v , w)
˙
G%e := (V ∪{u},
(E\{e})∪{(v , u), (u, w)})
Bäume
Outline
Eulertouren
Zweizusammenhang
Operationen auf Multigraphen
Operationen auf Multigraphen III
Kontraktion einer Kante e = (v , w)
G/e
:=
˙
((V ∪{u})
\ {v , w},
{e0 ∈ E | e0 ∩ {v , w} = ∅}
∪{(u, x) | (v , x) ∈ E}
∪{(y , u) | (y , w) ∈ E})
Bäume
Outline
Eulertouren
Zweizusammenhang
Operationen auf Multigraphen
Charakterisierung von Bäumen
Ein kreisfreier und zusammenhängender Graph T heißt Baum.
Satz
Sei G = (V , E) ein Graph. Paarweise äquivalent sind:
Bäume
Outline
Eulertouren
Zweizusammenhang
Operationen auf Multigraphen
Charakterisierung von Bäumen
Ein kreisfreier und zusammenhängender Graph T heißt Baum.
Satz
Sei G = (V , E) ein Graph. Paarweise äquivalent sind:
1. G ist Baum.
Bäume
Outline
Eulertouren
Zweizusammenhang
Operationen auf Multigraphen
Charakterisierung von Bäumen
Ein kreisfreier und zusammenhängender Graph T heißt Baum.
Satz
Sei G = (V , E) ein Graph. Paarweise äquivalent sind:
1. G ist Baum.
2. G ist kreisfrei und |E| = |V | − 1.
Bäume
Outline
Eulertouren
Zweizusammenhang
Operationen auf Multigraphen
Charakterisierung von Bäumen
Ein kreisfreier und zusammenhängender Graph T heißt Baum.
Satz
Sei G = (V , E) ein Graph. Paarweise äquivalent sind:
1. G ist Baum.
2. G ist kreisfrei und |E| = |V | − 1.
3. G ist zusammenhängend und |E| = |V | − 1.
Bäume
Outline
Eulertouren
Zweizusammenhang
Operationen auf Multigraphen
Charakterisierung von Bäumen
Ein kreisfreier und zusammenhängender Graph T heißt Baum.
Satz
Sei G = (V , E) ein Graph. Paarweise äquivalent sind:
1. G ist Baum.
2. G ist kreisfrei und |E| = |V | − 1.
3. G ist zusammenhängend und |E| = |V | − 1.
4. ∀v , w ∈ V : ∃! v , w-Weg in G.
Bäume
Outline
Eulertouren
Zweizusammenhang
Operationen auf Multigraphen
Charakterisierung von Bäumen
Ein kreisfreier und zusammenhängender Graph T heißt Baum.
Satz
Sei G = (V , E) ein Graph. Paarweise äquivalent sind:
1. G ist Baum.
2. G ist kreisfrei und |E| = |V | − 1.
3. G ist zusammenhängend und |E| = |V | − 1.
4. ∀v , w ∈ V : ∃! v , w-Weg in G.
5. G kreisfrei und ∀e ∈
/ E : G + e hat Kreis.
Bäume
Outline
Eulertouren
Zweizusammenhang
Operationen auf Multigraphen
Charakterisierung von Bäumen
Ein kreisfreier und zusammenhängender Graph T heißt Baum.
Satz
Sei G = (V , E) ein Graph. Paarweise äquivalent sind:
1. G ist Baum.
2. G ist kreisfrei und |E| = |V | − 1.
3. G ist zusammenhängend und |E| = |V | − 1.
4. ∀v , w ∈ V : ∃! v , w-Weg in G.
5. G kreisfrei und ∀e ∈
/ E : G + e hat Kreis.
6. G zusammenhängend und ∀e ∈ E : G \ e unzusammenhängend.
Bäume
Outline
Eulertouren
Zweizusammenhang
Operationen auf Multigraphen
Existenz von Blättern
Der Beweis der äquivalenten Charakterisierung von Bäumen benutzt
an mehreren Stellen das folgende Lemma.
Bäume
Outline
Eulertouren
Zweizusammenhang
Operationen auf Multigraphen
Existenz von Blättern
Der Beweis der äquivalenten Charakterisierung von Bäumen benutzt
an mehreren Stellen das folgende Lemma. Ein Knoten v ∈ V heißt
Blatt von V , wenn deg(v ) = 1.
Bäume
Outline
Eulertouren
Zweizusammenhang
Operationen auf Multigraphen
Existenz von Blättern
Der Beweis der äquivalenten Charakterisierung von Bäumen benutzt
an mehreren Stellen das folgende Lemma. Ein Knoten v ∈ V heißt
Blatt von V , wenn deg(v ) = 1.
Lemma
Ein Baum mit mindestens zwei Knoten hat mindestens zwei Blätter.
Bäume
Outline
Eulertouren
Zweizusammenhang
Operationen auf Multigraphen
Existenz von Blättern
Der Beweis der äquivalenten Charakterisierung von Bäumen benutzt
an mehreren Stellen das folgende Lemma. Ein Knoten v ∈ V heißt
Blatt von V , wenn deg(v ) = 1.
Lemma
Ein Baum mit mindestens zwei Knoten hat mindestens zwei Blätter.
Beweis.
Sei P ein Pfad maximaler Länge in T , seien dessen Endknoten u und
v . Dann ist u 6= v und beide müssen Blätter des Graphen sein.
Bäume
Outline
Eulertouren
Zweizusammenhang
Operationen auf Multigraphen
Isomorphietest von Bäumen
Wenn Bäume gleich gezeichnet sind, sehen wir Ihnen an, ob Sie
isomorph sind.
Bäume
Outline
Eulertouren
Zweizusammenhang
Operationen auf Multigraphen
Isomorphietest von Bäumen
Wenn Bäume gleich gezeichnet sind, sehen wir Ihnen an, ob Sie
isomorph sind. Wir wollen also eine Vereinbarung treffen, wie ein
Baum zu zeichnen ist.
Bäume
Outline
Eulertouren
Zweizusammenhang
Operationen auf Multigraphen
Isomorphietest von Bäumen
Wenn Bäume gleich gezeichnet sind, sehen wir Ihnen an, ob Sie
isomorph sind. Wir wollen also eine Vereinbarung treffen, wie ein
Baum zu zeichnen ist. Formal ordnen wir dafür jedem Baum einen
Code zu.
Bäume
Outline
Eulertouren
Zweizusammenhang
Operationen auf Multigraphen
Isomorphietest von Bäumen
((())())
(())
()
()
gepfl. Baum
((())())
korrekter Code
((())())
Bäume
Outline
Eulertouren
Zweizusammenhang
Operationen auf Multigraphen
Isomorphietest von Bäumen
((())())
(())
(()(()))
()
()
(())
()
()
gepfl. Baum
((())())
korrekter Code
((())())
(()(()))
Bäume
Outline
Eulertouren
Zweizusammenhang
Operationen auf Multigraphen
Isomorphietest von Bäumen
((())())
(())
(()(()))
()
()
(())
()
()
gepfl. Baum
Wurzelbäumen
(sort. Kind. lex.)
((())())
(()(()))
korrekter Code
vorher nicht
korrekt sortiert
((())())
((())())
Bäume
Outline
Eulertouren
Zweizusammenhang
Operationen auf Multigraphen
Bäume
Isomorphietest von Bäumen
((())())
(())
(()(()))
()
()
(((())))
(())
()
((()))
()
()
gepfl. Baum
Wurzelbäumen
(sort. Kind. lex.)
(())
((())())
(()(()))
korrekter Code
vorher nicht
korrekt sortiert
((())())
((())())
(((())))
Outline
Eulertouren
Zweizusammenhang
Operationen auf Multigraphen
Bäume
Isomorphietest von Bäumen
((())())
(())
(()(()))
()
()
(((())))
(())
()
((()))
()
()
gepfl. Baum
Wurzelbäumen
(sort. Kind. lex.)
Bäumen
(())
((())())
(()(()))
(((())))
korrekter Code
vorher nicht
korrekt sortiert
nicht korrekt
gewurzelt
((())())
((())())
Outline
Eulertouren
Zweizusammenhang
Operationen auf Multigraphen
Bäume
Isomorphietest von Bäumen
((())())
(())
(()(()))
()
()
(((())))
(())
()
((()))
()
()
gepfl. Baum
Wurzelbäumen
(sort. Kind. lex.)
Bäumen
(best. Zentrum)
(())
((())())
(()(()))
(((())))
korrekter Code
vorher nicht
korrekt sortiert
nicht korrekt
gewurzelt
((())())
((())())
((())())
Outline
Eulertouren
Zweizusammenhang
Operationen auf Multigraphen
Man zeigt induktiv
Satz
Bäume sind genau dann isomorph, wenn sie den gleichen Code
haben.
Hieraus erhalten wir folgendes Verfahren:
Bäume
Outline
Eulertouren
Zweizusammenhang
Operationen auf Multigraphen
Man zeigt induktiv
Satz
Bäume sind genau dann isomorph, wenn sie den gleichen Code
haben.
Hieraus erhalten wir folgendes Verfahren:
1. Bestimme Zentrum
Bäume
Outline
Eulertouren
Zweizusammenhang
Operationen auf Multigraphen
Man zeigt induktiv
Satz
Bäume sind genau dann isomorph, wenn sie den gleichen Code
haben.
Hieraus erhalten wir folgendes Verfahren:
1. Bestimme Zentrum
2. Erstelle rekursiv Codes für Unterbäume der Zentrumsknoten,
lexikographisch geordnet.
Bäume
Outline
Eulertouren
Zweizusammenhang
Operationen auf Multigraphen
Man zeigt induktiv
Satz
Bäume sind genau dann isomorph, wenn sie den gleichen Code
haben.
Hieraus erhalten wir folgendes Verfahren:
1. Bestimme Zentrum
2. Erstelle rekursiv Codes für Unterbäume der Zentrumsknoten,
lexikographisch geordnet.
3. Zentrumsknoten mit kleinerem Code ist Wurzel
Bäume
Outline
Eulertouren
Zweizusammenhang
Operationen auf Multigraphen
Beispiel
()
z1
()
z2
()
()
a
()
b
()
()
()
Bäume
Outline
Eulertouren
Zweizusammenhang
Operationen auf Multigraphen
Beispiel
()
(()()())
z1
z2
()
(()())
()
()
a
()
b
()
(()())
()
()
Bäume
Outline
Eulertouren
Zweizusammenhang
Operationen auf Multigraphen
Beispiel
((()()())())
((()())(()()))
()
(()()()) z1
z2
()
(()())
()
()
a
()
b
()
(()())
()
()
Bäume
Outline
Eulertouren
Zweizusammenhang
Operationen auf Multigraphen
Beispiel
((()()())())
((()())(()()))
()
(()()()) z1
z2
()
(()())
()
()
a
()
b
()
(()())
()
()
Es gilt: c(z1 ) c(z2 ), also ist z1 Wurzel und der Gesamtcode lautet
( ((()())(()())) (()()()) () )
|
{z
} | {z } |{z}
z2
a
b
Bäume
Herunterladen