Graphentheorie. Eulersche Graphen. Eulersche Graphen. Eulersche Graphen. Rainer Schrader. 14. November Gliederung.

Ähnliche Dokumente
Graphentheorie. Zusammenhang. Zusammenhang. Zusammenhang. Rainer Schrader. 13. November 2007

Vorlesung Diskrete Strukturen Eulersche und Hamiltonsche Graphen

Das Briefträgerproblem

Westfählische Wilhelms-Universität. Eulersche Graphen. Autor: Jan-Hendrik Hoffeld

Vorlesung Diskrete Strukturen Eulersche und Hamiltonsche Graphen

Bemerkung: Der vollständige Graph K n hat n(n 1)

Freie Bäume und Wälder

4. Kreis- und Wegeprobleme

Diskrete Strukturen Kapitel 4: Graphentheorie (Grundlagen)

Nachbarschaft, Grad, regulär, Inzidenz

Minimal spannender Baum

3 Klassifikation wichtiger Optimierungsprobleme

Algorithmen und Datenstrukturen

Eulerweg, Eulerkreis. Das Königsberger Brückenproblem. Definition 3.1. Ein Weg, der jede Kante von G genau einmal

Graphentheorie. Formale Grundlagen (WIN) 2008S, F. Binder. Vorlesung im 2008S

Breitensuche BFS (Breadth First Search)

\ E) eines Graphen G = (V, E) besitzt die gleiche Knotenmenge V und hat als Kantenmenge alle Kanten des vollständigen Graphen ohne die Kantenmenge E.

Bäume und Wälder. Definition 1

9. Übung Algorithmen I

Diskrete Strukturen. Hausaufgabe 1 (5 Punkte) Hausaufgabe 2 (5 Punkte) Wintersemester 2007/08 Lösungsblatt Januar 2008

Definition Ein gerichteter Graph G = (V, E) ist ein Graph von geordneten Paaren (u, v) mit u V und v V.

Algorithmen und Datenstrukturen 2-1. Seminar -

WS 2013/14. Diskrete Strukturen

Algorithmen II Vorlesung am

3. Minimale Spannbäume. Definition 99 T heißt minimaler Spannbaum (MSB, MST) von G, falls T Spannbaum von G ist und gilt:

Theoretische Informatik 1

Diskrete Strukturen Kapitel 4: Graphentheorie (Bäume)

Felix Brandt, Jan Johannsen. Vorlesung im Wintersemester 2008/09

Lösungen zu Kapitel 5

Theoretische Informatik. nichtdeterministische Turingmaschinen NDTM. Turingmaschinen. Rainer Schrader. 29. April 2009

Diskrete Mathematik. Hamiltonsche Graphen Teil I. Karina Arndt

Quicksort ist ein Divide-and-Conquer-Verfahren.

Studientag zur Algorithmischen Mathematik

WS 2009/10. Diskrete Strukturen

Kapitel 3. Kapitel 3 Graphentheorie

Graphdurchmusterung, Breiten- und Tiefensuche

Graphentheorie. Organisatorisches. Organisatorisches. Organisatorisches. Rainer Schrader. 23. Oktober 2007

Graphentheorie Mathe-Club Klasse 5/6

kontextfreie Grammatiken Theoretische Informatik kontextfreie Grammatiken kontextfreie Grammatiken Rainer Schrader 14. Juli 2009 Gliederung

Algorithmen und Datenstrukturen Tutorium Übungsaufgaben

3-Färbbarkeit. Korollar: Zu Entscheiden, ob ein Graph k-färbbar ist mit k 3, ist NP-vollständig.

WESTFÄLISCHE WILHELMS-UNIVERSITÄT MÜNSTER. Über 7 Brücken... wissen leben WWU Münster. Dietmar Lammers Hochschultag 201

Algorithmische Graphentheorie

Wiederholung zu Flüssen

5. Bäume und Minimalgerüste

Von den Kanten von Gewicht 4 wird nur noch eine ausgewählt, die zu dem letzten nicht ausgewählten Knoten führt: 1. Juni

9: Gewichtete Graphen

2 Tiefen- und Breitensuche

Graphen. Graphen und ihre Darstellungen

II. Wissenschaftliche Argumentation

Grundbegriffe der Informatik

Bernd Döring. Wege, Plätten, Färben. Vom Problem zur Theorie der Graphen

