16. All Pairs Shortest Path (ASPS)

Größe: px
Ab Seite anzeigen:

Download "16. All Pairs Shortest Path (ASPS)"

Transkript

1 . 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 f a b c -3 0 d a b - d 8 c e 7 - f e f 0. All Pairs Shortest Path

2 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 f a b c -3 0 d a b - d 8 c e 7 - f e f 0. All Pairs Shortest Path

3 Eingabe APSP: Matrix W=(w ), die Graph repräsentiert ij w = ij All Pairs Shortest Path 0, wenn i=j Gewicht der ger. Kante (i,j), wenn i j und (i,j) E, wenn i j und (i,j) E a b c d e f a 0 b 0 b c 0 7 d - 0 e f 0 a - d 8 c e 7 - f. All Pairs Shortest Path 3

4 Eingabe APSP: Matrix W=(w ), die Graph repräsentiert ij w = ij All Pairs Shortest Path 0, wenn i=j Gewicht der ger. Kante (i,j), wenn i j und (i,j) E, wenn i j und (i,j) E a b c d e f a 0 b 0 b c 0 7 d - 0 e f 0 a - d 8 c e 7 - f. All Pairs Shortest Path

5 Eingabe APSP: Matrix W=(w ), die Graph repräsentiert ij w = ij All Pairs Shortest Path Annahme: Keine negativen Zyklen! 0, wenn i=j Gewicht der ger. Kante (i,j), wenn i j und (i,j) E, wenn i j und (i,j) E a b c d e f a 0 b 0 b c 0 7 d - 0 e f 0 a - d 8 c e 7 - f. All Pairs Shortest Path

6 Nummeriere Knoten von bis n= V Betrachte kürzeste i-j-wege, die nur über Knoten bis k laufen k= All Pairs Shortest Path

7 Nummeriere Knoten von bis n= V Betrachte kürzeste i-j-wege, die nur über Knoten bis k laufen k= All Pairs Shortest Path 7

8 Zur Erinnerung: All Pairs Shortest Path Sei G ein Graph ohne negative Zyklen und sei j von i aus erreichbar. Dann gibt es einen kürzesten i-j-weg, der keinen Knoten doppelt benutzt. Wir können also annehmen, dass jeder Knoten in jedem Weg maximal einmal vorkommt Betrachte i-j-weg, der nur über Knoten aus {,,k} läuft: k i j. All Pairs Shortest Path 8

9 Zur Erinnerung: All Pairs Shortest Path Sei G ein Graph ohne negative Zyklen und sei j von i aus erreichbar. Dann gibt es einen kürzesten i-j-weg, der keinen Knoten doppelt benutzt. Wir können also annehmen, dass jeder Knoten in jedem Weg maximal einmal vorkommt Betrachte i-j-weg, der nur über Knoten aus {,,k} läuft: k Knoten k tritt maximal einmal auf i j. All Pairs Shortest Path 9

10 Zur Erinnerung: All Pairs Shortest Path Sei G ein Graph ohne negative Zyklen und sei j von i aus erreichbar. Dann gibt es einen kürzesten i-j-weg, der keinen Knoten doppelt benutzt. Wir können also annehmen, dass jeder Knoten in jedem Weg maximal einmal vorkommt Betrachte i-j-weg, der nur über Knoten aus {,,k} läuft: Weg von u nach k führt nur über Knoten aus {,,k-} k i j. All Pairs Shortest Path 0

11 Zur Erinnerung: All Pairs Shortest Path Sei G ein Graph ohne negative Zyklen und sei j von i aus erreichbar. Dann gibt es einen kürzesten i-j-weg, der keinen Knoten doppelt benutzt. Wir können also annehmen, dass jeder Knoten in jedem Weg maximal einmal vorkommt Betrachte i-j-weg, der nur über Knoten aus {,,k} läuft: Weg von k nach v führt nur über Knoten aus {,,k-} k i j. All Pairs Shortest Path

12 Kürzester i-j-weg über Knoten aus {,,k} ist (a) kürzester i-j-weg über Knoten aus {,,k-} oder (b) kürzester i-k-weg über Knoten aus {,,k-} gefolgt von kürzestem k-j-weg über Knoten aus {,,k-} Fall (b): k i j. All Pairs Shortest Path

13 (k) Sei d ij die Länge eines kürzesten i-j-wegs mit Knoten aus {,,k} (k) d = ij w ij, falls k=0 (k-) (k-) (k-) min ( d, d + d ), falls k ij ik kj (n) (n) ij Matrix D =(d ) enthält die gesuchte Lösung. All Pairs Shortest Path 3

14 Floyd-Warshall(W,n) (0). D W. for k to n do 3. for i to n do. for j to n do. d min(d ij, d ik + d kj ). return D ij (n) (k) (k-) (k-) (k-). All Pairs Shortest Path

15 D (0) 0 D () 3 3. All Pairs Shortest Path

16 D (0) 0 D () All Pairs Shortest Path

17 D (0) 0 D () All Pairs Shortest Path 7

18 D (0) 0 D () All Pairs Shortest Path 8

19 D (0) 0 D () All Pairs Shortest Path 9

20 D (0) 0 D () All Pairs Shortest Path 0

21 D (0) 0 D () All Pairs Shortest Path

22 D () 0 D () All Pairs Shortest Path

23 D () 0 D () All Pairs Shortest Path 3

24 D () 0 D () All Pairs Shortest Path

25 D () 0 D () All Pairs Shortest Path

26 D () 0 D () All Pairs Shortest Path

27 D () 0 D () All Pairs Shortest Path 7

28 D () 0 D () All Pairs Shortest Path 8

29 D () 0 D (3) All Pairs Shortest Path 9

30 D () 0 D (3) All Pairs Shortest Path 30

