Kürzeste Pfade. Organisatorisches. VL-17: Kürzeste Pfade. (Datenstrukturen und Algorithmen, SS 2017) Walter Unger

Größe: px
Ab Seite anzeigen:

Download "Kürzeste Pfade. Organisatorisches. VL-17: Kürzeste Pfade. (Datenstrukturen und Algorithmen, SS 2017) Walter Unger"

Transkript

1 Organisatorisches VL-17: Kürzeste Pfade (Datenstrukturen und Algorithmen, SS 2017) Walter Unger Vorlesung: Gerhard Woeginger (Zimmer 4024 im E1) Sprechstunde: Mittwoch 11:15 12:00 Übungen: Tim Hartmann, David Korzeniewski, Björn Tauer Webseite: SS 2017, RWTH Nächste Vorlesung: Dienstag, Jul 4, 16:15 17:45 Uhr, Aula 1 DSAL/SS 2017 VL-17: Kürzeste Pfade 1/44 DSAL/SS 2017 VL-17: Kürzeste Pfade 2/44 Das Rechenproblem: Kürzeste Pfade (1) Kürzeste Pfade Single-Source Shortest Path Bellman-Ford Dijkstra All-Pairs Shortest Paths Transitive Hüllen Algorithmus von Warshall Algorithmus von Floyd DSAL/SS 2017 VL-17: Kürzeste Pfade 3/44 DSAL/SS 2017 VL-17: Kürzeste Pfade 4/44

2 Das Rechenproblem: Kürzeste Pfade (2) Kürzeste Pfade: Das Problem Beispiel (kürzester Weg) Eingabe: 1. Eine Strassenkarte, auf der der Abstand zwischen jedem Paar von benachbarten Kreuzungen eingezeichnet ist, 2. eine Startkreuzung s, 3. eine Zielkreuzung t. Ausgabe: Der kürzeste Weg von s nach t. DSAL/SS 2017 VL-17: Kürzeste Pfade 5/44 DSAL/SS 2017 VL-17: Kürzeste Pfade 6/44 Kürzeste Pfade: Notation Kürzeste Pfade: Varianten Gegeben ist ein kanten-gewichteter Graph G = (V, E, W ). Gewicht eines Pfades = Summe der Gewichte der Kanten Ein kürzester Pfad von Knoten s V zu Knoten v V ist ein Pfad von s nach v mit minimalem Gewicht. Im Folgenden ist δ : (V V ) (R {+inf}) eine Funktion, sodass: δ(s, v) ist das Gewicht des kürzesten Pfades von s nach v, und δ(s, v) = +inf, falls v von s nicht erreichbar ist. Es gibt viele verschiedene Problemvarianten: Kürzeste Pfade von einem Startknoten s zu allen anderen Knoten: Single-Source Shortest Paths (SSSP). Kürzeste Pfade von allen Knoten zu einem Zielknoten t. Lässt sich auf SSSP zurückführen. Kürzester Pfad für ein festes Knotenpaar u, v. Es ist kein Algorithmus bekannt, der asymptotisch schneller ist als der beste SSSP-Algorithmus. Kürzeste Pfade für alle Knotenpaare. All-Pairs Shortest Paths (APSP, zweiter Teil dieser Vorlesung). DSAL/SS 2017 VL-17: Kürzeste Pfade 7/44 DSAL/SS 2017 VL-17: Kürzeste Pfade 8/44

3 Single-Source Shortest Paths Single-Source Shortest Path Problem (Single-Source Shortest Path) Für einen fixen gegebenen Knoten s V (Quelle/source), bestimme für jeden anderen Knoten t V einen kürzesten Pfad von s zu t. DSAL/SS 2017 VL-17: Kürzeste Pfade 9/44 DSAL/SS 2017 VL-17: Kürzeste Pfade 10/44 Der Bellman-Ford Algorithmus Bellman-Ford Berechnet kürzeste Pfade von einem einzigen Startknoten aus Erlaubt negative Kantengewichte. Zeigt an, ob es einen Kreis mit negativem Gewicht gibt, der vom Startknoten aus erreichbar ist. Falls ein solcher Kreis gefunden wird, gibt es keine Lösung (da die Gewichte der kürzesten Pfade nicht mehr wohldefiniert sind). Sonst verbessert der Algorithmus iterativ für jeden Knoten v eine obere Grenze dist[v] für δ(s, v), bis das Minimum gefunden wird. Kürzeste Pfade können nach Terminierung mittels der im Array prev gespeicherten Vorgängerknoten entlang eines kürzesten Pfades rekonstruiert werden. DSAL/SS 2017 VL-17: Kürzeste Pfade 11/44 DSAL/SS 2017 VL-17: Kürzeste Pfade 12/44

