Steinerbäume. Seminarausarbeitung Hochschule Aalen Fakultät für Elektronik und Informatik Studiengang Informatik Schwerpunkt Software Engineering



Ähnliche Dokumente
WS 2009/10. Diskrete Strukturen

Seminarvortag zum Thema Virtual Private Network Design im Rahmen des Seminars Network Design an der Universität Paderborn

1. Man schreibe die folgenden Aussagen jeweils in einen normalen Satz um. Zum Beispiel kann man die Aussage:

Das Briefträgerproblem

1 topologisches Sortieren

Seminar. Das Steinerbaumproblem

Grundlagen der Theoretischen Informatik, SoSe 2008

Anmerkungen zur Übergangsprüfung

3.1 Konstruktion von minimalen Spannbäumen Es gibt zwei Prinzipien für die Konstruktion von minimalen Spannbäumen (Tarjan): blaue Regel rote Regel

Vorlesung Diskrete Strukturen Graphen: Wieviele Bäume?

Konzepte der Informatik

WS 2013/14. Diskrete Strukturen

Einführung. Vorlesungen zur Komplexitätstheorie: Reduktion und Vollständigkeit (3) Vorlesungen zur Komplexitätstheorie. K-Vollständigkeit (1/5)

Lineargleichungssysteme: Additions-/ Subtraktionsverfahren

Das Dilemma des Einbrechers Wer die Wahl hat, hat die Qual!

Grundbegriffe der Informatik

Primzahlen und RSA-Verschlüsselung

Informationsblatt Induktionsbeweis

Erstellen von x-y-diagrammen in OpenOffice.calc

Einführung in die Algebra

Unterrichtsmaterialien in digitaler und in gedruckter Form. Auszug aus: Übungsbuch für den Grundkurs mit Tipps und Lösungen: Analysis

4. Jeder Knoten hat höchstens zwei Kinder, ein linkes und ein rechtes.

1 Mathematische Grundlagen

Formale Systeme. Binary Decision Diagrams. Prof. Dr. Bernhard Beckert WS 2010/2011 KIT INSTITUT FÜR THEORETISCHE INFORMATIK

Paper Computer Science Experiment. Computation (NP-Vollständigkeit) Steinerbäume

Literatur. Dominating Set (DS) Dominating Sets in Sensornetzen. Problem Minimum Dominating Set (MDS)

Algorithmen II Vorlesung am

7 Rechnen mit Polynomen

Anleitung über den Umgang mit Schildern

Professionelle Seminare im Bereich MS-Office

Musterlösungen zur Linearen Algebra II Blatt 5

Algorithmen und Datenstrukturen 2

Erstellen einer Collage. Zuerst ein leeres Dokument erzeugen, auf dem alle anderen Bilder zusammengefügt werden sollen (über [Datei] > [Neu])

Theoretische Grundlagen der Informatik

PROSEMINAR ONLINE ALGORITHMEN

Jede Zahl muss dabei einzeln umgerechnet werden. Beginnen wir also ganz am Anfang mit der Zahl,192.

geben. Die Wahrscheinlichkeit von 100% ist hier demnach nur der Gehen wir einmal davon aus, dass die von uns angenommenen

Berechnungen in Access Teil I

Kombinatorische Optimierung

Skript und Aufgabensammlung Terme und Gleichungen Mathefritz Verlag Jörg Christmann Nur zum Privaten Gebrauch! Alle Rechte vorbehalten!

Tipp III: Leiten Sie eine immer direkt anwendbare Formel her zur Berechnung der sogenannten "bedingten Wahrscheinlichkeit".

Inhalt. 1 Einleitung AUTOMATISCHE DATENSICHERUNG AUF EINEN CLOUDSPEICHER

Anhand des bereits hergeleiteten Models erstellen wir nun mit der Formel

Lineare Gleichungssysteme

Zeichen bei Zahlen entschlüsseln

2.11 Kontextfreie Grammatiken und Parsebäume

a n auf Konvergenz. Berechnen der ersten paar Folgenglieder liefert:

Formale Systeme, WS 2012/2013 Lösungen zu Übungsblatt 4

