Theoretische Informatik II Double Edge Algorithmus

Werbung
Fakultät für Informatik
Professur Theoretische Informatik
und Informationssicherheit
Prof. Dr. Hanno Lefmann
Sommersemester 2007
Theoretische Informatik II
8. Übung
Aufgabe 1 (6 Punkte)
In einem Graphen heißt ein geschlossener Weg Euler-Tour, wenn jede Kante des Graphen
genau einmal durchlaufen wird. Ein Graph, der eine Euler-Tour enthält, heißt eulersch.
a) Zeigen Sie: Ein zusammenhängender Graph ist eulersch genau dann, wenn jeder Knoten
einen geraden Knotengrad hat.
b) Geben Sie einen effizienten Algorithmus an, der in einem eulerschen Graphen eine
Euler-Tour bestimmt.
————————————————————————————————————————
MIN-TSP sei die Optimierungsvariante von TRAVELING SALESMAN.
Beim Traveling Salesman Problem mit Dreiecksungleichung (TSP4 ) ist ein vollständiger
Graph G = (V, E, d) mit Kantengewichtung d: E → IN gegeben, so dass stets
d({x, z}) ≤ d({x, y}) + d({y, z})
für alle Knoten x, y, z ∈ V gilt.
Wir betrachten die folgenden zwei Algorithmen für MIN-TSP4 :
Double Edge Algorithmus
Eingabe: vollständiger Graph G = (V, E, d) mit Kantengewichtung d: E → IN,
der die Dreiecksungleichung erfüllt
Ausgabe: Rundreise
Schritt 1:
Schritt 2:
Schritt 3:
Schritt 4:
Bestimme einen minimalen Spannbaum T für den Graphen G.
Verdopple alle Kanten von T und erhalte so den eulerschen Multigraphen
H.
Bestimme eine Euler-Tour in H.
Streiche aus dieser Tour die doppelt besuchten Knoten. STOP.
Aufgabe 2 (5 Punkte)
Zeigen Sie, dass der Double Edge Algorithmus Güte höchstens 2 hat.
Nearest Insertion Algorithmus
Eingabe: vollständiger Graph G = (V, E, d) mit Kantengewichtung d: E → IN und
|V | = n, der die Dreiecksungleichung erfüllt
Ausgabe: Rundreise
Schritt 1:
Schritt 2:
Schritt 3:
Starte mit einem beliebigen Knoten, etwa v1 und setze k := 1, T1 := (v1 ).
Sei Tk = (v1 , v2 , . . . , vk , v1 ) die aktuelle (Teil)Rundreise mit k Knoten.
Wähle einen Knoten vk+1 , der nicht zu Tk gehört, und einen Knoten vi
in Tk so, dass d({vi , vk+1 }) minimal ist. Streiche eine der Kanten von Tk ,
die zu vi inzident ist und verbinde ihre Endknoten mit vk+1 , um eine
(Teil)Rundreise Tk+1 zu erhalten. Setze k := k + 1.
Ist k < n gehe zu Schritt 2, andernfalls STOP.
Aufgabe 3 (5 Punkte)
Zeigen Sie, dass der Nearest Insertion Algorithmus Güte höchstens 2 hat.
Herunterladen