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!