Algorithmen für Planare Graphen

Ähnliche Dokumente
Algorithmen II Vorlesung am

Algorithmen II Vorlesung am

3. Übung zur Vorlesung Planare Graphen

Effizienter Planaritätstest Vorlesung am

8. Übung Algorithmen I

Maximale s t-flüsse in Planaren Graphen

Kombinatorische Optimierung

9. Übung Algorithmen I

Übung zur Vorlesung Diskrete Mathematik (MAT.107) Blatt Beispiellösungen Abgabefrist:

Betriebswirtschaftliche Optimierung

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

Betriebliche Optimierung

Bäume und Wälder. Definition 1

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

Bäume und Wälder. Definition 1

Freie Bäume und Wälder

Kapitel IV Minimale Spannbäume

Einführung in die Informatik 2

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

Algorithmische Methoden zur Netzwerkanalyse

Berechnung minimaler Spannbäume. Beispiel

Vorlesung Datenstrukturen

3 Klassifikation wichtiger Optimierungsprobleme

Diskrete Strukturen Kapitel 4: Graphentheorie (Bäume)

Algo&Komp. - Wichtige Begriffe Mattia Bergomi Woche 6 7

Ferienkurs zur algorithmischen diskreten Mathematik Kapitel 1: Grundlagen der algorithmischen Graphentheorie

Algorithmen und Datenstrukturen

10. Übung Algorithmen I

Nachbarschaft, Grad, regulär, Inzidenz

Klausur. 18. Juli 2008, 10:15-12:15 Uhr. Name:... Matrikelnummer:... Anzahl beschriebener Blätter (ohne Aufgabenblatt):... D(p) : Y = p x X + p y

Kombinatorische Optimierung

Datenstrukturen und Algorithmen (SS 2013)

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:

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

Fortgeschrittene Netzwerk- und Graph-Algorithmen

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

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

15. Elementare Graphalgorithmen

= 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

3.2 Generischer minimaler Spannbaum-Algorithmus

Das Heiratsproblem. Definition Matching

Theoretische Informatik 1

3. Musterlösung. Problem 1: Boruvka MST

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

Zentralübung zur Vorlesung Diskrete Strukturen

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

Optimale Lösungen mit Greedy-Strategie erfordern Optimalität der Greedy-Wahl. Beispiele für optimale Greedy-Lösungen

1.Aufgabe: Minimal aufspannender Baum

Richtig oder falsch? Richtig oder falsch? Richtig oder falsch? Mit dynamischer Programmierung ist das Knapsack- Problem in Polynomialzeit lösbar.

WS 2013/14. Diskrete Strukturen

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

Wie wird ein Graph dargestellt?

Datenstrukturen und Algorithmen

Einführung in die Informatik 2

Datenstrukturen und Algorithmen SS07

Grundlagen: Algorithmen und Datenstrukturen

Lösungen zu Kapitel 5

Graphalgorithmen Netzwerkalgorithmen. Laufzeit

Quicksort ist ein Divide-and-Conquer-Verfahren.

Grundzüge von Algorithmen und Datenstrukturen, WS 15/16: Lösungshinweise zum 13. Übungsblatt

Datenstrukturen. einfach verkettete Liste

Theoretische Informatik 1

Breitensuche BFS (Breadth First Search)

Maximale s t-flüsse in Planaren Graphen

Übung 2 Algorithmen II

Seien u, v V, u v. Da G zusammenhängend ist, muss mindestens ein Pfad zwischen u und v existieren.

Minimal spannende Bäume

Graphdurchmusterung, Breiten- und Tiefensuche

5. Bäume und Minimalgerüste

Programmiertechnik II

Matchings in Graphen. Praktikum Diskrete Optimierung (Teil 5)

Berechnung von Abständen

WS 2009/10. Diskrete Strukturen

Übung zur Vorlesung Diskrete Strukturen I

Diskrete Mathematik 1

Algorithmische Methoden für schwere Optimierungsprobleme

Bipartites Matching. Gegeben: Ein bipartiter, ungerichteter Graph (V 1, V 2, E). Gesucht: Ein Matching (Paarung) maximaler Kardinalität.

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

Geradenarrangements und Dualität von Punkten und Geraden

Diskrete Mathematik für Informatiker