Physik & Musik. Stimmgabeln. 1 Auftrag

15 Optimales Kodieren

Meet the Germans. Lerntipp zur Schulung der Fertigkeit des Sprechens. Lerntipp und Redemittel zur Präsentation oder einen Vortrag halten

Kurzanleitung. MEYTON Aufbau einer Internetverbindung. 1 Von 11

4 Greedy-Algorithmen (gierige Algorithmen)

Kapiteltests zum Leitprogramm Binäre Suchbäume

Satz. Für jede Herbrand-Struktur A für F und alle t D(F ) gilt offensichtlich

ACHTUNG: Es können gpx-dateien und mit dem GP7 aufgezeichnete trc-dateien umgewandelt werden.

Algorithmentheorie Maximale Flüsse

Stellen Sie bitte den Cursor in die Spalte B2 und rufen die Funktion Sverweis auf. Es öffnet sich folgendes Dialogfenster

Beweisbar sichere Verschlüsselung

Einführung in. Logische Schaltungen

20. Algorithmus der Woche Online-Algorithmen: Was ist es wert, die Zukunft zu kennen? Das Ski-Problem

Analysis I für Studierende der Ingenieurwissenschaften

Handbuch zur Anlage von Turnieren auf der NÖEV-Homepage

Definition und Begriffe

8 Diskrete Optimierung

Data Mining: Einige Grundlagen aus der Stochastik

Binäre Bäume. 1. Allgemeines. 2. Funktionsweise. 2.1 Eintragen

Das RSA-Verschlüsselungsverfahren 1 Christian Vollmer

Stackelberg Scheduling Strategien

Mediator 9 - Lernprogramm

Basis und Dimension. Als nächstes wollen wir die wichtigen Begriffe Erzeugendensystem und Basis eines Vektorraums definieren.

Kompetitive Analysen von Online-Algorithmen

Studieren- Erklärungen und Tipps

Abamsoft Finos im Zusammenspiel mit shop to date von DATA BECKER

Platinen mit dem HP CLJ 1600 direkt bedrucken ohne Tonertransferverfahren

Programmentwicklungen, Webseitenerstellung, Zeiterfassung, Zutrittskontrolle

Algorithmische Methoden für schwere Optimierungsprobleme

Lichtbrechung an Linsen

Entladen und Aufladen eines Kondensators über einen ohmschen Widerstand

Kürzeste Wege in Graphen. Maurice Duvigneau Otto-von-Guericke Universität Fakultät für Informatik

50. Mathematik-Olympiade 2. Stufe (Regionalrunde) Klasse Lösung 10 Punkte

Definition:Eine meromorphe Modulform vom Gewicht k Z ist eine meromorphe. f : H C. (ii) C > 0, so daß f(z) im Bereich Im z > C keine Singularität hat.

Anleitung zur Erstellung von Serienbriefen (Word 2003) unter Berücksichtigung von Titeln (wie Dr., Dr. med. usw.)

Anmeldung und Zugang zum Webinar des Deutschen Bibliotheksverbandes e.v. (dbv)

Würfelt man dabei je genau 10 - mal eine 1, 2, 3, 4, 5 und 6, so beträgt die Anzahl. der verschiedenen Reihenfolgen, in denen man dies tun kann, 60!.

Kompakte Graphmodelle handgezeichneter Bilder. Einbeziehung in Autentizierung und Bilderkennung

Grundlagen der Künstlichen Intelligenz

BIA-Wissensreihe Teil 4. Mind Mapping Methode. Bildungsakademie Sigmaringen

Outlook. sysplus.ch outlook - mail-grundlagen Seite 1/8. Mail-Grundlagen. Posteingang

t r Lineare Codierung von Binärbbäumen (Wörter über dem Alphabet {, }) Beispiel code( ) = code(, t l, t r ) = code(t l ) code(t r )

Das große ElterngeldPlus 1x1. Alles über das ElterngeldPlus. Wer kann ElterngeldPlus beantragen? ElterngeldPlus verstehen ein paar einleitende Fakten

Objektorientierte Programmierung für Anfänger am Beispiel PHP

