Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

10.11.2013Kapitel 11 Methoden des Algorithmenentwurfs Kapitel 1: Einführung Christian Scheideler SS 2009.

Ähnliche Präsentationen


Präsentation zum Thema: "10.11.2013Kapitel 11 Methoden des Algorithmenentwurfs Kapitel 1: Einführung Christian Scheideler SS 2009."—  Präsentation transkript:

1 Kapitel 11 Methoden des Algorithmenentwurfs Kapitel 1: Einführung Christian Scheideler SS 2009

2 Organisatorisches Leitung: Prof. Dr. Christian Scheideler Sprechstunde: Do, Uhr Modulinformation: Modul II.2.1 Modelle und Algorithmen (MuA) V2+Ü1 3 ECTS Credits Zeit und Ort: Mi Uhr, F0.530 Webseite: Kapitel 12

3 Organisatorisches Übungen: Übungsleitung: NN Mi Uhr, F0.530, 14-tägig ab 29. April Übungszettel: Ausgabe: 14-tägig auf dieser Seite zum Übungstermin Abgabe: eine Woche danach in der Vorlesung Rückgabe: eine Woche danach in der Übung Schein: Einen Schein erhält, wer die Klausur am Ende des Semesters besteht. Bei Vorrechnen einer Aufgabe verbessert sich die Note um 0,3 Punkte Kapitel 13

4 Organisatorisches Inhalt: Teil 1: Approximationsalgorithmen –1.1 Einführung [1w] –1.2 Approximation mit absoluter Güte [2w] –1.3 Approximation mit relativer Güte [2w] –1.4 Approximationsschemata [2w] –1.5 Lineare Optimierung und Approximationsalgorithmen [2w] Kapitel 14

5 Organisatorisches Teil 2: Online-Algorithmen –2.1 Deterministische Online-Algorithmen (Scheduling, Paging, selbstorganisierende Datenstrukturen) [3w] –2.2 Randomisierte Online-Algorithmen (Scheduling, Paging, selbstorganisierende Datenstrukturen, Lastbalancierung) [2-3w] Kapitel 15

6 Literatur Approximationsalgorithmen: –Rolf Wanka. Approximationsalgorithmen: Eine Einführung Vieweg & Teubner Verlag, –Klaus Jansen und Marian Margraf. Approximative Algorithmen und Nichtapproximierbarkeit. De Gruyter Verlag, Online-Algorithmen: –Susanne Albers. Online- und Approximationsalgorithmen. Universität Freiburg, SS Verfügbar über WWW. –Christian Scheideler. Universal Routing Strategies for Interconnection Networks. Springer Verlag, LNCS 1390, Kapitel 16

7 Kapitel 17 Kapitel 1.1: Einführung Inhalt: Einführung in P vs. NP Approximationsalgorithmen Beispiele –Lastbalancierung –Zentrumswahl –Rucksackproblem

8 P vs. NP Algorithmus: berechnet in endlicher Zeit aus einer Eingabe eine Ausgabe. zentrales Problem: möglichst effizienter Algorithmus (Zeit und Speicher) Kapitel 18 Eingabe Algorithmus Ausgabe

9 P vs. NP Ein Algorithmus ist schnell, falls seine Laufzeit polynomiell in der Eingabegröße ist. Eingabegröße: Anzahl der Elemente der Eingabe (z.B. Sortierproblem, Graph) oder Anzahl Bits / Wörter, aus denen Eingabe besteht (Multiplikation großer Zahlen) Polynomiell: Laufzeit ist O(n k ) für eine Konstante k bei Eingabegröße n Kapitel 19

10 P vs. NP n n n log n n2n n3n n2n Stellen31 Stellen91 Stellen302 Stellen n! 19 Stellen82 Stellen161 Stellen623 Stellenunvorstellbar n 27 Stellen107 Stellen201 Stellen744 StellenUnvorstellbar Kapitel 110 Laufzeitvergleiche:

11 Kapitel 111 P vs. NP P: Klasse aller Entscheidungsprobleme (Anworten sind aus {Ja, Nein}), die in polynomieller Zeit entschieden werden können. Beispiele: Sortiertheit einer Folge, Auswer- tung eines Schaltkreises, Wortproblem für kontextfreie Sprachen, Lineare Optimierung,…

