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

Save this PDF as:
 WORD  PNG  TXT  JPG

Größe: px
Ab Seite anzeigen:

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

Transkript

1 Universität Konstanz Mathematisch-naturwissenschaftliche Sektion Fachbereich Mathematik und Statistik Wintersemester 2001/02 Mikkel Thorup: Undirected Single-Source Shortest Paths with Positive Integer Weights in Linear Time Seminar: Leiterin: Betreuung: Effiziente Algorithmen Prof. Dr. Dorothea Wagner Frank Schulz Referentin: Annemarie Kastelsky Anschrift: Markgrafenstraße Konstanz Fächer: Französisch, Mathematik Fachsemester: 8

2 1 Einleitung Das Single-Source Shortest Paths Problem (SSSP-Problem) ist eine klassische Problemstellung. Gegeben ist ein Graph mit ganzzahligen positiven Kantengewichten und einem ausgezeichneten Knoten s. Gesucht werden kürzeste Wege von s zu allen anderen Knoten im Graphen. Im Folgenden ist dieser Graph zusätzlich ungerichtet. Diese Problemstellung wurde durch den Algorithmus von Dijkstra (1959) gelöst. Dieser war Grundlage für die weitere Entwicklung von Algorithmen zu diesem Problem. Da einige Elemente dieses Algorithmus auch in den Linearzeitalgorithmus von Thorup eingehen, wird zunächst der Algorithmus von Dijkstra kurz vorgestellt. Anschließend werden zwei Etappen auf dem Weg zu Thorups Linearzeitalgorithmus nachgezeichnet, die die andere Vorgehensweise seines Algorithmus zeigen. Der erste Schritt ist die Entwicklung des Algorithmus A, der das SSSP- Problem löst, wenn sich der Graph so in Teilmengen aufteilen lässt, dass alle Kanten zwischen den Teilmengen mindestens Gewicht 2 α haben. Im zweiten Schritt wird diese Einschränkung durch die Einführung einer Komponentenhierarchie wieder verallgemeinert. Diese führt zu den Algorithmen B und C, in denen minimale Komponenten besucht werden. Schließlich wird kurz aufgezeigt, wie dieser Algorithmus effizienter gestaltet werden kann, so dass man eine lineare Laufzeit erhält. Abschließend werden die Ergebnisse von Thorup vorgestellt. 1

3 2 Grundlagen und der Algorithmus von Dijkstra 2.1 Grundlagen Definitionen Sei G = (V, E), V = n, E = m ein zusammenhängender ungerichteter Graph mit einer Kantengewichtsfunktion l : E N und einem ausgezeichneten Knoten s V. Falls (v, w) E setzt man l(v, w) :=. d(v) ist die Distanz (= kürzester Weg) von s nach v. D(v) ist eine Weglänge von s nach v, also gilt immer D(v) d(v). S Teilmenge, S V, so dass v S : D(v) = d(v) v S : D(v) = min u S {d(u) + l(u, v)} Knoten besuchen Man kann einen Knoten v S nur besuchen, wenn D(v) = d(v) gilt. v wird zur Menge S dazugenommen und für die Nachbarknoten w von v wird D(w) neu bestimmt: Für alle (v, w) E, w S : D(w) = min{d(w), D(v) + l(v, w)} Folgerung Um Knoten besuchen zu können, ist es also nötig zu wissen, für welche v D(v) = d(v) gilt. Lemma 1 Wenn für ein v V \ S D(v) minimal ist, dann gilt D(v) = d(v). Beweis: Sei u der erste Knoten außerhalb von S auf einem kürzesten Weg von s nach v. Dann gilt D(u) = d(u) nach Definition von S. D(v) d(v) d(u) = D(u) D(v), da D(v) nach Voraussetzung minimal ist. Also gilt D(v) = d(v). Lemma 2 min D(V \ S) = min d(v \ S) ist nicht fallend. 2

