Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

LS 2 / Informatik Datenstrukturen, Algorithmen und Programmierung 2 (DAP2)

Ähnliche Präsentationen


Präsentation zum Thema: "LS 2 / Informatik Datenstrukturen, Algorithmen und Programmierung 2 (DAP2)"—  Präsentation transkript:

1 LS 2 / Informatik Datenstrukturen, Algorithmen und Programmierung 2 (DAP2)

2 LS 2 / Informatik 2 Approximationsalgorithmen Was kann man tun, wenn man Problem nicht effizient lösen kann? Die Aufgabenstellung vereinfachen! Approximationsalgorithmen Löse Problem nicht exakt, sondern nur approximativ Qualitätsgarantie in Abhängigkeit von optimaler Lösung Z.B.: jede berechnete Lösung ist nur doppelt so teuer, wie eine optimale Lösung Heuristik Löse ein Problem nicht exakt Keine Qualitätsgarantie Können jedoch in der Praxis durchaus effizient sein

3 LS 2 / Informatik 3 Approximationsalgorithmen Löse Problem nicht exakt, sondern nur approximativ Qualitätsgarantie in Abhängigkeit von optimaler Lösung Z.B.: jede berechnete Lösung ist nur doppelt so teuer, wie eine optimale Lösung Beispiel (kürzeste Wege) Wir sind zufrieden mit Wegen, die maximal doppelt so lang sind, wie ein kürzester Weg Gilt dies für alle berechneten Wege, so haben wir einen 2-Approximations- algorithmus