12 Kapitel 112 P vs. NP NP: Klasse aller Entscheidungsprobleme (Anworten sind aus {Ja, Nein}), für die es für Eingaben mit Antwort Ja ein Zertifikat gibt, so dass die Antwort in polynomieller Zeit (in der Eingabegröße) verifiziert werden kann. Beispiele: Erfüllbarkeit einer Booleschen Formel, 3-Färbung von Graphen, Rucksackproblem,…

13 P vs. NP 1.1 Beispiele für Probleme in NP: Clique = {(G,k) | G=(V,E) ist ein Graph, der einen vollständigen Teilgraphen aus mindestens k Knoten besitzt} IS = {(G,k) | G=(V,E) ist ein Graph, in dem es eine Knotenmenge U aus k Knoten gibt, so dass keine zwei Knoten in U durch eine Kante in G verbunden sind} Hamilton = {G | G=(V,E) ist ein Graph, der einen Hamilton-Kreis besitzt} (Ein Hamilton-Kreis ist ein Kreis in G, in dem jeder Knoten genau einmal besucht wird.) Kapitel 113

14 Kapitel 114 P vs. NP Offensichtlich ist P eine Teilmenge von NP. Die 1-Million-Dollar-Frage: Ist P=NP oder nicht? Antwort auf diese Frage scheint sehr schwer zu sein. Bisher nur Ergebnisse des Typs: Das kann nicht in polynomieller Zeit gelöst werden, es sei denn, P=NP. Klasse der NP-harten Probleme: sind nicht in P, es sei denn, P=NP.

15 P vs. NP Zu Entscheidungsproblemen gibt es häufig entsprechende Optimierungsprobleme. Beispiele: Optimierungsvariante zu Clique: finde vollständigen Teilgraphen maximaler Größe. Optimierungsvariante zu IS: finde Knotenmenge maximaler Größe, in der kein Knotenpaar verbunden ist. Einsicht: Ist das Entscheidungsproblem nicht in P, dann ist auch die Optimierungsvariante nicht in polynomieller Zeit lösbar (und umgekehrt) Kapitel 115

16 P vs. NP 1.2 Definition: Ein kombinatorisches Optimierungs- problem ist charakterisiert durch vier Komponenten: –D: Menge der Eingaben –S(I) für ein I D: Menge der zur Eingabe I zulässigen Lösungen –Die Bewertungsfunktion f:S(I) IN –ziel {min, max} Kapitel 116

17 P vs. NP Gesucht: eine zu I D zulässige Lösung opt S(I), so dass f( opt ) = ziel{ f( ) | S(I)} f( ) ist der Wert der zulässigen Lösung. Wir schreiben OPT(I) = f( opt ). Für viele komb. Optimierungsprobleme ist es schwer, OPT(I) exakt zu bestimmen Kapitel 117

18 P vs. NP 1.3 Beispiel: (a) Das Traveling Salesperson Problem (TSP) ist charakterisiert durch: –D={(K n,c) | K n ist der vollständige Graph auf n Knoten, c:E IN sind die Kantengewichte} –S((K n,c)) = { C | C=(v i 1,v i 2,...,v i n,v i 1 ) ist ein Hamilton-Kreis} –f(C) = c(v i n, v i 1 ) + j=1 n-1 c(v i j, v i j+1 ) –min Kapitel 118

19 P vs. NP 1.3 Beispiel: (b) Das Rucksackproblem ist charakterisiert durch: –D={ (W,vol,p,B) | W={1,...,n}, vol:W IN, B IN, p:W IN und für alle w W gilt vol(w) B} W ist das Warenangebot, vol die Zuordnung von Volumina zu den Waren, p die Zuordnung von Werten und B die Kapazität des Rucksacks –S((W,vol,p,B)) = {A W | w A vol(w) B} –f(A) = w A p w –max Kapitel 119

20 Kapitel 120 Übersicht P vs. NP Approximationsalgorithmen Lastbalancierung Zentrumswahl Rucksackproblem

