5.2 Das All-Pairs-Shortest-Paths-Problem (APSP-Problem) Kürzeste Wege zwischen allen Knoten. Eingabe: Gerichteter Graph G =(V, E, c)

Ähnliche Dokumente
SS11 Effiziente Algorithmen 5. Kapitel: Dynamische Programmierung

Das Briefträgerproblem

WS18 Algorithmen und Datenstrukturen 11. Kapitel Dynamische Programmierung

Algorithmen II Vorlesung am

Konzepte der Informatik

1 topologisches Sortieren

Grundlagen der Theoretischen Informatik, SoSe 2008

Literatur. Dominating Set (DS) Dominating Sets in Sensornetzen. Problem Minimum Dominating Set (MDS)

Informationsblatt Induktionsbeweis

16. All Pairs Shortest Path (ASPS)

Anmerkungen zur Übergangsprüfung

3.1 Konstruktion von minimalen Spannbäumen Es gibt zwei Prinzipien für die Konstruktion von minimalen Spannbäumen (Tarjan): blaue Regel rote Regel

6.2 Scan-Konvertierung (Scan Conversion)

8 Diskrete Optimierung

1. Man schreibe die folgenden Aussagen jeweils in einen normalen Satz um. Zum Beispiel kann man die Aussage:

Würfelt man dabei je genau 10 - mal eine 1, 2, 3, 4, 5 und 6, so beträgt die Anzahl. der verschiedenen Reihenfolgen, in denen man dies tun kann, 60!.

Primzahlen und RSA-Verschlüsselung

Algorithmentheorie Maximale Flüsse

Entscheidungsbäume. Definition Entscheidungsbaum. Frage: Gibt es einen Sortieralgorithmus mit o(n log n) Vergleichen?

Vorlesung Diskrete Strukturen Graphen: Wieviele Bäume?

Musterlösungen zur Linearen Algebra II Blatt 5

1. Motivation / Grundlagen 2. Sortierverfahren 3. Elementare Datenstrukturen / Anwendungen 4. Bäume / Graphen 5. Hashing 6. Algorithmische Geometrie

Lineargleichungssysteme: Additions-/ Subtraktionsverfahren

Erweiterung der Aufgabe. Die Notenberechnung soll nicht nur für einen Schüler, sondern für bis zu 35 Schüler gehen:

Algorithmen und Datenstrukturen. Große Übung vom Nils Schweer

Professionelle Seminare im Bereich MS-Office

Kapitel 4: Dynamische Datenstrukturen. Algorithmen und Datenstrukturen WS 2012/13. Prof. Dr. Sándor Fekete

50. Mathematik-Olympiade 2. Stufe (Regionalrunde) Klasse Lösung 10 Punkte

Algorithmen und Datenstrukturen 2

Einführung in die Algebra

WS 2009/10. Diskrete Strukturen

Kapiteltests zum Leitprogramm Binäre Suchbäume

Behörde für Bildung und Sport Abitur 2008 Lehrermaterialien zum Leistungskurs Mathematik

Abschlussprüfung Realschule Bayern II / III: 2009 Haupttermin B 1.0 B 1.1

Über Arrays und verkettete Listen Listen in Delphi

LU-Zerlegung. Zusätze zum Gelben Rechenbuch. Peter Furlan. Verlag Martina Furlan. Inhaltsverzeichnis. 1 Definitionen.

WS 2013/14. Diskrete Strukturen

Anleitung über den Umgang mit Schildern

Beweisbar sichere Verschlüsselung

Programmierkurs Java

Lange Nacht der Wissenschaft. Ein Klassiker. Die Mathematik der Kürzesten Wege

7 Rechnen mit Polynomen

Jede Zahl muss dabei einzeln umgerechnet werden. Beginnen wir also ganz am Anfang mit der Zahl,192.

OECD Programme for International Student Assessment PISA Lösungen der Beispielaufgaben aus dem Mathematiktest. Deutschland

a n auf Konvergenz. Berechnen der ersten paar Folgenglieder liefert:

Graphen: Datenstrukturen und Algorithmen

