Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

10.11.2013Kapitel 11 Methoden des Algorithmenentwurfs Kapitel 1.5:Lineare Optimierung und Approximationsalgorithmen Christian Scheideler SS 2009.

Ähnliche Präsentationen


Präsentation zum Thema: "10.11.2013Kapitel 11 Methoden des Algorithmenentwurfs Kapitel 1.5:Lineare Optimierung und Approximationsalgorithmen Christian Scheideler SS 2009."—  Präsentation transkript:

1 10.11.2013Kapitel 11 Methoden des Algorithmenentwurfs Kapitel 1.5:Lineare Optimierung und Approximationsalgorithmen Christian Scheideler SS 2009

2 Übersicht Notation Arithmetisierung von Problemen Approximation durch Relaxion Die Ganzzahligkeitslücke Dualität 10.11.2013Kapitel 12

3 Notation Zur Erinnerung: 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} 10.11.2013Kapitel 13

4 Notation Lineares Optimierungsproblem: D: Menge von Instanzen I=(A,b,c) mit A IR m n, b IR m und c IR n für n,m IN S(I): Menge aller x IR n mit A x b Bewertungsfunktion: f(x) = c T x ziel {min, max} 10.11.2013Kapitel 14

5 Notation Lineares Optimierungsproblem: D: Menge von Instanzen I=(A,b,c) mit A IR m n, b IR m und c IR n für n,m IN S(I): Menge aller x IR n mit A x b Bewertungsfunktion: f(x) = c T x ziel {min, max} 10.11.2013Kapitel 15 Deckt auch Ungleichungen der Form a T x und a T x = ab.

6 Notation Lineares Optimierungsproblem: D: Menge von Instanzen I=(A,b,c) mit A IR m n, b IR m und c IR n für n,m IN S(I): Menge aller x IR n mit A x b Bewertungsfunktion: f(x) = c T x ziel {min, max} 10.11.2013Kapitel 16 a T x äquivalent zu -a T x - a T x = äquivalent zu a T x und -a T x -

7 Notation Lineares Optimierungsproblem: D: Menge von Instanzen I=(A,b,c) mit A IR m n, b IR m und c IR n für n,m IN S(I): Menge aller x IR n mit A x b Bewertungsfunktion: f(x) = c T x ziel {min, max} 10.11.2013Kapitel 17 Ohne Beschränkung der Allgemeinheit (o.B.d.A.) auf IR + n einschränkbar.

8 Notation Lineares Optimierungsproblem: D: Menge von Instanzen I=(A,b,c) mit A IR m n, b IR m und c IR n für n,m IN S(I): Menge aller x IR n mit A x b Bewertungsfunktion: f(x) = c T x ziel {min, max} 10.11.2013Kapitel 18 Ersetze jedes x i durch x i + -x i - mit x i +,x i - IR + n.

9 Notation Lineares Optimierungsproblem: D: Menge von Instanzen I=(A,b,c) mit A IR m n, b IR m und c IR n für n,m IN S(I): Menge aller x IR + n mit A x b Bewertungsfunktion: f(x) = c T x ziel {min, max} 10.11.2013Kapitel 19 O.B.d.A. reicht ziel=max.

10 Notation Lineares Optimierungsproblem: D: Menge von Instanzen I=(A,b,c) mit A IR m n, b IR m und c IR n für n,m IN S(I): Menge aller x IR + n mit A x b Bewertungsfunktion: f(x) = c T x ziel {min, max} 10.11.2013Kapitel 110 ziel=min: ersetze c durch -c

11 Notation Lineares Optimierungsproblem (kanonische Form): D: Menge von Instanzen I=(A,b,c) mit A IR m n, b IR m und c IR n für n,m IN S(I): Menge aller x IR + n mit A x b Bewertungsfunktion: f(x) = c T x ziel=max 10.11.2013Kapitel 111

12 Notation Lineares Optimierungsproblem (kanonische Form, vereinfachend formuliert): Maximiere c T x unter der Bedingung, dass A x b und x IR + n 10.11.2013Kapitel 112

13 Notation Beispiel: min 3x 1 +5x 2 unter der Bedingung, dass (1) 2x 1 + x 2 3 (2) 2x 1 +2x 2 5 (3) x 1 +4x 2 4 (4) x 1 0 (5) x 2 0 Jeder Vektor x=(x 1,x 2 ), der (1)-(5) erfüllt, heißt zulässige Lösung. 10.11.2013Kapitel 113

14 Notation Beispiel anschaulich: 10.11.2013Kapitel 114 1 1 2 2 (1) (2) (3) (4) (5) Raum zulässiger Lösungen OPT Zielfunktion

