Christian Scheideler SS 2009

Slides:



Advertisements
Ähnliche Präsentationen
Algorithmen für das Erfüllbarkeitsproblem SAT
Advertisements

Christian Scheideler SS 2009
Christian Scheideler SS 2009
Methoden des Algorithmenentwurfs Kapitel 1: Einführung
Christian Scheideler SS 2009
Methoden des Algorithmenentwurfs Kapitel 1.4:Approximations-schemata
Rekursion: Rekurrenz: Algorithmen rufen sich selbst (rekursiv) auf.
Algebraische Zahlen: Exaktes Rechnen mit Wurzeln
Schwierigkeit von Aufgabenstellungen
Schnelle Matrizenoperationen von Christian Büttner
Datenstrukturen, Algorithmen und Programmierung 2 (DAP2)
Wie lösen wir ILPs exakt?
Planares 3 SAT ist NP-vollständig
Marco Barz Seminar über Algorithmen SoSe2007
Verifizieren versus Berechnen
Algorithmen und Komplexität
WS Algorithmentheorie 08 – Dynamische Programmierung (2) Matrixkettenprodukt Prof. Dr. Th. Ottmann.
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (27 – Kürzeste Wege) Prof. Th. Ottmann.
Minimum Spanning Tree: MST
Approximationsalgorithmen Facility Location K-Median Cheng, Wei 12. Juli.
Beweissysteme Hartmut Klauck Universität Frankfurt WS 06/
Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer Diskrete Mathematik II Vorlesung 1 SS 2001 Algorithmus von Dijkstra.
Effiziente Algorithmen
Effiziente Algorithmen
Effiziente Algorithmen
Chromatische Zahl.
Effiziente Algorithmen
Black Box Algorithmen Hartmut Klauck Universität Frankfurt SS
Geoinformation II (6. Semester)
Black Box Algorithmen Hartmut Klauck Universität Frankfurt SS
Effiziente Algorithmen
Effiziente Algorithmen
Black Box Algorithmen Hartmut Klauck Universität Frankfurt SS
Effiziente Algorithmen Hartmut Klauck Universität Frankfurt SS
Effiziente Algorithmen
Black Box Algorithmen Hartmut Klauck Universität Frankfurt SS
Quantum Computing Hartmut Klauck Universität Frankfurt WS 05/
Effiziente Algorithmen Hartmut Klauck Universität Frankfurt SS
Black Box Algorithmen Hartmut Klauck Universität Frankfurt SS
Effiziente Algorithmen Hartmut Klauck Universität Frankfurt SS
Effiziente Algorithmen Hartmut Klauck Universität Frankfurt SS
Effiziente Algorithmen
Hartmut Klauck Universität Frankfurt SS
Information und Kommunikation Hartmut Klauck Universität Frankfurt SS
Beweissysteme Hartmut Klauck Universität Frankfurt WS 06/
Beweissysteme Hartmut Klauck Universität Frankfurt WS 06/
Information und Kommunikation Hartmut Klauck Universität Frankfurt SS
Beweissysteme Hartmut Klauck Universität Frankfurt WS 06/
Beweissysteme Hartmut Klauck Universität Frankfurt WS 06/
Information und Kommunikation
Information und Kommunikation Hartmut Klauck Universität Frankfurt SS
Hartmut Klauck Universität Frankfurt WS 06/
Hartmut Klauck Universität Frankfurt WS 06/
Christian Scheideler Institut für Informatik Universität Paderborn
Ausgewählte Kapitel der Computational Intelligence (Vorlesung) Prof. Dr. Günter Rudolph Fachbereich Informatik Lehrstuhl für Algorithm Engineering Sommersemester.
Einführung in die Programmierung Wintersemester 2013/14 Prof. Dr. Günter Rudolph Lehrstuhl für Algorithm Engineering Fakultät für Informatik TU Dortmund.
Black Box Algorithmen Hartmut Klauck Universität Frankfurt SS
Folie Beispiel für eine Einzelauswertung der Gemeindedaten (fiktive Daten)
Informatik III Christian Schindelhauer Wintersemester 2006/07
Folie Einzelauswertung der Gemeindedaten
Analyse der Laufzeit von Algorithmen
Nichtlineare Optimierung
HEINZ NIXDORF INSTITUT Universität Paderborn Fachbereich Mathematik/Informatik Algorithmische Probleme in Funknetzwerken VI Christian Schindelhauer
Anwendung der Ellipsoidmethode in der Kombinatorischen Optimierung
Optimierungs- Algorithmen Petra Mutzel Technische Universität Wien Institut für Computergraphik und Algorithmen Algorithmen und Datenstrukturen 2.
Optimierungs- Algorithmen
Gliederung der Vorlesung
Algorithmen und Datenstrukturen Prof. Dr. Ralf Möller Universität zu Lübeck Institut für Informationssysteme Stefan Werner (Übungen) sowie viele Tutoren.
Algorithmen und Datenstrukturen
Algorithmen und Datenstrukturen
 Präsentation transkript:

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

