Technische Universit ¨at M ¨unchen Zentrum Mathematik

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