840 likes | 1.11k Views
Methoden des Algorithmenentwurfs Kapitel 1.5:Lineare Optimierung und Approximationsalgorithmen. Christian Scheideler SS 2009. Übersicht. Notation Arithmetisierung von Problemen Approximation durch Relaxion Die Ganzzahligkeitslücke Dualität. Notation.
E N D
Methoden des AlgorithmenentwurfsKapitel 1.5:Lineare Optimierung und Approximationsalgorithmen Christian Scheideler SS 2009 Kapitel 1
Übersicht • Notation • Arithmetisierung von Problemen • Approximation durch Relaxion • Die Ganzzahligkeitslücke • Dualität Kapitel 1
Notation Zur Erinnerung:Ein kombinatorisches Optimierungs-problem P ist charakterisiert durch vier Komponenten: • D: Menge der Eingaben • S(I) für ein ID: Menge der zur Eingabe I zulässigen Lösungen • Die Bewertungsfunktion f:S(I) IN • ziel{min, max} Kapitel 1
Notation Lineares Optimierungsproblem: • D: Menge von Instanzen I=(A,b,c) mit AIRmn, bIRm und cIRn für n,mIN • S(I): Menge aller xIRn mit Ax b • Bewertungsfunktion: f(x) = cTx • ziel{min, max} Kapitel 1
Notation Lineares Optimierungsproblem: • D: Menge von Instanzen I=(A,b,c) mit AIRmn, bIRm und cIRn für n,mIN • S(I): Menge aller xIRn mit Ax b • Bewertungsfunktion: f(x) = cTx • ziel{min, max} Deckt auch Ungleichungen der Form aTx b und aTx= bab. Kapitel 1
Notation Lineares Optimierungsproblem: • D: Menge von Instanzen I=(A,b,c) mit AIRmn, bIRm und cIRn für n,mIN • S(I): Menge aller xIRn mit Ax b • Bewertungsfunktion: f(x) = cTx • ziel{min, max} aTx b äquivalent zu -aTx -baTx= bäquivalent zu aTx b und -aTx -b Kapitel 1
Notation Lineares Optimierungsproblem: • D: Menge von Instanzen I=(A,b,c) mit AIRmn, bIRm und cIRn für n,mIN • S(I): Menge aller xIRnmit Ax b • Bewertungsfunktion: f(x) = cTx • ziel{min, max} Ohne Beschränkung der Allgemeinheit (o.B.d.A.) auf IR+neinschränkbar. Kapitel 1
Notation Lineares Optimierungsproblem: • D: Menge von Instanzen I=(A,b,c) mit AIRmn, bIRm und cIRn für n,mIN • S(I): Menge aller xIRnmit Ax b • Bewertungsfunktion: f(x) = cTx • ziel{min, max} Ersetze jedes xi durch xi+-xi-mitxi+,xi-IR+n. Kapitel 1
Notation Lineares Optimierungsproblem: • D: Menge von Instanzen I=(A,b,c) mit AIRmn, bIRm und cIRn für n,mIN • S(I): Menge aller xIR+nmit Ax b • Bewertungsfunktion: f(x) = cTx • ziel{min, max} O.B.d.A. reicht ziel=max. Kapitel 1
Notation Lineares Optimierungsproblem: • D: Menge von Instanzen I=(A,b,c) mit AIRmn, bIRm und cIRn für n,mIN • S(I): Menge aller xIR+nmit Ax b • Bewertungsfunktion: f(x) = cTx • ziel{min, max} ziel=min: ersetze c durch -c Kapitel 1
Notation Lineares Optimierungsproblem (kanonische Form): • D: Menge von Instanzen I=(A,b,c) mit AIRmn, bIRm und cIRn für n,mIN • S(I): Menge aller xIR+nmit Ax b • Bewertungsfunktion: f(x) = cTx • ziel=max Kapitel 1
Notation Lineares Optimierungsproblem (kanonische Form, vereinfachend formuliert): • Maximiere cTx unter der Bedingung, dassAx b und xIR+n Kapitel 1
Notation Beispiel:min 3x1+5x2unter der Bedingung, dass(1) 2x1+ x2 3(2) 2x1+2x2 5(3) x1+4x2 4(4) x10(5) x2 0Jeder Vektor x=(x1,x2), der (1)-(5) erfüllt, heißt zulässige Lösung. Kapitel 1
Notation Beispiel anschaulich: (5) (1) (2) Raum zulässiger Lösungen 2 (3) 1 (4) OPT 1 2 Zielfunktion Kapitel 1
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 xixjin der Zielfunktion oder den Restriktionen) heißen auch quadratische Programme. Kapitel 1
Übersicht • Notation • Arithmetisierung von Problemen • Approximation durch Relaxion • Die Ganzzahligkeitslücke • Dualität Kapitel 1
Arithmetisierung von VC Knotenüberdeckungsproblem (VC):Gegeben ein Graph G=(V,E), finde eine Teil-menge UV minimaler Größe, so dass für jede Kante mindestens ein Knoten in U ist. Arithmetisierung: • xv{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: xv+xw1 • Minimiere Größe von U minimiere Svxv Kapitel 1
Arithmetisierung von VC Ergebnis:minimiere Svxv unter der Bedingung, dass • xv+xw1 für jede Kante {v,w} E • 0xv1 für alle v (oder in kanonischer Form -xv0 und xv1) und xvganzzahlig Kapitel 1
Arithmetisierung von Rucksack Rucksack-Problem: • GegebensindnObjekte und ein Rucksack • Objekti hat Wert pi>0 und wiegtvoli>0 • Der Rucksack kann max. GesamtgewichtBtragen. Ziel:fülle Rucksack mitObjektenmit max. Gesamtwert Arithmetisierung: • xi{0,1}: ist 1 genau dann, wenn Objekt i genommen • Erfülle maximales Gesamtgewicht BSivolixi B • Maximiere Wert der Objekte im Rucksack maximiere Sipixi Kapitel 1
Arithmetisierung von Rucksack Ergebnis:maximiere Sipixi unter der Bedingung, dass • Sivolixi B • 0xi1 für alle i und xiganzzahlig Kapitel 1
Arithmetisierung der Knotenfärbung Knotenfärbung:Gegeben ein Graph G=(V,E), finde eine Knotenfärbung mit minimaler Anzahl Farben Arithmetisierung: • xv,c{0,1} für vV und c{1,…, D(G)+1}: xv,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 vV: Scxv,c= 1 • Keine zwei adjazenten Knoten gleicher Farbe für alle {v,w}E und alle c: xv,c+xw,c 1 • f: Anzahl benutzter Farben für alle vV: Sccxv,c f • Minimiere Anzahl benutzter Farben minimiere f Kapitel 1
Arithmetisierung der Knotenfärbung Ergebnis:minimiere f unter der Bedingung, dass • Scxv,c= 1 für alle vV • xv,c+xw,c 1 für alle {v,w}E und c{1,…,D(G)+1} • Sccxv,c f für alle vV • f0 • 0xv,c1 für alle vVund c{1,…, D(G)+1} und xv,cganzzahlig Kapitel 1
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 f1, f2 Boolesche Formeln, dann auch f1 (Negation), f1f2 (logisches „und“) und f1f2 (logisches „oder“) • Beispiel für Boolesche Formel:f(x1,x2,x3)= x1(x1x2x3)(x1x3)(x2x3) Kapitel 1
Arithmetisierung von Max-SAT Auswertungsregeln: • f1=true genau dann, wenn f1=false • f1f2=truegenau dann, wenn f1=trueund f2=true • f1f2=true genau dann, wenn f1=trueoder f2=true • f ist in konjunktiver Normalform (KNF):Form f=C1C2…Cmmit KlauselnCi=v1…vk, wobei jedes vi eine Boolesche Variable oder ihre Negation repräsentiert • Beispiel:f(x1,x2,x3)= x1(x1x2x3)(x1x3)(x2x3) Kapitel 1
Arithmetisierung von Max-SAT Max-SAT Problem: Für eine gegebene Formel f in KNF, finde eine Belegung für ihre Booleschen Variablen, die die Anzahl der erfüllten Klauseln (d.h. Ci=true) maximiert. Bemerkung: • Das Max-SAT Problem ist NP-hart. • Max-SAT lässt sich einfach als lineares ganzzahliges Programm ausdrücken. Kapitel 1
Arithmetisierung von Max-SAT Arithmetisierung von Max-SAT: • xi{false, true} yi{0,1} • xi 1-yi • Ci=(x1x2x3)Di=y1+(1-y2)+y3 • Ci{false, true} zi{0,1} • Maximiere Anzahl erfüllter Klauseln maximiere Si zimit ziDifür alle i Kapitel 1
Arithmetisierung von Max-SAT Beispiel: f(x1,x2,x3)= x1(x1x2x3)(x1x3)(x2x3) Lineares ganzzahliges Programm P(f) zu f:maxSi ziunter der Bedingung, dass • z1 (1-y1) • z2 y1+(1-y2)+y3 • z3 y1+(1-y3) • z4 y2+y3 • für alle i: 0zi1 und 0yi1 und zi,yiganzzahlig Kapitel 1
Arithmetisierung von Max-SAT Äquivalenz der Arithmetisierung:Zeige, dass OPT(f) = OPT(P(f)) Beweisstrategie: • Tansformiere (optimale) Lösung für f in eine zulässige Lösung für P(f) mit demselben Wert (dazu können Ersetzungsregeln von Folie 26 verwendet werden) • Transformiere (optimale) Lösung für P(f) in eine zulässige Lösung für f mit demselben Wert Kapitel 1
Arithmetisierung von Max-SAT Verhältnis ILP zu LP: ILP P(f) zu f:maxSi ziunter der Bedingung, dass • z1 (1-y1) • z2 y1+(1-y2)+y3 • z3 y1+(1-y3) • z4 y2+y3 • für alle i: 0zi1 und 0yi1 und zi,yiganzzahlig Streichen wir „ganzzahlig“, so erhalten wir ein LP P´(f) zu f. Kapitel 1
Arithmetisierung von Max-SAT Verhältnis ILP zu LP: ILP P(f) zu f:maxSi ziunter der Bedingung, dass • z1 (1-y1) • z2 y1+(1-y2)+y3 • z3 y1+(1-y3) • z4 y2+y3 • für alle i: 0zi1 und 0yi1 und zi,yiganzzahlig Da Raum zulässiger Lösungen größer wird, gilt OPT(P´(f)) OPT(P(f)). Daswird später noch nützlich sein. Kapitel 1
Übersicht • Notation • Arithmetisierung von Problemen • Approximation durch Relaxion • Die Ganzzahligkeitslücke • Dualität Kapitel 1
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 Xrelbekommt.Es gilt OPT(X) OPT(Xrel) (Superoptimalität) • Löse Xrel und runde geschickt die reelle Lösung zu einer zulässigen ganzzahligen Lösung von I. Zu zeigen: A(I) (1/r)OPT(Xrel) für ein (möglichst kleines) r. Dann gilt wegen der Superoptimalität auch, dass A(I) (1/r)OPT(I). Kapitel 1
Approximation durch Relaxion Max-SAT Problem: betrachte Eingabef(x1,x2,x3)= x1(x1x2x3)(x1x3)(x2x3) ILP X(f) zu f:maxSi ziunter der Bedingung, dass • z1 (1-y1) • z2 y1+(1-y2)+y3 • z3 y1+(1-y3) • z4 y2+y3 • für alle i: 0zi1 und 0yi1 und zi,yiganzzahlig Kapitel 1
Approximation durch Relaxion Max-SAT Problem: betrachte Eingabef(x1,x2,x3)= x1(x1x2x3)(x1x3)(x2x3) LP Xrel(f) zu f:maxSi z´iunter 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: 0z´i1 und 0y´i1 Kapitel 1
Approximation durch Relaxion Naive Rundungsstrategie:fori:=1 to5 doify´i ½thenyi:=1elseyi:=0wähle maximale zulässige zi-Werte für die yi-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 yi=1 mit Wahrscheinlichkeit y´i), was eine erwartet kon-stante Güte erreicht (aber hier nicht behandelt wird) Kapitel 1
Approximation durch Relaxion Knotenüberdeckungsproblem (VC):Gegeben ein Graph G=(V,E), finde eine Teil-menge UV minimaler Größe, so dass für jede Kante mindestens ein Knoten in U ist. ILP X(G) zu VC:minimiere Svxv unter der Bedingung, dass • xv+xw1 für jede Kante {v,w} E • 0xv1 für alle i und xiganzzahlig Kapitel 1
Approximation durch Relaxion Knotenüberdeckungsproblem (VC):Gegeben ein Graph G=(V,E), finde eine Teil-menge UV minimaler Größe, so dass für jede Kante mindestens ein Knoten in U ist. LP Xrel(G) zu VC:minimiere Svx´v unter der Bedingung, dass • x´v+x´w1 für jede Kante {v,w} E • 0x´v1 für alle v Kapitel 1
Approximation durch Relaxion Rundungsstrategie:forallvV doifx´v½thenxv:=1elsexv:=0wähle maximale zulässige zi-Werte für die yi-Werte • Diese Rundungsstrategie ergibt eine zulässige Lösung, da x´v+x´w1 für jede Kante {v,w} E und damit entweder x´v½ oder x´w½ sein muss, so dass entweder xv1 oder xw1ist. • Weiterhin gilt Svxv 2 Svx´v, so dass mit der Superoptimalität des LPs folgt, dass A(G) 2OPT(G), also die relative Güte höchstens 2 ist. Kapitel 1
Approximation durch Relaxion Allgemeines Job Scheduling Problem: • MengeM von mMaschinen, MengeJ von n Jobs • Job j muss in einemStück auf einerderautorisiertenMaschinen in MjMablaufen • Job j hat Bearbeitungszeittj • JedeMaschinekannhöchstenseinen Job gleichzeitigbearbeiten Erinnerung: • Last von Maschinei: Li = jJ(i)tj • MakespanL = maxi Li Aufgabe:findeJobzuweisung, die Makespanminimiert Kapitel 12
Approximation durch Relaxion SeixI,jZeit, die Maschineimit Job jzubringt. ILP X: min L s. d. ixi,j = tjfürallejJ jxi,j LfüralleiM xi,j{0,tj}fürallejJund iMj xi,j = 0fürallejJund iMj LP Xrel: min L s. d. ixi,j = tjfürallejJ jxi,j LfüralleiM xi,j0fürallejJund iMj xi,j = 0fürallejJund iMj Kapitel 12
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*maxj tj. Beweis: siehe Einführung Kapitel 12
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 xi,j>0 Maschine Job Kapitel 12
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 Kapitel 12
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 Kapitel 12
Approximation durch Relaxion 5.4 Lemma: Falls Job j ein Blatt ist und Maschine i der Vater von j, dann xi,j=tj. Beweis: Da j ein Blatt ist, ist xi,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. Kapitel 12
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 Livon Maschine i aus zwei Komponenten: • Blättern:jJ(i), j Blatt tj = jJ(i), j Blatt xi,j jJ(i) xi,j L L* • Vätern:tparent(i) L* • Also ist die Gesamtlast Li2L* für alle i. Kapitel 12
Übersicht • Notation • Arithmetisierung von Problemen • Approximation durch Relaxion • Die Ganzzahligkeitslücke • Dualität Kapitel 1
Die Ganzzahligkeitslücke Wir fragen uns, wieviel Genauigkeit man durch die Relaxierung verliert. 5.7 Definition: Sei P ein kombinatorisches Optimierungsproblem. Für die Instanz ID sei X ein äquivalentes ILP und sei Xrel das relaxierte Programm zu X. Dann istOPT(Xrel) OPT(X)die Ganzzahligkeitslücke der Relaxierung. g = sup ID Kapitel 1
Die Ganzzahligkeitslücke Max-SAT: • Betrachte die Boolesche Formelf=(x1x2)(x1x2)(x1x2)(x1x2) • Es ist offensichtlich OPT(f)=3. • Eine optimale Lösung des relaxierten Programms Xrel ist dagegen OPT(Xrel)=4 (wähle y´i=1/2 für alle i). • Also ist g4/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 ApproximationsalgoA für Max-2SAT) auch bekannt ist, dass g4/3. Kapitel 1
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 Xrel ergibt aber OPT(Xrel)=n/2 (wähle x´v=1/2 für alle v). • Also ist g(n-1)/(n/2) = 2-1/n. • Das ist nahezu scharf, da wir über unsere Analyse des ApproximationsalgoA für VC wissen, dass g2. Kapitel 1