Approximationsalgorithmen

Ähnliche Dokumente
Approximationsschemata

Übung 2 Algorithmen II

Kapitel 9: Lineare Programmierung Gliederung

Algorithmische Methoden für schwere Optimierungsprobleme

Effiziente Algorithmen (SS2015)

Approximationsalgorithmen. 19. Dezember / 28

Approximationsalgorithmen

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

Das Rucksackproblem: schwache NP-Härte und Approximation

NP-vollständige Probleme

Approximationsklassen für Optimierungsprobleme

Approximationsalgorithmen für NP-harte Optimierungsprobleme

21. Dynamic Programming III

Approximationsalgorithmen für NP-harte Optimierungsprobleme

Polynomialzeit- Approximationsschema

Randomisierte und Approximative Algorithmen. Prof. Dr. Heiko Röglin Institut für Informatik Universität Bonn

Übungsblatt 5. Vorlesung Theoretische Grundlagen der Informatik im WS 17/18

Das Problem des minimalen Steiner-Baumes

Einführung in Approximative Algorithmen und Parametrisierte Komplexität

Algorithmen 2. Kapitel: Approximationsalgorithmen. Thomas Worsch. Fakultät für Informatik Karlsruher Institut für Technologie

Kombinatorische Optimierung

Näherungsalgorithmen (Approximationsalgorithmen) WiSe 2012/13 in Trier

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

6.1. Ein Approximationsalgorithmus für das Rucksackproblem

Approximationsalgorithmen

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

Kap. 7.1 Heuristiken Kap. 7.2 Approximative Algorithmen und Gütegarantien

Einführung in das Seminar Algorithmentechnik

Klausur Algorithmen und Datenstrukturen II 29. Juli 2013

Effiziente Algorithmen II

Algorithmen und Datenstrukturen 2 VU 3.0 Nachtragstest SS Oktober 2016

Approximation in Batch and Multiprocessor Scheduling

Einführung in Berechenbarkeit, Komplexität und Formale Sprachen

Das Lastverteilungsproblem

Theoretische Informatik 1

Theoretische Grundlagen der Informatik

ADS: Algorithmen und Datenstrukturen 2

Kombinatorische Optimierung

Approximationsalgorithmen. Approximation im Sinne der Analysis:

Betriebswirtschaftliche Optimierung

Algorithmische Methoden für schwere Optimierungsprobleme

Probleme aus NP und die polynomielle Reduktion

Approximierbarkeit von NP Problemen

Algorithmen II Vorlesung am

Algorithmische Graphentheorie

Rundreiseproblem und Stabilität von Approximationsalg.

Betriebliche Optimierung

Approximationsalgorithmen

Teil III. Komplexitätstheorie

Theoretische Informatik 1

ADS: Algorithmen und Datenstrukturen 2

Vorlesung Theoretische Informatik (Info III)

Klausur Algorithmentheorie

Approximationsalgorithmen Einführende Beispiele

Approximationsalgorithmen: Klassiker I. Kombinatorische Optimierung Absolute Gütegarantie Graph-Coloring Clique Relative Gütegarantie Scheduling

Algorithmen und Datenstrukturen 2. Stefan Florian Palkovits, BSc Juni 2016

2.6 Asymptotische Approximation: Min Binpacking

Approximationsalgorithmen. Wintersemester 2013/14 HERZLICH WILLKOMMEN!

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

Optimierung. Vorlesung 9

Abbildung 1: Reduktion: CLIQUE zu VERTEX-COVER. links: Clique V = {u, v, x, y}. rechts:der Graph Ḡ mit VC V \ V = {w, z}

Greedy Algorithms - Gierige Algorithmen

Die Klasse NP und die polynomielle Reduktion. Prof. Dr. Berthold Vöcking Lehrstuhl Informatik 1 Algorithmen und Komplexität RWTH Aachen

Heuristische Verfahren

20. Dynamic Programming II

2. Woche Eindeutige Entschlüsselbarleit, Sätze von Kraft und McMillan, Huffmancodierung

Grundlagen Theoretischer Informatik 3 SoSe 2012 in Trier. Henning Fernau Universität Trier

20. Dynamic Programming II

Näherungsalgorithmen (Approximationsalgorithmen) WiSe 2008/09 in Trier. Henning Fernau Universität Trier

11. Übung zu Algorithmen I 6. Juli 2016

