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

Größe: px
Ab Seite anzeigen:

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

Transkript

1 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 FG KTuEA, TU Ilmenau E ziente Algorithmen Sommersemester

2 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

3 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

4 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

5 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

6 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.) S(2,4,0) = S(2,4,1) = 5 S(2,4,2) = 5 monoton fallend S(2,4,3)= 2 FG KTuEA, TU Ilmenau E ziente Algorithmen Sommersemester

7 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

8 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

9 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

10 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

11 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

12 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

13 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

14 Algorithmus von Floyd-Warshall 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

15 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

16 Algorithmus von Floyd-Warshall Satz 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

17 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

18 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

19 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

20 Single-Source-Shortest-Paths Bellman-Ford 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

21 Single-Source-Shortest-Paths Bellman-Ford Satz 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

22 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

23 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

24 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

25 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

26 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

SS11 Effiziente Algorithmen 5. Kapitel: Dynamische Programmierung

SS11 Effiziente Algorithmen 5. Kapitel: Dynamische Programmierung SS11 Effiziente Algorithmen 5. Kapitel: Dynamische Programmierung Martin Dietzfelbinger Juni/Juli 2011 FG KTuEA, TU Ilmenau Effiziente Algorithmen SS11 Kapitel 5 Kapitel 5: Dynamische Programmierung Typische

Mehr

4.2 Minimale Spannbäume: Der Algorithmus von Jarník/Prim Definition 4.2.1

4.2 Minimale Spannbäume: Der Algorithmus von Jarník/Prim Definition 4.2.1 Allgemeines. Minimale Spannbäume: Der Algorithmus von Jarník/Prim Definition.. (a) Ein Graph G =(V, E) heißt kreisfrei, wenn er keinen Kreis besitzt. Beispiel: Ein kreisfreier Graph: FG KTuEA, TU Ilmenau

Mehr

Das Briefträgerproblem

Das Briefträgerproblem Das Briefträgerproblem Paul Tabatabai 30. Dezember 2011 Inhaltsverzeichnis 1 Problemstellung und Modellierung 2 1.1 Problem................................ 2 1.2 Modellierung.............................

Mehr

Algorithmen und Datenstrukturen 2

Algorithmen und Datenstrukturen 2 Algorithmen und Datenstrukturen 2 Sommersemester 2007 4. Vorlesung Peter F. Stadler Universität Leipzig Institut für Informatik studla@bioinf.uni-leipzig.de Traversierung Durchlaufen eines Graphen, bei

Mehr

Algorithmen & Komplexität

Algorithmen & Komplexität Algorithmen & Komplexität Angelika Steger Institut für Theoretische Informatik steger@inf.ethz.ch Kürzeste Pfade Problem Gegeben Netzwerk: Graph G = (V, E), Gewichtsfunktion w: E N Zwei Knoten: s, t Kantenzug/Weg

Mehr

16. All Pairs Shortest Path (ASPS)

16. All Pairs Shortest Path (ASPS) . All Pairs Shortest Path (ASPS) All Pairs Shortest Path (APSP): Eingabe: Gewichteter Graph G=(V,E) Ausgabe: Für jedes Paar von Knoten u,v V die Distanz von u nach v sowie einen kürzesten Weg a b c d e

Mehr

Algorithmen II Vorlesung am 15.11.2012

Algorithmen II Vorlesung am 15.11.2012 Algorithmen II Vorlesung am 15.11.2012 Kreisbasen, Matroide & Algorithmen INSTITUT FÜR THEORETISCHE INFORMATIK PROF. DR. DOROTHEA WAGNER KIT Universität des Landes Baden-Württemberg und Algorithmen nationales

Mehr

Graphen: Datenstrukturen und Algorithmen

Graphen: Datenstrukturen und Algorithmen Graphen: Datenstrukturen und Algorithmen Ein Graph G = (V, E) wird durch die Knotenmenge V und die Kantenmenge E repräsentiert. G ist ungerichtet, wenn wir keinen Start- und Zielpunkt der Kanten auszeichnen.

Mehr

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

Literatur. Dominating Set (DS) Dominating Sets in Sensornetzen. Problem Minimum Dominating Set (MDS) Dominating Set 59 Literatur Dominating Set Grundlagen 60 Dominating Set (DS) M. V. Marathe, H. Breu, H.B. Hunt III, S. S. Ravi, and D. J. Rosenkrantz: Simple Heuristics for Unit Disk Graphs. Networks 25,

Mehr

Fortgeschrittene Netzwerk- und Graph-Algorithmen

Fortgeschrittene Netzwerk- und Graph-Algorithmen Fortgeschrittene Netzwerk- und Graph-Algorithmen Prof. Dr. Hanjo Täubig Lehrstuhl für Effiziente Algorithmen (Prof. Dr. Ernst W. Mayr) Institut für Informatik Technische Universität München Wintersemester

Mehr

Grundlagen: Algorithmen und Datenstrukturen

Grundlagen: Algorithmen und Datenstrukturen Grundlagen: Algorithmen und Datenstrukturen Prof. Dr. Hanjo Täubig Lehrstuhl für Effiziente Algorithmen (Prof. Dr. Ernst W. Mayr) Institut für Informatik Technische Universität München Sommersemester 00

Mehr

5.4 Das Rucksackproblem

5.4 Das Rucksackproblem Problemstellung: 5.4 Das Rucksackproblem Eingabe: Ganzzahlige Volumina a 1,..., a n > 0, Nutzenwerte c 1,..., c n > 0, ganzzahlige Volumenschranke b. Aufgabe: Packe die Objekte in einen Rucksack von Volumen