4 Beweis: Zeigen zunächst die Gleichheit: Falls S = V gilt min D(V \ S) = min d(v \ S) = min =. (min = nach Definition.) Andernfalls existiert ein v V \ S mit d(v) minimal. Sei u der erste Knoten außerhalb von S auf einem kürzesten Weg von s nach v. Dann ist D(u) = d(u) d(v) (Lemma 1). Da für v d(v) minimal ist, gilt d(u) = d(v). Also folgt: min D(V \ S) D(u) = d(u) = d(v) = min d(v \ S). Andererseits ist für alle w V D(w) d(w) und somit min D(V \ S) min d(v \ S). Daraus folgt: min D(V \ S) = min d(v \ S). Zeigen nun: min d(v \ S) ist nicht fallend: d(w) ändert sich nicht für alle w V. S wird größer, also sucht man das minimale d(w) in einer immer kleineren Menge S \ V mit konstanten d- Werten. min d(v \ S) kann also höchstens größer werden. 2.2 Algorithmus von Dijkstra Der Algorithmus von Dijkstra beruht auf Lemma 1 und Lemma 2. Algorithmus von Dijkstra { 0 : v = s D 1 Setze D(v) := { : sonst s : v = s D 2 Setze V or(v) := nil : sonst D 3 S := D 4 Solange V \ S D 4.1 Finde u V \ S mit D(u) minimal D 4.2 Setze S := S {u} D 4.3 Für alle v {w V w V \ S und (u, w) E} führe aus: D Falls D(u) + l(u, v) < D(v) D Setze D(v) := D(u) + l(u, v) D Setze V or(v) := u 3

5 a s 3 12 b c 2 d 1 1 e 15 f Beginn: S = D(s) = 0, für alle v s : D(v) = 1. Durchlauf (Schleife) S = {s} D(b) = 3, D(e) = 1 2. Durchlauf S = {s, e} D(b) = 3, D(f) = Durchlauf S = {s, e, b} D(a) = 8, D(c) = 15, D(f) = Durchlauf S = {s, e, b, a} D(c) = 15, D(d) = 16, D(f) = Durchlauf S = {s, e, b, a, c} D(d) = 16, D(f) = Duchlauf S = {s, e, b, a, c, d} D(f) = Durchlauf S = {s, e, b, a, c, d, f} Wie leicht ersichtlich ist, müssen für diesen Algorithmus die Knoten nach D(v) sortiert werden. Das bedeutet, um den Algorithmus von Dijkstra in Linearzeit implementieren zu können, ist es nötig, in Linearzeit sortieren zu können (Fredman und Tarjan 1987). Andererseits setzt Sortieren in Linearzeit voraus, dass der Algorithmus von Dijkstra in Linearzeit implementiert werden kann (Thorup 1996). Folgerung Da es nicht möglich ist, die Knoten in Linearzeit nach D(v) zu sortieren, ist es also zur Entwicklung eines Linearzeitalgorithmus für das SSSP-Problem nötig, sich von Dijkstras Algorithmus zu lösen und andere Techniken zu verwenden. Wir suchen daher eine andere Bedingung, so dass zwar gilt D(v) = d(v), aber eventuell D(v) min D(V \ S). 4

6 3 Entwicklung des Algorithmus A 3.1 Die andere Bedingung Lemma 3 Sei die Knotenmenge von V in disjunkte Teilmengen V 1,..., V k aufteilbar, so dass alle Kanten zwischen den Teilmengen mindestens Gewicht δ haben. Für ein i und v V i \ S gelte D(v) = min D(V i \ S) min D(V \ S) + δ. Dann gilt D(v) = d(v). a s 3 b 12 c 2 d 1 1 e 15 f V lässt sich in zwei Teilmengen V 1 = {s, a, b, e} und V 2 = {c, d, f} aufteilen. Alle Kanten zwischen den Teilmengen V 1 und V 2 haben ein Gewicht δ = 8. Sei nun S = {s, b, e} wie nach dem zweiten Durchlaufen der Schleife des Algorithmus von Dijkstra. Dann gilt die zweite Bedingung des Lemma 3 für i = 2 und v = c: Für c V 2 \S = {c, d, f} gilt: D(c) = 15 = min D(V 2 \S), da D(f) = D(c) = und 15 min D(V \ S) + 8, denn V \ S = {a, c} mit D(a) = 8 und D(c) = 15. Beweis: Sei u der erste Knoten außerhalb von S auf einem kürzesten Weg von s nach v. Dann ist D(u) = d(u). Falls u V i, folgt wie bei Lemma 1: D(v) d(v) d(u) = D(u) D(v), also D(v) = d(v). Sei u V i. Dann haben alle Kanten zwischen V \ V i ( u) und V i ( w) Gewicht δ. Also folgt: D(v) d(v) d(u) + δ = D(u) + δ. Andererseits gilt: D(u) + δ min D(V \ S) + δ Vor = min D(V i \ S) Vor = D(v). Daraus folgt D(v) = d(v). 5

7 3.2 Technische Voraussetzungen Um dieses Ergebnis in einen Algorithmus umsetzen zu können, müssen zwei technische Voraussetzungen erfüllt werden. Eine Voraussetzung für den Algorithmus A und den späteren Linearzeitalgorithmus ist das RAM-Modell, die andere Vorausetzung die Verwendung von Buckets. RAM-Modell Bei diesem Modell ist der Speicher in adressierbare Wörter der Länge ω eingeteilt. So werden alle Gewichte und Weglängen als Binärzahlen der Länge ω gespeichert. Innerhalb des RAM-Modells wird es manchmal vorgezogen, sich auf so genannte AC 0 -Operationen zu beschränken. Diese beinhalten die Addition, die shift -Operation aber keine Multiplikation. Die shift -Operation Die shift -Operation wird als x i notiert, was für x 2 steht. i x = 6 in Binärzahlen: = 6 2 = = 6 2 = Betrachtet man statt der Dezimalzahlen die Binärzahlen, so sieht man, dass bei einer Zahl x durch die shift -Operation gerade die i letzten Stellen gestrichen werden. Buckets Ein Bucket B ist eine Menge, in die beliebige Elemente in konstanter Zeit eingefügt werden können und aus der ein beliebiges Element in konstanter Zeit wieder entfernt werden kann. Solche Buckets können zum Beispiel als doppeltverkettete Liste implementiert werden. Das RAM-Modell ermöglicht durch die Adressierbarkeit der Wörter die Erstellung eines Arrays mit l Buckets B(1) bis B(l), so dass in konstanter Zeit Elemente in B(i) eingefügt oder aus B(i) entfernt werden können. Mit diesen Voraussetzungen lässt sich nun ein Algorithmus formulieren, der auf Graphen angewandt werden kann, die die Bedingung aus Lemma 3 erfüllen. Dazu wählt man δ := 2 α. Die Indizes der Teilmengen i {1,..., k} werden so in Buckets einsortiert, dass i B(V i \ S) α. 6

8 Anzahl der benötigten Buckets D(v) heißt, es gibt einen Weg von s nach v mit Länge D(v). Es gilt: D(v) e E l(e). Der maximale Index eines nichtleeren Buckets ist begrenzt durch = e E l(e) α. Die benötigten Bucketindizes sind folglich 0, 1,...,,. Insgesamt benötigt man also + 2 Buckets. 3.3 Algorithmus A Algorithmus A löst das SSSP-Problem, wenn V in Teilmengen V 1,..., V k aufgeteilt ist, wobei alle Kanten zwischen den Teilmengen mindestens Gewicht 2 α haben. A 1 S := {s} D(s) := 0 für alle v s : D(v) := l(s, v) A 2 für ix := 0, 1,...,, : B(ix) := A 3 für i := 1,..., k: füge i in B(min D(V i \ S) α) ein A 4 für ix := 0 bis A 4.1 solange B(ix) A nimm i B(ix) A nimm v V i \ S mit D(v) minimal A für alle (v, w) E, w / S A A A sei j so, dass w V j D(w) := min{d(w), D(v) + l(v, w)} falls min D(V j \ S) α verringert wird, verschiebe j nach B(min D(V j \ S) α) S := S {v} falls min D(V i \ S) α vergrößert wird, verschiebe i nach B(min D(V \ S) α) 7

9 a s 3 b 12 c 2 d 1 1 e 15 f α = 3, V 1 = {s, a, b, e}, V 2 = {c, d, f} A 1 S = {s}, D(s) = 0, D(b) = 3, D(e) = 1, für alle anderen v: D(v) = A 2 = 58 3 = 7 A 3 (Der Übersicht halber steht nun V 1 statt i = 1 bzw. V 2 statt i = 2:) V 1 B(0), V 2 B( ) 1. Durchlauf B(0) nimm V 1, nimm e, da D(e) = 1 minimal in V 1 D(f) = 16, also V 2 B(2) S = {s, e} 2. Durchlauf B(0) nimm V 1, nimm b, da D(b) = 3 minimal in V 1 D(c) = 15, also V 2 B(1) D(a) = 8 S = {s, e, b} und V 1 B(1) 3. Durchlauf B(1) nimm V 2, nimm c, da D(c) = 15 minimal in V 2 D(d) = 17 S = {s, e, b, c} und V 2 B(2) 4. Durchlauf B(1) nimm V 1, nimm a, da D(a) = 8 minimal in V 1 D(d) = 16 S = {s, e, b, c, a} und V 1 B( ) 5. Durchlauf B(2) nimm V 2, nimm f, da D(f) = 16 minimal in V 2 S = {s, e, b, c, a, f} 6. Durchlauf B(2) nimm V 2, nimm d, da D(d) = 16 minimal in V 2 S = {s, e, b, c, a, f, d} und V 2 B( ) 8

10 Korrektheit Die Korrektheit des Algorithmus A beruht auf dem Einsortieren der i in entsprechende Buckets und folgt aus Lemma 3. min D(Vi \ S) min D(V \ S) min D(V i \S) min D(V \S)+2 α 2 α 2 α min D(V i \ S) α min D(V \ S) α min D(V i \ S) D(V \ S) + δ Es gilt: min D(V \ S) α = min i (min D(V i \ S) α). Wenn i also im nichtleeren Bucket mit dem kleinsten Index ist, gilt: min D(V i \ S) α = min D(V \ S) α. Sei nun ix der kleinste Index eines nichtleeren Buckets. Falls i B(ix) und für v V i \ S D(v) minimal ist, gilt: D(v) = min D(V i \ S) min D(V \ S) + δ Lemma = 3 D(v) = d(v) Laufzeit Die Laufzeit des Algorithmus A ist in O(m + )+ Kosten für das Behalten von min D(V i \ S) für jedes i. Diese Laufzeit kann verringert werden, indem man min D(V i \ S) rekursiv behält und indem man die Anzahl der Buckets verringert. Für letzteres genügt es, α groß zu wählen. Folgerung Wir suchen nun eine rekursive Bedingung, um D(v) = d(v) schließen zu können. 9

11 4 Entwicklung eines rekursiven Algorithmus 4.1 Komponentenhierarchie Definition G i ist ein Subgraph von G, dessen Kantenmenge die Kanten von G sind mit l(e) 2 i. G 0 besteht aus einzelnen Knoten. ω ist die Wortlänge, das heißt, alle Kantengewichte und Weglängen sind 2 ω, also G ω = G. Auf dem i-ten Level sind die Komponenten von G i. Die Komponente auf dem i-ten Level, die v enthält, wird mit [v] i bezeichnet. Diese Komponentenhierarchie lässt sich auch als Baum darstellen. In dieser Darstellung sind die Blätter die Komponenten, die nur aus einem Knoten bestehen. Die Wurzel ist der Knoten [v] r = G mit minimalem r. a s 3 b 12 c 2 d 1 1 e 15 f [s] 0 [e] 0 Lemma 4 Falls [v] i [w] i dann ist dist(v, w) 2 i. [s] 4 [c] 3 [c] 2 [s] 3 [s] 2 [a] 2 [s] 1 [b] 1 [a] 1 [c] 1 [d] 1 [b] 0 [a] 0 [c] 0 [f] 0 [d] 0 Beweis: Da [v] i [w] i enthält jeder Weg von v nach w eine Kante mit Gewicht 2 i. Definition [w] i 1 mit [w] i = [v] i heißt Kind von [v] i, das heißt w [v] i In der Darstellung als Baum sind Kinder gerade die direkten Nachfolger eines Knotens. Notation [v] i := [v] i \ S, [v] i muss dabei nicht zusammenhängend sein. 10

12 Definition [v] i heißt min-child von [v] i+1, falls min(d([v] i )) i = min(d([v] i+1 )) i Sei S = {s, e, b}: [s] 3 ist min-child von [s] 4 : [c] 3 ist min-child von [s] 4 : D(a) = 8 D(c) = 15 min(d([s] 3 )) 3 = 1 min(d([c] 3 )) 3 = 1 min(d([s] 4 )) 3 = 1 min(d([s] 4 )) 3 = 1 [c] 1 ist min-child von [c] 2 : [d] 1 ist nicht min-child von [c] 2 : D(c) = 15 D(d) = 16 min(d([c] 1 )) 1 = 7 min(d([d 1 )) 1 = 8 min(d([c] 2 )) 1 = 7 min(d([c 2 )) 1 = 7 Definition [v] i heißt minimal, falls [v] i und für m = i,..., r 1 gilt: [v] i ist min-child von [v] i+1. Die Bedingung [v] i ist wichtig für den Fall V = S. Falls V = S, ergibt sich min(d([v] i )) = min = für alle [v] i. Dann sind alle [v] i minimal. Durch die Bedingung [v] i ist im Fall V = S kein [v] i minimal. Sei S = {s, e, b}: a ist minimal und c ist minimal. Lemma 5 Falls v S und [v] i minimal ist, gilt min(d([v] i )) = min(d([v] i )). Insbesondere falls [v] 0 = {v} minimal ist, gilt D(v) = d(v). 4.2 Algorithmus B und Algorithmus C Damit ergibt sich ein rekursives Vorgehen, um eine minimale Komponente zu besuchen: Für Kinder [v] i 1 von [v] i wird überprüft, ob min(d([w] i 1 )) i 1 = min(d([v] i )) i 1 = ix([v] i), wobei ix([v] i ) ein Index ist. Dies geschieht so lange bis ein [v] 0 = {v} gefunden ist, das minimal ist. Dann kann man dieses v besuchen. 11

13 Algorithmus B Eingabe: Graph G = (V, E) mit einer Kantengewichtsfunktion l und einem ausgezeichneten Knoten s. Ausgabe: D mit D(v) = d(v) = dist(s, v) für alle v V. B 1 S := {s} B 2 D(s) := 0 für alle v s: D(v) := l(s, v) B 3 Visit ([s] ω ) B 4 Gib D aus Algorithmus C Der Algorithmus Visit ([v] i ) setzt voraus, dass [v] i minimal ist. Visit ([v] i ) C 1 falls i = 0, besuche v und gehe zurück C 2 falls v noch nie besucht wurde: ix([v] i ) := min D([v] i ) i 1 C 3 wiederhole bis [v] i = oder bis ix([v] i ) i erhöht wird: C 3.1 solange es ein Kind [w] i 1 von [v] i gibt, so dass min D([w] i 1 ) i 1 = ix([v] i) C sei [w] i 1 ein Kind von [v] i mit min D([w] i 1 ) i 1 = ix([v] i) C Visit ([w] i 1 ) C 3.2 erhöhe ix([v] i ) um 1 a s 3 b 12 c 2 d 1 1 e 15 f [s] 0 [e] 0 [s] 4 [c] 3 [c] 2 [s] 3 [s] 2 [a] 2 [s] 1 [b] 1 [a] 1 [c] 1 [d] 1 [b] 0 [a] 0 [c] 0 [f] 0 [d] 0 12

14 S = {s} Visit ([s] 4 ) D(e) = 1 ix([s] 4 ) = 0 D(b) = 3 Kind [s] 3 : min D([s] 3 ) 3 = 0 = ix([s] 4 ) Visit ([s] 3 ) ix([s] 3 ) = 0 Kind[s] 2 : min D([s] 2 ) 2 = 0 = ix([s] 3 ) Visit ([s] 2 ) ix([s] 2 ) = 0 Kind [b] 1 : min D([b] 1 ) 1 = 1 ix([s] 2 ) Kind [s] 1 : min D([s] 1 ) 1 = 0 = ix([s] 2 ) Visit ([s] 1 ) ix([s] 1 ) = 1 Kind [s] 0 : min D([s] 0 ) 0 = ix([s] 1 ) Kind [e] 0 : min D([e] 0 ) 0 = 1 = ix([s] 1 ) Visit ([e] 0 ) S = {s, e} ix([s] 1 ) = 2 D(b) = 3 ix([s] 2 ) = 1 D(f) = 16 Kind [s] 2 : min D([s] 2 ) 2 = 0 = ix([s] 3 ) Visit([s] 2 ) Kind [b] 1 : min D([b] 1 ) 1 = 2 = ix([s] 2 ) Visit([b] 1 ) ix([b] 1 ) = 2 Kind [b] 0 : min D([b] 0 ) 0 = 2 = ix([b] 1 ) Visit ([b] 0 ) S = {s, e, b} ix([b] 1 ) = 3 D(a) = 8 ix([s] 2 ) = 2 D(c) = 15 Kind [a] 2 : min D([a] 2 ) 2 = 1 ix([s] 3 ) ix([s] 3 ) = 1 Kind [c] 3 : min D([c] 3 ) 3 = 1 = ix([s] 3 ) Visit ([c] 3 ). 13

15 5 Ausblick auf die Entwicklung des Linearzeitalgorithmus Um eine lineare Laufzeit zu erhalten ist es nun nötig, die Komponentenhierarchie zu verfeinern. Dies geschieht, indem man einen so genannten Komponentenbaum konstruiert. Dieser entspricht im Wesentlichen der schon vorgestellten Baumdarstellung der Komponentenhierarchie, allerdings fehlen die Knoten [v] i mit [v] i = [v] i+1. Es gibt im Komponentenbaum also keine Knoten mit nur einem Nachfolger, daher ist die Anzahl der Knoten 2n 1. Wenn man von einem solchen Komponentenbaum ausgeht, lässt sich der Algorithmus C so verbessern, dass seine Laufzeit in O(m) ist. Dazu ist es wiederum nötig, den Komponentenbaum in Linearzeit konstruieren zu können. Dies erfolgt über die Konstruktion eines Minimum Spanning Tree (MST), was aber auch in Linearzeit möglich ist (Fredman und Willard 1994). 14

16 6 Ergebnis Satz 1 Für das SSSP-Problem in ungerichteten Graphen mit ganzzahligen positiven Kantengewichten gibt es einen deterministischen Algorithmus mit Laufzeit O(m). Einwände Gegen dieses Ergebnis können zwei Einwände vorgebracht werden. Der Linearzeitalgorithmus verwendet atomic heaps bei der Konstruktion des MST. Zum einen sind atomic heaps nur für definiert und zum anderen benötigt man für atomic heaps Multiplikation, was aber keine AC 0 -Operation ist. Folgerung Dies bedeutet, für die Praxis muss man Lösungen finden, die ohne die Verwendung von atomic heaps auskommen. Dies ist möglich, indem man auf andere Verfahren zur Konstruktion eines MST zurückgreift. Satz 2 Auf einer RAM mit Standard AC 0 -Operationen gibt es einen deterministischen Algorithmus für das SSSP-Problem für ungerichtete Graphen mit ganzzahligen positiven Kantengewichten mit Laufzeit O(α(m, n)m). Endergebnis: Es gibt einen Linearzeitalgorithmus für das SSSP-Problem in ungerichteten Graphen mit ganzzahligen positiven Kantengewichten, aber diese optimale Lösung ist nicht für Implementationen geeigenet. Es gibt jedoch implementierbare Varianten für die praktische Anwendung. Literatur: Mikkel Thorup(1999): Undirected Single-Source Shortest Paths with Positive Integer Weights in Linear Time. Journal of the ACM 46,3. Seite

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

Kürzeste-Wege-Algorithmen und Datenstrukturen

Kürzeste-Wege-Algorithmen und Datenstrukturen Kürzeste-Wege-Algorithmen und Datenstrukturen Institut für Informatik Universität zu Köln SS 2009 Teil 1 Inhaltsverzeichnis 1 Kürzeste Wege 2 1.1 Voraussetzungen................................ 2 1.2

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

Vorlesung Datenstrukturen

Vorlesung Datenstrukturen Vorlesung Datenstrukturen Minimale Spannbäume Maike Buchin 18.7., 20.7.2017 Einführung Motivation: Verbinde Inseln mit Fähren oder Städte mit Schienen und verbrauche dabei möglichst wenig Länge. Problem:

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

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

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

9 Minimum Spanning Trees

9 Minimum Spanning Trees Im Folgenden wollen wir uns genauer mit dem Minimum Spanning Tree -Problem auseinandersetzen. 9.1 MST-Problem Gegeben ein ungerichteter Graph G = (V,E) und eine Gewichtsfunktion w w : E R Man berechne

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

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

Organisatorisches. Programmierpraktikum Das Canadian Traveller Problem. Organisatorisches. Organisatorisches

Organisatorisches. Programmierpraktikum Das Canadian Traveller Problem. Organisatorisches. Organisatorisches Organisatorisches Programmierpraktikum Das Canadian Traveller Problem Rainer Schrader Birgit Engels Anna Schulze Zentrum für Angewandte Informatik Köln. April 006 Prof. Dr. Rainer Schrader Tel.: 470-600

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

Von Aachen nach Halle...

Von Aachen nach Halle... Von Aachen nach Halle... Koeln? Aachen Halle 14. 6. 15. 6. 16. 6. Saarbruecken? Effiziente Algorithmen fr Graphtraversierungen Ulrich Meyer p. 3 Von Aachen nach Halle... Koeln? Aachen Halle 14. 6. 15.

Mehr

Sortierverfahren für Felder (Listen)

Sortierverfahren für Felder (Listen) Sortierverfahren für Felder (Listen) Generell geht es um die Sortierung von Daten nach einem bestimmten Sortierschlüssel. Es ist auch möglich, daß verschiedene Daten denselben Sortierschlüssel haben. Es

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

1 topologisches Sortieren

1 topologisches Sortieren Wolfgang Hönig / Andreas Ecke WS 09/0 topologisches Sortieren. Überblick. Solange noch Knoten vorhanden: a) Suche Knoten v, zu dem keine Kante führt (Falls nicht vorhanden keine topologische Sortierung

Mehr

Datenstrukturen und Algorithmen SS07

Datenstrukturen und Algorithmen SS07 Datenstrukturen und Algorithmen SS0 Datum:.6.200 Michael Belfrage mbe@student.ethz.ch belfrage.net/eth Programm von Heute Minimaler Spannbaum (MST) Challenge der Woche Fibonacci Heap Minimaler Spannbaum

Mehr

Lernmodul 7 Algorithmus von Dijkstra

Lernmodul 7 Algorithmus von Dijkstra Folie 1 von 30 Lernmodul 7 Algorithmus von Dijkstra Quelle: http://www.map24.de Folie 2 von 30 Algorithmus von Dijkstra Übersicht Kürzester Weg von A nach B in einem Graphen Problemstellung: Suche einer

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

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

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

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

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

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

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

Die k kürzesten Wege in gerichteten Graphen

Die k kürzesten Wege in gerichteten Graphen Die k kürzesten Wege in gerichteten Graphen Marc Benkert Wintersemester 001/00 1 Einführung 1.1 Problemstellung In einem gerichteten, gewichteten Graphen G = (V, E) sollen die k kürzesten Wege zu zwei

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

Grundlagen der Informatik. Prof. Dr. Stefan Enderle NTA Isny

Grundlagen der Informatik. Prof. Dr. Stefan Enderle NTA Isny Grundlagen der Informatik Prof. Dr. Stefan Enderle NTA Isny 2 Datenstrukturen 2.1 Einführung Syntax: Definition einer formalen Grammatik, um Regeln einer formalen Sprache (Programmiersprache) festzulegen.

Mehr

Kompakte Graphmodelle handgezeichneter Bilder

Kompakte Graphmodelle handgezeichneter Bilder Kompakte Graphmodelle handgezeichneter Bilder Einbeziehung in Authentizierung und Bilderkennung Inhaltsverzeichnis Seminar Mustererkennung WS 006/07 Autor: Stefan Lohs 1 Einleitung 1 Das graphische Modell.1

Mehr

Scheduling und Lineare ProgrammierungNach J. K. Lenstra, D. B. Shmoys und É.

Scheduling und Lineare ProgrammierungNach J. K. Lenstra, D. B. Shmoys und É. Scheduling und Lineare ProgrammierungNach J. K. Lenstra, D. B. Shmoys und É. Tardos Janick Martinez Esturo jmartine@techfak.uni-bielefeld.de xx.08.2007 Sommerakademie Görlitz Arbeitsgruppe 5 Gliederung

Mehr

Vorlesung. Funktionen/Abbildungen 1

Vorlesung. Funktionen/Abbildungen 1 Vorlesung Funktionen/Abbildungen 1 1 Grundlagen Hinweis: In dieser Vorlesung werden Funktionen und Abbildungen synonym verwendet. In der Schule wird eine Funktion häufig als eindeutige Zuordnung definiert.

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

Aufgaben zur Klausurvorbereitung

Aufgaben zur Klausurvorbereitung Vorlesung Graphen und Optimierung Sommersemester 2013/14 Prof. S. Lange Aufgaben zur Klausurvorbereitung Hier finden Sie eine Reihe von Übungsaufgaben, die wir an den beiden Vorlesungsterminen am 29.01.2014

Mehr

Kompakte Graphmodelle handgezeichneter Bilder. Einbeziehung in Autentizierung und Bilderkennung

Kompakte Graphmodelle handgezeichneter Bilder. Einbeziehung in Autentizierung und Bilderkennung Kompakte Graphmodelle handgezeichneter Bilder Einbeziehung in Autentizierung und Bilderkennung Inhaltsverzeichnis 1 Einleitung Das graphische Model.1 Image Thinning................................. 3.

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

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

2. November Gradfolgen Zusammenhang Kürzeste Wege. H. Meyerhenke: Algorithmische Methoden zur Netzwerkanalyse 37

2. November Gradfolgen Zusammenhang Kürzeste Wege. H. Meyerhenke: Algorithmische Methoden zur Netzwerkanalyse 37 2. November 2011 Gradfolgen Zusammenhang Kürzeste Wege H. Meyerhenke: Algorithmische Methoden zur Netzwerkanalyse 37 Satz von Erdős und Gallai Eine Partition einer natürlichen Zahl ist genau dann die Gradfolge

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

Kürzeste Wege Algorithmen und Datenstrukturen

Kürzeste Wege Algorithmen und Datenstrukturen Kürzeste Wege Algorithmen und Datenstrukturen Institut für Informatik Universität zu Köln SS 2009 Teile 1 und 2 Inhaltsverzeichnis 1 Kürzeste Wege 2 1.1 Voraussetzungen................................

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

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

Kap. 4.2: Binäre Suchbäume

Kap. 4.2: Binäre Suchbäume Kap. 4.2: Binäre Suchbäume Professor Dr. Lehrstuhl für Algorithm Engineering, LS11 Fakultät für Informatik, TU Dortmund 11. VO DAP2 SS 2009 26. Mai 2009 1 Zusätzliche Lernraumbetreuung Morteza Monemizadeh:

Mehr

Eine Baumstruktur sei folgendermaßen definiert. Eine Baumstruktur mit Grundtyp Element ist entweder

Eine Baumstruktur sei folgendermaßen definiert. Eine Baumstruktur mit Grundtyp Element ist entweder Programmieren in PASCAL Bäume 1 1. Baumstrukturen Eine Baumstruktur sei folgendermaßen definiert. Eine Baumstruktur mit Grundtyp Element ist entweder 1. die leere Struktur oder 2. ein Knoten vom Typ Element

Mehr

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

Lange Nacht der Wissenschaft. Ein Klassiker. Die Mathematik der Kürzesten Wege Lange Nacht der Wissenschaft Ein Klassiker Die Mathematik der Kürzesten Wege 09.06.2007 schlechte@zib.de Konrad-Zuse-Zentrum für Informationstechnik Berlin (ZIB) http://www.zib.de/schlechte 2 Überblick

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

DAP2-Klausur 07.08.2004

DAP2-Klausur 07.08.2004 DAP2-Klausur 07.08.2004 Vorname : Familienname: Ich studiere (Bitte markieren): Informatik/Inform. Lehramt/Inf.technik/Physik/ Mathe/Statistik/Sonstiges: Bitte beachten: Auf jedem Blatt Matrikelnummer

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

Periodische Fahrpläne und Kreise in Graphen

Periodische Fahrpläne und Kreise in Graphen Periodische Fahrpläne und Kreise in Graphen Vorlesung Algorithmentechnik WS 2009/10 Dorothea Wagner Karlsruher Institut für Technologie Eisenbahnoptimierungsprozess 1 Anforderungserhebung Netzwerkentwurf

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

Seminarvortag zum Thema Virtual Private Network Design im Rahmen des Seminars Network Design an der Universität Paderborn

Seminarvortag zum Thema Virtual Private Network Design im Rahmen des Seminars Network Design an der Universität Paderborn Seminarvortag zum Thema Virtual Private Network Design im Rahmen des Seminars Network Design an der Universität Paderborn Ein 5.55-Approximationsalgorithmus für das VPND-Problem Lars Schäfers Inhalt Einführung:

Mehr

1. Einfach verkettete Liste unsortiert 2. Einfach verkettete Liste sortiert 3. Doppelt verkettete Liste sortiert

1. Einfach verkettete Liste unsortiert 2. Einfach verkettete Liste sortiert 3. Doppelt verkettete Liste sortiert Inhalt Einführung 1. Arrays 1. Array unsortiert 2. Array sortiert 3. Heap 2. Listen 1. Einfach verkettete Liste unsortiert 2. Einfach verkettete Liste sortiert 3. Doppelt verkettete Liste sortiert 3. Bäume

Mehr

Codierung, Codes (variabler Länge)

Codierung, Codes (variabler Länge) Codierung, Codes (variabler Länge) A = {a, b, c,...} eine endliche Menge von Nachrichten (Quellalphabet) B = {0, 1} das Kanalalphabet Eine (binäre) Codierung ist eine injektive Abbildung Φ : A B +, falls

Mehr

Primzahlen und RSA-Verschlüsselung

Primzahlen und RSA-Verschlüsselung Primzahlen und RSA-Verschlüsselung Michael Fütterer und Jonathan Zachhuber 1 Einiges zu Primzahlen Ein paar Definitionen: Wir bezeichnen mit Z die Menge der positiven und negativen ganzen Zahlen, also

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

Nichtlineare Optimierung ohne Nebenbedingungen

Nichtlineare Optimierung ohne Nebenbedingungen Kapitel 2 Nichtlineare Optimierung ohne Nebenbedingungen In diesem Abschnitt sollen im wesentlichen Verfahren zur Bestimmung des Minimums von nichtglatten Funktionen in einer Variablen im Detail vorgestellt

Mehr

Steinerbäume. Seminarausarbeitung Hochschule Aalen Fakultät für Elektronik und Informatik Studiengang Informatik Schwerpunkt Software Engineering

Steinerbäume. Seminarausarbeitung Hochschule Aalen Fakultät für Elektronik und Informatik Studiengang Informatik Schwerpunkt Software Engineering Steinerbäume Seminarausarbeitung Hochschule Aalen Fakultät für Elektronik und Informatik Studiengang Informatik Schwerpunkt Software Engineering Verfasser Flamur Kastrati Betreuer Prof. Dr. habil. Thomas

Mehr

2. Klausur zur Vorlesung Algorithmentechnik Wintersemester 2006/ April 2007

2. Klausur zur Vorlesung Algorithmentechnik Wintersemester 2006/ April 2007 2. Klausur zur Vorlesung Algorithmentechnik Wintersemester 2006/2007 12. April 2007 Hier Aufkleber mit Name und Matrikelnr. anbringen Vorname: Nachname: Matrikelnummer: Beachten Sie: Bringen Sie den Aufkleber

Mehr

24. Algorithmus der Woche Bin Packing Wie bekomme ich die Klamotten in die Kisten?

24. Algorithmus der Woche Bin Packing Wie bekomme ich die Klamotten in die Kisten? 24. Algorithmus der Woche Wie bekomme ich die Klamotten in die Kisten? Autor Prof. Dr. Friedhelm Meyer auf der Heide, Universität Paderborn Joachim Gehweiler, Universität Paderborn Ich habe diesen Sommer

Mehr

B-Bäume I. Algorithmen und Datenstrukturen 220 DATABASE SYSTEMS GROUP

B-Bäume I. Algorithmen und Datenstrukturen 220 DATABASE SYSTEMS GROUP B-Bäume I Annahme: Sei die Anzahl der Objekte und damit der Datensätze. Das Datenvolumen ist zu groß, um im Hauptspeicher gehalten zu werden, z.b. 10. Datensätze auf externen Speicher auslagern, z.b. Festplatte

Mehr

9.2. DER SATZ ÜBER IMPLIZITE FUNKTIONEN 83

9.2. DER SATZ ÜBER IMPLIZITE FUNKTIONEN 83 9.. DER SATZ ÜBER IMPLIZITE FUNKTIONEN 83 Die Grundfrage bei der Anwendung des Satzes über implizite Funktionen betrifft immer die folgende Situation: Wir haben eine Funktion f : V W und eine Stelle x

Mehr

Bestimmung einer ersten

Bestimmung einer ersten Kapitel 6 Bestimmung einer ersten zulässigen Basislösung Ein Problem, was man für die Durchführung der Simplexmethode lösen muss, ist die Bestimmung einer ersten zulässigen Basislösung. Wie gut das geht,

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

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

2.11 Kontextfreie Grammatiken und Parsebäume

2.11 Kontextfreie Grammatiken und Parsebäume 2.11 Kontextfreie Grammatiken und Parsebäume Beispiel: Beispiel (Teil 3): Beweis für L(G) L: Alle Strings aus L der Länge 0 und 2 sind auch in L(G). Als Induktionsannahme gehen wir davon aus, dass alle

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

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

10. Übungsblatt zu Algorithmen I im SS 2010

10. Ü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 0. Übungsblatt zu Algorithmen I im SS 00 http//algo.iti.kit.edu/algorithmeni.php

Mehr

(a, b)-bäume / 1. Datenmenge ist so groß, dass sie auf der Festplatte abgespeichert werden muss.

(a, b)-bäume / 1. Datenmenge ist so groß, dass sie auf der Festplatte abgespeichert werden muss. (a, b)-bäume / 1. Szenario: Datenmenge ist so groß, dass sie auf der Festplatte abgespeichert werden muss. Konsequenz: Kommunikation zwischen Hauptspeicher und Festplatte - geschieht nicht Byte für Byte,

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

Das EM-Modell. Vorlesung 3: Lubys Algorithmus. Graphenalgorithmen und lineare Algebra Hand in Hand

Das EM-Modell. Vorlesung 3: Lubys Algorithmus. Graphenalgorithmen und lineare Algebra Hand in Hand Vorlesung 3: Lubys Algorithmus Das EM-Modell 85 Nachsatz: Halbringnotation! Auch Bücher enthalten Fehler...! A op 1.op 2 v: Abkürzung für Matrix-Vektor-Multiplikation! Vereinbarung für Reihenfolge: A +.*

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

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

Theoretische Grundlagen der Informatik

Theoretische Grundlagen der Informatik Theoretische Grundlagen der Informatik Vorlesung am 12.01.2012 INSTITUT FÜR THEORETISCHE 0 KIT 12.01.2012 Universität des Dorothea Landes Baden-Württemberg Wagner - Theoretische und Grundlagen der Informatik

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

Kap. 4.4: B-Bäume Kap. 4.5: Dictionaries in der Praxis

Kap. 4.4: B-Bäume Kap. 4.5: Dictionaries in der Praxis Kap. 4.4: B-Bäume Kap. 4.5: Dictionaries in der Praxis Professor Dr. Lehrstuhl für Algorithm Engineering, LS11 Fakultät für Informatik, TU Dortmund 13./14. VO DAP2 SS 2009 2./4. Juni 2009 1 2. Übungstest

Mehr

3. Minimale Spannbäume. Definition 99 T heißt minimaler Spannbaum (MSB, MST) von G, falls T Spannbaum von G ist und gilt:

3. Minimale Spannbäume. Definition 99 T heißt minimaler Spannbaum (MSB, MST) von G, falls T Spannbaum von G ist und gilt: 3. Minimale Spannbäume Sei G = (V, E) ein einfacher ungerichteter Graph, der o.b.d.a. zusammenhängend ist. Sei weiter w : E R eine Gewichtsfunktion auf den Kanten von G. Wir setzen E E: w(e ) = e E w(e),

Mehr

Bin Packing oder Wie bekomme ich die Klamotten in die Kisten?

Bin Packing oder Wie bekomme ich die Klamotten in die Kisten? Bin Packing oder Wie bekomme ich die Klamotten in die Kisten? Ich habe diesen Sommer mein Abi gemacht und möchte zum Herbst mit dem Studium beginnen Informatik natürlich! Da es in meinem kleinen Ort keine

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

Teil III: Routing - Inhalt I. Literatur. Geometric Routing. Voraussetzungen. Unit Disk Graph (UDG) Geometric Routing 29

Teil III: Routing - Inhalt I. Literatur. Geometric Routing. Voraussetzungen. Unit Disk Graph (UDG) Geometric Routing 29 1 29 Teil III: Routing - Inhalt I Literatur Compass & Face Routing Bounded & Adaptive Face Routing Nicht Ω(1) UDG E. Kranakis, H. Singh und Jorge Urrutia: Compass Routing on Geometric Networks. Canadian

Mehr

KONSTRUKTION VON ROT-SCHWARZ-BÄUMEN

KONSTRUKTION VON ROT-SCHWARZ-BÄUMEN KONSTRUKTION VON ROT-SCHWARZ-BÄUMEN RALF HINZE Institut für Informatik III Universität Bonn Email: ralf@informatik.uni-bonn.de Homepage: http://www.informatik.uni-bonn.de/~ralf Februar, 2001 Binäre Suchbäume

Mehr

Codierungstheorie Rudolf Scharlau, SoSe 2006 9

Codierungstheorie Rudolf Scharlau, SoSe 2006 9 Codierungstheorie Rudolf Scharlau, SoSe 2006 9 2 Optimale Codes Optimalität bezieht sich auf eine gegebene Quelle, d.h. eine Wahrscheinlichkeitsverteilung auf den Symbolen s 1,..., s q des Quellalphabets

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

Informatik II: Algorithmen & Datenstrukturen. Blättern Sie nicht um bevor Sie dazu aufgefordert werden!

Informatik II: Algorithmen & Datenstrukturen. Blättern Sie nicht um bevor Sie dazu aufgefordert werden! Albert-Ludwigs-Universität Institut für Informatik Prof. Dr. F. Kuhn Informatik II: Algorithmen & Datenstrukturen Montag, 29. August, 2014, 14:00 17:00 Name:...........................................................

Mehr

Kap. 6.6: Kürzeste Wege

Kap. 6.6: Kürzeste Wege Kap. 6.6: Kürzeste Wege Professor Dr. Lehrstuhl für Algorithm Engineering, LS11 Fakultät für Informatik, TU Dortmund 1./. VO DAP SS 009./9. Juli 009 1 Nachtest für Ausnahmefälle Di 1. Juli 009, 16:00 Uhr,

Mehr

4. Jeder Knoten hat höchstens zwei Kinder, ein linkes und ein rechtes.

4. Jeder Knoten hat höchstens zwei Kinder, ein linkes und ein rechtes. Binäre Bäume Definition: Ein binärer Baum T besteht aus einer Menge von Knoten, die durch eine Vater-Kind-Beziehung wie folgt strukturiert ist: 1. Es gibt genau einen hervorgehobenen Knoten r T, die Wurzel

Mehr

Binäre Bäume Darstellung und Traversierung

Binäre Bäume Darstellung und Traversierung Binäre Bäume Darstellung und Traversierung Name Frank Bollwig Matrikel-Nr. 2770085 E-Mail fb641378@inf.tu-dresden.de Datum 15. November 2001 0. Vorbemerkungen... 3 1. Terminologie binärer Bäume... 4 2.

Mehr

368 4 Algorithmen und Datenstrukturen

368 4 Algorithmen und Datenstrukturen Kap04.fm Seite 368 Dienstag, 7. September 2010 1:51 13 368 4 Algorithmen und Datenstrukturen Java-Klassen Die ist die Klasse Object, ein Pfeil von Klasse A nach Klasse B bedeutet Bextends A, d.h. B ist

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

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

Statistische Untersuchungen zu endlichen Funktionsgraphen

Statistische Untersuchungen zu endlichen Funktionsgraphen C# Projekt 1 Name: Statistische Untersuchungen zu endlichen Funktionsgraphen Aufgabe: Basierend auf dem Abschnitt 2.1.6. Random mappings, Kap.2, S 54-55, in [1] sollen zunächst für eine beliebige Funktion

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

Expander Graphen und Ihre Anwendungen

Expander Graphen und Ihre Anwendungen Expander Graphen und Ihre Anwendungen Alireza Sarveniazi Mathematisches Institut Universität Göttingen 21.04.2006 Alireza Sarveniazi (Universität Göttingen) Expander Graphen und Ihre Anwendungen 21.04.2006

Mehr

Handbuch ECDL 2003 Basic Modul 5: Datenbank Grundlagen von relationalen Datenbanken

Handbuch ECDL 2003 Basic Modul 5: Datenbank Grundlagen von relationalen Datenbanken Handbuch ECDL 2003 Basic Modul 5: Datenbank Grundlagen von relationalen Datenbanken Dateiname: ecdl5_01_00_documentation_standard.doc Speicherdatum: 14.02.2005 ECDL 2003 Basic Modul 5 Datenbank - Grundlagen

Mehr

Technische Informatik - Eine Einführung

Technische Informatik - Eine Einführung Martin-Luther-Universität Halle-Wittenberg Fachbereich Mathematik und Informatik Lehrstuhl für Technische Informatik Prof. P. Molitor Ausgabe: 2005-02-21 Abgabe: 2005-02-21 Technische Informatik - Eine

Mehr

15 Optimales Kodieren

15 Optimales Kodieren 15 Optimales Kodieren Es soll ein optimaler Kodierer C(T ) entworfen werden, welcher eine Information (z.b. Text T ) mit möglichst geringer Bitanzahl eindeutig überträgt. Die Anforderungen an den optimalen

Mehr

Algorithmen und Datenstrukturen

Algorithmen und Datenstrukturen Algorithmen und Datenstrukturen Prof. Martin Lercher Institut für Informatik Heinrich-Heine-Universität Düsseldorf Teil 10 Suche in Graphen Version vom 13. Dezember 2016 1 / 2 Vorlesung 2016 / 2017 2 /

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

8.4 Digraphen mit negativen Kantengewichten Grundsätzliches Betrachte Startknoten s und einen Kreis C mit Gesamtlänge < 0.

8.4 Digraphen mit negativen Kantengewichten Grundsätzliches Betrachte Startknoten s und einen Kreis C mit Gesamtlänge < 0. 8.4 Digraphen mit negativen Kantengewichten 8.4.1 Grundsätzliches Betrachte Startknoten s und einen Kreis C mit Gesamtlänge < 0. k 4 5 1 s 1 3 2 C k 0 k 3 1 1 1 k 1 k 2 v Sollte ein Pfad von s nach C und

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