Binäre Bäume. 1. Allgemeines. 2. Funktionsweise. 2.1 Eintragen

Beispiellösungen zu Blatt 111

Übungen zu Einführung in die Informatik: Programmierung und Software-Entwicklung: Lösungsvorschlag

ONLINE-AKADEMIE. "Diplomierter NLP Anwender für Schule und Unterricht" Ziele

15 Optimales Kodieren

Kürzeste Wege in Graphen. Maurice Duvigneau Otto-von-Guericke Universität Fakultät für Informatik

1 Mathematische Grundlagen

Lineare Funktionen. 1 Proportionale Funktionen Definition Eigenschaften Steigungsdreieck 3

Statuten in leichter Sprache

Güte von Tests. die Wahrscheinlichkeit für den Fehler 2. Art bei der Testentscheidung, nämlich. falsch ist. Darauf haben wir bereits im Kapitel über

MORE Profile. Pass- und Lizenzverwaltungssystem. Stand: MORE Projects GmbH

Charakteristikum des Gutachtenstils: Es wird mit einer Frage begonnen, sodann werden die Voraussetzungen Schritt für Schritt aufgezeigt und erörtert.

Erfahrungen mit Hartz IV- Empfängern

Algorithmen und Datenstrukturen 2

Maximaler Fluß und minimaler Schnitt. Von Sebastian Thurm

13. Lineare DGL höherer Ordnung. Eine DGL heißt von n-ter Ordnung, wenn Ableitungen y, y, y,... bis zur n-ten Ableitung y (n) darin vorkommen.

Kapitel 15. Lösung linearer Gleichungssysteme

Thema: Winkel in der Geometrie:

Advoware mit VPN Zugriff lokaler Server / PC auf externe Datenbank

Welche Lagen können zwei Geraden (im Raum) zueinander haben? Welche Lagen kann eine Gerade bezüglich einer Ebene im Raum einnehmen?

Statistische Untersuchungen zu endlichen Funktionsgraphen

Einführung. Vorlesungen zur Komplexitätstheorie: Reduktion und Vollständigkeit (3) Vorlesungen zur Komplexitätstheorie. K-Vollständigkeit (1/5)

Zwischenablage (Bilder, Texte,...)

Das Festkomitee hat die Abi-Seite neu konzipiert, die nun auf einem (gemieteten) Share Point Server

Wie halte ich Ordnung auf meiner Festplatte?

Programmentwicklungen, Webseitenerstellung, Zeiterfassung, Zutrittskontrolle

Handbuch. NAFI Online-Spezial. Kunden- / Datenverwaltung. 1. Auflage. (Stand: )

Alle Schlüssel-Karten (blaue Rückseite) werden den Schlüssel-Farben nach sortiert und in vier getrennte Stapel mit der Bildseite nach oben gelegt.

Guten Morgen und Willkommen zur Saalübung!

Anleitung für die Einrichtung weiterer Endgeräte in 4SELLERS SalesControl

Objektorientierte Programmierung

Rente = laufende Zahlungen, die in regelmäßigen Zeitabschnitten (periodisch) wiederkehren Rentenperiode = Zeitabstand zwischen zwei Rentenzahlungen

Das Seminar ist eine Prüfungsleistung für Bachelor und Masterstudierende der Informatik!

Informatik I WS 07/08 Tutorium 24

Unterrichtsmaterialien in digitaler und in gedruckter Form. Auszug aus: Übungsbuch für den Grundkurs mit Tipps und Lösungen: Analysis

2. Mathematik Olympiade 2. Stufe (Kreisolympiade) Klasse 7 Saison 1962/1963 Aufgaben und Lösungen

Korrelation (II) Korrelation und Kausalität

Wir arbeiten mit Zufallszahlen

Plotten von Linien ( nach Jack Bresenham, 1962 )

Übungen Programmieren 1 Felix Rohrer. Übungen

Outlook. sysplus.ch outlook - mail-grundlagen Seite 1/8. Mail-Grundlagen. Posteingang

Lichtbrechung an Linsen