15 Notation Bemerkung: Ein lineares Optimierungsproblem wird auch lineares Programm (LP) genannt. Seit 1979 (Khachiyan) ist bekannt, dass das Optimum für ein lineares Programm (A,b,c) in Zeit poly. in der Speichergröße für (A,b,c) berechnet werden kann. Lineare Programme mit der Einschränkung auf ganzzahlige x heißen auch lineare ganzzahlige Programme (ILP: integer linear program). Optimierungsprobleme mit quadratischen Termen (d.h. Termen der Form x i x j in der Zielfunktion oder den Restriktionen) heißen auch quadratische Programme. 10.11.2013Kapitel 115

16 Übersicht Notation Arithmetisierung von Problemen Approximation durch Relaxion Die Ganzzahligkeitslücke Dualität 10.11.2013Kapitel 116

17 Arithmetisierung von VC Knotenüberdeckungsproblem (VC): Gegeben ein Graph G=(V,E), finde eine Teil- menge U V minimaler Größe, so dass für jede Kante mindestens ein Knoten in U ist. Arithmetisierung: x v {0,1}: ist 1 genau dann, wenn Knoten v in U ist Jede Kante {v,w} hat Knoten in U für jede Kante {v,w} E: x v +x w 1 Minimiere Größe von U minimiere v x v 10.11.2013Kapitel 117

18 Arithmetisierung von VC Ergebnis: minimiere v x v unter der Bedingung, dass x v +x w 1 für jede Kante {v,w} E 0 x v 1 für alle v (oder in kanonischer Form -x v 0 und x v 1) und x v ganzzahlig 10.11.2013Kapitel 118

19 Arithmetisierung von Rucksack 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 Arithmetisierung: x i {0,1}: ist 1 genau dann, wenn Objekt i genommen Erfülle maximales Gesamtgewicht B i vol i x i B Maximiere Wert der Objekte im Rucksack maximiere i p i x i 10.11.2013Kapitel 119

20 Arithmetisierung von Rucksack Ergebnis: maximiere i p i x i unter der Bedingung, dass i vol i x i B 0 x i 1 für alle i und x i ganzzahlig 10.11.2013Kapitel 120

21 Arithmetisierung der Knotenfärbung Knotenfärbung: Gegeben ein Graph G=(V,E), finde eine Knotenfärbung mit minimaler Anzahl Farben Arithmetisierung: x v,c {0,1} für v V und c {1,…, (G)+1}: x v,c =1 genau dann, wenn Knoten v gefärbt mit Farbe c (warum reicht der Wertebereich für c?) Genau eine Farbe pro Konten für alle v V: c x v,c = 1 Keine zwei adjazenten Knoten gleicher Farbe für alle {v,w} E und alle c: x v,c +x w,c 1 f: Anzahl benutzter Farben für alle v V: c c x v,c f Minimiere Anzahl benutzter Farben minimiere f 10.11.2013Kapitel 121

22 Arithmetisierung der Knotenfärbung Ergebnis: minimiere f unter der Bedingung, dass c x v,c = 1 für alle v V x v,c +x w,c 1 für alle {v,w} E und c {1,…, (G)+1} c c x v,c f für alle v V f 0 0 x v,c 1 für alle v V und c {1,…, (G)+1} und x v,c ganzzahlig 10.11.2013Kapitel 122

23 Arithmetisierung von Max-SAT Beispiel 1: Max-SAT. Boolesche Variable: x {false, true} Boolesche Formel: rekursiv definiert über –Jede Boolesche Variable ist eine Boolesche Formel –Sind, Boolesche Formeln, dann auch (Negation), (logisches und) und (logisches oder) Beispiel für Boolesche Formel: (x 1,x 2,x 3 )= x 1 (x 1 x 2 x 3 ) (x 1 x 3 ) (x 2 x 3 ) 10.11.2013Kapitel 123

24 Arithmetisierung von Max-SAT Auswertungsregeln: =true genau dann, wenn =false =true genau dann, wenn =true und =true =true genau dann, wenn =true oder =true ist in konjunktiver Normalform (KNF): Form =C 1 C 2 … C m mit Klauseln C i =v 1 … v k, wobei jedes v i eine Boolesche Variable oder ihre Negation repräsentiert Beispiel: (x 1,x 2,x 3 )= x 1 (x 1 x 2 x 3 ) (x 1 x 3 ) (x 2 x 3 ) 10.11.2013Kapitel 124

25 Arithmetisierung von Max-SAT Max-SAT Problem: Für eine gegebene Formel in KNF, finde eine Belegung für ihre Booleschen Variablen, die die Anzahl der erfüllten Klauseln (d.h. C i =true) maximiert. Bemerkung: Das Max-SAT Problem ist NP-hart. Max-SAT lässt sich einfach als lineares ganzzahliges Programm ausdrücken. 10.11.2013Kapitel 125

26 Arithmetisierung von Max-SAT Arithmetisierung von Max-SAT: x i {false, true} y i {0,1} x i 1-y i C i =(x 1 x 2 x 3 ) D i =y 1 +(1-y 2 )+y 3 C i {false, true} z i {0,1} Maximiere Anzahl erfüllter Klauseln maximiere i z i mit z i D i für alle i 10.11.2013Kapitel 126