Mehr

Teil 2: Graphenalgorithmen

Teil 2: Graphenalgorithmen Teil : Graphenalgorithmen Anwendungen Definitionen Datenstrukturen für Graphen Elementare Algorithmen Topologisches Sortieren Kürzeste Wege Problemstellung Ungewichtete Graphen Distanzgraphen Gewichtete

Mehr

Algo&Komp. - Wichtige Begriffe Mattia Bergomi Woche 6 7

Algo&Komp. - Wichtige Begriffe Mattia Bergomi Woche 6 7 1 Kürzeste Pfade Woche 6 7 Hier arbeiten wir mit gewichteten Graphen, d.h. Graphen, deren Kanten mit einer Zahl gewichtet werden. Wir bezeichnen die Gewichtsfunktion mit l : E R. Wir wollen einen kürzesten

Mehr

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

Übersicht. Datenstrukturen und Algorithmen Vorlesung 5: Rekursionsgleichungen (K4) Übersicht. Binäre Suche. Joost-Pieter Katoen. 20. Übersicht Datenstrukturen und Algorithmen Vorlesung 5: (K4) Joost-Pieter Katoen Lehrstuhl für Informatik 2 Software Modeling and Verification Group http://www-i2.informatik.rwth-aachen.de/i2/dsal12/ 20.

Mehr

ADS: Algorithmen und Datenstrukturen 2

ADS: Algorithmen und Datenstrukturen 2 ADS: Algorithmen und Datenstrukturen Der Tragödie IV. Theyl Peter F. Stadler & Konstantin Klemm Bioinformatics Group, Dept. of Computer Science & Interdisciplinary Center for Bioinformatics, University

Mehr

Vorlesung 2 KÜRZESTE WEGE

Vorlesung 2 KÜRZESTE WEGE Vorlesung 2 KÜRZESTE WEGE 34 Kürzeste Wege im Graphen Motivation! Heute:! Kürzeste Wege von einem Knoten (SSSP)! Kürzeste Wege zwischen allen Knotenpaaren (APSP)! Viele Anwendungen:! Navigationssysteme!

Mehr

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

Entscheidungsbäume. Definition Entscheidungsbaum. Frage: Gibt es einen Sortieralgorithmus mit o(n log n) Vergleichen? Entscheidungsbäume Frage: Gibt es einen Sortieralgorithmus mit o(n log n) Vergleichen? Definition Entscheidungsbaum Sei T ein Binärbaum und A = {a 1,..., a n } eine zu sortierenden Menge. T ist ein Entscheidungsbaum

Mehr

WS 2009/10. Diskrete Strukturen

WS 2009/10. Diskrete Strukturen WS 2009/10 Diskrete Strukturen Prof. Dr. J. Esparza Lehrstuhl für Grundlagen der Softwarezuverlässigkeit und theoretische Informatik Fakultät für Informatik Technische Universität München http://www7.in.tum.de/um/courses/ds/ws0910

Mehr

Effiziente Algorithmen und Datenstrukturen: Kürzeste Wege

Effiziente Algorithmen und Datenstrukturen: Kürzeste Wege Effiziente Algorithmen und Datenstrukturen: Kürzeste Wege Kürzeste Wege Zentrale Frage: Wie komme ich am schnellsten von A nach B? B A Kürzeste Wege Zentrale Frage: Wie komme ich am schnellsten von A nach

Mehr

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

Kapitel 4: Dynamische Datenstrukturen. Algorithmen und Datenstrukturen WS 2012/13. Prof. Dr. Sándor Fekete Kapitel 4: Dynamische Datenstrukturen Algorithmen und Datenstrukturen WS 2012/13 Prof. Dr. Sándor Fekete 4.4 Binäre Suche Aufgabenstellung: Rate eine Zahl zwischen 100 und 114! Algorithmus 4.1 INPUT: OUTPUT:

Mehr

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

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

Mehr

Kapitel 4: Netzplantechnik Gliederung der Vorlesung

Kapitel 4: Netzplantechnik Gliederung der Vorlesung Gliederung der Vorlesung 1. Grundbegriffe 2. Elementare Graphalgorithmen und Anwendungen 3. Kürzeste Wege 4. Netzplantechnik 5. Minimal spannende Bäume 6. Traveling Salesman Problem 7. Flüsse in Netzwerken

Mehr

8 Diskrete Optimierung

8 Diskrete Optimierung 8 Diskrete Optimierung Definition 8.1. Ein Graph G ist ein Paar (V (G), E(G)) besteh aus einer lichen Menge V (G) von Knoten (oder Ecken) und einer Menge E(G) ( ) V (G) 2 von Kanten. Die Ordnung n(g) von

Mehr

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

Kürzeste Wege in Graphen. Maurice Duvigneau Otto-von-Guericke Universität Fakultät für Informatik Kürzeste Wege in Graphen Maurice Duvigneau Otto-von-Guericke Universität Fakultät für Informatik Gliederung Einleitung Definitionen Algorithmus von Dijkstra Bellmann-Ford Algorithmus Floyd-Warshall Algorithmus

Mehr

15. Elementare Graphalgorithmen

15. Elementare Graphalgorithmen Graphen sind eine der wichtigste Modellierungskonzepte der Informatik Graphalgorithmen bilden die Grundlage vieler Algorithmen in der Praxis Zunächst kurze Wiederholung von Graphen. Dann Darstellungen

Mehr

Effiziente Algorithmen