Bevor Sie mit dem Wechsel Ihres Sicherheitsmediums beginnen können, sollten Sie die folgenden Punkte beachten oder überprüfen:

Übersicht. Datenstrukturen und Algorithmen Vorlesung 5: Rekursionsgleichungen (K4) Übersicht. Binäre Suche. Joost-Pieter Katoen. 20.

WinVetpro im Betriebsmodus Laptop

Algorithmische Mathematik

Erwin Grüner

Übung Theoretische Grundlagen

Repetitionsaufgaben Wurzelgleichungen

Media Teil III. Begriffe, Definitionen, Übungen

Theoretische Grundlagen der Informatik

Kapitel 6: Graphalgorithmen Gliederung

Kompetitive Analysen von Online-Algorithmen

Transkript:

5.2 Das All-Pairs-Shortest-Paths-Problem (APSP-Problem) Kürzeste Wege zwischen allen Knoten. Eingabe: Gerichteter Graph G =(V, E, c) mit V = {1,...,n} und E {(v, w) 1 apple v, w apple n, v 6= w}. c : E! R [{+1}: Gewichts-/Kosten-/Längenfunktion. 2 1 6 3 2 3 1 1 4 3 4 FG KTuEA, TU Ilmenau E ziente Algorithmen Sommersemester 2012 18

Länge eines Weges p =(v = v 0, v 1,...,v r = w) ist X c(v s 1, v s ). 1applesappler Gesucht: für jedes Paar (v, w), 1 apple v, w apple n: Länge S(v, w) eines kürzesten Weges von v nach w. Algorithmus von Dijkstra löst das Single-Source-Shortest-Paths-Problem (SSSP-Problem) im Fall nicht negativer Kantengewichte. Hier: Algorithmus von Floyd-Warshall. Wir verlangen: Es darf keine Kreise mit negativem Gesamtgewicht geben: ( ) v = v 0, v 1,...,v r = v Kreis ) P 1applesappler c(v s 1, v s ) 0. FG KTuEA, TU Ilmenau E ziente Algorithmen Sommersemester 2012 19

Grund: Wenn es einen solchen Kreis von v nach v gibt, und irgendein Weg von v nach w existiert, dann gibt es Wege von v nach w mit beliebig stark negativer Länge die Frage nach einem kürzesten Weg ist sinnlos. Konsequenzen: (1) Wenn p Weg von v nach w ist, dann existiert ein Weg p 0 von v nach w, dernichtlänger ist als p und auf dem sich keine Knoten wiederholen. ((u,...,u)-segmente aus p herausschneiden, gegebenenfalls wiederholt. Hierdurch kann sich der Weg nicht verlängern.) (2) Wenn es einen Weg von v nach w gibt, dann auch einen mit minimaler Länge (einen kürzesten Weg ). Grund: Wegen (1) muss man nur Wege mit nicht mehr als n betrachten; davon gibt es nur endlich viele. Es kann aber mehrere kürzeste Wege von v nach w geben! 1Kanten FG KTuEA, TU Ilmenau E ziente Algorithmen Sommersemester 2012 20

Ausgabe: Matrix S =(S(v, w)) 1applev,wapplen mit: S(v, w) =Länge eines kürzesten Weges von v nach w. (1, falls kein solcher Weg existiert.) FG KTuEA, TU Ilmenau E ziente Algorithmen Sommersemester 2012 21

Ansatz Dynamische Programmierung O.B.d.A.: E = V V {(v, v) v 2 V } Nichtvorhandene Kanten (v, w) werdenmitc(v, w) =1 repräsentiert. Erster Schritt: Identifiziere geeignete Teilprobleme. Gegeben ein k, 0apple k apple n, betrachte Wege von v nach w, dieunterwegs (also vom Start- und Endpunkt abgesehen) nur Knoten in {1,...,k} besuchen. k = 0: Kein Knoten darf unterwegs besucht werden; es handelt sich nur um die Kanten (v, w) mitc(v, w) < 1, oderum Wege (v, v) derlänge 0. k = 1: Es kommen nur Wege in Frage, die aus der Kante (v, w) bestehen oder aus den Kanten (v, 1) und (1, w). usw. FG KTuEA, TU Ilmenau E ziente Algorithmen Sommersemester 2012 22