31 D () 0 D (3) All Pairs Shortest Path 3

32 D () 0 D (3) All Pairs Shortest Path 3

33 D () 0 D (3) All Pairs Shortest Path 33

34 D () 0 D (3) All Pairs Shortest Path 3

35 D (3) 0 D () All Pairs Shortest Path 3

36 D (3) 0 D () All Pairs Shortest Path 3

37 D (3) 0 D () All Pairs Shortest Path 37

38 D (3) 0 D () All Pairs Shortest Path 38

39 D (3) 0 D () All Pairs Shortest Path 39

40 D (3) 0 D () All Pairs Shortest Path 0

41 D () 0 D () All Pairs Shortest Path

42 D () 0 D () All Pairs Shortest Path

43 D () 0 D () All Pairs Shortest Path 3

44 D () 0 D () All Pairs Shortest Path

45 D () 0 D () All Pairs Shortest Path

46 D () 0 D () All Pairs Shortest Path

47 D () 0 D () All Pairs Shortest Path 7

48 D () 0 D () All Pairs Shortest Path 8

49 Satz.: Sei G=(V,E) ein Graph mit nicht-negativen Zyklen. Dann berechnet der Algorithmus von Floyd-Warshall die Entfernung zwischen jedem Knotenpaar in O( V ³) Zeit.. All Pairs Shortest Path 9

50 Aufrechterhalten der kürzesten Wege: Konstruiere Vorgängermatrix Π Dazu konstruiere Sequenz Π,, Π mit Π = Π (k) Π ist Vorgängermatrix zu D (k) π ij ist Vorgänger von Knoten j auf dem kürzesten Weg von Knoten i über Knoten aus {,,k} Die Startmatrix: () (n) (n) (k) (0) π ij = nil, falls i=j oder w ij = i, falls i j und w < ij. All Pairs Shortest Path 0

51 Aufrechterhalten der kürzesten Wege: Konstruiere Vorgängermatrix Π Dazu konstruiere Sequenz Π,, Π mit Π = Π (k) Π ist Vorgängermatrix zu D (k) π ij ist Vorgänger von Knoten j auf dem kürzesten Weg von Knoten i über Knoten aus {,,k} Das Aktualisieren: (k) π ij = π π (k-) ij (k-) kj (k-) () (n) (n) (k), falls d d + d ij, falls d > d + d ij (k-) (k-) ik (k-) ik (k-) kj (k-) kj. All Pairs Shortest Path

52 Teile & Herrsche: Divide & Conquer Problem in Teilprobleme aufteilen Teilprobleme rekursiv lösen Lösung aus Teillösungen zusammensetzen Probleme: Wie setzt man zusammen? [erfordert algorithmisches Geschick und Übung] Laufzeitanalyse (Auflösen der Rekursion) [ist normalerweise nach Standardschema; erfordert ebenfalls Übung] 7. Divide & Conquer

53 Divide & Conquer Teile & Herrsche: Problem in Teilprobleme aufteilen Teilprobleme rekursiv lösen Lösung aus Teillösungen zusammensetzen Algorithmen: Merge Sort Quick Sort 7. Divide & Conquer 3

54 Matrix Multiplikation = 7. Divide & Conquer

55 Matrix Multiplikation = Zeile Spalte: = 9 7. Divide & Conquer

56 Matrix Multiplikation = Zeile Spalte: = 9 7. Divide & Conquer

57 Matrix Multiplikation = Zeile Spalte: = 0 7. Divide & Conquer 7

58 Matrix Multiplikation = 7. Divide & Conquer 8

59 Matrix Multiplikation = 7. Divide & Conquer 9

60 Matrix Multiplikation = 7. Divide & Conquer 0

61 Matrix Multiplikation = 7. Divide & Conquer

62 Matrix Multiplikation = 7. Divide & Conquer

63 Matrix Multiplikation Problem: Berechne das Produkt zweier n n Matrizen Eingabe: Matrizen X,Y Ausgabe: Matrix Z = X Y X x, x, x,3 x, x, x, x,3 x, = x3, x3, x3,3 x3, x, x, x,3 x,, Y y y = y y,, 3, y y y y,, 3, y y y y,3,3 3,3 y y y y,, 3,,,,3, 7. Divide & Conquer 3

64 Matrix Multiplikation MatrixMultiplikation(Array X, Y, n). new array Z[,..,n][,..,n]. for i to n do 3. for j to n do. Z[i][j] 0. for k to n do. Z[i][j] Z[i][j] + X[i][k] Y[k][j] 7. return Z 7. Divide & Conquer

65 Matrix Multiplikation MatrixMultiplikation(Array X, Y, n). new array Z[,..,n][,..,n]. for i to n do 3. for j to n do. Z[i][j] 0. for k to n do. Z[i][j] Z[i][j] + X[i][k] Y[k][j] 7. return Z 7. Divide & Conquer

66 Matrix Multiplikation MatrixMultiplikation(Array X, Y, n). new array Z[,..,n][,..,n]. for i to n do 3. for j to n do. Z[i][j] 0. for k to n do. Z[i][j] Z[i][j] + X[i][k] Y[k][j] 7. return Z 7. Divide & Conquer

67 Matrix Multiplikation MatrixMultiplikation(Array X, Y, n). new array Z[,..,n][,..,n]. for i to n do 3. for j to n do. Z[i][j] 0. for k to n do. Z[i][j] Z[i][j] + X[i][k] Y[k][j] 7. return Z 7. Divide & Conquer 7

68 Matrix Multiplikation MatrixMultiplikation(Array X, Y, n). new array Z[,..,n][,..,n]. for i to n do 3. for j to n do. Z[i][j] 0. for k to n do. Z[i][j] Z[i][j] + X[i][k] Y[k][j] 7. return Z 7. Divide & Conquer 8

