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

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

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

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

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

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

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

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

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

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

ADS: Algorithmen und Datenstrukturen 2

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

Mehr

Vorlesung 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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Zeichnen von Graphen. graph drawing

Zeichnen von Graphen. graph drawing Zeichnen von Graphen graph drawing WS 2006 / 2007 Gruppe: D_rot_Ala0607 Christian Becker 11042315 Eugen Plischke 11042351 Vadim Filippov 11042026 Gegeben sei ein Graph G = (V; E) Problemstellung V E =

Mehr

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

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

Mehr

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

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

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

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

Lineare Programmierung. Beispiel: Wahlkampf. Beispiel: Wahlkampf. Mathematische Schreibweise. Lineares Programm. Datenstrukturen & Algorithmen

Lineare Programmierung. Beispiel: Wahlkampf. Beispiel: Wahlkampf. Mathematische Schreibweise. Lineares Programm. Datenstrukturen & Algorithmen Datenstrukturen & Algorithmen Einführung Standard- und Schlupfformen Simplex Algorithmus Matthias Zwicker Universität Bern Frühling 2009 2 Beispiel: Wahlkampf Ziel: mit möglichst wenig Werbung eine gewisse

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

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

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

Kapitel 6: Graphalgorithmen Gliederung

Kapitel 6: Graphalgorithmen Gliederung Gliederung 1. Grundlagen 2. Zahlentheoretische Algorithmen 3. Sortierverfahren 4. Ausgewählte Datenstrukturen 5. Dynamisches Programmieren 6. Graphalgorithmen 7. String-Matching 8. Kombinatorische Algorithmen

Mehr

HOCHSCHULE KONSTANZ TECHNIK, WIRTSCHAFT UND GESTALTUNG. Das Luzifer-Rätsel. Prof. Dr. Hartmut Plesske Wintersemester 2008/09. von.

HOCHSCHULE KONSTANZ TECHNIK, WIRTSCHAFT UND GESTALTUNG. Das Luzifer-Rätsel. Prof. Dr. Hartmut Plesske Wintersemester 2008/09. von. HOCHSCHULE KONSTANZ TECHNIK, WIRTSCHAFT UND GESTALTUNG Fakultät Informatik Das Luzifer-Rätsel Prof. Dr. Hartmut Plesske Wintersemester 2008/09 von Max Nagl nagl@fh-konstanz.de Inhaltsverzeichnis Inhaltsverzeichnis

Mehr

Algorithmen und Datenstrukturen (WS 2007/08) 63

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

Mehr

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

Kostenmaße. F3 03/04 p.188/395

Kostenmaße. F3 03/04 p.188/395 Kostenmaße Bei der TM nur ein Kostenmaß: Ein Schritt (Konfigurationsübergang) kostet eine Zeiteinheit; eine Bandzelle kostet eine Platzeinheit. Bei der RAM zwei Kostenmaße: uniformes Kostenmaß: (wie oben);

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

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

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

13. Binäre Suchbäume

13. Binäre Suchbäume 1. Binäre Suchbäume Binäre Suchbäume realiesieren Wörterbücher. Sie unterstützen die Operationen 1. Einfügen (Insert) 2. Entfernen (Delete). Suchen (Search) 4. Maximum/Minimum-Suche 5. Vorgänger (Predecessor),

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

Datenstrukturen und Algorithmen SS07

Datenstrukturen und Algorithmen SS07 Datenstrukturen und Algorithmen SS07 Datum: 27.6.2007 Michael Belfrage mbe@student.ethz.ch belfrage.net/eth Programm von Heute Online Algorithmen Update von Listen Move to Front (MTF) Transpose Approximationen

Mehr

Algorithmische Methoden der Netzwerkanalyse

Algorithmische Methoden der Netzwerkanalyse Algorithmische Methoden der Netzwerkanalyse Marco Gaertler 9. Dezember, 2008 1/ 15 Abstandszentralitäten 2/ 15 Distanzsummen auf Bäumen Lemma Sei T = (V, E) ein ungerichteter Baum und T s = (V S, E s )

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

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

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

Idee: Wenn wir beim Kopfknoten zwei Referenzen verfolgen können, sind die Teillisten kürzer. kopf Eine Datenstruktur mit Schlüsselwerten 1 bis 10

Idee: Wenn wir beim Kopfknoten zwei Referenzen verfolgen können, sind die Teillisten kürzer. kopf Eine Datenstruktur mit Schlüsselwerten 1 bis 10 Binäre Bäume Bäume gehören zu den wichtigsten Datenstrukturen in der Informatik. Sie repräsentieren z.b. die Struktur eines arithmetischen Terms oder die Struktur eines Buchs. Bäume beschreiben Organisationshierarchien

Mehr

DATENSTRUKTUREN UND ZAHLENSYSTEME

DATENSTRUKTUREN UND ZAHLENSYSTEME DATENSTRUKTUREN UND ZAHLENSYSTEME RALF HINZE Institute of Information and Computing Sciences Utrecht University Email: ralf@cs.uu.nl Homepage: http://www.cs.uu.nl/~ralf/ March, 2001 (Die Folien finden

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

