Technische Universität München Zentrum Mathematik Optimierung 2, WS 2008/09 Prof. Dr. P. Gritzmann, Dipl.-Inf. Dipl.-Math. S. Borgwardt, Dipl.-Math. M. Ritter Übungsblatt 5 Aufgabe 5.1 Für vollständigen Graphen Kn = (V, E) und eine Gewichtsfunktion d : E → N sagt man, d erfüllt die Dreiecksungleichung, falls für je drei paarweise verschiedene Knoten i, j, k ∈ V gilt: d(i, j) + d(j, k) ≥ d(i, k). a) Zeigen Sie: Jeder Graph, bei dem der Grad jedes Knotens gerade ist (und der mindestens eine Kante enthält), enthält einen Kreis. b) Eine Eulertour in einem Graphen ist ein einfacher Kantenzug, der jede Kante des Graphen genau einmal enthält. Finden Sie eine Eulertour in dem Graphen in Abbildung 1. c) Zeigen Sie: Ein zusammenhängender Graph, bei dem der Grad jedes Knotens gerade ist, enthält eine Eulertour. Überlegen Sie sich, wie Sie in einem solchen Graphen eine Eulertour konstruieren können. d) Sei Kn = (V, E) der vollständige Graph auf n Knoten mit Gewichtsfunktion d, G = (V, E 0 ) ein spannender Subgraph des Kn mit E 0 ⊂ E und T = (e1 , e2 , . . . , em ) mit e1 , . . . , em ∈ E 0 eine Eulertour der Länge d(T ) in G. Zeigen Sie: Falls d die Dreiecksungleichung erfüllt, enthält Kn eine Traveling Salesman-Tour, die höchstens Länge d(T ) besitzt. Wie lässt sich die TSP-Tour konstruktiv aus der Eulertour gewinnen? e) Sei Kn der vollständige Graph auf n Knoten und sei d eine Gewichtsfunktion für Kn , die die Dreiecksungleichung erfüllt. Verwenden Sie die obigen Aussagen, um einen Algorithmus anzugeben, der eine TSP-Tour τ auf Kn konstruiert, die die Ungleichung d(τ ) ≤ 2 · d(τopt ) erfüllt, wobei τopt eine optimale TSP-Tour ist. (So ein Algorithmus heißt übrigens 2Approximation für TSP). Lösung zu Aufgabe 5.1 a) Sei G = (V, E). Ausgehend von einem Weg in G konstruieren wir sukzessive einen Kreis wie folgt: Seien v, w der erste bzw. letzte Knoten des Weges, dann gibt es (wegen deg(w) ≥ 2) eine Kante e ∈ E, die mit w inzident ist und nicht Teil des Weges ist. Jetzt gibt es zwei Möglichkeiten: Entweder w0 ist bereits Teil des Weges, dann erhält man mit der Kante e einen Kreis auf dem konstruierten Weg. Oder w0 ist nicht Teil des Weges, dann verlängern wir den Weg um e und w0 und führen die Konstruktion fort. Das es nur 1 4 1 5 3 7 2 6 Abbildung 1: Finden Sie eine Eulertour endlich viele Knoten in G gibt, endet diese Konstruktion spätestens nach |V | Schritten mit einem Kreis. b) Wie bereits gezeigt, enthält ein Graph mit geradem Knotengrad für alle Knoten einen Kreis. Entfernt man einen Kreis aus dem Graphen (die Kanten des Kreises und alle Knoten, die dann Grad 0 hätten), so erfüllt auch der restliche Graph wieder die Voraussetzungen, da für jeden Knoten eine gerade Anzahl inzidenter Kanten entfernt wurden (nämlich 0 oder 2). Sukzessive erhält man eine Zerlegung der Kantenmenge des Graphen in kantendisjunkte Kreise. Wenn man diese zusammensetzt (da der Graph zusammenhängend ist, gibt es keinen isolierten Kreis), erhält man eine Eulertour. c) Sei T = (e1 , . . . , em ) die Eulertour in Kn und τ = (v1 , . . . , vn ) die Knoten von Kn in der Reihenfolge, in der sie von der Eulertour besucht werden (es gilt jeweils nur der erste Besuch). Dann ist τ eine TSP-Tour. Für die Länge einer Kante {vi , vi+1 } gilt: Entweder ist diese Kante auch in der Eulertour enthalten (wenn die beiden Knoten unmittelbar aufeinander folgend zum ersten Mal besucht werden), oder ein Kantenzug von vi nach vi+1 ist in der Eulertour enthalten (wenn dazwischen Knoten besucht werden, die vorher bereits besucht wurden). In beiden Fällen ist der Weg von vi nach vi+1 in der TSP-Tour höchstens kürzer als in der Eulertour (Dreiecksungleichung!). Das zeigt die Behauptung. d) Wir bestimmen zunächst einen minimalen Spannbaum B ⊂ E auf dem Graphen Kn = (V, E). Anschließend verdoppeln wir jede Kante in B und erhalten so einen Subgraphen (V, B ⊕B) (wobei ⊕ die Kantenverdopplung kennzeichnet), in dem jeder Knoten geraden Grad besitzt. Nach den vorigen Aufgaben gibt es in diesem Graphen eine Eulertour, aus der wir wiederum eine TSP-Tour τ konstruieren. Sei d(B) die Länge des minimalen Spannbaums, dann ist die Eulertour 2d(B) lang, und es gilt d(τ ) ≤ 2d(B). Sei τopt eine optimale TSP-Tour durch den gegebenen Kn , dann enthält τopt insbesondere einen Spannbaum (sowie eine zusätzliche Kante, die den Kreis schließt). Damit ist d(τopt ) ≥ d(B), also gilt insgesamt: d(τ ) ≤ 2d(B) ≤ 2d(τopt ) 2 Aufgabe 5.2 Hausaufgabe a) Wie viele verschiedene kardinalitätsmaximale Matchings gibt es in Km,n für m ≤ n? b) Seien s 6= t Knoten in Kn,n . Wie viele verschiedene Wege gibt es zwischen s und t? Lösung zu Aufgabe 5.2 a) Seien A, B die Partitionshälften von Km,n mit |A| = m, |B| = n. Ein kardinalitätsmaximales Matching verbindet jeden der m Punkte aus A mit genau einem der n Punkte aus B. n! Zuordnungsmöglichkeiten. Damit ergeben sich (n−m)! b) Seien A, B die Partitionshälften von Kn,n . Wir unterscheiden zwei Fälle: s, t ∈ A: Dann gibt es eine Anzahl von 0 ≤ i ≤ n − 2 weiteren Knoten ∈ A auf dem Weg zwischen s und t, und dann auch genau i + 1 weitere Knoten ∈ B. Die Reihenfolge ist beliebig, also erhalten wir n−2 X n−2 X (n − 2)! n! n n−2 · ) ((i + 1)! · i! )= ( i+1 i (n − i − 1)! (n − i − 2)! i=0 i=0 s ∈ A und t ∈ B: Dann gibt es eine Anzahl von 0 ≤ i ≤ n − 1 von weiteren Knoten ∈ B auf dem Weg zwischen s und t, und dann auch genau i weitere Knoten ∈ A. Die Reihenfolge ist beliebig, also erhalten wir n−1 n−1 X n − 1 2 X (n − 1)! 2 (i! ) = ( ) i (n − i − 1)! i=0 i=0 3