Geradenarrangements und Dualität von Punkten und Geraden

Das Problem des minimalen Steiner-Baumes

Algorithmische Methoden zur Netzwerkanalyse

6. Übung zur Linearen Optimierung SS08

Definition Gerichteter Pfad. gerichteter Pfad, wenn. Ein gerichteter Pfad heißt einfach, falls alle u i paarweise verschieden sind.

Transkript:

Algorithmen für Planare Graphen 12. Juni 2018, Übung 4 Lars Gottesbüren, Michael Hamann INSTITUT FÜR THEORETISCHE INFORMATIK KIT Die Forschungsuniversität in der Helmholtz-Gemeinschaft www.kit.edu

Prüfungstermine 11. Juli - AUSGEBUCHT 31. Juli - AUSGEBUCHT 28. August - AUSGEBUCHT 29. August - nur noch wenige Plätze 27. September 4. Oktober 15. Oktober Lars Gottesbüren, Michael Hamann Übung 4 12. Juni 2018 2/17

1.1 Schnitte und Kreise Aufgabe 1.1 Sei G = (V, E) planar, zusammenhängend und E E. Zeige (V, E ) enthält Kreis C (V, (E \ E ) ) unzusammenhängend Sei C ein Kreis in E Sei f V im Inneren, g V im Äußeren von C Alle Pfade in G die f und g verbinden, laufen über Kanten dual zu C g e e f C Lars Gottesbüren, Michael Hamann Übung 4 12. Juni 2018 3/17

1.1 Schnitte und Kreise Aufgabe 1.1 Sei G = (V, E) planar, zusammenhängend und E E. Zeige (V, E ) enthält Kreis C (V, (E \ E ) ) unzusammenhängend Annahme E enhält keinen Kreis. Facetten sind durch Kreise voneinander getrennt Kein Kreis gelöscht kein Schnitt zwischen Facetten Lars Gottesbüren, Michael Hamann Übung 4 12. Juni 2018 3/17

1.2 Bäume Aufgabe 1.2 Bäume Zeige: Für E E T = (V, E ) ist ein Spannbaum von G T = (V, (E \ E ) ) ist ein Spannbaum von G Nutze Aufgabe 1.1 T Spannbaum T ist zshg [kreisfrei] T ist kreisfrei [zshg] Analog. Lars Gottesbüren, Michael Hamann Übung 4 12. Juni 2018 4/17

2.1 Perfektes Matching Ein Matching M heißt perfekt, wenn jeder Knoten von G zu einer Kante aus M inzident ist. Für welche n 1 und m 1 besitzen die folgenden Graphen jeweils ein perfektes Matching? P n einfacher Weg mit n Knoten. n gerade Lars Gottesbüren, Michael Hamann Übung 4 12. Juni 2018 5/17

2.1 Perfektes Matching Ein Matching M heißt perfekt, wenn jeder Knoten von G zu einer Kante aus M inzident ist. Für welche n 1 und m 1 besitzen die folgenden Graphen jeweils ein perfektes Matching? P n einfacher Weg mit n Knoten. n gerade Lars Gottesbüren, Michael Hamann Übung 4 12. Juni 2018 5/17

2.2 Perfektes Matching C n einfacher Kreis mit n Knoten. Ausnahmsweise C 2 = K 2. n gerade C 8 Lars Gottesbüren, Michael Hamann Übung 4 12. Juni 2018 6/17

2.3 Perfektes Matching Q n der n-te Hyperwürfel. Q 1 Q 2 Q 3 Kopiere das Matching mit dem Graphen. Lars Gottesbüren, Michael Hamann Übung 4 12. Juni 2018 7/17

2.4 Perfektes Matching K n n gerade K 2 K 4 K 6 Es muss gelten: M = V 2 n gerade K n enthält Kreis der Länge n. Lars Gottesbüren, Michael Hamann Übung 4 12. Juni 2018 8/17

K n,m n = m 2.4 Perfektes Matching Für n m ist mindestens ein Knoten auf einer Seite nicht im Matching. K 1,1 K 2,2 K 3,3 Füge die Kante zwischen den beiden neuen Knoten zu M hinzu. Lars Gottesbüren, Michael Hamann Übung 4 12. Juni 2018 9/17