Effiziente Algorithmen Effiziente Algorithmen Graphdurchläufe Vorlesender: Martin Aumüller (nach Folien von Prof. Martin Dietzfelbinger) April/Mai 0 FG KTuEA, TU Ilmenau Effiziente Algorithmen Sommersemester 0 Einleitung Kapitel

Mehr

Undirected Single-Source Shortest Paths with Positive Integer Weights in Linear Time

Undirected Single-Source Shortest Paths with Positive Integer Weights in Linear Time Universität Konstanz Mathematisch-naturwissenschaftliche Sektion Fachbereich Mathematik und Statistik Wintersemester 2001/02 Mikkel Thorup: Undirected Single-Source Shortest Paths with Positive Integer

Mehr

9. Übung Algorithmen I

9. Übung Algorithmen I Timo Bingmann, Christian Schulz INSTITUT FÜR THEORETISCHE INFORMATIK, PROF. SANDERS 1 KIT Timo Universität Bingmann, des LandesChristian Baden-Württemberg Schulz und nationales Forschungszentrum in der

Mehr

TECHNISCHE UNIVERSITÄT MÜNCHEN FAKULTÄT FÜR INFORMATIK

TECHNISCHE UNIVERSITÄT MÜNCHEN FAKULTÄT FÜR INFORMATIK TECHNISCHE UNIVERSITÄT MÜNCHEN FAKULTÄT FÜR INFORMATIK Lehrstuhl für Sprachen und Beschreibungsstrukturen SS 2009 Grundlagen: Algorithmen und Datenstrukturen Übungsblatt 11 Prof. Dr. Helmut Seidl, S. Pott,

Mehr

4 Greedy-Algorithmen (gierige Algorithmen)

4 Greedy-Algorithmen (gierige Algorithmen) Greedy-Algorithmen (gierige Algorithmen) Greedy-Algorithmen werden oft für die exakte oder approximative Lösung von Optimierungsproblemen verwendet. Typischerweise konstruiert ein Greedy-Algorithmus eine

Mehr

Maximaler Fluß und minimaler Schnitt. Von Sebastian Thurm sebastian.thurm@student.uni-magedburg.de

Maximaler Fluß und minimaler Schnitt. Von Sebastian Thurm sebastian.thurm@student.uni-magedburg.de Maximaler Fluß und minimaler Schnitt Von Sebastian Thurm sebastian.thurm@student.uni-magedburg.de Maximaler Fluß und minimaler Schnitt Wasist das? Maximaler Fluss Minimaler Schnitt Warumtut man das? Logistische

Mehr

1.Aufgabe: Minimal aufspannender Baum

1.Aufgabe: Minimal aufspannender Baum 1.Aufgabe: Minimal aufspannender Baum 11+4+8 Punkte v 1 v 2 1 3 4 9 v 3 v 4 v 5 v 7 7 4 3 5 8 1 4 v 7 v 8 v 9 3 2 7 v 10 Abbildung 1: Der Graph G mit Kantengewichten (a) Bestimme mit Hilfe des Algorithmus

Mehr

Definition Ein gerichteter Graph G = (V, E) ist ein Graph von geordneten Paaren (u, v) mit u V und v V.

Definition Ein gerichteter Graph G = (V, E) ist ein Graph von geordneten Paaren (u, v) mit u V und v V. Kapitel 4 Graphenalgorithmen 4.1 Definitionen Definition 4.1.1. Der Graph G = (V, E) ist über die beiden Mengen V und E definiert, wobei V die Menge der Knoten und E die Menge der Kanten in dem Graph ist.

Mehr

Algorithmen und Datenstrukturen (WS 2007/08) 63

Algorithmen und Datenstrukturen (WS 2007/08) 63 Kapitel 6 Graphen Beziehungen zwischen Objekten werden sehr oft durch binäre Relationen modelliert. Wir beschäftigen uns in diesem Kapitel mit speziellen binären Relationen, die nicht nur nur besonders

Mehr

Algorithmen und Datenstrukturen 2

Algorithmen und Datenstrukturen 2 Algorithmen und Datenstrukturen 2 Sommersemester 2006 3. Vorlesung Peter F. Stadler Universität Leipzig Institut für Informatik studla@bioinf.uni-leipzig.de Algorithmen für Graphen Fragestellungen: Suche

Mehr

Konzepte der Informatik

Konzepte der Informatik Konzepte der Informatik Vorkurs Informatik zum WS 2011/2012 26.09. - 30.09.2011 17.10. - 21.10.2011 Dr. Werner Struckmann / Christoph Peltz Stark angelehnt an Kapitel 1 aus "Abenteuer Informatik" von Jens

Mehr

Algorithmen II Vorlesung am

Algorithmen II Vorlesung am Algorithmen II Vorlesung am 0..0 Minimale Schnitte in Graphen INSTITUT FÜR THEORETISCHE INFORMATIK PROF. DR. DOROTHEA WAGNER KIT Universität des Landes Baden-Württemberg und Algorithmen nationales Forschungszentrum

Mehr

Graphentheorie. Eulersche Graphen. Eulersche Graphen. Eulersche Graphen. Rainer Schrader. 14. November Gliederung.

Graphentheorie. Eulersche Graphen. Eulersche Graphen. Eulersche Graphen. Rainer Schrader. 14. November Gliederung. Graphentheorie Rainer Schrader Zentrum für Angewandte Informatik Köln 14. November 2007 1 / 22 2 / 22 Gliederung eulersche und semi-eulersche Graphen Charakterisierung eulerscher Graphen Berechnung eines

Mehr

Effiziente Algorithmen und Datenstrukturen I. Kapitel 9: Minimale Spannbäume

