8. Übung Algorithmen I

Ähnliche Dokumente
9. Übung Algorithmen I

8. Übung zu Algorithmen I 15. Juni 2016

Diskrete Strukturen Kapitel 4: Graphentheorie (Grundlagen)

Nachbarschaft, Grad, regulär, Inzidenz

Für die Anzahl der Kanten in einem vollständigen Graphen (und damit für die maximale Anzahl von Kanten in einem einfachen Graphen) gilt:

= 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

WS 2008/09. Diskrete Strukturen

WS 2009/10. Diskrete Strukturen

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).

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

Einheit 11 - Graphen

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

10. Übung Algorithmen I

Algorithmen und Datenstrukturen 2-1. Seminar -

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

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

Algorithmen und Datenstrukturen SS09. Foliensatz 16. Michael Brinkmeier. Technische Universität Ilmenau Institut für Theoretische Informatik

Grundbegriffe der Informatik

Bäume und Wälder. Definition 1

Graphen. Graphen und ihre Darstellungen

1. Einführung. Grundbegriffe und Bezeichnungen. Beispiele. gerichtete Graphen. 1. Einführung Kapitelübersicht

Einführung in die Informatik 2

Freie Bäume und Wälder

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

3 Klassifikation wichtiger Optimierungsprobleme

Graphen und Bäume. A.1 Graphen

1. Einige Begriffe aus der Graphentheorie

INSTITUT FÜR THEORETISCHE INFORMATIK, PROF. SANDERS

2. Repräsentationen von Graphen in Computern

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

Diskrete Strukturen Kapitel 4: Graphentheorie (Bäume)

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

Grundbegriffe der Informatik

Kombinatorische Optimierung

Tutoraufgabe 1 (Suchen in Graphen):

Programmiertechnik II

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

Programmierkurs Python

Programmierkurs Python II

Einführung in die Graphentheorie. Monika König

André Krischke Helge Röpcke. Graphen und Netzwerktheorie Grundlagen Methoden Anwendungen

Zentralübung zur Vorlesung Diskrete Strukturen

4. Kreis- und Wegeprobleme

Lösungen zu Kapitel 5

Das Briefträgerproblem

Algorithmen und Datenstrukturen 2

Algorithmen und Datenstrukturen (WS 2007/08) 63

Tutorium 23 Grundbegriffe der Informatik (7. Sitzung)

Einführung in die Informatik I

Vorlesung Diskrete Strukturen Eulersche und Hamiltonsche Graphen

Motivation Kap. 6: Graphen

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

Grundlagen: Begriffe zu Graphen

8 Diskrete Optimierung

Diskrete Mathematik 1

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

Anwendungen von Graphen

15. Elementare Graphalgorithmen

Fünf-Farben-Satz. Seminar aus reiner Mathematik, WS 13/14. Schweighofer Lukas, November Seite 1

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

WS 2008/09. Diskrete Strukturen

Algorithmische Graphentheorie

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

WS 2009/10. Diskrete Strukturen

KAPITEL 3 MATCHINGS IN BIPARTITEN GRAPHEN

Vorlesung Diskrete Strukturen Graphen: Wieviele Bäume?

Graphen. Leonhard Euler ( )

6. Planare Graphen und Färbungen

Graphenalgorithmen I

Studientag zur Algorithmischen Mathematik

2. November Gradfolgen Zusammenhang Kürzeste Wege. H. Meyerhenke: Algorithmische Methoden zur Netzwerkanalyse 37

Grundbegriffe der Informatik

Vorlesung Diskrete Strukturen Eulersche und Hamiltonsche Graphen

Einführung in die Informatik 2

Grundlagen: Algorithmen und Datenstrukturen

Ecken des Zuordnungsproblems

Algorithmen II Vorlesung am

Algorithmische Graphentheorie

Algorithmen und Datenstrukturen

Übungen zu Kombinatorik und Graphentheorie

Fortgeschrittene Netzwerk- und Graph-Algorithmen

Graphen und Algorithmen

Massive Parallelität : Neuronale Netze

Breitensuche BFS (Breadth First Search)

Fortgeschrittene Netzwerk- und Graph-Algorithmen

Der Fünf-Farben-Satz. Lukas Schweighofer. Feb.2014

Minimal spannende Bäume

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

Quicksort ist ein Divide-and-Conquer-Verfahren.

Graphentheorie 1. Diskrete Strukturen. Sommersemester Uta Priss ZeLL, Ostfalia. Hausaufgaben Graph-Äquivalenz SetlX

WS 2009/10. Diskrete Strukturen

Graphdurchmusterung, Breiten- und Tiefensuche

Transkript:

