Lösung 1

Werbung
Approximations- und
Online-Algorithmen
Departement Informatik
Dr. Hans-Joachim Böckenhauer
Dr. Dennis Komm
http://www.ita.inf.ethz.ch/appron17
Lösungsvorschläge – Blatt 1
Zürich, 01. März 2017
Lösung zu Aufgabe 1
(a) Die gesuchte schwere Eingabeinstanz kann analog zum schweren Beispiel für den
Christofides-Algorithmus konstruiert werden, das in der Vorlesung vorgestellt wurde
(im Buch in Abbildung 4.15 direkt nach Theorem 4.3.5.5). Ein möglicher Lauf des
Greedy-Algorithmus kann in der in Abbildung 4.15 (a) dargestellten Instanz einen
Hamiltonpfad von v1 nach v2t erzeugen, was ihn zwingt, mit der Kante {v2t , v1 } den
Kreis zu schliessen (siehe Abbildung 4.15 (d)). Dementsprechend ergibt sich auch
hier eine Approximationsgüte von (3t − 1)/(2t), was für grosse t gegen 1.5 geht.
(b) Wir zeigen, dass der Greedy-Algorithmus auf der Klasse von gewichteten vollständigen Graphen Fi mit i ≥ 1 eine Hamilton-Tour berechnet, die um einen Faktor
von ≥ 10
· (i + 1) länger ist als die optimale Tour. Weil der Graph Fi insgesamt
63
ni = 3 · (2i − 1) Knoten hat (was sich durch eine einfache Induktion beweisen lässt),
ergibt sich damit die behauptete logarithmische Approximationsgüte.
Im Folgenden bezeichne ai den in der Abbildung am weitesten links stehenden Knoten
von Fi , bi den mittleren Knoten von Fi und ci den am weitesten rechts stehenden
Knoten von Fi . Die Abbildung (a) zeigt den Graphen F1 , die Abbildung (b) zeigt
die rekursive Konstruktion von Fi+1 . Alle nicht eingezeichneten Kanten haben den
maximalen bzgl. der Dreiecksungleichung zulässigen Wert.
F1
11
a1
Fi+1
10
10 · 2i
Fi0
Fi
10
b1
(a)
11
c1
ai
ai+1
10 · 2i
bi
ci
10
11
10
a0i
bi+1
(b)
b0i
c0i
ci+1
40
20
20
20
10
11
40
10
10
11
10
11
10
11
20
10
10
11
10
a3
11
10
11
10
10
11
10
11
10
11
10
c3
b3
(c)
40
20
40
20
20
10
10
10
10
10
20
10
10
10
a3
10
10
10
10
10
10
c3
b3
(d)
Die Abbildung (c) zeigt als Beispiel den Graphen F3 , und in Abbildung (d) ist die
Hamilton-Tour gezeigt, die der Greedy-Algorithmus konstruiert, wenn er mit dem
Knoten a3 startet.
Die Kosten copt einer optimalen Lösung sind kleiner oder gleich den Kosten der
Lösung, die von links nach rechts von ai bis zu ci verläuft und dann mit einer
zusätzlichen Kante von ci nach ai zurückkehrt. Damit gilt
ni − 1
· 21
2
= 21 · (3 · (2i − 1) − 1)
copt ≤ 2 ·
= 21 · (3 · 2i − 4)
= 63 · 2i − 84
Wir bestimmen jetzt die Kosten cgreedy der Greedy-Lösung. Die Greedy-Lösung
verwendet auf ihrem Weg von ai nach bi alle eingezeichneten Kanten vom Gewicht
6= 11.
Jeder Graph Fi enthält genau zwei (eingezeichnete) Kanten vom Gewicht 10 · 2i−1 .
Da Fi rekursiv aus 2i−j Graphen Fj zusammengesetzt ist, enthält Fi somit genau
2 · 2i−j (eingezeichnete) Kanten vom Gewicht 10 · 2j−1 für alle 2 ≤ j ≤ i. Damit
berechnet sich das Gesamtgewicht aller (eingezeichneten) Kanten mit einem Gewicht
≥ 20 in Fi als 10 · (i − 1) · 2i . Somit bleibt das Gesamtgewicht der Kanten in Fi mit
einem Gewicht von 10 zu bestimmen. Eine einfache Induktion zeigt, dass es in Fi
genau 2i+1 − 2 Kanten vom Gewicht 10 gibt.
Damit benötigt die Greedy-Lösung für ihren Weg von ai nach bi Kosten von 10 ·
((i − 1) · 2i + 2i+1 − 2) = 10 · ((i + 1) · 2i − 2). Die Kante von bi zurück nach ai hat
ein Gewicht von
ni−1 − 1
· 21 + 21 = 21 · (3 · 2i−2 − 1).
2
Somit folgt
cgreedy = 10 · ((i + 1) · 2i − 2) + 21 · (3 · 2i−2 − 1)
= 10 · (i + 1) · 2i − 20 + 63 · 2i−2 − 21
41
= 10 · (i + 1) · 2i + 63 · (2i−2 − ).
63
Damit ergibt sich für alle i ≥ 1:
10 · (i + 1) · 2i + 63 · (2i−2 −
cgreedy
≥
copt
63 · 2i − 84
10 · (i + 1) · 2i
≥
63 · 2i − 84
10 · (i + 1) · 2i
≥
63 · 2i
10
· (i + 1)
=
63
41
)
63
Lösung zu Aufgabe 2
Für jedes ungerade n konstruieren wir den folgenden Graphen G = (V, E) mit n Knoten.
Zunächst erstellen wir einen Stern mit n − 1 Strahlen, deren Kanten jeweils Kosten von 1
besitzen. Wir bezeichnen den mittleren Knoten mit z und die Blätter mit v0 bis vn−2 , wobei
die Nummerierung im Uhrzeigersinn erfolgt. Nun fügen wir alle Kanten {vi , vi+1 mod (n−1) }
für 0 ≤ i ≤ n − 2 ein und geben ihnen ebenfalls Kosten 1 (Abbildung (a)). Um G
abschliessend zu vervollständigen, fügen wir alle fehlenden Kanten hinzu und setzen ihre
Kosten auf 2. Offensichtlich erfüllt ein Graph, in dem alle Kanten entweder Kosten 1 oder
2 haben, die Dreiecksungleichung.
v7
v6
v5
v0
v1
z
v4
v2
v3
(a)
(c)
(b)
(d)
Eine optimale Lösung in G mit Kosten n ist gegeben durch den Hamiltonkreis z, v0 , v1 , . . . ,
vn−2 , z (Abbildung (b)). Es ist klar, dass keine Lösung mit geringeren Kosten existieren
kann, da hier nur Kanten mit Kosten von jeweils 1 verwendet werden und es in G keine
Kanten mit einem geringeren Gewicht gibt.
Betrachten wir nun eine mögliche Lösung, die der vorgestellte Spannbaum-Algorithmus
berechnen kann. Zunächst konstruiert er einen minimalen Spannbaum in G. Wir sehen
sofort, dass es keinen eindeutigen gibt und jeder solche Baum Kosten von n − 1 besitzt.
Ein billigster Spannbaum T ist beispielsweise durch den Stern gegeben, den wir zu Beginn
konstruiert haben, und wir dürfen annehmen, dass dieser berechnet wird. Anschliessend
werden die Kanten von T verdoppelt, wodurch eine Eulertour auf T entsteht (Abbildung (c)).
Diese wird nun zu einem Hamiltonkreis verkürzt, indem, von einem beliebigen Knoten
aus startend, eine Tiefensuche in T durchgeführt wird und bereits besuchte Knoten
übersprungen werden. Die wichtige Beobachtung ist nun, dass es einen möglichen Verlauf
dieser Tiefensuche gibt, sodass alle verwendeten Kanten bis auf zwei Kosten von 2 besitzen.
Nehmen wir an, der Algorithmus für die Tiefensuche startet beim Knoten z (den er als
Wurzel interpretiert), und besucht anschliessend den Knoten v0 , der in T ein Blatt ist.
Somit geht er zurück zu z und fährt mit seiner Tiefensuche fort. Angenommen, der nächste
besuchte Knoten ist v2 . Da v2 ebenfalls ein Blatt ist, geht er wieder zurück zu z. Der
Algorithmus fährt mit der Tiefensuche fort, bis er alle Knoten mindestens einmal besucht
hat. Nehmen wir an, die restlichen Knoten werden in der Reihenfolge v4 , v6 , v1 , v3 , v5 , v7
gefunden. Die Eulertour auf T , die sich dadurch ergibt, ist also z, v0 , z, v2 , z, v4 , z, . . .. Um
den Hamiltonkreis zu berechnen, werden alle schon einmal besuchten Knoten ausgelassen,
also ergibt sich: z, v0 , v2 , v4 , v6 , v1 , v3 , v5 , v7 , z (Abbildung (d)). Die Gesamtkosten dieser
Lösung belaufen sich also auf 2(n − 2) + 2, und somit finden wir für jede Konstante ε > 0
ein n0 , sodass für alle n > n0 gilt, dass 2(n − 1)/n > 2 − ε.
Zuletzt stellen wir noch fest, dass wir für jede konkrete Strategie, die der SpannbaumAlgorithmus (dieser ist deterministisch) verfolgt, die Knoten v0 , . . . vn−2 so permutieren
können, dass garantiert eine Lösung mit obiger Approximationsgüte gefunden wird (unter
der Voraussetzung, dass der Algorithmus mit dem Stern als Spannbaum startet). Diese
Voraussetzung ist wichtig, da der Graph andere minimale Spannbäume besitzt, die zu
einer besseren Güte führen. Eigentlich reicht es uns zu wissen, dass unter allen minimalen Spannbäumen, die der Algorithmus wählen könnte, einer existiert, der zu einer
Approximationsgüte von 2 − ε führt. Allerdings kann man sogar erzwingen, dass der
einzige minimale Spannbaum in G der Stern ist, indem man die Kantengewichte etwas
1
anders wählt als zuvor: Sei ε0 = n−1
. Allen Kanten, die zum Stern gehören, geben wir
0
das Gewicht 1 − ε . Die Kanten {vi , vi+1 mod (n−1) } bekommen das Gewicht 1. Um die
Dreiecksungleichung zu erhalten, müssen wir nun allen restlichen Kanten die Kosten
2(1 − ε0 ) geben. Somit ist der minimale Spannbaum eindeutig: Der Stern ist der einzige
Spannbaum mit Kosten (1 − ε0 )(n − 1) = n − 2, alle anderen Spannbäume von G haben
grössere Kosten. Der Algorithmus kann nun wie oben schon beschrieben den Hamiltonkreis
z, v0 , v2 , v4 , v6 , v1 , v3 , v5 , v7 , z berechnen. Mit den neuen Kantengewichten hat dieser Kosten
von 2(1 − ε0 ) + (n − 2) · 2(1 − ε0 ) = 2(1 − ε0 )(n − 1), während die optimale Tour Kosten
1
2 · (1 − ε0 ) + n − 2 = n − 2ε0 hat. Wenn wir wie oben gewählt ε0 = n−1
einsetzen, ergibt
sich als Approximationsgüte:
2(1 − ε0 )(n − 1)
2(n − 2)
4
>
=
2
−
.
n − 2ε0
n
n
Wenn wir nun n0 = 4ε setzen, gilt also für jede Konstante ε > 0 und alle n > n0 , dass die
4
Approximationsgüte des Spannbaum-Algorithmus mindestens 2 − n4 > 2 − 4/ε
= 2 − ε ist.
Herunterladen