Praktikum Planare Graphen

Praktikum Planare Graphen 1 Praktikum Planare Graphen Michael Baur, Martin Holzer, Steffen Mecke 10. November 2006 Einleitung Gliederung 2 Grundlagenwissen zu planaren Graphen Themenvorstellung Gruppeneinteilung Planare Graphen

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

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

Der linke Teilbaum von v enthält nur Schlüssel < key(v) und der rechte Teilbaum enthält nur Schlüssel > key(v)

Der linke Teilbaum von v enthält nur Schlüssel < key(v) und der rechte Teilbaum enthält nur Schlüssel > key(v) Ein Baum T mit Knotengraden 2, dessen Knoten Schlüssel aus einer total geordneten Menge speichern, ist ein binärer Suchbaum (BST), wenn für jeden inneren Knoten v von T die Suchbaumeigenschaft gilt: Der

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

OPERATIONS-RESEARCH (OR)

OPERATIONS-RESEARCH (OR) OPERATIONS-RESEARCH (OR) Man versteht darunter die Anwendung mathematischer Methoden und Modelle zur Vorbereitung optimaler Entscheidungen bei einem Unternehmen. Andere deutsche und englische Bezeichnungen:

Mehr

Gliederung. Definition Wichtige Aussagen und Sätze Algorithmen zum Finden von Starken Zusammenhangskomponenten

Gliederung. Definition Wichtige Aussagen und Sätze Algorithmen zum Finden von Starken Zusammenhangskomponenten Gliederung Zusammenhang von Graphen Stark Zusammenhängend K-fach Zusammenhängend Brücken Definition Algorithmus zum Finden von Brücken Anwendung Zusammenhangskomponente Definition Wichtige Aussagen und

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

Wiederholung ADT Menge Ziel: Verwaltung (Finden, Einfügen, Entfernen) einer Menge von Elementen

Wiederholung ADT Menge Ziel: Verwaltung (Finden, Einfügen, Entfernen) einer Menge von Elementen Was bisher geschah abstrakter Datentyp : Signatur Σ und Axiome Φ z.b. ADT Menge zur Verwaltung (Finden, Einfügen, Entfernen) mehrerer Elemente desselben Typs Spezifikation einer Schnittstelle Konkreter

Mehr

Algorithmen und Datenstrukturen Balancierte Suchbäume

Algorithmen und Datenstrukturen Balancierte Suchbäume Algorithmen und Datenstrukturen Balancierte Suchbäume Matthias Teschner Graphische Datenverarbeitung Institut für Informatik Universität Freiburg SS 12 Überblick Einführung Einfügen und Löschen Einfügen

Mehr

Approximationsalgorithmen: Klassiker I. Kombinatorische Optimierung Absolute Gütegarantie Graph-Coloring Clique Relative Gütegarantie Scheduling

Approximationsalgorithmen: Klassiker I. Kombinatorische Optimierung Absolute Gütegarantie Graph-Coloring Clique Relative Gütegarantie Scheduling Approximationsalgorithmen: Klassiker I Kombinatorische Optimierung Absolute Gütegarantie Graph-Coloring Clique Relative Gütegarantie Scheduling VO Approximationsalgorithmen WiSe 2011/12 Markus Chimani

Mehr

Informatik II Bäume. Beispiele. G. Zachmann Clausthal University, Germany zach@in.tu-clausthal.de. Stammbaum. Stammbaum. Stammbaum

Informatik II Bäume. Beispiele. G. Zachmann Clausthal University, Germany zach@in.tu-clausthal.de. Stammbaum. Stammbaum. Stammbaum lausthal Beispiele Stammbaum Informatik II. Zachmann lausthal University, ermany zach@in.tu-clausthal.de. Zachmann Informatik - SS 06 Stammbaum Stammbaum / Parse tree, Rekursionsbaum Parse tree, Rekursionsbaum

Mehr

Algorithmen für Routenplanung 11. Vorlesung, Sommersemester 2012 Daniel Delling 6. Juni 2012

Algorithmen für Routenplanung 11. Vorlesung, Sommersemester 2012 Daniel Delling 6. Juni 2012 Algorithmen für Routenplanung 11. Vorlesung, Sommersemester 2012 Daniel Delling 6. Juni 2012 MICROSOFT RESEARCH SILICON VALLEY KIT Universität des Landes Baden-Württemberg und nationales Großforschungszentrum

Mehr

w a is die Anzahl der Vorkommen von a in w Beispiel: abba a = 2

w a is die Anzahl der Vorkommen von a in w Beispiel: abba a = 2 1 2 Notation für Wörter Grundlagen der Theoretischen Informatik Till Mossakowski Fakultät für Informatik Otto-von-Guericke Universität Magdeburg w a is die Anzahl der Vorkommen von a in w Beispiel: abba

Mehr

Lernziele: Ausgleichstechniken für binäre Bäume verstehen und einsetzen können.