INSTITUT FÜR THEORETISCHE INFORMATIK 1 KIT Universität des Landes Baden-Württemberg und nationales Forschungszentrum in der Helmholtz-Gemeinschaft Institut für Theoretische www.kit.edu Informatik

Grundlagen der Graphentheorie 2

Graphen und Relationen Relation Ist eine Menge M gegeben, dann heißt R M M eine Relation und man schreibt auch x R y, falls (x, y) R. Spezielle Relationen: symmetrisch, transitiv, antisymmetrisch, Äquivalenz-Relationen, etc. Beispiele: x = y, x y oder x y (teilt). gerichteter Graph Ein gerichteter Graph G = (V, E) besteht aus Knoten V und Kanten E, wobei V nicht leer ist und E V V ist. ungerichteter Graph Ein ungerichteter Graph G = (V, E) besteht aus Knoten V und Kanten E, wobei V nicht leer ist und E {{x, y} x, y V } ist. 3

Teilbarkeitsgraph Ein gerichteter Graph G = (V, E) mit V = {1,..., 9} und E = {(x, y) x, y V, x y und x y}, wobei x y genau dann, wenn x teilt y, also n N : xn = y gilt. 9 1 2 8 3 7 4 6 5 4

Der Hyperwürfel Q 3 Ein ungerichteter Graph G = (V, E) mit V = {{0, 1} 3 } und E = {{x, y} x, y V und x y {100, 010, 001}}. 011 111 010 110 001 101 000 100 Zwei Knoten x, y V sind also adjazent, wenn x und y sich in genau einer Ziffer unterscheiden. 5

Adjazenz und Knotengrad Sei G = (V, E) ein ungerichteter Graph. Bereits bekannt: Ein Knoten x V und eine Kante e E heißen inzident, wenn x e. Zwei Knoten x, y V mit x y heißen adjazent, wenn es eine Kante e E mit x e und y e gibt. Für ein Knoten x V ist die Adjazenzmenge oder Nachbarn-Menge also Adj(x) = {y V x y und {x, y} E}. Der Grad eines Knoten x V ist deg(x) := Adj(x). (auch deg G (x) oder d G (x) oder γ G (x) oder...) 6

Knoten mit speziellem Knotengrad Ein Knoten v V mit deg(v) = 0 heißt isoliert. Ein Knoten v V mit deg(v) = 1 heißt Randknoten. Ein Graph G = (V, E) heißt knotenregulär vom Grad r, wenn deg(v) = r für alle v V gilt. Beispiel: der Hyperwürfel Q 3 ist 3-knotenregulär. Ein ( V 1)-knotenregulärer Graph heißt vollständig. K 6 K 4 K 5 7

Handshake-Lemma Lemma: Ist G = (V, E) ein ungerichteter Graph, dann gilt deg(v) = 2 E. v V 8

Handshake-Lemma Lemma: Ist G = (V, E) ein ungerichteter Graph, dann gilt deg(v) = 2 E. v V Beweis: Betrachte die Menge M := {(v, e) v V, e E mit v e}. 8

Handshake-Lemma Lemma: Ist G = (V, E) ein ungerichteter Graph, dann gilt deg(v) = 2 E. v V Beweis: Betrachte die Menge M := {(v, e) v V, e E mit v e}. Für jede Kante e E sind genau zwei Paare in M, also M = 2 E. 8

Handshake-Lemma Lemma: Ist G = (V, E) ein ungerichteter Graph, dann gilt deg(v) = 2 E. v V Beweis: Betrachte die Menge M := {(v, e) v V, e E mit v e}. Für jede Kante e E sind genau zwei Paare in M, also M = 2 E. Für jeden Knoten v V sind genau alle ausgehenden Kanten in M, also M = v V deg(v). 8

Handshake-Lemma Lemma: Ist G = (V, E) ein ungerichteter Graph, dann gilt deg(v) = 2 E. v V Beweis: Betrachte die Menge M := {(v, e) v V, e E mit v e}. Für jede Kante e E sind genau zwei Paare in M, also M = 2 E. Für jeden Knoten v V sind genau alle ausgehenden Kanten in M, also M = v V deg(v). Korollar: In jedem Graph gibt es eine gerade Anzahl von Knoten mit ungeradem Knotengrad. 8

Adjazenz- und Inzidenzmatrix v 1 e 1 e 2 e 3 v 2 v 3 e 4 e 5 e 6 e 7 v 4 v 5 0 1 1 0 0 1 0 1 1 1 A = 1 1 0 0 1 0 1 0 0 1 0 1 1 1 0 1 1 0 0 0 0 0 1 0 1 1 1 0 0 H = 0 1 1 0 0 1 0 0 0 0 1 0 0 1 0 0 0 0 1 1 1 9