27 Arithmetisierung von Max-SAT Beispiel: (x 1,x 2,x 3 )= x 1 (x 1 x 2 x 3 ) (x 1 x 3 ) (x 2 x 3 ) Lineares ganzzahliges Programm P( ) zu : max i z i unter der Bedingung, dass z 1 (1-y 1 ) z 2 y 1 +(1-y 2 )+y 3 z 3 y 1 +(1-y 3 ) z 4 y 2 +y 3 für alle i: 0 z i 1 und 0 y i 1 und z i,y i ganzzahlig 10.11.2013Kapitel 127

28 Arithmetisierung von Max-SAT Äquivalenz der Arithmetisierung: Zeige, dass OPT( ) = OPT(P( )) Beweisstrategie: Tansformiere (optimale) Lösung für in eine zulässige Lösung für P( ) mit demselben Wert (dazu können Ersetzungsregeln von Folie 26 verwendet werden) Transformiere (optimale) Lösung für P( ) in eine zulässige Lösung für mit demselben Wert 10.11.2013Kapitel 128

29 Arithmetisierung von Max-SAT Verhältnis ILP zu LP: ILP P( ) zu : max i z i unter der Bedingung, dass z 1 (1-y 1 ) z 2 y 1 +(1-y 2 )+y 3 z 3 y 1 +(1-y 3 ) z 4 y 2 +y 3 für alle i: 0 z i 1 und 0 y i 1 und z i,y i ganzzahlig 10.11.2013Kapitel 129 Streichen wir ganzzahlig, so erhalten wir ein LP P´( ) zu.

30 Arithmetisierung von Max-SAT Verhältnis ILP zu LP: ILP P( ) zu : max i z i unter der Bedingung, dass z 1 (1-y 1 ) z 2 y 1 +(1-y 2 )+y 3 z 3 y 1 +(1-y 3 ) z 4 y 2 +y 3 für alle i: 0 z i 1 und 0 y i 1 und z i,y i ganzzahlig 10.11.2013Kapitel 130 Da Raum zulässiger Lösungen größer wird, gilt OPT(P´( )) OPT(P( )). Das wird später noch nützlich sein.

31 Übersicht Notation Arithmetisierung von Problemen Approximation durch Relaxion Die Ganzzahligkeitslücke Dualität 10.11.2013Kapitel 131

32 Approximation durch Relaxion Alle vorigen Probleme sind NP-hart. Mit Hilfe der Arithmetisierung lassen sich aber oft effiziente Approximationsalgorithmen finden. Approximationsalgo A für Maximierungsproblem: Formuliere Instanz I als ILP X. (Stelle dabei sicher, dass OPT(I)=OPT(X).) Lass die Ganzzahligkeitsbedingung fallen (Relaxierung), so dass man ein in Polynomialzeit lösbares LP X rel bekommt. Es gilt OPT(X) OPT(X rel ) (Superoptimalität) Löse X rel und runde geschickt die reelle Lösung zu einer zulässigen ganzzahligen Lösung von I. Zu zeigen: A(I) (1/ ) OPT(Xrel) für ein (möglichst kleines). Dann gilt wegen der Superoptimalität auch, dass A(I) (1/ ) OPT(I). 10.11.2013Kapitel 132

33 Approximation durch Relaxion Max-SAT Problem: betrachte Eingabe (x 1,x 2,x 3 )= x 1 (x 1 x 2 x 3 ) (x 1 x 3 ) (x 2 x 3 ) ILP X( ) zu : max i z i unter der Bedingung, dass z 1 (1-y 1 ) z 2 y 1 +(1-y 2 )+y 3 z 3 y 1 +(1-y 3 ) z 4 y 2 +y 3 für alle i: 0 z i 1 und 0 y i 1 und z i,y i ganzzahlig 10.11.2013Kapitel 133

34 Approximation durch Relaxion Max-SAT Problem: betrachte Eingabe (x 1,x 2,x 3 )= x 1 (x 1 x 2 x 3 ) (x 1 x 3 ) (x 2 x 3 ) LP X rel ( ) zu : max i z´ i unter der Bedingung, dass z´ 1 (1-y´ 1 ) z´ 2 y´ 1 +(1-y´ 2 )+y´ 3 z´ 3 y´ 1 +(1-y´ 3 ) z´ 4 y´ 2 +y´ 3 für alle i: 0 z´ i 1 und 0 y´ i 1 10.11.2013Kapitel 134

35 Approximation durch Relaxion Naive Rundungsstrategie: for i:=1 to 5 do if y´ i ½ then y i :=1 else y i :=0 wähle maximale zulässige z i -Werte für die y i -Werte Diese Rundungsstrategie ergibt eine zulässige Lösung, kann aber beliebig schlecht sein. (Betrachte Klauseln mit jeweils drei Variablen, die alle unnegiert sind. Dafür wird eine optimale Anzahl erfüllter Klauseln mit y´ i =1/3 für alle i erreicht.) Bessere Strategie: randomisiertes Runden (setze y i =1 mit Wahrscheinlichkeit y´ i ), was eine erwartet kon- stante Güte erreicht (aber hier nicht behandelt wird) 10.11.2013Kapitel 135