Mehrere PDF-Dokumente zu einem zusammenfügen

Guten Morgen und Willkommen zur Saalübung!

Diese Ansicht erhalten Sie nach der erfolgreichen Anmeldung bei Wordpress.

3.2 Spiegelungen an zwei Spiegeln

Kapitalerhöhung - Verbuchung

Unterrichtsmaterialien in digitaler und in gedruckter Form. Auszug aus:

Information Systems Engineering Seminar

IRF2000 Application Note Lösung von IP-Adresskonflikten bei zwei identischen Netzwerken

Transkript:

Steinerbäume Seminarausarbeitung Hochschule Aalen Fakultät für Elektronik und Informatik Studiengang Informatik Schwerpunkt Software Engineering Verfasser Flamur Kastrati Betreuer Prof. Dr. habil. Thomas Thierauf

1 Zusammenfassung Das Steinerbaumproblem ist ein Problem in der Mathematik, speziell in der Graphentheorie, welches sich mit dem kürzesten Pfad in einem Graphen beschäftigt. Das Problem ist eine Verallgemeinerung des minimalen Spannbaums, mit der Besonderheit, das man zusätzliche Knoten, auch Steinerpunkte genannt, zur eigentlichen Knotenmenge und Kanten zur Kantenmenge hinzufügen kann, um die Gesamtlänge der Pfade zusätzlich zu verkürzen. 1 Einleitung Ein altes, dennoch bis in unsere Zeit reichendes mathematisches Problem, wird seit Jahrhunderten von vielen Mathematikern aufs Neue entdeckt und definiert. Das sogenannte Steinerbaumproblem, welches nach dem Schweizer Mathematiker Jacob Steiner benannt wurde. Das Problem beschreibt einen Graphen mit einer Menge von Punkten P 1,..., P n, die so zusammenhängen, dass (i) jeder Knoten, mit jedem beliebigen anderen Knoten über eine oder mehreren Kanten verbunden ist und (ii) die Gesamtlänge aller Kanten (gemessen mit Bedacht auf einigen vordefinierten Kostenfunktionen) minimal ist. Die genannten Bedingungen erinnern an den minimalen Spannbaum, und tatsächlich ist der Steinerbaum eine Verallgemeinerung dessen. Genau so, wie der minimale Spannbaum verbreitet ist, besitzt auch der Steinerbaum in vielen Bereichen seine Wichtigkeit. Wie zum Beispiel in der Elektrotechnik, wo man sich optimale Positionen von Transistoren auf einem integrierten Schaltkreis berechnen lassen kann. Das Steinerbaumproblem klingt sehr simpel, ist jedoch nicht umsonst ein seit Jahrhunderten bekanntes Problem. In dieser Ausarbeitung wird hauptsächlich auf das Steinerbaumproblem näher eingegangen. Die allgemeine Beschreibung und einen Algorithmus zum Steinerbaum. Zusätzlich der Beweis, dass das Problem ein schwieriges ist und eine Approximation zum Problem. Alle Informationen zu dieser Ausarbeitung wurden aus dem Buch [PDHJP02] entnommen. 2 Steinerbäume Bevor wir zum Theorem des Steinerbaumproblems kommen, müssen noch einige kleine Dinge geklärt werden. Man darf hier nicht vergessen, dass das Steinerbaumproblem ein anderes Problem ist, als das des minimalen Spannbaums. Der Steinerbaum besitzt zu der normal gegebenen endlichen Knotenmenge (den Terminalen) noch eine endliche Anzahl freier Knoten (den Steinerpunkten oder auch Nicht-Terminalen). Diese Nicht-Terminalen Punkte werden dazu eingesetzt, die Gesamtlänge des Steinerbaums zusätzlich zu minimieren. Es gibt zwei verschieden Arten des Steinerbaumproblems. Bei dem einen sind verschiedene Steinerpunkte bereits gegeben und bei dem anderen kann man die Steinerpunkte frei Wählen. In dieser Ausarbeitung werden wir uns lediglich der ersteren Variante mit den bereits gegebenen Nicht-Terminalen zuwenden. Dann gibt es da noch folgende Lemmata. Die Lemmata werden in dieser Ausarbeitung nicht bewiesen, da sie bereits in den Vorlesungen ausführlich besprochen wurden. Dies dient als Hilfestellung zum eigentlichen Steinerbaum Theorem.

