Diskrete Mathematik Graphentheorie (Übersicht)

Ähnliche Dokumente
WS 2009/10. Diskrete Strukturen

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

Vier-Farben-Vermutung (1)

6. Übung zur Linearen Optimierung SS08

Wiederholung zu Flüssen

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

WS 2009/10. Diskrete Strukturen

Aufgabe 4.2 Sei G = (V, E, l) ein ungerichteter, gewichteter und zusammenhängender Graph.

Anmerkungen zur Übergangsprüfung

William Rowan Hamilton,

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

entheoretische Konzepte und Algorithmen

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

Studientag zur Algorithmischen Mathematik

Minimal spannende Bäume

Effiziente Algorithmen I

5 Graphen und Polyeder

1. Übung Graphentheorie WS2016/17

Algorithmen und Datenstrukturen 2

8 Diskrete Optimierung

3. Musterlösung. Problem 1: Boruvka MST

Durchschnitt von Matroiden

Kapitel 5: Minimale spannende Bäume Gliederung der Vorlesung

Ferienkurs zur algorithmischen diskreten Mathematik Kapitel 3: Minimal aufspannende Bäume und Matroide

Technische Universität Wien Institut für Computergraphik und Algorithmen Arbeitsbereich für Algorithmen und Datenstrukturen

ADS: Algorithmen und Datenstrukturen 2

Minimal spannender Baum

Proseminar Online Algorithmen, Prof. Dr. Rolf Klein

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

Der Vier-Farben-Satz

MafI I: Logik & Diskrete Mathematik (F. Hoffmann)

Algorithmen und Datenstrukturen Kapitel 10

Das Briefträgerproblem

Algorithmen II Vorlesung am

Ein Graph ist ein Paar (V,E), wobei V eine Menge von Knoten und E eine Menge von Kanten (v,w) mit v,w in V ist.

2 Tiefen- und Breitensuche

Vollständiger Graph. Definition 1.5. Sei G =(V,E) ein Graph. Gilt {v, w} E für alle v, w V,v w, dann heißt G vollständig (complete).

Graphen: Datenstrukturen und Algorithmen

WS 2013/14. Diskrete Strukturen

Kapitel 7: Flüsse in Netzwerken und Anwendungen Gliederung der Vorlesung

4. Kreis- und Wegeprobleme Abstände in Graphen

Grundbegriffe der Informatik

Graphen. Leonhard Euler ( )

Graph Paar (V,E) V: nichtleere Menge von Knoten (vertex) E: Menge von Kanten (edges): Relation (Verbindung) zwischen den Knoten

Algorithmen und Datenstrukturen 2

Einführung in die Graphentheorie. Modellierung mit Graphen. Aufgabe

Vorlesungen vom 5.Januar 2005

Algorithmische Graphentheorie

Kapitel 4: Minimale spannende Bäume Gliederung der Vorlesung

Guten Morgen und Willkommen zur Saalübung!

Kombinatorische Optimierung

C++, LEDA und STL Visualisierung minimal/maximal aufspannender Bäume

Grundbegriffe der Informatik

1. Einleitung wichtige Begriffe

Technische Universität München Zentrum Mathematik Propädeutikum Diskrete Mathematik. Weihnachtsblatt

Graphentheorie Mathe-Club Klasse 5/6

2 Eulersche Polyederformel und reguläre Polyeder

Minimal spannende Bäume

Freie Universität Berlin. Diskrete Mathematik. Ralf Borndörfer, Stephan Schwartz. Freie Universität. 08. April 2013

Algorithmen und Datenstrukturen 2

Kapitel 4: Minimal spannende Bäume Gliederung der Vorlesung

Liegt eine Kante k auf einem Zyklus Z, so liegt k auf dem Rand genau zweier

Überblick. TSP Vergleich der Lösungen. Das Travelling Salesman Problem. Nearest-Neighbor Heuristik für TSP

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

Graphen und Algorithmen

