3. Übungsblatt zur Vorlesung Algorithmische

Werbung
Lehrstuhl für Informatik I
Algorithmen, Komplexität und
wissensbasierte Systeme
Universität Würzburg
Würzburg, den 9. Mai 2017
Prof. Dr. Alexander Wolff
Fabian Lipp, M. Sc.
Andre Löffler, M. Sc.
3. Übungsblatt zur Vorlesung
Algorithmische Graphentheorie (Sommer 2017)
Aufgabe 1 – Hamiltonkreise
Ein Hyperwürfel der Dimension d ≥ 2 ist ein Graph Hd = (Vd , Ed ) mit der Knotenmenge
Vd = {0, 1}d = { (x1 , . . . , xd ) | xi ∈ {0, 1} für i = 1, . . . , d }. Zwei Knoten aus Hd sind
benachbart in Hd , wenn sie sich in genau einer Koordinate xi unterscheiden.
a) Für welche Werte von d besitzt Hd einen Eulerkreis? Zeigen Sie, dass Ihre Behauptung korrekt ist.
2 Punkte
b) Zeigen Sie per Induktion über die Dimension d, dass jeder Hyperwürfel einen Hamiltonkreis besitzt.
4 Punkte
Aufgabe 2 – Längste Wege
Das Problem LÄNGSTER s-t-W EG besteht darin in einem gegebenen ungerichteten Graphen zu einem gegebenen Paar {s, t} von Knoten mit s 6= t einen längsten einfachen
Weg zu finden. Zur Erinnerung: ein Weg der Länge k ≥ 0 ist eine Folge hv0 , . . . , vk i mit
der Eigenschaft, dass {v0 , v1 }, {v1 , v2 }, . . . , {vk−1 , vk } Kanten des Graphen sind. Ein Weg
ist einfach, wenn er jeden Knoten höchstens einmal durchläuft.
Wir wollen zeigen, dass LÄNGSTER s-t-W EG NP-schwer ist, indem wir das Problem
H AMILTONWEG auf LÄNGSTER s-t-W EG reduzieren.
a) Sei G = (V, E) ein ungerichteter Graph. Wir erweitern G zu einem Graphen G 0 =
(V 0 , E 0 ), dessen Knotenmenge V 0 = V ∪ {s, t} um zwei zusätzliche Knoten s und t
ergänzt wurde. Außerdem ist E 0 = E ∪ {{s, v} | v ∈ V} ∪ {{v, t} | v ∈ V}, d.h. s und t
sind jeweils zu jedem Knoten von G adjazent.
Erklären Sie, wie man aus einem einfachen Weg der Länge k in G einen einfachen
s-t-Weg der Länge k + 2 in G 0 erhält. Erklären Sie ebenfalls, wie man aus einem
einfachen s-t-Weg der Länge k in G 0 einen einfachen Weg der Länge k − 2 in G
konstruieren kann (zwischen beliebigen Knoten aus V).
2 Punkte
b) Zeigen Sie: Es gibt einen Hamiltonweg (d.h. einen einfachen Weg der Länge n − 1)
in G genau dann, wenn es einen einfachen s-t-Weg der Länge n + 1 in G 0 gibt.
1 Punkt
c) Zeigen Sie damit: L ÄNGSTER s-t-W EG ist NP-schwer.
2 Zusatzpunkte
Hinweis: Das wichtigste haben wir in der vorherigen Teilaufgabe schon bewiesen.
Es fehlen nur noch ein paar Details für eine zulässige Polynomialzeitreduktion.
Aufgabe 3 – Metrisches TSP
In der Vorlesung wurde ein Approximationsalgorithmus auf Basis von Spannbäumen
für das metrische TSP vorgestellt. Dieser besitzt Güte 2, d.h. die Rundreise, die der
Algorithmus liefert, ist höchstens doppelt so lang wie eine optimale Rundreise.
Im Folgenden sei G ein vollständiger, metrischer, ungerichteter Graph mit Kantengewichten c : E → R≥0 . Betrachten Sie den folgenden Algorithmus:
CompleteHamilton(Graph G = (V, E), Kostenfunktion c)
wähle s ∈ V beliebig
wähle eine Kante {s, t} ∈ E mit c(s, t) minimal
C ← h{s, t}, {t, s}i
while V(C) 6= V do
wähle einen Knoten v ∈ V \ V(C), dessen Abstand zu C am geringsten ist
sei w ein Knoten in C mit c(v, w) minimal
sei u der Vorgänger oder Nachfolger von w auf C
ersetze in C die Kante {u, w} durch die Kantenfolge h{u, v}, {v, w}i
return C
a) Zeigen Sie, dass der Algorithmus von Prim (beginnend mit Startknoten s) in jedem Schritt denselben Knoten zum aktuellen Baum hinzufügt wie Algorithmus
CompleteHamilton zum Kreis C.
3 Punkte
Hinweis: Sie dürfen vernachlässigen, dass es in einem Schritt mehrere gleich gute
Wahlmöglichkeiten geben kann.
b) Zeigen Sie, dass Algorithmus CompleteHamilton Güte 2 besitzt.
6 Punkte
Hinweis: Verwenden Sie Teilaufgabe a) sowie die Dreiecksungleichung um die Erhöhung der Kosten in einer Iteration abzuschätzen. Durch die Dreiecksungleichung
gilt für alle alle Paare {u, v}, {v, w} von Kanten c(u, w) ≤ c(u, v) + c(v, w).
CPLEX
Aufgabe 4 – Lineare Programme lösen
Gegeben ist das folgende lineare Programm mit den Variablen x, y und z:
Zielfunktion:
Maximiere 2, 5x + 1, 7y + 1, 9z
Nebenbedingungen: 500x
+350y +350z ≤ 57000
125x
+300z ≤ 30000
125x
+275y +100z ≤ 26000
250x
+375y +250z ≤ 55000
Nichtnegativität:
x ≥ 0, y ≥ 0, z ≥ 0
Lösen Sie dieses Programm und geben Sie die optimale Lösung an. Sie können dazu
beispielsweise die Software CPLEX verwenden, die wir Ihnen in den Übungen vorstellen. Laden Sie bitte zusätzlich ihren Quelltext in Wuecampus hoch, um ihren Lösungsweg aufzuzeigen.
2 Punkte
Bitte werfen Sie Ihre Lösungen bis Dienstag, 16. Mai 2017, 10:15 Uhr in den
Vorlesungs-Briefkasten im Informatik-Gebäude. Geben Sie stets die Namen und
Übungsgruppen aller BearbeiterInnen sowie die Übungsgruppe, in der das Blatt zurückgegeben werden soll, an.
Begründen Sie stets Ihre Behauptungen und kommentieren Sie Ihren Pseudocode!
Aufgaben die mit CPLEX gekennzeichnet sind fordern das Erstellen und Lösen von linearen Programmen. Laden Sie Ihren kommentierten Quellcode auf WueCampus hoch
und vermerken Sie auf Ihrer Abgabe, welche BearbeiterIn hochgeladen hat.
Herunterladen