36 Approximation durch Relaxion Knotenüberdeckungsproblem (VC): Gegeben ein Graph G=(V,E), finde eine Teil- menge U V minimaler Größe, so dass für jede Kante mindestens ein Knoten in U ist. ILP X(G) zu VC: minimiere v x v unter der Bedingung, dass x v +x w 1 für jede Kante {v,w} E 0 x v 1 für alle i und x i ganzzahlig 10.11.2013Kapitel 136

37 Approximation durch Relaxion Knotenüberdeckungsproblem (VC): Gegeben ein Graph G=(V,E), finde eine Teil- menge U V minimaler Größe, so dass für jede Kante mindestens ein Knoten in U ist. LP X rel (G) zu VC: minimiere v x´ v unter der Bedingung, dass x´ v +x´ w 1 für jede Kante {v,w} E 0 x´ v 1 für alle v 10.11.2013Kapitel 137

38 Approximation durch Relaxion Rundungsstrategie: forall v V do if x´ v ½ then x v :=1 else x v :=0 wähle maximale zulässige z i -Werte für die y i -Werte Diese Rundungsstrategie ergibt eine zulässige Lösung, da x´ v +x´ w 1 für jede Kante {v,w} E und damit entweder x´ v ½ oder x´ w ½ sein muss, so dass entweder x v 1 oder x w 1 ist. Weiterhin gilt v x v 2 v x´ v, so dass mit der Superoptimalität des LPs folgt, dass A(G) 2 OPT(G), also die relative Güte höchstens 2 ist. 10.11.2013Kapitel 138

39 10.11.2013Kapitel 1239 Approximation durch Relaxion Allgemeines Job Scheduling Problem: Menge M von m Maschinen, Menge J von n Jobs Job j muss in einem Stück auf einer der autorisierten Maschinen in M j M ablaufen Job j hat Bearbeitungszeit t j Jede Maschine kann höchstens einen Job gleichzeitig bearbeiten Erinnerung: Last von Maschine i: L i = j J(i) t j Makespan L = max i L i Aufgabe: finde Jobzuweisung, die Makespan minimiert

40 10.11.2013Kapitel 1240 Approximation durch Relaxion Sei x I,j Zeit, die Maschine i mit Job j zubringt. ILP X: min L s. d. i x i,j = t j für alle j J j x i,j L für alle i M x i,j {0,t j } für alle j J und i M j x i,j = 0 für alle j J und i M j LP X rel : min L s. d. i x i,j = t j für alle j J j x i,j L für alle i M x i,j 0 für alle j J und i M j x i,j = 0 für alle j J und i M j

41 10.11.2013Kapitel 1241 Approximation durch Relaxion 5.1 Lemma: Sei L der optimale Wert des LPs. Dann gilt für den optimalen Makespan L*, dass L* L. Beweis: LP hat weniger Einschränkungen als ILP 5.2 Lemma: Der optimale Makespan erfüllt L* max j t j. Beweis: siehe Einführung

42 10.11.2013Kapitel 1242 Approximation durch Relaxion Interpretiere LP-Lösung x als bipartiten Graph G(x): Jobs und Maschinen sind Knoten in G(x) Job j und Maschine i besitzen eine Kante {i,j} wenn x i,j >0 Maschine Job

43 10.11.2013Kapitel 1243 Approximation durch Relaxion 5.3 Lemma: Sei x eine beliebige Lösung des LPs. Dann ist x transformierbar in ein x gleicher Güte, so dass G(x) azyklisch ist. Beweis: Übung

44 10.11.2013Kapitel 1244 Approximation durch Relaxion Annahme: G(x) ist azyklisch. Zeichne G(x) von einer beliebigen Maschine r aus. Falls Job j ein Blatt ist, weise j seinem Vater zu. Sonse weise Job j einem seiner Kinder zu. Maschine Job

45 10.11.2013Kapitel 1245 Approximation durch Relaxion 5.4 Lemma: Falls Job j ein Blatt ist und Maschine i der Vater von j, dann x i,j =t j. Beweis: Da j ein Blatt ist, ist x i,j =0 für alle anderen Maschinen 5.5 Lemma: Höchstens ein innerer Knoten j wird einer Maschine zugewiesen. Beweis: Rundungsregel; G(x) ist azyklisch.