69 Matrix Multiplikation MatrixMultiplikation(Array X, Y, n). new array Z[,..,n][,..,n]. for i to n do 3. for j to n do. Z[i][j] 0. for k to n do. Z[i][j] Z[i][j] + X[i][k] Y[k][j] 7. return Z 7. Divide & Conquer 9

70 Matrix Multiplikation MatrixMultiplikation(Array X, Y, n). new array Z[,..,n][,..,n]. for i to n do 3. for j to n do. Z[i][j] 0. for k to n do. Z[i][j] Z[i][j] + X[i][k] Y[k][j] 7. return Z 7. Divide & Conquer 70

71 Matrix Multiplikation MatrixMultiplikation(Array X, Y, n). new array Z[,..,n][,..,n]. for i to n do 3. for j to n do. Z[i][j] 0. for k to n do. Z[i][j] Z[i][j] + X[i][k] Y[k][j] 7. return Z 7. Divide & Conquer 7

72 Matrix Multiplikation MatrixMultiplikation(Array X, Y, n) Laufzeit:. new array Z[,..,n][,..,n] Θ(n²). for i to n do 3. for j to n do. Z[i][j] 0. for k to n do. Z[i][j] Z[i][j] + X[i][k] Y[k][j] 7. return Z 7. Divide & Conquer 7

73 Matrix Multiplikation MatrixMultiplikation(Array X, Y, n) Laufzeit:. new array Z[,..,n][,..,n] Θ(n²). for i to n do Θ(n) 3. for j to n do. Z[i][j] 0. for k to n do. Z[i][j] Z[i][j] + X[i][k] Y[k][j] 7. return Z 7. Divide & Conquer 73

74 Matrix Multiplikation MatrixMultiplikation(Array X, Y, n) Laufzeit:. new array Z[,..,n][,..,n] Θ(n²). for i to n do Θ(n) 3. for j to n do Θ(n²). Z[i][j] 0. for k to n do. Z[i][j] Z[i][j] + X[i][k] Y[k][j] 7. return Z 7. Divide & Conquer 7

75 Matrix Multiplikation MatrixMultiplikation(Array X, Y, n) Laufzeit:. new array Z[,..,n][,..,n] Θ(n²). for i to n do Θ(n) 3. for j to n do Θ(n²). Z[i][j] 0 Θ(n²). for k to n do. Z[i][j] Z[i][j] + X[i][k] Y[k][j] 7. return Z 7. Divide & Conquer 7

76 Matrix Multiplikation MatrixMultiplikation(Array X, Y, n) Laufzeit:. new array Z[,..,n][,..,n] Θ(n²). for i to n do Θ(n) 3. for j to n do Θ(n²). Z[i][j] 0 Θ(n²). for k to n do Θ(n³). Z[i][j] Z[i][j] + X[i][k] Y[k][j] 7. return Z 7. Divide & Conquer 7

77 Matrix Multiplikation MatrixMultiplikation(Array X, Y, n) Laufzeit:. new array Z[,..,n][,..,n] Θ(n²). for i to n do Θ(n) 3. for j to n do Θ(n²). Z[i][j] 0 Θ(n²). for k to n do Θ(n³). Z[i][j] Z[i][j] + X[i][k] Y[k][j] Θ(n 3 ) 7. return Z 7. Divide & Conquer 77

78 Matrix Multiplikation MatrixMultiplikation(Array X, Y, n) Laufzeit:. new array Z[,..,n][,..,n] Θ(n²). for i to n do Θ(n) 3. for j to n do Θ(n²). Z[i][j] 0 Θ(n²). for k to n do Θ(n³). Z[i][j] Z[i][j] + X[i][k] Y[k][j] Θ(n 3 ) 7. return Z Θ() 7. Divide & Conquer 78

79 Matrix Multiplikation MatrixMultiplikation(Array X, Y, n) Laufzeit:. new array Z[,..,n][,..,n] Θ(n²). for i to n do Θ(n) 3. for j to n do Θ(n²). Z[i][j] 0 Θ(n²). for k to n do Θ(n³). Z[i][j] Z[i][j] + X[i][k] Y[k][j] Θ(n 3 ) 7. return Z Θ() Θ(n³) 7. Divide & Conquer 79

80 Teile und Herrsche: Matrix Multiplikation A C B E D G F H = AE + BG AF + CE+ DG CF+ BH DH Aufwand: 8 Multiplikationen von n/ n/ Matrizen Additionen von n/ n/ Matrizen 7. Divide & Conquer 80

81 Teile und Herrsche: Matrix Multiplikation A C B E D G F H = AE + BG AF + CE+ DG CF+ BH DH Aufwand: 8 Multiplikationen von n/ n/ Matrizen Additionen von n/ n/ Matrizen Laufzeit: T(n) = 8 T(n/) + Θ(n²) 7. Divide & Conquer 8

82 Laufzeit: T(n) = 8 T(n/) + k n² a b f(n) Master Theorem: f(n) = k n² Matrix Multiplikation 7. Divide & Conquer 8

83 Laufzeit: T(n) = 8 T(n/) + k n² a b f(n) Master Theorem: f(n) = k n² Matrix Multiplikation log a Fall : Laufzeit Θ(n b ) = Θ(n³) 7. Divide & Conquer 83

84 Laufzeit: T(n) = 8 T(n/) + k n² a b f(n) Master Theorem: f(n) = k n² Matrix Multiplikation log a Fall : Laufzeit Θ(n b ) = Θ(n³) Formaler Beweis durch Induktion!! 7. Divide & Conquer 8

85 Laufzeit: T(n) = 8 T(n/) + k n² a b f(n) Master Theorem: f(n) = k n² Matrix Multiplikation log a Fall : Laufzeit Θ(n b ) = Θ(n³) Formaler Beweis durch Induktion!! Nicht besser als einfacher Algorithmus 7. Divide & Conquer 8

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

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

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

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

