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