Ansatz Dynamische Programmierung S(v, w, k) :=Länge eines kürzesten Weges von v nach w, dernur Zwischenknoten in {1,...,k} benutzt. (Falls kein solcher Weg existiert: S(v, w, k) :=1) Beispiel: (Die nicht eingezeichneten Kanten haben Länge 1.) 2 1 3 S(2,4,0) = 6 2 4 6 1 S(2,4,1) = 5 S(2,4,2) = 5 monoton fallend 1 3 4 S(2,4,3)= 2 FG KTuEA, TU Ilmenau E ziente Algorithmen Sommersemester 2012 23

Ansatz Dynamische Programmierung Bellman sche Optimalitätsgleichungen : Betrachte Weg p von v nach w; dabei seien die Zwischenknoten v 1,...,v l 1 aus {1,...,k}: v v 1 v 2 v l 1 w Angenommen, dieser Weg ist optimal. Dann gilt: 1) (O.B.d.A.) Der Knoten k kommt auf dem Weg höchstens einmal vor. Sonst: streiche im Weg u k k v das Teilstück zwischen erstem und letzten k weg: v k w Wegen ( ) ist der neue Weg ist nicht länger als p. FG KTuEA, TU Ilmenau E ziente Algorithmen Sommersemester 2012 24

Ansatz Dynamische Programmierung 2) Falls der Knoten k auf dem Weg nicht vorkommt, ist p für Zwischenknoten 1,...,k 1 optimal. 3) Falls der Knoten k auf p vorkommt, zerfällt p in zwei Teile v {z } Zwischenknoten apple k 1 k k w {z } Zwischenknoten apple k 1 die beide bezüglich der Zwischenknotenmenge {1,...,k 1} optimal sind (sonst könnte ein Teilweg durch einen billigeren ersetzt werden, Widerspruch zur Optimalität von p). FG KTuEA, TU Ilmenau E ziente Algorithmen Sommersemester 2012 25

Ansatz Dynamische Programmierung Punkte 2) und 3) drücken aus, dass Substrukturen einer optimalen Lösung selbst wieder optimal sind. Die Bellman schen Optimalitätsgleichungen für den Algorithmus von Floyd-Warshall lauten dann: S(v, w, k) = min{s(v, w, k 1), S(v, k, k 1) + S(k, w, k 1)}, für 1 apple v, w apple n, 1 apple k apple n. Basisfälle: S(v, v, 0) = 0. S(v, w, 0) = c(v, w), für v 6= w. FG KTuEA, TU Ilmenau E ziente Algorithmen Sommersemester 2012 26

Ansatz Dynamische Programmierung Wir beschreiben einen iterativen Algorithmus. Zur Aufbewahrung der Zwischenergebnisse benutzen wir ein Array S[1..n,1..n,0..n], das durch S[v,w,0] := c(v, w), 1 apple v, w apple n, v 6= w; S[v,v,0] := 0, 1 apple v apple n initialisiert wird. Unser Algorithmus füllt das Array S gemäß wachsendem k aus: for k from 1 to n do for v from 1 to n do for w from 1 to n do S[v,w,k] min{s[v,w,k-1], S[v,k,k-1] + S[k,w,k-1]}. FG KTuEA, TU Ilmenau E ziente Algorithmen Sommersemester 2012 27

Ansatz Dynamische Programmierung Korrektheit: Folgt aus der Vorüberlegung. Es werden genau die Werte S(v, w, k) gemäß den Bellman schen Optimalitätsgleichungen ausgerechnet. Laufzeit: Drei geschachtelte Schleifen: (n 3 ). Bei dieser simplen Implementierung wird noch Platz verschwendet, da für den k- ten Schleifendurchlauf o enbar nur die (k 1)-Komponenten des Arrays S benötigt werden. Man überlegt sich leicht, dass man mit zwei Matrizen auskommt, eine alte ((k 1)-Version) und eine neue (k-version), zwischen denen dann immer passend umzuschalten ist. Der Platzaufwand beträgt damit O(n 2 ), der Zeitbedarf o ensichtlich immer noch O(n 3 ). FG KTuEA, TU Ilmenau E ziente Algorithmen Sommersemester 2012 28