Übersicht Notation Arithmetisierung von Problemen Approximation durch Relaxion Die Ganzzahligkeitslücke Dualität 25.03.2017 Kapitel 1

Notation Zur Erinnerung: Ein kombinatorisches Optimierungs-problem P 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} 25.03.2017 Kapitel 1

Notation Lineares Optimierungsproblem: D: Menge von Instanzen I=(A,b,c) mit AIRmn, bIRm und cIRn für n,mIN S(I): Menge aller xIRn mit Ax  b Bewertungsfunktion: f(x) = cTx ziel{min, max} 25.03.2017 Kapitel 1

Notation Lineares Optimierungsproblem: D: Menge von Instanzen I=(A,b,c) mit AIRmn, bIRm und cIRn für n,mIN S(I): Menge aller xIRn mit Ax  b Bewertungsfunktion: f(x) = cTx ziel{min, max} Deckt auch Ungleichungen der Form aTx  b und aTx = b ab. 25.03.2017 Kapitel 1

Notation Lineares Optimierungsproblem: D: Menge von Instanzen I=(A,b,c) mit AIRmn, bIRm und cIRn für n,mIN S(I): Menge aller xIRn mit Ax  b Bewertungsfunktion: f(x) = cTx ziel{min, max} aTx  b äquivalent zu -aTx  -b aTx = b äquivalent zu aTx  b und -aTx  -b 25.03.2017 Kapitel 1

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

Notation Lineares Optimierungsproblem: D: Menge von Instanzen I=(A,b,c) mit AIRmn, bIRm und cIRn für n,mIN S(I): Menge aller xIRn mit Ax  b Bewertungsfunktion: f(x) = cTx ziel{min, max} Ersetze jedes xi durch xi+-xi- mit xi+,xi-IR+n. 25.03.2017 Kapitel 1

Notation Lineares Optimierungsproblem: D: Menge von Instanzen I=(A,b,c) mit AIRmn, bIRm und cIRn für n,mIN S(I): Menge aller xIR+n mit Ax  b Bewertungsfunktion: f(x) = cTx ziel{min, max} O.B.d.A. reicht ziel=max. 25.03.2017 Kapitel 1

Notation Lineares Optimierungsproblem: D: Menge von Instanzen I=(A,b,c) mit AIRmn, bIRm und cIRn für n,mIN S(I): Menge aller xIR+n mit Ax  b Bewertungsfunktion: f(x) = cTx ziel{min, max} ziel=min: ersetze c durch -c 25.03.2017 Kapitel 1

Notation Lineares Optimierungsproblem (kanonische Form): D: Menge von Instanzen I=(A,b,c) mit AIRmn, bIRm und cIRn für n,mIN S(I): Menge aller xIR+n mit Ax  b Bewertungsfunktion: f(x) = cTx ziel=max 25.03.2017 Kapitel 1