Effiziente Algorithmen und Datenstrukturen I. Kapitel 9: Minimale Spannbäume Effiziente Algorithmen und Datenstrukturen I Kapitel 9: Minimale Spannbäume Christian Scheideler WS 008 19.0.009 Kapitel 9 1 Minimaler Spannbaum Zentrale Frage: Welche Kanten muss ich nehmen, um mit minimalen

Mehr

Das Heiratsproblem. Definition Matching

Das Heiratsproblem. Definition Matching Das Heiratsproblem Szenario: Gegeben: n Frauen und m > n Männer. Bekanntschaftsbeziehungen zwischen allen Männern und Frauen. Fragestellung: Wann gibt es für jede der Frauen einen Heiratspartner? Modellierung

Mehr

Fully dynamic algorithms for the single source shortest path problem.

Fully dynamic algorithms for the single source shortest path problem. Fully dynamic algorithms for the single source shortest path problem. Michael Baur Wintersemester 2001/2002 Zusammenfassung Im folgenden Paper werde ich Algorithmen für das dynamische Kürzeste-Wege-Problem

Mehr

Definition Gerichteter Pfad. gerichteter Pfad, wenn. Ein gerichteter Pfad heißt einfach, falls alle u i paarweise verschieden sind.

Definition Gerichteter Pfad. gerichteter Pfad, wenn. Ein gerichteter Pfad heißt einfach, falls alle u i paarweise verschieden sind. 3.5 Gerichteter Pfad Definition 291 Eine Folge (u 0, u 1,..., u n ) mit u i V für i = 0,..., n heißt gerichteter Pfad, wenn ( i {0,..., n 1} ) [ (u i, u i+1 ) A]. Ein gerichteter Pfad heißt einfach, falls

Mehr

4. Kreis- und Wegeprobleme Abstände in Graphen

4. Kreis- und Wegeprobleme Abstände in Graphen 4. Kreis- und Wegeprobleme Abstände in Graphen Abstände in Graphen Definition 4.4. Es sei G = (V,E) ein Graph. Der Abstand d(v,w) zweier Knoten v,w V ist die minimale Länge eines Weges von v nach w. Falls

Mehr

Kürzeste Wege in Graphen. Orte mit Straßenverbindungen. Coma I Rolf Möhring

Kürzeste Wege in Graphen. Orte mit Straßenverbindungen. Coma I Rolf Möhring Kürzeste Wege in Graphen Orte mit Straßenverbindungen Orte als Knoten eines Graphen Straßenverbindungen als Kanten eines Graphen Ungerichteter Graph G = (V,E) Kanten Knoten Knotenmenge V = {,,n} oder {,,n

Mehr

1. Musterlösung. Problem 1: Average-case-Laufzeit vs. Worst-case-Laufzeit

1. Musterlösung. Problem 1: Average-case-Laufzeit vs. Worst-case-Laufzeit Universität Karlsruhe Algorithmentechnik Fakultät für Informatik WS 06/07 ITI Wagner Musterlösung Problem : Average-case-Laufzeit vs Worst-case-Laufzeit pt (a) Folgender Algorithmus löst das Problem der

Mehr

Effiziente Algorithmen und Datenstrukturen I. Kapitel 10: Lineare Algebra

Effiziente Algorithmen und Datenstrukturen I. Kapitel 10: Lineare Algebra Effiziente Algorithmen und Datenstrukturen I Kapitel 10: Lineare Algebra Christian Scheideler WS 2008 19.02.2009 Kapitel 10 1 Überblick Notation Arithmetik auf großen Zahlen (Addition und Multiplikation)

Mehr

Algorithmentheorie. 13 - Maximale Flüsse

Algorithmentheorie. 13 - Maximale Flüsse Algorithmentheorie 3 - Maximale Flüsse Prof. Dr. S. Albers Prof. Dr. Th. Ottmann . Maximale Flüsse in Netzwerken 5 3 4 7 s 0 5 9 5 9 4 3 4 5 0 3 5 5 t 8 8 Netzwerke und Flüsse N = (V,E,c) gerichtetes Netzwerk

Mehr

8. A & D - Heapsort. Werden sehen, wie wir durch geschicktes Organsieren von Daten effiziente Algorithmen entwerfen können.

8. A & D - Heapsort. Werden sehen, wie wir durch geschicktes Organsieren von Daten effiziente Algorithmen entwerfen können. 8. A & D - Heapsort Werden sehen, wie wir durch geschicktes Organsieren von Daten effiziente Algorithmen entwerfen können. Genauer werden wir immer wieder benötigte Operationen durch Datenstrukturen unterstützen.

Mehr

S=[n] Menge von Veranstaltungen J S kompatibel mit maximaler Größe J

S=[n] Menge von Veranstaltungen J S kompatibel mit maximaler Größe J Greedy-Strategie Definition Paradigma Greedy Der Greedy-Ansatz verwendet die Strategie 1 Top-down Auswahl: Bestimme in jedem Schritt eine lokal optimale Lösung, so dass man eine global optimale Lösung

Mehr

11. Übungsblatt zu Algorithmen I im SS 2010

11. Übungsblatt zu Algorithmen I im SS 2010 Karlsruher Institut für Technologie Institut für Theoretische Informatik Prof. Dr. Peter Sanders G.V. Batz, C. Schulz, J. Speck 11. Übungsblatt zu Algorithmen I im SS 2010 http://algo2.iti.kit.edu/algorithmeni.php

Mehr

Single Source Sortest Path Negative Kreise All-Pair Shortest Path Problem Minimum Mean Cycle Zusammenfassung. Shortest Paths

Single Source Sortest Path Negative Kreise All-Pair Shortest Path Problem Minimum Mean Cycle Zusammenfassung. Shortest Paths Shortest Paths Label Correcting Algorithms Florian Reitz Universität Trier Fachbereich IV Fach Informatik Seminar Netzwerkalgorithmen WS 2005/2006 Einleitung: Problemübersicht Eben: Schnelle Algorithmen

Mehr

Am Dienstag, den 16. Dezember, ist Eulenfest. 1/48

Am Dienstag, den 16. Dezember, ist Eulenfest. 1/48 Am Dienstag, den 16. Dezember, ist Eulenfest. 1/48 Grundbegriffe der Informatik Einheit 12: Erste Algorithmen in Graphen Thomas Worsch Universität Karlsruhe, Fakultät für Informatik Wintersemester 2008/2009

Mehr

Kombinatorische Optimierung

Kombinatorische Optimierung Juniorprof. Dr. Henning Meyerhenke 1 Henning Meyerhenke: KIT Universität des Landes Baden-Württemberg und nationales Forschungszentrum in der Helmholtz-Gemeinschaft www.kit.edu Vorlesungen 5 und 6 Programm

Mehr

f h c 7 a 1 b 1 g 2 2 d

f h c 7 a 1 b 1 g 2 2 d ) Man bestimme mit Hilfe des Dijkstra-Algorithmus einen kürzesten Weg von a nach h: c 7 a b f 5 h 3 4 5 i e 6 g 2 2 d Beim Dijkstra-Algorithmus wird in jedem Schritt von den noch unmarkierten Knoten jener

