Approximationsalgorithmen

Werbung
Approximationsalgorithmen
von Martin aumüller
TU-Ilmenau
Vorwort
Dieses Dokument enstand in der Vorlesung „Approximationsalgorithmen“ die von Prof. M.
Kunde gehalten wurde. Für Fragen, Kritik und Anregungen steht der Autor unter
mailto:[email protected] zur Verfügung.
3
Inhaltsverzeichnis
Vorwort . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
Inhaltsverzeichnis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
1 Einleitung
.. .. .. .. .. .. .. ... .. .. .. .. .. .. .. ... .. .. .. .. .. .. ... . 7
1.1 Beispiel „BINPACKING“ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
1.2 Beispiel „MAX3SAT“ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
1.3 Beispiel „TSP“ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
. .. .. .. ... .. .. .. .. .. .. ...
2 Grundlegende Definitionen und Methoden
2.1 Optimierungsproblem . . . . . . . . . . . . . . . . . . . .
2.2 Absolute Approximation . . . . . . . . . . . . . . . . . .
2.2.1 Graphfärbbarkeit . . . . . . . . . . . . . . . . . . . .
2.2.1.1 Knotenfärbung . . . . . . . . . . . . . . . . . .
GREEDYCOL . . . . . . . . . . . . . . . . . . .
Planare Graphen . . . . . . . . . . . . . . . . .
Algorithmus COLPLAN . . . . . . . . . . . .
2.2.1.2 Kantenfärbung beliebiger Graphen . . . . .
Algorithmus Faerbekanten(G) . . . . . . . . .
2.2.2 MAX-2BIN . . . . . . . . . . . . . . . . . . . . . . .
Algorithmus PACK(a1, , an , c) . . . . . . . .
2.2.3 „Unmöglichkeit“ einer absoluten Approximations
2.3 Relative Approximation . . . . . . . . . . . . . . . . . . .
2.3.1 Scheduling . . . . . . . . . . . . . . . . . . . . . . . .
M-Scheduling . . . . . . . . . . . . . . . . . . .
Listenscheduling(Graham) . . . . . . . . .
Algorithmus LIST . . . . . . . . . . . . . . . . .
Algorithmus LPT (Largest Processing Time)
2.3.2 Das metrische TSP . . . . . . . . . . . . . . . . . .
Algorithmus DTREE . . . . . . . . . . . . . . . .
Algorithmus CA . . . . . . . . . . . . . . . . . .
2.3.3 „Unmöglichkeit“ der relativen Approximation . .
2.4 Approximationsschemata . . . . . . . . . . . . . . . . . .
2.4.1 Multiprozessorscheduling . . . . . . . . . . . . . . .
Algorithmus LPTk . . . . . . . . . . . . . . . . .
2.4.2 Bemerkungen . . . . . . . . . . . . . . . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
11
12
12
13
13
13
13
14
15
15
16
17
18
18
18
18
18
19
20
21
21
22
23
23
23
24
3 Techniken . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
27
3.1 Die Greedy-Methode . . . . . . . . . . . . . . . . .
3.1.1 Greedy für das Rucksackproblem . . . . .
MAXIMUM RUCKSACK . . . . . . . . . . . .
Algorithmus GREEDY KNAPSACK(GK)
3.1.2 Independent Set . . . . . . . . . . . . . . . .
(MAX) INDEPENDET SET (IS) . . . . .
Algorithmus GREEDY-IS (GIS) . . .
3.1.3 Weiteres zum Greedy . . . . . . . . . . . . .
27
27
27
27
29
29
29
31
5
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
11
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
6
NEAREST NEIGHBOUR (NN) . . . . . . . . . . . . . . . . . .
3.2 Sequenzierung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.2.1 Partitionierungsprobleme . . . . . . . . . . . . . . . . . . . . .
First Fit Decreasing (FFD) . . . . . . . . . . . . . . .
3.2.2 Bemerkungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.3 Lokale Suche . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.3.1 Maximaler Schnitt . . . . . . . . . . . . . . . . . . . . . . . . . .
Algorithmus LS-CUT(G) . . . . . . . . . . . . . . . . . . . .
3.3.2 Bemerkungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.4 Lineare Optimierung als Basis . . . . . . . . . . . . . . . . . . . . . .
3.4.1 Runden von Lösungen eines linearen Programmes . . . . . .
(MINIMUM) WEIGHTED VERTEXCOVER(WVC) . . . . . . . .
Algorithmus ROUNDING WVC . . . . . . . . . . . . . . . . .
3.4.2 Primal-duale Algorithmen . . . . . . . . . . . . . . . . . . . . .
Algorithmus Primal-Dual Weighted Vertex Cover .
3.5 Randomisierte Approximationsalgorithmen . . . . . . . . . . . . .
Algortihmus Random Weighted Vertex Cover (RVC)
3.6 Dynamische Programmierung . . . . . . . . . . . . . . . . . . . . . .
3.6.1 Ein pseudo-polynomieller Algorithmus für KNAPSACK . . . .
Algorithmus RUCKSACK-DP (dynamic programming) . .
3.6.2 Ein FPAS für MAX-KNAPSACK . . . . . . . . . . . . . . . . . . .
Algorithmus Approxmations-Schema Knapsack (ASK)
Inhaltsverzeichnis
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
31
31
31
32
33
34
34
35
35
36
36
36
36
37
38
39
39
40
41
41
43
43
Kapitel 1
Einleitung
Es gibt in der theoretischen Informatik sehr schwierige Probleme, z.B.:
•
TSP
•
CLIQUE
•
KNAPSACK
bzw. die dazugehörigen Optimimierungsvarianten (min TSP, max CLIQUE, BINPACKING). Der Inhalt dieser Probleme sollte bekannt sein und kann, wenn benötigt, in der
Literatur nachgelesen werden.
Wir wissen, dass unter der Annahme P NP, keines der genannten Probleme einen
Lösungsalgorithmus mit polynomieller Laufzeit besitzt! Wir behandeln hier die Möglichkeit,
Algorithmen zu finden, die in polynomieller Zeit arbeiten und das Problem wenigstens näherungsweise lösen. Dazu werden Konzepte zur Klassifizierung von Optimierungsproblemen und
Approximationsverhalten, Entwurfs- und Analyseprinzipien von Approximationsalgorithmen und
Grenzen der (polynomiellen) Approximierbarkeit vorgestellt.
1.1 Beispiel „BINPACKING“
Problem: Packe n Stücke mit Größen a1, , an, 0 6 ai 6 C, in „ziemlich“ wenige Behälter (Bins)
der Kapazität C. D.h. der Input ist X = (a1, , an , C).
Beispiel 1.1.
X = (7, 3, 2, 5, 8, 6, 5, 4, 10)
B1
7 3
2 5 ! B2
8
! B3 ⇒ Unser Algorithmus benötigt 5 Behälter für das Problem - 3 sind nicht gefüllt.
6 4
B4
5
! B5
Uns interessiert OPT(x), die minimal mögliche Behälteranzahl .
Wop (X) = OPT(x) = 4
Unsere Algorithmus ist also nicht optimal, aber sehr nah an der optimalen Lösung. Wir
bezeichnen diesen Algorithmus mit SHF (somehow fit)
ALGORITHMUS SHF
for i=1 to n do
begin
1. Packe Stück i in irgendeinen nichtleeren Behälter, falls
dies möglich ist.
2. falls ai > Restvolumen in allen begonnen Kisten ⇒
packe i in neuen Behälter
end
Satz 1.2. Der Algorithmus
SHF benutzt weniger als 2 · OPT(X) Behälter.
7
8
Einleitung
Beweis. Seien WSHF (X) = k Behälter von SHF benutzt. Seien die Beladungen der Behälter b1,
b2, , bk > 0.
Es gilt:
1.
i j ⇒ bi + b j > C (k > 2), denn sei B j nach Bi gepackt werden und
bi + b j 6 C
⇒ Widerspruch zur Beladungsregel.
Sonderfall: k = 1 ⇒ OPT(X) = 1 = k ist optimal.
Wegen (1.1) gilt:
b1 + b2 > C
b2 + b3 > C
(1.1)
bk + b1 > C
k
X
2
bi > k · C und damit
i=1
k
X
S
,S =
bi und damit
C
i=1
C · OPT(X)
= 2 · OPT(X)
WSH F (X) = k < 2 ·
C
k < 2·
Man sagt dann: „Der Algorithmus SHF hat die Güte 2“.
1.2 Beispiel „MAX3SAT“
Die Eingabe von MAX3SAT ist die 3-KNF-Formel Φ = C1 ∧ ∧ Cr über die Variablenmenge
{X1, X2, , Xm }. In Klauseln Ci alle Variablen verschieden. Die Aufgabe besteht nun darin eine
Belegung T zu finden für X1, , Xm, so dass möglichst viele C j erfüllt sind, also T (C j ) = 1.
Optimaler Algorithmus für 3SAT:
OPT(Y ) = r ⇔ Φ ist erfüllbar.
Wieder gilt: Falls P NP gibt es keinen Algorithmus mit polynomieller Laufzeit, der die optimale Lösung bestimmt.
Ein möglicher Approximationsalgorithmus ist ein randomisierter Algorithmus.
1
Wähle T (Xi) ∈ {0, 1} zufällig (mit PROB(T (Xi) = 1) = 2 ).
C j = l j1 ∨ lj2 ∨ lj3, l ji ∈ {X1, X1, , Xm , Xm }
1
PROB(T (C j ) = 0) = PROB(T (l j1) = T (l j2) = T (lj3) = 0) = 8
⇒ PROB(T (C j ) 1 1) = 8
7
7
⇒ E(|{j |T (C j ) = 1}|) = 8 r
1.3 Beispiel „TSP“
Wir wandeln das eigentliche Minimierungsproblem in die Problemstellung: „Finde Tour mit nicht
zu großer Länge“.
Satz 1.3. Falls P NP, dann gibt es für das Problem
onsalgorithmus mit endlicher relativen Güte.
TSP keinen polynomiellen Approximati-
9
1.3 Beispiel „TSP“
Beweis. Annahme: Es gibt einen polynomiellen Approximationsalgorithmus A für TSP mit endlicher Güte k.
O.B.d.A k ∈ N, d.h. es gilt:
WA(X) = k · Wop (X)
(1.2)
Sei G = (V , E) beliebiger ungerichteter Graph. Diesen Graph betrachten wir als Eingabe
für das Problem HAMCYCLE(HC). Aus G konstruiere nun folgenden Fall Y für TSP.
Dabei V = {1, , n} = C
1
(i, j) ∈ E
dij =
(k + 1)n sonst
Falls WA(Y ) > n, dann muss bei Rundreise mindestens ein dij = (k + 1)n vorgekommen
sein. Wegen (1.2) folgt dann:
(k + 1)n 6 WA(Y )
6 k · Wop (Y )
⇒ Wop > n
Falls WA(Y ) 6 n ⇒ WA(Y ) = n = Wop (Y )
G hat Hamiltonischen Kreis
⇔ Wop (Y ) = n
⇔ WA(Y ) = n
Wenn ein Wert n ist, dann
gibt es keinen Hamiltonischen
Offenbar gilt: Kreis. Man kann also in
polynomieller Zeit bestimmen,
ob es einen Hamiltonischen
Kreis gibt.
⇒ P = NP
⇒ Widerspruch.
Kapitel 2
Grundlegende
Methoden
Definitionen
und
2.1 Optimierungsproblem
Ein kombinatorisches Optimierungsproblem Π ist charakterisiert durch 4 Komponenten:
1. Definitionsbereich D: die Menge der Problemfälle.
2. Lösungen S(I) für I ∈ D: die Menge der zulässigen Lösungen.
3. Bewertungs- oder Maßfunktion W : S(I) → N − {0}
4. Zielfunktion: Minimum oder Maximum finden.
Gesucht ist allgemein zu einer Eingabe I ∈ D eine zulässige Lösung σopt ∈ S(I),so dass
W (σopt ) = min /max {W (σ)|σ ∈ S(I)}
Für eine optimale Lösung schreibt man
OPT(I) = Wop (I) = W (σopt )
Π = (D, S , W , ziel)
Beispiel 2.1.
1. TSP
a.
•
•
•
•
D = { < Kn , c > |Kn vollständiger Graph über n Knoten, c: E → N Kantenkosten}
S( < Kn , c > ) = {C |C = (vi1, , vin , vi1), C ist Hamiltonkreis}
P
W (C) = c(vin , vi1) + n−1
j=1 c(vi j , vi j +1)
min
b.
•
•
•
•
D = { < n, d > |d: {1, , n}2 → N, dij = d(i, j) Entfernung zwischen Städten i
und j }
S( < n, d > ) = {Π|Π Permutation über {1, , n}}
P
W (Π) = d(Π(n), Π(1)) + n−1
j =1 d(Π(j), Π(j + 1))
min
2. Rucksack (Knapsack)
•
•
•
D = { < a1, , an , c1, , cn , b > |alle Zahlen in N, ai 6 b}
P
S = { < a1, , an , c1, , cn , b > ) = {J |J ⊆ {1, , n}, i∈J ai 6 b}
P
W (J) = i∈J ci , J ∈ S(I)
11
12
Grundlegende Definitionen und Methoden
•
max
Dabei ist zu bemerken, dass sich Beschreibungen (verschiedene D) höchstens polynomiell unterscheiden in der Länge. Wir schränken die Bewertungsfunktion durch W (I) > 0 ein.
Definition 2.2. Sei Π ein Optimierungsproblem.
Ein t(n)-zeitbeschränkter Approximationsalgorithmus ALG berechnet zu jeder Eingabe I ∈ D
in Zeit höchstens t(|I |) eine (zulässige) Ausgabe σIALG ∈ S(I) mit Wert W (σIALG ). Dabei ist |I |
Länge der Eingabe.
Anmerkung 2.3.
•
ALG(I) = WA LG (I) = W (σIALG )
•
optimaler Algorithmus ALG = OPT
•
t(n) Polynom: ALG heißt ein polynomieller Algorithmus.
Warnung 2.4. Oft wird auch ALG(I) = σIALG benutzt.
2.2 Absolute Approximation
Definition 2.5. Π sei ein Optimierungsproblem und A ein Approximationsalgorithmus für Π.
1. A hat bei einer Eingabe I eine
absolute Güte
αA(I) = |A(I) − OPT(I)|
2. Die absolute Güte im
schlechtesten Fall (worst-case) von A ist
Kwc
A (n) = max {αA(I)|I ∈ D, |I | 6 n}
3. KA: N → N. A garantiert eine absolute Güte von KA(n) ⇔ Kwc
A (n) 6 KA(n), ∀n.
4. A ist eine absolute Approximation ⇔ ∃k > 0: KA(n) 6 k, ∀n.
2.2.1 Graphfärbbarkeit
Sei G = (V , E) ungerichteter Graph, u ∈ V : NG(u) = {v |{u, v} ∈ E } Menge der Nachbarn. Mit
degG(u) = |NG(u)| bezeichnen wir den Grad von u und mit ∆(G) = max degG(u) den Grad von
G.
Definition 2.6. G = (V , E)
Knotenfärbung von G ⇔ ∀{u, v} ∈ E: cV (u) cV (v).
cE : E → N heißt Kantenfärbung ⇔ für alle an einem Knoten u aufeinandertreffende
1. Eine Abbildung cV : V → N heißt
2.
Kanten {u, v }, {u, w} ∈ E: cE ({u, v }) cE ({u, w}), v w.
Das Färbungsproblem:
•
D = { < G > |G ungerichteter Graph, |E | > 1}
•
S( < G > ) = {cV |cV Kantenfärbung von G} bzw. S ′( < G > ) = {cE |cE Kantenfärbung
von G}
•
W (cV ) = |cV (V )| bzw. W (cE ) = |cE (E)|
•
min
Die Anzahl der minimal benötigten Farben bezeichnet man auch als Chromatische Zahl χ(G).
Bemerkung 2.7. Es gibt Graphen mit
1. G, die mindestens ∆(G) + 1 Farben zur Knotenfärbung benötigen (z.B. Kn).
13
2.2 Absolute Approximation
2. G, die mindestens ∆(G) + 1 Farben zur Kantenfärbung benötigen. (z.B. K3)
2.2.1.1 Knotenfärbung
GREEDYCOL
1. for i 4 1 to n do cV (ui) = ∞ (alle ungefärbt)
2. for i 4 1 to n do
cV (ui) 4 min (N − cV (N (ui))) (d.h., ui bekommt die kleinste freie Farbe
3.
•
cV (v) = ∞ bedeutet, dass v noch ungefärbt ist
•
Knoten werden in der Reihenfolge u1, , un eingefärbt.
•
ui bekommt die kleinste Farbe, die keiner seiner schon gefärbten Nachbarn (aus
{u1, , , ui−1}) hat
Satz 2.8. GREEDYCOL berechnet in Zeit O(|V | + |E |) eine Knotenfärbung mit 6 ∆(G) + 1
Farben, d.h. GREEDYCOL(G) 6 ∆(G) + 1.
Beweis. Laufzeit ist bei entsprechender Implementation leicht erreichbar. Wenn GREEDYCOL
beim Knoten ui angekommen ist, dann können nicht alle Farben {1, , deg(ui) + 1} vergeben
worden sein, da ui nur deg(ui) Nachbarn hat. Also gibt es eine kleinste freie Farbe für diesen
Knoten ui, die ui zugewiesen werden kann.
Wegen |E | > 1 gilt OPT(G) > 2.
Satz 2.9. GREEDYCOL garantiert eine absolute Güte von αG REEDYC OL (G) 6 ∆(G) − 1.
Diese Schranke ist scharf.
Planare Graphen
G = (V , E) ist planar gdw. man ihn kreuzungsfrei in der Ebene einbetten kann (Beispiel K4).
noch das Wikibild einfügen
Algorithmus COLPLAN
1. Teste, ob G knoten-2-färbbar ist.
2. Falls nicht: Färbe die Knoten mit maximal sechs Farben
Satz 2.10. Für planare Graphen gilt:
|COLPLAN(G) − OPT(G)| 6 3
Beweis. OPT(G) = 2 ist leicht feststellbar. Falls nicht, gilt OPT(G) > 3.
Satz 2.11. (Sätze über planare Graphen)
1. Jeder planare Graph enthält minddestens einen Knoten v mit deg(v) 6 5.
2. Falls G planar ist, dann ist G ′ = G − {v} planar für beliebige v ∈ V.
Konstruktion einer Knotenfolge u1, , un für planare Graphen G = (V , E) mit |V | = n.
1. Sei un ∈ V ein Knoten mit deg(un) 6 5 und Gn = G.
2. Sei für i = n, , 2
Gi−1 = Gi − {ui } und ui−1 ein Knoten in Gi−1 mit degGi−1(ui−1) 6 5.
Wende Greedycol auf Knotenfolge u1, , un an. Es muss nun noch gezeigt werden, dass Greedycol höchstens max dGi(ui) + 1 6 5 + 1 Farben (1 6 i 6 n). Dies kann als Übung bewiesen
werden.
14
Grundlegende Definitionen und Methoden
2.2.1.2 Kantenfärbung beliebiger Graphen
Satz 2.12. (Vizing, 1964)
Jeder Graph G benötigt mindestens ∆(G) und höchstens ∆(G) + 1 Farben für eine Kantenfärbung.
Der Beweis erfolgt mittels Konstruktion einer Umfärbetechnik.
Lemma 2.13. Sei G = (V , E) kantengefärbt mit den Farben {1, , ∆(G) + 1}. u und v seien
Knoten mit {u, v} E und deg(u), deg(v) < ∆(G). Dann kann G so umgefärbt werden, dass an
u und v dieselbe Farbe fehlt.
Eine Farbe c fehlt an Knoten u, wenn keine inzidente Kante zu u mit c gefärbt ist.
Beweis. Wir nehmen an deg(u), deg(v) < ∆G. An u möge Farbe s fehlen und an v die Farbe c1
fehlen, die nicht an u fehlt. D.h. es gibt eine Kante {u, v1} mit Farbe c1 (Sei v1 Knoten, der das
erfüllt).
Wir konstruieren eine Knotenfolge v1, , vn , vi ∈ N (u) und eine Farbenfolge c1, , ch+1 für
die gilt:
•
Kante {u, vi } ist mit ci gefärbt und ci+1 fehlt an vi.
Der Algorithmus arbeitet nun wie folgt:
1. i 4 1
2. while es gibt eine mit ci gefärbte Kante {u, x} ∈ E mit x {v1, , vi−1} do
a. vi 4 x
b. ci+1 4 an ,vi fehlende Farbe
c. i 4 i + 1
3. Sei h Anzahl der Schleifendurchläufe, d.h. die Kante {u, vh } wurde als letzte betrachtet.
Es ist klar, dass h 6 deg(u) < ∆(G) gilt. (Nachbarn müssen nicht unbedingt alle besucht sein)
Der Abbruch der while-Schleife erfolgt bei:
1. Es gibt keine zu u inzidente Kante, die mit ch+1 gefärbt ist.
2. Es gibt eine Kante {u, v j }, j < h, mit c j = cn+1.
Im 1. Fall:
•
Verschiebung der Farben:
◦
Färbe Kante {u, vi } mit ci+1
◦
Kantefärbungen verschieben sich dadurch (z.B. {u, v3} wird mit c4 gefärbt)
◦
c1 wird dadurch fehlende Farbe an u
◦
(Beachte: höchstens h + 1 + 1 6 ∆(G) − 1 + 1 + 1 = ∆(G) + 1 Farben sind verbraucht)
Im 2. Fall ergibt sich:
•
für Kanten {u, v j −1}, , {u, v1} führen wir eine Verschiebung wie in Fall 1 durch
•
Kante {u, v j } verliert dabei ihre Farbe c j .
•
c1 wird fehlende Farbe von u, aber Kante {u, v j } muss noch gefärbt werden.
Dazu betrachten wir einen Teilgraphen H(s, ch+1) von G ′ mit E ′ = E − {{u, v j }}, der nur aus
Kanten mit den Farben s oder ch+1 besteht. Jeder Knoten in H(s, ch+1) hat höchstens 2 inzidente Kanten. D.h. die Zusammenhangskomponenten von H(s, ch+1) sind höchstens Pfade oder
Kreise. Die Knoten u, v j und vh sind höchstens an einer Kante beteiligt, weil an u s fehlt, an vh
fehlt per Definition die Farbe ch+1 und an v j fehlt auch ch+1 = c j . D.h. alle 3 Knoten sind Endknoten von Pfaden und können nicht alle in einer Zusammenhangskomponente liegen.
15
2.2 Absolute Approximation
Dazu müssen die Kanten, die von v j und vh in H(s, ch+1) wegführen mit s gefärbt sein (falls
vorhanden).
1. u und v j liegen in verschiedenen Pfaden
2. u und vh liegen in verschiedenen Pfaden
Im Fall 1 vertausche in den Komponenten von v j die Farben s und ch+1. Färbe {u, v j } mit s.
Im Fall 2:
•
Verschiebe wie in Fall 1 auch noch die Farben ch , , cj +1 auf die Kanten {u, vh−1}, , {u,
v j }. Damit wird {u, vh } entfärbt.
•
Verfahre analog zum Fall 1 mit der Komponente vh, d.h. vertausche die Farben s und
ch+1 in diesem Pfad
•
Färbe Kante {u, vh } mit s.
Mit ∆(G) + 1 Farben fehlt an jedem Knoten mindestens eine Farbe.
Algorithmus Faerbekanten(G)
1. if E = ∅ then return
2. else
a. wähle beliebige Kante {u, v} ∈ E
b. G ′ 4 G − {{u, v }} (E ′ = E − {{u, v}}
c. Faerbekannten(G ′)
d. if ∆(G ′) < ∆(G)
i. then färbe Kanten {u, v } mit der kleinstmöglichen an u und v fehlenden
Farbe aus {1, , ∆(G) + 1}
e. else
•
färbe G ′ gemäß Lemma so um, dass an u und v dieselbe Farbe c fehlt; färbe
{u, v} mit c
Für den Fall G ′ mit ∆(G ′) = ∆(G) ist durch Wegnahme von {u, v } degG ′(u) = degG(u) − 1 <
∆(G) = ∆(G ′). Entsprechendes gilt für w. Es gilt:
∆(G) 6 #Kantenfarben 6 ∆(G) + 1
Der Maximalwert wird mit einem vollständigen Graphen mit n Knoten erreicht.
Satz 2.14. Der Algorithmus FÄRBEKANTEN kann in Zeit O(|V | · |E |) ausgeführt werden
und garantiert eine absolute Güte von 1.
Das Entscheidungsproblem, ob beliebiger Graph mit ∆(G) Farben Kantengefärbt werden
kann, ist NP-vollständig.
2.2.2 MAX-2BIN
Das Problem MAX-2BIN ist charakterisiert durch
•
D = { < a1, , an , c > |0 6 ai 6 c}
•
S( < a1, , an , c > ) = {I , J |I , J ⊆ {1, , n}, I ∩ J = ∅,
•
W (I , J) = |I | + |J |
•
max
P
i∈I
ai 6 c,
P
j ∈J
a j 6 c}
16
Grundlegende Definitionen und Methoden
Verbal könnte man das Problem beschreiben mit „Packe in 2 Behälter mit Kapazität c möglichst
viele Stücke i (mit Größe ai)“.
Algorithmus PACK(a1, , an , c)
1. Sortiere {a1, , an } aufsteigend: a1 6 a2 6 6 an
2. an+1 = c + 1, i = 1
3. for j 4 1 to 2 do
a. begin S[j] 4 0
b. while s[j] + ai 6 c do
i. begin S[j] 4 S[j] + ai
ii. i 4 i + 1
iii. end
c. end
d. end
4. p 4 i − 1
WPACK (a1, , an , c) = p
Satz 2.15. Für das Problem
elle) Approximation mit
MAX-2BIN ist der Algorithmus PACK eine absolute (polynomi-
|WPAC K (F ) − WOPT (F )| 6 1 für alle Fälle F ∈ D
Beweis. a1 6 a2 6 6 an sortiert und sei q gegeben durch
q
X
ai 6 2 C und
i=1
falls
Pn
i=1
q+1
X
ai > 2 C oder
ai 6 2 C, dann q = n. Es gilt:
(2.2)
q > WOPT (F )
denn angenommen WO PT (F ) > q + 1, dann gilt q < n, also
(2.1).
Sei j gegeben durch
j
jX
+1
X
ai 6 c und
ai > c
i=1
und falls
(2.1)
i=1
Pn
i=1
Pq+1
i=1
ai 6 2 c, also Widerspruch zu
(2.3)
i=1
ai 6 c, dann j = n. Falls j = q ⇒
WO PT (F ) 6 q 6 WPACK (F ) ⇒ optimal
Falls j = q − 1 ist ⇒ WPACK (F ) > j + 1 = q > WO PT (F ).
Falls j 6 q − 2, dann gilt:
q
X
i= j+2
ai 6 2 c −
jX
+1
ai 6 2 c − c = c
(2.4)
i=1
P q −1
Pq
Wegen ai−1 6 ai gilt
i= j +1 ai 6
i= j +2 ai 6 c
Unser Algorithmus PACK ordnet Stücke 1, , j dem ersten Behälter zu, und Stücke j + 1, ,
q − 1 dem zweiten Behälter zu. Daher WPAC K (F ) > q − 1 und mit (2.2) gilt:
WOPT (F ) − WPAC K (F ) 6 q − (q − 1) = 1
17
2.2 Absolute Approximation
Eine Erweiterung PACK für das entsprechende MAX − k − BIN, k > 3 ist leicht zu entwerfen.
Die absolute Güte ist dann k − 1.
Satz 2.16. Falls P NP, dann gibt es keinen optimalen Algorithmus mit polynomieller Laufzeit
für MAX − 2 − BIN.
Beweis. Betrachte F = {a1, , an } ⊆ N, einen beliebigen Fall für Entscheidungsproblem
PARTITION.
1P
Sei C = 2 ni=1 ai. Falls C N, dann ist Antwort „nein“. Sei C ∈ N, dann betrachte
F ′ = < a1, , an , c >
als Fall für MAX − 2 − BIN.
Sofort sieht man:
WOPT (F ′) = n ⇔ F = {a1, , an } hat eine Partitionsmenge,
d.h., dass das NP-vollständige Problem PARTITION könnte in polynomieller Zeit gelöst werden,
falls es einen polynomiellen optimalen Algorithmus OPT für MAX − 2 − BIN gäbe. Das hätte
aber P = NP zur Folge. Widerspruch!
2.2.3 „Unmöglichkeit“ einer absoluten Approximations
Problem: 2 − SCHEDULING
•
•
•
•
D = { < a1, , an > |ai ∈ N}
S( < a1, , an > ) = {J |J ⊆ {1, , n}}
P
P
W (J) = max { i∈J ai , i J ai }
min
Die verbale Interpretation wäre: ai ist die Bearbeitungszeit einer Aufgabe Ti und wir haben 2
Prozessoren.
Satz 2.17. Falls P NP, dann gibt es zu keinem k ∈ N einen polynomiellen Algorithmus, der
für 2 − SCHEDULING eine absolute Güte von k garantiert.
Beweis. Angenommen es existiere ein polynomieller Algorithmus ALG und ein k mit
??
|WOPT (F ) − WALG (F )| 6 k , ∀F ∈ D
Sei F = A = {a1, an } ⊆ N ein beliebiger Fall. Konstruiere
Ak+1 = {a1(k + 1), , an(k + 1)}
Offenbar gilt für ALG mit Eingabe Ak+1
|WALG (Ak+1) − WOPT (Ak+1)| 6 k, c, d ∈ N
c(k+1)
d(k+1)
⇒ |c − d | · (k + 1) 6 k ⇒ c = d, d.h.
WALG (Ak+1) = WOPT (Ak+1) = (k + 1) WOPT (A)
⇒ WOPT (A) kann in polynomieller Zeit bestimmt werden. Offenbar gilt:
A ⊂ {a1, , an }
P
1P
a ), gdw. WOPT (A) = 2 ni=1 ai, d.h. PARTITION
hat Partitionsmenge J (mit
j ∈J ai =
c J i
ist in polynomieller Zeit entscheidbar, also P = NP, also Widerspruch zur Annahme, dass P NP.
P
18
Grundlegende Definitionen und Methoden
2.3 Relative Approximation
Wir haben ein Optimierungsproblem Π gegeben und einen Approximationsalgorithmus A für Π.
1. A hat bei Eingabe von I die relative Güte (Gütequotient)
A(I) OPT(I)
rA(I) = max
,
OPT(I) A(I)
2. Die relative Worst-case-Güte von A (Gütequotient im schlechtesten Fall)
WC
rA
(n) = max {rA(I)|I ∈ D, |I | 6 n}
3. RA: N → N
A garantiert eine relative Güte von RA(n) gdw. für alle n gilt
WC
RA
(n) = RA(n)
4. A macht bei Eingabe I einen relativen Fehler von
|A(I) − OPT(I)| A(I)
=
− 1
OPT(I)
OPT(I)
′
εA
(I) =
A garantiert einen relativen Fehler von höcshtens εA(n) gdw. für alle I ∈ D mit |I | 6 n
gilt:
′
εA
(I) 6 εA(n)
5. Für ein reelles S > 1 heißt A eine S-Approximation gdw für alle I ∈ D gilt rA(I) 6 S.
6. f : N → R>0
A ist dann eine f (n)-Approximation gdw
WC
RA
(n) 6 f (n), ∀n
Es gilt für ein Minimierungsproblem Π:
1 + εA(n) = RA(n)
Für ein Maximierungsproblem Π gilt analog:
1 − εA(n) =
Für beide Fälle gilt:
1
RA(n)
εA(n) 6 RA(n) − 1
Für das Maximierungsproblem sieht man leicht
RA(n) − εA(n) · RA(n) = 1
und mit RA(n) > 1 bedeutet dies:
εA(n) 6 RA(n) · εA(n) 6 RA(n) − 1
2.3.1 Scheduling
M-Scheduling
Gegeben m > 2 Maschinen (identisch) und n > 1 Aufgaben (tasks, jobs) mit Ausführzeiten p1,
p2, , pn. Die Aufgabe besteht nun darin, die n Aufgaben so zu verteilen, dass die Gesamtausführzeit möglichst klein wird.
Listenscheduling(Graham)
Wir haben eine Liste (T1, , Tn).
Algorithmus LIST
•
Zu jedem Zeitpunkt, an dem eine Maschine frei ist oder wird, ordne die nächste Aufgabe
aus der Liste dieser Maschine zu
19
2.3 Relative Approximation
Satz 2.18. Für den Algorithmus LIST gilt für alle Eingabe I
WLIST (I) 6 (2 −
1
) WOPT (I)
m
und diese Schranke ist die beste.
Beweis.
O.B.d.A sei M1 eine Maschine mit größter Ladung nach Zuteilung aller Jobs. C sei die
Gesamtlaufzeit aller Aufgaben auf M1 (Gesamtbearbeitungszeit). Sei Tk die letzte M1 zugewiesene Aufgabe. Dann gilt für alle anderen j , 2 6 j 6 m.
1. Die Ladung dieser Maschinen M j > C − pk
Daher
Pn
− pk ) + pk
2.
C
i=1 pi > m(
?
alle M aschinen voll
1
3. Aus WOPT (I) > m
Pn
i=1
pi und WLIST (I) = C folgt
p
4. WOPT (I) > C − pk + mk
Wegen WOPT (I) > pk folgt
1
WO PT (I) > WLIST (I) − 1 −
m
Dies entspricht aber genau
· WO PT (I)
1
· WOPT (I)
WLIST (I) 6 2 −
m
Diese Schranke kann nicht verbessert werden. Wähle Liste (T1, , Tn) mit n = m(m − 1) + 1 und
Ausführzeiten p1 = p2 = = pn−1 = 1 und pn = m.
WLIST (I) = m − 1 + m = 2 m − 1
und der optimale Wert ist
WOPT (I) = m
Algorithmus LPT (Largest Processing Time)
1. Wir sortieren die Jobs nach Ausführungszeiten absteigend (d.h. p1 > p2 > > pn)
2. Wende Listenscheduling auf sortiere Liste an.
Satz 2.19. Für alle Instanzen I gilt
1
4
) WOPT (I)
WLPT (I) 6 ( −
3 3m
und diese Schranke ist die beste.
Beweis.
Annahme: Die Schranke ist falsch. Dann gibt es ein kleinstes n (Anzahl der Aufgaben), für
das die Schranke nicht gilt. Betrachte solche Instanz I.
Sei Tk Aufgabe, die in LPT-Schedule als letzte beendet wird.
Ik = {T1, , Tk }
WLPT (I) = WLPT (Ik) und WOPT (Ik) 6 WOPT (I)
D.h. Ik ist eine kleinste Instanz und wir können k = n annehmen. Es gibt nun 2 Fälle:
1
1. pk 6 3 WOPT (I)
20
Grundlegende Definitionen und Methoden
Mit (4) aus dem vorherigen Beweis folgt
WOPT
1
1
> WOPT (I) − 1 −
pk
m
1
1
· WOPT (I)
> WOPT (I) − 1 −
3
m
4
1
−
WOPT > WLPT (I)
3 3m
2. pk > 3 WOPT (I)
1
Für alle i: pi > pk > 3 WOPT (I)(1 6 i 6 k), d.h. in einem optimalen Schedule sind 6 2
Aufgaben pro Maschinen ⇒ k = n 6 2 m. Falls Tk alleine auf Maschine in LPT, dann gilt
WLPT (I) = pk 6 WOPT (I) (ist optimal). Also Tk zusammen mit anderen in LPT und n >
m + 1.
a. Angenommen, Tk wäre in LPT mit 2 weiteren Aufgaben zusammen. Dann gilt:
WLPT (I) > p j1 + pj2 + pk
In LPT-Schedule gibt es dann mindestens 1 Maschine mehr mit nur 1 Aufgabe.
Für alle Aufgaben Ti, die in LPT alleinestehen gilt
pi > C − pk > p j1 + p j2 >
2
WOPT (I)
3
D.h. alle solche Aufgaben wären auch allein im optimalen Scheduling ⇒ gleiche
viele wie in LPT ⇒ Widerspruch.
D.h. in LPT Tk mit einer Aufgabe zusammen. Im optimalen Schedule seien h Maschinen
mit 2 Aufgaben zusammen. F+r die gilt:
pi + p j 6 WOPT (I) ⇒ pi 6 WOPT (I) − p j <
Daraus folgt nun
pl <
2
WO PT (I)
3
2
WOPT (I)
3
für die 2 h kleinsten Aufgaben. In LPT wird Tk mit einer dieser kleinsten Aufgaben
zusammengetan (Tl).
2
1
WLPT (I) = pl + pk < WOPT (I) + WO PT (I)
3
2
7
1
4
und dies ist nun 6 6 WO PT (I) 6 3 − 3 m WOPT (I), m > 2.
Der Worst case ist n = 2 m + 1, pi = 2 m − ⌊
Aufgabenlänge wäre 5, 5, 4, 4, 3, 3, 3.
(i + 1)
⌋,
2
i = 1, , 2 m, p2m+1 = m. Eine Beispiel-
2.3.2 Das metrische TSP
∆TSP wie TSP, aber mit D anders
D = { < Kn , c > |Kn = (V , E) vollst. Graph mit n Knoten, c: E → N, ∀u, v, w ∈ V gilt c(u, v) 6 c(u,
w) + c(w, v)}
Wir benötigen für die weiteren Betrachtungen Spannbäume. G = (V , E) ist Teilgraph T von G
mit: T ist Baum mit ET ⊆ E und VT = V .
Für e ∈ E sind c(e) Kosten eines Teilgraphen G ′ von G mit
X
c(G ′) =
c(e)
Minimaler Spannbaum T ist
e∈E ′
C(T ) = min {c(T ′)|T ′ ist Spannbaum von G}
21
2.3 Relative Approximation
Dies ist in O(|V | log |V | + |E |) möglich, z.b. durch PRIM. R∗ sei eine optimale Rundreise mit n
1
Kanten. Dann gibt es eine Kante e ′ in R∗ mit c(e ′) > n c(R∗). Entfernt
man e ′ aus R∗ dann
1
erhält man einen Spannbaum für den gilt c(T ) 6 c(R∗) − c(e ′) 6 1 − n c(R∗).
Wir nehmen uns MST Graph T und verdoppeln die Kanten. Dies ergibt den Multigraphen
DT (Beispiel t.dot und dt.dot noch einfügen)
In einem Multigraphen, in dem jeder Knoten geraden Grad hat, gibt es immer eine Eulertour
(Satz von Euler). Euler-Tour eines zusammenhängenden Multigraphen G = (V , E) ist Kreis
(u1, , u |E |+1) mit u1 = u |E |+1 und jede Kante wird dabei genau einmal durchlaufen. Man
erhält eine Euler-Tourr in O(|V | + |E |). Wenn wir auf DT eine Euler-Tour durchlaufen und
schon besuchte Knoten jeweils streichen, erhalten wir einen Hamilton’schen Kreis in Kn
(vollständiger Graph).
Algorithmus DTREE
1. Berechne den minimalen Spannbaum T von < Kn , c >
2. Bilde Doppelbaum DT aus T
3. Berechne für DT eine Euler-Tour EU = {u1, u2, }
4. Entferne aus EU Wiederholungen von Knoten, so dass man einen Hamilton’schen Kreis
EU ′ in Kn erhält. Gib EU ′ aus.
Satz 2.20.
Bei n Knoten garantiert DTREE eine relative Güte von
RD TR EE (n) 6 2 −
in Laufzeit O(n2).
2
n
Beweis.
Wegen (1) und Vorbetrachtungen gilt
′
WDTR EE (I) = c(EU
) 6c(EU) = 2 c(T )
1
c(R∗)
6 2 1−
n
2
= 2−
WOPT (I)
n
Die Laufzeit Kn hat O(n2) Kanten.
Ein Matching M eines Kantengewichteten Graphen ist ein Teilgraph von G, in dem jeder
Knoten maximal Grad 1 hat. Das Gewicht von M ist c(M ). In Kn mit n gerade gibt es perfekte
n
Matchings, d.h. Matchings mit allen Knoten genau Grad 1. Genau 2 Kanten. Perfektes Matching mit kleinstmöglchen Gewicht heißt ein leichtestes Matching. Dies kann in O(n2.5 (log n)4)
implementiert werden.
Sei in einem beliebigen Graph G = (V , E) S = {v |v ∈ V , deg(v) ungerade}. Die Behauptung
ist nun, dass |S | gerade ist.
P
Beweis. Nun sei S̄ = V − S und a = v ∈V deg(v) = 2 |E | ist gerade. Es gilt nun:
X
X
deg(v) +
a=
deg(v)
??
v ∈S
v ∈S̄
gerade
d.h. |S | muss gerade sein.
Algorithmus CA (Christofides)
1. Berechne MST T von < Kn , c >
2. S = {v |v ∈ VT , deg(v) ungerade} (|S | ist gerade)
gerade
22
Grundlegende Definitionen und Methoden
3. Berechne auf dem durch S induzierten vollständigen Teilgraphen von Kn ein leichtestes
Matching MC H .
4. Berechne auf Multigraphen (V , ET ∪ EM C ) = MG eine Eulertour EU = (u1, ). In diesem
Multigraphen MG haben alle Knoten geraden Grad!
5. Erzeuge Hamilton’schen Kreis EU ′ durch Streichung von wiederholten Knoten. Gib EU ′
aus.
Satz 2.21.
Auf n Knoten garantiert CH eine relative Güte von
RCH (n) 6
Die Laufzeit ist dabei O(n2.5 (log n)4).
3 1
−
2 n
Beweis.
R∗ optimale Tour für < Kn , c > . c(R∗) = WOPT (I).
Es gilt nun:
1
c(T ) 6 1 −
c(R∗)
n
Durch Umbenennung der Indizes sei R∗ = (u1, u2, , un , u1) und S = {ui1, ui2, , ui |S |} mit
i1 < i2 < < i |S |
Für den Kreis H = (ui1, ui2, , ui |S |, u1). Wegen der Dreiecksungleichung gilt
c(H) 6 c(R∗)
Zerlege H nun in 2 Matchings (perfekt) M1 und M2. O.B.d.A. sei nun c(M1) 6 c(M2). Dann
gilt:
c(MC H ) 6 c(M1)
1
6 (c(M1) + c(M2))
2
1
=
· c(H)
2
1
6
· c(R∗)
2
Nun wird die Euler-Tour durchlaufen.
c(EU) = c(T ) + c(M
CH)
1
1
· c(R∗) + c(R∗)
6 1−
2
n
3 1
WOPT (I)
−
=
2 n
2.3.3 „Unmöglichkeit“ der relativen Approximation
3
Satz 2.22. Für BINPACKING gibt es keine polynomielle δ-Approximation mit δ < 2 , außer P =
NP.
Beweis.
3
Angenommen, es gibt eine δ-Approximation A mit δ < 2 . Dann kann man (siehe Übung)
PARTITION so auf BINPACKING reduziert werden, dass PARTITION in polynomieller Zeit entschieden werden kann ⇒ P = NP.
Satz 2.23. Die Knotenfärbung eines planaren Graphen hat keine polynomielle δ-Approximation
4
mit δ < 3 .
23
2.4 Approximationsschemata
2.4 Approximationsschemata
Definition 2.24. Sei Π ein Optimierungsproblem und A ein Approximationsalgorithmus, der
als Eingabe eine Probleminstanz I und ein ε, 0 < ε < 1, bekommt.
1. Dann heißt A ein polynomielles Approximationsschema (PAS, polynomial approximation
scheme) für Π wenn für jede Probleminstanz I und zu jedem ε, 0 < ε < 1, eine zulässige
Lösung berechnet wird mit relativen Fehler εA(I , ε) 6 ε und in Zeit O(p(|I |)) für ein
Polynom p.
2. A ist streng polynomielles Approximationsschema (FPAS), wenn A ein PAS und die
1
Laufzeit O(q(|I |), ε ) für ein Polynom q ist.
Die Approximationsschema {Aε } bildet eine Familie von Algorithmen die eien uniforme Darstellung hat.
1
1 |I |
(exponentiell.
Für PAS ist eine Laufzeit O |I | ε erlaubt, nicht erlaubt ist O
e
1 10
Für FPAS wäre beides nicht erlaubt. Erlaubt wäre z.B. O
|I |4 .
ε
2.4.1 Multiprozessorscheduling
Sei m die Anzahl der Prozessoren und p1, , pn die Ausführzeiten mit n > m (sonst trivial).
Algorithmus LPTk
1. Sortiere die Jobs nach Ausführzeiten fallend: p1 > p2 > > pn.
2. Erstelle einen optimalen Schedule für die ersten k Aufgaben.
3. Starte mit bisher erstellten optimalen Schedule. Verteile restliche Aufgaben Tk+1,
mit Listenschedule.
, Tn
Satz 2.25. Für alle Fälle I gilt

WLPT k(I) = 1 +
1
1− m
k
1 + ⌊m⌋

WOPT (I)
Beweis.
Sei C die Gesamtlaufzeit des in 2. erstellten optimalen Teilschedule für die ersten k Aufgaben. Falls WLPT k(I) = C, dann ist ein optimaler Schedule entstanden. Sei also WLPT k(I) > C.
Dann gibt es einen Aufgabe T j , j > k, die zur Zeit WLPT k(I) beendet wird. D.h., dass alle
Maschinen im Zeitintervall [0, WLPT k(I) − p j ] vollständig mit Aufgaben belegt sind.
p
X
pi > m(WLPT k(I) − pj ) + p j
i=1
= m WLPT k(I) − (m − 1) p j
> m WLPT k(I) − (m − 1)pk+1 (wegen pk+1 > p j )
⇒
n
m−1
1 X
pi )
WOPT (I) > WLPT k(I) −
pk+1 (wegen WOPT (I) >
m
m
i=1
k
⌊m⌋
viele von den ersten k + 1 AufIn jedem Schedule gilt, dass mindestens ein Prozessor 1 +
k
gaben enthält (denn sonst wären nur m · ⌊ m ⌋ 6 k Aufgaben zugewiesen). Alle Aufgaben haben
Ausführzeit > pk+1. Für optimalen Schedule gilt
k
WOPT (I) > 1 + ⌊ ⌋ · pk+1
m
24
Grundlegende Definitionen und Methoden
oder
pk+1 6
1
k
1 + ⌊m⌋
· WOPT (I)
Dies können wir oben einsetzen und es ergibt:
m−1
· pk+1
m

1
1− m

6 WO PT (I) 1 +
k
1 + ⌊m⌋
WLPT k(I) 6 WO PT (I) +

Wir wollen dies nun auf die
angesprochenen Approximationsschemata bringen. Sei ε
m
l oben
m
k
1
k
k
1
m
beliebig mit 0 < ε < 1 und k = ε ⇒ k > ε also m > ε und 1 + ⌊ m ⌋ > m > ε , d.h.
1
1
k
1 + ⌊m⌋
6 e und damit
1− m
k
1 + ⌊m⌋
6ε
m
Sei Aε obiger Algorithmus LPTk mit k = ε .
Die Laufzeit des Algorithmus ist nun noch zu betrachten. Das Sortieren am Anfang funktioniert in O(n log n). Den für den Beginn nötigen optimalen Teilschedule mit k Aufgaben kann in
O(mk) bestimmt werden. Das weitere Zuteilen der letzten Aufgaben ist in O(n · m) möglich. Die
Laufzeit ist also
m
O(mk + m n + n log n) ⊆ O(m ε
+1
+ m n + n log n)
Wir haben also ein PAS und kein FPAS.
Satz 2.26. Für festes m > 2 gibt es ein Approximationsschema für das m-ProzessorScheduling -Problem.
2.4.2 Bemerkungen
•
Minimierungsproblem: 1 + εA = RA
•
Maximierungsproblem:1 − εA = R
•
Angabe eines (F)PAS A für Optimierungsproblem kann immer auch konstanter Gütequo1
1
5
tient δ erreicht werden. Z.B. δ = 4 , dann wählt man ε∗ = 4 (Minimierung) bzw. ε∗ = 5
(Maximierung).
1
A
Satz 2.27. Sei Π ein Optimierungsproblem und A ein (F)PAS für Π. Zur Eingabe I sei Z(I)
1
eine obere Schranke für OPT(I), d.h. OPT(I) 6 Z(I). Sei ε∗ = Z(I) + 1 . Dann gilt
A(I , ε) = OPT(I)
Ist A FPAS ist, dann ist die Laufzeit O(poly(|I |, Z(I)).
Beweis.
A findet zulässige Lösung bei Eingabe von I und ε∗ mit
εA(I , ε∗) =
D.h.
| OPT(I) − A(I , ε∗)|
6 ε∗
OPT(I)
|OPT(I) − A(I , ε∗)| 6 ε∗ OPT(I)
OPT(I)
=
Z(I) + 1
< 1
25
2.4 Approximationsschemata
Wir lassen jedoch in den meisten Fällen nur ganzzahlige Lösungen zu und daraus folgt
|OPT(I) − A(I , ε∗)| = 0
Also
WOPT (I) = A(I , ε∗)
(Die Approximation wäre also optimal.)
Kapitel 3
Techniken
Hier werden einige essentielle Techniken von Approximationsalgorithmen vorgestellt.
3.1 Die Greedy-Methode
greedy: gierig, habgierig, gefräßig
Ein Merkmal ist, dass Teillösungen erstellt werden, die nicht mehr geändert werden können
(was man schon hat, dass muss man auch behalten). Schon bekannte Algorithmen die diese
Prinzip verfolgen sind z.B. GREEDYCOL (im Gegensatz zu FÄRBEKANTEN).
3.1.1 Greedy für das Rucksackproblem
MAXIMUM RUCKSACK
•
•
•
•
D = { < a1, , an , p1, , pn , b > | alle Zahlen in N, ai 6 b}
P
S( < a1, , an , c1, , cn > ) = {J |J ⊆ {1, , n}, i∈J ai 6 b}
P
W (J) = i∈J pi , J ⊆ {1, , n}
max
Die Greedy-Idee besteht nun darin, dass wir die Stücke mit größtem Profit pro Größeneinheit:
pi
möglichst groß
ai
Algorithmus GREEDY KNAPSACK(GK)
1.
a. Sortiere Stücke {1, , n} fallend bezüglich
b. J 4 ∅
pi
ai
(Danach sei Indizierung a1, , an)
2. for i 1 1 to n do
a. if b > ai then J 4 J ∪ {i}; b 4 b − ai
Analyse: Für n > 2 und pi = ai = 1 für i = 1, , n − 1 und an = b = k n (k große Zahl mit k > n),
pn = b − 1. Es gilt nun:
p
p
b−1
p1 p2
= = = n−1 = 1 > n =
an−1
an
b
a1 a2
GK packt Stücke 1,
mehr.
, n − 1
ein. Für das n-te Stück (das genau reinpasst) ist nun kein Platz
WGK (I) = n − 1, WOPT (I) = b − 1
RGK (I) =
WOPT (I) b − 1 k n − 1 k(n − 1)
=
=
>
=k
WG K (I)
n−1
n−1
n−1
GK ist also „beliebig“ schlecht.
27
28
Techniken
Satz 3.1.
Sei I = < a1, , an , p1, , pn , b > beliebige Insatz für MAX KNAPSACK . Sei pm ax = max {p1, ,
pn } und WGK +(I) = max (pm ax , WG K (I)). Dann gilt
RG K +(I) =
Beweis.
WOPT (I)
62
WG K +(I)
> a2 > > an .
2
n
Pk
1. Behauptung: Falls
i=1 ai = b für ein k, 1 6 k 6 n, dann packt GK optimal (D.h.
Pk
p
ist
maximaler
Profit.
i=1 i
P
P
Pk
Angenommen, es gibt J ⊆ {1, , n} mit
j ∈J a j 6 b und
j ∈J p j >
i=1 pi. Dann
sei D = J ∩ {1, , k}, die Menge der Stücke in beiden Lösungen.
′
J′=J −D
Pund K = {1, , k}
P− D.
Sei nun
a
=
x,
d.h.
′
i
i∈K
i∈D ai = b − x.
X
X
X
aj =
aj −
ai 6 b − (b − x) = x
Gelte schon
p1
a1
p
p
j ∈J ′
Es gilt weiterhin,
j ∈J
X
i∈D
pj >
j ∈J ′
A=
X
pi =
i∈K ′
X
ai
i∈K ′
Dies ist aber nun genau
X
pi
(3.1)
i∈K ′
p
p
p
pi X
>
ai · k (wegen i > k , i 6 k)
a
a
a
ai
i
k
k
′
i∈K
A > x·
pk
ak
Für B gilt nun:
B =
X
pj
j ∈J ′
pj
a
j
j ∈J ′
X
p
p
pk
6
(wegen j > k + 1: j 6 k )
aj ·
a j ak
ak
j ∈J ′
pk
6 x·
ak
=
X
aj ·
D.h. nun aber, dass A > B ist und dies ist ein Widerspruch zu (3.1).
Pk
Pk
′
′
2. Sei k so, dass
i=1 ai < b und b =
i=1 ai + ak+1 > b. Für Rucksack der Kapazität b
liefert der Greedy-Algorithmus eine optimale Lösung (wegen 1.), und zwar
k
X
pi + pk+1
i=1
Der optimale Profit p∗ für eine kleinere Kapazität b ist sicherlich kleiner oder höchstens
gleichgroß.
WOPT (I) = p∗ 6
k
X
i=1
pi + pk+1 6 WGK (I) + pm ax 6 2 max (WG K (I), pmax ) = 2 WGK +
29
3.1 Die Greedy-Methode
3.1.2 Independent Set
(MAX) INDEPENDET SET (IS)
•
D = {G|G = (V , E)}
•
S(G) = {V ′|V ′ ⊆ V , ∀{u, v } ∈ E , |{u, v} ∈ E | 6 1}
•
W (V ′) = |V ′|, V ′ ∈ S(G)
•
max
Greedy-Idee: Wähle jeweils Knoten mit minimalen Grad.
Algorithmus GREEDY-IS (GIS)
1. V ′ 4 ∅, U 4 V
2. while U ∅ do
a. x 4 Knoten mit minimalen Grad in dem durch U induzierten Teilgraphen von G
b. V ′ 4 V ′ ∪ {x};
c. Entferne x und alle Nachbarn von x aus U
Man kann nun wieder, um zu zeigen wie schlecht der Algorithmus arbeitet, ein Gegenbeispiel
konstruieren (das war mir aber jetzt zu aufwändig ;)). Durch dieses Gegenbeispiel schaffen wir
es WGIS (I) = 2 und WOPT (I) = k zu erreichen ⇒ GIS liefert wieder „beliebig“ schlechte Lösungen.
Satz 3.2. Sei G = (V , E) mit n = |V | und m = |E | und δ =
m
n
die Dichte von G. Dann gilt:
n
2δ+1
WG IS (G) >
Beweis.
Sei xi der in der i-ten Iteration gewählte Knoten (while-Schleife). Sei di dabei der aktuelle
Grad von xi. GIS entfernt xi und alle seine Nachbarn, d.h. di + 1 Knoten. Da di minimal war,
war der Grad jedes Nachbarknotens > di. Es werden dabei mindestens an Kanten entfernt:
?
?
di + di ·
xi
di − 1
2
=
di(di + 1)
2
N achbarn von xi
Sei g = WG IS (G) die Anzahl der Iterationen. Dann gilt:
1.
g
X
di(di + 1)
6m=δm
2
i=1
Der Algorithmus stoppt nun erst, wenn alle Knoten entfernt sind.
g
X
(di + 1) = n
Daraus folgt nun
i=1
g
X
i=1
di(di + 1) +
g
X
g
X
(di + 1) 6 2 δn + n
i=0
(di + 1)2 6 n(2δ + 1)
i=1
n
Man kann nun zeigen, dass die linke Seite minimal ist, wenn di + 1 = g . Dann ist nun
n(2δ + 1) >
g
X
n2 n2
=
g
g2
i=1
Daraus können wir jetz umstellen nach g:
g>
und damit das gewünschte Ergebnis
n
2δ + 1
WG IS (I) >
n
2δ+1
(3.2)
30
Techniken
Bemerkung 3.3. Wir nutzen die Ungleichung von Cauchy-Schwarz für die Abschätzung von
(3.2):
!2
!
!
g
g
g
X
X
X
2
2
ai b i =
ai ·
bi
i=1
i=1
Satz 3.4. Sei G = (V , E) mit Dichte δ =
m
.
n
i=1
Dann gilt:
Wopt (G)
6δ+1
WG IS (G)
Beweis.
Sei V ∗ irgendeine maximale unabhängige Menge. Sei ki die Anzahl der Knoten in V ∗, die
unter den di + 1 Knoten sind, die in diesem Algorithmus GIS entfernt werden in der i-ten Iteration. Es gilt:
g
X
ki = |V ∗| = WOPT (G)
(3.3)
i=1
Dann werden von GIS in der i-ten Iteration
≥
(di(di + 1) + ki(ki − 1))
2
Kanten entfernt. Warum ist dies so?
Sei Vi Menge der in der i-ten Iteration weggenommenen Knoten mit |Vi | = di + 1. Jeder
dieser Knoten aus Vi hat Grad deg(v) > di. D.h. es gibt mindestens (di + 1)di Knotenpaare (v,
u), v ∈ Vi die Kanten bilden. Es gibt ki Knoten in Vi ∩ V ∗ mit u, v ∈ Vi ∩ V ∗ und (u, v) ist keine
Kante.
Daraus folgt nun, dass höchstens (di + 1)di − ki(ki − 1) = a Knotenpaare können aus Vi × Vi
a
sein. Das heißt nun aber, dass höchstens 2 Knotenpaare (als Kante gesehen) kommen doppel
vor. Dann gilt nun:
g
X
di(di + 1) + ki(ki − 1)
≤m=δn
2
i=1
Und dies ergibt nun:
g
g
X
X
(di + 1)2 + ki2 −
ki 6 2 δ n + n
?
i=1
i=1
WO P T (G)
Minmum ist bei
di + 1 =
Weiterhin wissen wir nun:
n
W
(G)
und ki = OPT
g
g
n(2 δ + 1) + WOPT (G) ≥
g
X
(di + 1)2 + ki2
i=1
2
W
(G)2
n
+ OPT
g
g
n2 + WOPT (G)2
g ≥
n(2 δ + 1) + WOPT (G)
≥
=
n
WO P T (G)
2δ+1+
1
x
WO P T (G)
n
WOPT (G)
WO P T (G)
n
+
+x
, b > 0 und 0 < x 6 1
b+x
1
+1
≥ x
b+1
=
31
3.2 Sequenzierung
1
Wann wird nun f (x) = x + x minimal?
1
1
+1=0⇔ 2 =1⇔x=1
x2
x
1
1
f ′′(x) =
≥ > 0 ⇒ Minumum
2x3 2
Nun können wir diese Erkenntnis einsetzen:
1+1
WOPT (G)
WG IS (G) = g ≥
2δ+1+1
1
=
WOPT (G)
δ+1
f ′(x) = −
3.1.3 Weiteres zum Greedy
Bereits gesehene Greedy-Algorithmen
•
Greedycol
•
SHF
•
PACK
•
LIST
NEAREST NEIGHBOUR (NN)
1. Wähle bei Start Stadt v1
2. Pfad P
4 (v1)
3. for j = 2 to n do
•
4 (v1, , vj −1)
P = (v1, , vn , v1)
•
4.
v j 4 am nächsten zu v j −1 liegender Knoten
P
Satz 3.5. Für jede Instanz von ∆TSP gilt wenn I n Städte hat, dann ist
WNN (I)
1
6 (⌈log n⌉ + 1)
WOPT (I) 2
3.2 Sequenzierung
3.2.1 Partitionierungsprobleme
Sequentielles Schema für Partitionen
•
Input: Menge I von Stücken
•
Ausgabe: P Partition von I (bzw. zugehörige Bewertung W (P ))
1. Sortiere I (nach einem Kriterium). Wir erhalten dadurch eine Sequenz bzw. Liste sei
2. P
4 {{x1}}
(x1, , xn)
3. for i = 2 to n do
a. if xi kann einer Menge p in P zugefügt werden kann then füge xi zu p, d.h.
p 4 p ∪ {xi }
b. else
P
4 P ∪ {{xi }}
32
Techniken
Wir wollen nun nochmal auf SHF zurückkommen. Es gibt mehrere Varianten die wir dort
benutzen können:
1. NEXTFIT(NF)
Wann immer ein Stück xi in den zuletzt betrachteten Behälter passt, füge xi hinzu;
ansonsten wähle neuen (freien) Behälter
2. FIRSTFIT(FF)
Füge xi in den ersten schon benutzten Behälter, der noch genug Platz hat. Falls es
solchen nicht gibt, wähle neuen Behälter. (Dabei sind die Behälter nummeriert Bin1,
Bin2, ).
Satz 3.6.
1. WNF (I) ≤ 2 WOPT (I)
2. WFF (I) ≤ 1.7 WO PT (I) + 2
First Fit Decreasing (FFD)
•
Input: Menge I von n Stücken i mit Größe ai
•
Ausgabe: Partition P von I, bestehend aus Teilmengen mit Summe der Stückgrößen
kleiner als Kapazität bzw. WFFD (I) = |P |.
1. Sortiere I nach nicht-aufsteigender Stückgröße, danach
a1 ≥ a2 ≥ ≥ an
2. for i = 1 to n do
a. if es gibt Behälter, in die Stück i passt then füge i in ersten solchen Behälter ein
b. else füge i in neuen Behälter hinzu
Normierung C = 1 ⇒ a1, , an , C ∈ N wird zu ai′ =
ai
C
∈ Q.
Satz 3.7.
Für jede Instanz I von BINPACKING gilt:
WFFD (I) 6 1.5 · WOPT (I) + 1
Beweis.
2
2
1
a1 ≥ a2 ≥ ≥ an sei sortiert gegeben. Die Menge A = {ai |ai > 3 }, B = {ai | 3 ≥ ai > 2 }. C =
1
1
1
{ai | 2 ≥ ai > 3 }, D = {ai | 3 ≥ ai }. Betrachte nun die Lösung, die durch FFD gegeben ist.
1. Es gibt mindestens einen Behälter, der nur Stücke aus D enthält. Dann gibt es höchstens
2
einen Bin, dessen Ladung < 3 ist, d.h.
WFFD (I) − 1
Behälter haben Ladung ≥
und damit gilt nun:
2
3
(vielleicht auch alle.). Dann gilt:
& n
'
X
2
WOPT (I) ≥
ai > (WFFD (I) − 1)
3
i=1
WOPT (I) > WFFD (I) − 1
2. Es gibt keinen Behälter, der nur Stücke aus D enthält. Hier findet FFD sogar eine optimale Lösung. Sei I ′ die Instanz, die aus I entsteht, wenn man alle Stücke aus D entfernt.
Offensichtlich ist WFFD (I) = WFFD (I). Es reicht also, eine optimale Lösung für I ′ zu
betrachten, denn WOPT (I ′) ≤ WOPT (I), d.h. I ′ besteht nur noch aus A, B , C. In jeder
zulässigen Lösung sind die Stücke aus A allein zugeordnet. In jedem Behälter sind höchstens 2 Stücke. Davon höchstens eines aus B. FFD packt nach den Stücken aus B, das
jeweils größtmögliche Stück aus C Münzen. Falls es Behälter gibt, die nur Stücke aus C
enthalten, dann gibt es unter Umständen Stücke B ′ ⊆ B, die alleine gepackt wurden.
Dann enthalten in einer optimalen Lösung auch |B ′| Behälter nur ein Stück aus B, d.h.
1
WOPT (I) = |A| + |B ′| + (|B | − |B ′| + |C | ) = WFFD (I)
2
33
3.2 Sequenzierung
Falls es keinen Behälter gibt, der nur Stücke aus C enhält, dann gilt:
WFFD (I) = |A| + |B | = WOPT (I)
Es gilt sogar:
WFFD (I) ≤
11
· WO PT (I) + 4
9
Wir wollen nun die letzte Abschätzung noch zeigen.
Beweis.
1
Sei ε > 0 mit ε < 32 . I enthalte 5 n Stücke, n sei durch 6 teilbar davon
1
•
n Stücke mit Größe a = 2 + ε
•
n Stücke mit Größe b = 4 + 2 ε
•
n Stücke mit Größe c = 4 + ε
•
und 2n Stücke mit Größe d = 4 − 2 ε
1
1
1
FFD erzeugt daraus nun folgende Belegung:
•
n Bins mit jeweils einem a und einem b (Füllung:
•
n
3
n
2
•
•
Bins mit 3 Stücken der Größe c (Füllung:
3
4
3
4
+ 3 ε)
+ 3 ε)
Bins mit 4 Stücken der Größe d (Füllung: 1 − 8ε)
WFFD (I) = n +
n
3
+
n
2
=
11
n
6
Die optimale Lösung sieht etwas anders aus.
•
n Bins mit jeweils einem a, c, d (Füllung:
•
n
2
•
WOPT (I) = 2 n
Bins mit jeweils 2 b und 2 d (Füllung:
1
2
1
2
1
1
+ ε + 4 + ε + 4 − 2ε = 1)
1
+ 4 ε + 2 − 4 ε = 1)
3
Daraus folgt nun:
11 3
· n
9 2
11
=
· WOPT (I)
9
WFFD (I) =
∞
Die relative asymptotische Güte von FFD RFFD
=
11
9
Definition 3.8. Sei Π ein Optimierungsproblem und A ein Approximationsalgorithmus. Die
relative asymptotische Güte (der asymptotische Gütequotient) von A ist
∞
RA
(n) = inf {T (n)|∃ Grenze g(n) mit: ∀I: OPT(I) ≥ g(n) ⇒ RA(I) ≤ r(n)}
Fall FFD mit OPT(I) ≥ 4 n:
RFFD (I) =
WFFD (I) 11
4
11 1
≤
+
≤
+
WOPT (I)
9
WOPT (I)
9
n
mit
11 1
+
inf r(n) =
n
9
=
11
9
3.2.2 Bemerkungen
Klassifizierung der Methoden ist unscharf, z.B. GREEDY KNAPSACK könnte auch als sequentieller
Algorithmus bezeichnet werden.
34
Techniken
3.3 Lokale Suche
•
Start mit zulässiger Lösung (die unter Umständen schon von einem anderen Algorithmus
gefunden wurde)
•
Versuch die bisherige Lösung iterativ zu verbessern durch benachbarte Lösungen
Schema für lokale Suche:
•
Eingabe: Fall I
•
Ausgabe: lokal optimale Lösung x bzw. Wx(I)
1. begin
2. y 4 vorgebene zulässige Lösung
3. while es gibt eine Nachbarlösung z von y die besser ist als y
a. do y 4 z
4. return y bzw. W y(I) (Stop in lokalem Optimum bezüglich gewählter Nachbarschaft
5. end
3.3.1 Maximaler Schnitt
MAXIMUM CUT
•
D = {G|G = (V , E)}
•
S(G) = {(V1, V2)|V = V1 ∪ V2, V1 ∩ V2 = ∅}
•
W (V1, V2) = |{(u, v)|(u, v) ∈ E , u ∈ V1, v ∈ V2}| (Anzahl der Knoten zwischen V1 und V2
•
max
Nachbarschaftsstruktur N :
1. (V1, V2) zulässige Lösung V = {v1, , vn }
2. Nachbarschaft von (V1, V2): alle Partitionen (V1k , V2k) mit
a. falls vk ∈ V1, dann V1k = V1 − {vk }, V2k = V2 ∪ {vk }
b. falls vk ∈ V2, dann V1k = V1 ∪ {vk }, V2k = V2 − {vk }
Satz 3.9. Sei G = (V , E). Sei (V1, V2) ein lokales Optimum bezüglich der Nachbarschaftsstruktur N und sei WN (V1, V2) der zugehörige maximale Wert. Dann gilt:
WOPT (G)
≤2
WN (V1, V2)
Beweis. Sei Gi = (Vi , Ei) der durch Vi induzierte Graph Ei = E ∩ Vi × Vi, mi = |Ei |, m = |E |,
mN = WN (V1, V2)
m = m1 + m2 + mN
(3.4)
Für gegebene Knoten vi ∈ V sei
M1i = {v |v ∈ V1 und (v, vi) ∈ E }
M2i = {v |v ∈ V2 und (v, vi) ∈ E }
m1i = |M1i |, m2i = |M2i |
Jede Lösung aus der Nachbarschaft von (V1, V2) hat höchstens den Wert mN = WN (V1, V2) (weil
V1, V2 lokal optimal). Dann gilt für jedes vi ∈ V1:
m1i − m2i = 0
35
3.3 Lokale Suche
Denn es gilt:
WN (V1, V2) − m2i + m1i = WN (V1i , V2i)
≤ WN (V1, V2)
Entsprechendes gilt natürlich auch für v j ∈ V2 mit m2 j − m1j ≤ 0. Daraus folgt nun aber
X
(m1i − m2i) = 2 m1 − mN ≤ 0
vi ∈V1
X
X
=
m1i −
m2i
vi ∈V1
(3.5)
vi ∈V1
mit
und daraus folgt nun
X
(m2 j − m1 j ) = 2 m2 − mN ≤ 0
v j ∈V2
2(m1 + m2 − mN ) ≤ 0
Also
− m1 − m2 + m N ≥ 0
und mit (3.4) wissen wir:
Es gilt nun immer:
1
2 m N ≥ m ⇒ mN ≥ m
2
WOPT (G) ≤ m.
Algorithmus LS-CUT(G)
1. V1 = ∅, V2 = ∅
2. while es gibt einen Knoten vk ∈ V mit W (V1k , V2k) > W (V1, V2) do
a. if vk ∈ V1 then V1 = V1 − {vk }, V2 = V2 ∪ {vk }
b. else V2 = V2 − {vk }, V1 = V1 ∪ {vk }
3. Ausgabe: V1, V2 oder W (V1, V2)
Satz 3.10.
Sei G eine beliebige Instanz von MAXIMUM CUT . Dann ist LS-CUT eine 2-Approximation mit
Laufzeit O(|E | · |V |).
Beweis. Der Algorithmus produziert offensichtlich eine lokale optimale Lösung bezüglich der
Nachbarschaftsstruktur N . Nach Satz gilt mit WLS −C UT (G) = WN (V1, V2)
RLS −C UT (G) =
WOPT (G)
≤ 2.
WLS −C UT (G)
Das Nachprüfen der Schleifenbedingung dauert bei entsprechender Impelementierung O(|V |) für
jeweilge Nachbarschaft. Da bei jeder erfolgreichen Verbesserung des Wertes um mindestens 1 die
Knotenanzahl wächst, ist man nach höchstens |E | Abfragen fertig. Die Laufzeit ist also insgesamt O(|V | · |E |).
3.3.2 Bemerkungen
Für Optimierungsprobleme sind viele Definitionen von Nachbarschaften möglich. Wichtige
Punkte dabei sind:
•
die Qualität der Lösung (Nähe zur optimalen Lösung)
•
Ordnung mit der die Nachbarschaft durchsucht wird
36
Techniken
•
Komplexität der Verifikation, dass es eine bessere Lösung in der Nachbarschaft gibt.
•
Anzahl der Lösungen, die erzeugt wurde, bis das lokale Optimum erreich wurde.
Beispiel 3.11. Nachbarschaftsstruktur TSP - 2-opt Struktur.
Zu gegebenem Hamiltonkreis H = (v1, , vn , v1) ersetze jeweils zwei Kanten (x, y) und (v, z)
durch Kanten (x, y) und (y, z). Dies kostet O(n2). Verbesserungen können leicht beim Euklidischen TSP erreicht werden. Bei zufälliger verteilten Punkten in der Ebene ergibt die Approximation Werte, die nur um 5.5% vom Optimum abweichen.
3.4 Lineare Optimierung als Basis
Seien A ∈ Rm×n , b ∈ Rm , c ∈ Rn. Wir minimieren cT x auf M mit M = {x ∈ Rn |x ≥ 0, A x ≥ b}
min
n
X
cjx j unter Nebenbedingung
j =1
n
X
aij x j ≥ bi , i = 1, , m, x j ≥ 0 j = 1, , n
j =1
Die lineare Optimierungsaufgabe heißt auch lineares Programm. Wenn nur rationale Zahlen
zugelassen sind, und der Lösungsvektor aus Z sein muss, dann heißt das Problem Integer
(Linear) Programming. Viele kombinatorische Probleme können als ILP formuliert werden.
3.4.1 Runden von Lösungen eines linearen Programmes
Aus einem ILP wird durch Relaxierung ein LP (durch Wegfallen der Forderung nach ganzzahligen Lösungen.) Lösungswerte für LP: xi ∈ Q.
(MINIMUM) WEIGHTED VERTEXCOVER(WVC)
•
D = {G = (V , E , c)|(V , E) ist Graph, c: V → R ≥0, Gewicht von Knoten vi}
•
S(V , E , c) = {V ′|V ′ Knotenüberdeckung, d.h. ∀(u, v) ∈ E gilt u ∈ V ′, v ∈ V ′}
P
W (V ′) = vi ∈V ′ ci
•
•
min
Mit ci = 1 ist dies genau VERTEX COVER (und dies ist natürlich NP-vollständig.)
X
ILPVC (G):
min
ci xi
vi ∈V
x j + xi = 1, ∀(vi , v j ) ∈ E , xi ∈ {0, 1}, ∀vi ∈ V
Die gewonnene Überdeckung ist V ′ = {vi |xi = 1}. Die Relaxierung davon ist xi ≥ 0.
Algorithmus ROUNDING WVC
Input: G = (V , E , c) mit ci = c(vi) ≥ 0
Ausgabe: Knotenüberdeckung von G.
1. Sei ILPVC das ganzzahlige lineare Programm und sei LPVC durch Relaxierung aus ILPVC
entstanden. Sei x∗(G) die optimale Lösung von LPVC .
2. V ′ 4 {vi |x∗i (G) ≥ 0.5}
Satz 3.12. Der Algorithmus ROUNDING WVC ist eine polynomielle 2-Approximation.
Beweis.
1. Optimale Lösung x∗(G) = (x∗1(G), , x∗n(G)), n = |V | von LPVC kann in polynomieller Zeit
berechnet werden.
2. V ′ ist Knotenüberdeckung von G, denn angenommen es gäbe (vi , v j ) ∈ E mit vi V ′ und
v j V ′. Daraus folgt nun aber, dass x∗i (G) < 0.5 und x∗j (G) < 0.5. und daraus folgt dann
x∗i (G9 + x∗j (G) < 1. Dies ist ein Widerspruch zur Zulässigkeit von x∗(G) mit x∗i (G) +
x∗j (G) ≥ 1.
37
3.4 Lineare Optimierung als Basis
3. Sei WOPT (G) die optimale Lösung, d.h. von ILPVC .
X
∗
WLP
(G) =
ci x∗i (G)
vi ∈V
ist der für LPVC errechnete optimale Wert, d.h. es gilt
∗
WO PT (G) ≥ WLP
(G)
Außerdem gilt natürlich:
WRVC (V ′) =
X
ci
′
vX
i ∈V
ci 2 xi∗(G)//x∗i (G) ≥ 0.5
′
vi ∈V
X
ci x∗i (G)
≤ 2·
≤
vi ∈V
∗
= 2 WLP
(G)
≤ 2 WOPT (G)
3.4.2 Primal-duale Algorithmen
Bisherige Resultate mit Khahiyan: O((m + n)8 · (|A| + |b| + |c|)2). Die primal-dual Methode
versucht diese Laufzeit zu senken. Zu jedem linearen Minimierungsproblem gibt es ein duales
lineares Maximierungsproblem (DLP).
Maximiere
unter den Nebenbedingungen:
m
X
i=1
m
X
biyi
aij yi ≤ c j , j = 1, , n
i=1
yi ≥ 0, i = 1, , m
Ein bekanntes Ergebnis daraus ist der Dualitätssatz.
∗
Satz 3.13. Der optimale minimale Wert WLP
für das lineare Programm ist gleich dem optimalen maximalen Wert für das duale lineare Programm.
Für alle zulässigen Lösungen y = (y1, , ym) von DLP gilt
∗
∗
∗
WDLP (y) ≤ WDLP
(y∗) = WLP
(x∗) ≤ WILP
(
?
z∗
)
ganzzahlig
Bei der primal-dualen Methode werden gleichzeit berechnet:
•
(möglicherweise nicht zulässige) ganzzahlige Lösung x für ILP
•
(nicht notwendigerweise optimale) zulässige Lösungen y für DLP
•
Bei jedem Schritt werden x und y untersucht und modifiziert, um neue x ′ und y ′ zu
erzeugen mit:
◦
x ′ „zulässiger“
◦
y ′ „optimaler“
Ein kleines Beispiel dazu.
Kanten e1, , em mit m = |E |. Die Nebenbedingungen für ILPVC lauten:
xi + x j ≥ bh = 1, h = 1, , m, eh = (vi , v j )
xi ∈ {0, 1} für i = 1, , n.n = |V |
y(i,j) = yh , eh = (vi , v j )
38
Techniken
Für DLPVC ist yij = 0 , ∀(vi , v j ) ∈ E eine zulässige Lösung und V ′ = ∅. Dies ist jedoch keine
zulässige Lösung für ILPVC .
Algorithmus Primal-Dual Weighted Vertex Cover
Eingabe: G = (V , E , c)
Ausgabe: Knotenüberdeckung V ′ ⊆ V
1. ILPVC zugehöriges ganzzahliges lineares Programm, DLPVC das duale der lineare Relaxierung LPVC
2. for all (vi , v j ) ∈ E do yij = yji = 0
3. V ′ 4 ∅
4. while V ′ ist keine Knotenüberdeckung do
a. Sei (vi , v j ) ∈ E von V ′ nicht bedeckt;
P
P
b. ∆yij = min (ci − k,(vi ,vk)∈E yik , c j − k,(vj ,vk)∈E yjk)
c. yij = y ji = yij + ∆yij
P
y = ci then V ′ 4 V ′ ∪ {vi }
d. if
k,(vi ,vk)∈E ik
e. else V ′ 4 V ′ ∪ {v j }
5. Gib V ′ aus
Satz 3.14. Der Algorithmus PDVC findet eine zulässige Lösung für MINIMUM WEIGHTED VERTEX
COVER mit
W
(G)
≤2
RPDVC (G) = PDVC
WOPT (G)
Beweis. V ′ sei Lösung durch Algorithmus.
1. V ′ ist zulässige Lösung.
2. ∀vi ∈ V ′:
X
?
yij = ci
j ,(vi ,v j )∈E
Dann gilt:
WPDVC (G) =
=
X
vi ∈V
≤
ci
′
vX
i ∈V
′
X
yij
j.(vi ,v j )∈E
X
X
yij
vi ∈V j ,(vi ,v j )∈E
A lle Kanten
X werden doppelt gezählt
= 2·
X
yij ≤
yij
(vi ,v j )∈E
∗
WDLP V C
(vi ,v j )∈E
≤
≤
=
⇒
WPDVC (G) ≤
∗
WLP
∗
WILP
WOPT (G)
2 · WOPT (G)
Bemerkung 3.15. Die Laufzeit dieses Algorithmus beträgt O(|E | + |V |).
39
3.5 Randomisierte Approximationsalgorithmen
3.5 Randomisierte Approximationsalgorithmen
Algortihmus Random Weighted Vertex Cover (RVC)
•
Input: G = (V , E , c) mit Kantengewichten c
•
Ausgabe: Überdeckung U , U ⊆ V
1. U 4 ∅
2. while E ∅ do
a. Wähle Kanten e = (v, t) ∈ E
b. Wähle zufällige Knoten x ∈ {v, t} mit Wahrscheinlichkeit
P (x = v) =
c(t)
c(v) + c(t)
c. U = U ∪ {x}
d. E 4 E \{e|x ist inzident zu Kanten e} //entferne alle e die x überdeckt
3. Gib U aus.
Bemerkung 3.16. Die Laufzeit dieses Algorithmus ist O(|V | + |E |).
Sei WRVC (I) die Zufallsvariable, die den Wert der Lösung bezeichnet, die der Algorithmus
RVC bei Eingabeinstanz I = G gefunden hat.
Satz 3.17.
Sei G = (V , E , c) beliebige Eingabe für den Algorithmus RVC . Dann gilt für den erwarteten
Lösungswert
E(WRVC (I)) ≤ 2 · WOPT (G)
Beweis. Sei U die von RVC gefundene Lösung, d.h. U ⊆ V . Sei U ∗ eine optimale Überdeckung.
Für v ∈ V definiere Zufallsvariable Xv
c(v) v ∈ U
Xv =
0
sonst
Es gilt nun:
X
Xv )
E(WRVC (I)) = E(
v
∈U
X
X
E(Xv )
E(Xv) ≤
=
v ∈V
v ∈U
und
X
E(Xv) = E
v ∈U ∗
Xv
X
c(v)
v ∈U ∗
≤ E
!
X
v ∈U ∗
!
Um den Satz zu beweisen, reicht es folgendes zu zeigen:
X
X
E(Xv) ≤ 2 ·
E(Xv )
v ∈V
v ∈U ∗
Wenn Kante (v, t) vom Algorithmus in der Schleife in (2.a) gewählt wurde, dann sagen wir:
(v, t) nimmt Knoten v gdw. v wird in (2.b) zufällig ausgewählt.
Sei N (v) = {u|u ∈ V ∧ (v, u) ∈ E } und Zufallsvariable X(v,t),v so definiert
c(v) falls (v, t) nimmt v
X(v,t),v =
0
sonst
(3.6)
40
Techniken
Falls X(v,t),v = c(v) ist, dann gilt für alle t ′ t mit t ′ ∈ N(v):
X(v,t ′),v = 0
Also gilt
Xv =
X
X(v,t),v
X
E X(v,t),v
t∈N (v)
und damit
E(Xv) =
t∈N (v)
und außerdem
(3.7)
E(X(v,t),v ) = E(X(v,t),t)
Dies gilt noch zu beweisen:
E(X(v,t),v ) = c(v) P ((v, t) nimmt v)
c(t)
c(v) + c(t)
c(v)
= c(t) · P ((v, t) wurde gewählt) ·
c(v) + c(t)
= c(t) · P ((v, t) nimmt t)
= E(X(v,t),t)
= c(v) · P ((v, t) wurde gewählt) ·
Es gilt nun also
und
X
E(Xv ) =
v ∈U ∗
X
X
X
(3.8)
E(X(v,t)v)
v ∈U ∗ t∈N (v)
E(Xv) =
v U∗
X
X
E(X(v,t),v)
v U ∗ t∈N (v)
=
X
X
E(X(v,t),t)
(3.9)
v U ∗ t∈N (v)
Beachte nun, dass ∀v U ∗ jeder Knoten t ∈ N (v) in U ∗ liegen muss (also t ∈ U ∗).
Sei w U ∗ beliebig und y ∈ N (w) beliebig. Dann ist
Summand in (3.9)
E(X(w.y),y)
Wegen y ∈ U ∗ und w ∈ N (y) ist
E(X(y,w), y) = E(X(w, y),y) Summand in (3.8)
D.h. jeder Summand in (3.9) kommt als Summand in (3.8) vor. Daher
X
X
E(Xv ) ≤
E(Xv )
r U ∗
X
v ∈V
v ∈U ∗
E(Xv ) =
X
E(Xv ) +
X
E(Xv )
v U∗
v ∈U ∗
≤ 2
X
E(Xv )
v ∈U ∗
3.6 Dynamische Programmierung
Dabei wird eine optimale Lösung aus eienr beschränkten Anzahl von optimalen Lösungen von
Subproblemen erzeugt.
41
3.6 Dynamische Programmierung
3.6.1 Ein pseudo-polynomieller Algorithmus für KNAPSACK
Sei beliebige Instanz I = (a1, , an , p1, , pn , b) von (MAXIMUM) KNAPSACK gegeben. Für jedes k,
P
1 ≤ k ≤ n, und für jedes p ∈ N, 0 ≤ p ≤ ni=1 pi, betrachte folgendes Subproblem: Finde eine
P
Untermenge J der Stücke aus {1, , k}, die genau Profit p erbringt, wobei
i∈J ai ≤ b minimal
wird. Wir nutzen dabei folgende Bezeichnungen:
M ∗(k, p) ist optimale Lösung dieses Subproblems M ∗(k, p) ⊆ {1, , k}
P
• S ∗(k, p) die zugehörige Fülle des Rucksacks, d.h. S ∗(k, p) = j ∈M ∗(k, p) a j
P
Falls es keine optimale Lösung gibt, dann S ∗(k, p) = 1 + ni=1 ai
•
Bemerkung 3.18. (Bezeichnungen)
M ∗(k, p) ist optimale Lösung zu dem entsprechenden Subproblem (M ∗(k, p) ⊆ {1, , k})
P
• S ∗(k, p) = j ∈M ∗ a j zugehörige Füllung des Rucksacks, falls M ∗(k, p) definiert ist
P
Falls es keine Lösung gibt, dann sei S ∗(k, p) = 1 + ni=1 ai (eine Füllung, die nie erreicht werden
kann)
•
Definition 3.19.
•
M ∗(1, 0) = ∅
•
M ∗(1, p1) = {1}
•
M ∗(1, p) ist undefiniert für p p1
P
Für alle k, 2 ≤ k ≤ n, und für alle p, 0 ≤ p ≤ ni=1 pi gilt
 ∗
 M (k − 1, p − pk } ∪ {k} falls pk ≤ p, M ∗(k − 1, p − pk) ist definiert , S ∗(k − 1, p) ≥
∗
M (k, p) =
S ∗(k − 1, p − pk) + ak , und S ∗(k − 1, p − pk) + ak ≤ b
 ∗
M (k − 1, p)
sonst
Bemerkung 3.20. Falls S ∗(k − 1, p) < S ∗(k − 1, p − pk) + ak bringt Hinzunahme des Stücks k
keinen neuen optimalen Wert, da Restkapazität des Rucksackes verkleinert wird.
Algorithmus RUCKSACK-DP (dynamic programming)
Input: I = < a1, , an , p1, , pn , b >
P
• Ausgabe: Y ⊆ {1, , n} mit
i∈Y ai ≤ b
Pn
1. for p 4 0 to
i=1 pi do
•
a. M ∗(1, p) = undef.
P
b. S ∗(1, p) = 1 + ni=1 ai
2. M ∗(1, 0) = ∅; S ∗(1, 0) = 0; M ∗(1, p1) = {1}; S ∗(1, p1) = a1;
3. for k = 2 to n do
a. for p = 0 to
Pn
i=1
pi do
i. if pk ≤ p and M ∗(k − 1, p − pk) undef and S ∗(k − 1, p − pk) + ak ≤
S ∗(k − 1, p) and S ∗(k − 1, p − pk) + ak ≤ b then
•
M ∗(k, p) = M ∗(k − 1, p − pk) ∪ {k}
•
S ∗(k, p) = S ∗(k − 1, p − pk) + ak
ii. else
•
M ∗(k, p) = M ∗(k − 1, p)
•
S ∗(k, p) = S ∗(k − 1, p)
42
Techniken
4. p∗ = max {p|M ∗(n, p) undef}
5. Gib Y
4 M ∗(n, p∗) aus
Bemerkung 3.21. Falls M ∗(k − 1, p)=undef und M ∗(k − 1, p − pk) definiert ist, dann gilt
immer
n
X
S ∗(k − 1, p − pk) + ak ≤
ai < S ∗(k − 1, p)
i=1
und das Stück k wird hinzugenommen, falls es in den Rucksack passt.
Falls M ∗(k − 1, p − pk) auch nicht definiert ist, so kann der Profikt = p für eine Teilmenge
von {1, , k} nicht erreicht werden, und damit ist auch M ∗(k, p) = M ∗(k − 1, p) = undef richtig
gesetzt.
Satz 3.22. I beliebige Instanz von MAX-KNAPSACK mit n Stücken und Profiten
p1, , pn. Dann
P
findet der Algorithmus Rucksack-DP eine optimale Lösung in Zeit O(n ·
pi).
Beweis. Korrektheit
P
P
∗
Angenommen, es gibt J ⊆ {1, , n} mit
i∈J ai ≤ b und
i∈J pi > p . Dann gibt es ein
′
∗
kleinstes Element n, für
P das das gilt. Sei k = max {i|i ∈ J } und p = max {p|M (k, p) undef}.
′
∗
Offenbar ist p ≤ p < i∈J pi. Dann ist mit k = n eine kleinste Instanz gefunden.
/
P
P
P
′
Sei J ′ = J {k }. Dann gilt
′ pi =
i∈J ai ≤ b − ak und
i∈J pi − pk > p − pk. Also
i∈J
gilt
X
pi ≤ max {p|M ∗(k − 1, p) undef}
i∈J
′
= p ′′
D.h.
X
pi =
i∈J
≤
≤
=
<
X
i∈J
′′
pi + pk
′
p + pk
max {p|M ∗(p, k) undef}
p′
X
pi
i∈J
Dies stellt einen Widerspruch dar.
P Laufzeit: In der Schleife sind alle Operationen in O(1). Schleifendurchläufe insgesamt O(n ·
pi).
Dies sieht jetzt natürlich im ersten Moment polynomiell aus. Die Zahlen pi sind ganze
Zahlen. Sie benötigen f+r die Darstellung nur log pi + 1 Bins. Dies ist bei der Aufsummierung
exponentiell. Falls alle Zahlen pi, ai ∈ O(nk) für ein festes k, dann ist die Laufzeit polynomiell.
Definition 3.23. Pseudo-polynomielle Algorithmen
Sei für ein Optimierungsproblem Π MAXNR(I) die größte vorkommende Zahl in einer
Instanz I. Ein optimaler Algorithmus ALG heißt pseudopolynomiell gdw. seine Laufzeit durch
O(poly(|I |, MAXNR(I))))
beschränkt ist.
Falls die Profite der Stücke alle von der Form pi = a · zi sind, mit a, zi ∈ N, dann
Pist die
p
erreichbare Profitsumme p = a · z. Mit Schrittweite a statt 1 führt das zur Laufzeit O n · a i .
43
3.6 Dynamische Programmierung
3.6.2 Ein FPAS für MAX-KNAPSACK
Algorithmus Approxmations-Schema Knapsack (ASK)
•
•
Eingabe: I Instanz von KNAPSACK, ε > 0 (Fehler)
P
Ausgabe: Y ⊆ {1, , n} mit
i∈Y ai ≤ b
1. pm ax = max {pi |1 ≤ i ≤ n}
n
2. if pm ax ≥ 2 · ε then
εp
• t = log nm a x
3. else
•
t4 0
4. I sei die aus I abgeleitete Instanz mit Profiten pi′ =
′
′
5. Wende Algorithmus RUCKSACK-DP auf I an
pi 2t
6. Gib Y aus, die Lösung von RUCKSACK-DP
Satz 3.24. Sei I beliebige Instanz von KNAPSACK mit n Stücken und ε > 0. Dann gilt:
|W
(I) − WASK (I , ε)|
≤ε
εASK (I , ε) = OPT
WOPT (I)
1
wobei die Laufzeit O ε · n3 ist, d.h. ASK ist ein FPAS.
n
Beweis. Falls pm ax < 2 · ε , damit ist t = 0 und pi′ = pi. Man erhält optimale Lösung in Zeit
!
n
X
O n·
pi ⊆ O(n n pm ax )
i=1
n
⊆ O n2 ·
ε
n
Sei also pm ax ≥ 2 · ε . Dann ist die Laufzeit
O n+n·
n
X
pi′
i=1
Es gilt dabei
Daraus folgt nun aber:
!
j
ε · pm ax k
ε · pm ax
t = log
≥ log
−1
n
n
2t ≥
1 ε · pm ax
·
n
2
Dies können wir nun weiterverwenden und erhalten:
%
n
n $
X
X
pi
′
pi =
2t
i=1
i=1
n
X
pi
≤
2t
i=1
n
1 X
= t
pi
2
i=1
n
· n · pm ax
≤ 2·
ε · pm ax
n2
≤ 2·
ε
!
3
n
X
n
O n+n·
pi ⊆ O
ε
i=1
44
Techniken
Nun müssen wir noch die Fehlerabschätzung beweisen. Sei X die optimale Lösung für
Instanz I und Y die gewonnene Lösung, die optimal für I ′ ist. X und Y sind beide zulässige
Lösungen für I und I ′ denn ai und b wurden nicht verändert.
X
pi
WASK (I , ε) =
i∈Y
X
p
2t · ti
2
i∈Y
$ %
X pi
t
≥ 2
2t
=
i∈Y
= 2t · WOPT
$ (I)
%
X pi
t
≥ 2
2t
i∈X
X pi
≥ 2t
−
1
2t
i∈X
X
=
pi − 2t · |X |, |X | ≤ n
?
i∈X
WO P T
≥ WOPT (I) − n · 2t
WOPT (I) − WASK (I , ε) ≤ n · 2t
ε · pm ax
≤ n·
n
≤ ε · pm ax
≤ ε · WOPT (I)
Hier gibts was mit ner Verbesserung des Algorithmus ASK zu ASK+, texmacs ist mir nur
abgestürzt ;)
Kapitel 4
Klassen von Optimierungsproblemen
Definition 4.1. Ein Optimierungsproblem Π liegt in der Klasse NPO gdw.
1. ∀w ∈ Σ∗ kann in Polynomialzeit w ∈ D? entschieden werden, d.h., alle Instanzen I ∈ D
können in Polynomialzeit erkannt werden.
2. Es gibt ein Polynom p, so dass für jede Instanz I ∈ D gilt:
a. Für jedes zulässige σ ∈ S(I) ist |σ | ≤ p(|I |)
b. Für jedes g ∈ Σ∗ mit |y | ≤ p(|I |) kann in Polynomialzeit entschieden werden, ob
y ∈ S(I) ist, d.h. ob y eine zulässige Lösung ist.
3. Für jede Instanz I kann zu jeder zulässigen Lösung σ ∈ S(I) der Wert w(σ) in Polynomialzeit berechnet werden.
Definition 4.2. (Zusammenhang zwischen Optimierungs- und Entscheidungsproblemen)
Sei Π = (D, S , W , goal) ein Optimierungsproblem. Das zugehörige Entscheidungsproblem ist
dann die Menge Πent = { < I , k > |I ∈ D, k ∈ N.∃σ ∈ S(I): W (σ) ≤ k} (oder k ≤ W (σ) für Maximierungsproblem).
Satz 4.3. Falls Π ∈ NPO, dann gilt Πent ∈ NP.
Definition 4.4. Ein Optimierungsproblem Π liegt in der Klasse PO gdw. Π ∈ NPO und zu
jeder Instanz I ∈ D kann in polynomieller Zeit eine optimale Lösung berechnet werden.
Beispiel 4.5. (Probleme in PO)
•
SHORTEST PATH
•
MST
•
Linear Programming
Satz 4.6. Falls PO = NPO ⇒ P = NP
Beweis. VERTEX COVER liegt in NPO. Falls PO = NPO, dann kann minimale Kantenüberdeckung in polynomieller Zeit gefunden werden. Dafür erhält man jedoch eine Lösung für das
Entscheidungsproblem in poylnomieller Zeit. Dieses ist jedoch ein NP-vollständiges Problem.
Definition 4.7. Π ∈ NPO, F = {f |f : N → R} Funktionsmenge
1. Π liegt in der Klasse F-APX gdw. es gibt einen polynomiellen Approximationsalgorithmus
A mit relativer Güte RA(n) ∈ F.
2. Fkonst = {f | f ∈ F , ∀i, j ∈ N: f (i) = f (j)} sei die Menge der konstanten Funktionen.
APX 4 Fkonst − APX
3. Π liegt in der Klasse
(F)PAS, wenn es für Π ein (F)PAS gibt.
Satz 4.8. (Hierarchie)
PO ⊆ FPAS ⊆ PAS ⊆ APX ⊆ NPO
45
46
Klassen von Optimierungsproblemen
Wenn P
NP, dann sind alle Inklusionen echt.
Beispiel 4.9.
•
PO: MST,LP
•
FPAS: KNAPSACK
•
PAS: euklidisches TSP
•
APX: BINPACKING, ∆TSP
•
NPO: TSP
Definition 4.10. Π ∈ NPO und mit absoluter konstanter Güte approximierbar. Dann liegt Π in
der Klasse ABS (absolut approximierbar).
ABS ⊆ APX
Definition 4.11. (Asymptotisches polynomielles Approximationsschema)
APAS
•
A Approximationsalgorithmus für Π mit Eingabe: I beliebige Instanz, ε ∈ (0, 1) beliebig
•
A ist APAS gdw, es gibt eine Konstante k, so dass
RA(I , ε) ≤ 1 + ε +
k
, ∀I
WOPT (I)
und die Laufzeit ist polynomiell in |I |.
•
Klasse PAS∞ : alle Π ∈ NPO für die es ein APAS gibt
Beispiel 4.12.
Binpacking liegt in PAS∞
Es gilt weiterhin:
•
PAS ⊆ PAS∞
•
ABS ⊆ PAS∞
Definition 4.13. (Fixed-parameter Algorithmus)
bestimmen eine optimale Lösung für eine beliebige Instanz I, |I | = n und Parameter k in
f (k) · nO(1)
Schritten.
Beispiel 4.14. VERTEX COVER Man kann eine Überdeckung mit Größe k in
O(1.28k · n)
Nachwort
Neben den hier vorgestellten Modellen gibt es noch weitere Ansätze, die hier nicht besprochen
werden:
•
Randomisierte Algorithmen
•
Derandomisierung
•
Heuristiken (die oft gut laufen, onhe dass man genau weiß, warum das so ist, z.B. genetische Algorithmen)
•
Tuning
•
Fixed-Parameter Algorithmen
47
Herunterladen