Notation Lineares Optimierungsproblem (kanonische Form, vereinfachend formuliert): Maximiere cTx unter der Bedingung, dass Ax  b und xIR+n 25.03.2017 Kapitel 1

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

Notation Beispiel anschaulich: Raum zulässiger Lösungen OPT (5) (1) (2) Raum zulässiger Lösungen 2 (3) 1 (4) OPT 1 2 Zielfunktion 25.03.2017 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 xixj in der Zielfunktion oder den Restriktionen) heißen auch quadratische Programme. 25.03.2017 Kapitel 1

Übersicht Notation Arithmetisierung von Problemen Approximation durch Relaxion Die Ganzzahligkeitslücke Dualität 25.03.2017 Kapitel 1

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: 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+xw1 Minimiere Größe von U  minimiere Sv xv 25.03.2017 Kapitel 1

Arithmetisierung von VC Ergebnis: minimiere Sv xv unter der Bedingung, dass xv+xw1 für jede Kante {v,w} E 0xv1 für alle v (oder in kanonischer Form -xv0 und xv1) und xv ganzzahlig 25.03.2017 Kapitel 1

Arithmetisierung von Rucksack Rucksack-Problem: Gegeben sind n Objekte und ein Rucksack Objekt i hat Wert pi>0 und wiegt voli>0 Der Rucksack kann max. Gesamtgewicht B tragen. Ziel: fülle Rucksack mit Objekten mit max. Gesamtwert Arithmetisierung: xi{0,1}: ist 1 genau dann, wenn Objekt i genommen Erfülle maximales Gesamtgewicht B  Si volixi  B Maximiere Wert der Objekte im Rucksack  maximiere Si pixi 25.03.2017 Kapitel 1

Arithmetisierung von Rucksack Ergebnis: maximiere Si pixi unter der Bedingung, dass Si volixi  B 0xi1 für alle i und xi ganzzahlig 25.03.2017 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 vV 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 vV: Sc xv,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 vV: Sc cxv,c  f Minimiere Anzahl benutzter Farben  minimiere f 25.03.2017 Kapitel 1

Arithmetisierung der Knotenfärbung Ergebnis: minimiere f unter der Bedingung, dass Sc xv,c= 1 für alle vV xv,c+xw,c 1 für alle {v,w}E und c{1,…,D(G)+1} Sc cxv,c  f für alle vV f0 0xv,c1 für alle vV und c{1,…, D(G)+1} und xv,c ganzzahlig 25.03.2017 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), f1f2 (logisches „und“) und f1f2 (logisches „oder“) Beispiel für Boolesche Formel: f(x1,x2,x3)= x1(x1x2x3)(x1x3)(x2x3) 25.03.2017 Kapitel 1

Arithmetisierung von Max-SAT Auswertungsregeln: f1=true genau dann, wenn f1=false f1f2=true genau dann, wenn f1=true und f2=true f1f2=true genau dann, wenn f1=true oder f2=true f ist in konjunktiver Normalform (KNF): Form f=C1C2…Cm mit Klauseln Ci=v1…vk, wobei jedes vi eine Boolesche Variable oder ihre Negation repräsentiert Beispiel: f(x1,x2,x3)= x1(x1x2x3)(x1x3)(x2x3) 25.03.2017 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. 25.03.2017 Kapitel 1

Arithmetisierung von Max-SAT xi{false, true}  yi{0,1} xi  1-yi Ci=(x1x2x3)  Di=y1+(1-y2)+y3 Ci{false, true}  zi{0,1} Maximiere Anzahl erfüllter Klauseln  maximiere Si zi mit ziDi für alle i 25.03.2017 Kapitel 1

Arithmetisierung von Max-SAT Beispiel: f(x1,x2,x3)= x1(x1x2x3)(x1x3)(x2x3) Lineares ganzzahliges Programm P(f) zu f: max Si zi unter der Bedingung, dass z1  (1-y1) z2  y1+(1-y2)+y3 z3  y1+(1-y3) z4  y2+y3 für alle i: 0zi1 und 0yi1 und zi,yi ganzzahlig 25.03.2017 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 25.03.2017 Kapitel 1

