Seminar Das Steinerbaumproblem Philipp Gillitzer Matrikelnr.: 51829 Studiengang Informatik(IT-Sicherheit) Semester 6 Hochschule Aalen Wintersemester 16/17 1 Inhaltsverzeichnis 1 Einleitung 3 2 Grundlagen 2.1 Graphentheoretische Grundlagen . . . . . . . . . . . . . . . . 2.2 Definitionen Steinerbaum . . . . . . . . . . . . . . . . . . . . 4 4 5 3 Komplexität 6 4 Approximationsalgorithmus 4.1 2er Approximation . . . . . . . . . . . . . . . . . . . . . . . . 9 9 5 Zusammenfassung 13 2 1 Einleitung Das Steinerbaumproblem ist ein Problem der Graphentheorie das eine Verallgemeinerung des minimalen Spannbaums darstellt. In beiden Problemen wird jeweils versucht eine gewisse Auswahl von Kanten auszuwählen, die alle Knoten des Graphens verbinden. Somit soll jeder Knoten von jedem anderen Knoten erreichbar sein. Die Anzahl der Kanten bzw. die Summe derren Gewichte soll möglichst gering sein. Bei dem Steinerbaumproblem ist es jedoch möglich zu den eigentlichen vorgegebenen Knoten noch andere Knoten zu verwenden um das gesamte Kantengewicht weiter zu verringern. Diese Knoten nennt man dann auch Steinerpunkte. Dies ist eine Beobachtung, die der Schweizer Mathematiker Jacob Steiner im 19. Jahrhundert machte. Genau wie bei den minimalen Spannbäumen findet sich auch für das Ausfindig machen der Steiner-Knoten reelle und praktische Anwendungen. So zum Beispiel im Entwurf von integrierten Schaltkreisen und in der Planung von Weg- und Telekommunikationsnetzen. Es soll nun ein Kommunikationsnetz zwischen mehreren Großstädten erneuert werden. Das Netz darf aber natürlich auch durch Kleinstädte verlaufen. Dabei sollen die Gesamtkosten des Netzes minimal gehalten werden, indem die Gesamtlänge der Kanten minimiert wird. Diese Aufgabe entspricht dem Auffinden eines minimalen Steinerbaumes. In der Ausarbeitung wird genau auf dieses Problem eingegangen. Das euklidische Steinerbaumproblem, bei welchem unendlich viele Punkte aus dem metrischen Raum frei wählbar hinzugefügt werden können, wird hierbei nicht näher erläutert. Der überwiegende Teil dieser Ausarbeitung stammt aus dem Buch [1] 3 2 Grundlagen 2.1 Graphentheoretische Grundlagen Bevor mit der Definition des Steinerbaumproblems begonnen wird, sollen zunächst noch einige graphentheoretische Grundlagen wiederholt werden um auch den Begriff Baum nochmals klar zu definieren. Beweise Lemma 2.1. Sei G = (V , E) ein Wald mit n Kanten und c ≥ Komponenten. Dann ist |E| = n - c. Korollar 2.2. Jeder Baum T mit n Knoten hat genau n − 1 Kanten. Korollar 2.3. Jeder Baum T hat mindestens 2 Blätter. Lemma 2.4. Ein Graph G = ( V , E) ist genau dann zusammenhängend, wenn G einen aufspannenden Graph enthält. Theorem 2.5. Sei G = ( V , E) ein Graph mit n Knoten. Folgende Aussagen gelten dann als äquivalent 1. G ist ein Baum. 2. Jedes Paar x, y ∈ V mit x ̸= y besitzt genau einen Pfad von x nach y in G. 3. G ist minimal zusammenhängend. Das heißt, dass G für alle {x, y} ∈ E zusammenhängend ist und G − {x, y} nicht zusammenhängend ist. 4. G ist maximal azyklisch. Das heißt, dass Gfür alle {x, y} ∈ / E azyklisch ist und G + {x, y} ein Kreis enthält. 5. G ist azyklisch und |E|= n − 1. 6. G ist zusammenhängend und|E|= n − 1. Beweis. Sei G ein Baum und x, y ∈ V mit x ̸= y. Da G zusammenhängend ist besitzt der Graph mindestens einen Pfad von Konten x nach Knoten v. Auch ist jedes Paar von Knoten höchstens durch einen Pfad verbunden, da G azyklisch ist. Dies beweist 1 ⇒ 2. Die Implikationen 2 ⇒ 3 und 3 ⇒ 4 sind klar. 4 ⇒ 5 und 5 ⇒ 6 folgen direkt aus Lemma 2.1. Die Implikation 6 ⇒ 1 folgt aus Lemma 2.4, dass jeder zusammenhängende Graph eine aufspannenden Baum T enthält, mit |E(T )|= n − 1 nach Korollar 2.2. Diese Informationen und dieses Wissen genügen um die Frage nach dem minimal aufspannenden Spannbaum eine Graphen G = ( V , E) zu beschreiben, bei der ein zusammenhängender Teilgraph gesucht wird, der alle Konten des Graphen G enthält. 4 Um dieses Problem nun etwas interessanter zu machen, sei eine Teilmenge K ⊆ V gegeben. Auch hier sucht man einen zusammenhängenden Teilgraph von G, der alle Knoten von K enthält aber auch zusätzliche Knoten aus V − K enthalten darf. Auch soll dieser Teilgraph so wenig Kanten wie möglich enthalten, um die Knoten zu verbinden. Es steht fest, dass dieser Teilgraph nicht mehr als |V |−1 Kanten hat, nach Lemma 1.4 selbst ein Baum sein muss und alle Blätter aus der Menge K sein müssen, da sonst die Kantenanzahl unnötigerweise erhöht werden würde. Dies bildet die Grundlage für den nächsten Abschnitt. 2.2 Definitionen Steinerbaum Die im vorherigen Abschnitt beschriebene ”Modifikation”des minimalen Spannbaumes soll nun in eine Definition gefasst werden. Ein Teilgraph T von G bezeichnet man als Steinerbaum für K, falls T alle Knoten von K (d.h. K ⊆ V (T )) enthält, sodass alle Blätter von T Element der Menge K sind. Die Knoten von K nennt man dabei die Terminale von T . Die Knoten V (T )\K nennt man Steiner-Knoten. Ein minimaler Steinerbaum für K im Graphen G ist ein Steinerbaum mit der minimalen Anzahl von Kanten im Teilgraph T . Hieraus folgt die nachstehende Definition: MINIMUM STEINER PROBLEM IN GRAPHS Gegeben: Ein zusammenhängender Graph G = (V , E) und eine Teilmenge von Terminalen K ⊆ V . Gesucht: Ein minimaler Steinerbaum für K in G. Das heißt einen Steinerbaum T für K, sodass |E(T )|= min{ |E(T ′ )| | T ′ ist ein Steinerbaum für K in G}. Dieses Problem erscheint zunächst recht einfach lösbar zu sein. Jedoch ist aus algorithmischer Sicht höchst herausfordernd. Das oben beschriebene Problem beschränkt sich auf Graphen mit Kantengewicht Eins. Da dies aus praktischer Sicht nicht sehr tauglich ist, soll als nächstes das Problem für gewichtete Graphen beschrieben werden. Ein gewichter Graph oder Netzwerk wird mit einem Triple N = (V, E, ℓ) beschrieben. G = (V , E) beschreibt einen Graph und ℓ : E(G) → R≥0 beschreibt die eine Funktion, die jeder Kante einen nichtnegativen Wert zuweist, welcher beispeilsweiße als Länge, Kosten oder Gewicht angesehen wer∑ den kann. Die Länge eines Teilgraphens H von G ist ℓ(H) = e∈E(H) ℓ(e). Ist G ein ungewichter Graph ist die Länge ℓ(H) gleich der Anzahl der Kanten in H. Dies nennt man dann auch die Größe von H und bezeichnet dies mit |H|. Mit p(v, w) bezeichnet man die Länge des kürzesten Pfades vom Knoten v zum Knoten w. Hieraus folgt die erweiterte Definition: 5 MINIMUM STEINER PROBLEM IN WEIGHTED GRAPHS/NETWORKS Gegeben: Ein zusammenhängender gewichteter Graph N = (V, E, ℓ) und eine Teilmenge von Terminalen K ⊆ V . Gesucht: Ein minimaler Steinerbaum für K in N . Das heit einen Steinerbaum T für K, sodass | ℓ(T ) |= min{ |ℓ(T ′ )| | T ′ ist ein Steinerbaum für K in N }. 3 Komplexität Die meisten Probleme der Komplexitätstheorie spiegeln reelle Probleme wieder. Viele sind jedoch schwierig zu lösen und zu diesen gehört auch das Auffinden eines minimalen Steinerbaum. Dieses Problem liegt in der Komplexitätsklasse der NP-vollständigen Probleme. Theorem 3.1. Das STEINER PROBLEM IN GRAPHS ist NP-Vollständig. Beweis. Um zu zeigen dass STEINER PROBLEM IN GRAPHS ∈ N P , genügt es zu zeigen dass das Problem N P -vollständig ist. Dazu reduzieren wir das Entscheidungsproblem 3SAT auf die Entscheidungsproblemversion des Steinerbaums und geben eine polyonmielle Reduktionsfunktion an. Seien x1 , . . . , xn die Variablen und C1 , . . . , Cm die Klauseln einer beliebig vorgegebenen 3SAT -Instanz. Das Ziel ist es einen Graphen G = (V , E), eine Menge von Terminalen K und eine Schranke B zu erzeugen bzw. zu bestimmen, sodass G einen Steinerbaum für K, mit höchstens der Größe B besitzt, genau dann wenn die gegebene 3SAT -Instanz erfüllbar ist. Der Graph G wird folgendermaßen konstruiert. Als Erstes verbindet man die Knoten u und v mit einem Variablenpfad, wie es in der Abbildung 1 ersichtlich ist. Abbildung 1: Die Umwandlung von 3SAT zum Steinerproblem: Der Variablenpfad 6 Als zweiten Schritt erstellt man für jede Klausel Ci einen Knoten, der zu seinen enthaltenen Literalen einen Pfad der Länge t = 2n + 1. Die Terminalmenge setzt man K = {u, v} ∪ {C1 , . . . , Cm } und wählt B = 2n + t ∗ m. Abbildung 2: Der Klauselknoten zu der Klausel Ci = x2 ∨ xj ∨ xn . Die gestrichelte Linie stellt den Pfad der Länge t = 2n + 1 zu den enthaltenen Literalen des Variablenpfads dar. Gegeben sei nun eine erfüllbare 3SAT -Instanz. Um einen Steinerbaum für K zu konstruieren wird zunächst der Variablenpfad P zwischen den Knoten u und v konstruiert und mit einer erfüllbaren Belegung erweitert. Dies geschieht indem man xi ∈ P setzt, falls xi in der Belegung wahr bzw. Eins ist. Analog wird xi ∈ P gesetzt, falls xi in der Belegung falsch bzw. Null sein sollte. Da nun für jede Klausel der zugehörige Knoten Ci mit einem Pfad der Länge t zu P hinzugefügt werden kann, erhält man einen Steinerbaum der Länge 2n + t ∗ m = B. Somit wurde die erste Richtung gezeigt. Für die andere Richtung sei T ein Steinerbaum für K, der höchstens die Länge B besitzt. Nach Konstruktion muss jede Klausel ihren zugehörigen Knoten Ci mit dem Variablenpfad verbunden sein. Nimmt man nun an, dass es eine Klausel Ci0 gibt, die mit mindestens 2 Pfaden zum Variablenpfad verbunden ist, dann ist | E(T ) |≥ (m + 1) ∗ t > B, da der Pfad zu einem Klauselknoten größer als 2∗n ist. Somit wurde die definierte Schranke überschritten. Dies kann aber nicht sein und zeigt, dass u und v nur durch den Variablenpfad verbunden werden kann, welcher 2n Kanten benötigt. Da jede Klausel mindestens t Kanten benötigt um Ci mit dem Variablenpfad zu verbinden kann man schließen, dass der Pfad von u nach V genau 2n Kanten umfasst und jede Klausel bzw. jeder Klauselknoten mit genau t Kanten zu genau diesem Pfad verbunden sein muss. Daher stellt der Pfad von u nach v eine erfüllbare Belegung von 3SAT dar. Die beschrieben Konstruktion ist in polynomieller Zeit erzeugbar. 7 C1 C2 x1 u v x1 Abbildung 3: Beispielgraph für F (x1 ) = (x1 ∨ x1 ∨ x1 ) ∧ (x1 ∨ x1 ∨ x1 ) Als Beispiel sei die 3Sat-Instanz F (x1 ) = (x1 ∨ x1 ∨ x1 ) ∧ (x1 ∨ x1 ∨ x1 ) gegeben. Diese Instanz ist offensichtlich nicht erfüllbar. Die resultierende Schranke B beträgt demnach 2 ∗ 1 + (2 ∗ 1 + 1) ∗ 1 = 5. Da nun alle Terminale {u, v, C1 , C2 } erreicht werden müssen ist uns die Konstruktion des Steinerbaumes nicht möglich, da der Pfad zu den Klauselknoten alleine schon 2 ∗ 3 = 6 beträgt. Somit ist kein Steinerbaum der Länge B erzeugbar. C1 C2 x1 x2 C3 x3 u v x1 x2 x3 Abbildung 4: Beispielgraph für F (x1 ) = (x1 ∨ x1 ∨ x1 ) ∧ (x1 ∨ x2 ∨ x3 ) ∧ (x1 ∨ x2 ∨ x1 ) Dieses ausführlichere Beispiel der Instanz F (x1 ) = (x1 ∨ x1 ∨ x1 ) ∧ (x1 ∨ x2 ∨ x3 ) ∧ (x1 ∨ x2 ∨ x1 ) besitzt erfüllbare Belegungen. Um genau zu sein liefern nur die Belegungen (0, 0, 0), (0, 1, 0)und(1, 0, 1) den Wahrheitswert 0. Betrachtet man solch eine Belegung auf dem Variablenpfad, können manche Klauselknoten nicht erreicht werden ohne zusätzliche Kanten hinzuzufügen. 8 Für die anderen Belegungen ist die Konstruktion möglich, was ausreicht um sagen zu können das die Fromel erfüllbar ist, falls nur der Graph vorgegeben wäre. 4 Approximationsalgorithmus Im Kapitel 2 hat man gesehen, dass das Steinerbaumproblem N P -Vollständig ist. Daher ist es sehr unwahrscheinlich, dass effiziente Algorithmen, in polynomieller Zeit, zur Lösung des Problems gibt. Daher wird in diesem Kapitel ein Verfahren vorgestellt der eine 2-Approximation darstellt. Dieser basiert auf der Berechnung des minimalen Spannbaumes in einem angepassten Graphen. Der Algorithmus stammt von Kou, Markowsky und Berman. Folgende Notationen werden verwendet. N = (V, E, ℓ; K) beschreibt ein Steinerbaumproblem in einem zusammenhängenden gewichteten Graphen mit seiner Längenfunktion(ℓ ≥ 0) und der Terminal Menge K. Nun wird jedem dieser Steinerbaumprobeme N = (V, E, ℓ) einen complete distance network (kompletter Distanzgraph) ND = (K, ED , ℓD )zugeordnet. Die Knotenmenge von ND entspricht dabei der (Menge der Terminale von K. Die ) Kantenmenge definiert man mit ED = K2 , was einen vollständigen Graphen zwischen den Terminalen aufspannt. Die Längenfunktion ℓd ordnet jeder Kante {x, y} ∈ ED die Länge des kürzesten Pfades x − y in N zu. Zum Abschluss bezeichnet man die Länge eines minimalen Steinerbaumes für die Menge der Terminale K in N mit smt(N ). 4.1 2er Approximation Der Springpunkt dieses Algorithmus ist das folgende Lemma, welches die Länge eines Steinerbaums in einem gewichteten Graphen mit der Länge des minimalen Spannbaums in dem zugehörigen Distanzgraphen vergleicht. Lemma 4.1. Sei N = (V, E, ℓ; K) ein Steinerbaumproblem. Dann erfüllt jeder minimale Spannbaum T im Distanzgraphen ND die Gleichung 2 ℓD (T ) ≤ (2 − ) ∗ smt(N ) k (1) wobei k = |K| der Kardinalität der Menge der Terminale entspricht. Beweis. Sei Sopt ein beliebiger minimaler Steinerbaum in N . Man verankert nun den Baum Sopt im Graphen und betrachtet einen Weg W über die äusseren Regionen. Dabei wird jedes Terminal genau einmal und jede Kante genau zwei Mal durchlaufen. Die Länge dieses Weges, vom Startpunkt und wieder zurück, hat daher genau die doppelte Länge von Sopt . 9 Abbildung 5: Illustriert den Beweis von Lemma 4.1. Der Weg W besteht aus den Pfaden 1 − 2, 2 − 3, ..., 7 − 8, 8 − 1. Um den Weg W ′ zu erhalten, entfernt man den Weg vom Knoten 7 zum Knoten 8. Sei t die Anzahl der Blätter in Sopt . Dann besthet der Weg W aus t ≤ k Pfaden zwischen aufeinanderfolgenden Blättern in Sopt . Entfernt man nun den längsten dieser Pfade (Abbildung 5) aus W beträgt die Länger resultierende Weg W ′ höchstens das (1 − 1t ) fache von W . Man kann nun beobachten, dass man durch das Folgen des Weges W ′ ohne Probleme einen Spannbaum in ND erstellen kann, dessen Länge maximal die der von W ′ ist. Dies schlussfolgert den Beweis dieses Lemmas. Abbildung 6: Gewichteter Graph N = (V, E, ℓ; K) mit untenstehenden Eigenschaften zeigt auf, dass die Schranke von Lemma 6.1 die bestmögliche ist. Aus der Vorlesung ist bekannt, dass die Berechnung des minimalen Spannbaumes effizient ist. Mit dem Algorithmus von Kruskal oder Prim kann somit die minimale Kantenmenge berechnet werden, die alle Knoten zu verbindet. Somit war auch jeder Knoten von jedem beliebigen Knoten genau über ein Pfad erreichbar. Nach Lemma 3.1 ist nun klar, dass der minimale 10 Spannbaum im kompletten Distanzgraphen die Länge des minimalen Steinerbaums um den Faktor Zwei approximiert. Und tatsächlich kann ein minimaler Spannbaum im kompletten Distanzgraphen auch zur Konstruktion eines Steinerbaumes verwendet werden, dessen Länge höchstens zwei mal so groß ist wie die des minimalen Steinerbaums. Dazu sei folgender Algorithmus angegeben: MST-ALGORITHM Eingabe: Gewichteten Graphen bzw. Netzwerk N = (V, E, ℓ; K) Ausgabe: Steinerbaum SK für N . (1) Berechnung des kompletten Distanzgraphen ND = (K, ED , ℓD ) (2) Berechnung des minimalen Spannbaum TD in ND (3) Umwandlung von TD in einen gewichteten Teilgraphen N [TD ] von N , indem jede Kante von TD mit zugehörigen kürzesten Pfad ersetzt wird. (4) Berechnung des minimalen Spannbaums T für den Teilgraphen N [TD ]. (5) Umwandlung von T in einen Steinerbaum SK für N , indem nacheinander alle Blätter gestrichen werden, die keine Terminale sind. Abbildung 7 verdeutlicht die Schritte des Algorithmus. Theorem 4.2. Sei N = (V, E, ℓ; K) ein Netzwerk. Dann berechnet der MST-ALGORITHM in polinommieller Zeit einen Steinerbaum SK für N sodass 2 ℓ(SK ) ≤ (2 − ) ∗ smt(N ) (2) k Beweis. Nach Lemma 4.1 gilt lD (T ) ≤ (2 − k2 ) ∗ smt(N ). Nach den Schritten (3), (4) und (5) können keine neunen Kanten hinzugekommen sein. Daher gilt ℓ(TD ) ≥ ℓ(T ) ≥ ℓ(SK ). 11 Abbildung 7: Zeigt alle Schritte des MST-ALGORITHM. Die Analyse des Algorithmus zeigt auf, dass der Großteil der Zeit für die Berechnung des Distanzgraphen ND benötigt wird. Dieses kann mittels der Berechnung der kürzesten Wege berechnet werden, die eine Laufzeit von O(n log n + m). Als Gesamtlaufzeit ergibt sich O(n2 log n + n ∗ m). Mit dem Algorithmus von Melhorn gibt es einen Algorithmus der auf dem Beschriebenen aufsetzt. Allerdings wird dort anstatt des vollsta”ndigen nur ein modifizierter Distanzgraph errechnet. Der Algorithmus von Melhorn erreicht ebenfalls die Aproximationsgüte 2, verbessert jedoch die Laufzeit auf O(n log n + n ∗ m). Auch existieren andere Algorithmen, wie z.B. GreedyAlgorithmen, die eine verbesserte Approximationsgüte aufweisen. So erreicht ein auf der Linearen Optimierung basierter Algorithmus sogar die Approximationsgüte 1,39. 12 5 Zusammenfassung Nach den allgemeinen Graphentheoretischen Grundlagen und den Definitionen der Steinerbaum Probleme könnte man meinen, dass das Problem nicht sonderlich schwer sei, da es dem minimalen Spannbaum recht ähnlich ist und für diesen effiziente Algorithmen existieren. Die Reduktion von 3SAT auf das Steinerbaumproblem in Graphen zeigte jedoch, dass das Problem der Klasse der N P -Vollständigen Probleme angehört. Die Charakteristik dieser Probleme ist, dass keine effizienten Algorithmen bekannt sind um dieses Probleme effizient zu lösen und daher mit Approximationsalgorithmen versucht wird, Näherungslösungen zu berechnen. Dies ist für das Steinerbaumproblem auch möglich und es wurde eine Approximation der Güte 2 aufgezeigt, was aber höchstens als obere Schranke angesehen werden kann. Jedoch existieren auch Algorithmen mit einer besseren Approximationsgüte. 13 Literatur [1] Hans Jürgen Prömel, Angelika Steger, The Steiner Tree Problem , Vieweg Verlag, 1st edition, Februar 2002 [2] Dr. G. Nirmala, C. Sujatha, Every u-v path of NP-complete Steiner graphs contains exactly 2n-edges, www.ijsrp.org/research-paper0914/ijsrp-p3308.pdf [3] Steinerbaumproblem, 2016, https://de.wikipedia.org/wiki/Steinerbaumproblem [4] Algorithmen 1, Vorlesung und Übung , SS 2016, Karlsruher Institut für Technologie, https://www.youtube.com/watch?v=a2xnfOEUl6k 14