Planare Graphen, Traveling Salesman Problem, Transportnetze. Formale Methoden der Informatik WiSe 2012/2013 teil 4, folie 1 (von 61)

Very simple methods for all pairs network flow analysis

Algorithmen und Datenstrukturen (WS 2007/08) 63

Graphalgorithmen 2. Oleksiy Rybakov. 3. Juni Betreuer: Tobias Werth, Daniel Brinkers

6. Flüsse in Netzwerken Berechnung maximaler Flüsse. dann berechnet der Markierungsalgorithmus für beliebige Kapazitätsfunktionen

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

Ausarbeitung zum Modulabschluss. Graphentheorie. spannende Bäume, bewertete Graphen, optimale Bäume, Verbindungsprobleme

Ausarbeitung über den Satz von Menger und den Satz von König

Gliederung. Definition Wichtige Aussagen und Sätze Algorithmen zum Finden von Starken Zusammenhangskomponenten

Algorithmen und Datenstrukturen

Effiziente Algorithmen und Datenstrukturen I. Kapitel 9: Minimale Spannbäume

Institut für Mathematik Geometrie und Lineare Algebra J. Schönenberger-Deuel. Aufgabe 1. Wir geben nur zwei von sehr vielen möglichen Strategien.

Die in den Suchverfahren konstruierten Graphen waren zusammenhängend und enthielten keine Kreise. Also vereinbaren wir:

1 topologisches Sortieren

Datenstrukturen. Mariano Zelke. Sommersemester 2012

4 Greedy-Algorithmen (gierige Algorithmen)

Anwendungen von Netzwerkfluss. Wojciech Polcwiartek Institut für Informatik FU Berlin

Polyeder, Konvexität, Platonische und archimedische Körper

Graphenalgorithmen I

2. Repräsentationen von Graphen in Computern

5. Graphen und Algorithmen

Kombinatorische Optimierung

23. November Betweenness Centrality Closeness Centrality. H. Meyerhenke: Algorithmische Methoden zur Netzwerkanalyse 108

Algorithmen und Datenstrukturen

Grundlagen Datenstrukturen Transitive Hülle Traversierung Kürzeste Wege Spannender Baum Max. Fluss Zuordnungen. 6. Graphen

Vorlesung Diskrete Strukturen Graphen: Wieviele Bäume?

INSTITUT FÜR THEORETISCHE INFORMATIK, PROF. SANDERS

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

Flüsse, Schnitte, bipartite Graphen

1 Vollständige Induktion

Informatik 11 Kapitel 2 - Rekursive Datenstrukturen

Algorithmische Graphentheorie

Einführung in die Graphentheorie. Modellierung mit Graphen. Aufgabe

Datenstrukturen & Algorithmen

Flüsse in Netzwerken. Seminar über Algorithmen SoSe Mike Rohland & Julia Schenk

Transkript:

Diskrete Mathematik Graphentheorie (Übersicht) Dr. C. Löh 2. Februar 2010 0 Graphentheorie Grundlagen Definition (Graph, gerichteter Graph). Ein Graph ist ein Paar G = (V, E), wobei V eine Menge ist (die Menge der Knoten) und E { {u, v} u, v V, u v } eine Teilmenge ist (die Menge der Kanten). Ein gerichteter Graph ist ein Paar G = (V, E), wobei V eine Menge ist und E V V eine Teilmenge ist. Konvention. Wir werden im folgenden immer annehmen, dass [gerichtete] Graphen nur endlich viele Knoten bzw. Kanten haben. Außerdem wurden die folgenden Begriffe/Beispiele behandelt: vollständige Graphen, vollständige bipartite Graphen Modellierung von Situationen/Problemen durch Graphen Isomorphismen von [gerichteten] Graphen adjazente/benachbarte Knoten Grad von Knoten in [gerichteten] Graphen, Ein-Grad und Aus-Grad in gerichteten Graphen Gradfolge Untergraphen und induzierte Untergraphen [gerichtete] Wege, [gerichtete] Kreise [stark] zusammenhängende [gerichtete] Graphen, [starke] Zusammenhangskomponenten Abstand von Knoten Adjazenzmatrizen, Adjazenzlisten Satz (Summe der Grade in einem Graph). Sei G = (V, E) ein [gerichteter] Graph. Dann ist deg(v) = 2 #E. v V Insbesondere ist in jedem [gerichteten] Graph die Anzahl der Knoten mit ungeradem Grad gerade. 1