Arithmetisierung von Max-SAT Verhältnis ILP zu LP: ILP P(f) zu f: max Si zi unter der Bedingung, dass z1  (1-y1) z2  y1+(1-y2)+y3 z3  y1+(1-y3) z4  y2+y3 für alle i: 0zi1 und 0yi1 und zi,yi ganzzahlig Streichen wir „ganzzahlig“, so erhalten wir ein LP P´(f) zu f. 25.03.2017 Kapitel 1

Arithmetisierung von Max-SAT Verhältnis ILP zu LP: ILP P(f) zu f: max Si zi unter der Bedingung, dass z1  (1-y1) z2  y1+(1-y2)+y3 z3  y1+(1-y3) z4  y2+y3 für alle i: 0zi1 und 0yi1 und zi,yi ganzzahlig Da Raum zulässiger Lösungen größer wird, gilt OPT(P´(f))  OPT(P(f)). Das wird später noch nützlich sein. 25.03.2017 Kapitel 1

Übersicht Notation Arithmetisierung von Problemen Approximation durch Relaxion Die Ganzzahligkeitslücke Dualität 25.03.2017 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 Xrel bekommt. 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). 25.03.2017 Kapitel 1

Approximation durch Relaxion Max-SAT Problem: betrachte Eingabe f(x1,x2,x3)= x1(x1x2x3)(x1x3)(x2x3) ILP X(f) zu f: max Si zi unter der Bedingung, dass z1  (1-y1) z2  y1+(1-y2)+y3 z3  y1+(1-y3) z4  y2+y3 für alle i: 0zi1 und 0yi1 und zi,yi ganzzahlig 25.03.2017 Kapitel 1

Approximation durch Relaxion Max-SAT Problem: betrachte Eingabe f(x1,x2,x3)= x1(x1x2x3)(x1x3)(x2x3) LP Xrel(f) zu f: max Si 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 25.03.2017 Kapitel 1

Approximation durch Relaxion Naive Rundungsstrategie: for i:=1 to 5 do if y´i ½ then yi:=1 else yi:=0 wä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) 25.03.2017 Kapitel 1

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 Sv xv unter der Bedingung, dass xv+xw1 für jede Kante {v,w} E 0xv1 für alle i und xi ganzzahlig 25.03.2017 Kapitel 1

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 Xrel(G) zu VC: minimiere Sv 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 25.03.2017 Kapitel 1

Approximation durch Relaxion Rundungsstrategie: forall vV do if x´v ½ then xv:=1 else xv:=0 wähle maximale zulässige zi-Werte für die yi-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 xv 1 oder xw 1 ist. Weiterhin gilt Sv xv  2 Sv 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. 25.03.2017 Kapitel 1

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 MjM ablaufen Job j hat Bearbeitungszeit tj Jede Maschine kann höchstens einen Job gleichzeitig bearbeiten Erinnerung: Last von Maschine i: Li = jJ(i) tj Makespan L = maxi Li Aufgabe: finde Jobzuweisung, die Makespan minimiert 25.03.2017 Kapitel 12

Approximation durch Relaxion Sei xI,j Zeit, die Maschine i mit Job j zubringt. ILP X: min L s. d. i xi,j = tj für alle jJ j xi,j  L für alle iM xi,j{0,tj} für alle jJ und iMj xi,j = 0 für alle jJ und iMj LP Xrel: xi,j  0 für alle jJ und iMj 25.03.2017 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 25.03.2017 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 25.03.2017 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 25.03.2017 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 25.03.2017 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. 25.03.2017 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 Li von Maschine i aus zwei Komponenten: Blättern: jJ(i), j Blatt tj = jJ(i), j Blatt xi,j  jJ(i) xi,j  L  L* Vätern: tparent(i)  L* Also ist die Gesamtlast Li2L* für alle i. 25.03.2017 Kapitel 12