2 1. Lemma 2.1 (a) Sei G = (V, E) ein Wald mit n Knoten und mit c 1 Komponenten, dann ist E = n c 2. Korollar 2.2 (a) Jeder Baum T mit n Knoten, besitzt genau n 1 Kanten. 3. Korollar 2.3 (b) Jeder Baum T hat mindesten 2 Blätter.. Lemma 2. (b) Graph G = (V, E) ist genau dann ein zusammenhängender Graph, wenn es einen Spannbaum enthält. 2.1 Theorem Theorem 2.5 Sei G = (V, E) mit einer Anzahl n Knoten und mit folgenden Behauptungen gegeben: (i) G ist ein Baum. (ii) Für jedes Paar x, y V und x y besitzt G exakt einen Pfad von x nach y. (iii) G ist minimal Zusammenhängend. (d.h., G ist Zusammenhängend und für alle {x, y} E gilt: G {x, y} ist nicht zusammenhängend) (iv) G ist maximal azyklisch. (d.h., G ist azyklisch und für alle {x, y} / E gilt: G + {x, y} ist zyklisch) (v) G ist azyklisch und E = n 1 (vi) G ist zusammenhängend und E = n 1 Beweis: Sei G ein Baum, x, y V und x y. Da G ein zusammenhängender Baum ist, gibt es mindestens einen Weg von x nach y. G ist zudem azyklisch und jedes Paar Knoten sind über mindestens einem Weg verbunden. Dies zeigt, dass (i) (ii). Die Implikationen (ii) (iii) und (iii) (iv) sind selbstverständlich. (iv) (v) und (v) (vi) stimmen durch Lemma (a) und (vi) (i) ist auch wahr, da wir durch Lemma (b) wissen, dass jeder zusammenhängende Graph einen Spannbaum enthält. E(T ) = n 1 wird durch Korollar (a) abgedeckt. Dieses Wissen würde ausreichen, um einen minimalen Spannbaum zu beschreiben. Aber wie wäre es, wenn wir das Problem etwas interessanter gestalten. Nehmen wir an, es gibt eine Teilmenge K V aus einem zusammenhängenden Graphen G = (V, E). Mit dieser Teilmenge K (möglicherweise aber auch mit einigen zusätzliche Knoten), suchen wir einen Teilgraphen von G, der ebenfalls zusammenhängend ist und eine möglichst minimale Anzahl an Kanten besitzt. Durch Lemma 2 und können wir aber bereits sagen, dass jeder Teilgraph (zusammenhängend) nicht mehr als V 1 Kanten haben darf und somit minimal ist. Außerdem können wir auch festhalten, dass alle Blätter Elemente aus der Menge K sein müssen.

