Übungsaufgaben zur Graphentheorie SoS 2016 Prof. Dr. Klaus Berberich Blatt 5 Aufgabe 1: Ein gerichteter Graph ist durch folgende Bewertungsmatrix gegeben. ⎛ 0 1 ∞ ∞ ∞⎞ ⎜ ⎟ ⎜∞ 0 2 − 5 ∞⎟ ⎜∞ 2 0 ∞ 1 ⎟ ⎜ ⎟ ⎜∞ ∞ 2 0 ∞⎟ ⎜∞ ∞ ∞ ∞ 0 ⎟ ⎝ ⎠ a) Gibt es einen kürzesten Pfad von 0 nach 4? Falls ja, geben Sie einen an. Falls nein: Begründung. b) Gibt es einen kürzesten einfachen Pfad von 0 nach 4? Falls ja, geben Sie einen an. Falls nein: Begründung. Aufgabe 2: a) Skizzieren Sie den gerichteten Graphen, der durch folgende Bewertungsmatrix gegeben ist. ⎛0 6 7 ∞ ∞ ⎞ ⎜ ⎟ ⎜ ∞ 0 8 5 − 4⎟ ⎜∞ ∞ 0 − 3 9 ⎟ ⎜ ⎟ ∞⎟ ⎜∞ − 2 ∞ 0 ⎜2 ∞ ∞ 7 0 ⎟⎠ ⎝ b) Führen Sie den Algorithmus von Bellman-Ford gemäß dem Pseudocode der Vorlesung am Graphen aus a) für den Startknoten 4 aus. Relaxieren Sie dabei die Kanten bei jedem Durchlauf durch die äußere for-Schleife in der Reihenfolge (0,1), (0,2), (1,2), (1,3), (1,4), (2,3), (2,4), (3,1), (4,0), (4,3). Geben Sie als Lösung der Aufgabe die Inhalte der Felder dis und pre nach dem Initialisierungsschritt und nach jedem Durchlauf durch die äußere for-Schleife an. Geben Sie ferner jeweils einen kürzesten Pfad von 4 zu den anderen Knoten samt zugehöriger Länge an. Aufgabe 3: Wie würden Sie unter Verwendung des Algorithmus von Bellman-Ford folgende Probleme lösen? a) Bestimmung jeweils eines längsten Pfades von einem Startknoten zu allen anderen Knoten für einen gerichteten bewerteten Graphen, der keine Zyklen besitzt. b) Bestimmung jeweils eines kürzesten Pfades von allen Knoten zu einem Zielknoten für einen gerichteten bewerteten Graphen, der keine Zyklen negativer Länge besitzt. Aufgabe 4: Jemand schlägt vor, den Algorithmus von Bellman-Ford wie folgt um eine Prüfung auf Zyklen negativer Länge zu erweitern: „Lasse die äußere for-Schleife von 0 bis g.n laufen statt bis (g.n – 1); falls sich im Feld dis Änderungen zwischen dem letzen und dem vorletzten Schleifendurchlauf ergeben, besitzt der Graph einen Zyklus negativer Länge.“ Was halten Sie von diesem Vorschlag? Aufgabe 5: Beschreiben Sie einen Algorithmus (kein Pseudocode erforderlich), der für einen azyklischen gerichteten bewerteten Graphen mit n Knoten und m Kanten (als Adjazenzliste gegeben) jeweils einen kürzesten Weg von einem Startknoten s zu allen übrigen Knoten mit einem Aufwand von O(n + m) im schlechtesten Fall bestimmt. Hinweis: Beachten Sie, dass Sie von einem topologisch sortierten Graphen ausgehen können, da jeder azyklische Graph mit n Knoten mit einem Aufwand von O(n + m) topologisch sortiert werden kann.