46 10.11.2013Kapitel 1246 Approximation durch Relaxion 5.6 Satz: Die ILP-Rundung ergibt eine 2-Approximation. Beweis: Sei J(i) die Menge der Jobs, die Maschine i zugewiesen werden und L die optimale Lösung des LPs. Nach den Lemmas besteht die Last L i von Maschine i aus zwei Komponenten: –Blättern: j J(i), j Blatt t j = j J(i), j Blatt x i,j j J(i) x i,j L L* –Vätern: t parent(i) L* Also ist die Gesamtlast L i 2L* für alle i.

47 Übersicht Notation Arithmetisierung von Problemen Approximation durch Relaxion Die Ganzzahligkeitslücke Dualität 10.11.2013Kapitel 147

48 Die Ganzzahligkeitslücke Wir fragen uns, wieviel Genauigkeit man durch die Relaxierung verliert. 5.7 Definition: Sei ein kombinatorisches Optimierungsproblem. Für die Instanz I D sei X ein äquivalentes ILP und sei X rel das relaxierte Programm zu X. Dann ist OPT(X rel ) OPT(X) die Ganzzahligkeitslücke der Relaxierung. 10.11.2013Kapitel 148 = supI D

49 Die Ganzzahligkeitslücke Max-SAT: Betrachte die Boolesche Formel =(x 1 x 2 ) ( x 1 x 2 ) (x 1 x 2 ) ( x 1 x 2 ) Es ist offensichtlich OPT( )=3. Eine optimale Lösung des relaxierten Programms X rel ist dagegen OPT(X rel )=4 (wähle y´ i =1/2 für alle i). Also ist 4/3 für Max-SAT. Für Max-2SAT (alle Klauseln enthalten exakt 2 Variablen) ist 4/3 scharf, da es (über die Analyse eines Approximationsalgo A für Max-2SAT) auch bekannt ist, dass 4/3. 10.11.2013Kapitel 149

50 Die Ganzzahligkeitslücke Knotenüberdeckungsproblem (VC): Sei G der vollständige Graph auf n Knoten. Es gilt OPT(G) = n-1, da jedes Knotenpaar abgedeckt sein muss. Eine optimale Lösung des relaxierten Programms X rel ergibt aber OPT(X rel )=n/2 (wähle x´ v =1/2 für alle v). Also ist (n-1)/(n/2) = 2-1/n. Das ist nahezu scharf, da wir über unsere Analyse des Approximationsalgo A für VC wissen, dass 2. 10.11.2013Kapitel 150

51 Die Ganzzahligkeitslücke Set Cover Problem: Gegeben eine Sammlung S={S 1,…,S m } von Teilmengen von V (d.h. i S i = V), finde eine minimale Sammlung S cov S, so dass S S cov S = V ist. Das Set Cover Problem ist NP-hart. Das ILP zu Set Cover ist eine Verallgemeinerung des ILPs zu VC. 10.11.2013Kapitel 151

52 Die Ganzzahligkeitslücke ILP X zu Set Cover: minimiere i x i unter der Bedingung, dass i:v S i x i 1 für alle v V 0 x i 1 für alle i {1,…,m} und x i ganzzahlig LP X rel : minimiere i x´ i unter der Bedingung, dass i:v S i x´ i 1 für alle v V 0 x´ i 1 für alle i {1,…,m} 10.11.2013Kapitel 152

53 Die Ganzzahligkeitslücke 5.8 Satz: Für die Ganzzahligkeitslücke gilt ½ log n. Beweis: Da nicht konstant ist, müssen wir eine undendliche Familie von Instanzen konstruieren. Sei k IN und V={ u | u {0,1} k, u 0 k } Also ist n=|V|=2 k -1 Für jedes b {0,1} k, b 0 k, sei S b = { u | i=1..k (u i b i )=1 } : exklusiv oder 10.11.2013Kapitel 153

54 Die Ganzzahligkeitslücke Sei GF[2] der Galois-Körper über {0,1} mit den Operationen als Multiplikation und als Addition. Über GF[2] können wir auch S b ={ u | u b=1 } schreiben. Unsere Instanz: S={ S b | b {0,1} k, b 0 k }. Also ist m=n=2 k -1. |S b |=2 k-1 = (n+1)/2 und jedes Element kommt genau in (n+1)/2 Gruppen vor (Warum?). Deswegen ist x´ i =2/(n+1) für alle i {1,…,n} eine zulässige Lösung von X rel. Sie liefert den Wert 2n/(n+1), also OPT(X rel ) 2n/(n+1) 10.11.2013Kapitel 154

