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