INSTITUT FÜR INFORMATIK V 53117 BONN UNIVERSITÄT BONN Römerstraße 164 Prof. Dr. N. Blum H.-H. Leinen M. Löhnertz 13. Januar 2003 Übungen zur Informatik III im WS 02/03 Blatt 12 Abgabe: 21.01.2003 Aufgabe 1. (6 Punkte) a) Entwickeln Sie einen Linearzeitalgorithmus, der für einen gegebenen Graphen überprüft, ob dieser bipartit ist. (2 Punkte) b) Entwickeln Sie einen Algorithmus, der für einen gegebenen Graphen feststellt, ob dieser nach Entfernen einer Kante bipartit ist. Was ist die Laufzeit Ihres Algorithmus? (2 Punkte) c) Können Sie das Problem aus Teilaufgabe b) auch in Linearzeit lösen? Geben Sie hierfür einen Algorithmus an! (2 Punkte) Aufgabe 2. (1 Punkt) Konstruieren Sie einen gewichteten Graphen, dessen gewichtsmaximales Matching kein bezüglich der Anzahl der Kanten maximales Matching ist. Aufgabe 3. (4 Punkte) Gegeben sei ein azyklischer Graph G = (V, E) und ein Startknoten s ∈ V . Entwickeln Sie einen Algorithmus, der in linearer Zeit für alle v ∈ V einen längsten Weg von s nach v berechnet. Was geschieht, wenn der Graph Kreise enthält? Aufgabe 4. (6 Punkte) a) Ergänzen Sie den Algorithmus Floyd, so dass dieser auch die kürzesten Wegebäume berechnet. b) Zeigen Sie, dass der in Teilaufgabe a) ergänzte Algorithmus die folgenden Invarianten aufrechterhält: (1) P (x, y)1 hat die Weglänge dist(x, y). (2) P (x, y) ist unter den Pfaden von x nach y, die bis auf x und y nur Knoten aus V \U enthalten, ein kürzester Pfad. (3) P (x, y) ist ein einfacher Pfad, falls x 6= y, und ein einfacher Kreis, falls x = y. (4) P (x, y) = P (x, πx (y)), y. c) Zeigen Sie, dass der Algorithmus von Floyd Laufzeit O(n3 ) hat. Aufgabe 5. (3 Punkte) Analysieren Sie unter der Annahme, dass alle “elementaren” Operationen die Kosten 1 haben, ab welcher Graphengröße der Algorithmus von Floyd dem Verfahren “n-maliges Anwenden des Algorithmus von Dijkstra” überlegen ist. 1 Für alle x, y ∈ V sei P (x, y) der aktuelle Pfad mit Gewicht dist(x, y) von x nach y, falls dist(x, y) endlich ist.