1 Bäume Definition (Baum, Wald). Ein Graph ist ein Baum, wenn er zusammenhängend ist und keine Kreise enthält. Ein Graph ist ein Wald, wenn alle Zusammenhangskomponenten Bäume sind. Weitere Begriffe zu Bäumen: Blätter, innere Knoten (jeder Baum mit mindestens zwei Knoten besitzt ein Blatt) aufspannende Bäume (jeder zusammenhängende Graph besitzt einen aufspannenden Baum) Satz (Charakterisierung von Bäumen). Sei G = (V, E) ein Graph mit V. Dann sind die folgenden Aussagen äquivalent: 1. Der Graph G ist ein Baum. 2. Je zwei Knoten von G sind durch genau einen Weg verbunden. 3. Der Graph G ist zusammenhängend und es gilt #E = #V 1. Begriffe zu Wurzel- und Binärbäumen: Wurzelbäume Vorgänger/Nachfolger von Knoten in Wurzelbäumen Beispiele von Wurzelbäumen (Spielbäume, Parsebäume) Höhe von Wurzelbäumen und Induktion über Teilbäume Binärbäume Satz (Höhe von Binärbäumen). Für alle Binärbäume T = (V, E) gilt 2 ht(t )+1 #V + 1. Grundlegende Algorithmen zur Bestimmung von aufspannenden Bäumen sind Breitensuche (breadth first search) und Tiefensuche (depth first search), siehe Abbildung 1). Eigenschaften von Breitensuche/Tiefensuche: Die Algorithmen terminieren. Der ausgegebene Graph ist tatsächlich ein Baum, der alle Knoten aus der Zusammenhangskomponente des Startknotens enthält. Für Breitensuche gilt: Mit Hilfe der FIFO-Eigenschaft der Queue kann man induktiv beweisen, dass der ausgegebene Baum kürzeste Wege zwischen dem Startknoten und den anderen Knoten seiner Zusammenhangskomponente liefert. Tiefensuche hingegen berechnet im allgemeinen keine kürzesten Wege; dafür ist Tiefensuche lokaler. 2

Algorithmus (Breitensuche/Tiefensuche). Eingabe Ein Graph G und ein Knoten r von G Ausgabe Ein aufspannender Baum der Zusammenhangskomponente von r in G. Datenstrukturen T ein Graph [die Ausgabe] M eine Menge von Knoten [bereits besichtigte Knoten] Q Queue von Paaren von Knoten [welcher Knoten ist als nächstes zu bearbeiten?] für Breitensuche: FIFO-Queue für Tiefensuche: LIFO-Queue Initialisierung T Baum/Graph, der nur den Knoten r enthält M Die Menge {r} Q Die FIFO-/LIFO-Queue aller Paare (v, r) enthält, wobei v ein Knoten in G ist, der zu r benachbart ist Algorithmus Solange Q nicht-leer ist: entferne das erste Element (u, v) aus Q falls u M ist: füge u und die Kante {u, v} zu T hinzu für alle Nachbarn w von u in G: falls w M ist: füge (w, u) zu Q hinzu füge u zu M hinzu Gib T aus. Abbildung 1: Breitensuche/Tiefensuche 3

