Approximations- algorithmen
Einf¨uhrung Grundlagen Methoden zum Entwurf Approximationsklassen Reduktion und Vollst¨andigkeit
Approximationsalgorithmen
Jan Johannsen
Vorlesung im Sommersemester 2007
Approximations- algorithmen
Einf¨uhrung
Grundlagen Methoden zum Entwurf Approximationsklassen Reduktion und Vollst¨andigkeit
Einordnung
Algorithmik
I Entwurf und
I Analyse vonAlgorithmen
Komplexit¨atstheorie
I Analyse der Komplexit¨at vonProblemen
I Einteilung inKlassen¨ahnlicher Komplexit¨at
I Untersuchung der Struktur der Klassen
Approximations- algorithmen
Einf¨uhrung
Grundlagen Methoden zum Entwurf Approximationsklassen Reduktion und Vollst¨andigkeit
Analyse von Algorithmen
Analyse des Verbrauchs an Ressourcen
I Zeit
I Speicher
I . . .
Abh¨angig von der Gr¨oße des Input
I Komplexit¨at imworst case
Asymptotische Analyse – vernachl¨assigt
I konstante Faktoren
I endliche Anfangsst¨ucke
Approximations- algorithmen
Einf¨uhrung
Grundlagen Methoden zum Entwurf Approximationsklassen Reduktion und Vollst¨andigkeit
Komplexit¨ at von Problemen
Obere Schranken
I durch Angabe eines Algorithmus
I und dessen Analyse
Untere Schranken
I durch Analyse des Problems
I Beweis, dass jeder effizientere Algorithmus versagt
Beispiel:Sortieren
I HeapSort, MergeSort brauchenO(nlogn)Vergleiche
I untere Schranke:Ω(nlogn)Vergleiche
I Komplexit¨at:Θ(nlogn)
Approximations- algorithmen
Einf¨uhrung
Grundlagen Methoden zum Entwurf Approximationsklassen Reduktion und Vollst¨andigkeit
Problemtypen
Problem: Erreichbarkeit
Instanz: GraphG, Eckens,t. L¨osung: Weg vons nach t.
Entscheidung: Gibt es einen Weg von snach t ? Suche: Finde einen Weg von s nacht.
Optimierung: Finde einen k¨urzesten Weg vonsnach t.
Z¨ahlen: Bestimme dieAnzahlder Wege vons nacht.
Approximations- algorithmen
Einf¨uhrung
Grundlagen Methoden zum Entwurf Approximationsklassen Reduktion und Vollst¨andigkeit
Optimierungsprobleme
Eigenschaften:
I mehrere potentielle L¨osungen zu jedem Input
I mit Kosten- / Nutzenmaß versehen
I gesucht: L¨osung mit minimalen Kosten / maximalem Nutzen
Beispiele:
I k¨urzeste Wege
I Travelling Salesperson
I Scheduling
I . . .
Approximations- algorithmen
Einf¨uhrung
Grundlagen Methoden zum Entwurf Approximationsklassen Reduktion und Vollst¨andigkeit
Approximation
Viele Optimierungsprobleme sind NP-schwer
I effizienter Algorithmus nur, wenn P=NP
I nur exponentielle Algorithmen zuroptimalenL¨osung
Deshalb:Approximationsalgorithmen
I effizient
I liefern eine nicht notwendig optimale L¨osung
I Abweichung vom Optimum a priori abzusch¨atzen
Approximations- algorithmen
Einf¨uhrung
Grundlagen Methoden zum Entwurf Approximationsklassen Reduktion und Vollst¨andigkeit
Approximierbarkeit
NP-schwere Optimierungsprobleme unterscheiden sich bzgl. ihrerApproximierbarkeit:
I es gibt beliebig gute Approximationsalgorithmen
I es gibt Approximationsalgorithmen einer gewissen G¨ute, aber keine besseren.
I es gibt ¨uberhaupt keine guten Approximationsalgorithmen
Ziele:
I Methoden zum Entwurf
I Grundlagen zur Untersuchung dieser Unterschiede
Approximations- algorithmen
Einf¨uhrung
Grundlagen Methoden zum Entwurf Approximationsklassen Reduktion und Vollst¨andigkeit
Ubersicht ¨
Einf¨uhrung Grundlagen
Methoden zum Entwurf von Approximationsalgorithmen Approximationsklassen
Reduktion und Vollst¨andigkeit
Approximations- algorithmen
Einf¨uhrung Grundlagen Komplexit¨at Optimierung Komplexit¨at von Op- timierungsproblemen Methoden zum Entwurf Approximationsklassen Reduktion und Vollst¨andigkeit
Ubersicht ¨
Einf¨uhrung Grundlagen
Komplexit¨at von Entscheidungsproblemen Optimierungsprobleme
Komplexit¨at von Optimierungsproblemen
Methoden zum Entwurf von Approximationsalgorithmen Approximationsklassen
Reduktion und Vollst¨andigkeit
Approximations- algorithmen
Einf¨uhrung Grundlagen Komplexit¨at Optimierung Komplexit¨at von Op- timierungsproblemen Methoden zum Entwurf Approximationsklassen Reduktion und Vollst¨andigkeit
Komplexit¨ atsklassen
Entscheidungsproblem ist gegeben durch:
I Menge von InstanzenI
I Teilmenge der positiven InstanzenY ⊆I Beispiel:SAT
I ISAT = Formeln in KNF
I YSAT = erf¨ullbare Formeln Formel in KNF F =C1∧. . .∧Cm
Klausel C=a1∨. . .∨ak Literal a=x odera=¬x. Komplexit¨atsklassen
P⊆NP⊆PSPACE⊆EXP
Approximations- algorithmen
Einf¨uhrung Grundlagen Komplexit¨at Optimierung Komplexit¨at von Op- timierungsproblemen Methoden zum Entwurf Approximationsklassen Reduktion und Vollst¨andigkeit
NP als Verifikation von L¨ osungen
ProblemP ist in NP gdw.
I es gibt MengeWP, ProblemQ∈P und Polynomq()mit
I IQ sind Paare(x,w)mitx∈IP,w ∈WP und|w|≤q(|x|)
I ∀x ∈IP : x ∈YP ↔ ∃w ∈WP : (x,w)∈YQ
Beispiel:SAT
I WSAT = Bewertung der Variablen
I (F, α)∈YR gdw.αerf¨ullt F
Approximations- algorithmen
Einf¨uhrung Grundlagen Komplexit¨at Optimierung Komplexit¨at von Op- timierungsproblemen Methoden zum Entwurf Approximationsklassen Reduktion und Vollst¨andigkeit
Reduktion
Funktionf reduziertP auf Q, wenn
I f :IP→IQ in polynomieller Zeit berechenbar
I f¨ur allex ∈IP istx ∈YP ↔f(x)∈YQ
P≤mQ falls es eine Reduktionf vonP auf Q gibt.
Eigenschaft:
Ist Q∈P undP≤mQ, dann auchP∈P.
Approximations- algorithmen
Einf¨uhrung Grundlagen Komplexit¨at Optimierung Komplexit¨at von Op- timierungsproblemen Methoden zum Entwurf Approximationsklassen Reduktion und Vollst¨andigkeit
Vollst¨ andigkeit
Definition:
I ProblemP ist NP-schwer, fallsQ≤mP f¨ur alleQ∈NP.
I P ist NP-vollst¨andig, falls Q∈NP und NP-schwer.
Q NP-vollst¨andig ⇒ Q ∈P gdw. P=NP
Satz (Cook)
SAT ist NP-vollst¨andig.
Problem 3-SAT: Jede KlauselC=a1∨a2∨a3
Satz (Cook)
3-SAT ist NP-vollst¨andig.
Approximations- algorithmen
Einf¨uhrung Grundlagen Komplexit¨at Optimierung Komplexit¨at von Op- timierungsproblemen Methoden zum Entwurf Approximationsklassen Reduktion und Vollst¨andigkeit
Lineare Programmierung
ProblemILP (Integer Linear Programming)
Instanz: MengeI von linearen Ungleichungen ¨uberZ in Variablenz1, . . . ,zn
Frage: Gibt es eine L¨osung vonI inZ
d.h., Zuweisung von Wertenz1, . . . ,zn∈Z so dass UngleichungenI gelten.
Satz
ILP ist NP-vollst¨andig.
ProblemLP:
Wie ILP, aber gesucht sind L¨osungen inQ. Im Gegensatz zum obigen Satz istLP in P.
Approximations- algorithmen
Einf¨uhrung Grundlagen Komplexit¨at Optimierung Komplexit¨at von Op- timierungsproblemen Methoden zum Entwurf Approximationsklassen Reduktion und Vollst¨andigkeit
Graphenprobleme in NP
ProblemVC
Instanz: GraphG = (V,E), k∈N
Frage: Gibt es vertex coverU mit|U|≤k ? Vertex cover:U ⊆V mite∩U 6=∅ f¨ur allee∈E. ProblemClique
Instanz: GraphG = (V,E), k∈N Frage: Gibt es CliqueU mit|U|≥k ? Clique:U ⊆V mit{x,y}∈E f¨ur allex,y ∈U.
ProblemHC
Instanz: GraphG = (V,E)
Frage: Gibt es einen Hamilton-Kreis inG ?
Hamilton-Kreis: Kreis, der jedesv ∈V genau einmal besucht.
Approximations- algorithmen
Einf¨uhrung Grundlagen Komplexit¨at Optimierung Komplexit¨at von Op- timierungsproblemen Methoden zum Entwurf Approximationsklassen Reduktion und Vollst¨andigkeit
NP-vollst¨ andige Graphenprobleme
Offensichtlich: VC,Clique,HC sind in NP.
Reduktionen (Karp)
I 3-SAT ≤mVC
I VC ≤mClique
I VC ≤mHC
Also: VC,Clique,HC sind NP-vollst¨andig.
Approximations- algorithmen
Einf¨uhrung Grundlagen Komplexit¨at Optimierung Komplexit¨at von Op- timierungsproblemen Methoden zum Entwurf Approximationsklassen Reduktion und Vollst¨andigkeit
Optimierungsprobleme
EinOptimierungsproblem ist gegeben durch:
I MengeI vonInstanzen.
I F¨ur jedesx ∈I eine MengeS(x)von potentiellenL¨osungen.
I Funktionm, die jedem(x,y)mitx∈I undy∈S(x) einMaßm(x,y)zuordnet.
I Ziel goal∈{min,max}.
Eine L¨osungy∗∈S(x)heißtoptimal, wenn
m(x,y∗) =m∗(x) :=goal{m(x,y) ; y ∈S(x)} S∗(x) :={y∗∈S(x) ; m(x,y∗) =m∗(x)}
Approximations- algorithmen
Einf¨uhrung Grundlagen Komplexit¨at Optimierung Komplexit¨at von Op- timierungsproblemen Methoden zum Entwurf Approximationsklassen Reduktion und Vollst¨andigkeit
Beispiele
Minimum Path
Instanz: ungerichteter GraphG = (V,E), Eckens,t L¨osung: Weg vons nacht
Maß: L¨ange des Weges Minimum Vertex Cover
Instanz: ungerichteter GraphG = (V,E) L¨osung: vertex coverU ⊆V
Maß: |U| Maximum Clique
Instanz: ungerichteter GraphG = (V,E) L¨osung: CliqueU⊆V
Maß: |U|
Approximations- algorithmen
Einf¨uhrung Grundlagen Komplexit¨at Optimierung Komplexit¨at von Op- timierungsproblemen Methoden zum Entwurf Approximationsklassen Reduktion und Vollst¨andigkeit
Problemvarianten
Zu einem Optimierungsproblem Psind definiert:
konstruktives Problem PC: Gegeben x∈I, finde y∈S∗(x).
Auswertungsproblem PE: Gegeben x∈I, berechne m∗(x).
Entscheidungsproblem PD: Gegeben x∈I undk ∈N, ist goal(m∗(x),k) =m∗(x)?
Beispiele:
P =Minimum Vertex Cover PD = VC.
P =Maximum Clique PD =Clique
Approximations- algorithmen
Einf¨uhrung Grundlagen Komplexit¨at Optimierung Komplexit¨at von Op- timierungsproblemen Methoden zum Entwurf Approximationsklassen Reduktion und Vollst¨andigkeit
Die Klassen NPO und PO
Ein Optimierungsproblem ist in der Klasse NPO, falls 1. I ist in P.
2. f¨urx∈I undy ∈S(x)ist|y|≤q(|x|)
3. f¨urx,y mit|y|≤q(|x|)ist die Frage “y∈S(x)?” in P 4. mist in polynomieller Zeit berechenbar.
Eigenschaft: P in NPO =⇒ PD in NP
P∈NPO ist in der Klasse PO, falls
das konstruktive Problem PC in polynomieller Zeit l¨osbar ist.
Analog: Pin PO =⇒ PD in P
Approximations- algorithmen
Einf¨uhrung Grundlagen Komplexit¨at Optimierung Komplexit¨at von Op- timierungsproblemen Methoden zum Entwurf Approximationsklassen Reduktion und Vollst¨andigkeit
Turing-Reduktion
Eine Turing-Reduktion vonP aufQ ist
I Algorithmus, derP l¨ost
I benutzt Subroutine zur L¨osung vonQ
I Laufzeit des Algorithmusohne Subroutine ist polynomiell P≤T Q falls eine Turing-Reduktion vonPauf Q gibt.
Eigenschaft:
Ist Q∈P undP≤T Q, dann auchP∈P.
Approximations- algorithmen
Einf¨uhrung Grundlagen Komplexit¨at Optimierung Komplexit¨at von Op- timierungsproblemen Methoden zum Entwurf Approximationsklassen Reduktion und Vollst¨andigkeit
Relationen zwischen Problemvarianten
Offensichtlich: PD ≤T PE ≤T PC
Fakt
F¨ur alle Optimierungsprobleme P∈NPO ist PE ≤T PD. Beweis:
Da|m(x,y)|≤p(|x|)f¨ur alley∈S(x), istm∗(x)<2p(|x|) bin¨are Suche findet m∗(x)in ZeitO(p(|x|).
Approximations- algorithmen
Einf¨uhrung Grundlagen Komplexit¨at Optimierung Komplexit¨at von Op- timierungsproblemen Methoden zum Entwurf Approximationsklassen Reduktion und Vollst¨andigkeit
Relationen zwischen Problemvarianten
Beispiel
F¨urP=Maximum CliqueistPC ≤T PE. F¨urG= (V,E)definiere
I N(v) :={u∈V; {u,v}∈E}
I G(v): induzierter Teilgraph auf{v}∪N(v)
I G−(v): induzierter Teilgraph aufN(v) Algorithmus:
MaxClique(G)
k:=Maximum CliqueE(G) if k =1 then return any v ∈V
finde v∈V mitMaximum CliqueE(G(v)) =k return{v}∪MaxClique(G−(v))
Approximations- algorithmen
Einf¨uhrung Grundlagen Komplexit¨at Optimierung Komplexit¨at von Op- timierungsproblemen Methoden zum Entwurf Approximationsklassen Reduktion und Vollst¨andigkeit
Relationen zwischen Problemvarianten
ObPC ≤T PD allgemein gilt, ist unbekannt.
Satz
PC ≤T PD gilt, falls PD NP-vollst¨andig ist.
Approximations- algorithmen
Einf¨uhrung Grundlagen Komplexit¨at Optimierung Komplexit¨at von Op- timierungsproblemen Methoden zum Entwurf Approximationsklassen Reduktion und Vollst¨andigkeit
NP-schwere Optimierungsprobleme
Definition
ProblemP in NPO ist NP-schwer, fallsQ≤T PC f¨ur alleQ ∈NP.
Eigenschaft:
PD NP-vollst¨andig =⇒ P ist NP-schwer.
P6=NP =⇒ PO6=NPO
Approximations- algorithmen
Einf¨uhrung Grundlagen Komplexit¨at Optimierung Komplexit¨at von Op- timierungsproblemen Methoden zum Entwurf Approximationsklassen Reduktion und Vollst¨andigkeit
Ein NP-schweres Problem
Minimum Traveling Salesperson Instanz: nSt¨adtec1, . . . ,cn,
DistanzmatrixD∈Nn×n
L¨osung: Tour: Permutation ci1, . . . ,cin der St¨adte
Maß: Kosten
Xn−1 k=1
D(ik,ik+1) +D(in,i1)
Satz: Minimum Traveling Salespersonist NP-schwer.
Approximations- algorithmen
Einf¨uhrung Grundlagen Methoden zum Entwurf
Greedy Sequentielle Algorithmen Lokale Suche Lineare Programmierung Dynamische Programmierung Approximationsklassen Reduktion und Vollst¨andigkeit
Ubersicht ¨
Einf¨uhrung Grundlagen
Methoden zum Entwurf von Approximationsalgorithmen Greedy-Algorithmen
Sequentielle Algorithmen Lokale Suche
Lineare Programmierung Dynamische Programmierung Approximationsklassen
Reduktion und Vollst¨andigkeit
Approximations- algorithmen
Einf¨uhrung Grundlagen Methoden zum Entwurf
Greedy Sequentielle Algorithmen Lokale Suche Lineare Programmierung Dynamische Programmierung Approximationsklassen Reduktion und Vollst¨andigkeit
Greedy-Algorithmen
Geeignet, wenn L¨osungMengevon Objekten
I L¨osung wird schrittweise aufgebaut
I in jedem Schritt wird ein Element aufgenommen
I Greedy-Strategie: w¨ahle in jedem Schritt so, dass Profit maximiert wird.
Liefert optimale L¨osung, wennMatroid-struktur
In anderen F¨allen: approximative L¨osung.
Approximations- algorithmen
Einf¨uhrung Grundlagen Methoden zum Entwurf
Greedy Sequentielle Algorithmen Lokale Suche Lineare Programmierung Dynamische Programmierung Approximationsklassen Reduktion und Vollst¨andigkeit
Das Spannbaum-Problem
F¨urG= (V,E)istT ⊆E einSpannbaum, wenn (V,T)zusammenh¨angendund azyklischist.
Minimum Spanning Tree
Instanz: zusammenh¨angender GraphG = (V,E), Kantengewichtew :E→N
L¨osung: SpannbaumT ⊆E Maß: Gesamtgewicht X
e∈T
w(e)
Approximations- algorithmen
Einf¨uhrung Grundlagen Methoden zum Entwurf
Greedy Sequentielle Algorithmen Lokale Suche Lineare Programmierung Dynamische Programmierung Approximationsklassen Reduktion und Vollst¨andigkeit
Ein klassischer Greedy-Algorithmus
Satz
Minimum Spanning Tree ist in PO.
Dies zeigt beispielsweise der Greedy-Algorithmus vonKruskal:
sortiereE ={e1, . . . ,em}so dassw(e1)≤w(e2)≤. . .≤w(en) T :=∅
for i=1 to n do let ei={xi,yi}
ifxi inT nicht mityi verbunden thenT :=T ∪{ei}
Approximations- algorithmen
Einf¨uhrung Grundlagen Methoden zum Entwurf
Greedy Sequentielle Algorithmen Lokale Suche Lineare Programmierung Dynamische Programmierung Approximationsklassen Reduktion und Vollst¨andigkeit
Das Rucksackproblem
Maximum Knapsack
Instanz: MengeX ={x1, . . . ,xn},
f¨ur jedesxi∈X: Gewichtai∈N Wert pi ∈N Kapazit¨atb∈N
L¨osung: TeilmengeY ⊆X mit X
xi∈Y
ai≤b Maß: Gesamtwert X
xi∈Y
pi
Approximations- algorithmen
Einf¨uhrung Grundlagen Methoden zum Entwurf
Greedy Sequentielle Algorithmen Lokale Suche Lineare Programmierung Dynamische Programmierung Approximationsklassen Reduktion und Vollst¨andigkeit
Greedy Algorithmus f¨ ur Maximum Knapsack
AlgorithmusGreedy Knapsack:
input X,~p,~a,b sortiereX so dass p1
a1
≥p2 a2
≥ · · · ≥ pn an
Y :=∅
for i:=1 to n do if ai ≤b then
Y :=Y ∪{xi} b:=b−ai return Y
Approximations- algorithmen
Einf¨uhrung Grundlagen Methoden zum Entwurf
Greedy Sequentielle Algorithmen Lokale Suche Lineare Programmierung Dynamische Programmierung Approximationsklassen Reduktion und Vollst¨andigkeit
Analyse von Greedy Knapsack
Satz
F¨ur jedes k∈Ngibt es Instanzen vonMaximum Knapsackmit:
ist mGreedyder Wert der L¨osung, die Greedy Knapsack findet, und m∗der optimale Wert, so gilt: m∗≥k·mGreedy.
Beweis: Betrachte die Instanz mit
I X ={x1, . . . ,xn+1}
I pi=ai =1 f¨uri≤n
I an+1=b=kn+1
I pn+1=b−1
Dann istm∗=b−1=kn, abermGreedy=n.
Approximations- algorithmen
Einf¨uhrung Grundlagen Methoden zum Entwurf
Greedy Sequentielle Algorithmen Lokale Suche Lineare Programmierung Dynamische Programmierung Approximationsklassen Reduktion und Vollst¨andigkeit
Verbesserter Algorithmus f¨ ur Maximum Knapsack
Seiµdasjenigei mitpi =max{pj,j≤n}. Algorithmus:
Berechne L¨osungY mitGreedy Knapsack ifm(Y)<pµ
thenY :={xµ} returnY
Satz
Sei mA(x)der Wert der vom Algorithmus berechneten L¨osung.
Dann gilt: m∗(x)<2mA(x).
Approximations- algorithmen
Einf¨uhrung Grundlagen Methoden zum Entwurf
Greedy Sequentielle Algorithmen Lokale Suche Lineare Programmierung Dynamische Programmierung Approximationsklassen Reduktion und Vollst¨andigkeit
Greedy Algorithmus f¨ ur Handlungsreisende
AlgorithmusNearest Neighbor: W¨ahle ci1 beliebig
F¨ur1≤k ≤n−1:
w¨ahle als cik+1 ein cj ∈/{ci1, . . . ,cik} mit D(cik,cj)minimal.
Minimum Metric Traveling Salesperson:
Spezialfall vonMinimum Traveling Salesperson, wo gilt:
Symmetrie: D(i,j) =D(j,i)
Dreiecksungleichung: D(i,j)≤D(i,k) +D(k,j)
Approximations- algorithmen
Einf¨uhrung Grundlagen Methoden zum Entwurf
Greedy Sequentielle Algorithmen Lokale Suche Lineare Programmierung Dynamische Programmierung Approximationsklassen Reduktion und Vollst¨andigkeit
Performance von Nearest Neighbor
Lemma: Seix eine Instanz vonMinimum Metric Traveling Salesperson, und`:{c1, . . . ,cn}→Qmit
D(i,j)≥min(`(ci), `(cj)) f¨ur alleci6=cj
`(ci)≤1
2m∗(x) f¨ur alleci Dann gilt:
Xn i=1
`(ci)≤ 1
2(dlogne+1)m∗(x).
Satz
Sei mNN(x)die L¨ange der vom Algorithmus Nearest Neighbor gefundenen Tour. Dann gilt:
mNN(x)≤1
2(dlogne+1)·m∗(x).
Approximations- algorithmen
Einf¨uhrung Grundlagen Methoden zum Entwurf
Greedy Sequentielle Algorithmen Lokale Suche Lineare Programmierung Dynamische Programmierung Approximationsklassen Reduktion und Vollst¨andigkeit
Sequentielle Algorithmen
Geeignet f¨ur Partitionierungsprobleme:
I L¨osung ist Partition einer gegebenen Menge.
Sequentieller Algorithmus:
I sortiert MengeX ={x1, . . . ,xn}
I baut PartitionP sequentiell auf:
P:=
{x1} fori:=2 ton
fallsxi zu einemp∈Pzugef¨ugt werden kann P:=P\
p ∪ p∪{xi} sonst
P:=P∪ {xi}
Approximations- algorithmen
Einf¨uhrung Grundlagen Methoden zum Entwurf
Greedy Sequentielle Algorithmen Lokale Suche Lineare Programmierung Dynamische Programmierung Approximationsklassen Reduktion und Vollst¨andigkeit
Ein Scheduling-Problem
Minimum Scheduling on Identical Machines Instanz: MengeT ={t1, . . . ,tn}von Auftr¨agen,
f¨ur jedesti ∈T: Dauer `i∈N Anzahlp∈Nvon Prozessoren
L¨osung: schedule: Funktionf :T →{1, . . . ,p} Maß: makespan: max
1≤i≤p
X
f(tj)=i
`j
Approximations- algorithmen
Einf¨uhrung Grundlagen Methoden zum Entwurf
Greedy Sequentielle Algorithmen Lokale Suche Lineare Programmierung Dynamische Programmierung Approximationsklassen Reduktion und Vollst¨andigkeit
List Scheduling
Finish time: Ai(j) := X
k≤j f(tk)=i
`k
AlgorithmusList Scheduling: for j:=1 to n do
assign tj to processor i with Ai(j−1) minimal
Satz
F¨ur jede Instanz x findet List Scheduling eine L¨osung mit makespan mLS(x), so dass
mLS(x)≤(2− 1
p)·m∗(x).
Approximations- algorithmen
Einf¨uhrung Grundlagen Methoden zum Entwurf
Greedy Sequentielle Algorithmen Lokale Suche Lineare Programmierung Dynamische Programmierung Approximationsklassen Reduktion und Vollst¨andigkeit
Verbesserter Algorithmus
RegelLPT (largest processing time):
Sortiere T so dass `1≥`2≥. . .≥`n, dann List Scheduling.
Satz
F¨ur jede Instanz x liefert LPT eine L¨osung mit makespan mLPT(x)so dass
mLPT(x)≤(4 3− 1
3p)·m∗(x).
Approximations- algorithmen
Einf¨uhrung Grundlagen Methoden zum Entwurf
Greedy Sequentielle Algorithmen Lokale Suche Lineare Programmierung Dynamische Programmierung Approximationsklassen Reduktion und Vollst¨andigkeit
Ein Packungsproblem
Minimum Bin Packing
Instanz: Multimenge{a1, . . . ,an}⊂Qmit 0<ai ≤1.
L¨osung: PartitionB1, . . . ,Bk vonA mit X
ai∈Bj
ai ≤1 f¨ur allej.
Maß: Anzahl der Bl¨ockek
Approximations- algorithmen
Einf¨uhrung Grundlagen Methoden zum Entwurf
Greedy Sequentielle Algorithmen Lokale Suche Lineare Programmierung Dynamische Programmierung Approximationsklassen Reduktion und Vollst¨andigkeit
Einfacher sequentieller Algorithmus f¨ ur Bin Packing
AlgorithmusNext Fit k :=1; B1:=∅ for i:=1 to n do
if ΣBk +ai ≤1
then Bk :=Bk ∪{ai} else k :=k+1; Bk :={ai}
Satz
F¨ur alle Instanzen x ist
mNext Fit(x)≤2m∗(x)
Approximations- algorithmen
Einf¨uhrung Grundlagen Methoden zum Entwurf
Greedy Sequentielle Algorithmen Lokale Suche Lineare Programmierung Dynamische Programmierung Approximationsklassen Reduktion und Vollst¨andigkeit
Etwas besserer Algorithmus
AlgorithmusFirst Fit k :=1; B1:=∅ for i:=1 to n do
flag := true for j :=1 to k do
if ΣBj+ai≤1 and flag
then Bj :=Bj∪{ai}; flag := false if flag then k :=k+1; Bk :={ai}
Satz
F¨ur alle Instanzen x ist
mFirst Fit(x)≤1.7m∗(x) +2
Approximations- algorithmen
Einf¨uhrung Grundlagen Methoden zum Entwurf
Greedy Sequentielle Algorithmen Lokale Suche Lineare Programmierung Dynamische Programmierung Approximationsklassen Reduktion und Vollst¨andigkeit
Verbesserung durch Sortieren
AlgorithmusFirst Fit Decreasing
SortiereAso dassa1≥a2≥. . .≥an, dann wendeFirst Fit an.
Satz
F¨ur alle Instanzen x ist mFFD(x)≤ 3
2m∗(x) +1.
OptimaleSchranke: mFFD(x)≤11
9 m∗(x) +4.
Nachteil: Algorithmus istoffline,
d.h. arbeitet erst, wenn gesamter Input gelesen.
Approximations- algorithmen
Einf¨uhrung Grundlagen Methoden zum Entwurf
Greedy Sequentielle Algorithmen Lokale Suche Lineare Programmierung Dynamische Programmierung Approximationsklassen Reduktion und Vollst¨andigkeit
F¨ arbungen von Graphen
Definition: EineF¨arbungeines Graphen G = (V,E)ist χ:V →{1, . . . ,k}mit
{u,v}∈E ⇒ χ(u)6=χ(v).
Minimum Coloring
Instanz: ungerichteter GraphG = (V,E) L¨osung: F¨arbungχ:V →{1, . . . ,k}
Maß: k
Approximations- algorithmen
Einf¨uhrung Grundlagen Methoden zum Entwurf
Greedy Sequentielle Algorithmen Lokale Suche Lineare Programmierung Dynamische Programmierung Approximationsklassen Reduktion und Vollst¨andigkeit
Sequentielles F¨ arben von Graphen
for i:=1 to n χ(vi) :=mink ∈/
χ(u) ;u∈N(vi)∩{v1, . . . ,vi−1}
Satz
Sei k die Anzahl der Farben, die der sequentielle Algorithmus bei Reihenfolge v1,v2, . . . ,vn verwendet. Dann ist
k ≤ max
1≤i≤nmin(degvi,i−1).
Reihenfolge, die dies minimiert:
Decreasing Degree: degv1≥degv2≥. . .≥degvn.
Approximations- algorithmen
Einf¨uhrung Grundlagen Methoden zum Entwurf
Greedy Sequentielle Algorithmen Lokale Suche Lineare Programmierung Dynamische Programmierung Approximationsklassen Reduktion und Vollst¨andigkeit
Bessere Reihenfolge
Smallest Last: vi hat minimalen Grad im induzierten Subgraphen auf{v1. . .vi}.
Satz
Smallest Last f¨arbt jeden planarenGraphen mit≤6Farben.
Beweis benutzt denSatz von Euler:
In planaren Graphen G = (V,E)ist|E|≤3|V|−6.
Approximations- algorithmen
Einf¨uhrung Grundlagen Methoden zum Entwurf
Greedy Sequentielle Algorithmen Lokale Suche Lineare Programmierung Dynamische Programmierung Approximationsklassen Reduktion und Vollst¨andigkeit
Lokale Suche
Anfangsl¨osung F¨ur jedesx ∈I: y0(x)∈S(x) Nachbarschaftsstruktur F¨ur jedesy ∈S(x) N(x,y)⊆S(x)
AlgorithmusLocal Search y :=y0(x)
solange esy0∈N(x,y)mitm(x,y0)besser alsm(x,y)gibt setzey :=y0
Probleme:
I Wie findet man bessere Nachbarl¨osungen effizient?
I Wie gut ist ein lokales Optimum?
Approximations- algorithmen
Einf¨uhrung Grundlagen Methoden zum Entwurf
Greedy Sequentielle Algorithmen Lokale Suche Lineare Programmierung Dynamische Programmierung Approximationsklassen Reduktion und Vollst¨andigkeit
Beispiel f¨ ur Lokale Suche
ProblemMaximum Cut
Instanz: GraphG = (V,E)
L¨osung: PartitionV =V0∪V1mitV0∩V1=∅
Maß: Anzahl der Kanten{x,y}mitx∈V0 undy∈V1.
Anfangsl¨osung: (∅,V)
Nachbarn von(V0,V1): (V00,V10)mit
|V0|−|V00| =1
Satz
F¨ur ein lokales Maximum(V0,V1)in dieser Nachbarschafts- struktur mit Maß mN gilt mN ≥12m∗.
Approximations- algorithmen
Einf¨uhrung Grundlagen Methoden zum Entwurf
Greedy Sequentielle Algorithmen Lokale Suche Lineare Programmierung Dynamische Programmierung Approximationsklassen Reduktion und Vollst¨andigkeit
Lineare Programmierung
Einlineares Programm ist Instanz des Optimierungsproblems:
Linear Programming
Instanz: A∈Rm×n, b∈Rm, c∈Rn L¨osung: x∈Rn mitAx ≥b undx≥~0 Maß: cTx
Notation:
minimize cTx subject to Ax≥b
x≥0
Approximations- algorithmen
Einf¨uhrung Grundlagen Methoden zum Entwurf
Greedy Sequentielle Algorithmen Lokale Suche Lineare Programmierung Dynamische Programmierung Approximationsklassen Reduktion und Vollst¨andigkeit
LP-Algorithmen
Satz
Linear Programmingist in PO.
Algorithmen:
I Simplex (Dantzig, 1947)
in der Praxis gut, aber im worst case exponentiell
I Ellipsoid-Methoide (Khachiyan, 1979)
polynomiell, aber nicht praktisch anwendbar
I Interior-Point-Methode (Karmarkar, 1984) polynomiell, auch praktisch effizient
Approximations- algorithmen
Einf¨uhrung Grundlagen Methoden zum Entwurf
Greedy Sequentielle Algorithmen Lokale Suche Lineare Programmierung Dynamische Programmierung Approximationsklassen Reduktion und Vollst¨andigkeit
Aquivalente Varianten des Problems ¨
I Gleichungen und unbeschr¨ankte Variablen minimize cTx
subject to Ax≥b Ax=b
x1≥0, . . . ,xr ≥0
I nur Gleichungen minimize cTx subject to Ax=b
x≥0
I Maximierung
maximize cTx subject to Ax≤b
x≥0
Approximations- algorithmen
Einf¨uhrung Grundlagen Methoden zum Entwurf
Greedy Sequentielle Algorithmen Lokale Suche Lineare Programmierung Dynamische Programmierung Approximationsklassen Reduktion und Vollst¨andigkeit
Runden der L¨ osung eines linearen Programms
Integer Linear Programmingist NP-schwer viele Probleme in NPO darauf reduzierbar.
Idee:
I Lockern der Anforderung “ganzzahlig”
I lineares Programm — effizient l¨osbar
I optimale rationale L¨osung
I Runden liefert ganzzahlige L¨osung
I nicht otwendig optimal, aber oft gute Approximation
Approximations- algorithmen
Einf¨uhrung Grundlagen Methoden zum Entwurf
Greedy Sequentielle Algorithmen Lokale Suche Lineare Programmierung Dynamische Programmierung Approximationsklassen Reduktion und Vollst¨andigkeit
Vertex Cover mittels LP
Minimum Weighted Vertex Cover
Instanz: ungerichteter GraphG = (V,E), Gewichtci f¨urvi ∈V.
L¨osung: vertex coverU ⊆V
Maß: P
vi∈Uci Lineares ProgrammPVC:
minimize Pn i=1cixi
subject to xi+xj ≥1 f¨ur alle{vi,vj}∈E xi≥0
Optimale L¨osungx1∗, . . . ,xn∗ vertex coverU :={vi;xi∗≥12}.
Satz
F¨ur das Maß mLP dieses vertex cover U gilt mLP ≤2m∗.
Approximations- algorithmen
Einf¨uhrung Grundlagen Methoden zum Entwurf
Greedy Sequentielle Algorithmen Lokale Suche Lineare Programmierung Dynamische Programmierung Approximationsklassen Reduktion und Vollst¨andigkeit
Dualit¨ at
m∗≤t wird durch L¨osungx mitcTx≤t bezeugt.
Frage:Wie kannm∗≥t bezeugt werden ? Beispiel:
minimize 7x1+x2+5x3
subject to x1−x2+3x3≥10 5x1+2x2−x3≥6 x1,x2,x3≥0 Koeffizientenvergleich zeigt:m∗≥10
7x1+x2+5x3≥x1−x2+3x3≥10 Besser:m∗≥16
7x1+x2+5x3≥x1−x2+3x3+5x1+2x2−x3≥16
duales Programm
Approximations- algorithmen
Einf¨uhrung Grundlagen Methoden zum Entwurf
Greedy Sequentielle Algorithmen Lokale Suche Lineare Programmierung Dynamische Programmierung Approximationsklassen Reduktion und Vollst¨andigkeit
Duales Programm
ProgrammP Duales PogrammD
UngleichungP
jai,jxj ≥bi Variableyi mityi≥0 GleichungP
jai,jxj=bi Variableyi Variablexj mitxj≥0 UngleichungP
iai,jyi ≤cj
Variablexj GleichungP
iai,jyi≤cj
minimizecTx maximizebTy
Dualit¨ atstheorem
F¨ur ProgrammP und dualesD gilt
I P hat optimale L¨osung gdw.D hat optimale L¨osung.
I Istx∗ optimal f¨urPund y∗ f¨urD, so istcTx∗=bTy∗.
Approximations- algorithmen
Einf¨uhrung Grundlagen Methoden zum Entwurf
Greedy Sequentielle Algorithmen Lokale Suche Lineare Programmierung Dynamische Programmierung Approximationsklassen Reduktion und Vollst¨andigkeit
Complementary Slackness Condition
Schwaches Dualit¨ atstheorem
F¨ur L¨osungenx f¨urP undy f¨urDgilt:
cTx ≥bTy
L¨osungen x f¨urP undy f¨urD sind optimal gdw. die folgenden Bedingungen gelten:
Primary complementary slackness condition (CSC) xj =0 oder X
i
ai,jyi =cj f¨ur allej Dual complementary slackness condition (CSC):
yi =0 oder X
j
ai,jxj=bi f¨ur allei
Approximations- algorithmen
Einf¨uhrung Grundlagen Methoden zum Entwurf
Greedy Sequentielle Algorithmen Lokale Suche Lineare Programmierung Dynamische Programmierung Approximationsklassen Reduktion und Vollst¨andigkeit
Primal-Dual-Schema
GegebenI ganzzahliges LP, seiD das duale Programm.
Halte zwei Vektoren:
I x potentielle L¨osung f¨urI
I y L¨osung f¨urD, nicht notwendig optimal.
x,y werden iterativ verbessert, bisx L¨osung vonI ist.
Dabei gilt stets die Primal CSC xj =0 oder P
iai,jyi=cj f¨ur allej und eine abgeschw¨achte Dual CSC
yi =0 oder P
jai,jxj≤α·bi f¨ur allei Algorithmus terminiert, wen x L¨osung vonI ist. Dann gilt:
P
jcjxj =P
j
P
iai,jyi xj =P
i
P
jai,jxj
yi ≤α·P
ibiyi≤αm∗
Approximations- algorithmen
Einf¨uhrung Grundlagen Methoden zum Entwurf
Greedy Sequentielle Algorithmen Lokale Suche Lineare Programmierung Dynamische Programmierung Approximationsklassen Reduktion und Vollst¨andigkeit
Primal-Dual Algorithmus f¨ ur Vertex Cover
Duales ProgrammDVC: maximize X
{vi,vj}∈E
yi,j
subject to X
j:{vi,vj}∈E
yi,j ≤ci (Ci) yi,j ≥0
Algorithmus:
~y:=0; U :=∅
whileU not a vertex cover find {vi,vj}not covered increaseyi,j
until (Ci) or (Cj) tight if (Ci) is tight then
U:=U∪{vi} else
U:=U∪{vj}
Satz
Der obige Algorithmus findet ein vertex cover mit Maß mPD derart dass mPD ≤2m∗.
Approximations- algorithmen
Einf¨uhrung Grundlagen Methoden zum Entwurf
Greedy Sequentielle Algorithmen Lokale Suche Lineare Programmierung Dynamische Programmierung Approximationsklassen Reduktion und Vollst¨andigkeit
Das Multicut-Problem
Minimum Multicut
Instanz: ungerichteter GraphG = (V,E), Kapazit¨atce f¨ure∈E,
Menge{(s1,t1), . . . ,(sk,tk)}⊆V×V mitsi 6=ti. L¨osung: SchnittC⊆E mit:
si undti in(V,E\C)nicht verbunden
Maß: P
e∈Cce
Satz
Minimum Multicutist NP-schwer. f¨ur B¨aume der H¨ohe 1.
Beweis: Reduktion vonVertex Cover.
Approximations- algorithmen
Einf¨uhrung Grundlagen Methoden zum Entwurf
Greedy Sequentielle Algorithmen Lokale Suche Lineare Programmierung Dynamische Programmierung Approximationsklassen Reduktion und Vollst¨andigkeit
Multicut in B¨ aumen
Seipi der eindeutige Pfad vonsi nachti inG
Lineares Programm:
minimize P
e∈Ecexe
subject to P
e∈pixe ≥1 f¨uri =1. . .k xe≥0
Bemerke: Es gibt L¨osungen, die besser sind als jeder Multicut.
Approximations- algorithmen
Einf¨uhrung Grundlagen Methoden zum Entwurf
Greedy Sequentielle Algorithmen Lokale Suche Lineare Programmierung Dynamische Programmierung Approximationsklassen Reduktion und Vollst¨andigkeit
Primal-Dual Algorithmus f¨ ur Minimum Multicut
Duales Programm:
maximize P
i≤kyi subject to P
i:pi3eyi ≤ci f¨ure∈E yi≥0
Interpretation: yi ist Fluss vonsi nachti.
Fall k=1: Dualit¨atstheorem =^ Max Flow - Min Cut
Approximations- algorithmen
Einf¨uhrung Grundlagen Methoden zum Entwurf
Greedy Sequentielle Algorithmen Lokale Suche Lineare Programmierung Dynamische Programmierung Approximationsklassen Reduktion und Vollst¨andigkeit
Complementary slackness conditions
Prim¨are CSC:
xe6=0 ⇒ X
i:pi3e
yi =ce f¨ur allee∈E d.h. nur Kanten ausgew¨ahlt, durch die maximaler Fluss geht.
Abgeschw¨achte duale CSC:
yi6=0 ⇒ X
e∈pi
xe≤2
d.h. auf Pfad mit Fluss>0 h¨ochstens zwei Kanten ausgew¨ahlt.
Approximations- algorithmen
Einf¨uhrung Grundlagen Methoden zum Entwurf
Greedy Sequentielle Algorithmen Lokale Suche Lineare Programmierung Dynamische Programmierung Approximationsklassen Reduktion und Vollst¨andigkeit
Der Algorithmus
W¨ahle einv ∈V als Wurzel
sortiereV ={v1, . . . ,vn}absteigend nach Tiefe y :=~0
C :=∅
f¨uri:=1, . . . ,n:
f¨ur jedesj mitlca(sj,tj) =vi
findee∈pj mitce−P
`y` minimal yj :=ce−P
`<iy`
f¨uge alle Kantene zuC hinzu, f¨ur die jetztP
`y`=ce seiC ={e1, . . . ,em}geordnet wie zugef¨ugt
f¨uri:=m, . . . ,1
fallsC\ {ej}Multicut ist C :=C\ {ej}
Approximations- algorithmen
Einf¨uhrung Grundlagen Methoden zum Entwurf
Greedy Sequentielle Algorithmen Lokale Suche Lineare Programmierung Dynamische Programmierung Approximationsklassen Reduktion und Vollst¨andigkeit
Analyse des Algorithmus
Lemma:Sei(si,ti)mityi >0, und seilca(sj,tj) =v.
Dann ist auf jedem der Pfade
I vonsi zu v
I vonv zuti
h¨ochstens eine Kante inC.
Satz
F¨ur den Wert mPD des gefundenen Multicut gilt mPD≤2m∗.
Approximations- algorithmen
Einf¨uhrung Grundlagen Methoden zum Entwurf
Greedy Sequentielle Algorithmen Lokale Suche Lineare Programmierung Dynamische Programmierung Approximationsklassen Reduktion und Vollst¨andigkeit
Dynamische Programmierung
I Zerlegungdes Problems in kleinere, gleichartige Teilprobleme.
I L¨osung ist zusammengesetzt aus den L¨osungen der Teilprobleme.
I Aber: Teilprobleme sind nicht unabh¨angig, sondern haben ihrerseitsgemeinsame Teilprobleme.
rekursives Divide-and-Conquer-Verfahren l¨ost dieselben Teilprobleme immer wieder.
L¨osung: Rekursion mitMemoisierung, oder besser:
Dynamische Programmierung:
Bottom-Up-Berechnung der L¨osungen gr¨oßerer Probleme aus denen kleinerer, die dabei in einerTabelle
gespeichert werden.
Approximations- algorithmen
Einf¨uhrung Grundlagen Methoden zum Entwurf
Greedy Sequentielle Algorithmen Lokale Suche Lineare Programmierung Dynamische Programmierung Approximationsklassen Reduktion und Vollst¨andigkeit
Beispiel: Matrizen-Kettenmultiplikation
Problem: nMatrizenM1, . . . ,Mn sollen multipliziert werden, wobeiMi∈Rni×ni+1
Aufwand h¨angt von der Klammerung ab.
BezeichneMi..j das ProduktMi·Mi+1·. . .·Mj,
undm[i,j]die minimale Zahl von Multiplikationen f¨urMi..j.
I Optimale Klammerung vonM1..n istM1..k·Mk+1..n, f¨ur optimale Klammerungen vonM1..k und Mk+1..n.
I Deshalb gilt:
m[i,j] =
0 fallsi=j
min
i≤k<jm[i,k] +m[k+1,j] +nink+1nj+1 sonst.
Approximations- algorithmen
Einf¨uhrung Grundlagen Methoden zum Entwurf
Greedy Sequentielle Algorithmen Lokale Suche Lineare Programmierung Dynamische Programmierung Approximationsklassen Reduktion und Vollst¨andigkeit
Teilproblemstruktur von Knapsack
Sei P:=Pn
i=1pi und A:=Pn i=1ai
Teilproblem Π(k,p)f¨urk ≤nundp≤P:
L¨osung: M⊆{x1, . . .xk}mitP
xi∈Mai≤b und P
xi∈Mpi =p Ziel: minimiereP
xi∈Mai
Definition
M(k,p)optimale L¨ousung vonΠ(k,p) S(k,p) :=P
xi∈M(k,p)ai