Datenstrukturen und Algorithmen. Christian Sohler FG Algorithmen & Komplexität

Musterlösung Informatik-III-Nachklausur

1 Einführung in Lineare Programme und Dualität

Übungsblatt Nr. 5. Lösungsvorschlag

Approximationsalgorithmen VU

Laufzeit. Finden eines Matchings maximaler Kardinalität dauert nur O( E min{ V 1, V 2 }) mit der Ford Fulkerson Methode.

Die Klassen P und NP. Formale Grundlagen der Informatik 1 Kapitel 11. Die Klassen P und NP. Die Klasse P

Scheduling und Lineare ProgrammierungNach J. K. Lenstra, D. B. Shmoys und É.

Lösungen zur Vorlesung Berechenbarkeit und Komplexität

Entscheidungsbäume. Definition Entscheidungsbaum. Frage: Gibt es einen Sortieralgorithmus mit o(n log n) Vergleichen?

Ferien-Übungsblatt 8 Lösungsvorschläge

2. Klausur zur Vorlesung Theoretische Grundlagen der Informatik Wintersemester 2017/2018

Approximation im Sinne der Analysis:

Effiziente Algorithmen Lineares Programmieren 216. Schwache Dualität

Algorithmen II. Peter Sanders, Christian Schulz, Simon Gog. Übungen: Michael Axtmann. Institut für Theoretische Informatik, Algorithmik II.

Näherungsalgorithmen (Approximationsalgorithmen) WiSe 2008/09 in Trier. Henning Fernau Universität Trier

Übung zur Vorlesung Berechenbarkeit und Komplexität

Informatik III. 4.3 Weitere NP-Vollständige Probleme und Approximation. Christian Schindelhauer

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

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

Die Klasse NP und die polynomielle Reduktion

12. Woche: Verifizierer, nicht-deterministische Turingmaschine, Klasse NP

Ferienkurs zur algorithmischen diskreten Mathematik Kapitel 6: Matchings und TSP-Problem

lineare Programmierung

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

Algorithmik WS 07/ Vorlesung, Andreas Jakoby Universität zu Lübeck. 10 Matching-Probleme

Das Problem des Handlungsreisenden

Seminar. Das Steinerbaumproblem

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

Transkript:

Effiziente Algorithmen Lösen NP-vollständiger Probleme 320 Approximationsalgorithmen In polynomieller Zeit lässen sich nicht exakte Lösungen von NP-harten Problemen berechnen. Approximationsalgorithmen versuchen das beste aus einer Polynomialzeitberechnung zu machen, indem sie wenigstens eine Näherunslösung bestimmen. Im Gegensatz zu Heuristiken, verlangen wir aber von Approximationsalgorithmen eine Garantie, daß die berechnete Näherungslösung nah am Optimum ist.

Effiziente Algorithmen Lösen NP-vollständiger Probleme 321 Approximationsalgorithmen Sei A ein Algorithmus, der in polynomieller Zeit eine Näherungslösung zu einem gegebenen Optimierungsproblem berechnet. Sei F (I) der optimale Wert der Zielfunktion und F (I) der vom Algorithmus A erzielte Wert. Definition Das Approximationsverhältnis von A ist α, wenn F (I) F (I) F (I) α und F (I) F (I) F (I) α gilt.

Effiziente Algorithmen Lösen NP-vollständiger Probleme 322 Approximationsalgorithmen Diese Definition ist sowohl für Minimierungs- als auch für Maximierungsprobleme sinnvoll. Für Minimierungsprobleme ist diese Ungleichung ausschlaggebend: F (I) F (I) F (I) α Für Maximierungsprobleme dagegen die andere: F (I) F (I) F (I) α

Effiziente Algorithmen Lösen NP-vollständiger Probleme 323 Beispiel: Vertex Cover Das Approximationsverhältnis ist 2. C := ; while E do choose some e E; V := V e; C := C e; E := { e E e e = } od; return C

Effiziente Algorithmen Lösen NP-vollständiger Probleme 324 Kompetitive Analyse Um das Approximationsverhältnis zu analysieren, bietet sich eine kompetitive Analyse der folgenden Form an: Wir gehen von einer Instanz und einer zugehörigen optimalen Lösung aus. Wir müssen dann beweisen, daß der Approximationsalgorithmus eine Lösung findet, die nur um α schlechter als die vorgegebene optimale Lösung ist.

