Lösungsvorschläge – Blatt 4

Werbung
Departement Informatik
Approximations- und
Online-Algorithmen
Dr. Hans-Joachim Böckenhauer
Dr. Dennis Komm
http://www.ita.inf.ethz.ch/appron17
Lösungsvorschläge – Blatt 4
Zürich, 22. März 2017
Lösung zu Aufgabe 6
(a) Für jedes i = 1, . . . , n betrachten wir die Menge TRIPLEi , in der FPKP ausgewählte
Lösungen für die Teilinstanz Ii := (b, w1 , . . . , wi ) mit den ersten i Gegenständen
speichert. Wir zeigen, dass sich zu jeder Lösungen T dieser Teilinstanz eine Lösung
T 0 in TRIPLEi findet, deren Gesamtgewicht höchstens iδ kleiner ist, aber sicher
nicht grösser:
Induktionsbehauptung:
∀T ∈ M(Ii ) ∃(c, w, T 0 ) ∈ TRIPLEi : 0 ≤ cost(T ) − cost(T 0 ) ≤ iδ
Die Induktion zeigt für i = n also insbesondere, dass zu jeder optimalen Lösung Topt
0
der vollständigen Instanz In eine Lösung Topt
in TRIPLEn gespeichert ist, deren
Gewicht um höchstens nδ von der optimalen Lösung abweicht. Und FPKP wählt am
Ende unter den in TRIPLEn gespeicherten Lösungen eine bestmögliche, somit ist
die Aussage gezeigt.
Induktionsverankerung:
Die Induktionsverankerung ist trivial: Auf der Teilinstanz (b, w1 ) kommen nur zwei
Lösungen in Betracht, die in Schritt 1 beide in TRIPLE1 abgespeichert werden.
Induktionsschritt:
Wir beweisen jetzt den Induktionsschritt von i − 1 zu i. Wir zeigen zuerst:
∀T ∈ M(Ii ) ∃(c, w, T 0 ) ∈ SETi : 0 ≤ cost(T ) − cost(T 0 ) ≤ (i − 1)δ
Wegen SETi ⊇ TRIPLEi folgt aus der Induktionsvoraussetzung direkt:
∀T ∈ M(Ii−1 ) ∃(c, w, T 0 ) ∈ TRIPLEi−1 : 0 ≤ cost(T ) − cost(T 0 ) ≤ (i − 1)δ
Wir müssen also nur noch zeigen, dass auch für jede neuen Lösungen T ∈ M(Ii ) \
M(Ii−1 ) eine Lösung T 0 ∈ SETi mit 0 ≤ cost(T ) − cost(T 0 ) ≤ iδ existiert.
Diese neuen Lösungen entstehen durch Hinzufügen von i zu einer bisherigen Lösung
T . Dies ist genau dann möglich, wenn T ∪ {i} die Kapazität b nicht überschreitet,
sei also
cost(T ∪ {i}) ≤ b.
Zu T ist in TRIPLEi−1 bereits eine Lösung T 0 gespeichert, die 0 ≤ cost(T ) −
cost(T 0 ) ≤ (i − 1)δ erfüllt, also kleineres Gewicht hat. Somit überschreitet auch
T 0 ∪ {i} die Kapazität nicht
cost(T 0 ∪ {i}) ≤ b,
und wird somit von FPKP in SETi gespeichert. Dann gilt
0 ≤ cost(T ∪ {i}) − cost(T 0 ∪ {i}) = cost(T ) − cost(T 0 ) ≤ iδ,
wir haben also ein T 0 gefunden, dass die Bedingung erfüllt.
Damit ist wie gewünscht
∀T ∈ M(Ii ) ∃(c, w, T 0 ) ∈ SETi : 0 ≤ cost(T ) − cost(T 0 ) ≤ (i − 1)δ
bewiesen und es folgt
∀T ∈ M(Ii ) ∃(c, w, T 0 ) ∈ TRIPLEi : 0 ≤ cost(T ) − cost(T 0 ) ≤ iδ,
weil FPKP zu jeder Lösung in SETi mindestens eine nach TRIPLEi übernimmt,
deren Gewicht gleich oder höchstens δ kleiner ist.
(b) Aus (a) folgt sofort, dass die Distanz der berechneten von der optimalen Lösung höchstens nδ ist. Weil wi ≤ b für 1 ≤ i ≤ n gilt, können wir zusätzlich die Abschätzung
cost(Opt(I)) ≥ v verwenden und erhalten
cost(Opt(I))
cost(Opt(I))
nδ
nδ
≤
=1+
≤1+
,
cost(FPKP(I))
cost(Opt(I)) − nδ
cost(Opt(I)) − nδ
v − nδ
also muss gelten
nδ
≤ ε,
v − nδ
und daraus folgt schliesslich
δ≤
εv
.
n(1 + ε)
(c) Die Laufzeit des Algorithmus hängt im Wesentlichen vonlderm Anzahl Teillösungen
ab, die gespeichert werden müssen. Dies sind höchstens nv
viele. In jeder der n
δ
Iterationen der dynamischen Programmierung muss jede der bisher gespeicherten
Teillösungen mit den kleineren Teillösungen verglichen werden. Damit ergibt sich
insgesamt eine Laufzeit von
nv
O n·
δ
2 !
!
n3 v 2
,
=O
δ2
und unsere Abschätzung aus (b) liefert
n3 v 2
O
δ2
!
n3 v 2 n2 (1 + ε)2
⊆O
ε2 v 2
!
!
n5 (1 + ε)2
=O
.
ε2
(bitte wenden)
Lösung zu Aufgabe 7
(a) Sei U ∈ N PO ein Optimierungsproblem, bei dem für alle Probleminstanzen x alle
möglichen Lösungswerte nur positive ganze Zahlen sein können und die Kosten
cost(Opt(x)) der optimalen Lösung durch ein Polynom p über den beiden Variablen
|x| und Max-Int(x) beschränkt sind. Es gelte für die Schwellenwertsprache Lang U ,
dass sie stark N P-schwer ist.
Wir wollen zeigen, dass kein FPTAS für U existieren kann, wenn P 6= N P. Aus
der Vorlesung wissen wir, dass es für kein Optimierungsproblem U mit einer stark
N P-schweren Schwellenwertsprache Lang U einen Pseudo-Polynomzeit-Algorithmus
geben kann.
Beweis durch Widerspruch: Wir wollen zeigen, dass, wenn für das Problem U ein
FPTAS A existiert, auch ein Pseudo-Polynomzeit-Algorithmus A0 für U existiert. Sei
A ein FPTAS für U . Es existiert der folgende Algorithmus A0 .
1
.
Gegeben ist die Eingabeinstanz x, sei ε =
p(|x|, Max-Int(x)) + 1
Man wendet nun A auf x und ε an, um eine Lösung für x zu bekommen in einer Zeit, die polynomiell in |x| und 1/ε = p(|x|, Max-Int(x)) + 1 ist. Falls U ein
Maximierungsproblem ist, gilt für die berechnete Lösung A0 (x):
|cost(A0 (x)) − cost(Opt(x))| = cost(Opt(x)) − cost(A0 (x))
≤ (1 + ε) cost(A0 (x)) − cost(A0 (x))
≤ ε cost(Opt(x))
cost(Opt(x))
=
.
p(|x|, Max-Int(x)) + 1
Dabei haben wir verwendet, dass A ein Approximationsschema ist und daher
cost(Opt(x)) ≤ (1+ε) cost(A0 (x)) gilt. Da ausserdem cost(Opt(x)) ≤ p(|x|, Max-Int(x))
ist, können wir nun folgern, dass |cost(A0 (x)) − cost(Opt(x))| < 1. Falls U ein Minimierungsproblem ist, können wir analog zeigen, dass |cost(A0 (x)) − cost(Opt(x))| =
cost(A0 (x)) − cost(Opt(x)) < 1. Da aber alle möglichen Lösungswerte positive ganze
Zahlen sind, muss in beiden Fällen die approximative Lösung optimal sein. Es folgt
cost(A0 (x)) = cost(Opt(x)). Damit ist A0 (x) ein Pseudo-Polynomzeit-Algorithmus
für U .
Das ist ein direkter Widerspruch zur Annahme, dass Lang U stark N P-schwer ist.
(b) Betrachten wir das TSP auf einem Graphen mit n Knoten und Kantenkosten 1 und
2 (das N P-schwer ist, wie wir aus der Vorlesung wissen) und addieren n! auf alle
Kantenkosten. Daraus resultiert also ein Graph als Eingabe mit Kantenkosten n! + 1
und n! + 2.
Das so definierte Problem ist noch immer N P-schwer, da es genauso schwer wie im
ursprünglichen Problem ist, eine optimale Lösung zu finden. Die Kosten jeder Lösung
(auch der optimalen) sind nun stets zwischen n · n! + n und n · n! + 2n, und die
Approximationsgüte RAlg eines beliebigen Algorithmus Alg ist immer beschränkt
durch
n · n! + 2n
1
1 ≤ RAlg ≤
≤1+ .
n · n! + n
n!
Für ε ≥ n!1 hat jeder zulässige Algorithmus die geforderte Approximationsgüte,
insbesondere auch der Greedy-Algorithmus, der in Polynomzeit bezüglich n arbeitet.
Für jedes ε < n!1 können wir wiederum einen Algorithmus Alg mit der geforderten
Approximationsgüte konstruieren, der einfach alle Knotenpermutationen ausprobiert,
um einen billigsten Hamiltonkreis zu finden; dies kann mit einer Zeitkomplexität
in O(n!) getan werden und somit gilt TimeAlg (n, ε−1 ) ≤ p(n, ε−1 ) für ein Polynom
p. Es folgt, dass die Approximationsgüte von Alg sogar 1 ist und der Algorithmus
ferner eine Laufzeit besitzt, die polynomiell in n und ε−1 ist.
Somit ist Alg ein FPTAS für die vorgestellte TSP-Version.
Herunterladen