Aufgabe 6.3 Betrachten Sie erneut die Steiner

Werbung
Aufgabe 6.3
Betrachten Sie erneut die Steiner-Bäume gemäß
Aufgabe 5.4 (zusammen mit den dort einV
geführten Bezeichnungen). Sei dabei E = 2 und ` : E → (0, ∞), sodass die Dreiecksungleichung erfüllt ist (d.h. `({v1 , v2 }) ≤ `({v1 , v3 }) + `({v3 , v2 }) für alle v1 , v2 , v3 ∈ V ). Ferner sei B 0 die Menge aller Kantenmengen F von Steiner-Bäumen H in G mit degH (v) ≥ 3
für alle Steiner-Knoten v ∈ S und I 0 die monotone Hülle von B 0 (also die Menge aller
I ⊂ F ∈ B 0 ).
a) Zeigen Sie:
(i) Es existiert immer ein bezüglich ` minimaler Steiner-Baum in B 0 .
(ii) Für alle F ∈ B 0 gilt für die zugehörige Menge der Steiner-Knoten, dass |S| ≤
|T | − 2 gilt.
(iii) Selbst wenn die Knoten aus G alle in R eingebettet sind und ` dem euklidischen
Abstand entspricht, liefert der Greedy-Algorithmus über B 0 schon auf kleinen
Graphen beliebig schlechte Ergebnisse.
(iv)
1
Konstruieren Sie einen Algorithmus mit Approximationsgüte 2 für Gewichtsfunktionen, die die Dreiecksungleichung erfüllen.
b) Wie gelangt man zu obiger Problemstellung, wenn die Dreiecksungleichung evtl. nicht
erfüllt ist, aber ` > 0 gilt und nicht notwendig ein Steiner-Baum gesucht ist, sondern
nur eine bezüglich ` minimale Kantenmenge die alle Terminale verbindet?
Lösung zu Aufgabe 6.3
a)
(i) Dass minimale Steiner-Bäume keine Steiner-Blätter enthalten folgt bereits aus
der Definition in 6.4. Da für ` die Dreiecksungleichung gilt, können aber auch
Steiner-Knoten v mit Grad 2 vernachlässigt werden, da die direkte Kante zwischen den beiden durch v verbundenen Knoten nicht länger ist als die beiden mit
v inzidenten Kanten.
(ii) Jeder Steiner-Baum F ∈ B0 besitzt |T | + |S| − 1 Kanten. Nehmen wir an, dass
|S| > |T | − 2 gilt, so folgt
X
X
X
degF (v) =
degF (v) −
degF (v) ≤ 2(|T | + |S| − 1) − 3|S| < |T |.
v∈T
v∈T ∪S
v∈S
Dann existiert aber ein Knoten v ∈ T mit degF (v) = 0 im Widerspruch zu F
Steiner-Baum.
(iii) Betrachten Sie folgenden Graphen: Die Knoten seien wie folgt in R1 eingebettet:
ti = i(1+) ∈ T i = 0, . . . , 3, vj = −N −j ∈ V \T , j = 0, 1. Der optimale SteinerBaum ist dann offensichtlich gleich dem optimalen Spannbaum auf T , Länge 3(1+
) (durchgezogene Kanten). Der Greedy-Algorithmus wählt zunächst die Kante
zwischen den beiden Steiner-Knoten und muss dann um die Gradbedingungen zu
erfüllen Kanten der Länge N , N + 1 + , N + 3 + 2 und N + 4 + 3 hinzufügen
(gestrichelte Kanten).
1
Zusatzaufgabe, muss nicht bearbeitet werden.
(iv) Die folgenden Algorithmen erzeugen Faktor 2 Approximationen des optimalen
Steiner-Baums:
• Bestimme einen minimalen Spannbaum B in dem durch T induzierten Subgraphen (etwa mit Prim oder Kruskal).
Beweis der Güte: Sei F ein minimaler Steiner-Baum. Wir doppeln alle Kanten
von F . Der so entstandene Multigraph besitzt offensichtlich einen Eulerkreis
E. Sortiert man nun die Knoten aus T entlang des Kreises E und betrachtet
den so entstandenen Weg W , so ist dieser aufgrund der Dreieicksungleichung
kürzer als zwei mal die Länge der Kanten aus F . Da W aber auch ein (sehr
spezieller) Spannbaum in dem durch T induzierten Subgraphen ist, ist W
nicht kürzer als die Summe der Kanten in B.
• Bestimme einen minimalen Spannbaum auf ganz V . Lösche dann alle SteinerBlätter, solange bis nur noch Terminal-Blätter existieren. Dann lösche die
Steiner-Knoten vom Grad zwei und verbinde die entstehenden zwei Zusammenhangskomponenten mit einer minimalen Kante, die diese (direkt) verbindet. Für den maximalen Steiner-Baum Fg+ ∈ B 0 der so entsteht, gilt
`(Fg+ ) ≤ 2`(F ).
Beweis der Güte: Sei Sg+ die Menge der Steiner-Knoten in Fg+ und S die
Menge der Steiner-Knoten in F . Dann kann ohne Einschränkung angenommen werden, dass S ⊂ Sg+ . Denn ist v ∈ S \ Sg+ so kann eine der mit
v in der Optimallösung inzidenten Kanten ohne Verlust durch die aus Fg+
ersetzt werden, die die entstehenden T -Zusammenhangskomponenten direkt
verbindet.
Seien nun Fg+ = {ē1 , . . . , ēk } und F = {e1 , . . . , el }, wobei |T | − 1 ≤ l ≤ k ≤
|T |+|Sg+ |−1 ≤ 2|T |−3 und `(ē1 ) ≤ · · · ≤ `(ēk ), `(e1 ) ≤ · · · ≤ `(el ). Die Kanten aus Fg+ können (während einer Greedy-Konstruktion) wie folgt in zwei
Teilmengen zerlegt werden: F1 enthält die Kanten, die zunächst nur SteinerKnoten aus Sg+ \ S miteinander verbinden oder Steiner-Knoten aus Sg+ \ S
an eine (T ∪ S)-Zusammenhangskomponente anbinden (|Sg+ \ S| Stück). F2
enthält diejenigen Kanten die (T ∪ S)-Zusammenhangskomponenten (evtl.
über andere Knoten) verbinden (|T ∪ S| − 1 Stück). Wegen (d) ist |F1 | ≤
|F2 | = l und nach Konstruktion existiert zu jedem ēi ∈ F1 ein ēj ∈ F2 mit
j > i also auch `(ēj ) ≥ `(ēi ) und damit `(F1 ) ≤ `(F2 ). Betrachtet man nun
F und F2 dann gilt aufgrund der Greedy-Auswahl der Kanten in F2 , dass
`(F2 ) ≤ `(F ). Insgesamt folgt also die Behauptung.
Man beachte, dass der erste Algorithmus per Definition keine Steiner-Knoten
benutzt, der zweite sogar dazu neigt zu viele zu verwenden. Tendenziell wird
der eine also gute Resultate liefern, wenn der andere schlechte liefert. Folgendes Beispiel deutet jedoch an, dass auch das Minimum über beide Ergebnisse
asymptotisch keine bessere Approximationsschranke liefert:
Im folgenden Graphen seien die die Kantenlängen 1 für alle durchgezogenen Kanten und 1 + für alle gestrichelten Kanten. Die restlichen Knotenabstände seien
gemäß der kürzesten Wege entlang der anderen Kanten definiert (die Dreiecksungleichung ist also erfüllt). Der erste Approximationsalgorithmus erzeugt einen
Spannbaum auf den Terminalen, Gewicht 22+10. Der zweite Approximationsalgorithmus wählt genau den Steiner-Baum der durchgezogenen Kanten, Gewicht
21. Der optimale Steiner-Baum besteht allerdings aus den gestrichelten Kanten,
Gewicht 12(1 + ). Man erkennt leicht, dass man auf dieser Weise Graphen mit
3 × 2q Terminalen erzeugen kann, sodass die Güteschranke beider Approximationsalgorithmen asymptotisch (q → ∞, → 0) erreicht wird.
b) Durch Bestimmung kürzester Wege zwischen je zwei Knoten kann immer angenommen
werden, dass die Dreiecksungleichung gilt. Die entsprechenden Kanten des Hilfsgraphen
müssen dann später nur in die korrekten Wege zurück transformiert werden.
Aufgabe 6.4
Sei G = (V, E, `) ein gewichteter gerichteter Graph und v1 ∈ V . Dann ist A ⊂ E eine
Arboreszenz (Branching, gerichteter Baum) mit Wurzel v1 in G, wenn |A| = |V | − 1 und
für alle v ∈ V existieren gerichtete Wege von v1 nach v in A.
a) Formulieren Sie die Suche nach maximalen Arboreszenzen (mit Wurzel v1 ) in einem
gewichteten Digraphen als Maximierungsaufgabe über einem Unabhängigkeitssystem
U.
b) Um zu entscheiden, ob G eine Arboreszenz mit Wurzel v1 besitzt, kann man zum
vollständigen Graphen Ḡ = (V, (V )2 ) übergehen (mit (V )2 = {(v, w) : v, w ∈ V, v 6=
w}), die Gewichtsfunktion `(e) = 1, falls e ∈ E und `(e) = 0, falls e 6∈ E definieren
und fragen, ob es in Ḡ eine Arboreszenz A mit Wurzel v1 vom Gewicht `(A) = |V | − 1
gibt.
Zeigen Sie, dass der Greedy-Algorithmus versagt, wenn man das Unabhängigkeitssystem zu Ḡ verwendet, dass aber eine gerichtete Variante des Prim-Algorithmus mit
Anfangsknoten v1 das richtige Ergebnis liefert.
c) Zeigen Sie, dass der Algorithmus von Prim zur Bestimmung maximaler Arboreszenzen für beliebige Gewichtsfunktionen bereits auf kleinen Graphen beliebig schlechte
Approximationen erzeugt.
d)
2
Entwickeln Sie einen Algorithmus zur Bestimmung einer maximalen Arboreszenz,
dessen Laufzeit O(p(|V |)) für ein Polynom p ist.
Lösung zu Aufgabe 6.4
a) Sei G = (V, E, `) ein gwichteter gerichteter Graph. Wir betrachten für eine Teilmenge
I ⊂ E die beiden Bedingungen
1) Der induzierte ungerichtete Graph G0 (I) ist kreisfrei;
2) Es gilt deginI (v) ≤ 1, ∀v ∈ V \ {v1 } und deginI (v1 ) = 0;
und definieren I ∈ Ij , falls I Bedingung j erfüllt. Dann bilden die Mengen M1 = (E, I1 )
und M2 = (E, I2 ) jeweils ein Matroid (graphisches Matroid bzw. Partitionsmatroid).
Damit ist U = M1 ∩ M2 als Schnitt von zwei Matroiden ein Unabhängkeitssystem.
Natürlich enthält U alle Arboreszenzen, und jede Arboreszenz A ist eine Basis von U .
Umgekehrt gilt für eine Basis B ∈ B, dass B Arboreszenz ist, wenn |B| = |V | − 1.
Zu einer gegebenen Gewichtsfunktion ` : EP→ [0; ∞) definieren wir jetzt die Funktion `0
für e ∈ E durch `0 (e) = `(e)+N mit N = e∈E `(e), und betrachten das entsprechende
Optimierungsproblem
X
max `0 (I), mit `0 (I) =
`0 (e)
I∈I
e∈I
Aus der Definition von `0 folgt erstens, dass nur Basen mit Mächtigkeit |V | − 1 - also
Arboreszenzen - optimal sein können, und zweitens, dass die Optimallösung auch eine
maximale Arobreszenz bezüglich ` sein muss.
b) Wir zeigen zuerst, dass der Greedy-Algorithmus versagt. Dazu betrachten wir den
folgenden Graphen G.
2
Zusatzaufgabe, muss nicht bearbeitet werden.
Nach Voraussetzung bekommt jede Kante von G das Gewicht 1. Startet der GreedyAlgorithmus mit der gestricheleten Kante, so kann diese nicht mehr zu einer Arboreszenz des Graphen G ergänzt werden.
Wir betrachten jetzt die folgende Variante des Algorithmus von Prim: Analog zum
’gewöhnlichen’ Algorithmus von Prim lassen wir die Arboreszenz ausgehend von v1
entlang gerichteter Kanten wachsen. Da wir hier außerdem eine maximale Arboreszenz
finden wollen, muss das label setting entsprechend angepasst werden.
Natürlich findet der Algorithmus eine Arboreszenz in Ḡ, da in jedem Schritt ein noch
freier Knoten angeschlossen wird (d.h., es werden keine Kreise geschlossen, und am
Ende sind alle Knoten aus Ḡ angebunden). Enthält G keine Arboreszenz, so hat jede
Arboreszenz A in Ḡ nach Definition einen Wert |A| < |V | − 1 und der Algorithmus
arbeitet korrekt. Wir nehmen jetzt an, dass G eine Arboreszenz besitzt, aber der
Algorithmus versagt. In diesem Fall wird in (mindestens) einem Schritt ein Knoten
mit Label 0 hinzugefügt. Das ist aber gleichbedeutend damit, dass keine Kante in G
existiert, die die Menge der bisher gewählten Knoten mit den restlichen verbindet. Das
ist ein Widerspruch zur Voraussetzung.
c) Wir betrachten den folgenden Graphen G
Die maximale Arboreszenz mit Wurzel v1 hat den Wert N + 1. Die Variante des Algorithmus von Prim findet aber eine Arboreszenz, die nur den Wert 4 hat.
d) Die Grundidee des Algorithmus basiert auf einer wiederholten Anwendung des Greedy
Algorithmus für das Matroid M2 aus (a). Findet der Greedy Algorithmus eine maximale Lösung für M2 , die auch Bedingung (1) erfüllt, so ist man fertig. Andernfalls wird
der ursprüngliche Graph geeignet modifiziert, und man wiederholt den ersten Schritt.
Im Detail hat der Algorithmus die folgenden Schritte:
i) Greedy Algorithmus: Gegeben gewichteter Digraph G = (V, E, `) und das zugehörige Partitionsmatroid M2 = (E, I2 ) aus (a). Wir bestimmen mit dem Greedy
Algorithmus eine optimale Lösung B ∗ von
max `(B).
B∈I2
Falls B ∗ Bedingung (1) erfüllt, weiter zu Schritt (iii) ansonsten zu Schritt (ii). In
diesem Fall ist sogar jeder Kreis von B ∗ gerichtet.
ii) Modifizieren des Graphen: Gegeben gewichteter Digraph G = (V, E, `) und Menge
B ⊂ E, die einen gerichteten Kreis K = (VK , EK ) enthält. Wir führen die Kontraktion von K in G zu G/K durch, d.h. der Kreis wird zu einem einzigen neuen
Knoten w zusammengezogen. Wir definieren jetzt die Gewichtsfunktion `G/K auf
den Kanten von G/K: Setze `G/K (e) = `(e) für jede Kante e, die nicht mit dem
neuen Knoten w inzident ist oder die jetzt vom neuen Knoten w ausgeht, d.h.
e = (w, v), v ∈ V \ VK .
Es bleiben die Kanten übrig, die jetzt in den Knoten w hineinlaufen. Gilt e = (v, w)
so gab es im Graphen G einen Knoten z ∈ VK mit e = (v, z) und eine Kante
eK ∈ EK aus dem Kreis K, die in z hineinläuft. Hiermit setzen wir
`G/K (e) = `(e) − `(eK ).
Zurück zu Schritt (i) mit Graphen G/K und Gewichtsfunktion `G/K .
iii) Konstruktion der Arboreszenz A: Alle Kanten, die in Schritt (i) vom Greedy
Algorithmus beim letzten Durchlauf ausgewählt wurden, werden zu A hinzugefügt.
Die restlichen Kanten der Arboreszenz erhalten wir durch sukzessives rückgängig
machen der Kontraktionen. Hierbei werden jetzt aus jedem Kreis alle bis auf
eine Kante zur Arboreszenz hinzugefügt. Die Kante eines Kreises, die nicht zur
Arboreszenz hinzugefügt wird, ergibt sich dabei eindeutig dadurch, dass sonst in
G in einen Knoten mehr als eine Kante hineinlaufen würde.
Bemerkungen:
• Da in Schritt (ii) die Anzahl der Knoten bei jedem Durchlauf abnimmt, ist klar,
dass der Algorithmus nach O(p(|V |)) Schritten terminiert.
• Die Definition der Gewichtsfunktion `G/K für die Kanten (v, w), v ∈ V \VK beruht
auf der Idee, dass das Gewicht von Kreis und der Kante, die den Kreis anbindet,
insgesamt maximal sein soll. Der Gewinn bzw. Verlust, der entsteht, wenn der
Kreis durch die Kante e angebunden wird (und dadurch eine eindeutige Kante
des Kreises gestrichen werden muss), entspricht genau dem neuen Gewicht `0 (e).
Abgabe: bis Montag, 16.00 im dafür vorgesehenen Kasten im Untergeschoss.
Bitte notieren Sie auf ihrer Abgabe:
• Name(n), Vorname(n),
• Matrikelnummer(n) und
• Übungsgruppe (Wochentag, Uhrzeit und Übungsleiter).
Bitte geben Sie möglichst in Dreiergruppen ab.
Herunterladen