Algorithmen für schwierige Probleme

Ähnliche Dokumente
Seminar Logik, Komplexität, Spiele: Strukturkomplexität von Graphen und Graph Searching Games SS 2010

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

Matchings (Paarungen) in Graphen. PS Algorithmen auf Graphen SS `06 Steven Birr

Proseminar Online Algorithmen, Prof. Dr. Rolf Klein

Fortgeschrittene Netzwerk- und Graph-Algorithmen

Flüsse, Schnitte, Bipartite Graphen II

Nachklausur Grundlagen der Algorithmik (Niedermeier/Froese/Chen/Fluschnik, Wintersemester 2015/16)

Algorithmen II Vorlesung am

15. Elementare Graphalgorithmen

Teil III. Komplexitätstheorie

Berechnung minimaler Spannbäume. Beispiel

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

Das Problem des Handlungsreisenden

Vorlesung Datenstrukturen

Kürzeste und Schnellste Wege

Name:... Vorname:... Matr.-Nr.:... Studiengang:...

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

10. Übungsblatt zu Algorithmen I im SS 2010

Wie findet man den optimalen Weg zum Ziel? Klassische Probleme der Kombinatorischen Optimierung

Minimal spannende Bäume

Verkettete Datenstrukturen: Bäume

Bipartite Graphen. Beispiele

Die Komplexitätsklassen P und NP

Algorithmische Graphentheorie

WS 2015/16 Diskrete Strukturen Kapitel 4: Graphen (Matchings)

Lösungen zur Vorlesung Berechenbarkeit und Komplexität

Fortgeschrittene Netzwerk- und Graph-Algorithmen

Algorithmen und Datenstrukturen Tutorium Übungsaufgaben

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

1 DFS-Bäume in ungerichteten Graphen

Fortgeschrittene Netzwerk- und Graph-Algorithmen

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

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

Wiederholung. Bäume sind zyklenfrei. Rekursive Definition: Baum = Wurzelknoten + disjunkte Menge von Kindbäumen.

Algorithmen und Datenstrukturen

Prüfungsklausur Operations Research,

Diskrete Strukturen Kapitel 4: Graphentheorie (Grundlagen)

Komplexität von Algorithmen Musterlösungen zu ausgewählten Übungsaufgaben

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

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

Welche Probleme können Rechner (effizient) lösen? Die P = NP Frage. Ideen der Informatik Kurt Mehlhorn

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

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

Definition 77 Sei n N. Der Median (das mittlere Element) einer total geordneten Menge von n Elementen ist deren i-kleinstes Element, wobei n i =.

Isomorphie von Bäumen

5. Bäume und Minimalgerüste

Kürzeste Wege in einem gewichteten Graphen. Anwendungen

Programmiertechnik II

9 Minimum Spanning Trees

Kapitel 5: Minimale spannende Bäume Gliederung der Vorlesung

WS 2009/10. Diskrete Strukturen

Relationen und DAGs, starker Zusammenhang

Zweizusammenhang und starker Zusammenhang

Klausur Informatik-Propädeutikum (Niedermeier/Hartung/Nichterlein, Wintersemester 2012/13)

= 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

Diskrete Strukturen Kapitel 4: Graphentheorie (Bäume)

WS 2013/14. Diskrete Strukturen

Algorithmen und Datenstrukturen

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

Kapitel 9: Lineare Programmierung Gliederung

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

Algorithmen und Datenstrukturen

ADS: Algorithmen und Datenstrukturen 2

4.1 Bäume, Datenstrukturen und Algorithmen. Zunächst führen wir Graphen ein. Die einfachste Vorstellung ist, dass ein Graph gegeben ist als

Kapitel 6: Graphalgorithmen Gliederung

2. Repräsentationen von Graphen in Computern

Der Dreyfus-Wagner Algorithmus für das Steiner Baum Problem

Datenstrukturen und Algorithmen 2. Klausur SS 2001

Algorithmen zum Lösen von Vertex und Set Cover Instanzen zur Planung von Angriffen auf Netzwerke

Algorithmen & Komplexität

5 BINÄRE ENTSCHEIDUNGS- DIAGRAMME (BDDS)

Einheit 11 - Graphen

Kanonische Ordnungen und die Mondshein-Sequenz

Breitensuche BFS (Breadth First Search)

6. Übung zur Linearen Optimierung SS08

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

durch Einfügen von Knoten konstruiert werden kann.

Graphdurchmusterung, Breiten- und Tiefensuche

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

Schulbesuch Erich-Kästner Gesamtschule 07. April 2011

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

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

Übungen zur Vorlesung Datenstrukturen und Algorithmen SS 2006 Blatt 13

16. All Pairs Shortest Path (ASPS)

Weiterführendes Programmieren Lineare Widerstandsnetzwerke II Aufgabenblatt 6. 1 Zusammenfassung der elektrotechnischen Begriffe

Vier-Farben-Vermutung (1)

2.4. Triangulierung von Polygonen

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

Transkript:

Algorithmen für schwierige Probleme Britta Dorn Wintersemester 2011/12 30. November 2011

Wiederholung Baumzerlegung G = (V, E) Eine Baumzerlegung von G ist ein Paar {X i i V T }, T, wobei T Baum mit Knotenmenge V T, X i V Bags oder Taschen, so dass gilt: 1 Jeder Knoten von G in mindestens einem Bag 2 Endknoten jeder Kante zusammen in mindestens einem Bag 3 Für jeden Knoten v bilden Taschen, die v enthalten, einen Unterbaum. Weite einer Zerlegung: Maximale Anzahl Knoten in einem Bag - 1 Baumweite eines Graphen: Weite der besten Zerlegung (so klein wie möglich)

Test

Test Aufgabe 1 Die Baumweite eines Graphen 1 ist der Weite einer Zerlegung 2 ist n (Anzahl der Knoten des Graphen) 3 kann nie größer als eine Konstante werden 4 kann nie kleiner als 1 werden 5 ist 1, wenn der Graph ein zusammenhängender Baum mit mindestens 2 Knoten ist 6 kann auch für Bäume 2 oder größer sein 7 ist einfach zu bestimmen 8 ist für bestimmte Arten von Graphen einfach zu bestimmen (Bäume, Gitter, Räder,... )

Lösung

Test Aufgabe 1 Die Baumweite eines Graphen 1 ist der Weite einer Zerlegung 2 ist n (Anzahl der Knoten des Graphen) 3 kann nie größer als eine Konstante werden 4 kann nie kleiner als 1 werden 5 ist 1, wenn der Graph ein zusammenhängender Baum mit mindestens 2 Knoten ist 6 kann auch für Bäume 2 oder größer sein 7 ist einfach zu bestimmen 8 ist für bestimmte Arten von Graphen einfach zu bestimmen (Bäume, Gitter, Räder,... )

Test Aufgabe 2 1 Eine Baumzerlegung eines Graphen ist immer eindeutig 2 Aus einer Baumzerlegung kann man den ursprünglichen Graphen eindeutig konstruieren 3 Bei einer Baumzerlegung müssen in jedem Bag die gleiche Anzahl Knoten sein 4 Bei einer Baumzerlegung für einen zusammenhängenden Graphen kann nie ein Bag nur einen Knoten enthalten 5 Bei einer Baumzerlegung für einen zusammenhängenden Graphen mit mindestens 2 Knoten können nie alle Bags nur einen Knoten enthalten

Lösung

Test Aufgabe 2 1 Eine Baumzerlegung eines Graphen ist immer eindeutig 2 Aus einer Baumzerlegung kann man den ursprünglichen Graphen eindeutig konstruieren 3 Bei einer Baumzerlegung müssen in jedem Bag die gleiche Anzahl Knoten sein 4 Bei einer Baumzerlegung für einen zusammenhängenden Graphen kann nie ein Bag nur einen Knoten enthalten 5 Bei einer Baumzerlegung für einen zusammenhängenden Graphen mit mindestens 2 Knoten können nie alle Bags nur einen Knoten enthalten

Baumzerlegungen Typischer Ansatz für FPT-Algorithmen 1 Ermittle Baumzerlegung des gegebenen Graphen (wie? später) 2 Wende Polynomzeit-Algorithmus an, der auf Baumzerlegung beruht (meistens Dynamisches Programmieren) Laufzeit für das Dynamische Programmieren wächst exponentiell mit der Baumweite!

Baumzerlegung für Vertex Cover Korrektheit des Algorithmus (a) Bedingung 1 der Definition 8.2 einer Baumzerlegung (V = i V T X i ) stellt sicher, dass jeder Knoten in der Berechnung berücksichtigt wurde. (b) Bedingung 2 (die beiden Endknoten einer Kante müssen zusammen in einem Bag auftauchen) stellt sicher, dass nach der Entfernung der ungültigen Färbungen im Verlauf der Berechnung nur noch tatsächliche Vertex Cover berücksichtigt werden.

Baumzerlegung für Vertex Cover Korrektheit des Algorithmus (c) Bedingung 3 einer Baumzerlegung (Unterbaum...) garantiert die Konsistenz des Dynamischen Programmierens: Tritt ein Knoten v V in zwei verschiedenen Bags X i1 und X i2 auf, so ist ausgeschlossen, dass für das errechnete optimale VC dieser Knoten in den Tabellen A i1 bzw. A i2 zwei unterschiedliche Farben zugewiesen bekommt. klar: Wenn die beiden Bags Vater/Sohn sind, dann kann das nicht passieren. Der Algo färbt Knoten aus dem Schnitt gleich und ändert dann nur die Erweiterungen der Färbung des gemeinsamen Teils durch. Aber könnte es ein Problem sein, wenn zwei andere Bags so sind (nicht Vater/Sohn)? nein: Dieser Konflikt hätte sich spätestens im Bag X i0 eines kleinsten gemeinsamen Vorfahren i 0 von i 1 und i 2 in T aufgelöst. Denn laut Bedingung 3 der Baumzerlegung muss v auch in X i0 auftauchen.

Baumzerlegung für Vertex Cover Laufzeit Aktualisieren einer Tabelle A j durch Tabelle A i (bei geschicktem Umsortieren der Tabellen) in O((#Zeilen von A i + #Zeilen von A j ) X j ) = O((2 X i + 2 X j ) X j ) = O(2 w w) (w war Weite der Baumzerlegung, d.h. X i, X j w) Für jede Kante e E T im Baum T muss ein Abgleich zweier Tabellen stattfinden, erhalte insgesamt O(2 w w E T ) = O(2 w w V T ).