Mehr

Präfix-Summe. Das Schweizer Offiziersmesser der Parallelen Algorithmen. Parallele Rechenmodelle Präfix-Summe Brents Lemma Anwendungen

Präfix-Summe. Das Schweizer Offiziersmesser der Parallelen Algorithmen. Parallele Rechenmodelle Präfix-Summe Brents Lemma Anwendungen Präfix-Summe Das Schweizer Offiziersmesser der Parallelen Algorithmen Parallele Rechenmodelle Präfix-Summe Brents Lemma Anwendungen Parallele Rechenmodelle Beispiel: Summieren von Zahlen Verlauf des Rechenprozesses:

Mehr

Vorlesung Diskrete Strukturen Graphen: Wieviele Bäume?

Vorlesung Diskrete Strukturen Graphen: Wieviele Bäume? Vorlesung Diskrete Strukturen Graphen: Wieviele Bäume? Bernhard Ganter Institut für Algebra TU Dresden D-01062 Dresden bernhard.ganter@tu-dresden.de WS 2013/14 Isomorphie Zwei Graphen (V 1, E 1 ) und (V

Mehr

12.4 Traveling Salesman Problem

12.4 Traveling Salesman Problem 96 KOMBINATORISCHE SUCHE.4 Traveling Salesman Problem Definition.3(TSP, Problem des Handlungsreisenden): Wir betrachten einen gerichteten, gewichteten Graphen G = (V,E) mit K : V R. K({u,v}) sind die Kosten

Mehr

ij. , d (k 1) + d (k 1)

ij. , d (k 1) + d (k 1) Dabei war ja die Idee, dass wir unser k Schritt für Schritt erhöhen bis wir bei n angekommen sind, denn dann haben wir das Problem gelöst. Dies ist im Grunde unser Algorithmus. Wir müssen diesen nur noch

Mehr

Graphalgorithmen 2. Dominik Paulus Dominik Paulus Graphalgorithmen / 47

Graphalgorithmen 2. Dominik Paulus Dominik Paulus Graphalgorithmen / 47 Graphalgorithmen Dominik Paulus.0.01 Dominik Paulus Graphalgorithmen.0.01 1 / 7 1 Spannbäume Kruskal Prim Edmonds/Chu-Liu Datenstrukturen Fibonacci-Heap Union/Find Kürzeste Pfade Dijkstra Bellman-Ford

Mehr

9. Übungsblatt zu Algorithmen I im SoSe 2016

9. Übungsblatt zu Algorithmen I im SoSe 2016 Karlsruher Institut für Technologie Institut für Theoretische Informatik Prof. Dr. Dennis Hofheinz Lukas Barth, Lisa Kohl 9. Übungsblatt zu Algorithmen I im SoSe 06 https//crypto.iti.kit.edu/index.php?id=algo-sose6

Mehr

Vorlesung Informatik 2 Algorithmen und Datenstrukturen. (20 Graphen) T. Lauer

Vorlesung Informatik 2 Algorithmen und Datenstrukturen. (20 Graphen) T. Lauer Vorlesung Informatik 2 Algorithmen und Datenstrukturen (20 Graphen) T. Lauer 1 Motivation Wie komme ich am besten von Freiburg nach Ulm? Was ist die kürzeste Rundreise durch eine gegebene Menge von Städten?

Mehr

Babeș-Bolyai Universität Cluj Napoca Fakultät für Mathematik und Informatik Grundlagen der Programmierung MLG5005. Paradigmen im Algorithmenentwurf

Babeș-Bolyai Universität Cluj Napoca Fakultät für Mathematik und Informatik Grundlagen der Programmierung MLG5005. Paradigmen im Algorithmenentwurf Babeș-Bolyai Universität Cluj Napoca Fakultät für Mathematik und Informatik Grundlagen der Programmierung MLG5005 Paradigmen im Algorithmenentwurf Problemlösen Problem definieren Algorithmus entwerfen

Mehr

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

1. Motivation / Grundlagen 2. Sortierverfahren 3. Elementare Datenstrukturen / Anwendungen 4. Bäume / Graphen 5. Hashing 6. Algorithmische Geometrie Gliederung 1. Motivation / Grundlagen 2. Sortierverfahren 3. Elementare Datenstrukturen / Anwendungen 4. äume / Graphen 5. Hashing 6. Algorithmische Geometrie 4/5, olie 1 2014 Prof. Steffen Lange - HDa/bI

Mehr

Randomisierte Algorithmen 2. Erste Beispiele

Randomisierte Algorithmen 2. Erste Beispiele Randomisierte Algorithmen Randomisierte Algorithmen 2. Erste Beispiele Thomas Worsch Fakultät für Informatik Karlsruher Institut für Technologie Wintersemester 2016/2017 1 / 35 Randomisierter Identitätstest

Mehr

Dynamische Optimierung. Kapitel 4. Dynamische Optimierung. Peter Becker (H-BRS) Operations Research II Wintersemester 2014/15 160 / 206

Dynamische Optimierung. Kapitel 4. Dynamische Optimierung. Peter Becker (H-BRS) Operations Research II Wintersemester 2014/15 160 / 206 Kapitel 4 Dynamische Optimierung Peter Becker (H-BRS) Operations Research II Wintersemester 2014/15 160 / 206 Inhalt Inhalt 4 Dynamische Optimierung Allgemeiner Ansatz und Beispiele Stochastische dynamische

Mehr

1 Kürzeste Pfade. mit Wurzel s heißt Kürzester-Pfade-Baum für G. 1 Notfalls fügen wir Hilfskanten mit unendlichen Kantenkosten ein.

1 Kürzeste Pfade. mit Wurzel s heißt Kürzester-Pfade-Baum für G. 1 Notfalls fügen wir Hilfskanten mit unendlichen Kantenkosten ein. 1 Kürzeste Pfade Das Problem, einen kürzesten Pfad zwischen zwei Knoten eines Digraphen zu finden, hat vielfältige Anwendungen, zum Beispiel in Informations- und Verkehrsnetzwerken. In den folgenden Abschnitten

Mehr

3.2 Binäre Suche. Usr/local/www/ifi/fk/menschen/schmid/folien/infovk.ppt 1

3.2 Binäre Suche. Usr/local/www/ifi/fk/menschen/schmid/folien/infovk.ppt 1 3.2 Binäre Suche Beispiel 6.5.1: Intervallschachtelung (oder binäre Suche) (Hier ist n die Anzahl der Elemente im Feld!) Ein Feld A: array (1..n) of Integer sei gegeben. Das Feld sei sortiert, d.h.: A(i)

Mehr

Anmerkungen zur Übergangsprüfung

Anmerkungen zur Übergangsprüfung DM11 Slide 1 Anmerkungen zur Übergangsprüfung Aufgabeneingrenzung Aufgaben des folgenden Typs werden wegen ihres Schwierigkeitsgrads oder wegen eines ungeeigneten fachlichen Schwerpunkts in der Übergangsprüfung

Mehr

Technische Universität Wien Institut für Computergraphik und Algorithmen Arbeitsbereich für Algorithmen und Datenstrukturen

Technische Universität Wien Institut für Computergraphik und Algorithmen Arbeitsbereich für Algorithmen und Datenstrukturen Technische Universität Wien Institut für Computergraphik und Algorithmen Arbeitsbereich für Algorithmen und Datenstrukturen 186.172 Algorithmen und Datenstrukturen 1 VL 4.0 Übungsblatt 4 für die Übung

Mehr

3. Musterlösung. Problem 1: Boruvka MST

3. Musterlösung. Problem 1: Boruvka MST Universität Karlsruhe Algorithmentechnik Fakultät für Informatik WS 06/07 ITI Wagner. Musterlösung Problem : Boruvka MST pt (a) Beweis durch Widerspruch. Sei T MST von G, e die lokal minimale Kante eines

Mehr

Programmierung 2. Dynamische Programmierung. Sebastian Hack. Klaas Boesche. Sommersemester 2012. hack@cs.uni-saarland.de. boesche@cs.uni-saarland.

Programmierung 2. Dynamische Programmierung. Sebastian Hack. Klaas Boesche. Sommersemester 2012. hack@cs.uni-saarland.de. boesche@cs.uni-saarland. 1 Programmierung 2 Dynamische Programmierung Sebastian Hack hack@cs.uni-saarland.de Klaas Boesche boesche@cs.uni-saarland.de Sommersemester 2012 2 Übersicht Stammt aus den Zeiten als mit Programmierung

Mehr

Ein Graph ist ein Paar (V,E), wobei V eine Menge von Knoten und E eine Menge von Kanten (v,w) mit v,w in V ist.

Ein Graph ist ein Paar (V,E), wobei V eine Menge von Knoten und E eine Menge von Kanten (v,w) mit v,w in V ist. Graphen Definition: Ein Graph ist ein Paar (V,E), wobei V eine Menge von Knoten und E eine Menge von Kanten (v,w) mit v,w in V ist. Begriffe: Gerichteter Graph: Alle Kanten haben eine Richtung vom Anfangsknoten

Mehr

Algorithmen & Datenstrukturen 1. Klausur

Algorithmen & Datenstrukturen 1. Klausur Algorithmen & Datenstrukturen 1. Klausur 7. Juli 2010 Name Matrikelnummer Aufgabe mögliche Punkte erreichte Punkte 1 35 2 30 3 30 4 15 5 40 6 30 Gesamt 180 1 Seite 2 von 14 Aufgabe 1) Programm Analyse