Definition (Gewichteter Graph). Ein gewichteter Graph ist ein Graph G = (V, E) zusammen mit einer Funktion δ : E R, der Gewichtsfunktion. Sei G = (V, E) ein gewichteter Graph mit Gewichtsfunktion δ : E R. Die Länge (bezüglich δ) eines Weges v 0 v 1... v n in G ist n 1 l δ (v 0 v 1... v n ) := δ ( {v j, v j+1 } ). Dijkstras Algorithmus (siehe Abbildung 2) zur Bestimmung kürzester Wege in gewichteten Graphen (mit nichtnegativer Gewichtsfunktion) ist eine Variante von Breitensuche. Eigenschaften von Dijkstras Algorithmus: Der Algorithmus terminiert. Der ausgegebene (gewichtete) Graph ist tatsächlich ein Baum, der alle Knoten aus der Zusammenhangskomponente des Startknotens enthält. Da die verwendete Queue Q eine Priority-Queue ist, kann man induktiv zeigen, dass die dritte Komponente der Elemente (u, v, d) von Q jeweils die Länge (bezüglich der Gewichtsfunktion) eines kürzesten bisher bekannten Weges in G von r nach u ist. Da die Gewichtsfunktion keine negativen Werte annimmt, kann man zeigen: Ist ((u, v), d) das vorderste Element von Q, so gibt es in G keinen Weg von r nach u, dessen Länge (bezüglich δ) kleiner als d ist. Also liefert der ausgegebene Baum kürzeste Wege von r in G. Minimale aufspannende Bäume in zusammenhängenden Graphen können mit Hilfe von Kruskals Algorithmus bestimmt werden: Algorithmus (Kruskals Algorithmus). Eingabe Ein zusammenhängender gewichteter Graph G = (V, E) mit Gewichtsfunktion δ Ausgabe Ein minimaler aufspannender Baum von G Datenstrukturen T ein gewichteter Graph [die Ausgabe] Initialisierung T der gewichtete Graph, der alle Knoten aus G enthält aber keine Kanten Algorithmus Solange T kein aufspannender Baum von G ist: finde eine Kante e E, die nicht in T liegt, minimalen Gewichts δ(e) mit folgender Eigenschaft: fügt man e zu T hinzu, so entsteht in T kein Kreis. füge die Kante e mit Gewicht δ(e) zu T hinzu Gib T aus. j=0 4

Algorithmus (Dijkstras Algorithmus). Eingabe Ein gewichteter Graph G mit nichtnegativer(!) Gewichtsfunktion δ und ein Knoten r von G Ausgabe Ein (gewichteter) aufspannender Baum der Zusammenhangskomponente von r in G, der (be zuglich δ) kürzeste Wege in G zwischen dem Startknoten und den anderen Knoten dieser Zusammenhangskomponente liefert. Datenstrukturen T ein gewichteter Graph [die Ausgabe] M eine Menge von Knoten [bereits besichtigte Knoten] Q Priority-Queue von Paaren ( (u, v), d ), wobei u und v Knoten von G sind und d R ist (je niedriger die dritte Komponente ist, desto eher wird das Element wieder aus Q entfernt) [welcher Knoten ist als nächstes zu bearbeiten?] Initialisierung T gewichteter Graph, der nur den Knoten r enthält M Die Menge {r} Q Priority-Queue aller Paare ( (v, r), δ({r, v}) ), wobei v ein Knoten in G ist, der zu r benachbart ist Algorithmus Solange Q nicht-leer ist: entferne das erste Element ( (u, v), d ) aus Q falls u M ist: füge u und die Kante {u, v} (mit dem Gewicht δ({u, v})) zu T hinzu für alle Nachbarn w von u in G: falls w M ist: füge ( (w, u), d+δ({u, w}) ) zu Q hinzu füge u zu M hinzu Gib T aus. Abbildung 2: Dijkstras Algorithmus 5