Lernziele: Ausgleichstechniken für binäre Bäume verstehen und einsetzen können. 6. Bäume Lernziele 6. Bäume Lernziele: Definition und Eigenschaften binärer Bäume kennen, Traversierungsalgorithmen für binäre Bäume implementieren können, die Bedeutung von Suchbäumen für die effiziente

Mehr

Informatik II Greedy-Algorithmen

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

Mehr

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

Einführung in die Informatik 1

Einführung in die Informatik 1 Einführung in die Informatik 1 Datenorganisation und Datenstrukturen Sven Kosub AG Algorithmik/Theorie komplexer Systeme Universität Konstanz E 202 Sven.Kosub@uni-konstanz.de Sprechstunde: Freitag, 12:30-14:00

Mehr

Rechnerische Komplexität

Rechnerische Komplexität Proseminar Effiziente Algorithmen SS 2002 Rechnerische Komplexität Ulrike Krönert (34180) 0. Inhalt 1. Einführung 2. Algorithmen und Komplexität 2.1. Algorithmen 2.2. Laufzeitabschätzung 2.3. Polynomialzeit

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

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 1 Programm des

Mehr

Property Testing in Graphen mit beschränktem Maximalgrad

Property Testing in Graphen mit beschränktem Maximalgrad Property Testing in Graphen mit beschränktem Maximalgrad Björn Schümann Seminar Graphentheorie und Kombinatorik WS 2007-08 Inhaltsverzeichnis 1 Einleitung 2 2 Allgemeine Aussagen zum Property Testing 3

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

Highway Hierarchies. Kristian Dannowski, Matthias Hoeschel

Highway Hierarchies. Kristian Dannowski, Matthias Hoeschel Highway Hierarchies Kristian Dannowski, Matthias Hoeschel Gliederung Einleitung / Bidirektional Dijkstra Intuition / Naive Strategie Konstruktion der Highway Hierarchie Suche in der Highway Hierarchie

Mehr

Datenstruktur, die viele Operationen dynamischer Mengen unterstützt

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

Mehr

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

Information Systems Engineering Seminar

Information Systems Engineering Seminar Information Systems Engineering Seminar Algorithmische Prüfung der Planarität eines Graphen Marcel Stüttgen, 22.10.2012 FH AACHEN UNIVERSITY OF APPLIED SCIENCES 1 Planarität - Definition Ein Graph heißt

Mehr

Programmiertechnik II

Programmiertechnik II Bäume Symboltabellen Suche nach Werten (items), die unter einem Schlüssel (key) gefunden werden können Bankkonten: Schlüssel ist Kontonummer Flugreservierung: Schlüssel ist Flugnummer, Reservierungsnummer,...

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

Kodierungsalgorithmen

Kodierungsalgorithmen Kodierungsalgorithmen Komprimierung Verschlüsselung Komprimierung Zielsetzung: Reduktion der Speicherkapazität Schnellere Übertragung Prinzipien: Wiederholungen in den Eingabedaten kompakter speichern

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

Wasserfall-Ansätze zur Bildsegmentierung

Wasserfall-Ansätze zur Bildsegmentierung Wasserfall-Ansätze zur Bildsegmentierung von Philipp Jester Seminar: Bildsegmentierung und Computer Vision 16.01.2006 Überblick 1. Problemstellung 2. Wiederholung: Wasserscheiden-Ansätze 3. Der Wasserfall-Ansatz

Mehr

Entscheidungsprobleme. Berechenbarkeit und Komplexität Entscheidbarkeit und Unentscheidbarkeit. Die Entscheidbarkeit von Problemen

Entscheidungsprobleme. Berechenbarkeit und Komplexität Entscheidbarkeit und Unentscheidbarkeit. Die Entscheidbarkeit von Problemen Berechenbarkeit und Komlexität Entscheidbarkeit und Unentscheidbarkeit Wolfgang Schreiner Wolfgang.Schreiner@risc.uni-linz.ac.at Research Institute for Symbolic Comutation (RISC) Johannes Keler University,

Mehr

Erzeugung zufälliger Graphen und Bayes-Netze

Erzeugung zufälliger Graphen und Bayes-Netze Erzeugung zufälliger Graphen und Bayes-Netze Proseminar Algorithmen auf Graphen Georg Lukas, IF2000 2002-07-09 E-Mail: georg@op-co.de Folien: http://op-co.de/bayes/ Gliederung 1. Einleitung 2. einfache

Mehr

Leitprogramm Bubblesort

Leitprogramm Bubblesort Leitprogramm Bubblesort Dr. Rainer Hauser Inhalt 1 Übersicht...1 2 Input-Block I: Der Sortieralgorithmus Bubblesort...2 3 Input-Block II: Die Effizienz von Bubblesort...6 4 Zusammenfassung...8 5 Lernkontrolle...9

Mehr

Einführung in die Informatik

Einführung in die Informatik Einführung in die Informatik Jochen Hoenicke Software Engineering Albert-Ludwigs-University Freiburg Sommersemester 2014 Jochen Hoenicke (Software Engineering) Einführung in die Informatik Sommersemester

Mehr