Mehr

Grundlagen Datenstrukturen Transitive Hülle Traversierung Kürzeste Wege Spannender Baum Max. Fluss Zuordnungen. 6. Graphen

Grundlagen Datenstrukturen Transitive Hülle Traversierung Kürzeste Wege Spannender Baum Max. Fluss Zuordnungen. 6. Graphen . Graphen viele praktische (Optimierungs-)Probleme sind als graphentheoretische Probleme formulierbar z.b. in Produktionsplanung, Personaleinsatzplanung,.... Grundlagen gerichteter, ungerichteter und gewichteter

Mehr

Ferienkurs zur algorithmischen diskreten Mathematik Kapitel 3: Minimal aufspannende Bäume und Matroide

Ferienkurs zur algorithmischen diskreten Mathematik Kapitel 3: Minimal aufspannende Bäume und Matroide Ferienkurs zur algorithmischen diskreten Mathematik Kapitel 3: Minimal aufspannende Bäume und Matroide Dipl-Math. Wolfgang Kinzner 3.4.2012 Kapitel 3: Minimal aufspannende Bäume und Matroide Minimal aufspannende

Mehr

Zweizusammenhang und starker Zusammenhang

Zweizusammenhang und starker Zusammenhang .. Zeizusammenhang und starker Zusammenhang Carsten Gutenger Vorlesung Algorithmen und Datenstrukturen WS /. Januar Zeizusammenhang Betrachte ein Netzerk (Graph) Z.B. Computernetzerk, Flug- oder Schienennetzerk