Adjazenzfelder 1 2 3 4 5 V E 10

Adjazenzfelder 1 2 3 4 5 V 1 2 4 7 7 9 E 2 3 5 2 4 5 3 4 10

Graphen als Matrizen Symmetrie Ungerichteter Graph symmetrische Adjazenzmatrix A = A T 3 1 2 4 0 1 0 1 1 0 1 0 0 1 0 0 1 0 0 0 11

Graphen als Matrizen DAG DAGs lassen sich als obere Dreiecksmatrix repräsentieren 4 3 5 1 2 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 1 0 1 1 1 0 0 0 12

Graphen als Matrizen DAG DAGs lassen sich als obere Dreiecksmatrix repräsentieren 1 2 3 4 5 0 1 1 0 0 0 0 0 1 1 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 12

Graphen als Matrizen Zusammenhangskomponenten Pro Zusammenhangskomponente ein Block in der Matrix 4 5 3 2 1 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 6 1 0 0 0 0 0 13

Graphen als Matrizen Zusammenhangskomponenten Pro Zusammenhangskomponente ein Block in der Matrix 4 3 1 2 6 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 1 5 0 0 0 0 1 0 13

Unter- oder Teilgraphen Definition: Ein Graph G = (V, E ) ist ein Untergraph oder Teilgraph von G = (V, E), geschrieben G G, wenn V V, E E und für alle {v 1, v 2 } E sowohl v 1 V als auch v 2 V. Definition: Ist G = (V, E) ein Graph und V V eine Knotenmenge, dann heißt der Graph G[V ] := (V, E ) mit E = {{v 1, v 2 } E v 1, v 2 V } der durch V knoten-induzierte Teilgraph von G. Definition: Ist G = (V, E) ein Graph und E E eine Kantenmenge, dann heißt der Graph G[E ] := (V, E ) mit V = {v 1, v 2 } der durch E kanten-induzierte Teilgraph von G. {v 1,v 2 } E 14

Wege, Kreise und Zusammenhang Ist G = (V, E) ein ungerichteter Graph, dann heißt eine Folge (v 0, e 1, v 1, e 2,..., v n 1, e n, v n ) mit v i V und e i E eine Kantenfolge, ein Kantenweg oder nur Weg (path), wenn e i = {v i 1, v i } für i = 1,..., n. Alternativ, kann man in Graphen ohne Mehrfachkanten eine Kantenfolge auch durch die Knotenspur (v 0,..., v n ) beschreiben. heißt eine Kantenfolge ein Kantenpfad oder nur Pfad (simple path), wenn alle besuchten Knoten verschieden sind. heißen zwei Knoten x, y V verbindbar (connected), wenn es einen Weg mit x = v 0 und y = v n gibt. heißt der Graph G zusammenhängend (connected), wenn jedes Paar (x, y) V V verbindbar ist. 15

Wege, Kreise und Zusammenhang Ist G = (V, E) ein ungerichteter Graph, dann heißt ein Kantenfolge (v 0, e 1, v 1, e 2,..., v n 1, e n, v n ) ein Kantenkreis oder Kantenzyklus (cycle), wenn v 0 = v n, ein Kantenkreis einfach (simple), wenn alle besuchten Knoten außer v 0 und v n verschieden sind, und der Graph G kreisfrei, kreislos oder zykelfrei (cycle free), wenn G keinen Kantenkreis enthält. 16

Eulersche und Hamiltonsche Kreise Ein Kantenkreis heißt Eulersch, wenn er alle Kanten des Graphen genau einmal enthält. Ein Kantenkreis heißt Hamiltonsch, wenn er alle Knoten des Graphen genau einmal enthält (Beginn und Ende einmal gezählt). Ein Graph heißt Eulersch/Hamiltonsch, wenn er einen Eulerschen/Hamiltonschen Kreis enthält. 17

Eulersche und Hamiltonsche Kreise Ein Kantenkreis heißt Eulersch, wenn er alle Kanten des Graphen genau einmal enthält. Ein Kantenkreis heißt Hamiltonsch, wenn er alle Knoten des Graphen genau einmal enthält (Beginn und Ende einmal gezählt). Ein Graph heißt Eulersch/Hamiltonsch, wenn er einen Eulerschen/Hamiltonschen Kreis enthält. 17

Satz von Euler (Graphen) Satz: Ein Graph G = (V, E) mit E ist genau dann Eulersch, wenn G zusammenhängend ist und alle Knoten geraden Knotengrad haben. 18

