Approximations-Algorithmen - Algorithms and Complexity Group

Werbung
Approximations-Algorithmen
Institut für Computergraphik und Algorithmen
Abteilung für Algorithmen und Datenstrukturen
186.102 Sommersemester 2004, 2h VU
Motivation:
– Bereits viele einfache Optimierungsprobleme wie
z.B. Routenplanung, Zeiteinteilung und
Packungsprobleme können nicht effizient exakt
gelöst werden.
– Gute Näherungsmethoden, das heißt
Approximations-Algorithmen, werden gesucht.
– Aber was ist „gut“?
Beispiel: Bin Packing
gegeben: n Pakete mit unterschiedl. Gewichten
und Container (bins) mit fester Kapazität.
gesucht: Zuordnung der Pakete in möglichst
wenige Container.
Analyse: Wie gut oder wie schlecht sind einfache
und kompliziertere Näherungsverfahren ?
Zeit: drei Blöcke zu je drei Tagen:
– 10.3.-12.3., 24.3.-26.3., 21.4.-23.4.
– Mittwoch, Donnerstag 15:00-18:00
– Freitag 13:00-16:00
Ort: Seminarraum 186, Favoritenstr. 9, 5.Stock
Sprechstunde:
Während der drei Blöcke bin ich am Institut erreichbar.
Kontakt in Graz: Tel.: 0316-380-3496
[email protected]
Ablauf:
Die VU besteht aus Vorlesung und Übungen,
die aber zeitlich flexibel integriert abgehalten werden.
Zur Vorlesung gibt es teilweise ein Folienskriptum im WWW:
www.ads.tuwien.ac.at/teaching/ss04/186102.html
Voraussetzungen:
– Algorithmen und Datenstrukturen 1
– Freude an der Analyse von Algorithmen
Beurteilung:
– aktive Mitarbeit
– Bearbeitung von Übungsbeispielen (Übungsblätter)
– Mündliche Abschlußprüfung
(vorgesehener Termin: 23.4., weitere Termin nach
Vereinbarung)
Vortragender:
a.o.Univ.-Prof. Dr. Ulrich Pferschy
Universität Graz
Institut für Statistik und Operations Research
Inhalt:
– Welche Probleme ?
• kombinatorische Optimierung
• TSP, scheduling, bin-packing, vertex
covering,…
– Wie mißt man die Qualität der Approximation?
• Definitionen der Approximationsgüte
– Wie gut sind einfache Heuristiken?
• Worst-case Analyse von intuitiven
Algorithmen
– Vorgabe der Abweichung vom Optimum?
• ε - Approximationsschemata
Literatur:
D.S. Hochbaum, Approximation algorithms for NP-hard
problems, PWS Publishing Company, 1997.
V.V. Vazirani, Approximation Algorithms, Springer, 2001.
G. Ausiello et al., Complexity & Approximation, Springer, 1999.
J. Hromkovic, Algorithmics for hard problems, Springer, 2001.
Lecture Notes aus dem Internet von
R. Motwani (Standford University)
D.P. Williamson (IBM Almaden Research Center)
M.X. Goemans (MIT)
Approximationsalgorithmen
Ulrich Pferschy 1
Approximationsalgorithmen
Approximation im Sinne der Analysis:
Satz von Weierstrass: (1815-1897)
Sei f eine stetige Funktion auf [a, b].
Dann gibt es zu jedem ε > 0 ein Polynom Pε mit:
max |f (x) − Pε(x)| < ε
x∈[a,b]
Numerische Mathematik:
Numerical Recipes in C++
www.nr.com
Approximationsalgorithmen
Ulrich Pferschy 2
Approximation von diskreten,
kombinatorischen Problemen:
Betrachtung einzelner Objekte, Identitäten
oder abstrakter Elemente mit ganzzahligen Daten
Motiviert aus praktischen Problemstellungen
Klassische Probleme der diskreten Optimierung:
• Scheduling
• Graph-Probleme (Überdeckung, Färbung, Partition)
• Netzwerkprobleme
• Routen- und Tourenplanung
• TSP
• Packungs- und Zuschnittprobleme
• ...
Approximationsalgorithmen
Einleitung 3
• Multi-Prozessor Scheduling:
gegeben:
n jobs/Aufträge, jeder mit Bearbeitungszeit pi,
m Maschinen
Problem:
Ordne jeden job einer Maschine zu, sodaß der
Gesamt-Fertigstellungszeitpunkt minimal ist.
• Bin Packing Problem (BP):
gegeben:
n Objekte, jedes mit Gewicht ai ∈ (0, 1],
beliebig viele Container/bins mit Kapazität 1
Problem:
Packe alle Objekte in minimale Anzahl von bins
Approximationsalgorithmen
Einleitung 4
• Rucksackproblem / Knapsack Problem (KP):
gegeben:
n Objekte, jedes mit Profit pi und Gewicht wi,
ein Rucksack/Container/bin mit Kapazität c
Problem:
Wähle eine Teilmenge von Objekten mit
maximalem Profit und Gewicht ≤ c.
• Subset Sum Problem (SSP):
Spezialfall des Rucksackproblems
gegeben:
n Objekte, jedes mit Gewicht wi,
ein Rucksack/Container/bin mit Kapazität c
Problem:
Wähle eine Teilmenge von Objekten mit
maximalem Gewicht ≤ c.
Approximationsalgorithmen
Einleitung 5
• Maximum Cut Problem (Max Cut):
gegeben:
Graph (V, E) mit Kantengewichten wij
für jede Kante (i, j) ∈ E.
Problem:
Finde eine Knotenmenge S ⊆ V mit maximalem
P
i∈S,j6∈S wij (Kanten zwischen S und V \ S).
• Minimal spannender Baum /
Minimum Spanning Tree (MST):
gegeben:
Graph (V, E) mit Kantengewichten dij = dji
für jede Kante (i, j) ∈ E.
Problem:
Finde einen Baum, der alle Knoten enthält
mit minimalem Gesamtgewicht.
Approximationsalgorithmen
Einleitung 6
• (Symmetrisches) Rundreiseproblem /
Traveling Salesperson Problem (TSP):
gegeben:
n Städte mit allen (symmetrischen) Entfernungen.
Problem:
Finde die kürzeste Rundreise,
die alle n Städte besucht.
• Variante: Minimaler Hamiltonscher Kreis:
gegeben:
Graph (V, E) mit Kantengewichten dij = dji
für jede Kante (i, j) ∈ E.
Problem:
Finde einen Hamiltonschen Kreis mit minimalem
Gesamtgewicht.
Approximationsalgorithmen
Einleitung 7
• Set Covering Problem (SC):
gegeben:
Grundmenge M ,
Familie von Teilmengen {S1, . . . , Sm}, Si ⊆ M ,
Bewertung wi für jede Menge Si.
Problem:
Finde eine Auswahl der Teilmengen mit minimalem
Gesamtgewicht, sodaß jedes Element aus M in
einer der ausgewählten Teilmengen enthalten ist.
• Vertex Cover (VC):
gegeben:
Graph (V, E)
Problem:
Finde eine minimale Knotenmenge C ⊆ V , sodaß
für jede Kante (i, j) entweder i ∈ C oder j ∈ C.
Approximationsalgorithmen
Einleitung 8
• Knotenfärbung von Graphen/Graph Colouring:
gegeben:
Graph (V, E), beliebig viele Farben.
Problem:
Ordne jedem Knoten eine Farbe zu, sodaß
Knoten, die durch eine Kante verbunden sind,
verschiedene Farben haben und eine minimale
Gesamtzahl von Farben verwendet werden.
• Kantenfärbung von Graphen:
gegeben:
Graph (V, E), beliebig viele Farben.
Problem:
Ordne jeder Kante eine Farbe zu, sodaß
Kanten mit gemeinsamen Endknoten
verschiedene Farben haben und eine minimale
Gesamtzahl von Farben verwendet werden.
Approximationsalgorithmen
Einleitung 9
Erwünscht: Optimale Lösung
N P-Vollständigkeit:
=⇒ Bei fast allen “ interessanten” Problemen gibt es
kein effizientes optimales Lösungsverfahren,
d.h. keinen Algorithmus mit polynomialer Laufzeit
1. Optimale Lösung durch “ intelligente” Enumeration
• Branch & Bound
• IP-Formulierung, Branch & Cut
• Dynamisches Programmieren
• ...
2. Verzicht auf Optimalität =⇒ Approximation
Bestimmt wird eine zulässige Lösung.
Qualität der Lösung ist i.A. unbekannt.
Unterscheide:
Suchverfahren (local search, Metaheuristiken, etc.)
konstruktive Verfahren
Approximationsalgorithmen
Bewertung 10
Bewertung von
Approximationsalgorithmen
1. empirische Tests
2. average-case Analyse
3. worst-case Analyse
Approximationsalgorithmen
Bewertung 11
Güte eines Algorithmus A für ein
Optimierungsproblem:
Unterscheide:
Problem vs. Problem-Instanz I
(Näherungs-)Algorithmus A liefert Lösungswert A(I)
(unbekannte) Optimallösung wäre Opt(I)
Definition:
Algorithmus A ist ein Approximationsalgorithmus
wenn A für jede Instanz I eine zulässige Lösung liefert.
Definition:
Ein Approximationsalgorithmus A hat eine absolute
Gütegarantie k, (k > 0), wenn für jede Instanz I gilt:
|Opt(I) − A(I)| ≤ k
Bemerkung:
Def. gilt für Maximierungs- und Minimierungsprobleme.
Approximationsalgorithmen
Bewertung 12
Graph Colouring (Knoten):
Von besonderem Interesse ist die Färbung von planaren
Graphen.
Satz: (Four Colour Theorem: Appel, Haken, Koch 1977)
Jeder planare Graph ist 4-färbbar.
Satz: Ein planarer Graph ist genau dann 2-färbbar, wenn er
bipartit ist.
Satz: Das Entscheidungsproblem
“Ist ein gegebener planarer Graph 3-färbbar”
ist N P-vollständig.
Eine 5-Färbung eines planaren Graphen ist relativ einfach
zu bestimmen. Auch die 4-Färbung ist in O(n2) möglich
(Robertson et al. 1996), aber sehr aufwendig.
=⇒ Färbung von planaren Graphen kann mit einer absoluten
Gütegarantie ≤ 2 approximiert werden.
Approximationsalgorithmen
Bewertung 13
Graph Colouring (Kanten):
Sei ∆(G) der maximale Grad eines Knoten in G.
Satz von Vizing:
Jeder Graph G ist kantenfärbbar mit ∆(G) oder ∆(G) + 1
Farben.
=⇒ Kantenfärbung von beliebigen Graphen kann mit einer
absoluten Gütegarantie von 1 approximiert werden.
=⇒ Ist die absolute Gütegarantie das perfekte Konzept??
Negatives Resultat:
Satz: Es gibt keinen polynomiellen Algorithmus für das
Rucksackproblem (KP) mit einer absoluten Gütegarantie k,
für irgendein k > 0 (wenn P6= N P).
Approximationsalgorithmen
Bewertung 14
Maximierung:
Definition:
Ein Approximationsalgorithmus A für ein Maximierungsproblem hat eine relative Gütegarantie k,(0 < k < 1),
wenn für jede Instanz I gilt:
A(I) ≥ k · Opt(I)
kurz: A ist ein k–Approximationsalgorithmus.
Betrachte die relative Abweichung:
Opt(I) − A(I)
≤ ε ⇐⇒ A(I) ≥ (1 − ε)Opt(I)
Opt(I)
Ein Approximationsalgorithmus A mit relativer Abweichung
ε ist ein (1 − ε)–Approximationsalgorithmus.
Approximationsalgorithmen
Bewertung 15
Minimierung:
Definition:
Ein Approximationsalgorithmus A für ein Minimierungsproblem hat eine relative Gütegarantie k, (k > 1),
wenn für jede Instanz I gilt:
A(I) ≤ k · Opt(I)
auch hier: A ist ein k–Approximationsalgorithmus.
wiederum die relative Abweichung:
A(I) − Opt(I)
≤ ε ⇐⇒ A(I) ≤ (1 + ε)Opt(I)
Opt(I)
Ein Approximationsalgorithmus A mit relativer Abweichung
ε ist ein (1 + ε)–Approximationsalgorithmus.
Zusatz:
Eine relative/absolute Gütegarantie eines Algorithmus A ist
scharf, wenn es eine Instanz I gibt, sodaß die entsprechende
Ungleichung mit Gleichheit erfüllt ist.
Oder wenn es eine Folge von Instanzen gibt, sodaß die
Gleichheit im Grenzwert gilt.
Bewertung 16
Approximationsalgorithmen
Definition: (Minimierung)
Ein Approximationsalgorithmus A für ein Minimierungsproblem hat eine asymptotische Gütegarantie k,
(k > 1), wenn es eine Konstante d gibt, sodaß für jede
Instanz I gilt:
A(I) ≤ k · Opt(I) + d
oder technischer:
k=
lim
Opt(I)→∞
A(I)
sup
I Opt(I)
Approximationsalgorithmen
Einfache Algorithmen 17
• Multi-Prozessor Scheduling:
gegeben:
n jobs/Aufträge, jeder mit Bearbeitungszeit pi,
m Maschinen
Problem:
Ordne jeden job einer Maschine zu, sodaß der
Gesamt-Fertigstellungszeitpunkt minimal ist.
Algorithmus List-Scheduling (Graham):
`j := 0
Arbeitszeit von Maschine j = 1, .., m
for i := 1 to n do
jmin := arg min{`j }
ordne job i auf Maschine jmin an.
`jmin := `jmin + pi
end for
Gesamtzeit := max{`j }
List-Scheduling hat eine scharfe Gütegarantie von 2 − m1 .
Verbesserung: (LPT)
Longest-Processing Time List-Scheduling
Sortiere die jobs in absteigender Reihenfolge.
1
(LPT) hat eine scharfe Gütegarantie von 43 − 3m
.
Approximationsalgorithmen
Einfache Algorithmen 18
• Bin Packing Problem (BP):
gegeben:
n Objekte, jedes mit Gewicht ai ∈ (0, 1],
beliebig viele bins mit Kapazität 1
Problem:
Packe alle Objekte in minimale Anzahl von bins
Naive Methode:
Algorithmus Next Fit (NF):
öffne das erste bin
for i := 1 to n do
wenn Objekt i in das offene bin paßt
packe es dort hinein
sonst
schließe das offene bin
öffne ein neues bin und packe Objekt i ein
end for
(NF) läuft in O(n) Zeit.
(NF) hat eine scharfe asymptotische Gütegarantie von 2.
Approximationsalgorithmen
Einfache Algorithmen 19
Algorithmus First Fit (FF) (Johnson et al.):
öffne das erste bin
for i := 1 to n do
betrachte die offenen bins der Reihe nach
packe Objekt i in das erste bin, wo es paßt
wenn es nirgends paßt
öffne ein neues bin und packe Objekt i ein
end for
(FF) läuft in O(n log n) Zeit.
(FF) hat eine scharfe asymptotische Gütegarantie von 1.7.
Verbesserung:
First Fit Decreasing (FFD) (Johnson)
Sortiere die Objekte in absteigender Reihenfolge.
(FFD) hat eine scharfe asymptotische Gütegarantie von
Varianten:
Best Fit, Worst Fit, Any Fit,....
11
9.
Approximationsalgorithmen
Einfache Algorithmen 20
• Allgemeines Rundreiseproblem (TSP):
gegeben:
n Orte mit allen paarweisen Entfernungen.
Problem:
Finde die kürzeste Tour durch alle n Orte.
Negatives Resultat:
Satz: Es gibt keinen polynomiellen Algorithmus für das allgemeine TSP mit einer Gütegarantie k, für irgendein k > 0
(wenn P6= N P).
• Rundreiseproblem mit Dreicksungleichung
(∆-TSP):
Zusatzbedingung: Für alle Tripel von Orten i, j, k gilt:
d(i, j) + d(j, k) ≥ d(i, k)
MST-Heuristik liefert Gütegarantie 2.
Christofides-Heuristik liefert Gütegarantie 3/2.
Approximationsalgorithmen
Einfache Algorithmen 21
∆-TSP Fortsetzung:
Einfüge-Heuristik:
(verwendbar auch ohne Dreiecksungleichung.)
Algorithmus Insertion:
repeat
(∗)
wähle einen Punkt k nicht auf der Tour
suche Kante (i, j) der Tour mit minimalen
Einfügekosten: d(i, k) + d(k, j) − d(i, j)
füge k zwischen i und j ein
until alle Punkte eingefügt
Auswahl von Punkt k:
nearest insertion
farthest insertion
cheapest insertion
random insertion
Approximationsalgorithmen
Einfache Algorithmen 22
Approximations-Resultate für Insertion:
Für jede Insertion-Regel gilt (Rosenkrantz et al.’77):
A(I) ≤ (log n + 1) Opt(I)
Es gibt Instanzen I und Insertion-Folgen mit
log n
A(I) ≥
Opt(I).
log log n
Nearest Insertion hat eine scharfe Gütegarantie von 2.
Wenn nearest insertion mit der konvexen Hülle beginnt,
verschlechtert sich die Gütegarantie auf 3 (Warburton’93).
Farthest Insertion:
In der Praxis besser, aber Gütegarantie ≥ 2.43
(Hurkens,’92), genaue Garantie unbekannt.
Random Insertion: (Azar’94)
Es gibt Instanzen I mit A(I) ≥
log log n
log log log n
Opt(I).
Approximationsalgorithmen
Einfache Algorithmen 23
Verbesserungs-Verfahren:
Algorithmus 2-Opt:
starte mit irgendeiner Tour
repeat
wähle 2 Kanten der Tour und entferne sie
füge die Teilstücke zu neuer Tour zusammen
Tour := min{neue Tour, alte Tour}
until keine Verbesserung möglich
Viele Varianten zur systematischen Durchführung.
Jede 2-optimale Tour ist kreuzungsfrei.
Für jede 2-optimale Tour T gilt (Chandra et al.’94):
T ≤ log n Opt
Es gibt 2-optimale Touren T mit
log n
T ≥
Opt.
log log n
• Euklidsches Rundreiseproblem:
Orte sind Punkte im R2:
Beliebig gute Approximation in polynomieller Zeit möglich.
Approximationsalgorithmen
Einfache Algorithmen 24
• Rucksackproblem/Knapsack Problem (KP):
gegeben:
n items, jedes mit Profit pi und Gewicht wi,
ein Rucksack/bin mit Kapazität c
Problem:
Wähle eine Teilmenge von items mit
maximalem Profit und Gewicht ≤ c.
Algorithmus einfacher Greedy:
Sortiere die items nach Effizienz:
p1
p2
pn
≥
≥
.
.
.
≥
w1
w2
wn
for i := 1 to n do
if item i paßt in den Rucksack
pack es ein
end for
Einfacher Greedy kann unbeschränkt schlecht werden.
Verbesserter Algorithmus Greedy:
Sei z E . . . der Wert des Rucksacks nach einfacher Greedy.
z G := max{z E , max{pi | i = 1, . . . , n}}
Greedy hat eine scharfe Gütegarantie von 1/2.
Approximationsalgorithmen
Einfache Algorithmen 25
Beachte: ein einziges “großes” item hat Haupteinfluß.
Verbesserung:
“Rate” das item mit größtem Profit in der Optimallösung.
=⇒ alle items durchprobieren.
Algorithmus G2/3:
for i := 1 to n do
packe item i in den leeren Rucksack
wende Greedy auf das Restproblem
mit Kapazität c − wi an
end for
z A := Maximum der n Rucksack-Lösungen
G2/3 hat eine scharfe Gütegarantie von 2/3.
Verallgemeinerung:
“Rate” die 2 items mit größtem Profit in der Optimallösung.
=⇒ alle Paare von items durchprobieren.
=⇒ scharfe Gütegarantie von 3/4.
Einfache Algorithmen 26
Approximationsalgorithmen
Weitere Verallgemeinerung:
“Rate” die ` items mit größtem Profit in der Optimallösung.
=⇒ alle `-Tupel von items durchprobieren.
=⇒ scharfe Gütegarantie von
`+1
`+2 .
Laufzeit:
n
`
`+1
Tupel
=⇒
O(n
)
viele
Greedy
Iterationen
=⇒
O(n
)
`
Verbesserung auf O(n`) möglich.
Herunterladen