Mehr

Alignment-Verfahren zum Vergleich biologischer Sequenzen

Alignment-Verfahren zum Vergleich biologischer Sequenzen zum Vergleich biologischer Sequenzen Hans-Joachim Böckenhauer Dennis Komm Volkshochschule Zürich. April Ein biologisches Problem Fragestellung Finde eine Methode zum Vergleich von DNA-Molekülen oder Proteinen

Mehr

Quicksort ist ein Divide-and-Conquer-Verfahren.

Quicksort ist ein Divide-and-Conquer-Verfahren. . Quicksort Wie bei vielen anderen Sortierverfahren (Bubblesort, Mergesort, usw.) ist auch bei Quicksort die Aufgabe, die Elemente eines Array a[..n] zu sortieren. Quicksort ist ein Divide-and-Conquer-Verfahren.

Mehr

Dynamische Programmierung. Problemlösungsstrategie der Informatik

Dynamische Programmierung. Problemlösungsstrategie der Informatik als Problemlösungsstrategie der Informatik und ihre Anwedung in der Diskreten Mathematik und Graphentheorie Fabian Cordt Enisa Metovic Wissenschaftliche Arbeiten und Präsentationen, WS 2010/2011 Gliederung

Mehr

VBA-Programmierung: Zusammenfassung

VBA-Programmierung: Zusammenfassung VBA-Programmierung: Zusammenfassung Programmiersprachen (Definition, Einordnung VBA) Softwareentwicklung-Phasen: 1. Spezifikation 2. Entwurf 3. Implementierung Datentypen (einfach, zusammengesetzt) Programmablaufsteuerung

Mehr

Beispiellösung zu den Übungen Datenstrukturen und Algorithmen SS 2008 Blatt 5

Beispiellösung zu den Übungen Datenstrukturen und Algorithmen SS 2008 Blatt 5 Robert Elsässer Paderborn, den 15. Mai 2008 u.v.a. Beispiellösung zu den Übungen Datenstrukturen und Algorithmen SS 2008 Blatt 5 AUFGABE 1 (6 Punkte): Nehmen wir an, Anfang bezeichne in einer normalen

Mehr

Abschnitt: Algorithmendesign und Laufzeitanalyse

Abschnitt: Algorithmendesign und Laufzeitanalyse Abschnitt: Algorithmendesign und Laufzeitanalyse Definition Divide-and-Conquer Paradigma Divide-and-Conquer Algorithmen verwenden die Strategien 1 Divide: Teile das Problem rekursiv in Subproblem gleicher

Mehr

Der Dreyfus-Wagner Algorithmus für das Steiner Baum Problem

Der Dreyfus-Wagner Algorithmus für das Steiner Baum Problem Der Dreyfus-Wagner Algorithmus für das Steiner Baum Problem Andreas Moser Dietmar Ebner Christian Schauer Markus Bauer 9. Dezember 2003 1 Einführung Der in der Vorlesung gezeigte Algorithmus für das Steiner

Mehr

Datenstruktur, die viele Operationen dynamischer Mengen unterstützt

Datenstruktur, die viele Operationen dynamischer Mengen unterstützt Algorithmen und Datenstrukturen 265 10 Binäre Suchbäume Suchbäume Datenstruktur, die viele Operationen dynamischer Mengen unterstützt Kann als Wörterbuch, aber auch zu mehr eingesetzt werden (Prioritätsschlange)

Mehr

Maximale s t-flüsse in Planaren Graphen

Maximale s t-flüsse in Planaren Graphen Maximale s t-flüsse in Planaren Graphen Vorlesung Algorithmen für planare Graphen 6. Juni 2017 Guido Brückner INSTITUT FÜR THEORETISCHE INFORMATIK PROF. DR. DOROTHEA WAGNER KIT Universität des Landes Baden-Württemberg

Mehr

Algorithmen und Datenstrukturen 2

Algorithmen und Datenstrukturen 2 Algorithmen und Datenstrukturen 2 Sommersemester 2006 5. Vorlesung Peter F. Stadler Universität Leipzig Institut für Informatik studla@bioinf.uni-leipzig.de Wdhlg.: Dijkstra-Algorithmus I Bestimmung der