Ansatz Dynamische Programmierung Dieser Spezialfall des Ansatzes dynamische Programmierung lässt noch eine weitere Verbesserung zu. Es gilt S(v, k, k) =S(v, k, k 1) und ( ) S(k, w, k) =S(k, w, k 1), für 1 apple v, w, k apple n, da wiederholtes Benutzen des Knotens k den Weg von v nach k bzw. von k nach w nicht verkürzen kann (keine Kreise mit negativer Gesamtlänge). Man kann also für die Berechnung von S(v, w, k) den alten oder den neuen Wert im S-Array benutzen. Damit erübrigt es sich, altes und neues Array zu unterscheiden, und der dritte Index k kann wegfallen: for k from 1 to n do for v from 1 to n do for w from 1 to n do S[v,w] min{s[v,w], S[v,k] + S[k,w]}. FG KTuEA, TU Ilmenau E ziente Algorithmen Sommersemester 2012 29

Ansatz Dynamische Programmierung Man möchte nicht nur den Wert des kürzesten Weges kennenlernen, sondern auch zu gegebenen v, w diesen Weg konstruieren können. Hierfür benutzt man ein Hilfsarray I[1..n,1..n], indemfür jedes Paar v, w die Information gehalten wird, welches der bis zur Runde k gefundene größte Knoten ist, der für die Konstruktion eines kürzesten Weges von v nach w benötigt worden ist. Dies liefert den Floyd-Warshall-Algorithmus. FG KTuEA, TU Ilmenau E ziente Algorithmen Sommersemester 2012 30

Algorithmus von Floyd-Warshall 5.2.1 Algorithmus Floyd-Warshall(C[1..n,1..n]) Eingabe: C[1..n,1..n]: Matrix der Kantenkosten/längen Ausgabe: S[1..n,1..n]: Kosten der kürzesten Wege I[1..n,1..n]: Hilfsarray zur Konstruktion der kürzesten Wege Datenstruktur: Matrizen S[1..n,1..n], I[1..n,1..n] Ziel: ( S[v,w] enthält S(v, w) ) ( I[v,w]: möglichst kleiner max. Knoten auf kürzestem (v, w)-weg ) (1) for v from 1 to n do (2) for w from 1 to n do (3) if v = w then S[v,w] 0; I[v,w] 0 (4) else S[v,w] C[v,w]; (5) if S[v,w] < 1 then I[v,w] 0 else I[v,w] 1; (6) for k from 1 to n do (7) for v from 1 to n do (8) for w from 1 to n do (9) if S[v,k] + S[k,w] < S[v,w] then (10) S[v,w] S[v,k] + S[k,w]; I[v,w] k; (11) Ausgabe: S[1..n,1..n] und I[1..n,1..n]. FG KTuEA, TU Ilmenau E ziente Algorithmen Sommersemester 2012 31

Algorithmus von Floyd-Warshall Korrektheit: Es gilt folgende Schleifeninvariante: Nach dem Schleifendurchlauf k ist S[v, w] = S(v, w, k). (Beweis durch vollständige Induktion, unter Ausnutzung der Bellman-Gleichungen und von ( ).) Zudem: I[v, w] ist das kleinste ` mit der Eigenschaft, dass es unter den kürzesten Wegen von v nach w über 1,...,k einen gibt, dessen maximaler Eintrag ` ist. (Beweis durch Induktion über k.) Ein kürzester Weg von v nach w kann dann mit einer einfachen rekursiven Prozedur printpathinner rekonstruiert werden (Übung). FG KTuEA, TU Ilmenau E ziente Algorithmen Sommersemester 2012 32