21 Approximationsalgorithmen Die NP-Härte eines Entscheidungsproblems legt nahe, dass die Optimierungsvariante keinen effizienten Algorithmus besitzt. Man muss sich also mit Näherungslösungen zufrieden geben. 1.4 Definition: Sei ein kombinatorisches Optimierungsproblem. Ein t(n)-Zeit-Approxi- mationsalgorithmus A berechnet zu Eingabe I D in Zeit t(|I|) eine Ausgabe I A S(I). Wir schreiben A(I) = f( I A ) Kapitel 121

22 Approximationsalgorithmen Wir wollen natürlich nach t(n)-Zeit-Approxi- mationsalgorithmen suchen, für die –t(n) polynomiell in n ist und –f( I A ) möglichst nah an OPT(I) ist. Ziele: Bestimme untere und obere Schranken für Approximationsgüte des Algorithmus Bestimme untere Schranken für die erreichbare Approximationsgüte des Problems Bestimme Heuristiken, die in der Praxis gut funktionieren ( Benchmarks) Kapitel 122

23 Kapitel 123 Übersicht P vs. NP Approximationsalgorithmen Lastbalancierung Zentrumswahl Rucksackproblem

24 Kapitel 124 Lastbalancierung Eingabe: m identische Maschinen, n Jobs. Job i hat Laufzeit t i. Einschränkungen: Ein einmal ausgeführter Job muss bis zum Ende auf derselben Maschine ausgeführt werden. Jede Maschine kann höchstens einen Job gleichzeitig bearbeiten. 1.5 Definition: Sei J(i) die Teilmenge der Jobs, die Maschine i zugewiesen werden. Dann ist L i = j J(i) t j die Last der Maschine i. 1.6 Definition: Der Makespan L ist die maximale Last einer Maschine, d.h. L = max i L i Lastbalancierung: finde Zuweisung, die Makespan minimiert

25 Kapitel 125 Lastbalancierung: List Scheduling List-Scheduling Algorithmus: Betrachte n Jobs in einer festen Reihenfolge Weise Job j der Maschine mit z.Zt. geringster Last zu List-Scheduling(m, n, (t 1,…,t n )): for i:=1 to m do L i := 0; J(i):= ; for j:=1 to n do i:=argmin k L k // wähle Maschine mit kleinster Last J(i):=J(i) {j} // weise dieser Job i zu L i :=L i + t j return (J(1),…,J(m)) Laufzeit: O(n log m) mit Priority Queue

26 Kapitel 126 Lastbalancierung: List Scheduling 1.7 Satz (Graham): List Scheduling ist 2-approximativ (d.h. für alle Eingaben I ist List-Scheduling(I) 2OPT(I) ). vergleiche Güte des Algorithmus mit optimalem Makespan L* 1.8 Lemma: L* max j t j Beweis: Eine Maschine muss den zeitintensivsten Job bearbeiten. 1.9 Lemma: L* (1/m) j t j Beweis: Die Gesamtlast ist j t j Eine der m Maschinen muss mindestens 1/m der Gesamtlast bekommen.

27 Kapitel 127 Lastbalancierung: List Scheduling 1.10 Satz: List Scheduling ist 2-approximativ. Beweis: Betrache Maschine i mit höchster Last L i. Sei j der letzte Job in Maschine i. Da Job j Maschine i zugeordnet wurde, hatte i vorher die kleinste Last. Es gilt also L i – t j L k für alle k. vor j j nach j L i - t j LiLi

28 Kapitel 128 Lastbalancierung: List Scheduling Beweis (Forsetzung): Es gilt: L i -t j L k für alle k {1,…,m} Daraus folgt: L i – t j (1/m) 1 k m L k = (1/m) 1 k n t k L* (Lemma 1.9) Also gilt wegen Lemma 1.8: L i = (L i -t j ) + t j 2L*

29 Kapitel 129 Lastbalancierung: List Scheduling Ist die Analyse scharf? Ja! Beispiel: m Maschinen, m(m-1) Jobs der Länge 1, ein Job der Länge m m=10 Makespan = 19

30 Kapitel 130 Lastbalancierung: List Scheduling Ist die Analyse scharf? Ja! Beispiel: m Maschinen, m(m-1) Jobs der Länge 1, ein Job der Länge m m=10 Optimaler Makespan = 10