Mehr

Customization (Zuschneiden)

Customization (Zuschneiden) Customization (Zuschneiden) Anpassen der (Graph)Datenstruktur an die Anwendung. I Ziel: schnell, kompakt. I benutze Entwurfsprinzip: make the common case fast I Listen vermeiden Mögliches Problem: Software-Engineering-Alptraum

Mehr

Routing Algorithmen. Begriffe, Definitionen

Routing Algorithmen. Begriffe, Definitionen Begriffe, Definitionen Routing (aus der Informatik) Wegewahl oder Verkehrslenkung bezeichnet in der Telekommunikation das Festlegen von Wegen für Nachrichtenströme bei der Nachrichtenübermittlung über

Mehr

Kombinatorische Optimierung

Kombinatorische Optimierung Juniorprof. Dr. Henning Meyerhenke 1 Henning Meyerhenke: KIT Universität des Landes Baden-Württemberg und nationales Forschungszentrum in der Helmholtz-Gemeinschaft www.kit.edu Vorlesung 4 Programm des

Mehr

Binäre lineare Optimierung mit K*BMDs p.1/42

Binäre lineare Optimierung mit K*BMDs p.1/42 Binäre lineare Optimierung mit K*BMDs Ralf Wimmer wimmer@informatik.uni-freiburg.de Institut für Informatik Albert-Ludwigs-Universität Freiburg Binäre lineare Optimierung mit K*BMDs p.1/42 Grundlagen Binäre

Mehr

Übersicht. Schleifen. Schleifeninvarianten. Referenztypen, Wrapperklassen und API. 9. November 2009 CoMa I WS 08/09 1/15

Übersicht. Schleifen. Schleifeninvarianten. Referenztypen, Wrapperklassen und API. 9. November 2009 CoMa I WS 08/09 1/15 Übersicht Schleifen Schleifeninvarianten Referenztypen, Wrapperklassen und API CoMa I WS 08/09 1/15 CoMa I Programmierziele Linux bedienen Code umschreiben strukturierte Datentypen Anweisungen und Kontrollstrukturen

Mehr

Zentralübung zur Vorlesung Diskrete Strukturen (Prof. Esparza)

Zentralübung zur Vorlesung Diskrete Strukturen (Prof. Esparza) WS 2013/14 Zentralübung zur Vorlesung Diskrete Strukturen (Prof. Esparza) Dr. Werner Meixner Fakultät für Informatik TU München http://www14.in.tum.de/lehre/2013ws/ds/uebung/ 22. Januar 2014 ZÜ DS ZÜ XIII

Mehr

3 Klassifikation wichtiger Optimierungsprobleme

3 Klassifikation wichtiger Optimierungsprobleme 3 Klassifikation wichtiger Optimierungsprobleme 3.1 Das MIN- -TSP Wir kehren nochmal zurück zum Handlungsreisendenproblem für Inputs (w {i,j} ) 1 i

Mehr

Informatik II Greedy-Algorithmen

Informatik II Greedy-Algorithmen 7/7/06 lausthal Erinnerung: Dynamische Programmierung Informatik II reedy-algorithmen. Zachmann lausthal University, ermany zach@in.tu-clausthal.de Zusammenfassung der grundlegenden Idee: Optimale Sub-Struktur:

Mehr

2. Repräsentationen von Graphen in Computern

2. Repräsentationen von Graphen in Computern 2. Repräsentationen von Graphen in Computern Kapitelinhalt 2. Repräsentationen von Graphen in Computern Matrizen- und Listendarstellung von Graphen Berechnung der Anzahl der verschiedenen Kantenzüge zwischen

Mehr

2. Übungsblatt zu Algorithmen II im WS 2016/2017

2. Übungsblatt zu Algorithmen II im WS 2016/2017 Karlsruher Institut für Technologie Institut für Theoretische Informatik Prof. Dr. Peter Sanders Dr. Christian Schulz, Dr. Simon Gog Michael Axtmann. Übungsblatt zu Algorithmen II im WS 016/017 Aufgabe

Mehr

Algorithmen und Datenstrukturen

Algorithmen und Datenstrukturen Algorithmen und Datenstrukturen Graphen 9/1 Begriffsdefinitionen Ein Graph besteht aus Knoten und Kanten. Ein Knoten(Ecke) ist ein benanntes Objekt. Eine Kante verbindet zwei Knoten. Kanten haben ein Gewicht

Mehr

22. Algorithmus der Woche Partnerschaftsvermittlung Drum prüfe, wer sich ewig bindet

22. Algorithmus der Woche Partnerschaftsvermittlung Drum prüfe, wer sich ewig bindet 22. Algorithmus der Woche Partnerschaftsvermittlung Drum prüfe, wer sich ewig bindet Autor Volker Claus, Universität Stuttgart Volker Diekert, Universität Stuttgart Holger Petersen, Universität Stuttgart

Mehr

NP-Vollständigkeit. Krautgartner Martin (9920077) Markgraf Waldomir (9921041) Rattensberger Martin (9921846) Rieder Caroline (0020984)

NP-Vollständigkeit. Krautgartner Martin (9920077) Markgraf Waldomir (9921041) Rattensberger Martin (9921846) Rieder Caroline (0020984) NP-Vollständigkeit Krautgartner Martin (9920077) Markgraf Waldomir (9921041) Rattensberger Martin (9921846) Rieder Caroline (0020984) 0 Übersicht: Einleitung Einteilung in Klassen Die Klassen P und NP

Mehr