Prof. Dr. Gerhard Reinelt Dipl.-Math. Stefan Wiesberg Institut für Informatik Universität Heidelberg Effiziente Algorithmen I 9. Präsenzaufgabenblatt, WiSe 2013/14 Übungstunden am 13.01. & 15.01.2014 Aufgabe Q Gegeben sei ein Fluss-Netzwerk mit Digraph D = (V, A), Knotenkapazitäten c(u, v) ≥ 0, Quelle s und Senke t. Kann sich der Wert des maximalen Flusses jeweils ändern, wenn die folgenden Operationen durchgeführt werden? a) Alle nach s eingehenden Kanten und alle von t ausgehenden Kanten werden entfernt. b) Alle Knoten v 6= s mit Eingangsgrad 0 sowie alle Knoten v 6= t mit Ausgangsgrad 0 werden entfernt. c) Parallele Kanten werden durch einzelne Kanten ersetzt, deren Kapazitäten der Summe der Einzelkapazitäten entsprechen. d) Kanten mit unendlicher Kapazität erhalten die Kapazität M für ein hinreichend großes M . Prof. Dr. Gerhard Reinelt Dipl.-Math. Stefan Wiesberg Institut für Informatik Universität Heidelberg Effiziente Algorithmen I 8. Präsenzaufgabenblatt, WiSe 2013/14 Übungstunden am 16.12. & 18.12.2013 Aufgabe P s M 1 1 M M M 2 1 M 3 ϕ 4 M t √ Gegeben sei das obige Netzwerk mit Kapazitäten. Dabei sei M eine hinreichend große Zahl und ϕ = 5−1 2 . a) Es seien die (s, t)-Wege P0 = (s, 2, 3, t), P1 = (s, 4, 3, 2, 1, t), P2 = (s, 2, 3, 4, t) und P3 = (s, 1, 2, 3, t) gegeben. Zeigen Sie: Im Ford-Fulkerson-Algorithmus ist es möglich, die Folge P0 , P1 , P2 , P1 , P3 , P1 , P2 , P1 , P3 , . . . als augmentierende Wege auszuwählen; insbesondere terminiert der Algorithmus bei dieser Wahl also nicht. Betrachten Sie hierzu die Entwicklung der Restkapazitäten der Kanten (2, 1), (2, 3) und (4, 3) und benutzen Sie die Identität 1 − ϕ = ϕ2 , um diese als Potenzen von ϕ zu schreiben, sofern möglich. b) Gegen welchen Wert konvergiert die Folge der Flusswerte? Welchen Wert hat ein maximaler (s, t)-Fluss? Prof. Dr. Gerhard Reinelt Dipl.-Math. Stefan Wiesberg Institut für Informatik Universität Heidelberg Effiziente Algorithmen I 7. Präsenzaufgabenblatt, WiSe 2013/14 Übungstunden am 09.12. & 11.12.2013 Aufgabe N Gegeben sei ein ungewichteter bipartiter Graph G = (V, E) mit Partitionsmengen V1 und V2 . Beschreiben Sie, wie ein Algorithmus zur Berechnung maximaler Flüsse dazu verwendet werden kann, ein kardinalitätsmaximales Matching in G zu bestimmen. Aufgabe O Betrachten Sie den AKP-Algorithmus in Kapitel 5.3. Geben Sie eine Methode an, mit der man möglichst effizient die Konstruktion des neuen Superwaldes und das Berechnen der neuen Dualvariablen im Iterationsschritt bewerkstelligen kann. Dabei sollten Sie sowohl ein geeignetes Speicherformat für Superwälder als auch ein schnelles Update-Verfahren angeben. Prof. Dr. Gerhard Reinelt Dipl.-Math. Stefan Wiesberg Institut für Informatik Universität Heidelberg Effiziente Algorithmen I 6. Präsenzaufgabenblatt, WiSe 2013/14 Übungstunden am 02.12. & 04.12.2013 Aufgabe L Eine Kantenmenge M ⊆ E in einem Graphen G = (V, E) heißt Matching, falls jeder Knoten in (V, M ) höchstens Grad 1 hat. Ist G bipartit mit Partitionsmengen V1 und V2 , so ist die Nachbarschaft einer Menge S ⊆ V1 definiert durch δ(S) := {v2 ∈ V2 | es existiert ein v1 ∈ S mit v1 v2 ∈ E}. Beweisen Sie: G enthält genau dann ein Matching der Kardinalität |V1 |, wenn |δ(S)| ≥ |S| für alle S ⊆ V1 gilt. (Tipp: Vollständige Induktion über |V1 |.) Aufgabe M Sei G = (V, E) ein vollständiger bipartiter Graph. Jedem Knoten i ∈ V sei ein Gewicht ai > 0 zugeordnet und für die Kantengewichte gelte cij = ai aj für ij ∈ E. Geben Sie einen möglichst effizienten Algorithmus an, der eine Zuordnung mit minimalem Gesamtgewicht bestimmt und beweisen Sie seine Korrektheit. Prof. Dr. Gerhard Reinelt Dipl.-Math. Stefan Wiesberg Institut für Informatik Universität Heidelberg Effiziente Algorithmen I 5. Präsenzaufgabenblatt, WiSe 2013/14 Übungstunden am 25.11. & 27.11.2013 Aufgabe J Eine Nahrungsmittelfirma stellt aus Nüssen, Haferflocken und Rosinen drei Sorten Müsli (A, B, C) her. Die Anteile in Einheiten (E) und der Gewinn sind in der folgenden Tabelle enthalten. A B C Nüsse Haferflocken Rosinen 2 4 3 3 1 4 1 2 2 Gewinn 5 4 3 Die Firma kann maximal 5000E Nüsse, 11000E Haferflocken und 8000E Rosinen beschaffen. a) Formulieren Sie das Problem, einen Produktionsplan mit maximalem Gewinn zu bestimmen, als lineares Programm. b) Geben Sie möglichst gute untere und obere Schranken für den maximalen Gewinn an. Aufgabe K Geben Sie das duale lineare Programm zu folgendem allgemeinen linearen Programm an. max s.t. cT1 x + cT2 x2 + cT3 x3 A11 x1 + A12 x2 + A13 x3 A21 x1 + A22 x2 + A23 x3 A31 x1 + A32 x2 + A33 x3 x1 x2 ≤ ≥ = ≤ ≥ a1 a2 a3 0 0 Prof. Dr. Gerhard Reinelt Dipl.-Math. Stefan Wiesberg Institut für Informatik Universität Heidelberg Effiziente Algorithmen I 4. Präsenzaufgabenblatt, WiSe 2013/14 Übungstunden am 18.11. & 20.11.2013 Aufgabe I Sei D = (V, A) ein gerichteter Graph mit positiven ganzzahligen Kantengewichten und seien s, t ∈ V . Ein vital arc ist eine Kante, deren Entfernen bewirkt, dass sich die kürzeste Distanz zwischen s und t vergrößert. Ein most vital arc ist ein vital arc, dessen Entfernen die kürzeste Distanz zwischen s und t um den größtmöglichen Betrag erhöht. Geben Sie einen Algorithmus an, der einen most vital arc in einem gewichteten Digraph mit vorgegebenen Knoten s und t bestimmt. Prof. Dr. Gerhard Reinelt Dipl.-Math. Stefan Wiesberg Institut für Informatik Universität Heidelberg Effiziente Algorithmen I 3. Präsenzaufgabenblatt, WiSe 2013/14 Übungstunden am 11.11. & 13.11.2013 Aufgabe G Formulieren Sie einen Algorithmus zur Bestimmung von minimalen aufspannenden Bäumen, der nur die rote Regel verwendet. Analysieren Sie die Laufzeit einer geeigneten Implementierung. Aufgabe H In einem Digraph D = (V, A) ist ein Branching eine azyklische Kantenmenge B ⊆ A, so dass jeder Knoten den Eingangsgrad 0 oder 1 bzgl. B hat. Eine Aboreszenz ist ein aufspannendes Branching. Geben Sie einen Algorithmus an, der zu einem gewichteten Digraph eine minimale Arboreszenz mit vorgegebener Wurzel berechnet. Prof. Dr. Gerhard Reinelt Dipl.-Math. Stefan Wiesberg Institut für Informatik Universität Heidelberg Effiziente Algorithmen I 2. Präsenzaufgabenblatt, WiSe 2013/14 Übungstunden am 04.11.2013 Aufgabe E Beweisen Sie das Weiße-Wege-Theorem (Satz 2.3): Ein Knoten v ist Nachfolger eines Knotens u im DFSWald genau dann, wenn gilt: Zum Zeitpunkt, zu dem u grau gefärbt wird, ist v von u aus auf einem Weg erreichbar, der nur aus weißen Knoten besteht. Aufgabe F Seien T1 und T2 zwei minimale aufspannende Bäume eines gewichteten Graphen G = (V, E). Begründen Sie, weshalb das maximale Gewicht einer Kante für beide Bäume gleich groß ist. Prof. Dr. Gerhard Reinelt Dipl.-Math. Stefan Wiesberg Institut für Informatik Universität Heidelberg Effiziente Algorithmen I 1. Präsenzaufgabenblatt, WiSe 2013/14 Übungstunden am 28.10.2013 Aufgabe A (Laufzeitanalyse, Landau-Symbole) a) Wie sind o(f ), O(f ), Θ(f ), ω(f ) und Ω(f ) definiert? b) Wie analysiert man die Laufzeit einer for-Schleife / einer bedingten Anweisung: if A then B else C / der binären Suche? c) Weshalb kann man die Laufzeitabschätzung O(E log V 3 ) stets durch O(E log V ) ersetzen? Aufgabe B (Senke finden) Eine Senke ist ein Knoten eines gerichteten Graphen D = (V, A) mit Eingangsgrad |V | − 1 und Ausgangsgrad 0. Sei D durch seine Adjazenzmatrix gegeben. Zeigen Sie, dass in der Zeit O(V ) festgestellt werden kann, ob D eine Senke enthält. Aufgabe C (Bipartite Graphen) Ein Graph G = (V, E) heißt bipartit, wenn es eine disjunkte Aufteilung V = V1 ∪˙ V2 gibt, sodass keine Kante uv ∈ E mit u, v ∈ V1 oder u, v ∈ V2 existiert. Zeigen Sie, dass G genau dann bipartit ist, wenn G keinen Kreis ungerader Länge enthält. Aufgabe D (Graphkennzahlen berechnen) Betrachten Sie die folgenden Definitionen für einen ungerichteten, zusammenhängenden Graphen G = (V, E). 1. Die Exzentrität eines Knotens v ist die Länge des kürzesten Weges von v zum am weitesten von v entfernten Knoten. 2. Die Taillenweite von G ist die Länge des kürzesten Kreises in G (oder ∞, falls kein Kreis existiert). Geben Sie jeweils einen Algorithmus an, der alle Exzentritäten / die Taillenweite berechnet.