Algorithmus von Floyd-Warshall Satz 5.2.2 Der Algorithmus von Floyd-Warshall löst das All-Pairs-Shortest-Paths- Problem in Zeit O(n 3 )undplatzo(n 2 ). FG KTuEA, TU Ilmenau E ziente Algorithmen Sommersemester 2012 33

Single-Source-Shortest-Paths Bellman-Ford 5.3 Der Bellman-Ford-Algorithmus Zweck: Kürzeste Wege von einem Startknoten aus (SSSP: single source shortest paths ). Im Unterschied zum Algorithmus von Dijkstra dürfen negative Kanten vorhanden sein. Algorithmus liefert Fehlermeldung, wenn vom Startknoten s aus ein Kreis mit negativer Gesamtlänge erreichbar ist. FG KTuEA, TU Ilmenau E ziente Algorithmen Sommersemester 2012 34

Single-Source-Shortest-Paths Bellman-Ford Knotenmenge: V = {1,...,n}. Menge E von gerichteten Kanten, mit Kantengewichten c : E! R. Das Format des Inputs ist recht frei: Adjazenzlisten oder auch nur eine große Liste aller Kanten. Datenstrukturen: Distanzarray d[1..n] Vorgängerarray p[1..n] Idee: d[v] enthält einen Schätzwert (eine obere Schranke) für die Länge eines kürzesten Weges. p[v] enthält einen Vorgänger von v auf einem Weg von s nach v der Länge höchstens d[v]. Durch eine Reihe von Operationen sollen Werte und Vorgänger so gesetzt werden, dass sie zu kürzesten Wegen gehören. FG KTuEA, TU Ilmenau E ziente Algorithmen Sommersemester 2012 35

Single-Source-Shortest-Paths Bellman-Ford Grundoperation, schon aus dem Dijkstra-Algorithmus bekannt: relax(u, v) (1) if d[u] + c(u, v) < d[v] (2) then (3) p[v] u; (4) d[v] d[u] + c(u, v) ; Idee: Durch Verwenden eines s-u-weges der Länge d[u] und (u, v) als letzter Kante kann der bisherige Wert d[v] verbessert werden. FG KTuEA, TU Ilmenau E ziente Algorithmen Sommersemester 2012 36

Single-Source-Shortest-Paths Bellman-Ford 5.3.1 Algorithmus Bellman-Ford(((V, E, c), s)) Eingabe: (V, E, c): Digraph mit Kantengewichten in R, Startknoten s 2 V. Ausgabe: Wenn G keine Kreise mit negativem Gewicht hat: In d, p: Baum von kürzesten Wegen; Datenstruktur: d[1..n]: real; p[1..n]: integer; Initialisierung: (1) for v from 1 to n do (2) d[v] 1; p[v] 1; (3) d[s] 0; p[s] s ; Hauptschleife: (4) for i from 1 to n 1 do (5) forall (u, v) 2 E do relax(u, v); Zyklentest: (6) forall (u, v) 2 E do (7) if d[u] + c(u, v) < d[v] then return Neg. Kreis ; Ergebnis: (8) return d[1..n], p[1..n]. FG KTuEA, TU Ilmenau E ziente Algorithmen Sommersemester 2012 37

Single-Source-Shortest-Paths Bellman-Ford Satz 5.3.2 Der Bellman-Ford-Algorithmus hat folgendes Verhalten: (a) Wenn es keinen von s aus erreichbaren Kreis mit negativer Gesamtlänge gibt ( negativer Kreis ), steht am Ende des Algorithmus in d[v] die Länge eines kürzesten Weges von s nach v; diekanten (p[v], v) (mitp[v] 6= 1) bilden einen Baum der kürzesten Wege von s aus zu den erreichbaren Knoten. (b) Der Algorithmus gibt Neg. Kreis aus genau dann wenn es einen von s aus erreichbaren negativen Kreis gibt. (c) Die Laufzeit ist O( V E ). FG KTuEA, TU Ilmenau E ziente Algorithmen Sommersemester 2012 38