3 Adjazenztest Adjazenztest in O(1) Gegeben: G ungerichteter, planarer Graph. Wir haben lineare Vorberechnungszeit und können linear viel zusätzlichen Speicher benutzen. Hinweis: Richte Kanten so, dass jeder Knoten höchstens fünf ausgehende Kanten hat. Lars Gottesbüren, Michael Hamann Übung 4 12. Juni 2018 10/17

3 Adjazenztest Adjazenztest in O(1) Gegeben: G ungerichteter, planarer Graph. Wir haben lineare Vorberechnungszeit und können linear viel zusätzlichen Speicher benutzen. Hinweis: Richte Kanten so, dass jeder Knoten höchstens fünf ausgehende Kanten hat. Lars Gottesbüren, Michael Hamann Übung 4 12. Juni 2018 10/17

3 Adjazenztest In den folgenden Algorithmen werden wir Kanten richten. Kanten {u, v} sind zunächst ungerichtet und können zu (u, v) oder (v, u) gerichtet werden. N (v): Nachbarschaft von v im Eingabegraphen. Ñ (v): Nachbarschaft von v über Kanten die noch nicht gerichtet wurden. N + (v): Über gerichtete, von v ausgehende Kanten benachbarte Knoten. Lars Gottesbüren, Michael Hamann Übung 4 12. Juni 2018 11/17

3 Adjazenztest Algorithm VORBERECH- NUNG d v Grad von Knoten v Q {v d v 5} while Q do v Q.pop() for u Ñ (v) do {v, u} (v, u) d u = d u 1 if d u = 5 then Q.push(u) Lars Gottesbüren, Michael Hamann Übung 4 12. Juni 2018 12/17

3 Adjazenztest Algorithm VORBERECH- NUNG d v Grad von Knoten v Q {v d v 5} while Q do v Q.pop() for u Ñ (v) do {v, u} (v, u) d u = d u 1 if d u = 5 then Q.push(u) Lars Gottesbüren, Michael Hamann Übung 4 12. Juni 2018 12/17

3 Adjazenztest Algorithm VORBERECH- NUNG d v Grad von Knoten v Q {v d v 5} while Q do v Q.pop() for u Ñ (v) do {v, u} (v, u) d u = d u 1 if d u = 5 then Q.push(u) Lars Gottesbüren, Michael Hamann Übung 4 12. Juni 2018 12/17

3 Adjazenztest Algorithm VORBERECH- NUNG d v Grad von Knoten v Q {v d v 5} while Q do v Q.pop() for u Ñ (v) do {v, u} (v, u) d u = d u 1 if d u = 5 then Q.push(u) Lars Gottesbüren, Michael Hamann Übung 4 12. Juni 2018 12/17

3 Adjazenztest Algorithm VORBERECH- NUNG d v Grad von Knoten v Q {v d v 5} while Q do v Q.pop() for u Ñ (v) do {v, u} (v, u) d u = d u 1 if d u = 5 then Q.push(u) Lars Gottesbüren, Michael Hamann Übung 4 12. Juni 2018 12/17

3 Adjazenztest Algorithm VORBERECH- NUNG d v Grad von Knoten v Q {v d v 5} while Q do v Q.pop() for u Ñ (v) do {v, u} (v, u) d u = d u 1 if d u = 5 then Q.push(u) Lars Gottesbüren, Michael Hamann Übung 4 12. Juni 2018 12/17

3 Adjazenztest Algorithm VORBERECH- NUNG d v Grad von Knoten v Q {v d v 5} while Q do v Q.pop() for u Ñ (v) do {v, u} (v, u) d u = d u 1 if d u = 5 then Q.push(u) Lars Gottesbüren, Michael Hamann Übung 4 12. Juni 2018 12/17

3 Adjazenztest Algorithm VORBERECH- NUNG d v Grad von Knoten v Q {v d v 5} while Q do v Q.pop() for u Ñ (v) do {v, u} (v, u) d u = d u 1 if d u = 5 then Q.push(u) Lars Gottesbüren, Michael Hamann Übung 4 12. Juni 2018 12/17