Effiziente Algorithmen Lösen NP-vollständiger Probleme 325 Kompetitive Analyse Im Falle von Vertex Cover ist eine kompetitive Analyse recht einfach: Sei G = (V, E) ein Graph und C V ein minimales Vertex Cover. Der Algorithmus wählt eine Kante e = {v 1, v 2 } E aus fügt v 1 und v 2 zu seinem VC hinzu. Einer von beiden Knoten ist aber auch in C. Zu einem Knoten in C, fügt der Algorithmus also höchstens 2 zu seiner Lösung hinzu. Das macht ein Verhältnis von höchstens 2 zwischen konstruierter und optimaler Lösung aus.

Effiziente Algorithmen Lösen NP-vollständiger Probleme 326 Definition Approximationsalgorithmen 1. Ein Approximationsalgorithmus ist ein f(n)-approximationsalgorithmus, wenn das Approximationsverhältnis höchstens f(n) für alle Instanzen der Länge n ist. 2. Ein ǫ-approximationsalgorithmus ist ein f(n)-approximationsalgorithmus mit f(n) ǫ für alle n N.

Effiziente Algorithmen Lösen NP-vollständiger Probleme 327 Definition Approximationsschemata Sei A(ǫ) ein Approximationsalgorithmus mit einem Parameter ǫ. 1. A(ǫ) ist ein PTAS (polynomial time approximation scheme), falls A(ǫ) ein ǫ-approxmiationsalgorithmus für jedes ǫ > 0 ist und polynomielle Laufzeit in der Eingabelänge für jedes ǫ > 0 hat. 2. A(ǫ) ist ein FPTAS (fully polynomial time approximation scheme), falls A(ǫ) ein ǫ-approxmiationsalgorithmus für jedes ǫ > 0 ist und polynomielle Laufzeit in der Eingabelänge und 1/ǫ für jedes ǫ > 0 hat.

Effiziente Algorithmen Lösen NP-vollständiger Probleme 328 Scheduling Wir betrachten folgendes Problem: Gegeben sind n Aufgaben und m identische Prozessoren, sowie die Ausführungszeiten t 1,..., t n der n Aufgaben. Gesucht ist eine Verteilung der Aufgaben auf die m Prozessoren, so daß die Schlußzeit minimiert wird, also die Zeit, bis alle Aufgaben erledigt wurden. Wir nennen dieses Problem im folgenden Scheduling. Für m = 1 ist es sehr leicht zu lösen. Ab m = 2 ist es NP-vollständig.

Effiziente Algorithmen Lösen NP-vollständiger Probleme 329 Beispiel Sei m = 3, n = 7 und (t 1,..., t 6 ) = (8, 7, 6, 5, 4, 3). Dieser Schedule ist optimal: È ½ 8 3 È ¾ 7 4 È 6 5 Die Optimalität folgt hier aus der Tatsache, daß alle Prozessoren gleichzeitig fertig werden.

Effiziente Algorithmen Lösen NP-vollständiger Probleme 330 Die LPT-Regel Ein sehr einfaches Verfahren, in polynomieller Zeit einen Schedule zu erzeugen, nennt sich LPT = longest processing time. Definition Die LPT-Regel weist dem nächsten freiwerdenden Prozessor die Aufgabe mit der größten Bearbeitungszeit zu. (Gibt es mehrere gleich große, dann nehmen wir irgendeine von ihnen.)

Effiziente Algorithmen Lösen NP-vollständiger Probleme 331 Beispiel Sei m = 3, n = 7, (t 1,..., t 7 ) = (5, 5, 4, 4, 3, 3, 3). Ein optimaler Plan ist offensichtlich: Die LPT-Regel liefert dagegen: 5 4 5 4 3 3 3 5 3 3 5 3 4 4 Natürlich kann die LPT-Regel nicht immer optimale Pläne konstruieren. Wie gut ist aber ein LPT-Schedule?

Effiziente Algorithmen Lösen NP-vollständiger Probleme 332 Theorem LPT-Schedules Sei I eine Instanz des m-prozessorscheduling und F (I) die optimale Schlußzeit. Sei F (I) die Schlußzeit eines LPT-Schedules. Dann gilt: F (I) F (I) F (I) 1 3 1 3m Insbesondere liefert die LPT-Regel einen 1/3-Approximationsalgorithmus.

