Algorithmische Graphentheorie Sommersemester 2014 1. Vorlesung Graphen: Eine Einführung Prof. Dr. Alexander Wolff 1 Termine & das Kleingedruckte Vorlesung: – dienstags, 10–12, HS2 Übungen: – Martin Fink, Wadim Reimche, Anna Weitzel, Florian Wisheckel – freitags, 8:30–10, 10–12, 12–14 Uhr, SE III Übungsaufgaben: – Bearbeitung von max. je zwei TeilnehmerInnen – Ausgabe dienstags via WueCampus2 – Abgabe dienstags 10:00 Uhr im Briefkasten LS I (Infobau) Klausuren: (Teilnahmevoraussetzung: 50% der Übungspunkte) – 1. Termin: Mi, 16. Juli, 10–12 Uhr, Zuse-HS – 2. Termin: Do, 02. Okt., 10–12 Uhr, ÜR I 2 Bitte melden Sie sich bei WueCampus2 (moodle) und sb@home an: https://wuecampus2.uni-wuerzburg.de/moodle/course/view.php?id=7330 Sonst können wir Sie nicht per Email erreichen, z.B. falls eine Übungsaufgabe fehlerhaft oder missverständlich ist. 3 Bücher zur Vorlesung [KN] [CLRS] [G] Hauptreferenz; elektronische Kopie über die Unibib erhältlich 4 Voraussetzungen Wissen aus der Vorlesung Algorithmen und Datenstrukturen: Graphdurchlauf-Strategien – Breitensuche – Tiefensuche ( (Anwendung: Zusammenhangskomp.)) ((Anwendung: topologisches Sortieren)) Berechnung kürzester Wege – Breitensuche – Algorithmus von Dijkstra Minimale Spannbäume – Algorithmus von Kruskal – Algorithmus von Jarnı́k–Prim 5 Vorlesungsankündigung LS I – AG Eff. Alg. Master-Vorlesung Exakte Algorithmen Vorlesung: Di 14–16 Uhr, SE III Übung: Mi 12–14 Uhr, SE III Dozent: Joachim Spoerhase Master-Vorlesung Alg. für geographische Informationssyst. Vorlesung: Do 10–12 Uhr, SE III Übung: Mo 12–14 Uhr, SE III Dozenten: Thomas van Dijk & Alexander Wolff Master-Vorlesung Visualisierung von Graphen Vorlesung: Mi 10–12 Uhr, SE I Übung: Do 16–18 Uhr, SE I Dozent: Philipp Kindermann 6 Was ist das? Ein (und derselbe) Graph.; der dreidimensionale Hyperwürfel. 7 F: Was ist ein Graph? A1 : Ein (ungerichteter) Graph ist ein Paar (V , E ) , wobei – V Knotenmenge und V – E ⊆ 2 = {u , v } ⊆ V | u 6= v Kantenmenge. 000 Charlie 001 101 V = {000, 001, . . . , 111} {u , v } ∈ E ⇔ ? 100 110 111 010 011 Alice Bob A2 : Ein gerichteter Graph ist ein Paar (V , E ), wobei – V Knotenmenge und – E ⊆ V × V = {(u , v ) ∈ V 2 | u 6= v } Kantenmenge. 8 F: Wie repräsentiere ich einen Graphen? Wir sagen: Knoten 3 und 5 sind adjazent. 5 4 3 1 2 ungerichteter Graph 5 4 3 1 2 gerichteter Graph 5 4 3 2 1 3 1 2 3 2 4 3 4 1 4 Adjazenzlisten 5 4 3 2 1 3 5 2 1 4 5 5 1 2 3 4 5 1 0 1 0 1 0 2 1 0 1 0 0 3 0 1 0 1 1 4 1 0 1 0 1 5 0 0 1 1 0 Adjazenzmatrix 3 Adj[i ] = {j ∈ V | (i , j ) ∈ E } 1 2 3 4 5 1 0 1 0 0 0 2 0 0 1 0 0 3 0 0 0 1 1 4 1 0 0 0 0 5 0 0 0 1 0 aij = 1 ⇔ (i , j ) ∈ E 9 Grad eines Knotens Def. u v Beob. deg u = |Adj[u ]| outdeg v = |Adj[v ]| indeg v = |{u ∈ V : (u , v ) ∈ E }| Sei G = (V , E ) ein ungerichteter Graph. Dann ist die Summe aller Knotengrade = 2 · |E | . Beweis. Technik des zweifachen Abzählens: Zähle alle Knoten-Kanten-Inzidenzen. Eine Kante ist inzident zu ihren Endknoten. Ein Knoten ist inzident zu allen Kanten, deren Endknoten er ist. 10-12 Grad eines Knotens Def. u v Beob. deg u = |Adj[u ]| outdeg v = |Adj[v ]| indeg v = |{u ∈ V : (u , v ) ∈ E }| Sei G = (V , E ) ein ungerichteter Graph. Dann ist die Summe aller Knotengrade = 2 · |E | . Beweis. Technik des zweifachen Abzählens: Zähle alle Knoten-Kanten-Inzidenzen. P Aus Sicht der Knoten: v ∈V deg v Aus Sicht der Kanten: 2 · |E | also gleich! 10-16 Grad eines Knotens Def. deg u = |Adj[u ]| u outdeg v = |Adj[v ]| indeg v = |{u ∈ V : (u , v ) ∈ E }| v Beob. Sei G = (V , E ) ein ungerichteter Graph. Dann ist die Summe aller Knotengrade = 2 · |E | . Sätzle. Die Anzahl der Knoten ungeraden Grades ist gerade. Beweis. 2 · |E | = gerade! P v ∈Vung P v ∈V deg v = gerade! P v ∈Vger deg v + gerade! P v ∈Vung deg v ⇒ gerade! deg v gerade ⇒ |Vung | ist gerade! 10-27 Rundlaufstrategien für ungerichtete Graphen 1. Durchlaufe einen Graphen auf einem Kreis, so dass jede Kante genau einmal durchlaufen wird. P NP-schwer Charakterisierung: Bei welchen Graphen geht das (nicht)? Konstruktion: Wie (und in welcher Zeit) finde ich einen solchen Rundlauf, falls er existiert? 2. Durchlaufe einen Graphen auf einem Kreis, so dass jeder Knoten genau einmal durchlaufen wird. Charakterisierung: Bei welchen Graphen geht das (nicht)? Konstruktion: Wie (und in welcher Zeit) finde ich einen solchen Rundlauf, falls er existiert? 11