4 LS 2 / Informatik 4 Approximationsalgorithmen Definition (Approximationsalgorithmus) Ein Algorithmus A für ein Optimierungsproblem heißt (n -Approximations- algorithmus, wenn für jedes n und jede Eingabe der Größe n gilt, dass wobei C die Kosten der von A berechneten Lösung für die gegebene Instanz bezeichnet und C* die Kosten einer optimalen Lösung (n) heißt auch Approximationsfaktor

5 LS 2 / Informatik 5 Approximationsalgorithmen Knotenüberdeckung Sei G=(V,E) ein ungerichteter Graph. Eine Menge U V heißt Knotenüberdeckung, wenn gilt, dass für jede Kante (u,v) E mindestens einer der Endknoten u,v in U enthalten ist. Problem minimale Knotenüberdeckung Gegeben ein Graph G=(V,E) Berechnen Sie eine Knotenüberdeckung U minimaler Größe |U|

6 LS 2 / Informatik 6 Approximationsalgorithmen Knotenüberdeckung Sei G=(V,E) ein ungerichteter Graph. Eine Menge U V heißt Knotenüberdeckung, wenn gilt, dass für jede Kante (u,v) E mindestens einer der Endknoten u,v in U enthalten ist. Problem minimale Knotenüberdeckung Gegeben ein Graph G=(V,E) Berechnen Sie eine Knotenüberdeckung U minimaler Größe |U|

7 LS 2 / Informatik 7 Approximationsalgorithmen Knotenüberdeckung Sei G=(V,E) ein ungerichteter Graph. Eine Menge U V heißt Knotenüberdeckung, wenn gilt, dass für jede Kante (u,v) E mindestens einer der Endknoten u,v in U enthalten ist. Problem minimale Knotenüberdeckung Gegeben ein Graph G=(V,E) Berechnen Sie eine Knotenüberdeckung U minimaler Größe |U|

8 LS 2 / Informatik 8 Approximationsalgorithmen Erste Idee Wähle immer Knoten mit maximalem Grad und entferne alle anliegenden Kanten GreedyVertetCover1() 1. while E do 2. wähle einen Knoten v mit maximalem Knotengrad 3. Entferne alle an v anliegenden Kanten aus E Erste Frage Ist der Algorithmus optimal?

9 LS 2 / Informatik 9 Approximationsalgorithmen Erste Frage Ist der Algorithmus optimal? Nein! Gegenbeispiel:

10 LS 2 / Informatik 10 Approximationsalgorithmen Erste Frage Ist der Algorithmus optimal? Nein! Gegenbeispiel: Optimale Lösung hat Größe 3

11 LS 2 / Informatik 11 Approximationsalgorithmen Erste Frage Ist der Algorithmus optimal? Nein! Gegenbeispiel: Die von GreedyVertexCover1 berechnete Lösung hat Größe 4

12 LS 2 / Informatik 12 Approximationsalgorithmen Zweite Frage Hat der Algorithmus einen konstanten Approximationsfaktor?

13 LS 2 / Informatik 13 Approximationsalgorithmen Zweite Frage Hat der Algorithmus einen konstanten Approximationsfaktor? Nein! Wir entwickeln nun Konstruktion eines Gegenbeispiels

14 LS 2 / Informatik 14 Approximationsalgorithmen Zweite Frage Hat der Algorithmus einen konstanten Approximationsfaktor? Nein! Wir entwickeln nun Konstruktion eines Gegenbeispiels Definition Ein Graph G=(V,E) heißt bipartit (oder 2-färbbar), wenn man V in zwei Mengen L und R partitionieren kann, so dass es keine Kante gibt, deren Endknoten beide in L oder beide in R liegen. Man schreibt auch häufig G=(L R, E), um die Partition direkt zu benennen.

15 LS 2 / Informatik 15 Approximationsalgorithmen Beobachtung Sei G=(L R, E) ein bipartiter Graph. Dann ist L bzw. R eine gültige Knotenüberdeckung (die aber natürlich nicht unbedingt minimale Größe hat)

16 LS 2 / Informatik 16 Approximationsalgorithmen Beobachtung Sei G=(L R, E) ein bipartiter Graph. Dann ist L bzw. R eine gültige Knotenüberdeckung (die aber natürlich nicht unbedingt minimale Größe hat) Idee Wir konstruieren einen bipartiten Graph, bei dem |L| = r ist und |R|= (r log r). Trotzdem wählt der Algorithmus GreedyVertexCover1 die Knoten der Seite r aus Damit ist für r der Approximationsfaktor nicht durch eine Konstante beschränkt

17 LS 2 / Informatik 17 Approximationsalgorithmen Die Konstruktion Sei L={1,…,r} eine Menge mit r Knoten Die Menge L

18 LS 2 / Informatik 18 Approximationsalgorithmen Die Konstruktion Sei L={1,…,r} eine Menge mit r Knoten Wir wählen nun eine Menge R(2) mit |L|/2 Knoten Der j-te Knoten aus R(2) wird mit Knoten 2j-1 und 2j verbunden Die Menge L R(2)

19 LS 2 / Informatik 19 Approximationsalgorithmen Die Konstruktion Sei L={1,…,r} eine Menge mit r Knoten Im i-ten Schritt wählen wir Menge R(i) mit |L|/i Knoten Der j-te Knoten aus R(i) wird mit Knoten i(j-1)+1,…, ij verbunden Die Menge L R(2) R(3)

20 LS 2 / Informatik 20 Approximationsalgorithmen Die Konstruktion Sei L={1,…,r} eine Menge mit r Knoten Im i-ten Schritt wählen wir Menge R(i) mit |L|/i Knoten Der j-te Knoten aus R(i) wird mit Knoten i(j-1)+1,…, ij verbunden Die Menge L R(2) R(3)R(4)

21 LS 2 / Informatik 21 Approximationsalgorithmen Die Konstruktion Sei L={1,…,r} eine Menge mit r Knoten Im i-ten Schritt wählen wir Menge R(i) mit |L|/i Knoten Der j-te Knoten aus R(i) wird mit Knoten i(j-1)+1,…, ij verbunden Die Menge L R(2) R(3)R(4) R(5)

22 LS 2 / Informatik 22 Approximationsalgorithmen Die Konstruktion Sei L={1,…,r} eine Menge mit r Knoten Im i-ten Schritt wählen wir Menge R(i) mit |L|/i Knoten Der j-te Knoten aus R(i) wird mit Knoten i(j-1)+1,…, ij verbunden Die Menge L R(2) R(3)R(4) R(5)R(6)

23 LS 2 / Informatik 23 Approximationsalgorithmen Was macht der Algorithmus? Die Menge L R(2) R(3)R(4) R(5)R(6)

24 LS 2 / Informatik 24 Approximationsalgorithmen Was macht der Algorithmus? Die Menge L R(2) R(3)R(4) R(5)R(6)

25 LS 2 / Informatik 25 Approximationsalgorithmen Was macht der Algorithmus? Die Menge L R(2) R(3)R(4) R(5)R(6)

26 LS 2 / Informatik 26 Approximationsalgorithmen Was macht der Algorithmus? Die Menge L R(2) R(3)R(4) R(5)R(6)

27 LS 2 / Informatik 27 Approximationsalgorithmen Was macht der Algorithmus? Die Menge L R(2) R(3)R(4) R(5)R(6)

28 LS 2 / Informatik 28 Approximationsalgorithmen Was macht der Algorithmus? Die Menge L R(2) R(3)R(4) R(5)R(6)

29 LS 2 / Informatik 29 Approximationsalgorithmen Was macht der Algorithmus? Der Algorithmus wählt alle Knoten aus R= R(i) Die Menge L R(2) R(3)R(4) R(5)R(6)

30 LS 2 / Informatik 30 Approximationsalgorithmen Was macht der Algorithmus? Wie groß kann R werden?

31 LS 2 / Informatik 31 Approximationsalgorithmen Was macht der Algorithmus? Wie groß kann R werden?

32 LS 2 / Informatik 32 Approximationsalgorithmen Was macht der Algorithmus? Wie groß kann R werden? Damit ist das Approximationsverhältnis nicht konstant

33 LS 2 / Informatik 33 Approximationsalgorithmen Was macht der Algorithmus? Wie groß kann R werden? Damit ist das Approximationsverhältnis nicht konstant (Man kann zeigen, dass es für Graphen mit n Knoten O(log n) ist)

34 LS 2 / Informatik 34 Approximationsalgorithmen Was macht der Algorithmus? Wie groß kann R werden? Damit ist das Approximationsverhältnis nicht konstant (Man kann zeigen, dass es für Graphen mit n Knoten O(log n) ist)

35 LS 2 / Informatik 35 Approximationsalgorithmen Können wir einen besseren Algorithmus entwickeln? GreedyVertexCover2(G) 1. C 2. E E(G) 3. while E do 4. Sei (u,v) beliebige Kante aus E 5. C C {(u,v)} 6. Entferne aus E jede Kante, die an u oder v anliegt 7. return C Laufzeit: O(|E|)

36 LS 2 / Informatik 36 Satz ApproxVertexCover2 ist ein 2-Approximationsalgorithmus für das Knotenüberdeckungsproblem. Approximationsalgorithmen

37 LS 2 / Informatik 37 Satz ApproxVertexCover2 ist ein 2-Approximationsalgorithmus für das Knotenüberdeckungsproblem. Beweis Die von ApproxVertexCover2 berechnete Menge C ist eine Knotenüberdeckung, da die while-Schleife solange durchlaufen wird, bis alle Kanten überdeckt sind Approximationsalgorithmen

38 LS 2 / Informatik 38 Satz ApproxVertexCover2 ist ein 2-Approximationsalgorithmus für das Knotenüberdeckungsproblem. Beweis Die von ApproxVertexCover2 berechnete Menge C ist eine Knotenüberdeckung, da die while-Schleife solange durchlaufen wird, bis alle Kanten überdeckt sind Sei A die Menge der Kanten, die in Zeile 4 ausgewählt wurden Approximationsalgorithmen

39 LS 2 / Informatik 39 Satz ApproxVertexCover2 ist ein 2-Approximationsalgorithmus für das Knotenüberdeckungsproblem. Beweis Die von ApproxVertexCover2 berechnete Menge C ist eine Knotenüberdeckung, da die while-Schleife solange durchlaufen wird, bis alle Kanten überdeckt sind Sei A die Menge der Kanten, die in Zeile 4 ausgewählt wurden Die Endpunkte der Kanten aus A sind disjunkt, da nach der Auswahl einer Kante alle an den Endpunkten anliegende Kanten gelöscht werden Approximationsalgorithmen

40 LS 2 / Informatik 40 Satz ApproxVertexCover2 ist ein 2-Approximationsalgorithmus für das Knotenüberdeckungsproblem. Beweis Die von ApproxVertexCover2 berechnete Menge C ist eine Knotenüberdeckung, da die while-Schleife solange durchlaufen wird, bis alle Kanten überdeckt sind Sei A die Menge der Kanten, die in Zeile 4 ausgewählt wurden Die Endpunkte der Kanten aus A sind disjunkt, da nach der Auswahl einer Kante alle an den Endpunkten anliegende Kanten gelöscht werden Es gilt somit |C| = 2 |A| Approximationsalgorithmen

41 LS 2 / Informatik 41 Satz ApproxVertexCover2 ist ein 2-Approximationsalgorithmus für das Knotenüberdeckungsproblem. Beweis Die von ApproxVertexCover2 berechnete Menge C ist eine Knotenüberdeckung, da die while-Schleife solange durchlaufen wird, bis alle Kanten überdeckt sind Sei A die Menge der Kanten, die in Zeile 4 ausgewählt wurden Die Endpunkte der Kanten aus A sind disjunkt, da nach der Auswahl einer Kante alle an den Endpunkten anliegende Kanten gelöscht werden Es gilt somit |C| = 2 |A| Jede Knotenüberdeckung (insbesondere einen optimale Überdeckung C*) muss die Kanten aus A überdecken und somit mindestens einen Endpunkt jeder Kante enthalten Approximationsalgorithmen

42 LS 2 / Informatik 42 Satz ApproxVertexCover2 ist ein 2-Approximationsalgorithmus für das Knotenüberdeckungsproblem. Beweis Die von ApproxVertexCover2 berechnete Menge C ist eine Knotenüberdeckung, da die while-Schleife solange durchlaufen wird, bis alle Kanten überdeckt sind Sei A die Menge der Kanten, die in Zeile 4 ausgewählt wurden Die Endpunkte der Kanten aus A sind disjunkt, da nach der Auswahl einer Kante alle an den Endpunkten anliegende Kanten gelöscht werden Es gilt somit |C| = 2 |A| Jede Knotenüberdeckung (insbesondere einen optimale Überdeckung C*) muss die Kanten aus A überdecken und somit mindestens einen Endpunkt jeder Kante enthalten Approximationsalgorithmen

43 LS 2 / Informatik 43 Satz ApproxVertexCover2 ist ein 2-Approximationsalgorithmus für das Knotenüberdeckungsproblem. Beweis Da keine zwei Kanten aus A einen gemeinsamen Endpunkt haben, liegt kein Knoten aus der Überdeckung C* an mehr als einer Kante aus A an Approximationsalgorithmen

44 LS 2 / Informatik 44 Satz ApproxVertexCover2 ist ein 2-Approximationsalgorithmus für das Knotenüberdeckungsproblem. Beweis Da keine zwei Kanten aus A einen gemeinsamen Endpunkt haben, liegt kein Knoten aus der Überdeckung C* an mehr als einer Kante aus A an Somit gilt |A| |C*| und damit folgt |C| 2 |C*| Approximationsalgorithmen

45 LS 2 / Informatik 45 Satz ApproxVertexCover2 ist ein 2-Approximationsalgorithmus für das Knotenüberdeckungsproblem. Beweis Da keine zwei Kanten aus A einen gemeinsamen Endpunkt haben, liegt kein Knoten aus der Überdeckung C* an mehr als einer Kante aus A an Somit gilt |A| |C*| und damit folgt |C| 2 |C*| Approximationsalgorithmen

46 LS 2 / Informatik 46 Travelling Salesman Problem (TSP) Sei G=(V,E) ein ungerichteter vollständiger Graph mit positiven Kantengewichten w(u,v) für alle (u,v) E; o.b.d.A. V={1,…n} Gesucht ist eine Reihenfolge (1),…, (n) der Knoten aus V, so dass die Länge der Rundreise (1),…, (n), (1) minimiert wird Die Länge der Rundreise ist dabei gegeben durch Approximationsalgorithmen

47 LS 2 / Informatik 47 Travelling Salesman Problem (TSP) mit Dreiecksungleichung Sei G=(V,E) ein ungerichteter vollständiger Graph mit positiven Kantengewichten w(u,v) für alle (u,v) E; o.b.d.A. V={1,…n} Gesucht ist eine Reihenfolge (1),…, (n) der Knoten aus V, so dass die Länge der Rundreise (1),…, (n), (1) minimiert wird Die Länge der Rundreise ist dabei gegeben durch Für je drei Knoten u,v,x gilt w(u,x) w(u,v) + w(v,x) Approximationsalgorithmen

48 LS 2 / Informatik 48 Travelling Salesman Problem (TSP) mit Dreiecksungleichung Sei G=(V,E) ein ungerichteter vollständiger Graph mit positiven Kantengewichten w(u,v) für alle (u,v) E; o.b.d.A. V={1,…n} Gesucht ist eine Reihenfolge (1),…, (n) der Knoten aus V, so dass die Länge der Rundreise (1),…, (n), (1) minimiert wird Die Länge der Rundreise ist dabei gegeben durch Für je drei Knoten u,v,x gilt w(u,x) w(u,v) + w(v,x) Approximationsalgorithmen Dreiecksungleichung

49 LS 2 / Informatik 49 Travelling Salesman Problem (TSP) mit Dreiecksungleichung Sei G=(V,E) ein ungerichteter vollständiger Graph mit positiven Kantengewichten w(u,v) für alle (u,v) E; o.b.d.A. V={1,…n} Gesucht ist eine Reihenfolge (1),…, (n) der Knoten aus V, so dass die Länge der Rundreise (1),…, (n), (1) minimiert wird Die Länge der Rundreise ist dabei gegeben durch Für je drei Knoten u,v,x gilt w(u,x) w(u,v) + w(v,x) Approximationsalgorithmen Dreiecksungleichung

50 LS 2 / Informatik 50 ApproxTSP(G,w) 1. Berechne minimalen Spannbaum T von G 2. Sei die Liste der Knoten von G in der Reihenfolge eines Preorder-Tree-Walk von einem beliebigen Knoten v 3. return L Preorder-Tree-Walk Besucht rekursiv alle Knoten von T und gibt jeden Knoten sofort aus, wenn er besucht wird Dann erst finden die rekursiven Aufrufe für die Kinder statt Approximationsalgorithmen

51 LS 2 / Informatik 51 ApproxTSP(G,w) 1. Berechne minimalen Spannbaum T von G 2. Sei die Liste der Knoten von G in der Reihenfolge eines Preorder-Tree-Walk von einem beliebigen Knoten v 3. return L Laufzeit O(|E| log |E|) für die Spannbaumberechnung Approximationsalgorithmen

52 LS 2 / Informatik 52 Beispiel (euklidische Entfernung) Approximationsalgorithmen

53 LS 2 / Informatik 53 Beispiel (euklidische Entfernung) Approximationsalgorithmen

54 LS 2 / Informatik 54 Beispiel (euklidische Entfernung) Approximationsalgorithmen

55 LS 2 / Informatik 55 Beispiel (euklidische Entfernung) Approximationsalgorithmen 1

56 LS 2 / Informatik 56 Beispiel (euklidische Entfernung) Approximationsalgorithmen 1 2

57 LS 2 / Informatik 57 Beispiel (euklidische Entfernung) Approximationsalgorithmen 1 2 3

58 LS 2 / Informatik 58 Beispiel (euklidische Entfernung) Approximationsalgorithmen

59 LS 2 / Informatik 59 Beispiel (euklidische Entfernung) Approximationsalgorithmen

60 LS 2 / Informatik 60 Beispiel (euklidische Entfernung) Approximationsalgorithmen

61 LS 2 / Informatik 61 Beispiel (euklidische Entfernung) Approximationsalgorithmen

62 LS 2 / Informatik 62 Beispiel (euklidische Entfernung) Approximationsalgorithmen

63 LS 2 / Informatik 63 Beispiel (euklidische Entfernung) Approximationsalgorithmen

64 LS 2 / Informatik 64 Beispiel (euklidische Entfernung) Approximationsalgorithmen

65 LS 2 / Informatik 65 Beispiel (euklidische Entfernung) Approximationsalgorithmen

66 LS 2 / Informatik 66 Beispiel (euklidische Entfernung) Approximationsalgorithmen

67 LS 2 / Informatik 67 Satz Algorithmus ApproxTSP ist ein 2-Approximationsalgorithmus für das Travelling Salesman Problem mit Dreiecksungleichung. Beweis Sei H* eine optimale Rundreise und bezeichne w(H*) ihre Kosten Approximationsalgorithmen

68 LS 2 / Informatik 68 Satz Algorithmus ApproxTSP ist ein 2-Approximationsalgorithmus für das Travelling Salesman Problem mit Dreiecksungleichung. Beweis Sei H* eine optimale Rundreise und bezeichne w(H*) ihre Kosten Z.z.: w(H) 2 w(H*), wobei H die von ApproxTSP zurückgegebene Rundreise ist und w(H) ihre Kosten bezeichnet Approximationsalgorithmen

69 LS 2 / Informatik 69 Satz Algorithmus ApproxTSP ist ein 2-Approximationsalgorithmus für das Travelling Salesman Problem mit Dreiecksungleichung. Beweis Sei H* eine optimale Rundreise und bezeichne w(H*) ihre Kosten Z.z.: w(H) 2 w(H*), wobei H die von ApproxTSP zurückgegebene Rundreise ist und w(H) ihre Kosten bezeichnet Sei T ein min. Spannbaum und w(T) seine Kosten Approximationsalgorithmen

70 LS 2 / Informatik 70 Satz Algorithmus ApproxTSP ist ein 2-Approximationsalgorithmus für das Travelling Salesman Problem mit Dreiecksungleichung. Beweis Sei H* eine optimale Rundreise und bezeichne w(H*) ihre Kosten Z.z.: w(H) 2 w(H*), wobei H die von ApproxTSP zurückgegebene Rundreise ist und w(H) ihre Kosten bezeichnet Sei T ein min. Spannbaum und w(T) seine Kosten Es gilt w(T) w(H*), da man durch Löschen einer Kante aus H* einen Spannbaum bekommen kann. Dieser hat Gewicht mind. w(T) Approximationsalgorithmen

71 LS 2 / Informatik 71 Satz Algorithmus ApproxTSP ist ein 2-Approximationsalgorithmus für das Travelling Salesman Problem mit Dreiecksungleichung. Beweis Sei H* eine optimale Rundreise und bezeichne w(H*) ihre Kosten Z.z.: w(H) 2 w(H*), wobei H die von ApproxTSP zurückgegebene Rundreise ist und w(H) ihre Kosten bezeichnet Sei T ein min. Spannbaum und w(T) seine Kosten Es gilt w(T) w(H*), da man durch Löschen einer Kante aus H* einen Spannbaum bekommen kann. Dieser hat Gewicht mind. w(T) Approximationsalgorithmen

72 LS 2 / Informatik 72 Beweis Ein FullWalk gibt die Knoten bei jedem ersten Besuch aus und auch immer, wenn der Algorithmus zu ihnen zurückkehrt In unserem Beispiel: a, b, c, d, e, d, f, d, c, g, h, i, j, k, j, i, h, g, c, b, a Approximationsalgorithmen a b c d e f g h i j k

73 LS 2 / Informatik 73 Beweis Ein FullWalk gibt die Knoten bei jedem ersten Besuch aus und auch immer, wenn der Algorithmus zu ihnen zurückkehrt Da der FullWalk F jede Kante von T genau zweimal durchquert, gilt w(F)=2w(T), wobei w(F) die Kosten des FullWalks bezeichnet Approximationsalgorithmen a b c d e f g h i j k

74 LS 2 / Informatik 74 Beweis Ein FullWalk gibt die Knoten bei jedem ersten Besuch aus und auch immer, wenn der Algorithmus zu ihnen zurückkehrt Da der FullWalk F jede Kante von T genau zweimal durchquert, gilt w(F)=2w(T), wobei w(F) die Kosten des FullWalks bezeichnet Also folgt w(F) 2 w(H*) Approximationsalgorithmen a b c d e f g h i j k

75 LS 2 / Informatik 75 Beweis Ein FullWalk gibt die Knoten bei jedem ersten Besuch aus und auch immer, wenn der Algorithmus zu ihnen zurückkehrt Da der FullWalk F jede Kante von T genau zweimal durchquert, gilt w(F)=2w(T), wobei w(F) die Kosten des FullWalks bezeichnet Also folgt w(F) 2 w(H*) F ist jedoch keine Rundreise (und nicht die von ApproxTSP berechnete Ausgabe) Approximationsalgorithmen a b c d e f g h i j k

76 LS 2 / Informatik 76 Beweis Ein FullWalk gibt die Knoten bei jedem ersten Besuch aus und auch immer, wenn der Algorithmus zu ihnen zurückkehrt Da der FullWalk F jede Kante von T genau zweimal durchquert, gilt w(F)=2w(T), wobei w(F) die Kosten des FullWalks bezeichnet Also folgt w(F) 2 w(H*) F ist jedoch keine Rundreise (und nicht die von ApproxTSP berechnete Ausgabe) Wir formen nun F in diese Ausgabe um, ohne die Kosten zu erhöhen Approximationsalgorithmen a b c d e f g h i j k

77 LS 2 / Informatik 77 Beweis Ein FullWalk gibt die Knoten bei jedem ersten Besuch aus und auch immer, wenn der Algorithmus zu ihnen zurückkehrt Da der FullWalk F jede Kante von T genau zweimal durchquert, gilt w(F)=2w(T), wobei w(F) die Kosten des FullWalks bezeichnet Also folgt w(F) 2 w(H*) F ist jedoch keine Rundreise (und nicht die von ApproxTSP berechnete Ausgabe) Wir formen nun F in diese Ausgabe um, ohne die Kosten zu erhöhen Beobachtung: Aufgrund der Dreiecksungleichung können wir den Besuch eines Knotens aus F löschen, ohne die Kosten der Rundreise zu erhöhen (wird v zwischen u und x gelöscht, so werden die Kanten (u,v) und (v,x) durch (u,x) ersetzt) Approximationsalgorithmen a b c d e f g h i j k

78 LS 2 / Informatik 78 Beweis Ein FullWalk gibt die Knoten bei jedem ersten Besuch aus und auch immer, wenn der Algorithmus zu ihnen zurückkehrt Da der FullWalk F jede Kante von T genau zweimal durchquert, gilt w(F)=2w(T), wobei w(F) die Kosten des FullWalks bezeichnet Also folgt w(F) 2 w(H*) F ist jedoch keine Rundreise (und nicht die von ApproxTSP berechnete Ausgabe) Wir formen nun F in diese Ausgabe um, ohne die Kosten zu erhöhen Beobachtung: Aufgrund der Dreiecksungleichung können wir den Besuch eines Knotens aus F löschen, ohne die Kosten der Rundreise zu erhöhen (wird v zwischen u und x gelöscht, so werden die Kanten (u,v) und (v,x) durch (u,x) ersetzt) Approximationsalgorithmen a b c d e f g h i j k

79 LS 2 / Informatik 79 Beweis Auf diese Weise können wir alle Besuche außer dem ersten aus unserer Liste entfernen In unserem Beispiel: a, b, c, d, e, d, f, d, c, g, h, i, j, k, j, i, h, g, c, b, a Approximationsalgorithmen a b c d e f g h i j k

80 LS 2 / Informatik 80 Beweis Auf diese Weise können wir alle Besuche außer dem ersten aus unserer Liste entfernen In unserem Beispiel: a, b, c, d, e, f, d, c, g, h, i, j, k, j, i, h, g, c, b, a Approximationsalgorithmen a b c d e f g h i j k

81 LS 2 / Informatik 81 Beweis Auf diese Weise können wir alle Besuche außer dem ersten aus unserer Liste entfernen In unserem Beispiel: a, b, c, d, e, f, c, g, h, i, j, k, j, i, h, g, c, b, a Approximationsalgorithmen a b c d e f g h i j k

82 LS 2 / Informatik 82 Beweis Auf diese Weise können wir alle Besuche außer dem ersten aus unserer Liste entfernen In unserem Beispiel: a, b, c, d, e, f, g, h, i, j, k, j, i, h, g, c, b, a Approximationsalgorithmen a b c d e f g h i j k

83 LS 2 / Informatik 83 Beweis Auf diese Weise können wir alle Besuche außer dem ersten aus unserer Liste entfernen In unserem Beispiel: a, b, c, d, e, f, g, h, i, j, k, i, h, g, c, b, a Approximationsalgorithmen a b c d e f g h i j k

84 LS 2 / Informatik 84 Beweis Auf diese Weise können wir alle Besuche außer dem ersten aus unserer Liste entfernen In unserem Beispiel: a, b, c, d, e, f, g, h, i, j, k, h, g, c, b, a Approximationsalgorithmen a b c d e f g h i j k

85 LS 2 / Informatik 85 Beweis Auf diese Weise können wir alle Besuche außer dem ersten aus unserer Liste entfernen In unserem Beispiel: a, b, c, d, e, f, g, h, i, j, k, g, c, b, a Approximationsalgorithmen a b c d e f g h i j k

86 LS 2 / Informatik 86 Beweis Auf diese Weise können wir alle Besuche außer dem ersten aus unserer Liste entfernen In unserem Beispiel: a, b, c, d, e, f, g, h, i, j, k, b, a Approximationsalgorithmen a b c d e f g h i j k

87 LS 2 / Informatik 87 Beweis Auf diese Weise können wir alle Besuche außer dem ersten aus unserer Liste entfernen In unserem Beispiel: a, b, c, d, e, f, g, h, i, j, k, a Approximationsalgorithmen a b c d e f g h i j k

88 LS 2 / Informatik 88 Beweis Auf diese Weise können wir alle Besuche außer dem ersten aus unserer Liste entfernen Wir erhalten dieselbe Rundreise wie bei Preorder-Tree-Walk Approximationsalgorithmen a b c d e f g h i j k

89 LS 2 / Informatik 89 Beweis Auf diese Weise können wir alle Besuche außer dem ersten aus unserer Liste entfernen Wir erhalten dieselbe Rundreise wie bei Preorder-Tree-Walk Da diese nur durch abkürzen von F zu Stande gekommen ist, gilt w(H)w(F) Approximationsalgorithmen a b c d e f g h i j k

90 LS 2 / Informatik 90 Beweis Auf diese Weise können wir alle Besuche außer dem ersten aus unserer Liste entfernen Wir erhalten dieselbe Rundreise wie bei Preorder-Tree-Walk Da diese nur durch abkürzen von F zu Stande gekommen ist, gilt w(H)w(F) Somit folgt w(H) w(F) 2 w(H*) Approximationsalgorithmen a b c d e f g h i j k

91 LS 2 / Informatik 91 Beweis Auf diese Weise können wir alle Besuche außer dem ersten aus unserer Liste entfernen Wir erhalten dieselbe Rundreise wie bei Preorder-Tree-Walk Da diese nur durch abkürzen von F zu Stande gekommen ist, gilt w(H)w(F) Somit folgt w(H) w(F) 2 w(H*) Approximationsalgorithmen a b c d e f g h i j k

92 LS 2 / Informatik 92 Last Balanzierung m identische Maschinen {1,..,m} n Aufgabe {1,…,n} Job j hat Länge t(j) Aufgabe: Platziere die Aufgabe auf den Maschinen, so dass diese möglichst balanziert sind Sei A(i) die Menge der Aufgaben auf Maschine i Sei T(i) = t(j) Makespan: max T(i) Präzise Aufgabe: Minimiere Makespan Approximationsalgorithmen j A(i)

93 LS 2 / Informatik 93 GreedyLoadBalancing 1. Setze T(i)=0 und A(i)= für alle Maschinen i {1,..,m} 2. for j=1 to n do 3. Sei M(i) eine Maschine mit T(i) = min T(k) 4. Weise Aufgabe j Maschine i zu 5. A(i) A(i) {j} 6. T(i) T(i) + t(j) Approximationsalgorithmen k {1,..,m}

94 LS 2 / Informatik 94 Satz Algorithmus GreedyLoadBalancing hat ein Approximationsverhältnis von mindestens 2-1/m. Beweis Eingabe: m (m-1) Aufgaben der Länge 1 und eine Aufgabe der Länge m Approximationsalgorithmen

95 LS 2 / Informatik 95 Satz Algorithmus GreedyLoadBalancing hat ein Approximationsverhältnis von mindestens 2-1/m. Beweis Eingabe: m (m-1) Aufgaben der Länge 1 und eine Aufgabe der Länge m Optimale Lösung: Die Aufgabe der Länge m wird einer Maschine zugeteilt Die anderen Aufgaben werden gleichmäßig auf die übrigen m-1 Maschinen verteilt; resultierender Makespan: m Approximationsalgorithmen Maschine 1: Maschine 2: Maschine 3:

96 LS 2 / Informatik 96 Satz Algorithmus GreedyLoadBalancing hat ein Approximationsverhältnis von mindestens 2-1/m. Beweis Eingabe: m (m-1) Aufgaben der Länge 1 und eine Aufgabe der Länge m Optimale Lösung: Die Aufgabe der Länge m wird einer Maschine zugeteilt Die anderen Aufgaben werden gleichmäßig auf die übrigen m-1 Maschinen verteilt; resultierender Makespan: m Approximationsalgorithmen Maschine 1: Maschine 2: Maschine 3:

97 LS 2 / Informatik 97 Satz Algorithmus GreedyLoadBalancing hat ein Approximationsverhältnis von mindestens 2-1/m. Beweis GreedyLoadBalancing verteilt zunächst die kurzen Aufgaben gleichmäßig Approximationsalgorithmen Maschine 1: Maschine 2: Maschine 3:

98 LS 2 / Informatik 98 Satz Algorithmus GreedyLoadBalancing hat ein Approximationsverhältnis von mindestens 2-1/m. Beweis GreedyLoadBalancing verteilt zunächst die kurzen Aufgaben gleichmäßig Danach wird die lange Aufgabe zugewiesen Approximationsalgorithmen Maschine 1: Maschine 2: Maschine 3:

99 LS 2 / Informatik 99 Satz Algorithmus GreedyLoadBalancing hat ein Approximationsverhältnis von mindestens 2-1/m. Beweis GreedyLoadBalancing verteilt zunächst die kurzen Aufgaben gleichmäßig Danach wird die lange Aufgabe zugewiesen Makespan: 2m-1 Approximationsalgorithmen Maschine 1: Maschine 2: Maschine 3:

100 LS 2 / Informatik 100 Satz Algorithmus GreedyLoadBalancing hat ein Approximationsverhältnis von mindestens 2-1/m. Beweis GreedyLoadBalancing verteilt zunächst die kurzen Aufgaben gleichmäßig Danach wird die lange Aufgabe zugewiesen Makespan: 2m-1 Approximationsalgorithmen Maschine 1: Maschine 2: Maschine 3:

101 LS 2 / Informatik 101 Satz Algorithmus GreedyLoadBalancing hat ein Approximationsverhältnis von mindestens 2-1/m. Beweis Damit ist das Approximationsverhältnis mindestens (2m-1)/m = 2-1/m. Approximationsalgorithmen

102 LS 2 / Informatik 102 Beobachtung Für jede Probleminstanz ist der optimale Makespan mindestens Begründung: Bestenfalls können wir die Aufgaben genau auf die m Maschinen aufteilen und jede Maschine hat Last Gesamtlast/Anzahl Maschinen Approximationsalgorithmen

103 LS 2 / Informatik 103 Satz Algorithmus GreedyLoadBalancing ist ein 2-Approximationsalgorithmus für das Lastbalanzierungsproblem. Approximationsalgorithmen

104 LS 2 / Informatik 104 Satz Algorithmus GreedyLoadBalancing ist ein 2-Approximationsalgorithmus für das Lastbalanzierungsproblem. Beweis Sei i* die Maschine, die maximale Last in der vom Algorithmus berechneten Zuteilung erhält Approximationsalgorithmen

105 LS 2 / Informatik 105 Satz Algorithmus GreedyLoadBalancing ist ein 2-Approximationsalgorithmus für das Lastbalanzierungsproblem. Beweis Sei i* die Maschine, die maximale Last in der vom Algorithmus berechneten Zuteilung erhält Sei j* die Aufgabe, die Maschine i* als letzte zugewiesen wurde Approximationsalgorithmen

106 LS 2 / Informatik 106 Satz Algorithmus GreedyLoadBalancing ist ein 2-Approximationsalgorithmus für das Lastbalanzierungsproblem. Beweis Sei i* die Maschine, die maximale Last in der vom Algorithmus berechneten Zuteilung erhält Sei j* die Aufgabe, die Maschine i* als letzte zugewiesen wurde Es gilt: T(k)T(i*)-t(j*) für alle Maschinen k, da zum Zeitpunkt der Zuweisung von j*, T(i*) Minimum der T(k) war Approximationsalgorithmen

107 LS 2 / Informatik 107 Satz Algorithmus GreedyLoadBalancing ist ein 2-Approximationsalgorithmus für das Lastbalanzierungsproblem. Beweis Sei i* die Maschine, die maximale Last in der vom Algorithmus berechneten Zuteilung erhält Sei j* die Aufgabe, die Maschine i* als letzte zugewiesen wurde Es gilt: T(k)T(i*)-t(j*) für alle Maschinen k, da zum Zeitpunkt der Zuweisung von j*, T(i*) Minimum der T(k) war Somit folgt für die Kosten Opt einer optimalen Zuweisung: Approximationsalgorithmen

108 LS 2 / Informatik 108 Satz Algorithmus GreedyLoadBalancing ist ein 2-Approximationsalgorithmus für das Lastbalanzierungsproblem. Beweis Sei i* die Maschine, die maximale Last in der vom Algorithmus berechneten Zuteilung erhält Sei j* die Aufgabe, die Maschine i* als letzte zugewiesen wurde Es gilt: T(k)T(i*)-t(j*) für alle Maschinen k, da zum Zeitpunkt der Zuweisung von j*, T(i*) Minimum der T(k) war Somit folgt für die Kosten Opt einer optimalen Zuweisung: Approximationsalgorithmen

109 LS 2 / Informatik 109 Satz Algorithmus GreedyLoadBalancing ist ein 2-Approximationsalgorithmus für das Lastbalanzierungsproblem. Beweis Sei i* die Maschine, die maximale Last in der vom Algorithmus berechneten Zuteilung erhält Sei j* die Aufgabe, die Maschine i* als letzte zugewiesen wurde Es gilt: T(k)T(i*)-t(j*) für alle Maschinen k, da zum Zeitpunkt der Zuweisung von j*, T(i*) Minimum der T(k) war Somit folgt für die Kosten Opt einer optimalen Zuweisung: Approximationsalgorithmen

110 LS 2 / Informatik 110 Satz Algorithmus GreedyLoadBalancing ist ein 2-Approximationsalgorithmus für das Lastbalanzierungsproblem. Beweis Außerdem gilt sicher Opt t(j*) Approximationsalgorithmen

111 LS 2 / Informatik 111 Satz Algorithmus GreedyLoadBalancing ist ein 2-Approximationsalgorithmus für das Lastbalanzierungsproblem. Beweis Außerdem gilt sicher Opt t(j*) Es folgt Approximationsalgorithmen

112 LS 2 / Informatik 112 Zusammenfassung & Kommentare Man kann viele Probleme approximativ schneller lösen als exakt (für die drei Beispiele sind keine Algorithmen mit Laufzeit O(n ) für eine Konstante c bekannt) Gierige Algorithmen sind häufig Approximationsalgorithmen Approximationsalgorithmen c


Herunterladen ppt "LS 2 / Informatik Datenstrukturen, Algorithmen und Programmierung 2 (DAP2)"

Ähnliche Präsentationen


Google-Anzeigen