Satz 5.3.18. Die Christofides-Heuristik ist ein

Werbung
Satz 5.3.18. Die Christofides-Heuristik ist ein
für ∆-TSP.
3
2 -approximativer
Algorithmus
Beweis. Der in Schritt 2 konstruierte Graph ist Eulersch, d.h. alle Knoten haben
geraden Grad, denn es gibt in T gradzahlig viele Knoten mit ungeradem Grad;
beim perfekten Matching erhöht sich der Grad von jedem dieser Knoten um 1.
Für die Rundreise τ gilt:
c(τ )
≤
c(G) = c(T ) + c(M )
und
c(T ) ≤ c(τopt )
Lemma
Sei i1 , i2 , . . . , i2m die Folge der Knoten von T mit ungeradem Grad in der Reihenfolge wie sie in τopt auftreten, d.h.
τopt = α0 i1 α1 . . . i2m α2m .
Die αj sind Folgen von Knoten für j = 1 . . . 2m.
Jetzt betrachten wir die zwei Matchings:
M1
M2
=
{i1 , i2 }, {i3 , i4 }, . . . , {i2m−1 , i2m }
=
{i2 , i3 }, {i4 , i5 }, . . . , {i2m−2 , i2m−1 }, {i2m , i1 }
und
Es gilt
c(τopt ) ≥ c(M1 ) + c(M2 )
wegen der ∆-Ungleichung und
c(τopt ) ≥ 2c(M ),
da M ein perfektes Matching von {i1 , . . . , i2m } von minimalem Gewicht ist.
Also ist
c(M ) ≤
1
c(τopt )
2
und
141
c(T ) ≤ c(τopt )
und damit
c(τ ) ≤ c(M ) + c(T ) ≤
5.3.2
3
c(τopt ).
2
Negativ-Ergebnis für TSP
Satz 5.3.19. Für kein α > 1 gibt es einen α-approximativen Algorithmus polynomieller Laufzeit für TSP, es sei denn P = N P .
Beweis. Wir zeigen: die α-Approximation von TSP ist NP-schwer für jede Konstante α > 1.
Angenommen es existiert ein Polynomzeit-Algorithmus Aα für ein bestimmtes
α. Daraus lässt sich ein Polynomzeit-Algorithmus AHK für Hamiltonschen Kreis
(HK) konstruieren.
Gegeben: G = (V, E) Eingabe für HK
Konstruiere Problemstellung für TSP wie folgt: Wähle n = |V | Knoten und
1
falls (i, j) ∈ E,
dij =
.
2 + εn sonst, wobei ε = α − 1
Wende Aα auf diese Problemstellung für TSP an. Dies liefert eine α-Approximation
für die kürzeste Rundreise.
Behauptung: Aα liefert eine Rundreise der Länge n ⇐⇒ G hat einen Hamiltonkreis.
Beweis:
⇒: ist klar
⇐: Angenommen G hat einen Hamiltonschen Kreis. Dann existiert eine Rundreise der Länge n. Also liefert Aα eine Rundreise τ 0 der Länge ≤ αn. Angenommen
darin befindet sich eine Kante vom Gewicht 2 + (1 − α)n. Dann sind die Kosten
von τ 0 :
c(τ 0 ) ≥ 2 + (α − 1)n + n − 1 = 2 − n + αn + n − 1 = αn + 1
-Widerspruch-
Es existieren also Unterschiede zwischen den verschiedenen NP-vollständigen
Problemen bezüglich ihrer Approximierbarkeit, falls P 6= NP. Diese lassen sich
folgendermaßen unterteilen:
• Probleme, die α-approximierbar sind für ein festes α > 1.
• Probleme, die α-approximierbar sind für kein α > 1.
• Probleme, die α-approximierbar sind für beliebiges α > 1.
142
Ein Beispiel für ein Problem, das α-approximierbar ist für ein festes α > 1 ist
∆-TSP, welches 1,5-approximierbar ist. Ein Problem, das α-approximierbar ist
für kein α > 1 ist TSP (falls P 6= NP). Ein Beispiel für ein Problem der letzten
Klasse ist Subset Sum (als Optimierungsproblem).
5.3.3
Approximationsalgorithmus für Subset Sum
Subset Sum
Gegeben: Zahlen c1 , c2 , . . . , cn , k
Frage: Gibt es eine Teilmenge S ⊂ {1, 2, . . . , n} mit
P
i∈S ci
=k
zugehöriges Optimierungsproblem:
Finde das maximale Gewicht einer Teilmenge mit Gewicht ≤ k.
Algorithmus
Wir betrachten zunächst einen Algorithmus mit exponentieller Laufzeit zur exakten Lösung:
SUBSUM(c1 , c2 , . . . , cn , k)
1. L0 := (0)
2. für i = 1, 2, . . . , n
3.
Li := M ISCHE(Li−1 , Li+1 + ci )
4.
entferne alle Elemente > k aus Li
5. gib das größte Element von Ln aus.
Li enthält alle aus c1 , . . . , ci bildbaren Teilsummen, und mit M ISCHE ist das
Mischen von zwei sortierten Listen gemeint.
Daraus leiten wir einen (1 − α)-approximativen Algorithmus mit polynomieller
Laufzeit ab.
Idee: “Trimme” jede Liste Li nach ihrer Konstruktion.
TRIM(L,δ)
1. L0 :=< y1 >
2. for i := 2, . . . , m
3.
falls letztes Element von L0 < (1 − δ) · yi
4.
dann hänge yi an L0 an.
Erweitere den Algorithmus SUBSUM um das Trimmen der Listen, indem nach
Zeile 3 die Zeile 3a eingefügt wird:
3.a Li := T RIM (Li , nε )
143
Qualität der Approximation:
Sei
Pi :=
nX
o
ci S ⊂ {1, . . . , i} .
j∈S
Da alle Elemente von Li in Pi sind, wird in Zeile 5 des Algorithmus SUBSUM
eine Teilsumme z ∈ Pn ausgegeben.
Behauptung: z ≥ (1 − ε)smax , wobei smax = maximale Teilsumme ≤ k.
Beweis: Zeile 3a des Algorithmus bewirkt:
Zu jedem Element s der ursprünglichen Liste Li existiert ein Element s0 in der
neuen Liste Li mit s ≥ s0 ≥ (1 − nε )s
In jedem Durchlauf ist der relative Fehler (1 −
Fehler (1 − nε )n . Daher gilt:
smax ≥ z ≥ smax · (1 −
ε
n ).
Insgesamt ist der relative
ε
).
n
Es ist (1 − nε )n ≥ 1 − ε für alle n. Damit ist die Behauptung bewiesen.
Laufzeit der Approximation:
Wie lang kann Li (nach dem Trimmen) sein?
Für aufeindander folgende Elemente s, t gilt:
1
s
≥
t
1−
ε
n
.
Betrachte Li : 0, s1 , s2 , s3 . . . , sm .
Es gilt:
s1 ≥ 1, s2 ≥
s
1
≥
t
1−
ε
n
, . . . , sm ≥
1
≤k
(1 − nε )m−1
Daraus folgt:
m≤
Also ist die Laufzeit:
O
n · ln(k)
+ 1.
ε
n2 · log(k) ε
.
Damit ist die Laufzeit von SUBSUM polynomiell in der Größe der Eingabe
und 1/ε. Für ein gegebenes festes ε > 0 ist 1/ε konstant. Also ist SUBSUM
(1 − ε)-approximierbar, wobei ε > 0 eine beliebig kleine Konstante ist.
Solch ein Algorithmus heißt PTAS (polynomial time approximation scheme)
und FPTAS (fully polynomial time approximation scheme).
144
Herunterladen