Effiziente Algorithmen Lösen NP-vollständiger Probleme 333 Beweis Für m = 1 ist ein LPT-Schedule optimal, also F (I) = F (I). Sei nun m > 1. Nehmen wir an, daß Theorem ist falsch. Dann gibt es eine Instanz (t 1,..., t n ), für die der LPT-Schedule schlechter ist, als vom Theorem behauptet. Wir können annehmen, daß das Theorem für alle Instanzen mit weniger als n Aufgaben gilt und daß t 1,..., t n. Die LPT-Regel soll die Aufgaben in der Reihenfolge ihrer Indizes zuordnen.

Effiziente Algorithmen Lösen NP-vollständiger Probleme 334 Sei F (I) die Schlußzeit des LPT-Schedules. Behauptung 1: Die Aufgabe mit Index n wird genau zur Schlußzeit, aber nicht früher beendet. Wenn nicht, dann gibt es eine Aufgabe k < n, die später als Aufgabe n zur Schlußzeit beendet wird. Sei I die Instanz, die aus den Aufgaben 1,..., k besteht. F (I ) F (I ) F (I ) F (I) F (I) F (I) > 1 3 1 3m Dies ist ein Widerspruch dazu, daß das Theorem für weniger als n Aufgaben gilt.

Effiziente Algorithmen Lösen NP-vollständiger Probleme 335 Behauptung 2: In einem optimalen Plan für I werden nicht mehr als zwei Aufgaben von einem Prozessor erledigt. Wegen Behauptung 1 wird die Aufgabe n zum Zeitpunkt F (I) t n im LPT-Schedule gestartet. Bis zu diesem Zeitpunkt müssen alle Prozessoren beschäftigt sein, denn sonst wäre Aufgabe n früher zugeordnet worden. Daraus folgt: F (I) t n 1 m F (I) 1 m n 1 n=1 n n=1 t i t i + m 1 m Wir haben die untere Schranke F (I) 1 m t n n t i. i=1

Effiziente Algorithmen Lösen NP-vollständiger Probleme 336 Behauptung 2: In einem optimalen Plan für I werden nicht mehr als zwei Aufgaben von einem Prozessor erledigt. Daraus folgt F (I) F (I) m 1 m F (I) F (I) F (I) t n oder m 1 m Da das Theorem für I nicht gilt, erhalten wir woraus F (I) < 3t n folgt. 1 3 1 3m < m 1 m Damit ist Behauptung 2 bewiesen. t n F (I). t n F (I),

Effiziente Algorithmen Lösen NP-vollständiger Probleme 337 Wir sind im Beweis des Theorems nun so weit: Falls das Theorem für eine Instanz I versagt, dann werden in einem optimalen Plan für I jedem Prozessor höchstens zwei Aufgaben zugeordnet. Dies passiert aber nie, denn es gilt: Behauptung 3: Falls ein optimaler Plan für I jedem Prozessor höchstens zwei Aufgaben zuordnet, dann ist ein LPT-Schedule für I ebenfalls optimal. Beweis von Behauptung 3: Übungsaufgabe!

Effiziente Algorithmen Lösen NP-vollständiger Probleme 338 Ein PTAS für Scheduling Folgendes Verfahren führt zu einem PTAS: 1. Wähle ein festes k (unabhängig von der Eingabe). 2. Berechne einen optimalen Plan für die k Aufgaben, mit der längsten Bearbeitungszeit. 3. Verplane die verbleibenden n k Aufgaben mit der LPT-Regel. Warum sollte dieses Verfahren intuitiv gut sein?

Effiziente Algorithmen Lösen NP-vollständiger Probleme 339 Beispiel Sei m = 2, n = 6, (t 1,..., t 6 ) = (8, 6, 5, 4, 4, 1). Wir wählten k = 4. Schritt 1: Optimaler Plan für die 4 längsten Aufgaben. 8 4 6 5 Schritt 1: LPT-Plan für die verbleibenden 2 Aufgaben. Die optimale Lösung ist: 8 4 1 6 5 4 8 6 5 4 4 1

Effiziente Algorithmen Lösen NP-vollständiger Probleme 340 Theorem Ein PTAS für Scheduling Sei F (I) die Schlußzeit eines Plans, der durch das angebene Verfahrens erzeugt wird und F (I) die optimale Schlußzeit von I. Dann gilt F (I) F (I) F (I) 1 1/m 1 + k/m.