PDF-Download

Werbung
Lehrstuhl für Informatik I
Würzburg, den 12. April 2016
Algorithmen, Komplexität und
wissensbasierte Systeme
Prof. Dr. Alexander Wolff
M. Sc. Fabian Lipp
Universität Würzburg
1. Übungsblatt zur Vorlesung
Algorithmische Graphentheorie (Sommersemester 2016)
Aufgabe 1 – Algorithmus von Dijkstra
a) Ermitteln Sie für den abgebildeten Graphen mit Hilfe des Algorithmus von Dijkstra einen Baum
kürzester Wege bezüglich x. Geben Sie in nachvollziehbarer Art und Weise die Zwischenschritte
an.
t
1
u
3
1
w
v
1
2
3
2
4
6
1
y
x
1
10
7
z
4 Punkte
b) Geben Sie einen Graphen an, der gerichtete Kanten negativer Länge enthält, und bei dem der Algorithmus von Dijkstra versagt. Konstruieren Sie ferner einen Graphen G = (V, E), der gerichtete
Kanten negativer Länge enthält, bei dem der Algorithmus von Dijkstra aber ein korrektes Ergebnis liefert. G soll n ≥ 3 Knoten und m ≥ n + 3 Kanten enthalten. Erklären Sie Ihre Lösungen
kurz.
4 Punkte
Aufgabe 2 – Kreissuche
Gegeben sei ein zusammenhängender ungerichteter Graph G = (V, E). Wir interessieren uns hier für
einfache Kreise, d. h. Kreise, die jede Kante höchstens einmal enthalten, mit einer Länge von mindestens 3.
Modifizieren Sie die Breitensuche so, dass der resultierende Algorithmus ermittelt, ob ein zusammenhängender Graph einen einfachen Kreis mit einer Länge von mindestens 3 enthält. Der modifizierte
Algorithmus soll eine Laufzeit von O(|V|) aufweisen – im Gegensatz zur Breitensuche, die O(|V|+|E|)
Zeit benötigt.
a) Geben Sie den Algorithmus in Worten und in Pseudocode an.
4 Punkte
b) Zeigen Sie, dass Ihr Algorithmus die Anforderungen (d. h. Korrektheit und Laufzeit) erfüllt.
4 Sonderpunkte
c) Erklären Sie kurz, wie sich der Algorithmus auf allgemeine, nicht notwendigerweise zusammenhängende ungerichtete Graphen verallgemeinern lässt.
1 Sonderpunkt
Aufgabe 3 – Hamiltonkreise
Ein sogenannter Turniergraph G = (V, E) ist ein gerichteter Graph mit der Knotenmenge V = {v1 , . . . , vn }
und |V| ≥ 3, der für jedes Paar vi 6= vj von Knoten entweder die gerichtete Kante (vi , vj ) oder die
umgekehrt gerichtete Kante (vj , vi ) besitzt. Ein Graph G = (V, E) heißt stark zusammenhängend, wenn es
für jedes Paar (v, w) ∈ V × V einen gerichteten Weg von v nach w in G gibt.
Gegeben sei nun ein stark zusammenhängender Turniergraph G = (V, E). Zeigen Sie, dass G einen
Hamiltonkreis besitzt. Gehen Sie dazu nach den folgenden Schritten vor:
a) Zeigen Sie, dass jeder Knoten v ∈ V auf einem Kreis der Länge ≥ 3 liegt.
Hinweis: Wählen Sie eine Kante (u, v) oder (v, u) und nutzen Sie den starken Zusammenhang
von G.
1 Punkt
b) Zeigen Sie, dass jeder Knoten v ∈ V auf einem Kreis der Länge (genau) 3 liegt.
Hinweis: Wählen Sie einen nach a) existierenden Kreis und machen Sie diesen schrittweise kürzer.
2 Punkte
c) Betrachten Sie einen Kreis C in G. Sei V(C) die Menge der Knoten in C. Nehmen Sie an, dass C
maximal ist, aber kein Hamiltonkreis, d.h. V(C) 6= V. Betrachten Sie einen Knoten v ∈
/ V(C).
Zeigen Sie: Ist w ∈ C und (w, v) ∈ E, so ist auch (w 0 , v) ∈ E für den Nachfolger w 0 von w auf
dem Kreis C.
Analog können Sie zeigen: Ist w ∈ C und (v, w) ∈ E, so ist auch (v, w 00 ) ∈ E für den Vorgänger w 00
von w auf dem Kreis C.
1 Punkt
d) Folgern Sie aus c): Entweder gilt für alle Knoten w ∈ V(C), dass (v, w) ∈ E (i), oder für alle
Knoten w ∈ V(C) gilt, dass (w, v) ∈ E (ii).
1 Punkt
e) Sei nun V1 ⊆ V \ V(C) die Menge aller Knoten, für die Bedingung (i) gilt, und V2 ⊆ V \ V(C) die
Menge aller Knoten, für die Bedingung (ii) gilt.
Zeigen Sie: Ist V(C) 6= V, so sind weder V1 noch V2 leer.
Hinweis: Verwenden Sie, dass G stark zusammenhängend ist.
1 Punkt
f) Führen Sie nun mit Hilfe der Mengen V1 und V2 die Maximalität von C im Fall V(C) 6= V zum
Widerspruch. Damit haben Sie gezeigt, dass G einen Hamiltonkreis besitzt.
Hinweis: Versuchen Sie den Kreis mit Hilfe einer geeignete Kanten zwischen Knoten aus V1
und V2 zu verlängern.
2 Punkte
Abgabe der Lösungen bis Dienstag, 19. April 2016, 10:15 Uhr zu Beginn der Vorlesung oder in den
Briefkasten. Die Besprechung erfolgt in der Übung am Freitag, 22. April 2016.
Herunterladen