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.