Übersicht Notation Arithmetisierung von Problemen Approximation durch Relaxion Die Ganzzahligkeitslücke Dualität 25.03.2017 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 ID sei X ein äquivalentes ILP und sei Xrel das relaxierte Programm zu X. Dann ist OPT(Xrel) OPT(X) die Ganzzahligkeitslücke der Relaxierung. g = sup ID 25.03.2017 Kapitel 1

Die Ganzzahligkeitslücke Max-SAT: Betrachte die Boolesche Formel f=(x1x2)(x1x2)(x1x2)(x1x2) 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 g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 g4/3. 25.03.2017 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 Approximationsalgo A für VC wissen, dass g2. 25.03.2017 Kapitel 1

Die Ganzzahligkeitslücke Set Cover Problem: Gegeben eine Sammlung S={S1,…,Sm} von Teilmengen von V (d.h. i Si = V), finde eine minimale Sammlung ScovS, so dass SScov S = V ist. Das Set Cover Problem ist NP-hart. Das ILP zu Set Cover ist eine Verallgemeinerung des ILPs zu VC. 25.03.2017 Kapitel 1

Die Ganzzahligkeitslücke ILP X zu Set Cover: minimiere Si xi unter der Bedingung, dass Si:vSi xi  1 für alle vV 0xi1 für alle i{1,…,m} und xi ganzzahlig LP Xrel: minimiere Si x´i unter der Bedingung, dass Si:vSi x´i  1 für alle vV 0x´i1 für alle i{1,…,m} 25.03.2017 Kapitel 1

Die Ganzzahligkeitslücke 5.8 Satz: Für die Ganzzahligkeitslücke g gilt g  ½ log n. Beweis: Da g nicht konstant ist, müssen wir eine undendliche Familie von Instanzen konstruieren. Sei kIN und V={ u | u{0,1}k, u0k} Also ist n=|V|=2k-1 Für jedes b{0,1}k, b0k, sei Sb = { u | i=1..k(uibi)=1 } : exklusiv oder 25.03.2017 Kapitel 1

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 Sb={ u | ub=1 } schreiben. Unsere Instanz: S={ Sb | b{0,1}k, b0k }. Also ist m=n=2k-1. |Sb|=2k-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 Xrel. Sie liefert den Wert 2n/(n+1), also OPT(Xrel)  2n/(n+1) 25.03.2017 Kapitel 1

Die Ganzzahligkeitslücke Sei l<k und betrachte beliebige Auswahl X={Sb(1),…,Sb(l)} von l Gruppen. Sei M die (lk)-Matrix, die aus den Zeilen b(1),…,b(l) besteht. Das Gleichungssystem Mu=0 hat über GF[2] mindestens eine von der 0-Folge verschiedene Lösung u. Also ist uV(X) und X keine Überdeckung. Damit enthält jede Überdeckung mindestens k Mengen, also OPT(S) = OPT(X)  k = log(n+1). Für die Ganzzahligkeitslücke gilt also: g  OPT(X)/OPT(Xrel)  ½ log n. 25.03.2017 Kapitel 1

Übersicht Notation Arithmetisierung von Problemen Approximation durch Relaxion Die Ganzzahligkeitslücke Dualität 25.03.2017 Kapitel 1

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. 25.03.2017 Kapitel 1

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

Dualität Allgemein und kompakt schreibt man: minimiere f(x)=cTx gemäß Ax  b x  0 Vektor x, der erfüllt: zulässige Lösung Für jedes y mit yi0 für alle i und jede zulässige Lösung x gilt yTAx  yTb rowi[A]: ite Zeile der Matrix A rowi[A]x  bi: ite Nebenbedingung des LPs 25.03.2017 Kapitel 1