31 Kapitel 131 Lastbalancierung: LPT Regel Longest Processing Time (LPT): Sortiere die n Jobs in absteigender Reihenfolge und führe dann den List Scheduling Algorithmus aus. LPT-List-Scheduling(m, n, (t 1,…,t n )): sortiere Jobs, so dass t 1t 2…t n for i:=1 to m do L i := 0; J(i):= ; for j:=1 to n do i:=argmin k L k J(i):=J(i) {j} L i :=L i + t j return (J(1),…,J(m))

32 Kapitel 132 Lastbalancierung: LPT Regel Beobachtung: Wenn es höchstens m Jobs gibt, dann ist List Scheduling optimal. Beweis: Weise jedem Job eigene Maschine zu Lemma: Falls es mehr als m Jobs gibt, dann ist L*2t m+1. Beweis: Betrachte die ersten m+1 Jobs t 1,…,t m+1 Da die t i s absteigend sortiert sind, benötigt jeder dieser Jobs mindestens t m+1 Zeit. Bei m+1 Jobs muss eine Maschine mindestens zwei Jobs erhalten.

33 Kapitel 133 Lastbalancierung: LPT Regel 1.12 Satz: Die LPT Regel liefert eine 3/2-Approximation. Beweis: Falls die Maschine i mit größter Last nur einen Job hat, ist LPT offensichtlich optimal. Sonst gilt für den letzten Job j auf Maschine i, dass j m+1 und damit nach Lemma 1.11: L i = (L i – t j ) + t j L* + (1/2)L* (3/2)L* Ist 3/2 scharf? Nein!

34 Kapitel 134 Lastbalancierung: LPT Regel 1.13 Satz: (Graham): Die LPT Regel ist eine 4/3- Approximation. Beweis: aufwändig Satz 1.13 ist im Wesentlichen scharf. Beispiel: m Maschinen, n=2m+1 Jobs: jeweils 2 Jobs der Länge m+1,m+2,…,2m und ein Job der Länge m Vergleich zu OPT: Übung.

35 Kapitel 135 Übersicht P vs. NP Approximationsalgorithmen Lastbalancierung Zentrumswahl Rucksackproblem

36 Kapitel 136 Zentrumswahl-Problem Eingabe: Menge von n Orten s 1,…,s n und eine Zahl k IN. Zentrumswahl-Problem: Wähle k Zentren C, so dass die maximale Distanz eines Ortes zum nächsten Zentrum minimal ist. k=4 : Zentrum

37 Kapitel 137 Zentrumswahl-Problem Eingabe: Menge von n Orten s 1,…,s n und eine Zahl k IN. Zentrumswahl-Problem: Wähle k Zentren C, so dass die maximale Distanz eines Ortes zum nächsten Zentrum minimal ist. Notation: dist(x,y) = Distanz zwischen x und y dist(s i, C) = min c C dist(s i,c) = Distanz von s i zum nächsten Zentrum r(C) = max i dist(s i, C) = kleinster Überdeckungsradius Wir nehmen an, dist ist eine Metrik, d.h. dist(x,x) = 0 (Identität) dist(x,y) = dist(y,x) (Symmetrie) dist(x,y) dist(x,z) + dist(z,y) (Dreiecksungleichung)

38 Kapitel 138 Zentrumswahl-Problem Beispiel: jeder Ort ist ein Punkt im 2-dimensiona- len Euklidischen Raum, dist(x,y) = Euklidische Distanz k=4 : Zentrum

39 Kapitel 139 Zentrumswahl: Greedy Algorithmus Greedy Algorithmus: Setze das erste Zentrum an der bestmöglichen Stelle für ein einzelnes Zentrum, füge dann Zentren hinzu, um den Überdeckungsradius möglichst stark zu verkleinern. Kann beliebig schlecht werden!! Beispiel: k=2 erstes Zentrum

40 Kapitel 140 Zentrumswahl: Greedy Algorithmus Greedy Algorithmus: wähle wiederholt als näch- stes Zentrum den Ort s i mit maximaler Distanz zu allen bisherigen Zentren Greedy-Center-Selection(k, n, (s 1,s 2,…,s n )): C:= ; wiederhole k-mal wähle Ort s i mit maximalem dist(s i,C) C:=C {s i } return C Bemerkung: erstes Zentrum ist beliebiger Ort s i