3 Adjazenztest Algorithm VORBERECH- NUNG d v Grad von Knoten v Q {v d v 5} u v while Q do v Q.pop() for u Ñ (v) do {v, u} (v, u) d u = d u 1 if d u = 5 then Q.push(u) Lars Gottesbüren, Michael Hamann Übung 4 12. Juni 2018 12/17

3 Adjazenztest Algorithm ADJAZENT(u, v) v? N + (u) oder u? N + (v) u v Für jeden der beiden Knoten müssen höchstens 5 Kanten betrachtet werden. ADJAZENT O(1) Lars Gottesbüren, Michael Hamann Übung 4 12. Juni 2018 12/17

4 Dreiecke Zählen Für alle v V : bestimme Zahl der Dreiecke in denen v vorkommt. Laufzeit: O(n) Gegeben: G = (V, E) ungerichteter, planarer Graph. Dreiecke in denen v vorkommt: {{x, y} E {v, x}, {v, y} E} x y v Lars Gottesbüren, Michael Hamann Übung 4 12. Juni 2018 13/17

4 Dreiecke Zählen Algorithm DREIECKE VORBERECHNUNG() for v V do D v = 0 for u N (v) do for w N + (u) do if ADJAZENT(v, w) then D v = D v + 1 Lars Gottesbüren, Michael Hamann Übung 4 12. Juni 2018 14/17

4 Dreiecke Zählen Algorithm DREIECKE VORBERECHNUNG() for v V do D v = 0 for u N (v) do for w N + (u) do if ADJAZENT(v, w) then D v = D v + 1 Lars Gottesbüren, Michael Hamann Übung 4 12. Juni 2018 14/17

4 Dreiecke Zählen Algorithm DREIECKE VORBERECHNUNG() for v V do D v = 0 for u N (v) do for w N + (u) do if ADJAZENT(v, w) then D v = D v + 1 Lars Gottesbüren, Michael Hamann Übung 4 12. Juni 2018 14/17

4 Dreiecke Zählen Algorithm DREIECKE VORBERECHNUNG() for v V do D v = 0 for u N (v) do for w N + (u) do if ADJAZENT(v, w) then D v = D v + 1 Lars Gottesbüren, Michael Hamann Übung 4 12. Juni 2018 14/17

4 Dreiecke Zählen Algorithm DREIECKE VORBERECHNUNG() for v V do D v = 0 for u N (v) do for w N + (u) do if ADJAZENT(v, w) then D v = D v + 1 Lars Gottesbüren, Michael Hamann Übung 4 12. Juni 2018 14/17

4 Dreiecke Zählen Algorithm DREIECKE VORBERECHNUNG() for v V do D v = 0 for u N (v) do for w N + (u) do if ADJAZENT(v, w) then D v = D v + 1 Lars Gottesbüren, Michael Hamann Übung 4 12. Juni 2018 14/17

5 MST MST in erwartet O(n) Gegeben: G ungerichteter, planarer, zusammenhängend Graph. Ohne Beweis zu verwenden: Sei v ein Knoten und e eine Kante minimalen Gewichts inzident zu v. Dann gibt es einen Spannbaum minimalen Gewichts von G, der e enthält. Sei e eine Kante, die einem Spannbaum minimalen Gewichts von G vorkommt. Sei T ein Spannbaum minimalen Gewichts auf dem Graphen, den man durch die Kontraktion von e erhält. Dann ist T e ein Spannbaum minimalen Gewichts auf G. Lars Gottesbüren, Michael Hamann Übung 4 12. Juni 2018 15/17

5 MST Algorithm MST T while G nicht leer do Wähle v V mit deg(v) 5 e argmin e N (v) w(e ) T T e Kontrahiere e Entferne Multikanten und behalte nur die mit geringstem Gewicht 5 6 u 8 e 1 3 4 v 6 5 4 8 3 vu 5 4 3 w Lars Gottesbüren, Michael Hamann Übung 4 12. Juni 2018 16/17

Erwartete Laufzeit Kontraktion von {u, v} mit deg(v) 5 Pro Knoten eine Hashmap für seine Nachbarschaft Für x N (v) erkenne ob x N (u); in erwartet O(1) Falls ja, behalte die Kante mit kleinerem Gewicht in Hashmap für u Lars Gottesbüren, Michael Hamann Übung 4 12. Juni 2018 17/17