Dualität Werden nun yj-Werte gewählt, so dass yTA  cT ist, dann gilt für alle zulässigen Lösungen x: f(x) = cTx  yTAx  yTb D.h. yTb ist eine untere Schranke für den Wert der optimalen Lösung. In unserem Beispiel ergibt die Forderung yTA  cT die drei Bedingungen 2y1 – y2  1 y1  3 y2  1 25.03.2017 Kapitel 1

Dualität Wir können z.B. y1=0 und y2=1 wählen und erhalten dann, dass jede zulässige Lösung x mindestens den Wert 4 hat. Mit y1=1 und y2=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) = 3y1+4y2 gemäß 2y1 - y2  1 y1  3 y2  1 y1, y2  0 25.03.2017 Kapitel 1

Dualität Dieses lineare Programm heißt Dual des ursprünglichen LPs, das Primal genannt wird. Allgemein erhalten wir also: Primal Dual minimiere f(x)=cTx maximiere g(x)=bTy gemäß Ax  b gemäß ATy  c x  0 y  0 25.03.2017 Kapitel 1

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

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 xopt und yopt optimale Lösungen des Primals bzw. Duals. Dann ist f(xopt) = g(yopt). 25.03.2017 Kapitel 1

Dualität Um das Dual algorithmisch ausnutzen zu können, brauchen wir einige weitere Erkenntnisse. Sei pj=rowj[A]x – bj das, was zu viel ist, damit die jte Bedingung des Primals scharf wird. pj wird primaler Schlupf genannt Ähnlich ist si=ci-rowi[AT]y das, was fehlt, um die ite Nebenbedingung des Duals scharf zu machen. si wird dualer Schlupf genannt 25.03.2017 Kapitel 1

Dualität Betrachten wir nochmal unser Beispiel: Erste Nebenbedingung: x1+x2-3  0. Also gilt wegen y10 auch y1(x1+x2-3)  0 Allgemein: yj pj = yj (rowj[A]x – bj)  0 Ebenso: sixi= (ci-rowi[AT]y) xi  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 yj(rowj[A]x – bj) = 0 und (ci-rowi[AT]y) xi = 0 für alle i und j. Alternativ: yj > 0  rowj[A]x = bj (a) xi > 0  rowi[AT]y = ci (b) 25.03.2017 Kapitel 1

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

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. 25.03.2017 Kapitel 1

Dualität Einsatz im Algorithmenentwurf: Dual Fitting Es wird eine zulässige duale Lösung y für Yrel 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 yj 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. 25.03.2017 Kapitel 1

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 Yrel konstruiert, die mit x in Beziehung steht. Damit hoffen wir zeigen zu können, dass f(x)  ag(y) ist. Ist das immer der Fall, dann ist der Algorithmus wegen Satz 5.11 a-kompetitiv. 25.03.2017 Kapitel 1

Set Cover und Dualität S={S1,…,Sm}: Instanz zu Set Cover xi: Indikatorvariable zu Si Primal X Dual Yrel minimiere Si=1..m xi maximiere Sj=1..n yj gemäß Si:ujSi xi 1 ujV gemäß Sj:ujSi yj 1 SiS xi{0,1} i{1,…,m} 0yj1 j{1,…,n} Zunächst wollen wir den Dual Fitting Ansatz demonstrieren. 25.03.2017 Kapitel 1

Set Cover und Dualität Entwurf: Dual Fitting Algorithmus DualPurSC bestimme optimale Lösung y zu Yrel for i:=1 to m do if (ite Bedingung des Duals scharf) then xi:=1 // also xi= Sj:ujSi yj else xi:=0 gib (x1,…,xm) aus 25.03.2017 Kapitel 1

Set Cover und Dualität 5.12 Satz: Die Ausgabe von DualPurSC ergibt eine Über-deckung der relativen Güte DS (DS: maximales Vorkommen eines Knotens in den Mengen in S ). Beweis: Angenommen, es gibt ein Element uj, das nicht überdeckt ist. Dann wäre für jedes SiS mit ujSi die Variable xj=0 (sonst wäre uj überdeckt). Das kann aber wegen der if-Anfrage nur passieren, wenn für alle SiS mit ujSi gilt, dass Sj:ujSi yj <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 Yrel optimal ist. Die Ausgabe ist also korrekt. 25.03.2017 Kapitel 1