4 Bellman-Ford: Grundideen Initialisierung: dist[v]=+inf; dist[start]=0. Für alle Kanten (v, w) E: Relaxierung: Ist das bisher bekannte Gewicht dist[w] grösser als dist[v]+w(v,w), so verbessere dist[w] auf diesen Wert. Wiederhole den vorigen Schritt bis sich nichts mehr ändert, oder brich, falls ein negativer Kreis gefunden wird. Korrektheit von Bellman-Ford Falls nach V 1 Wiederholungen noch Verbesserungen möglich sind, so gibt es einen negativen Kreis. Andernfalls gilt dist[v] = δ(s, v) für alle Knoten v V. Beweisidee: Pfad ohne Kreis in (V, E, W ) enthält V 1 Zwischenknoten. Bellman-Ford in Pseudo-Code 1 bool bellmanford(list adj[n], int n, int start, 2 int &dist[n], int &prev[n]) { 3 4 for (int v = 0; v < n; v++) // fuer alle Knoten v 5 dist[v] = +inf; 6 prev[v] = -1; // v hat noch keinen Vorgaenger 7 } 8 9 dist [ start ] = 0; // Entfernung von start zu start ist 0 10 for ( int i = 1; i < n; i ++) // n -1 Durchlaeufe 11 for ( int v = 0; v < n; v ++) // fuer alle Knoten v 12 foreach ( edge in adj [ v]) 13 if ( dist [ edge. target ] > dist [v] + edge. weight ) { 14 dist [ edge. target ] = dist [v] + edge. weight ; 15 prev [ edge. target ] = v; 16 } // Relaxierung for (int v = 0; v < n; v++) // fuer alle Knoten v 19 foreach (edge in adj[v]) 20 if (dist[edge.target] > dist[v] + edge.weight) 21 return false; // Kreis mit negativem Gewicht 22 return true ; 23 } Zeitkomplexität: O( V E ) DSAL/SS 2017 VL-17: Kürzeste Pfade 13/44 DSAL/SS 2017 VL-17: Kürzeste Pfade 14/44 Bellman-Ford: Beispiel Dijkstra DSAL/SS 2017 VL-17: Kürzeste Pfade 15/44 DSAL/SS 2017 VL-17: Kürzeste Pfade 16/44

5 Der Dijkstra Algorithmus Grundlegende Annahme Alle Kantengewichte sind nicht-negativ: W (u, v) 0 für alle (u, v) E. Ergo: Kürzeste Pfade enthalten keine Kreise Edsger Wybe Dijkstra ( ), Turing Award 1972 Dijkstra: Grundideen Wie beim Algorithmus von Prim klassifizieren wir die Knoten in drei Kategorien: Baumknoten: gehören zum bis jetzt konstruierten Baum Randknoten: nicht im Baum, aber adjazent zu Knoten im Baum Ungesehene Knoten: alle anderen Knoten. Grundkonzept: Kein Knoten ausserhalb des Baumes hat einen kürzeren Pfad als die Knoten im Baum. Jedem Knoten v ist ein Wert dist[v] zugeordnet: Für Baumknoten v gilt: dist[v] = δ(s, v); Für Randknoten v gilt: dist[v] ist Minimum der Gewichte aller Pfade vom Startknoten zu v, wobei die letzte Kante im Schnitt liegt; Für ungesehenen Knoten v gilt: dist[v] =+inf. DSAL/SS 2017 VL-17: Kürzeste Pfade 17/44 DSAL/SS 2017 VL-17: Kürzeste Pfade 18/44 Dijkstra Algorithmus: Grundgerüst Dijkstra Algorithmus: Beispiel 1 // ungerichteter Graph G mit n Knoten 2 void dijkstrasp ( Graph G, int n) { 3 initialisiere alle Knoten als UNGESEHEN ( WHITE ); 4 markiere s als BAUM (BLACK) und setze d(s, s) = 0; 5 reklassifiziere alle zu s adj Knoten als RAND ( GRAY ); 6 while ( es gibt Randknoten ) { 7 waehle von allen Kanten zwischen Baumknoten t und 8 Randknoten v mit minimalem d(s, t) + W (t, v); 9 reklassifiziere v als BAUM ( BLACK ); 10 fuege Kante (t, v) zum Baum hinzu ; 11 setze d(s, v) = d(s, t) + W (t, v); 12 reklassifiziere alle zu v adj UNGESEHENen Knoten 13 als RAND ( GRAY ); 14 } 15 } Die Unterschiede zu Prim s Spannbaum Algorithmus sind rot gekennzeichnet DSAL/SS 2017 VL-17: Kürzeste Pfade 19/44 DSAL/SS 2017 VL-17: Kürzeste Pfade 20/44

6 Dijkstra Algorithmus: Korrektheit (1) Dijkstra Algorithmus: Korrektheit (2) Theorem Wir betrachten einen Zeitpunkt während der Exekution des Dijkstra Algorithmus. Es sei B der zu diesem Zeitpunkt konstruierte (rote) Teilbaum. Dann gilt: 1. dist[v] δ(s, v) für alle Knoten v V 2. dist[v] = δ(s, v) für alle Baumknoten v B 3. dist[v] = min({ } {δ(s, x) + W (x, v) x B und (x, v) E}) für alle Nicht-Baumknoten v V \ B; 4. δ(s, v) δ(s, u) für alle Baumknoten v B und u V \ B. 1. dist[v] δ(s, v) für alle Knoten v V 2. dist[v] = δ(s, v) für alle Baumknoten v B 3. dist[v] = min({ } {δ(s, x) + W (x, v) x B, (x, v) E}) für v V \ B 4. δ(s, v) δ(s, u) für alle Baumknoten v B und u V \ B Beweis. 1. und 3. und 4. sind (ziemlich) trivial. Wir beweisen 2. durch Induktion über die Anzahl der Baumknoten: Basis: B ist leer und B = {s} (nach erster Iteration): trivial. Ind. Schritt: Nimm an, Behauptung gilt für B = k > 0. Sei v der Knoten der als nächster zum Baum B hinzugefügt wird. Der Fall dist[v] = +inf ist trivial. Betrachte dist[v] +inf. Dann gibt es eine Kante vom Baumknoten x = prev[v] B zu v B. Aus 3. folgt, dass dist[v] das Gewicht des kürzesten Pfades von s nach v über Baumknoten ist. Aus 4. und der Wahl von v folgt, dass es keinen kürzeren Pfad gibt, d.h., dist[v] = δ(s, v). DSAL/SS 2017 VL-17: Kürzeste Pfade 21/44 DSAL/SS 2017 VL-17: Kürzeste Pfade 22/44 Korrektheit Dijkstra Algorithmus: Implementierung Theorem (Korrektheit) Der Dijkstra Algorithmus berechnet die kürzesten Abstände zwischen Knoten s und jedem von s aus erreichbaren Knoten in G. 1 // Input : gewichteter Graph mit n Knoten, Startknoten 2 void dijkstra(int adj[n], int n, int start, int &dist[n], 3 int &prev[n]) { 4 for (int i = 0; i < n; i++) { 5 dist[i] = inf; prev[i] = -1; 6 } 7 dist[start] = 0; // start ist Randknoten mit Kosten 0 8 Q = 0,...,n-1; // Q enthaelt alle ungesehenen Knoten 9 // und alle Randknoten 10 while ( Q not empty ) { 11 // verschiebe billigsten Randknoten v in Baum : 12 // extractmin ( Q) bestimmt Element e aus Q mit minimalem 13 // dist [ e], entfernt e aus Q und gibt e zurueck 14 v = extractmin ( Q); 15 for each ( edge in adj [ v]) // aktualisiere Kosten 16 // fuer Randknoten 17 if ( edge. target in Q and 18 dist [v]+ edge. weight < dist [ edge. target ]) { 19 dist [ edge. target ] = dist [v] + edge. weight ; 20 prev [ edge. target ] = v; 21 } 22 } 23 } DSAL/SS 2017 VL-17: Kürzeste Pfade 23/44 DSAL/SS 2017 VL-17: Kürzeste Pfade 24/44

7 Dijkstra Algorithmus: Anmerkungen Die kürzesten Wege werden mit zunehmendem Abstand zur Quelle s gefunden. Implementierung: Ähnlich zum Spannbaum Algorithmus von Prim. Zeitkomplexität im Worst-Case: Θ( V 2 ). Untere Schranke der Komplexität: Ω( E ) (Im schlimmsten Fall müssen alle Kanten überprüft werden.) Platzkomplexität: O( V ). All-Pairs Shortest Paths Dijkstra erlaubt keine negative Kosten. Warum? DSAL/SS 2017 VL-17: Kürzeste Pfade 25/44 DSAL/SS 2017 VL-17: Kürzeste Pfade 26/44 All-Pairs Shortest Paths Binäre Relationen Wir betrachten gewichtete gerichtete Graphen G = (V, E, W ). Negative Gewichte sind erlaubt, aber keine Kreise mit negativem Gewicht. Nicht vorhandene Kanten haben Gewicht W (, ) = +inf. Problem (All-Pairs Shortest Path) Berechne für jedes Paar i, j das Gewicht D[i,j] des kürzesten Pfades. Naive Lösung: Wende SSSP-Algorithmus (z.b. Bellman-Ford) V mal an. Dies führt zu Worst-Case Zeitkomplexität O( V 4 ). Effizientere Version: Floyd s Algorithmus Binäre Relation Eine (binäre) Relation R über einer Menge S ist eine Teilmenge R S S = S 2. Reflexivität, Transitivität Eine Relation R ist reflexiv, wenn (u, u) R für alle u S transitiv, wenn aus (u, v) R und (v, w) R immer (u, w) R folgt Transitive Hülle Die transitive Hülle R einer Relation R ist die kleinste Erweiterung (Obermenge) R R S 2, sodass R reflexiv und transitiv ist. Transitive Hülle eines Graphen Für Graphen mit Menge S = V und Relation R = E gilt: (u, v) R gdw. es gibt Pfad von u nach v. DSAL/SS 2017 VL-17: Kürzeste Pfade 27/44 DSAL/SS 2017 VL-17: Kürzeste Pfade 28/44

8 Transitive Hülle: Beispiel R = und transitive Hülle R = A B A B Algorithmus von Warshall E C E C D D Binäre Relation R Transitive Hülle R DSAL/SS 2017 VL-17: Kürzeste Pfade 29/44 DSAL/SS 2017 VL-17: Kürzeste Pfade 30/44 Algorithmus von Warshall: Idee (1) Aus R[i,k] und R[k,j] folgt Erreichbarkeit R[i,j]. Algorithmus von Warshall: Idee (2) Das reicht bereits aus, um längere Pfade zu berücksichtigen: i j k 1 2 Die Reihenfolge spielt dabei keine Rolle: 1 foreach (k V ) 2 foreach ( eingehende Kante (i, k) E ) 3 foreach ( ausgehende Kante (k, j) E ) 4 Fuege (i, j) zu E hinzu. 2 1 DSAL/SS 2017 VL-17: Kürzeste Pfade 31/44 DSAL/SS 2017 VL-17: Kürzeste Pfade 32/44

9 Algorithmus von Warshall: Idee (3) Algorithmus von Warshall: Idee (4) Allgemeiner Fall: i {1,..., k 1} k {1,..., k 1} Das lässt sich als Rekursionsgleichung schreiben, wobei t (k) ij = true besagt, dass nach Berücksichtigung der Zwischenknoten {1,..., k} der Knoten j von i aus erreichbar ist: t (k) ij = t (k 1) ij ( t (k 1) t (k 1) ) j t (k) ij = false true t (k 1) ij ( t (k 1) Da zur Berechnung von t (k) ij ) t (k 1) für k = 0, falls (i, j) E für k = 0, falls (i, j) E für k > 0 nur die Werte t (k 1) uv gebraucht werden und da keine älteren Werte t uv (j) mit j < k 1 gebraucht werden, kann die Berechnung direkt im Ausgabearray (in-place) erfolgen. DSAL/SS 2017 VL-17: Kürzeste Pfade 33/44 DSAL/SS 2017 VL-17: Kürzeste Pfade 34/44 Algorithmus von Warshall: Beispiel (1) Eine mögliche Nummerierung der Knoten: Algorithmus von Warshall: Beispiel (2) Eine andere Nummerierung der Knoten: x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x 3 7 Permutierung der Knoten liefert gleiche Matrixdarstellung von R wie zuvor DSAL/SS 2017 VL-17: Kürzeste Pfade 35/44 DSAL/SS 2017 VL-17: Kürzeste Pfade 36/44

10 1 foreach (k V ) 2 foreach ( eingehende Kante (i, k) E ) 3 foreach ( ausgehende Kante (k, j) E ) 4 Fuege (i, j) zu E hinzu. 1 void transclos ( bool A[ n][ n], int n, bool & R[ n][ n]) { 2 for ( int i = 0; i < n; i ++) 3 for ( int j = 0; j < n; j ++) 4 R[i, j] = A[i, j]; // Kopiere A nach R 5 6 for ( int i = 0; i < n; i ++) 7 R[i, i] = true ; // reflexive Huelle 8 9 for ( int k = 0; k < n; k ++) 10 for ( int i = 0; i < n; i ++) 11 for ( int j = 0; j < n; j ++) 12 R[i, j] = R[i, j] ( R[i, k] && R[k, j]); 13 } Algorithmus von Floyd Zeitkomplexität: Θ( V 3 ); Platzkomplexität: Θ( V 2 ) DSAL/SS 2017 VL-17: Kürzeste Pfade 37/44 DSAL/SS 2017 VL-17: Kürzeste Pfade 38/44 Der Algorithmus von Floyd Der Algorithmus von Floyd: Idee 36 i j Zurück zu All-Pairs Shortest Paths: Algorithmus von Floyd löst APSP Grundidee: Erweiterung von Algorithmus von Warshall (Literatur nennt den Algorithmus oft Floyd-Warshall ) {1,..., k 1} k {1,..., k 1} Wir gehen wie bei Warshall vor, jedoch mit der folgenden angepassten Rekursionsgleichung: W (i, j) für k = 0 d (k) ij = ( ) min d (k 1) ij, d (k 1) + d (k 1) für k > 0 ( ) statt: t (k) ij = t (k 1) ij t (k 1) t (k 1) DSAL/SS 2017 VL-17: Kürzeste Pfade 39/44 DSAL/SS 2017 VL-17: Kürzeste Pfade 40/44

11 Der Algorithmus von Floyd: Idee Der Algorithmus von Floyd: Beispiel 35 i j {1,..., k 1} k {1,..., k 1} Wir gehen wie bei Warshall vor, jedoch mit der folgenden angepassten Rekursionsgleichung: W (i, j) für k = 0 d (k) ij = ( ) min d (k 1) ij, d (k 1) + d (k 1) für k > 0 ( ) statt: t (k) ij = t (k 1) ij t (k 1) t (k 1) DSAL/SS 2017 VL-17: Kürzeste Pfade 40/44 DSAL/SS 2017 VL-17: Kürzeste Pfade 41/44 Der Algorithmus von Floyd: Implementierung Der Algorithmus von Floyd: Erweiterung 1 void floydsp ( double W[ n][ n], int n, double & D[ n][ n]) { 2 for ( int i = 0; i < n; i ++) 3 for ( int j = 0; j < n; j ++) 4 D[i, j] = W[i, j]; // Kopiere W nach D 5 6 for ( int i = 0; i < n; i ++) // reflexive Huelle 7 D[i, i] = 0; 8 9 for ( int k = 0; k < n; k ++) 10 for ( int i = 0; i < n; i ++) 11 for ( int j = 0; j < n; j ++) 12 D[i,j] = min (D[i,j], D[i,k] + D[k,j]); 13 } Zeitkomplexität: Θ( V 3 ); Platzkomplexität: Θ( V 2 ). Hier nicht behandelt: Der Algorithmus kann auch mit negativen Kreisen umgehen. Der angegebene Algorithmus berechnet nur die Länge der Pfade. Der Algorithmus lässt sich leicht auf die Berechung von Pfaden erweitern (z. B. Routingtabellen). Dazu speichern wir für jedes Paar (i, j) jeweils den letzten Zwischenknoten π ij des kürzesten Pfades von i nach j (das heisst, π ij ist der Vorgänger von j auf diesem Pfad). π (k) ij = i null π (k 1) π (k 1) ij für k = 0, i j, falls W (i, j) +inf für k = 0, sonst für k > 0, falls d (k 1) ij sonst > d (k 1) + d (k 1) DSAL/SS 2017 VL-17: Kürzeste Pfade 42/44 DSAL/SS 2017 VL-17: Kürzeste Pfade 43/44

12 Organisatorisches Nächste Vorlesung: Dienstag, Jul 4, 16:15 17:45 Uhr, Aula 1 Webseite: DSAL/SS 2017 VL-17: Kürzeste Pfade 44/44

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

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

5.2 Das All-Pairs-Shortest-Paths-Problem (APSP-Problem) Kürzeste Wege zwischen allen Knoten. Eingabe: Gerichteter Graph G =(V, E, c) 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!

Mehr

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

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

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

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

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

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 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

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

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

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

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

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 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

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

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

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

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

DATENSTRUKTUREN UND ALGORITHMEN

DATENSTRUKTUREN UND ALGORITHMEN DATENSTRUKTUREN UND ALGORITHMEN 2 Ist die Datenstruktur so wichtig??? Wahl der Datenstruktur wichtiger Schritt beim Entwurf und der Implementierung von Algorithmen Dünn besetzte Graphen und Matrizen bilden

Mehr

Vorlesung 4 BETWEENNESS CENTRALITY

Vorlesung 4 BETWEENNESS CENTRALITY Vorlesung 4 BETWEENNESS CENTRALITY 101 Aufgabe! Szenario: Sie arbeiten bei einem sozialen Online-Netzwerk. Aus der Netzwerk-Struktur Ihrer Benutzer sollen Sie wichtige Eigenschaften extrahieren. [http://www.fahrschule-vatterodt.de/

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

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

23. November Betweenness Centrality Closeness Centrality. H. Meyerhenke: Algorithmische Methoden zur Netzwerkanalyse 108

23. November Betweenness Centrality Closeness Centrality. H. Meyerhenke: Algorithmische Methoden zur Netzwerkanalyse 108 23. November 2011 Betweenness Centrality Closeness Centrality H. Meyerhenke: Algorithmische Methoden zur Netzwerkanalyse 108 Betweenness Centrality Grundlegende Idee: Ein Knoten ist wichtig, wenn er auf

Mehr

ADS: Algorithmen und Datenstrukturen 2

ADS: Algorithmen und Datenstrukturen 2 ADS: Algorithmen und Datenstrukturen 2 Teil 5 Prof. Peter F. Stadler & Dr. Christian Höner zu Siederdissen Bioinformatik/IZBI Institut für Informatik & Interdisziplinäres Zentrum für Bioinformatik Universität

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

Datenstrukturen & Algorithmen

Datenstrukturen & Algorithmen Datenstrukturen & Algorithmen Matthias Zwicker Universität Bern Frühling 2010 Übersicht Binäre Suchbäume Einführung und Begriffe Binäre Suchbäume 2 Binäre Suchbäume Datenstruktur für dynamische Mengen

Mehr

Alle bislang betrachteten Sortieralgorithmen hatten (worst-case) Laufzeit Ω(nlog(n)).

Alle bislang betrachteten Sortieralgorithmen hatten (worst-case) Laufzeit Ω(nlog(n)). 8. Untere Schranken für Sortieren Alle bislang betrachteten Sortieralgorithmen hatten (worst-case) Laufzeit Ω(nlog(n)). Werden nun gemeinsame Eigenschaften dieser Algorithmen untersuchen. Fassen gemeinsame

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

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

Graphenalgorithmen I

Graphenalgorithmen I enalgorithmen I Tobias Pröger 21. Dezember 2016 Erklärung: Diese Mitschrift ist als Ergänzung zur Vorlesung gedacht. Wir erheben keinen Anspruch auf Vollständigkeit und Korrektheit. Wir sind froh über

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

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

Very simple methods for all pairs network flow analysis

Very simple methods for all pairs network flow analysis Very simple methods for all pairs network flow analysis Tobias Ludes 02.07.07 Inhalt Einführung Algorithmen Modifikation der Gomory-Hu Methode Einführung Nach Gomory-Hu nur n-1 Netzwerk-Fluss- Berechnungen

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

Felix Brandt, Jan Johannsen. Vorlesung im Wintersemester 2008/09

Felix Brandt, Jan Johannsen. Vorlesung im Wintersemester 2008/09 Felix Brandt, Jan Johannsen Vorlesung im Wintersemester 2008/09 Übersicht Übersicht Definition Ein Matching in G = (V, E) ist eine Menge M E mit e 1 e 2 = für e 1, e 2 M, e 1 e 2 Ein Matching M ist perfekt,

Mehr

Algorithmen und Datenstrukturen

Algorithmen und Datenstrukturen Algorithmen und Datenstrukturen Wintersemester 2012/13 22. Vorlesung Tiefensuche und Topologische Sortierung Prof. Dr. Alexander Wolff Lehrstuhl für Informatik I Vorlesungsumfrage Nutzen Sie die Vorlesungsbefragung

Mehr

Proseminar Online Algorithmen, Prof. Dr. Rolf Klein

Proseminar Online Algorithmen, Prof. Dr. Rolf Klein Proseminar Online Algorithmen, Prof. Dr. Rolf Klein Vortrag von Michael Daumen am 13.12.2000 Thema : Minimum Spanning Tree und 2-Approximation der TSP-Tour Inhalt des Vortrags : 1. genaue Vorstellung des

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

Kapitel 9. Komplexität von Algorithmen und Sortieralgorithmen

Kapitel 9. Komplexität von Algorithmen und Sortieralgorithmen 1 Kapitel 9 Komplexität von Algorithmen und Sortieralgorithmen Ziele 2 Komplexität von Algorithmen bestimmen können (in Bezug auf Laufzeit und auf Speicherplatzbedarf) Sortieralgorithmen kennenlernen:

Mehr

κ(k) k K S Algorithmus zur Bestimmung eines spannenden Baumes mit minimalen Kosten (Kruskal, 1965).

κ(k) k K S Algorithmus zur Bestimmung eines spannenden Baumes mit minimalen Kosten (Kruskal, 1965). 5. Graphenprobleme Im folgenden bezeichnen G = (E, K) einen endlichen Graphen mit der Eckenmenge E und der Kantenmenge K. G kann ungerichtet, gerichtet, schlicht oder nicht schlicht sein. 5.1 Spannende

Mehr

Minimal spannender Baum

Minimal spannender Baum Minimal spannender Baum 16 1 2 21 5 11 19 6 6 3 14 33 10 5 4 18 Die Kreise zeigen die vorgesehenen Standorte neu zu errichtender Filialen einer Bank. Entlang der bestehenden Straßen sollen Telefonleitungen

Mehr

G : (V; E) mit E V V G : (V 1, V 2 ; E) mit E V 1 V 2 V 2 V 1 l(w) k i1 l(e i ) dist(u, v) 0 min(l(w) : W ist ein Weg von u nach v falls u v falls ein solcher Weg existiert sonst v 1 V v i V (i

Mehr

Kapitel 9. Komplexität von Algorithmen und Sortieralgorithmen

Kapitel 9. Komplexität von Algorithmen und Sortieralgorithmen Kapitel 9 Komplexität von Algorithmen und Sortieralgorithmen Arrays 1 Ziele Komplexität von Algorithmen bestimmen können (in Bezug auf Laufzeit und auf Speicherplatzbedarf) Sortieralgorithmen kennenlernen:

Mehr

Grundbegriffe der Informatik

Grundbegriffe der Informatik Grundbegriffe der Informatik Kapitel 15: Graphen Thomas Worsch KIT, Institut für Theoretische Informatik Wintersemester 2015/2016 GBI Grundbegriffe der Informatik KIT, Institut für Theoretische Informatik

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

Algorithmische Methoden zur Netzwerkanalyse

Algorithmische Methoden zur Netzwerkanalyse Algorithmische Methoden zur Netzwerkanalyse Juniorprof. Dr. Henning Meyerhenke Institut für Theoretische Informatik 1 KIT Henning Universität desmeyerhenke, Landes Baden-Württemberg Institutund für Theoretische

Mehr

Effiziente Algorithmen I

Effiziente Algorithmen I H 10. Präsenzaufgabenblatt, Wintersemester 2015/16 Übungstunde am 18.01.2015 Aufgabe Q Ein Reiseveranstalter besitzt ein Flugzeug, das maximal p Personen aufnehmen kann. Der Veranstalter bietet einen Flug

Mehr

Grundbegriffe der Informatik

Grundbegriffe der Informatik Grundbegriffe der Informatik Einheit 11: Graphen Thomas Worsch Karlsruher Institut für Technologie, Fakultät für Informatik Wintersemester 2010/2011 1/59 Graphische Darstellung von Zusammenhängen schon

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

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

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

Wiederholung zu Flüssen

Wiederholung zu Flüssen Universität Konstanz Methoden der Netzwerkanalyse Fachbereich Informatik & Informationswissenschaft SS 2008 Prof. Dr. Ulrik Brandes / Melanie Badent Wiederholung zu Flüssen Wir untersuchen Flüsse in Netzwerken:

Mehr

Algorithmen und Datenstrukturen in der Bioinformatik Viertes Übungsblatt WS 05/06 Musterlösung

Algorithmen und Datenstrukturen in der Bioinformatik Viertes Übungsblatt WS 05/06 Musterlösung Konstantin Clemens Johanna Ploog Freie Universität Berlin Institut für Mathematik II Arbeitsgruppe für Mathematik in den Lebenswissenschaften Algorithmen und Datenstrukturen in der Bioinformatik Viertes

Mehr

Graphen. Formale Methoden der Informatik WiSe 2010/2011 teil 2, folie 1 (von 60)

Graphen. Formale Methoden der Informatik WiSe 2010/2011 teil 2, folie 1 (von 60) Graphen Formale Methoden der Informatik WiSe 2010/2011 teil 2, folie 1 (von 60) Teil II: Graphen 1. Einführung 2. Wege und Kreise in Graphen, Bäume 3. Planare Graphen / Traveling Salesman Problem 4. Transportnetzwerke

Mehr

Datenstrukturen. Mariano Zelke. Sommersemester 2012

Datenstrukturen. Mariano Zelke. Sommersemester 2012 Datenstrukturen Mariano Zelke Sommersemester 2012 Prioritätswarteschlangen Mariano Zelke Datenstrukturen 2/28 Der abstrakte Datentyp Prioritätswarteschlange : Füge Elemente (mit Prioritäten) ein und entferne

Mehr

Graphalgorithmen 2. Oleksiy Rybakov. 3. Juni Betreuer: Tobias Werth, Daniel Brinkers

Graphalgorithmen 2. Oleksiy Rybakov. 3. Juni Betreuer: Tobias Werth, Daniel Brinkers Graphalgorithmen 2 Oleksiy Rybakov 3. Juni 2015 Betreuer: Tobias Werth, Daniel Brinkers 1 / 40 Inhaltsverzeichnis 1 Minimale Spannbäume und Datenstrukturen 2 Kürzeste Wege 3 Spezielle Graphen 2 / 40 Minimale

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

Aufgabe 4.2 Sei G = (V, E, l) ein ungerichteter, gewichteter und zusammenhängender Graph.

Aufgabe 4.2 Sei G = (V, E, l) ein ungerichteter, gewichteter und zusammenhängender Graph. Aufgabe 4.2 Sei G = (V, E, l) ein ungerichteter, gewichteter und zusammenhängender Graph. a) Es seien W 1 = (V, E 1 ), W 2 = (V, E 2 ) Untergraphen von G, die beide Wälder sind. Weiter gelte E 1 > E 2.

Mehr

Vorlesung 3 MINIMALE SPANNBÄUME

Vorlesung 3 MINIMALE SPANNBÄUME Vorlesung 3 MINIMALE SPANNBÄUME 72 Aufgabe! Szenario: Sie arbeiten für eine Firma, die ein Neubaugebiet ans Netz (Wasser, Strom oder Kabel oder...) anschließt! Ziel: Alle Haushalte ans Netz bringen, dabei

Mehr

Übersicht Datenstrukturen und Algorithmen. Literatur. Algorithmus: Wikipedia Definition. Vorlesung 1: Einführung. Prof. Dr.

Übersicht Datenstrukturen und Algorithmen. Literatur. Algorithmus: Wikipedia Definition. Vorlesung 1: Einführung. Prof. Dr. Übersicht Datenstrukturen und Vorlesung 1: Prof. Dr. Erika Ábrahám Theorie Hybrider Systeme Informatik 2 http://ths.rwth-aachen.de/teaching/ss-14/ datenstrukturen-und-algorithmen/ Diese Präsentation verwendet

Mehr

Klausur Datenstrukturen und Algorithmen SoSe 2012

Klausur Datenstrukturen und Algorithmen SoSe 2012 Prof. aa Dr. Ir. Joost-Pieter Katoen Christian Dehnert, Jonathan Heinen, Thomas Ströder, Sabrina von Styp Klausur Datenstrukturen und Algorithmen SoSe 2012 Vorname: Nachname: Studiengang (bitte genau einen

Mehr

Universität des Saarlandes

Universität des Saarlandes Universität des Saarlandes FR 6.2 Informatik Prof. Dr. Kurt Mehlhorn WiSe 2015/2016 Übungen zu Ideen der Informatik http://www.mpi-inf.mpg.de/departments/algorithms-complexity/teaching/winter15/ideen/

Mehr

Uberblick 1. Kurzeste Wege 2. Sichtbarkeitsgraphen 3. Berechnung des Sichtbarkeitsgraphen 4. Kurzeste Wege fur polygonale Roboter 1

Uberblick 1. Kurzeste Wege 2. Sichtbarkeitsgraphen 3. Berechnung des Sichtbarkeitsgraphen 4. Kurzeste Wege fur polygonale Roboter 1 Vorlesung Geometrische Algorithmen Sichtbarkeitsgraphen und kurzeste Wege Sven Schuierer Uberblick 1. Kurzeste Wege 2. Sichtbarkeitsgraphen 3. Berechnung des Sichtbarkeitsgraphen 4. Kurzeste Wege fur polygonale

Mehr

Algorithmen und Datenstrukturen Kapitel 10

Algorithmen und Datenstrukturen Kapitel 10 Algorithmen und Datenstrukturen Kapitel 10 Flüsse Frank Heitmann heitmann@informatik.uni-hamburg.de 6. Januar 2016 Frank Heitmann heitmann@informatik.uni-hamburg.de 1/8 Flüsse Graphen Grundlagen Definition

Mehr

10 Graphenalgorithmen in Java

10 Graphenalgorithmen in Java 10.1 Implementierung eines gewichteten Graphen 10.2 Implementierung der Breitensuche 10.3 Implementierung der Tiefensuche 10 147 Teil X Graphalgorithmen in Java Überblick Implementierung eines gewichteten

Mehr

Universität Bremen. Graphenalgorithmen. Thomas Röfer. Begriffe Repräsentationen Kürzeste Wege Minimale spannende Bäume

Universität Bremen. Graphenalgorithmen. Thomas Röfer. Begriffe Repräsentationen Kürzeste Wege Minimale spannende Bäume Graphenalgorithmen Thomas Röfer Begriffe Repräsentationen Kürzeste Wege Minimale spannende Bäume Rückblick Geometrische Algorithmen Scan-Line-Prinzip Graham-Scan Divide and Conquer Voronoi-Diagramm Eigenschaften

Mehr

Kapitel 5: Minimale spannende Bäume Gliederung der Vorlesung

Kapitel 5: Minimale spannende Bäume Gliederung der Vorlesung Gliederung der Vorlesung 1. Grundbegriffe 2. Elementare Graphalgorithmen und Anwendungen 3. Kürzeste Wege. Minimale spannende Bäume. Färbungen und Cliquen. Traveling Salesman Problem. Flüsse in Netzwerken

Mehr

Minimal spannende Bäume

Minimal spannende Bäume http://www.uni-magdeburg.de/harbich/ Minimal spannende Fakultät für Informatik Otto-von-Guericke-Universität 2 Inhalt Definition Wege Untergraphen Kantengewichtete Graphen Minimal spannende Algorithmen

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. Hashing 6. Algorithmische Geometrie 4/6, Folie 1 2014 Prof. Steffen Lange - HDa/FbI

Mehr

6. Übung zur Linearen Optimierung SS08

6. Übung zur Linearen Optimierung SS08 6 Übung zur Linearen Optimierung SS08 1 Sei G = (V, E) ein schlichter ungerichteter Graph mit n Ecken und m Kanten Für eine Ecke v V heißt die Zahl der Kanten (u, v) E Grad der Ecke (a) Ist die Anzahl

Mehr

9. Heuristische Suche

9. Heuristische Suche 9. Heuristische Suche Prof. Dr. Rudolf Kruse University of Magdeburg Faculty of Computer Science Magdeburg, Germany rudolf.kruse@cs.uni-magdeburg.de S Heuristische Suche Idee: Wir nutzen eine (heuristische)

Mehr

Algorithmen und Datenstrukturen

Algorithmen und Datenstrukturen Algorithmen und Datenstrukturen Wintersemester 2013/14 1. Vorlesung Kapitel 1: Sortieren Prof. Dr. Alexander Wolff Lehrstuhl für Informatik I Das Problem Eingabe Gegeben: eine Folge A = a 1, a 2,..., a

Mehr

Diskrete Mathematik. Sebastian Iwanowski FH Wedel. Kap. 6: Graphentheorie

Diskrete Mathematik. Sebastian Iwanowski FH Wedel. Kap. 6: Graphentheorie Referenzen zum Nacharbeiten: Diskrete Mathematik Sebastian Iwanowski FH Wedel Kap. 6: Graphentheorie Lang 6 Beutelspacher 8.1-8.5 Meinel 11 zur Vertiefung: Aigner 6, 7 (7.4: Algorithmus von Dijkstra) Matousek

Mehr

Dynamisches Programmieren - Problemstruktur

Dynamisches Programmieren - Problemstruktur Dynamisches Programmieren - Problemstruktur Optimale Substruktur: Optimale Lösung enthält optimale Lösungen von Teilproblemen. Bsp.: Kürzester Weg im Graphen, LCS (s. etwa Folie 42 der letzten Vorlesung)

Mehr

Datenbankanwendung. Prof. Dr.-Ing. Sebastian Michel TU Kaiserslautern. Wintersemester 2014/15. smichel@cs.uni-kl.de

Datenbankanwendung. Prof. Dr.-Ing. Sebastian Michel TU Kaiserslautern. Wintersemester 2014/15. smichel@cs.uni-kl.de Datenbankanwendung Wintersemester 2014/15 Prof. Dr.-Ing. Sebastian Michel TU Kaiserslautern smichel@cs.uni-kl.de Wiederholung: Anfragegraph Anfragen dieses Typs können als Graph dargestellt werden: 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

Identifizierung negativer Zyklen in gerichteten Graphen

Identifizierung negativer Zyklen in gerichteten Graphen Identifizierung negativer Zyklen in gerichteten Graphen Benjamin Schulz 4. August 2008 Inhaltsverzeichnis 1 Einführung 2 1.1 Gerichtete gewichtete Graphen.............................. 2 1.2 Finden von

Mehr

Informatik 11 Kapitel 2 - Rekursive Datenstrukturen

Informatik 11 Kapitel 2 - Rekursive Datenstrukturen Fachschaft Informatik Informatik 11 Kapitel 2 - Rekursive Datenstrukturen Michael Steinhuber König-Karlmann-Gymnasium Altötting 15. Januar 2016 Folie 1/77 Inhaltsverzeichnis I 1 Datenstruktur Schlange

Mehr

Übung zur Vorlesung Algorithmische Geometrie

Übung zur Vorlesung Algorithmische Geometrie Übung zur Vorlesung Algorithmische Geometrie Dipl.-Math. Bastian Rieck Arbeitsgruppe Computergraphik und Visualisierung Interdisziplinäres Zentrum für Wissenschaftliches Rechnen 8. Mai 2012 B. Rieck (CoVis)

Mehr

EndTermTest PROGALGO WS1516 A

EndTermTest PROGALGO WS1516 A EndTermTest PROGALGO WS1516 A 14.1.2016 Name:................. UID:.................. PC-Nr:................ Beachten Sie: Lesen Sie erst die Angaben aufmerksam, genau und vollständig. Die Verwendung von

Mehr

Minimum Spanning Tree

Minimum Spanning Tree 1.5 1.5 1.0 0.75.0 0.75 Gegeben ein Graph G = (V, E). Die Knotenmenge V repräsentiere eine Menge von Spezies. Jede Kante e = (v,u) ist beschriftet mit der evolutionäre Distanz w(v,u) (Kantengewicht) des

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

Graphen. Leonhard Euler ( )

Graphen. Leonhard Euler ( ) Graphen Leonhard Euler (1707-1783) 2 Graph Ein Graph besteht aus Knoten (nodes, vertices) die durch Kanten (edges) miteinander verbunden sind. 3 Nachbarschaftsbeziehungen Zwei Knoten heissen adjazent (adjacent),

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

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

Geometrie I. Sebastian Redinger Informatik 2 Programmiersysteme Martensstraße Erlangen

Geometrie I. Sebastian Redinger Informatik 2 Programmiersysteme Martensstraße Erlangen Geometrie I Sebastian Redinger 01.07.2015 Informatik 2 Programmiersysteme Martensstraße 3 91058 Erlangen Gliederung Grundlagen CCW Polygone Picks Theorem Konvexe Hülle - Graham Scan - Jarvis March 2 Gliederung

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 June 1, 2015 Ignaz Rutter INSTITUT FÜR THEORETISCHE INFORMATIK PROF. DR. DOROTHEA WAGNER KIT Universität des Landes Baden-Württemberg

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

Algorithmik Funke/Bahrdt/Krumpe/Mendel/Seybold SS Übungsblatt 4

Algorithmik Funke/Bahrdt/Krumpe/Mendel/Seybold SS Übungsblatt 4 Algorithmik Funke/Bahrdt/Krumpe/Mendel/Seybold SS 2015 http://www.fmi.informatik.uni-stuttgart.de/alg Institut für Formale Methoden der Informatik Universität Stuttgart Übungsblatt 4 Punkte: 50 Problem

Mehr

Codes und Informationsgehalt

Codes und Informationsgehalt Aufgaben 2 Codes und Informationsgehalt Auf wie viele Dezimalziffern genau können vorzeichenlose ganze Zahlen in einem binären Code der Länge 32 bit dargestellt werden? 2 Codes und Informationsgehalt Auf

Mehr

Algorithmen und Datenstrukturen Suchbaum

Algorithmen und Datenstrukturen Suchbaum Algorithmen und Datenstrukturen Suchbaum Matthias Teschner Graphische Datenverarbeitung Institut für Informatik Universität Freiburg SS 12 Motivation Datenstruktur zur Repräsentation dynamischer Mengen

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

MB2-ALG, SS15 Seite 1 Hauptklausur, geschrieben am

MB2-ALG, SS15 Seite 1 Hauptklausur, geschrieben am MB-ALG, SS1 Seite 1 Hauptklausur, geschrieben am.07.01 Vorname Nachname Matrikel-Nr Diese Klausur ist mein letzter Prüfungsversuch (bitte ankreuzen): Ja Nein Ihre Lösung für Aufgabe 1 können Sie direkt

Mehr

Freie Universität Berlin. Diskrete Mathematik. Ralf Borndörfer, Stephan Schwartz. Freie Universität. 08. April 2013

Freie Universität Berlin. Diskrete Mathematik. Ralf Borndörfer, Stephan Schwartz. Freie Universität. 08. April 2013 Diskrete Mathematik Ralf Borndörfer, Stephan Schwartz 08. April 2013 FUB VL Diskrete Mathematik SS 2013 1 Leonhard Euler (1707-1783) e i sin cos f(x) FUB VL Diskrete Mathematik SS 2013 2 Das Königsberger

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

Informatik II, SS 2014

Informatik II, SS 2014 Informatik II SS 2014 (Algorithmen & Datenstrukturen) Vorlesung 10 (3.6.2014) Binäre Suchbäume I Algorithmen und Komplexität Zusätzliche Dictionary Operationen Dictionary: Zusätzliche mögliche Operationen:

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

Breiten- und Tiefensuche in Graphen

Breiten- und Tiefensuche in Graphen Breiten- und Tiefensuche in Graphen Inhalt Theorie. Graphen. Die Breitensuche in der Theorie am Beispiel eines ungerichteten Graphen. Die Tiefensuche in der Theorie am Beispiel eines gerichteten Graphen

Mehr

Algorithmen zur Berechnung der Transitiven Hülle einer Datenbankrelation

Algorithmen zur Berechnung der Transitiven Hülle einer Datenbankrelation Algorithmen zur Berechnung der Transitiven Hülle einer Datenbankrelation Daniel Reinhold Shenja Leiser 6. Februar 2006 2/28 Gliederung Einführung Transitive Hülle Definition Iterative Algorithmen 1. Naive

Mehr