Steinerbäume

Werbung
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
Herunterladen