Teile und Herrsche Teil 2

Teile und Herrsche Teil 2 Teile und Herrsche Teil 2 binär Suchen und schnell Multiplizieren Markus Fleck Manuel Mauky Hochschule Zittau/Görlitz 19. April 2009 Suchen in langen Listen (0, 1, 2, 7, 8, 9, 9, 13, 13, 14, 14, 14, 16,

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

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

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

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

Laufzeit und Komplexität

Laufzeit und Komplexität Laufzeit und Komplexität Laufzeit eines Algorithmus Benchmarking versus Analyse Abstraktion Rechenzeit, Anzahl Schritte Bester, Mittlerer, Schlechtester Fall Beispiel: Lineare Suche Komplexitätsklassen

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. Relationen. Beschreibung einer binären Relation

4. Relationen. Beschreibung einer binären Relation 4. Relationen Relationen spielen bei Datenbanken eine wichtige Rolle. Die meisten Datenbanksysteme sind relational. 4.1 Binäre Relationen Eine binäre Relation (Beziehung) R zwischen zwei Mengen A und B

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

Elemente der Analysis II

Elemente der Analysis II Elemente der Analysis II Kapitel 3: Lineare Abbildungen und Gleichungssysteme Informationen zur Vorlesung: http://www.mathematik.uni-trier.de/ wengenroth/ J. Wengenroth () 15. Mai 2009 1 / 35 3.1 Beispiel

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

5. Verschiedene Repräsentanten

5. Verschiedene Repräsentanten 5. Verschiedene Repräsentanten 5.1. Die Sätze Hall und König Sei I := {1,...,n}, und sei A(I) = (A 1,...,A n ) eine Familie von Teilmengen einer endlichen Menge E. Zu K I seien A(K) := (A i : i K) und

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

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

Suchen und Sortieren Sortieren. Heaps

Suchen und Sortieren Sortieren. Heaps Suchen und Heaps (Folie 245, Seite 63 im Skript) 3 7 21 10 17 31 49 28 14 35 24 42 38 Definition Ein Heap ist ein Binärbaum, der die Heapeigenschaft hat (Kinder sind größer als der Vater), bis auf die

Mehr

Seminararbeit für das SE Reine Mathematik- Graphentheorie

Seminararbeit für das SE Reine Mathematik- Graphentheorie Seminararbeit für das SE Reine Mathematik- Graphentheorie Der binäre Rang, der symplektische Graph, die Spektralzerlegung und rationale Funktionen Vortrag am 24.01.2012 Heike Farkas 0410052 Inhaltsverzeichnis

Mehr

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

Einführung. Vorlesungen zur Komplexitätstheorie: Reduktion und Vollständigkeit (3) Vorlesungen zur Komplexitätstheorie. K-Vollständigkeit (1/5) Einführung 3 Vorlesungen zur Komplexitätstheorie: Reduktion und Vollständigkeit (3) Univ.-Prof. Dr. Christoph Meinel Hasso-Plattner-Institut Universität Potsdam, Deutschland Hatten den Reduktionsbegriff

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

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

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

Mehr

Parallele und funktionale Programmierung Wintersemester 2013/14. 8. Übung Abgabe bis 20.12.2013, 16:00 Uhr

Parallele und funktionale Programmierung Wintersemester 2013/14. 8. Übung Abgabe bis 20.12.2013, 16:00 Uhr 8. Übung Abgabe bis 20.12.2013, 16:00 Uhr Aufgabe 8.1: Zeigerverdopplung Ermitteln Sie an folgendem Beispiel den Rang für jedes Listenelement sequentiell und mit dem in der Vorlesung vorgestellten parallelen

Mehr

t r Lineare Codierung von Binärbbäumen (Wörter über dem Alphabet {, }) Beispiel code( ) = code(, t l, t r ) = code(t l ) code(t r )

t r Lineare Codierung von Binärbbäumen (Wörter über dem Alphabet {, }) Beispiel code( ) = code(, t l, t r ) = code(t l ) code(t r ) Definition B : Menge der binären Bäume, rekursiv definiert durch die Regeln: ist ein binärer Baum sind t l, t r binäre Bäume, so ist auch t =, t l, t r ein binärer Baum nur das, was durch die beiden vorigen

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

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

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

MATHEMATISCHE ANALYSE VON ALGORITHMEN

MATHEMATISCHE ANALYSE VON ALGORITHMEN MATHEMATISCHE ANALYSE VON ALGORITHMEN Michael Drmota Institut für Diskrete Mathematik und Geometrie, TU Wien michael.drmota@tuwien.ac.at www.dmg.tuwien.ac.at/drmota/ Ringvorlesung SS 2008, TU Wien Algorithmus

Mehr

Kapiteltests zum Leitprogramm Binäre Suchbäume

Kapiteltests zum Leitprogramm Binäre Suchbäume Kapiteltests zum Leitprogramm Binäre Suchbäume Björn Steffen Timur Erdag überarbeitet von Christina Class Binäre Suchbäume Kapiteltests für das ETH-Leitprogramm Adressaten und Institutionen Das Leitprogramm

Mehr

6. Algorithmen der Computer-Geometrie

6. Algorithmen der Computer-Geometrie 6. Algorithmen der Computer-Geometrie 1. Einführung 2. Schnitt von zwei Strecken 3. Punkt-in-Polygon-Test 4. Schnitt orthogonaler Strecken 5. Punkteinschlussproblem Geo-Informationssysteme 146 6.1 Computer-Geometrie

Mehr

Vorlesung Algorithmische Geometrie. Streckenschnitte. Martin Nöllenburg 19.04.2011

Vorlesung Algorithmische Geometrie. Streckenschnitte. Martin Nöllenburg 19.04.2011 Vorlesung Algorithmische Geometrie LEHRSTUHL FÜR ALGORITHMIK I INSTITUT FÜR THEORETISCHE INFORMATIK FAKULTÄT FÜR INFORMATIK Martin Nöllenburg 19.04.2011 Überlagern von Kartenebenen Beispiel: Gegeben zwei

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

Teil II. Nichtlineare Optimierung

Teil II. Nichtlineare Optimierung Teil II Nichtlineare Optimierung 60 Kapitel 1 Einleitung In diesem Abschnitt wird die Optimierung von Funktionen min {f(x)} x Ω betrachtet, wobei Ω R n eine abgeschlossene Menge und f : Ω R eine gegebene

Mehr

Mathematische Grundlagen der Kryptographie. 1. Ganze Zahlen 2. Kongruenzen und Restklassenringe. Stefan Brandstädter Jennifer Karstens

Mathematische Grundlagen der Kryptographie. 1. Ganze Zahlen 2. Kongruenzen und Restklassenringe. Stefan Brandstädter Jennifer Karstens Mathematische Grundlagen der Kryptographie 1. Ganze Zahlen 2. Kongruenzen und Restklassenringe Stefan Brandstädter Jennifer Karstens 18. Januar 2005 Inhaltsverzeichnis 1 Ganze Zahlen 1 1.1 Grundlagen............................

Mehr

HEUTE. Datenstrukturen im Computer. Datenstrukturen. Rekursion. Feedback Evaluation. abstrakte Datenstrukturen

HEUTE. Datenstrukturen im Computer. Datenstrukturen. Rekursion. Feedback Evaluation. abstrakte Datenstrukturen 9.2.5 HUT 9.2.5 3 atenstrukturen im omputer atenstrukturen ie beiden fundamentalen atenstrukturen in der Praxis sind rray und Liste Rekursion Feedback valuation rray Zugriff: schnell Umordnung: langsam

Mehr

Lineare Algebra - alles was man wissen muß

Lineare Algebra - alles was man wissen muß Statistik für Bioinformatiker SoSe 3 Rainer Spang Lineare Algebra - alles was man wissen muß Der Titel ist natürlich gelogen, aber was wir hier zusammengetragen haben ist zumindest ein Anfang. Weniger

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

Tutorium 5 - Programmieren

Tutorium 5 - Programmieren Tutorium 5 - Programmieren Grischa Liebel Uni Karlsruhe (TH) Tutorium 11 1 Einleitung 2 Abschlussaufgaben 3 Vorlesungsstoff 4 Ergänzungen zum Vorlesungsstoff Grischa Liebel (Uni Karlsruhe (TH)) c 2008

Mehr

ASSEMBLY ALGORITHMS FOR NEXT-GENERATION SEQUENCING DATA

ASSEMBLY ALGORITHMS FOR NEXT-GENERATION SEQUENCING DATA ASSEMBLY ALGORITHMS FOR NEXT-GENERATION SEQUENCING DATA Jason R. Miller*, Sergey Koren, Granger Sutton Ein Vortrag von Sergej Tschernyschkow Friedrich-Schiller-Universität Jena 03. Mai 2010 SERGEJ TSCHERNYSCHKOW

Mehr

Graphen: Einführung. Vorlesung Mathematische Strukturen. Sommersemester 2011

Graphen: Einführung. Vorlesung Mathematische Strukturen. Sommersemester 2011 Graphen: Einführung Vorlesung Mathematische Strukturen Zum Ende der Vorlesung beschäftigen wir uns mit Graphen. Graphen sind netzartige Strukturen, bestehend aus Knoten und Kanten. Sommersemester 20 Prof.

Mehr

2: Zahlentheorie / Restklassen 2.1: Modulare Arithmetik

2: Zahlentheorie / Restklassen 2.1: Modulare Arithmetik Stefan Lucks Diskrete Strukturen (WS 2009/10) 57 2: Zahlentheorie / Restklassen 2.1: Modulare Arithmetik Uhr: Stunden mod 24, Minuten mod 60, Sekunden mod 60,... Rechnerarithmetik: mod 2 w, w {8, 16, 32,

Mehr

Data Cube. Aggregation in SQL. Beispiel: Autoverkäufe. On-line Analytical Processing (OLAP) 1. Einführung. 2. Aggregation in SQL, GROUP BY

Data Cube. Aggregation in SQL. Beispiel: Autoverkäufe. On-line Analytical Processing (OLAP) 1. Einführung. 2. Aggregation in SQL, GROUP BY Data Cube On-line Analytical Processing (OLAP). Einführung Ziel: Auffinden interessanter Muster in großen Datenmengen 2. Aggregation in SQL, GROUP BY 3. Probleme mit GROUP BY 4. Der Cube-Operator! Formulierung

Mehr

Einführung in die Java- Programmierung

Einführung in die Java- Programmierung Einführung in die Java- Programmierung Dr. Volker Riediger Tassilo Horn riediger horn@uni-koblenz.de WiSe 2012/13 1 Wichtig... Mittags Pommes... Praktikum A 230 C 207 (Madeleine) F 112 F 113 (Kevin) E

Mehr

Maschinelles Lernen Entscheidungsbäume

Maschinelles Lernen Entscheidungsbäume Universität Potsdam Institut für Informatik Lehrstuhl Maschinelles Lernen Maschinelles Lernen Entscheidungsbäume Paul Prasse Entscheidungsbäume Eine von vielen Anwendungen: Kreditrisiken Kredit - Sicherheiten

Mehr

Algorithmen und Datenstrukturen (ESE) Entwurf, Analyse und Umsetzung von Algorithmen (IEMS) WS 2014 / 2015. Vorlesung 8, Donnerstag 11.

Algorithmen und Datenstrukturen (ESE) Entwurf, Analyse und Umsetzung von Algorithmen (IEMS) WS 2014 / 2015. Vorlesung 8, Donnerstag 11. Algorithmen und Datenstrukturen (ESE) Entwurf, Analyse und Umsetzung von Algorithmen (IEMS) WS 2014 / 2015 Vorlesung 8, Donnerstag 11. Dezember 2014 (Cache-Effizienz, Teile und Herrsche) Junior-Prof. Dr.

Mehr

Lenstras Algorithmus für Faktorisierung

Lenstras Algorithmus für Faktorisierung Lenstras Algorithmus für Faktorisierung Bertil Nestorius 9 März 2010 1 Motivation Die schnelle Faktorisierung von Zahlen ist heutzutage ein sehr wichtigen Thema, zb gibt es in der Kryptographie viele weit

Mehr

Übungsaufgaben mit Lösungsvorschlägen

Übungsaufgaben mit Lösungsvorschlägen Otto-Friedrich-Universität Bamberg Lehrstuhl für Medieninformatik Prof. Dr. Andreas Henrich Dipl. Wirtsch.Inf. Daniel Blank Einführung in das Information Retrieval, 8. Mai 2008 Veranstaltung für die Berufsakademie

Mehr

Advanced Encryption Standard. Copyright Stefan Dahler 20. Februar 2010 Version 2.0

Advanced Encryption Standard. Copyright Stefan Dahler 20. Februar 2010 Version 2.0 Advanced Encryption Standard Copyright Stefan Dahler 20. Februar 2010 Version 2.0 Vorwort Diese Präsentation erläutert den Algorithmus AES auf einfachste Art. Mit Hilfe des Wissenschaftlichen Rechners

Mehr

Datenstrukturen und Algorithmen

Datenstrukturen und Algorithmen Datenstrukturen und Algorithmen VO 708.031 Bäume robert.legenstein@igi.tugraz.at 1 Inhalt der Vorlesung 1. Motivation, Einführung, Grundlagen 2. Algorithmische Grundprinzipien 3. Sortierverfahren 4. Halden

Mehr

Ohne Mathematik undenkbar!

Ohne Mathematik undenkbar! Die tägliche - Suche: Ohne Mathematik undenkbar! Dipl.-Wirt.Math. Jan Maruhn FB IV - Mathematik Universität Trier 29. März 2006 29. März 2006 Seite 1 Gliederung Einleitung und Motivation Das Internet als

Mehr

PageRank-Algorithmus

PageRank-Algorithmus Proseminar Algorithms and Data Structures Gliederung Gliederung 1 Einführung 2 PageRank 3 Eziente Berechnung 4 Zusammenfassung Motivation Motivation Wir wollen eine Suchmaschine bauen, die das Web durchsucht.

Mehr

Netzwerkmodelle. Seminar Netzwerkanalyse. Sommersemester 2005 Jasmine Metzler

Netzwerkmodelle. Seminar Netzwerkanalyse. Sommersemester 2005 Jasmine Metzler Netzwerkmodelle Seminar Netzwerkanalyse Sommersemester 2005 Jasmine Metzler 1 Grundlegende Modelle Das Graph Modell (G n,p ) Definition Verschiedene Modelle Small World Modell Lokale Suche Power Law Modelle

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

Algorithmische Methoden für schwere Optimierungsprobleme

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

Mehr

Informationstheorethisches Theorem nach Shannon

Informationstheorethisches Theorem nach Shannon Informationstheorethisches Theorem nach Shannon Beispiel zum Codierungsaufwand - Wiederholung: Informationstheorethisches Modell (Shannon) Sei x eine Aussage. Sei M ein Modell Wieviele Bits sind aussreichend,

Mehr

Aufabe 7: Baum-Welch Algorithmus

Aufabe 7: Baum-Welch Algorithmus Effiziente Algorithmen VU Ausarbeitung Aufabe 7: Baum-Welch Algorithmus Florian Fest, Matr. Nr.0125496 baskit@generationfun.at Claudia Hermann, Matr. Nr.0125532 e0125532@stud4.tuwien.ac.at Matteo Savio,

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

Lösungshinweise zu Kapitel 4

Lösungshinweise zu Kapitel 4 L-23 Lösungshinweise zu Kapitel 4 zu Selbsttestaufgabe 4.3 (Regelumformungen 1) Die Regeln R1, R2 und R2 sind bereits in vereinfachter Form und entsprechen genau den Regeln GA-1, GA-8 und GA-7. Die Umformung

Mehr

Einführung in die Vektor- und Matrizenrechnung. Matrizen

Einführung in die Vektor- und Matrizenrechnung. Matrizen Einführung in die Vektor- und Matrizenrechnung Matrizen Definition einer Matrix Unter einer (reellen) m x n Matrix A versteht man ein rechteckiges Schema aus reellen Zahlen, die wie folgt angeordnet sind:

Mehr

Grundlagen der Programmierung 2. Bäume

Grundlagen der Programmierung 2. Bäume Grundlagen der Programmierung 2 Bäume Prof. Dr. Manfred Schmidt-Schauÿ Künstliche Intelligenz und Softwaretechnologie 24. Mai 2006 Graphen Graph: Menge von Knoten undzugehörige (gerichtete oder ungerichtete)

Mehr

Programmiertechnik II

Programmiertechnik II Analyse von Algorithmen Algorithmenentwurf Algorithmen sind oft Teil einer größeren Anwendung operieren auf Daten der Anwendung, sollen aber unabhängig von konkreten Typen sein Darstellung der Algorithmen

Mehr

Einführung in MATLAB

Einführung in MATLAB Kapitel 4 Einführung in MATLAB 41 Allgemeines MATLAB ist eine kommerzielle mathematische Software zur Lösung mathematischer Probleme und zur graphischen Darstellung der Ergebnisse Die Verfahren in MATLAB

Mehr

Kapitel 9 Suchalgorithmen

Kapitel 9 Suchalgorithmen Kapitel 9 Suchalgorithmen Technische Universität München Suchverfahren: Verfahren, das in einem Suchraum nach Mustern oder Objekten mit bestimmten Eigenschaften sucht. Vielfältige Anwendungsbereiche für

Mehr

Einführung in die Kodierungstheorie

Einführung in die Kodierungstheorie Einführung in die Kodierungstheorie Einführung Vorgehen Beispiele Definitionen (Code, Codewort, Alphabet, Länge) Hamming-Distanz Definitionen (Äquivalenz, Coderate, ) Singleton-Schranke Lineare Codes Hamming-Gewicht

Mehr

2 Darstellung von Zahlen und Zeichen

2 Darstellung von Zahlen und Zeichen 2.1 Analoge und digitale Darstellung von Werten 79 2 Darstellung von Zahlen und Zeichen Computer- bzw. Prozessorsysteme führen Transformationen durch, die Eingaben X auf Ausgaben Y abbilden, d.h. Y = f

Mehr

Integration geometrischer und fotogrammetrischer Information zum Wiederfinden von Bildern

Integration geometrischer und fotogrammetrischer Information zum Wiederfinden von Bildern Integration geometrischer und fotogrammetrischer Information zum Wiederfinden von Bildern Björn Burow SE Mustererkennung in Bildern und 3D-Daten Lehrstuhl Graphische Systeme BTU Cottbus Inhaltsübersicht

Mehr

Algorithmen für Peer-to-Peer-Netzwerke Sommersemester 2004 04.06.2004 7. Vorlesung

Algorithmen für Peer-to-Peer-Netzwerke Sommersemester 2004 04.06.2004 7. Vorlesung Algorithmen für Peer-to-Peer-Netzwerke Sommersemester 2004 04.06.2004 7. Vorlesung 1 Kapitel III Skalierbare Peer to Peer-Netzwerke Tapestry von Zhao, Kubiatowicz und Joseph (2001) Netzw erke 2 Tapestry

Mehr

Algorithms & Datastructures Midterm Test 1

Algorithms & Datastructures Midterm Test 1 Algorithms & Datastructures Midterm Test 1 Wolfgang Pausch Heiko Studt René Thiemann Tomas Vitvar

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

Programmierung und Modellierung

Programmierung und Modellierung Programmierung und Modellierung Terme, Suchbäume und Pattern Matching Martin Wirsing in Zusammenarbeit mit Moritz Hammer SS 2009 2 Inhalt Kap. 7 Benutzerdefinierte Datentypen 7. Binärer Suchbaum 8. Anwendung:

Mehr

Codierung. Auszug aus dem Skript von Maciej Liśkiewicz und Henning Fernau

Codierung. Auszug aus dem Skript von Maciej Liśkiewicz und Henning Fernau Codierung Auszug aus dem Skript von Maciej Liśkiewicz und Henning Fernau Ein bisschen Informationstheorie Betrachten wir das folgende Problem: Wie lautet eine sinnvolle Definition für das quantitative

Mehr

Sortierte Folgen 250

Sortierte Folgen 250 Sortierte Folgen 250 Sortierte Folgen: he 1,...,e n i mit e 1 apple applee n kennzeichnende Funktion: M.locate(k):= addressof min{e 2 M : e k} Navigations Datenstruktur 2 3 5 7 11 13 17 19 00 Annahme:

Mehr

Das Collatz Problem. Dieter Wolke

Das Collatz Problem. Dieter Wolke Das Collatz Problem Dieter Wolke Einleitung. Die Zahlentheorie verfügt über eine große Anzahl leicht formulierbarer, aber schwer lösbarer Probleme. Einige sind Jahrhunderte alt, andere sind relativ neu.

Mehr

Kernel, Perceptron, Regression. Erich Schubert, Arthur Zimek. 2014-07-20 KDD Übung

Kernel, Perceptron, Regression. Erich Schubert, Arthur Zimek. 2014-07-20 KDD Übung Kernel, Perceptron, Regression Erich Schubert, Arthur Zimek Ludwig-Maximilians-Universität München 2014-07-20 KDD Übung Kernel-Fukctionen Kernel kann mehrdeutig sein! Unterscheidet zwischen: Kernel function

Mehr

Kapitel 5: Dynamisches Programmieren Gliederung

Kapitel 5: Dynamisches Programmieren 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

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

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

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

Der Viterbi-Algorithmus.

Der Viterbi-Algorithmus. Der Viterbi-Algorithmus. Eine Erläuterung der formalen Spezifikation am Beispiel des Part-of-Speech Tagging. Kursskript Karin Haenelt, 9..7 (.5.) Einleitung In diesem Skript wird der Viterbi-Algorithmus

Mehr

Beispiel vor dem Beweis:

Beispiel vor dem Beweis: Beispiel vor dem Beweis: Beispiel vor dem Beweis: A = ¼3 6 2 3 11 2½ Beispiel vor dem Beweis: 2½ 2½ ¼3 6 A = 2 3 11 311 E 12 A = 3 6 Beispiel vor dem Beweis: 2½ 2½ ¼3 6 A = 2 3 11 311 E 12 A = 3 6 3 11

Mehr

HEUTE. Effizienzbeispiel: bekannte Version (Übung 04.11.04) Mathematik: Was ist Effizienz? vollständige Induktion

HEUTE. Effizienzbeispiel: bekannte Version (Übung 04.11.04) Mathematik: Was ist Effizienz? vollständige Induktion 17.11.04 1 HEUTE 17.11.04 3 Effizienzbeispiel: bekannte Version (Übung 04.11.04) Mathematik: was ist Effizienz? vollständige Induktion JAVA: Arrays die for -Schleife die Sprunganweisungen break und continue

Mehr

6. Bayes-Klassifikation. (Schukat-Talamazzini 2002)

6. Bayes-Klassifikation. (Schukat-Talamazzini 2002) 6. Bayes-Klassifikation (Schukat-Talamazzini 2002) (Böhm 2003) (Klawonn 2004) Der Satz von Bayes: Beweis: Klassifikation mittels des Satzes von Bayes (Klawonn 2004) Allgemeine Definition: Davon zu unterscheiden

Mehr

Algorithmen und Datenstrukturen

Algorithmen und Datenstrukturen Algorithmen und Datenstrukturen Dipl. Inform. Andreas Wilkens aw@awilkens.com Überblick Grundlagen Definitionen Elementare Datenstrukturen Rekursionen Bäume 2 1 Datenstruktur Baum Definition eines Baumes

Mehr

Einführung in die Informatik I

Einführung in die Informatik I Einführung in die Informatik I Algorithmen und deren Programmierung Prof. Dr. Nikolaus Wulff Definition Algorithmus Ein Algorithmus ist eine präzise formulierte Handlungsanweisung zur Lösung einer gleichartigen

Mehr

KV Software Engineering Übungsaufgaben SS 2005

KV Software Engineering Übungsaufgaben SS 2005 KV Software Engineering Übungsaufgaben SS 2005 Martin Glinz, Silvio Meier, Nancy Merlo-Schett, Katja Gräfenhain Übung 1 Aufgabe 1 (10 Punkte) Lesen Sie das Originalpapier von Dijkstra Go To Statement Considered

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

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 Die Darstellung linearer Abbildungen durch Matrizen

2 Die Darstellung linearer Abbildungen durch Matrizen 2 Die Darstellung linearer Abbildungen durch Matrizen V und V seien Vektorräume über einem Körper K. Hom K (V, V ) bezeichnet die Menge der K linearen Abbildungen von V nach V. Wir machen Hom K (V, V )

Mehr

Post-quantum cryptography

Post-quantum cryptography Post-quantum cryptography Post-quantum cryptography 1. Komplexität & Quantencomputer 2. Kryptografie in Gittern 3. FHE Eine Revolution im Datenschutz? WIESO? KOMPLEXITÄT Public-Key-Kryptografie Grafiken:

Mehr

Theoretische Informatik I

Theoretische Informatik I Theoretische nformatik inheit 3 Kontextfreie Sprachen 1. Kontextfreie Grammatiken 2. Pushdown Automaten 3. igenschaften kontextfreier Sprachen Theoretische nformatik inheit 3.1 Kontextfreie Grammatiken

Mehr

Universität Potsdam Institut für Informatik Lehrstuhl Maschinelles Lernen. Entscheidungsbäume

Universität Potsdam Institut für Informatik Lehrstuhl Maschinelles Lernen. Entscheidungsbäume Universität Potsdam Institut für Informatik Lehrstuhl Maschinelles Lernen Entscheidungsbäume Christoph Sawade/Niels Landwehr Jules Rasetaharison, Tobias Scheffer Entscheidungsbäume Eine von vielen Anwendungen:

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

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

MuPAD in Schule und Studium

MuPAD in Schule und Studium MuPAD in Schule und Studium Kai Gehrs, acrowley@mupad.de Eine spielerische Anwendung für das Lösen linearer Gleichungssysteme über dem Körper mit zwei Elementen Inhalt...: Die Reise nach Trisentis Kategorie.:

Mehr

Anzahl von Strukturisomeren der Alkane

Anzahl von Strukturisomeren der Alkane Anzahl von Strukturisomeren der Alkane??? und Sascha Kurz Universität Bayreuth, D-95440 Bayreuth, Deutschland Zusammenfassung Das Phänomen der Strukturisomerie wird anhand der Klasse der Alkane erklärt.

Mehr

Was bisher geschah. deklarative Programmierung. funktionale Programmierung (Haskell):

Was bisher geschah. deklarative Programmierung. funktionale Programmierung (Haskell): Was bisher geschah deklarative Programmierung funktional: Programm: Menge von Termgleichungen, Term Auswertung: Pattern matsching, Termumformungen logisch: Programm: Menge von Regeln (Horn-Formeln), Formel

Mehr

Suchen und Sortieren (Die klassischen Algorithmen)

Suchen und Sortieren (Die klassischen Algorithmen) Suchen und Sortieren (Die klassischen Algorithmen) Lineare Suche und Binäre Suche (Vorbedingung und Komplexität) Sortieralgorithmen (allgemein) Direkte Sortierverfahren (einfach aber langsam) Schnelle

Mehr

9 Codes. Hochschule für Angewandte Wissenschaften Hamburg FACHBEREICH ELEKTROTECHNIK UND INFORMATIK DIGITALTECHNIK 9-1

9 Codes. Hochschule für Angewandte Wissenschaften Hamburg FACHBEREICH ELEKTROTECHNIK UND INFORMATIK DIGITALTECHNIK 9-1 9 Codes 9.1 Charakterisierung und Klassifizierung Definition: Das Ergebnis einer eindeutigen Zuordnung zweier Zeichen- bzw. Zahlenmengen wird Code genannt. Die Zuordnung erfolgt über eine arithmetische

Mehr

3. Das Auslastungsspiel

3. Das Auslastungsspiel Literatur: 3. Das Auslastungsspiel R. W. Rosenthal. A class of games possessing pure-strategy Nash equilibria. International Journal of Game Theory 2, pp. 65 67. 1973. D. S. Johnson, Chr. H. Papadimitriou,

Mehr