41 Kapitel 141 Zentrumswahl: Greedy Algorithmus Bemerkung: Zentren in C sind mindestens r(C) entfernt voneinander Beweis: r(C) sinkt monoton, jeweils minimale paarweise Entfernung 1.14 Satz: Sei C* die optimale Wahl der Zentren. Dann ist r(C) 2r(C*). Beweis (durch Widerspruch): Angenommen, r(C*) < r(C)/2. Betrachte die Kreise mit Radius r(C)/2 um jedes c i C. Es muss genau ein c C* im Kreis von jedem c i geben (siehe Bemerkung und Annahme); wir nennen dieses Zentrum c* i Betrachte einen beliebigen Ort s und sei c* i sein nächstes Zentrum in C*. Es gilt: dist(s,C) dist(s,c i ) dist(s,c* i ) + dist(c* i,c i ) 2r(C*) Also ist r(C) 2r(C*), ein Widerspruch zur Annahme

42 Kapitel 142 Zentrumswahl Wir wissen: Der Greedy Algorithmus ergibt eine 2-Approximation. Gibt es auch Polynomialzeitalgorithmen mit Approximationsgüte 3/2? Oder 4/3? 1.15 Satz: Sofern nicht P=NP ist, gibt es keinen Polynomialzeitalgorithmus mit Approximationsgüte 2).

43 Kapitel 143 Übersicht P vs. NP Approximationsalgorithmen Lastbalancierung Zentrumswahl Rucksackproblem

44 Kapitel 144 Rucksack-Problem Rucksack-Problem: Gegeben sind n Objekte und ein Rucksack Objekt i hat Wert p i >0 und wiegt vol i >0 Der Rucksack kann max. Gesamtgewicht B tragen. Ziel: fülle Rucksack mit Objekten mit max. Gesamtwert Beispiel: B=11 {3,4} hat Wert 40 ObjektWertGewicht

45 Kapitel 145 RP: Greedy Verfahren Greedy Strategie: Berechne Profitdichten d 1 =p 1 /vol 1,.., d n =p n /vol n Sortiere Objekte nach Profitdichten Angefangen von dem Objekt mit höchster Profitdichte, füge Objekte zu Rucksack hinzu, bis kein Platz mehr da Problem: Greedy Strategie kann weit vom Optimum entfernt liegen

46 Kapitel 146 RP: Greedy Verfahren Beispiel: zwei Objekte mit p 1 =1 und p 2 =B-1 und vol 1 =1 und vol 2 =B, Rucksackkapazität ist B Greedy-Methode: berechnet d 1 =1 und d 2 = 1-1/B und wird nur Objekt 1 in Rucksack packen, da Objekt 2 nicht mehr passt Optimale Lösung: packe Objekt 2 in Ruck- sack (viel besser da Wert B-1 statt 1)

47 Kapitel 147 RP: Greedy Verfahren Verbesserte Greedy-Methode: Seien die Objekte 1 bis n absteigend nach Profitdichte sortiert Bestimme maximale Objektmenge {1,…,i} wie bisher mit j i vol j B Gib entweder {1,…,i} oder {i+1} aus, je nachdem, welche Menge den maximalen Wert hat

48 Kapitel 148 RP: Greedy Verfahren 1.16 Satz: Die Lösung der verbesserten Greedy- Methode ist höchstens einen Faktor 2 von der optimalen Lösung entfernt. Beweis: Wenn beliebige Bruchteile der Objekte gewählt werden könnten, wäre die optimale Lösung {1,…,i+1}, wobei von Objekt i+1 nur der Bruchteil genommen wird, der noch in den Rucksack passt. Für den optimalen Wert OPT gilt demnach: OPT j i+1 vol j. Also ist max{ j i vol j, vol i+1 } OPT/2

49 Kapitel 149 Fragen?


Herunterladen ppt "10.11.2013Kapitel 11 Methoden des Algorithmenentwurfs Kapitel 1: Einführung Christian Scheideler SS 2009."

Ähnliche Präsentationen


Google-Anzeigen