Theoretische Informatik. Exkurs: Komplexität von Optimierungsproblemen. Optimierungsprobleme. Optimierungsprobleme. Exkurs Optimierungsprobleme

Einheit 11 - Graphen

Proseminar Online Algorithmen, Prof. Dr. Rolf Klein

Knoten-Partitionierung in feste Eigenschaften ist NP-schwer

Definition : Diechromatische Zahl eines Graphen G ist die kleinste Anzahl chromatische Zahl von Farben für eine zulässige Färbung.

Zentralübung zur Vorlesung Diskrete Strukturen (Prof. Esparza)

Zentralübung zur Vorlesung Diskrete Strukturen (Prof. Mayr)

Fortgeschrittene Netzwerk- und Graph-Algorithmen

3.1 Konstruktion von minimalen Spannbäumen Es gibt zwei Prinzipien für die Konstruktion von minimalen Spannbäumen (Tarjan): blaue Regel rote Regel

Kapitel 3: Die Sätze von Euler, Fermat und Wilson. 8 Der Satz von Euler

Daniel Platt Einführung in die Graphentheorie

Elementargeometrie. Prof. Dr. Andreas Meister SS digital von: Frank Lieberknecht

= n (n 1) 2 dies beruht auf der Auswahl einer zweielementigen Teilmenge aus V = n. Als Folge ergibt sich, dass ein einfacher Graph maximal ( n E = 2

Wiederholung aus Diskreter Mathematik I: I: Graphentheorie

Satz 324 Sei M wie oben. Dann gibt es für ein geeignetes k Konstanten c i > 0 und Permutationsmatrizen P i, i = 1,...

f h c 7 a 1 b 1 g 2 2 d

Single Source Sortest Path Negative Kreise All-Pair Shortest Path Problem Minimum Mean Cycle Zusammenfassung. Shortest Paths

Programmiertechnik II

Programmiertechnik II

Diskrete Mathematik. Kryptographie und Graphentheorie

KAPITEL 3 MATCHINGS IN BIPARTITEN GRAPHEN

5. Musterlösung. Problem 1: Vitale Kanten * ω(f) > ω(f ). (a) Untersuchen Sie, ob es in jedem Netzwerk vitale Kanten gibt.

8. Übung zu Algorithmen I 15. Juni 2016

2. Repräsentationen von Graphen in Computern

Übungsblatt 2 - Lösung

Literatur. Dominating Set (DS) Dominating Sets in Sensornetzen. Problem Minimum Dominating Set (MDS)

8 Diskrete Optimierung

Diskrete Mathematik. Sebastian Iwanowski FH Wedel. Kap. 6: Graphentheorie

Tutoraufgabe 1 (Suchen in Graphen):

Das Heiratsproblem. Definition Matching

3. Musterlösung. Problem 1: Boruvka MST

Bipartite Graphen. Beispiele

8.4 Digraphen mit negativen Kantengewichten Grundsätzliches Betrachte Startknoten s und einen Kreis C mit Gesamtlänge < 0.

Theoretische Grundlagen der Informatik

4.2 Minimale Spannbäume: Der Algorithmus von Jarník/Prim Definition 4.2.1

Diskrete Mathematik 1

durch Einfügen von Knoten konstruiert werden kann.

κ(k) k K S Algorithmus zur Bestimmung eines spannenden Baumes mit minimalen Kosten (Kruskal, 1965).

6. Übung zur Linearen Optimierung SS08

Voronoi-Diagramme INSTITUT FÜR THEORETISCHE INFORMATIK FAKULTÄT FÜR INFORMATIK. Dr. Martin Nöllenburg Vorlesung Algorithmische Geometrie

9. Algorithmus der Woche Die Eulertour Wie Leonhard Euler das Haus vom Nikolaus zeichnet

Weitere NP-vollständige Probleme

Der Vier-Farben-Satz

Zentralübung zur Vorlesung Diskrete Strukturen

10. Übungsblatt zu Algorithmen I im SS 2010

x x y x y Informatik II Schaltkreise Schaltkreise Schaltkreise Rainer Schrader 3. November 2008

Zur Zykelschreibweise von Permutationen

Graphentheorie Graphentheorie. Grundlagen Bäume Eigenschaften von Graphen Graphen-Algorithmen Matchings und Netzwerke

Transkript:

Graphentheorie Rainer Schrader Zentrum für Angewandte Informatik Köln 14. November 2007 1 / 22 2 / 22 Gliederung eulersche und semi-eulersche Graphen Charakterisierung eulerscher Graphen Berechnung eines Euler-Pfads Zur Erinnerung: D C A B Frage: Ist es möglich, einen Rundgang so zu machen, dass man jede Brücke genau einmal passiert und zum Ausgangspunkt zurückkehrt? 3 / 22 4 / 22

ein zusammenhängender Graph heißt semi-eulersch, wenn ein Pfad v 0, v 1,..., v k existiert, der alle Kanten genau einmal durchläuft offensichtlich ist nicht jeder Graph eulersch, auch nicht jeder semi-eulersche Graph der Graph heißt eulersch, wenn ein semi-eulerscher Pfad existiert mit v 0 = v k das Königsberger-Brücken-Problem besteht dann darin, für den folgenden Graphen zu entscheiden, ob er eulersch (bzw. semi-eulersch) ist: D c 2 3 4 5 1 9 10 8 6 7 12 1 9 11 8 2 10 6 7 5 4 3 C A b d das folgende Lemma liefert die Basis für die Charakterisierung eulerscher Graphen B a 5 / 22 6 / 22 Gliederung eulersche und semi-eulersche Graphen Charakterisierung eulerscher Graphen Berechnung eines Euler-Pfads Lemma 1 Sei G ein Graph mit d (v ) 2 für alle v V. Dann enthält G einen Kreis. (i) G enthält eine Schlinge oder Mehrfachkanten (ii) G ist einfach: konstruiere eine Kantenfolge v 0, v 1,... wie folgt: wähle v 0 V beliebig, wähle v i+1 N(v i ) v i 1 da V <, muss irgendwann ein Knoten zum zweiten Mal erreicht werden. 7 / 22 8 / 22

Satz 2 Ein zusammenhängender Graph ist genau dann eulersch, wenn d (v ) gerade ist für alle v V. sei P ein geschlossener eulerscher Pfad dann wird jeder Knoten genau so oft verlassen wie erreicht und jedesmal auf verschiedenen Kanten daher ist d (v ) gerade sei umgkehrt G ein Graph mit d (v ) gerade für alle v V nach dem vorigen Lemma 1 enthält G einen Kreis C falls C schon alle Kanten von G enthält, ist die Behauptung bewiesen andernfalls betrachte H = G C es ist E (H) < E (G) und d (v ) gerade für alle v V (H) damit folgt per Induktion: jede Komponente von H hat einen geschlossenen eulerschen Pfad, zusammen mit C ergeben diese einen geschlossenen eulerschen Pfad von G. wir führen eine Induktion über E durch da G zusammenhängend ist, folgt d (v ) 2 für alle v V nach dem vorigen Lemma 1 enthält G einen Kreis C 9 / 22 10 / 22 Als Folgerung aus dem letzten Satz ergibt sich: Korollar 3 Ein zusammenhängender Graph ist genau dann eulersch, wenn er Vereinigung von kantendisjunkten Kreisen ist. Korollar 4 Ein zusammenhängender Graph ist semi-eulersch genau dann, wenn die Anzahl der Knoten mit ungeraden Grad 0 oder 2 ist. damit enthält er entweder keine Knoten mit ungeradem Grad oder zwei umgekehrt ist der Graph nach Satz Satz 2 entweder eulersch (und damit semi-eulersch) oder er wird eulersch, wenn wir einen neuen Knoten a hinzufügen, den wir mit den beiden ungeraden Knoten verbinden im letzten Fall sind die ungeraden Knoten in jedem geschlossenen Euler-Pfad direkte Nachbarn von a wenn wir a und die beiden neuen Kanten entfernen, erhalten wir den gesuchten Euler-Pfad. ein semi-eulerscher Graph besitzt entweder einen geschlossenen eulerschen Pfad (d.h. er ist eulersch) oder einen normalen eulerschen Pfad 11 / 22 12 / 22

Mit der gleichen Technik folgt: Korollar 5 Sei G ein zusammenhängender Graph und 2k die Anzahl der ungeraden Knoten. Dann lässt sich E in k kantendisjunkte Wege zerlegen. Gliederung eulersche und semi-eulersche Graphen Charakterisierung eulerscher Graphen Berechnung eines Euler-Pfads seien die ungeraden Knoten x 1,..., x k, y 1,..., y k füge zu G neue Knoten a 1,..., a k 1 i k hinzu mit Kanten (a i, x i ) und (a i, y i ) für der so entstandene Graph ist eulersch wie vorher, kommen in jedem eulerschen Pfad die Kanten (a i, x i ), (a i, y i ) direkt nacheinander vor entfernen wir diese Kanten, so erhalten wir die gewünschte Zerlegung. 13 / 22 14 / 22 der Beweis von Satz 2 liefert einen Algorithmus zur Bestimmung eines eulerschen Pfades die einzige Schwierigkeit, die es zu beachten gibt, ist die folgende: sei G k der Teilgraph der Kanten, die wir nach k Schritten noch nicht durchlaufen haben sei x der aktuelle Knoten x Beispiel: betrachte den folgenden Eulerschen Graphen v w u die Konstruktion beginne in Knoten u und wählt die Kanten (u, v ) und (v, w ) v wir müssen vermeiden, eine Schnittkante zu wählen, da wir sonst nicht mehr in die Zusammenhangskomponente zurückkommen w u es sei denn, d Gk (x) = 1. danach darf nicht die Kante (w, u) gewählt werden 15 / 22 16 / 22

Bestimmung eines Euler-Pfads (Fleury) (1) wähle eine beliebigen Startknoten a (2) folge einem Kantenzug, der keine Kante zweimal benutzt (3) sei x der im Schritt k erreichte Knoten (5) sei G k der von den unbenutzten Kanten induzierte Teilgraph (4) falls x a und d Gk (x) > 1 : (5) verlasse x niemals auf einer Schnittkante von G k (4) falls x = a: (6) verlasse a auf einer unbenutzten Kante, (7) falls keine solche existiert, Stop. Satz 6 Der von dem obigen Algorithmus erzeugte Pfad ist eulersch. (1) die Regeln können eingehalten werden: sei x a der erreichte Knoten da d G (x) gerade, ist d Gk (x ) ungerade somit existiert immer eine Kante in G k, die mit x inzidiert ist d Gk (x) = 1, so kann x auf dieser Kante verlassen werden ist d Gk (x) > 1, so existiert mindestens eine Kante, die nicht Schnittkante in G k ist: 17 / 22 18 / 22 andernfalls existieren zwei Schnittkanten in G k, die x mit zwei Komponenten C und D verbinden: C (2) der in den ersten k Schritten erzeugte Graph ist der Anfang eines eulerschen Pfades: denn nach Erzeugen eines Knotens x a existieren genau zwei Knoten (x und a) in G k, die ungeraden Grad haben x D nach Korollar 4 existiert dann noch ein Pfad in G k, der semi-eulersch ist. d Gk (x) ist ungerade, die Anzahl der ungeraden Knoten in C aber gerade damit muss C noch einen weiteren ungeraden Knoten enthalten entsprechend D Der Algorithmus kann so implementiert werden, dass er eine lineare Laufzeit von O( V + E ) hat. Wir beschreiben im folgenden eine rekursive Version zur Berechnung von Euler-Touren: da G k aber genau zwei Knoten mit ungeradem Grad hat (den Startknoten a und den Knoten x), liefert dies einen Widerspruch. 19 / 22 20 / 22

rekursiver Algorithmus zur Bestimmung eines Euler-Kreiese (1) wähle ein v 1 V beliebig (2) W = Euler(G, v 1 ) Euler(G, v ) (1) setze W = v und x = v (2) falls δ(x) = gehe zu (5) (3) andernfalls wähle e = (x, y ) δ(x ) (4) setze W = W, e, y und x = y setze E = E e gehe zu (2) für das Chinese-Postman-Problem und andere Fragestellungen wird es von Interesse sein, einen Graphen G = (V, E ) durch Hinzufügen von Kanten eulersch zu machen dazu benötigen wir noch einige andere Hilfsmittel, die wir in einem späteren Kapitel behandeln werden. (5) sei W = v 1, e 1, v 2, e 2,..., v k, e k, v k +1 (6) für i = 1 bis k do (7) sei W i = Euler(G, v i ) end do (8) setze W = W 1, e 1, W 2, e 2,..., W k, e k, v k +1 (9) return 21 / 22 22 / 22