55 Die Ganzzahligkeitslücke Sei l { "@context": "http://schema.org", "@type": "ImageObject", "contentUrl": "http://images.slideplayer.org/206899/1/slides/slide_54.jpg", "name": "Die Ganzzahligkeitslücke Sei l

56 Übersicht Notation Arithmetisierung von Problemen Approximation durch Relaxion Die Ganzzahligkeitslücke Dualität 10.11.2013Kapitel 156

57 Dualität Bei unserem bisherigen Ansatz für ILPs musste zuerst mit recht großer Laufzeit das relaxierte LP gelöst werden. Wir untersuchen nun, wie man zu einer guten Approximation mittels des LP kommt, ohne es explizit lösen zu müssen. Dazu benötigen wir vertiefende Begriffe rund um die Dualität. 10.11.2013Kapitel 157

58 Dualität Betrachte das folgende LP: minimiere f(x)=x 1 +3x 2 +x 3 gemäß2x 1 + x 2 3 -x 1 + x 3 4 x 1, x 2, x 3 0 Optimale Lösung: x 1 =3/2, x 2 =0, x 3 =11/2 mit Zielfunktionswert f(x)=7 10.11.2013Kapitel 158

59 Dualität Allgemein und kompakt schreibt man: minimiere f(x)=c T x gemäßA x b x 0 Vektor x, der erfüllt: zulässige Lösung Für jedes y mit y i 0 für alle i und jede zulässige Lösung x gilt y T A x y T b row i [A]: ite Zeile der Matrix A row i [A] x b i : ite Nebenbedingung des LPs 10.11.2013Kapitel 159

60 Dualität Werden nun y j -Werte gewählt, so dass y T A c T ist, dann gilt für alle zulässigen Lösungen x: f(x) = c T x y T A x y T b D.h. y T b ist eine untere Schranke für den Wert der optimalen Lösung. In unserem Beispiel ergibt die Forderung y T A c T die drei Bedingungen 2y 1 – y 2 1 y 1 3 y 2 1 10.11.2013Kapitel 160

61 Dualität Wir können z.B. y 1 =0 und y 2 =1 wählen und erhalten dann, dass jede zulässige Lösung x mindestens den Wert 4 hat. Mit y 1 =1 und y 2 =1 bekommen wir sogar eine exakte untere Schranke von 7. Um also eine möglichst große untere Schranke zu erhalten, müssen wir das folgende Maximierungs- problem lösen: maximiere g(y) = 3y 1 +4y 2 gemäß2y 1 - y 2 1 y 1 3 y 2 1 y 1, y 2 0 10.11.2013Kapitel 161

62 Dualität Dieses lineare Programm heißt Dual des ursprünglichen LPs, das Primal genannt wird. Allgemein erhalten wir also: PrimalDual minimiere f(x)=c T x maximiere g(x)=b T y gemäßA x b gemäß A T y c x 0 y 0 10.11.2013Kapitel 162

63 Dualität Hier bietet es sich an, an der Tafel zu einigen in diesem Kapitel vorgestellten LPs das duale Problem zu formulieren… 10.11.2013Kapitel 163

64 Dualität Wir wissen bereits, dass für alle zulässigen Lösungen x des Primals und y des Duals gilt: g(y) f(x). Diese Beziehung wird auch schwache Dualität genannt. Der folgende Satz besagt, dass die optimalen Werte immer übereinstimmen. 5.9 Satz: (Dualitätssatz) Seien x opt und y opt optimale Lösungen des Primals bzw. Duals. Dann ist f(x opt ) = g(y opt ). 10.11.2013Kapitel 164

65 Dualität Um das Dual algorithmisch ausnutzen zu können, brauchen wir einige weitere Erkenntnisse. Sei p j =row j [A] x – b j das, was zu viel ist, damit die jte Bedingung des Primals scharf wird. p j wird primaler Schlupf genannt Ähnlich ist s i =c i -row i [A T ] y das, was fehlt, um die ite Nebenbedingung des Duals scharf zu machen. s i wird dualer Schlupf genannt 10.11.2013Kapitel 165

66 Dualität Betrachten wir nochmal unser Beispiel: Erste Nebenbedingung: x 1 +x 2 -3 0. Also gilt wegen y 1 0 auch y 1 (x 1 +x 2 -3) 0 Allgemein: y j p j = y j (row j [A] x – b j ) 0 Ebenso: s i x i = (c i -row i [A T ] y) x i 0 Interessanterweise gilt der folgende Satz: 5.10 Satz: (Satz vom komplementären Schlupf) Seien x und y zulässige Lösungen des Primals und Duals. Dann sind x und y genau dann optimale Lösungen, wenn y j (row j [A] x – b j ) = 0 und (c i -row i [A T ] y) x i = 0 für alle i und j. Alternativ: y j > 0 row j [A] x = b j (a) x i > 0 row i [A T ] y = c i (b) 10.11.2013Kapitel 166

67 Dualität Wir wollen jetzt zeigen, wie die Dualität für den Algorithmenentwurf und die –analyse verwendet werden kann. 5.11 Satz: Sei ein Minimierungsproblem, I eine Instanz und X, X rel und Y rel das ILP, relaxierte Primal und relaxierte Dual zu. Seien x und y beliebige zulässige Lösungen von X und Y rel. Dann gilt: g(y) OPT(Yrel) = OPT(Xrel) OPT(X) = OPT(I) f(x) 10.11.2013Kapitel 167

68 Dualität Die Beziehung in Satz 5.11 eignet sich auch hervorragend für Branch&Bound- Algorithmen, um abzuschätzen, in welchem Teil des Lösungsbaums Lösungen noch weiterverfolgt werden sollten. Im folgenden beschreiben wir zunächst abstrakt, wie man die Dualität einsetzt. 10.11.2013Kapitel 168

69 Dualität Einsatz im Algorithmenentwurf: Dual Fitting Es wird eine zulässige duale Lösung y für Y rel bestimmt, die einige Nebenbedingungen des Duals scharf macht. Dabei wird nicht gefordert, dass y eine optimale Lösung ist. Aus y heraus wird mittels Satz 5.10 eine Lösung x für X konstruiert. Ist x ungültig, dann muss es für ein oder mehrere y j noch Potential zur Erhöhung geben. Das Ganze wird sooft wiederholt, bis x gültig ist. Die Wahl von y bestimmt Lösungsqualität erheblich. 10.11.2013Kapitel 169

70 Dualität Einsatz in Algorithmenanalyse: Angenommen, der gegebene Algorithmus berech- net eine zulässige Lösung des gegebenen ILPs. Um die Lösungsqualität zu bestimmen, wird der Algorithmus so erweitert, dass er gleichzeitig zur Berechnung der Ausgabe x eine zulässige Lösung y von Y rel konstruiert, die mit x in Beziehung steht. Damit hoffen wir zeigen zu können, dass f(x) g(y) ist. Ist das immer der Fall, dann ist der Algorithmus wegen Satz 5.11 -kompetitiv. 10.11.2013Kapitel 170

71 Set Cover und Dualität S={S 1,…,S m }: Instanz zu Set Cover x i : Indikatorvariable zu S i Primal X Dual Y rel minimiere i=1..m x i maximiere j=1..n y j gemäß i:u j S i x i 1 u j V gemäß j:u j S i y j 1 S i S x i {0,1} i {1,…,m} 0 y j 1 j {1,…,n} Zunächst wollen wir den Dual Fitting Ansatz demonstrieren. 10.11.2013Kapitel 171

72 Set Cover und Dualität Entwurf: Dual Fitting Algorithmus DualPurSC bestimme optimale Lösung y zu Y rel for i:=1 to m do if (ite Bedingung des Duals scharf) then x i :=1 // also x i = j:u j S i y j else x i :=0 gib (x 1,…,x m ) aus 10.11.2013Kapitel 172

73 Set Cover und Dualität 5.12 Satz: Die Ausgabe von DualPurSC ergibt eine Über- deckung der relativen Güte S ( S : maximales Vorkommen eines Knotens in den Mengen in S ). Beweis: Angenommen, es gibt ein Element u j, das nicht überdeckt ist. Dann wäre für jedes S i S mit u j S i die Variable x j =0 (sonst wäre u j überdeckt). Das kann aber wegen der if-Anfrage nur passieren, wenn für alle S i S mit u j S i gilt, dass j:u j S i y j <1. Dann könnte die Variable aber noch vergrößert werden, ohne dass die Lösung unzulässig wird, was im Widerspruch dazu steht, dass die Lösung y zu Y rel optimal ist. Die Ausgabe ist also korrekt. 10.11.2013Kapitel 173

74 Set Cover und Dualität Beweis (Fortsetzung): Für jedes i mit x i =1 gilt j:u j S i y j = 1. Also gilt: DualPurSC(S) = i=1..m x i = i: x i =1 1 = i: x i =1 j:u j S i y j S j=1..n y j (*) = S OPT(Y rel ) S OPT(S) (**) Bei (*) wird benutzt, dass jedes y j in höchstens S Nebenbedingungen vorkommen kann. (**) gilt wegen Satz 5.11 10.11.2013Kapitel 174

75 Set Cover und Dualität Hier ist es angebracht, ein kleines Beispiel an der Tafel vorzuführen (siehe auch Seite 141 im Wanka-Buch). 10.11.2013Kapitel 175

76 Set Cover und Dualität Die Laufzeit in DualPurSC ist recht hoch, da wir ein LP lösen müssen. Können wir auch einen Algorithmus angeben, der ohne LP-Löser auskommt? Wir nutzen dabei die Erkenntnis, dass g(y) OPT(S) für alle zulässigen y ist. Eine optimale Lösung von Y rel braucht y dabei nicht zu sein. Das führt zu folgendem Algorithmus. 10.11.2013Kapitel 176

77 Set Cover und Dualität Algorithmus PrimalDualSC_I for j:=1 to n do y j :=0 for i:=1 to m do x i :=0; dualer_schlupf[i]:=1 while (es gibt ein nicht überdecktes u j ) do bestimme S i S mit u j S i mit minimalem dualer_schlupf[i] x i :=1 // damit Fall 5.10(b) erfüllt y j :=dualer_schlupf[i] // nun ist die ite Bed. scharf: x i = j:u j S i y j for alle i´ mit u j S i´ do dualer_schlupf[i´]:=dualer_schlupf[i´]-y j gib (x 1,…,x m ) aus Algo startet mit zulässiger Lösung y=0, sucht wiederholt nach nicht überdecktem u j und macht dann diejenige von den betroffenen Ne- benbedindungen mit min. Schlupf scharf, so dass y noch zulässig. Beachte, dass die y j immer nur 0 oder 1 sind. 10.11.2013Kapitel 177

78 Set Cover und Dualität 5.13 Satz: Die Ausgabe von PrimalDualSC_I ergibt eine Überdeckung der relativen Güte S. Die Laufzeit ist O(n m). Beweis: Laufzeit: Die while-Schleife kann bis zu n-mal wiederholt werden, die Bestimmung einer Gruppe mit minimalem Schlupf innerhalb der Schleife dauert O(m) Schritte. Der Algo stellt sicher, dass y immer eine zulässige Lösung bleibt. Die Güte-Rechnung ist wie im Beweis zu Satz 5.12. 10.11.2013Kapitel 178

79 Set Cover und Dualität PrimalDualSC_I kommt ohne LP-Löser aus und ist daher viel effizienter als DualPurSC. Bei der Behandlung noch nicht überdeckter Elemente u j gibt es große Freiheiten, die PrimalDualSC_I nicht optimal ausnutzt. Besser wäre es, wenn nach einer Gruppe S i gesucht wird, die möglichst viele unüberdeckte Elemente u j abdeckt. Den vorhandenen dualen Schlupf kann man dann gleichmäßig auf alle in der iten Nebenbedingung vorkommenden y j verteilen, die noch keinen Wert zugewiesen bekommen hatten. In der Tat erweist sich dieses Verfahren als erfolgreich. Im folgenden sei H(n) = i=1..n 1/i. Es ist H(n) ln n +1. Wir definieren G S = max i |S i | 10.11.2013Kapitel 179

80 Set Cover und Dualität Algorithmus PrimalDualSC_II for i:=1 to m do x i :=0 C:= // enthält schon überdeckte Elemente while C V do bestimme i mit maximalem |S i \C| x i :=1 for alle u j S i \C do preis[u j ]:=1/|S i \C| // damit x i =1 und u j S i \C preis[u j ]=1 y j :=preis[u j ]/H(G S ) // d.h. H(G S ) y j = preis[u j ] C:=C S i gib (x 1,…,x m ) aus 10.11.2013Kapitel 180

81 Set Cover und Dualität Die innere for-Schleife ist nicht für die Berechnung der Ausgabe notwendig, aber sehr nützlich für die Bestimmung der relativen Güte. 5.14 Satz: Die Ausgabe von PrimalDualSC_II beschreibt eine Überdeckung der relativen Güte H(G S ). Die Laufzeit ist O(n m). Beweis: Laufzeit: klar 10.11.2013Kapitel 181

82 Set Cover und Dualität Beweis (Fortsetzung): Um Satz 5.11 anwenden zu können, zeigen wir zunächst, dass die y j eine zulässige Lösung des Duals bilden. Das ist nämlich hier nicht mehr offensichtlich. Betrachte die ite Nebenbedingung und die zugehörige Gruppe S i ={u j 1,…,u j k }, wobei die Elemente aus S i in der Reihenfolge u j 1,…,u j k durch den Algorithmus überdeckt werden. Beachte, dass k G S ist. Wir schauen nun auf die Runde, in der u j l überdeckt wird. Wäre S i die Gruppe, die in der Runde gewählt wird, wären neben u j l noch k-l andere Elemente unüberdeckt. Die tatsächlich gewählte, vielleicht noch mehr freie Elemente enthaltende Gruppe trifft also mindestens k-l+1 noch unüberdeckte Elemente, unter ihnen u j l. 10.11.2013Kapitel 182

83 Set Cover und Dualität Beweis (Fortsetzung): Also ist preis[u j l ] 1/(k-l+1) und damit y j l 1/H(G S ) 1/(k-l+1) Nun habe wir für die ite Nebenbedingung des Duals l=1..k y j l 1/H(G S ) l=1..k 1/(k-l+1) = H(k)/H(G S ) 1 die damit erfüllt ist. Für die Ausgabeüberdeckung gilt weiterhin: PrimalDualSC_II(S) = i=1..m x i = l=1..n preis(u j )(*) = H(G S ) l=1..n y j H(G S ) OPT(S)(**) Dabei wird in (*) genutzt, dass i:x i =1 S i = V ist. In (**) wird Satz 5.11 angewandt. 10.11.2013Kapitel 183

84 10.11.2013Kapitel 184 Fragen?


Herunterladen ppt "10.11.2013Kapitel 11 Methoden des Algorithmenentwurfs Kapitel 1.5:Lineare Optimierung und Approximationsalgorithmen Christian Scheideler SS 2009."

Ähnliche Präsentationen


Google-Anzeigen