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