3 2.2 Definition Die bisher gesammelten Informationen führen zu folgender Definition: Ein Teilgraph T von G wird Steinerbaum für K genannt, wenn T ein Baum ist und alle Knoten aus K besitzt (d.h., K V (T )) und alle Blätter aus T Elemente in K sind. Die Knoten K werden auch Terminale von T genannt, wohingegen V (T )\K Steinerpunkte (oder auch Nichtterminale) genannt werden. Ein minimaler Steinerbaum für K in G ist ein Steinerbaum T mit minimaler Anzahl Kanten. Jetzt können wir, den Steinerbaumproblem einen passenden Namen geben: Minimum Steiner Problem in Graphs Geg.: Ein zusammenhängender Graph G = (V, E) und eine Menge T V aus Terminalen. Ges.: Einen minimalen Steinerbaum für K in G. Sprich, einen Steinerbaum T für K mit E(T ) = min{ E(T ) T ist ein Steinerbaum für K in G } Dieses Problem sieht zunächst einfach aus, ist aber aus Sicht eines Algorithmus ein nicht triviales und in vielen Aspekten herausforderndes. Von der praktischen Seite aus ist es oft erwünscht eine komplexere Version des Problems zu analysieren. Ein Gewichteter Graph N = (V, E, l), bestehend aus G = (V, E) und l : E(G) R 0, welches eine Funktion ist, die jeder Kante einen positiven Wert anrechnet. Dieser Wert kann als Länge, Gewicht oder anderes betrachtet werden. Die Länge eines Teilgraphen H von G lässt sich also wie folgt berechnen: l(h) = e E(H) l(e) (die Summe aller Kantenwerte) Ist der Graph ein ungerichteter Graph, wird die Gesamtsumme aller Kanten gleich deren Anzahl gesetzt (wird auch die Länge von H genannt, gekennzeichnet H ). Man kann sich hier vorstellen, dass man jeder Kante den Wert 1 zugeschrieben hat. Für zwei Knoten v und w, kennzeichnen wir mit P (v, w) die Länge des kürzesten Pfades von v nach w. Mit diesem Wissen, können wir eine Definition dieser Version des Steinerbaumproblems erstellen. Minimum Steiner Problem in Networks / Weighted Graph Geg.: Ein Gewichteter Graph N = (V, E, l) und eine Menge T V aus Terminalen. Ges.: Einen minimalen Steinerbaum für K in N. Sprich, einen Steinerbaum T für K mit l(t ) = min{ l(t ) T ist ein Steinerbaum für K in N } 2.3 Komplexität Es wurde des Öfteren gesagt, dass das Steinerbaumproblem ein schwieriges Problem sei. Und tatsächlich liegt das Steinerbaumproblem in der Komplexitätsklasse der NP-Vollständigen Probleme. Der Beweis dazu wird durch eine Reduktion von 3Sat auf Minimum Steiner Problem in Graphs (Spg) erbracht. Theorem 2.6 Das Steinerbaumproblem ist NP-Vollständig. Beweis: Die Vollstaendigkeit erhaelt man durch eine Reduktion vom 3Sat auf Spg. Zunächst suchen wir einen Graphen G = (V, E) mit einer Menge Terminalen K und einer Schranke B, so dass G den Steinerbaum T nach K enthält und die Schranke B nicht überschreitet. Eine weitere Bedingung ist, dass der Graph G nur genau dann konstruiert werden kann, wenn es

ein 3Sat Konstrukt gibt, welches erfüllbar ist. Startpunkt ist eine Formel F (x 1,..., x n ) = C 1 C 2 C m. Daraus wird eine beliebige Instanz für 3Sat mit Variablen x 1,..., x n und Klauseln C 1,..., C m konstruiert. Der Graph G wird wie folgt konstruiert. Zuerst, verbinden wir die Knoten u und v mit einem variablen Pfad, gezeigt in Abbildung 2.1. x 1 x 2 x j x n 1 x n u v x 1 x 2 x j x n 1 x n Abbildung 2.1: Transformation von 3Sat auf Spg: Der Variablen Pfad Als nächstes kreieren wir für jede Klausel C i einen Knoten mit Verbindungen zu den einzelnen Literalen, die zu der jeweiligen Klausel gehören. Die Pfadlänge beträgt t = 2n + 1. Als Terminale Menge wählen wir K = {u, v} {C 1,..., C m } und setzten B auf B = 2n+t m. C i x 1 x 2 x j x n 1 x n u v x 1 x 2 x j x n 1 x n Abbildung 2.2: Klausel C i = x 2 x j x n. Die Gestrichelte Linie zeigen auf die einzelnen Literale der Klausel C i mit einer Pfadlänge t = 2n + 1 Nehmen wir an, die 3Sat Instanz wäre Erfüllbar. Um einen Steinerbaum nach K zu konstruieren, starten wir zunächst mit dem Pfad von u nach v, welches eine erfüllende Belegung P darstellt. Das heißt, dass wir x i P haben, wenn x i wahr ist und x i P, wenn nicht wahr. Weiterhin müssen wir beachten, dass für jede Klausel, dessen Knoten C i über einen Pfad der Länge t mit P verbunden ist. Somit erhalten wie einen Steinerbaum nach K mit einer Gesamtlänge von 2n + t m = B Gehen wir nun einen Schritt weiter. Sei T ein Steinerbaum nach K mit einer Gesamtlänge von nicht mehr als B. Trivialerweise ist jeder Klausel-Knoten C i mit dem variierbaren Pfad verbunden. Gehen wir für einen Moment davon aus, dass es eine Klausel C i0 gibt, die auf mindestens zwei Wegen mit dem variierbaren Pfad verbunden ist. Somit hätten wir