2 Eulersche Graphen Definition (Euler-Tour, Euler-Rundtour, Eulerscher Graph). Eine Euler-Tour in einem Graph G = (V, E) ist eine Folge v 0,..., v n von Knoten von G mit für alle j {0,..., n 1} ist {v j, v j+1 } E, die Kanten {v 0, v 1 },..., {v n 1, v n } sind verschieden, und es ist { {v j, v j+1 } j {0,..., n 1} } = E. Eine Euler-Rundtour in einem Graph G = (V, E) ist eine Folge v 0,..., v n von Knoten von G mit für alle j {0,..., n 1} ist {v j, v j+1 } E und {v n, v 0 } E, die Kanten {v 0, v 1 },..., {v n 1, v n }, {v n, v 0 } sind verschieden, und es ist { {v 0, v 1 },..., {v n 1, v n }, {v n, v 0 } } = E. (Sind nur die ersten beiden Bedingungen erfüllt, so handelt es sich um eine Rundtour.) Ein Graph heißt Eulersch, wenn er eine Euler-Rundtour besitzt. Königsberger Brückenproblem. Ist der Graph im Bild rechts Eulersch? Satz (Charakterisierung Eulerscher Graphen). Sei G ein zusammenhängender Graph. Dann sind die folgenden Aussagen äquivalent: 1. Der Graph G ist Eulersch. 2. Alle Knoten von G haben geraden Grad. 3. Die Menge der Kanten von G kann in (kanten)disjunkte Kreise in G zerlegt werden. Algorithmus (Hierholzers Algorithmus). Eingabe Ein (nicht-leerer) Eulerscher Graph G Ausgabe Eine Euler-Rundtour in G Datenstrukturen c eine Folge von Knoten von G Initialisierung c Folge, die aus einem einzelnen Knoten von G besteht Algorithmus Solange c keine Euler-Rundtour von G ist: finde eine Kante e E, die nicht in c liegt aber einen Knoten mit c gemeinsam hat finde eine Rundtour c, die e aber keine Kante von c enthält füge c so in c ein, dass eine Rundtour entsteht Gib c aus. Definition (Hamiltonscher Graph). Ein Graph heißt Hamiltonsch, wenn er einen Kreis besitzt, der jeden Knoten (genau) einmal durchläuft. Warnung. Das Problem zu entscheiden, ob ein gegebener Graph Hamiltonsch ist, ist ein sogenanntes NP-vollständiges Problem. 6

3 Planarität Definition (Planare Einbettung, planarer Graph). Sei G = (V, E) ein gerichteter Graph. Eine planare Einbettung von G besteht aus einer Abbildung f : V R 2, und einer Menge {f e : [0, 1] E e E} von stetigen Abbildungen mit folgenden Eigenschaften: Für alle e = (u, v) E ist f e (0) = f(u) und f e (1) = f(v). Die Abbildung f ist injektiv. Die zusammengesetzte Abbildung e E f e (0,1) : e E (0, 1) R2 ist injektiv. Sei G = (V, E) ein (ungerichteter) Graph. Eine planare Einbettung von G besteht aus der Wahl einer Orientierung auf E zusammen mit einer planaren Einbettung des zugehörigen gerichteten Graphen. Ein Graph heißt planar, wenn er eine planare Einbettung besitzt. Definition (Facetten einer planaren Einbettung). Sei G = (V, E) ein Graph und sei (f : V R 2, {f e : [0, 1] R 2 e E}) eine planare Einbettung (einer orientierten Version) von G. Die Facetten dieser planaren Einbettung sind die Wegzusammenhangskomponenten von R 2 \ e E f e([0, 1]). Satz (Eulersche Polyederformel). Sei G = (V, E) ein zusammenhängender planarer Graph mit V und sei F die Menge der Facetten einer planaren Einbettung von G. Dann gilt #V #E + #F = 2. [Der (induktive) Beweis dieses Satzes beruht auf dem Jordanschen Kurvensatz.] Korollar. Sei G = (V, E) ein zusammenhängender planarer Graph mit V. 1. Ist #V 3, so ist #E 3 #V 6. 2. Der Graph G besitzt einen Knoten v V mit deg v 5. 3. Die Graphen K 5 und K 3,3 sind nicht planar. Satz (Kuratowskis Charakterisierung planarer Graphen). Ein zusammenhängender nicht-leerer Graph ist genau dann planar, wenn er keine Verfeinerung von K 5 oder K 3,3 als Untergraph enthält. [ohne Beweis] Definition (Verfeinerung). Sei G ein Graph. Eine Verfeinerung von G ist ein Graph, in dem die Kanten von G durch unabhängige Wege zwischen ihren Endpunkten ersetzt werden. Satz (Klassifikation der regulären Polyeder). Es gibt genau fünf reguläre (dreidimensionale beschränkte) Polyeder: den Tetraeder, den Würfel, den Oktaeder, den Dodekaeder und den Ikosaeder. 7