Satz von Euler (Graphen) Satz: Ein Graph G = (V, E) mit E ist genau dann Eulersch, wenn G zusammenhängend ist und alle Knoten geraden Knotengrad haben. Beweis: = Klar, denn G muss zusammenhängend sein und beim Passieren eines Knoten wird dieser durch eine Kante betreten und durch eine andere verlassen. Da jede Kante genau einmal verwendet wird, muss der Knotengrad aller Knoten gerade sein. 18

Satz von Euler (Graphen) Satz: Ein Graph G = (V, E) mit E ist genau dann Eulersch, wenn G zusammenhängend ist und alle Knoten geraden Knotengrad haben. Beweis: = Angenommen der Graph hat diese Eigenschaften, so betrachtet man eine Kantenpfad P = (v 0, e 1, v 1, e 2,..., v r 1, e r, v r ) maximaler Länge, in dem also keine Kante zweimal vorkommt. Behauptung 1: v 0 = v r. 18

Satz von Euler (Graphen) Satz: Ein Graph G = (V, E) mit E ist genau dann Eulersch, wenn G zusammenhängend ist und alle Knoten geraden Knotengrad haben. Beweis: = Angenommen der Graph hat diese Eigenschaften, so betrachtet man eine Kantenpfad P = (v 0, e 1, v 1, e 2,..., v r 1, e r, v r ) maximaler Länge, in dem also keine Kante zweimal vorkommt. Behauptung 1: v 0 = v r. Wäre v 0 v r, dann ist v 0 zu einer ungeraden Anzahl Kanten in P inzident. Da v 0 aber geraden Knotengrad hat, gibt es eine inzidente Kante e / P. Der Pfad P kann mit e verlängert werden, ist also nicht maximal! Widerspruch = v 0 = v r, also ist P ein Kreis. 18

Satz von Euler (Graphen) Satz: Ein Graph G = (V, E) mit E ist genau dann Eulersch, wenn G zusammenhängend ist und alle Knoten geraden Knotengrad haben. Beweis: = Angenommen der Graph hat diese Eigenschaften, so betrachtet man eine Kantenkreis C = (v 0, e 1, v 1, e 2,..., v r 1, e r, v 0 ) maximaler Länge, in dem also keine Kante zweimal vorkommt. Behauptung 2: E(C) := {e i i = 1,..., r} = E. 18

Satz von Euler (Graphen) Satz: Ein Graph G = (V, E) mit E ist genau dann Eulersch, wenn G zusammenhängend ist und alle Knoten geraden Knotengrad haben. Beweis: = Angenommen der Graph hat diese Eigenschaften, so betrachtet man eine Kantenkreis C = (v 0, e 1, v 1, e 2,..., v r 1, e r, v 0 ) maximaler Länge, in dem also keine Kante zweimal vorkommt. Behauptung 2: E(C) := {e i i = 1,..., r} = E. Angenommen E(C) E, so betrachten wir G := (V, E \ E(C)). Da G zusammenhängt, muss G und C einen gemeinsamen Knoten w mit deg G (w) > 0 haben. 18

Satz von Euler (Graphen) Satz: Ein Graph G = (V, E) mit E ist genau dann Eulersch, wenn G zusammenhängend ist und alle Knoten geraden Knotengrad haben. Beweis: = Angenommen der Graph hat diese Eigenschaften, so betrachtet man eine Kantenkreis C = (v 0, e 1, v 1, e 2,..., v r 1, e r, v 0 ) maximaler Länge, in dem also keine Kante zweimal vorkommt. Behauptung 2: E(C) := {e i i = 1,..., r} = E. Angenommen E(C) E, so betrachten wir G := (V, E \ E(C)). Da G zusammenhängt, muss G und C einen gemeinsamen Knoten w mit deg G (w) > 0 haben. Alle Knoten in G haben geraden Knotengrad, also kann man in G einen Kreis C finden, der durch w geht. 18

Satz von Euler (Graphen) Satz: Ein Graph G = (V, E) mit E ist genau dann Eulersch, wenn G zusammenhängend ist und alle Knoten geraden Knotengrad haben. Beweis: = Angenommen der Graph hat diese Eigenschaften, so betrachtet man eine Kantenkreis C = (v 0, e 1, v 1, e 2,..., v r 1, e r, v 0 ) maximaler Länge, in dem also keine Kante zweimal vorkommt. Behauptung 2: E(C) := {e i i = 1,..., r} = E. Angenommen E(C) E, so betrachten wir G := (V, E \ E(C)). Da G zusammenhängt, muss G und C einen gemeinsamen Knoten w mit deg G (w) > 0 haben. Alle Knoten in G haben geraden Knotengrad, also kann man in G einen Kreis C finden, der durch w geht. C kann an Knoten w mit C verlängert werden. Widerspruch zur Maximalität = E(C) = E. 18