5 E(T ) (m + 1) t > B, und das dürfte nicht sein. Dies zeigt uns, dass u und v nur auf dem variierbaren Pfad verbunden werden können, welches mindestens 2n Kanten voraussetzt. Da jede Klausel mindestens t Kanten braucht, um C i mit dem variierbaren Pfad zu verbinden, schließen wir daraus, dass der Pfad u nach v exakt 2n Kanten besitzt und, dass jede Klausel exakt t Kanten benutzen muss, um mit diesem Pfad verbunden zu sein. Somit gibt der Pfad von u nach v eine erfüllbare Belegung wieder. Die Beobachtung, dass diese Konstruktion leicht in polynomieller Zeit erhalten werden kann, erschließt den Beweis des Theorems. 3 Approximationsalgorithmus In diesem Kapitel werden wir einen simplen Approximationsalgorithmus vorstellen, der auf einer Minimum Spanning Tree Berechnung aufbaut. Der Algorithmus ist eine 2- Approximation. Um die Notation zu verkürzen, werden wir folgende Schreibweisen in diesem Kapitel benutzen. N = (V, E, l; K) steht für ein Steinerproblem in einem zusammenhängenden gewichteten Graphen mit positiven Längenfunktion l 0 und einer Menge Terminalen K. Jedes Steinerproblem N = (V, E, l; K) verbinden wir mit einem complete distance network(cdn ) N D = (K, E D, l D ). Ein CDN ist kurz gesagt ein Graph, aufbauend auf der Menge Terminalen K, worin jede Kante die Länge des kürzesten Pfades der korrespondierenden zwei Terminalen besitzt. Das Steinerproblem N und der CDN werden wie folgt miteinander assoziiert. Die Knotenmenge des N D ist gleich der Menge Terminalen K, die Kantenmenge [ (K ) ] ist mit E D = 2 gegeben und die Längenfunktion l D fügt zu jeder Kante {x, y} E D die Länge des kürzesten Pfades von x nach y in N ein. Zusätzlich kürzen wir die Länge eines minimalen Steinerbaums in N mit Knoten aus der Menge Terminalen K mit smt(n) ab. 3.1 Simpler Algorithmus Die ausschlaggebende Idee vom folgenden Lemma dieses Algorithmus ist, dass wir die Länge eines minimalen Spannbaums in einem gewichteten Graphen mit der Länge eines minimalen Steinerbaums im korrespondierenden CDN relativieren. Sprich, wir erzeugen uns einen minimalen Spannbaum und benutzen die erzeugten Pfade als Wegweiser für den minimalen Steinerbaum. Lemma 3.1 Sei N = (V, E, k; K) ein Steinerproblem, dann erfüllt jeder minimale Spannbaum T im CDN N D die Ungleichung l D (T ) ( ) 2 2 k smt(n). k = K bezeichnet die Kardinalität der Menge Terminalen. Beweis: Sei S opt ein beliebiger minimaler Steinerbaum in N. Stellen wir uns nun S opt als zweidimensionalen planaren Graphen vor, und dass wir einen Weg W am Rand der Kanten entlang haben. Auf diesem Weg W besuchen wir jeden Terminal genau ein und jede Kante zwei mal. Die Gesamtlänge ist dementsprechend genau doppelt so lang, wie die Länge von S opt. Sei t die Anzahl der Blätter in S opt. Dann besitzt Weg W t k Pfade zwischen den aufeinanderfolgenden Blättern in S opt. Nun entfernen wir den längsten Pfad in W. Dieser