Set Cover und Dualität Beweis (Fortsetzung): Für jedes i mit xi=1 gilt Sj:ujSi yj = 1. Also gilt: DualPurSC(S) = Si=1..m xi = Si: xi=1 1 = Si: xi=1 Sj:ujSi yj  DS Sj=1..n yj (*) = DSOPT(Yrel)  DSOPT(S) (**) Bei (*) wird benutzt, dass jedes yj in höchstens DS Nebenbedingungen vorkommen kann. (**) gilt wegen Satz 5.11 25.03.2017 Kapitel 1

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

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 Yrel braucht y dabei nicht zu sein. Das führt zu folgendem Algorithmus. 25.03.2017 Kapitel 1

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

Set Cover und Dualität 5.13 Satz: Die Ausgabe von PrimalDualSC_I ergibt eine Überdeckung der relativen Güte DS. 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. 25.03.2017 Kapitel 1

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 uj gibt es große Freiheiten, die PrimalDualSC_I nicht optimal ausnutzt. Besser wäre es, wenn nach einer Gruppe Si gesucht wird, die möglichst viele unüberdeckte Elemente uj abdeckt. Den vorhandenen dualen Schlupf kann man dann gleichmäßig auf alle in der iten Nebenbedingung vorkommenden yj verteilen, die noch keinen Wert zugewiesen bekommen hatten. In der Tat erweist sich dieses Verfahren als erfolgreich. Im folgenden sei H(n) = Si=1..n 1/i. Es ist H(n)  ln n +1. Wir definieren GS = maxi |Si| 25.03.2017 Kapitel 1

Set Cover und Dualität Algorithmus PrimalDualSC_II for i:=1 to m do xi:=0 C:=  // enthält schon überdeckte Elemente while CV do bestimme i mit maximalem |Si\C| xi:=1 for alle ujSi\C do preis[uj]:=1/|Si\C| // damit xi=1 und SujSi\C preis[uj]=1 yj:=preis[uj]/H(GS) // d.h. H(GS)yj = preis[uj] C:=CSi gib (x1,…,xm) aus 25.03.2017 Kapitel 1

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(GS). Die Laufzeit ist O(nm). Beweis: Laufzeit: klar 25.03.2017 Kapitel 1

Set Cover und Dualität Beweis (Fortsetzung): Um Satz 5.11 anwenden zu können, zeigen wir zunächst, dass die yj 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 Si={uj1,…,ujk}, wobei die Elemente aus Si in der Reihenfolge uj1,…,ujk durch den Algorithmus überdeckt werden. Beachte, dass k  GS ist. Wir schauen nun auf die Runde, in der ujl überdeckt wird. Wäre Si die Gruppe, die in der Runde gewählt wird, wären neben ujl 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 ujl. 25.03.2017 Kapitel 1

Set Cover und Dualität Beweis (Fortsetzung): Also ist preis[ujl]  1/(k-l+1) und damit yjl  1/H(GS)  1/(k-l+1) Nun habe wir für die ite Nebenbedingung des Duals Sl=1..k yjl  1/H(GS)  Sl=1..k 1/(k-l+1) = H(k)/H(GS)  1 die damit erfüllt ist. Für die Ausgabeüberdeckung gilt weiterhin: PrimalDualSC_II(S) = Si=1..m xi = Sl=1..n preis(uj) (*) = H(GS) Sl=1..n yj  H(GS) OPT(S) (**) Dabei wird in (*) genutzt, dass i:xi=1 Si = V ist. In (**) wird Satz 5.11 angewandt. 25.03.2017 Kapitel 1

Fragen? 25.03.2017 Kapitel 1