Technische Universität München Optimierung II, WS 2007/2008

Werbung
Technische Universität München
Zentrum Mathematik
Prof. Dr. A. Taraz, Dr. R. Brandenberg,
Dipl.-Math. Dipl.-Inf. S. Borgwardt
Optimierung II, WS 2007/2008
Übungsblatt 4
Aufgabe 4.1
a) Sei G = (V, E) ein gerichteter Graph. Zwei Knoten v, w ∈ V heißen stark zusammenhängend, wenn es einen gerichteten Zyklus durch v und w gibt. Sind v und w
stark zusammenhängend, so schreiben wir auch v ∼ w. Durch ∼ wird eine Äquivalenzrelation auf V definiert, deren Äquivalenzklassen starke Zusammenhangskomponenten
von G heißen. Gehören alle Knoten von V zu einer Zusammenhangskomponente, dann
heißt G stark zusammenhängend. Geben Sie einen in |V | polynomialen Algorithmus
an, der die starken Zusammenhangskomponenten von G bestimmt.
b) Zeigen Sie, dass 2-Sat ∈ P.
Hinweis: Sei (n, m, {s1 , . . . , sn }, C) eine Instanz von 2-Sat. Dann betrachte den gerichteten Graphen G = (V, E), wobei V die Knoten si und s¯i , i = 1, . . . , n enthalte und
für jede Klausel {x, y} ∈ C mit Literalen x, y die Kanten (x̄, y) und (ȳ, x) enthalte.
c) Sie sind zu Besuch bei Bekannten und spielen mit deren Tochter Lego-Duplo Eisenbahn. Dabei fällt Ihnen auf, dass die Züge zwar nur vorwärts fahren können, ein Wenden auf der Strecke aber durch geschickt gebaute Schleifen möglich ist. Zur Verfügung
stehen außer Geraden und Kurven nur einige Weichen. Als Mathematiker haben Sie
natürlich gleich erkannt, dass sich hier das LDE Problem verbirgt: Entscheide für eine gegebene (hochkomplexe) Eisenbahnstrecke, ob die Bahn zu jeder Zeit (nur durch
Weichenstellungen) jeden Punkt der Strecke in beide Richtungen durchfahren kann.
Hilft Ihnen der Algorithmus aus Aufgabenteil (a)?
Lösung zu Aufgabe 4.1
a) klar: mit Floyd-Warshall kann in |V |3 Schritten ein solcher Test durchgeführt werden.
Andere Algorithmen mit Laufzeit O(|V |2 + |V | ∗ |E|) lassen sich leicht konstruieren.
Es geht aber auch in O(|V | + |E|) (siehe Anhang).
b) Beh.: (n, m; {s1 , . . . , sn }, C) Ja-Instanz von 2-Sat, genau dann wenn für alle i ∈
{1, . . . , n} liegen si und s̄i nicht in einer starken Zusammenhangskomponente.
⇒ Existiert ein i, sodass si und s̄i in einer starken Zusammenhangskomponente von
G liegen, dann existieren Wege (si , t1 , . . . , tk , s̄i ) und (s̄i , u1 . . . , ul , si ), also Klauseln (s̄i , t1 ), (t̄1 , t2 ), . . . , (t̄k−1 , tk ), (t̄k , s̄i ) und (si , u1 ), (ū1 , u2 ), . . . , (ūl−1 , ul ), (ūl , si ).
Setzt man nun si wahr, dann folgt aufgrund obiger Klauseln t1 wahr, t2 wahr, . . .,
tk wahr und damit si falsch, Widerspruch. Analog folgt aus si falsch, dass alle uj
wahr sein müssen und damit auch si wahr, Widerspruch. (n, m; {s1 , . . . , sn }, C)
ist also eine Nein-Instanz.
⇐ Seien V1 , . . . , Vk die starken Zusammenhangskomponenten und (o.E.) seien diese
so nummeriert, dass für alle i mit si ∈ Vj , j ≤ k/2 gilt, dass s̄i ∈ Vk/2+j und andersherum. Seien y1j , . . . , yljj die Literal-Knoten der j-ten Zusaammenhangskomponente j ≤ k/2. Dann besetze die Variablen si , so mit ja/nein, dass alle yij wahr
werden (beachte, dass nur si oder s̄i in einer Komponente). Alle Kanten (yij , ykj )
der j-ten Komponente (und auch die Kanten (ȳkj , ȳij ) der k/2+j-ten Komponente)
stehen für Klauseln der Form (ȳij , ykj ) und sind wegen ykj wahr erfüllt.
c) Bezeichne die Weichen mit w1 , . . . , wk . Dann sei G = (V, E) der gerichtete Graph mit
vowärts Knoten wiv und rückwärts Knoten wir , i = 1, . . . , k. Kann der Zug vorwärts (ein
Gleis nach zwei Gleise) durch wi fahren und erreicht dann auf einem der beiden Äste
als nächstes wj und durchfährt diese rückwärts, dann fügen wir eine Kante (wiv , wjr )
ein. Analog für alle anderen Kombinationen. Am Ende muss G nur noch auf starken
Zusammenhang getestet werden (geht mit einmal Tiefensuche und einmal reverser
Tiefensuche).
Bitte wenden!
Herunterladen