6 3 5 2 6 8 1 7 Abbildung 3.3: Illustriert den Beweis von Lemma 3.1. Der Weg W besteht aus den Pfaden 1-2, 2-3,..., 7-8 und 8-1. Um den Weg W zu erhalten, entfernen wir den Weg von 7 nach 8. Pfad wäre aus dem Beispiel in der Abbildung 3.3 der Pfad 7 nach 8. Die Länge des übrig bleibenden Weges W beträgt jetzt nicht mehr als das (1 1 t )-fache des Weges W. Jetzt sieht man, dass wenn man den Weg W folgt, man ganz einfach einen Spannbaum (und sogar einen Pfad) mit einer maximalen Länge von W in N D aufziehen kann. Durch diese Beobachtung können wir nun den Beweis von Lemma 3.1 schlussfolgern. Beispiel 3.2 Gewichteter Graph N = (V, E, k; K) mit 2 e v 3 v 2 2 e v v 1 2 e 2 e 1 1 1 1 1 v 0 1 v k 2 e v k 1 V = {v 0, v 1,..., v k }, K = V \{v 0 }, E = {{v i, v i+1 } 1 i k} {{v k, v 1 }} {{v 0, v i } 1 i k}, { 1, if v 0 e l(e) = 2 e, sonst zeigt, dass Schranke aus Lemma 3.1 die Bestmögliche ist. Aus den Vorlesungen wissen wir, dass der minimale Spannbaum leicht zu berechnen ist. Eine kurze Wiederholung: Ein minimaler Spannbaum ist ein Spannbaum mit minimaler Gesamtlänge der Summe der Kanten. Ein minimaler Steinerbaum ist dann minimal, wenn die Summe aller Kanten zwischen den Terminalen minimal ist. In Lemma 3.1 sahen wir auch, dass die Länge des minimalen Spannbaums aus einem complete distance network (kurz: cdn) für eine 2-Approximation des minimalen Steinerbaums sorgt. Genau genommen kann man den minimalen Spannbaum dafür benutzen, einen Steinerbaum zu erzeugen, dessen Länge nicht die doppelte Länge des minimalen Steinerbaums überschreitet.

7 Algorithmus 3.3 (MST-Algorithm) Input: Gewichteter Graph N = (V, E, l; K). Output: Steinerbaum S K für N. (1) Berechne den complete distance network N D = (K, E D, l D ). (2) Berechne einen minimalen Spannbaum T D in N D. (3) Wandle T D in einen gewichteten Teilgraphen N[T D ] um, indem jede Kante aus T D durch den Korrespondierenden kürzesten Pfad ersetzt wird. () Berechne einen minimalen Spannbaum T für N[T D ]. (5) Wandle T in einen Steinerbaum S K für N um, indem nacheinander jeder Blattknoten entfernt wird, der kein Terminal ist. Das Abbild 3. zeigt die verschiedenen Schritte des Algorithmus. Man sollte dort auch sehen, wieso die Schritte () und (5) unabdingbar sind. Theorem 3.2 Sei N = (V, E, l; K) ein gewichteter Graph. Dann berechnet der MST- Algorithm in polynomieller Zeit einen Steinerbaum S K für N aus, so dass l(s K ) ( 2 2 k ) smt(n). Beweis: Lemma 3.1 zufolge ist l D (T ) ( 2 2 k ) smt(n).somit haben die aufeinanderfolgenden Schritte (3), () und (5) die Eigenschaften l(t D ) geql(t ) l(s K ). N = (V, E, l 1; K) (1): N D = (K, E D, l D ) (2): T D (3) N[T D ] (): T (5): S K Abbildung 3.: Illustriert die einzelnen Schritte des MST-Algorithm Eine direkte Analyse des MST-Algorithm zeigt, dass der am meisten Zeit brauchende Teil des Algorithmus, die Berechnung des CDN N D ist. Dieser gewichtete Graph wird durch einen k kürzesten Wege Algorithmus mit Laufzeit O(n log n + m) berechnet.

8 Literatur [PDHJP02] Prof. Dr. Angelika Steger Prof. Dr. Hans Juergen Prömel. The Steiner Tree Problem, A Tour through Graphs, Algorithms, and Complexity. Friedr. Vieweg & Sohn Verlagsgesellschaft mbh, 1st edition, 2002.