4 Färbungen Definition (Färbung, chromatische Zahl). Sei G = (V, E) ein Graph. Sei k N. Eine k-färbung ist eine Abbildung c: V {1,..., k} mit {u,v} E c(u) c(v). Die chromatische Zahl von G ist definiert als χ(g) := min{k N G besitzt eine k-färbung}. Der Graph G heißt bipartit, falls χ(g) 2. Probleme, die als Färbungsprobleme formuliert werden können: Das Färben von Landkarten Wieviele Register werden zur Ausführung eines Programms benötigt? Warnung. Das Problem, zu einem gegebenen Graph die chromatische Zahl zu bestimmen, ist ein sogenanntes NP-vollständiges Problem. Satz (Elementare Abschätzungen der chromatischen Zahl). 1. Für alle Graphen G ist χ(g) (G) + 1, wobei (G) der maximale Knotengrad von G ist. 2. Bäume sind bipartit. 3. Für alle Graphen G ist χ(g) ω(g), wobei ω(g) die Cliquenzahl von G ist. Satz (Vier- bzw. Fünffarbensatz). 1. Jeder planare Graph ist 4-färbbar; insbesondere sind alle ebenen Landkarten von zusammenhängenden Ländern 4-färbbar. [ohne Beweis] 2. Jeder planare Graph ist 5-färbbar. [mit Beweis] Satz (Graphen mit großer chromatischer Zahl und großem Umfang). 1. Für alle g N und alle χ N gibt es einen Graph mit Umfang g und chromatischer Zahl χ. [ohne Beweis] 2. Für alle χ N gibt es einen Graph mit Umfang mindestens 4 und chromatischer Zahl χ (Konstruktion von Mycielski). 8

5 Matchings Definition (Matching). Sei G = (V, E) ein Graph. Eine Menge M E von Kanten von G heißt unabhängig, falls e,f M e f =. Ein Matching für H V in G ist eine Menge M E unabhängiger Kanten von G mit H M. Ein perfektes Matching von G ist ein Matching für V. Satz (Heiratssatz von Hall). Sei G = (V, E) ein bipartiter Graph mit Bipartition V = H D. Dann gibt es in G genau dann ein Matching für H, wenn (sogenannte Heiratsbedingung) S H #N(S) #S. Definition (Überdeckung). Sei G = (V, E) ein Graph. Eine Überdeckung von G ist eine Menge U V von Knoten, so dass jede Kante von G mindestens einen Knoten aus U enthält. Satz (Satz von König). Sei G ein bipartiter Graph. Die maximale Größe eines Matchings in G stimmt mit der minimalen Größe einer Überdeckung von G überein. Der Satz von König ist eines von vielen Beispielen von Sätzen in der Graphentheorie, die ein gewisses Maximum als ein Minimum von etwas anderem erkennen. Ein weiteres prominentes Beispiel ist: Satz (MaxFlow-MinCut-Theorem). Der maximale Gesamtfluss in einem Netzwerk ist gleich der minimalen Kapazität eines Schnittes in diesem Netzwerk. [ohne Beweis] 9