Single-Source-Shortest-Paths Bellman-Ford Beweis: (c)istklar. (a) Da es keine negativen Kreise gibt, die von s aus erreichbar sind, kann durch Herausschneiden von Kreisen aus solchen Wegen die Länge nicht steigen. Für jeden Weg von s nach v der Länge d gibt es einen, der keinen Kreis enthält und Länge apple d hat. Bei der Frage nach kürzesten Wegen von s aus müssen wir nur kreisfreie Wege berücksichtigen. Davon gibt es nur endlich viele. Also: d(s, v) = Länge eines Weges von s nach v mit minimalen Kosten ist wohldefiniert. FG KTuEA, TU Ilmenau E ziente Algorithmen Sommersemester 2012 39

Single-Source-Shortest-Paths Bellman-Ford Eine Runde im Algorithmus ist ein Durchlauf durch die Hauptschleife. Beh. 1: Es gilt stets d(s, v) apple d[v]. (Durch Induktion über Runden zeigt man: Wenn d[v] < 1, dannexistiert ein Weg von s nach v der Länge d[v].) Sei nun (s = v 0, v 1,...,v r = v) einwegkürzester Länge von s nach v, mit r apple n 1. Genau wie in 5.2 überlegt man sich, dass (v 0,...,v i )einkürzester Weg von s nach v i ist, für i =0,...,r. ( Optimale Substruktur ). D. h.: d(s, v i )=c(v 0, v 1 )+...+ c(v i 1, v i ), für i =0,...,r. FG KTuEA, TU Ilmenau E ziente Algorithmen Sommersemester 2012 40

Single-Source-Shortest-Paths Bellman-Ford Beh. 2: Nach Runde i gilt d[v i ] = d(s, v i ). Beweis durch Induktion über i. DerFalli = 0istklar. Ind.-Ann.: Nach Runde i 1 gilt d[v i 1 ] = d(s, v i 1 ). Schritt: In Runde i wird irgendwann relax(v i 1, v i ) ausgeführt. Die dabei betrachtete Summe d[v i 1 ] + c(v i 1, v i )=d(s, v i 1 )+c(v i 1, v i ) ist genau c(v 0, v 1 )+...+ c(v i 1, v i )=d(s, v i ). Wenn nicht vorher schon d[v i ] = d(s, v i )war,wirddieserwertjetzt eingesetzt, und p[v i ] = v i 1 gesetzt. (Wegen Beh. 1 kann nie kleinerer Wert in d[v i ] stehen.) (Beachte: Wenn es mehrere Wege von s nach v i mit minimaler Länge gibt, kann natürlich auch p[v i ] 6= v i 1 sein.) FG KTuEA, TU Ilmenau E ziente Algorithmen Sommersemester 2012 41

Single-Source-Shortest-Paths Bellman-Ford Beweis von (b): ) : Annahme: Von s aus ist kein negativer Kreis erreichbar, aber in Zeile (7) wird ein v mit d[u] + c(u, v) < d[v] gefunden. Nach (a) folgt d(s, u)+c(u, v) < d(s, v), was o ensichtlich unmöglich ist. FG KTuEA, TU Ilmenau E ziente Algorithmen Sommersemester 2012 42

Single-Source-Shortest-Paths Bellman-Ford ( : Sei (s = v 0,...,v r,...,v t )mitr < t und v r = v t der Weg zu einem erreichbaren Kreis negativer Länge. Annahme: Bellman-Ford gibt nicht Neg. Kreis zurück. Dann ergibt der Test in Zeile (7) stets. Es gilt: d[v r ] + c(v r, v r+1 ) d[v r+1 ] d[v r+1 ] + c(v r+1, v r+2 ) d[v r+2 ].. d[v t 1 ] + c(v t 1, v t ) d[v t ] Addition dieser Ungleichungen und Vereinfachen liefert, unter Benutzung von v r = v t : c(v r, v r+1 )+...+ c(v t 1, v t ) 0, Widerspruch. Dass die p[v]-werte die gewünschte Bedeutung haben, zeigt man nun leicht. FG KTuEA, TU Ilmenau E ziente Algorithmen Sommersemester 2012 43