Lösung Übungsblatt 1, Aufgabe 3

Werbung
1
Lösung Übungsblatt 1, Aufgabe 3
Gruppe E (P. Blauensteiner, M. Chimani, K. Kraus, A. Rainer)
Satz 1: Sei der originale Algorithmus der Algorithmus A, und A0 der Algorithmus, in dem Punkt 3 durch 3’ ersetzt worden ist. Die durch A0 ermittelte
Lösung ist mindestens so gut, wie die die durch A ermittelt wird.
Beweis 1: Da alle Punkte bis auf 3/3’ in A und A0 ident sind, gilt klarerweise, dass die Ausgangssituation nach Schritt 2 jeweils ident ist, insbesondere
ist der minimale Spannbaum TD in ND ident.
Sei Pe die Menge der Kanten, die den kürzesten Weg in N beschreiben der
für die Kante e ∈ ND berechnet wurde.
In Algorithmus A werden nun jeweils alle Kanten aus Pe in N [TD ] aufgenommen, wenn e ∈ TD . Da es vorkommen kann, dass ein und die selbe Kante
in verschiedenen Mengen Pe1 und Pe2 liegt, wird die die Gesamtkantenmenge
N [TD ] netürlich nur die Vereinigungsmenge gebildet. Also:
[
N [TD ] =
Pe
e∈TD
Auf diesen induzierten Graphen N [TD ] wird in Schritt 4 ein SpanningTree T
berechnet. Aus dem werden dann sukkzessive Blätter mit Nicht-Terminalknoten
hinausgelöscht, so dass man SK erhält.
In Algorithmus A0 werden statt dessen für jede Kante e, die in TD enthalten
ist, alle am kürzesten Pfad beteiligten Knoten (bezeichnet als die Menge Se ) in
eine Lösungsmenge S eingefügt.
[
S=
Se
e∈TD
Danach wird der durch diese Knotenmenge induzierte Graph betrechtet, der
zur besseren Unterscheidung zu Algorithmus A nun N [TD ]0 genannt werden
möge. In Schritt 4 wird danach ein SpanningTree T 0 von N [TD ]0 berechnet, und
aus diesem in Schritt 5 durch Löschen von Nicht-Terminalknoten-Blättern der
0
Steinerbaum SK
.
0
Um zu zeigen, dass SK
nicht länger ist als SK sind, zeige man folgende
Punkte:
1. Die Knotenmenge von N [TD ] und N [TD ]0 sind ident.
V (N [TD ]) = V (N [TD ]0 )
2. Die Kantenmenge von N [TD ] ist eine Teilmenge der Kanten von N [TD ]0
E(N [TD ]) ⊆ E(N [TD ]0 )
3. Der Spannbaum T mindestens so gross wie T 0 , und auch durch die Re0
duktion in Schritt 5 wird SK nicht kürzer als SK
.
2
Es ist offensichtlich, dass aus obigen Punkten die in Satz 1 gestellte Behauptung bewiesen wäre.
Also nun die Teilbeweise:
Teilbeweis 1.1: V (N [TD ]) = V (N [TD ]0 )
(Anmerkung: Kanten sind ungeordnete Tupel, dh. es gilt (v, w) ∈ E ⇔
(w, v) ∈ E und (v, w) 6∈ E ⇔ (w, v) 6∈ E):
Wir wissen
V (N [TD ]) = {v | ∃e ∈ TD , sodass ∃(v, w) ∈ Pe , }
und wir wissen auch:
V (N [TD ]0 ) = S = {v | ∃e ∈ TD , sodass v ∈ Se }
Nach der Konstruktionsvorschrift, gilt für alle e ∈ ND : Se enthält genau die
Knoten die zu den Kanten aus Pe gehören. Dadurch ist die Bedingung ∃(v, w) ∈
Pe offensichtlicher weise gleichbedeutend zu v ∈ Se . Daraus folgt:
V (N [TD ]) = V (N [TD ]0 )
Teilbeweis 1.2: E(N [TD ]) ⊆ E(N [TD ]0 ) Sei e ein Element des ursprünglichen Graphen, für den gilt, dass e ∈ E(N [TD ]). Da e in Algorithmus A ausgewählt wurde, muss gelten:
∃e1 ∈ TD , sodass e ∈ Pe1
. Auf Grund der Konstruktionsvorschrift müssen daher die beiden Endknoten
von e in Se1 und daher auch in S liegen. Da N [TD ]0 dadurch aufgebaut wird,
dass man den durch die Knotenmenge S induzierten Graphen bildet – also alle
Kanten aufnimmt, die in N jeweils zwei der Knoten aus S verbinden – muss e
in N [TD ]0 enthalten sein.
0
in
Teilbeweis 1.3: Es ist zu zeigen, dass der resultierende Steinerbaum SK
0
A maximal so gross ist, wie SK in A.
Wir zeigen zunächst, dass T mindestens so gross ist wie T 0 .
Mit dem Vorwissen auf den Teilbeweisen 1.1 und 1.2 ist klar, dass wir einen
Spannbäum auf Graphen die die selben Knoten enthalten, und die Kantenmenge in Algorithmus A0 eine Übermenge von A ist. Es ist also offensichtlich,
dass der minimale Spannbaum T auch ein (nicht notwendigerweise minimaler)
Spannbaum für N [TD ]0 ist. Daher muss er bei der Suche nach dem minimalen Spannbaums in Algrithmus A0 gefunden werden, so nicht ein noch kleinerer
existiert.
Um nun zu zeigen, dass auch bei der Reduktion die Kleinergleichbedingung
erhalten bleibt, betrachten wir den interessanten Fall, dass T 0 6= T (bei Gleichheit ist der Schritt 5 ja logischer weise ident, und somit auch der resultierende
Steinerbaum):
Wir betrachten nun die Veränderung der Graphen in Phase 4 und 5. Das
Löschen einer Kante kann also entweder durch den Spannbaumalgorithmus, oder
aus dem Blätter-Entfern-Vorgang heraus geschehen.
Für Kanten e in N [TD ] (und daher – siehe Teilbeweis 1.2 – auch in N [TD ]0 )
die man löschen kann (also e 6∈ SK ) können zwei verschiedene Fälle auftreten:
3
0
1. e kann durch A0 gelöscht werden (e 6∈ SK
).
0
2. e kann durch A0 nicht gelöscht werden (e ∈ SK
).
(Anmerkung: Man darf nicht vergessen, dass durchaus weitere Kanten in
N [TD ]0 existieren, die nicht in N [TD ] sein müssen!)
Fall 1: Da die Kanten in beiden resultierenden Bäumen gelöscht wurden,
verändert sich nichts klarerweise nichts zwischen ihrer Gewichtsdifferenz (die ja
durch den maximal gleich grossen Spannbaum bedingt ist).
0
Fall 2: Wenn die Kante in e in SK
benötigt wird, bedeutet das, dass ohne
sie der Baum in zwei Komponenten zerfallen würde, die beide Terminalknoten
enthalten. Da die Kante in SK jedoch nicht benötigt wird, werden diese Komponenten darin offensichtlich durch einen anderen Pfad p (in SK , N [TD ] und damit
0
auch in N [TD ]0 ) zusammen gehalten. Dieser Pfad p ist in SK
dann natürlich nicht
enthalten, da er einen Kreis darstellen würde. Darüberhinaus gilt, dass der Pfad
0
p natürlich mindestens so lang ist wie der Pfad p1 , der die Komponenten in SK
verbindet (und die Kante e enthält), da der MinimaleSpannbaum-Algorithmus
ansonsten p anstatt p1 komplett ausgewählt hätte. Daher kann man für jede
0
wegfällt, mindestens ebensoviel an einer
Kante e die in SK aber nicht in SK
anderen Stelle löschen.
0
maximal so gross sein kann als SK .
Damit ist also bewiesen, dass SK
Besonders sei auch erwähnt, dass es durchaus einfache Beispiele gibt, in
0
denen SK
echt kleiner ist als SK .
Danke für die Aufmerksamkeit
Herunterladen