Dynamische Programmierung

Größe: px
Ab Seite anzeigen:

Download "Dynamische Programmierung"

Transkript

1 Dynamische Programmierung Claudia Gerhold Claudia Gerhold Dynamische Programmierung / 4

2 Agenda Einführung Dynamische Programmierung Top-Down Ansatz mit Memoization Bottom-Up Ansatz 3 Anwendungsbeispiele für DP Longest Common Subsequence (LCS) Levenshtein-Distanz Klammerung von Matrizenprodukten 4 Fazit Claudia Gerhold Dynamische Programmierung / 4

3 Einführung Claudia Gerhold Dynamische Programmierung / 4

4 Beispiel Fibonacci Zahlen,,,, 3, 5, 8, 3,,... Fib() = Fib() = Fib(i) = Fib(i ) + Fib(i ), i > Claudia Gerhold Dynamische Programmierung / 4

5 Rekursive Implementierung p u b l i c c l a s s F i b o n a c c i { s t a t i c l o n g compute ( i n t i ) { 3 i f ( i <= ) { 4 r e t u r n ; 5 } e l s e i f ( i == ) { 6 r e t u r n ; 7 } e l s e { 8 r e t u r n compute ( i ) + compute ( i ) ; 9 } } } Claudia Gerhold Dynamische Programmierung / 4

6 Teilergebnisse mehrfach berechnen Fib(5) Fib(4) Fib(3) Fib(3) Fib() Fib() Fib() Fib() Fib() Fib() Fib() Fib() Fib() Fib() Fib() Quelle: vgl. fib.png Claudia Gerhold Dynamische Programmierung / 4

7 Iterative Implementierung p u b l i c c l a s s F i b o n a c c i { s t a t i c l o n g compute ( i n t i ) { 3 i f ( i == ) { r e t u r n } 4 e l s e i f ( i == ) { r e t u r n } ; 5 6 i n t f i r s t =, second =, r e s u l t = ; 7 f o r ( i n t j =, j < i ; j ++) { 8 r e s u l t = f i r s t + second ; 9 f i r s t = second ; second = r e s u l t ; } r e t u r n r e s u l t ; 3 } 4 } Claudia Gerhold Dynamische Programmierung / 4

8 Laufzeit-Vergleich Rekursiv vs. Iterativ Rekursive Variante ist übersichtlicher Laufzeiten bei n = 5: rekursiv: 73,35 s iterativ:,5 ms Aufwand: rekursiv: n O( n ) iterativ: n O(n) Claudia Gerhold Dynamische Programmierung / 4

9 Laufzeit-Vergleich Rekursiv vs. Iterativ Rekursive Variante ist übersichtlicher Laufzeiten bei n = 5: rekursiv: 73,35 s iterativ:,5 ms Aufwand: rekursiv: n O( n ) iterativ: n O(n) Wie kann noch optimiert werden? Claudia Gerhold Dynamische Programmierung / 4

10 Dynamische Programmierung Claudia Gerhold Dynamische Programmierung / 4

11 Historie Richard Ernest Bellman, Mathematiker *9.8.9 (Brooklyn) (Los Angeles) Paper: u.a. Theory of Dynamic Programming (954) Lösen von Optimierungsproblemen Memoization: Merken berechneter Werte Reduzierung des Rechenaufwands Quelle: wiki/richard E. Bellman#/media/ File:Richard Ernest Bellman.jpg Claudia Gerhold Dynamische Programmierung / 4

12 Anwendung dynamischer Programmierung Optimierungsprobleme mit gleichartigen Teilproblemen überlappenden Teilproblemen Algorithmus Teile Problem in kleinere auf Löse die Teilprobleme Merke Lösungen der Teilprobleme Kombiniere Lösungen zur Gesamtlösung Varianten Top-Down Ansatz Bottom-Up Ansatz Claudia Gerhold Dynamische Programmierung / 4

13 Memoization Erweitern des Programmcodes um Tabelle Vorinitialisierung mit Wert außerhalb des Lösungsraums Look-up in Tabelle Berechnung nur, wenn nicht in Tabelle Claudia Gerhold Dynamische Programmierung / 4

14 Top-Down Ansatz p u b l i c c l a s s F i b o n a c c i { s t a t i c l o n g cp ( i n t i, l o n g [ ] t ) { 3 i f ( i <= ) { r e t u r n ; } 4 e l s e { 5 i f ( i == ) { r e t u r n ; } 6 e l s e { 7 i f ( t [ i ]!= ) { 8 r e t u r n t [ i ]; 9 } e l s e { t [ i ] = cp ( i, t ) + cp ( i, t ) ; r e t u r n t [ i ]; } 3 } 4 } 5 } 6 } Claudia Gerhold Dynamische Programmierung / 4

15 Neuer Aufrufbaum Fib(5) Fib(4) Fib(3) Fib(3) Fib() Fib() Fib() Fib() Fib() Quelle: vgl. fib.png Claudia Gerhold Dynamische Programmierung / 4

16 Bottom-Up Ansatz p u b l i c c l a s s F i b o n a c c i { s t a t i c p u b l i c l o n g compute ( i n t x ) { 3 l o n g t a b l e [ ] = new l o n g [ x + ] ; 4 t a b l e [ ] = ; 5 t a b l e [ ] = ; 6 f o r ( i n t i = ; i < x + ; i ++) { 7 t a b l e [ i ] = t a b l e [ i ] + t a b l e [ i ] ; 8 } 9 r e t u r n t a b l e [ x ] ; } } Claudia Gerhold Dynamische Programmierung / 4

17 Laufzeit-Vergleich Laufzeiten bei n = 5: Top-Down mit Memoization:,96 ms Bottom-Up:, ms Aufwand: rekursiv: n O(n) iterativ: n O(n) Claudia Gerhold Dynamische Programmierung / 4

18 Anwendungsbeispiele für Dynamische Programmierung Claudia Gerhold Dynamische Programmierung / 4

19 Longest Common Subsequence Problemstellung Gegeben: Strings: x(x, x,..., x i ), y(y, y,..., y j ) Gesucht: String maximaler Länge, ist Teilsequenz von x und y Anwendung: Analyse von Gen-Sequenzen Reihenfolge Zeichen ist relevant Zeichen dürfen übersprungen werden Je länger die gefundene Sequenz, desto ähnlicher sind sich x und y Claudia Gerhold Dynamische Programmierung / 4

20 Beispiel X = < A, B, C, B, D, A, B > Y = < B, D, C, A, B, A > X Claudia Gerhold Dynamische Programmierung / 4

21 Beispiel X = < A, B, C, B, D, A, B > Y = < B, D, C, A, B, A > Z = < B, D, A > Länge: 3 Claudia Gerhold Dynamische Programmierung / 4

22 Beispiel X = < A, B, C, B, D, A, B > Y = < B, D, C, A, B, A > Z = < B, C, B, A > Länge: 4 Claudia Gerhold Dynamische Programmierung / 4

23 Beispiel X = < A, B, C, B, D, A, B > Y = < B, D, C, A, B, A > Z 3 = < B, D, A, B > Länge: 4 Claudia Gerhold Dynamische Programmierung / 4

24 Beispiel Z = < B, C, B, A > Länge: 4 Z 3 = < B, D, A, B > Länge: 4 X Z und Z 3 sind längste gemeinsame Teilsquenzen von X und Y. Claudia Gerhold Dynamische Programmierung / 4

25 Brute-Force Aufzählen aller Teilsequenzen von x Für jede Teilsequenz prüfen, ob in y enthalten Merke längste gemeinsame Teilsequenz x besitzt x Teilsequenzen exponenzielle Laufzeit Claudia Gerhold Dynamische Programmierung / 4

26 Herleitung Rekursionsgleichung x i (y j ) ist Präfix von x(y) bis inkl. Stelle i(j) z(z, z,..., z k ) sei LCS von x und y Erinnerung: x(x, x,..., x m ) y(y, y,..., y n ) Fälle: Falls x[i] = y[j], dann z[k] = x[i] = y[j], z[k-] ist LCS von x[i-] und y[j-] oder Falls x[i] y[j], dann impliziert z[k] x[i], z[k] ist LCS von x[i-] und y (analog für z[k] y[j]) Claudia Gerhold Dynamische Programmierung / 4

27 Rekursionsgleichung, i =, j = c[i][j] = c[i [j ] +, x i = y i max(c[i][j ], c[i ][j]), x i y i Überlappende Teilprobleme: Teilergebnisse werden mehrfach berechnet Optimale Teilstruktur: Bereits berechnetes Teilergebnis ist für sich eine optimale Lösung Anwendung dynamischer Programmierung: Bottom-Up Berechnung. Tabelle zur Ermittlung der Länge der LCS. Tabelle für Rekonstruktion Claudia Gerhold Dynamische Programmierung / 4

28 Arbeitsweise j i B D C A B A A B 3 C 4 B 5 D 6 A 7 B Rekursionsgleichung: c[i][j] = {, i =, j = c[i [j ] +, x i = y i max(c[i][j ], c[i ][j]), x i y i Claudia Gerhold Dynamische Programmierung / 4

29 Arbeitsweise j i B D C A B A A B 3 C 4 B 5 D 6 A 7 B Rekursionsgleichung: c[i][j] = {, i =, j = c[i [j ] +, x i = y i max(c[i][j ], c[i ][j]), x i y i i =, j = x[i] = A y[j] = B x i y j max(, ) = Claudia Gerhold Dynamische Programmierung / 4

30 Arbeitsweise j i B D C A B A A B 3 C 4 B 5 D 6 A 7 B Rekursionsgleichung: c[i][j] = {, i =, j = c[i [j ] +, x i = y i max(c[i][j ], c[i ][j]), x i y i i =, j = x[i] = A y[j] = D x i y j max(, ) = Claudia Gerhold Dynamische Programmierung / 4

31 Arbeitsweise j i B D C A B A A B 3 C 4 B 5 D 6 A 7 B Rekursionsgleichung: c[i][j] = {, i =, j = c[i [j ] +, x i = y i max(c[i][j ], c[i ][j]), x i y i i =, j = 3 x[i] = A y[j] = C x i y j max(, ) = Claudia Gerhold Dynamische Programmierung / 4

32 Arbeitsweise j i B D C A B A A B 3 C 4 B 5 D 6 A 7 B Rekursionsgleichung: c[i][j] = {, i =, j = c[i [j ] +, x i = y i max(c[i][j ], c[i ][j]), x i y i i =, j = 4 x[i] = A y[j] = A x i = y j + = Claudia Gerhold Dynamische Programmierung / 4

33 Arbeitsweise j i B D C A B A A B 3 C 4 B 5 D 6 A 7 B Rekursionsgleichung: c[i][j] = {, i =, j = c[i [j ] +, x i = y i max(c[i][j ], c[i ][j]), x i y i i =, j = 5 x[i] = A y[j] = B x i y j max(, ) = Claudia Gerhold Dynamische Programmierung / 4

34 Arbeitsweise j i B D C A B A A B 3 C 4 B 5 D 6 A 7 B Rekursionsgleichung: c[i][j] = {, i =, j = c[i [j ] +, x i = y i max(c[i][j ], c[i ][j]), x i y i i =, j = 6 x[i] = A y[j] = A x i = y j + = Claudia Gerhold Dynamische Programmierung / 4

35 Arbeitsweise j i B D C A B A A B 3 C 4 B D A B Rekursionsgleichung: c[i][j] = {, i =, j = c[i [j ] +, x i = y i max(c[i][j ], c[i ][j]), x i y i Claudia Gerhold Dynamische Programmierung / 4

36 Arbeitsweise j i B D C A B A A B 3 C 4 B D A B Rekursionsgleichung: c[i][j] = {, i =, j = c[i [j ] +, x i = y i max(c[i][j ], c[i ][j]), x i y i BCBA Claudia Gerhold Dynamische Programmierung / 4

37 Aufwandsbetrachtung Tabelle n m n = x.length + m = y.length + Bottom-Up O(n m) Rekursive Rekonstruktion des LCS O(n + m) Claudia Gerhold Dynamische Programmierung / 4

38 Levenshtein-Distanz Problemstellung Gegeben: Strings: s und s Gesucht: minimale Anzahl von Änderungen um s in s zu transformieren Editieroperationen INSERT DELETE REPLACE MATCH Einsatzgebiet: u.a. Plagiatscheck Editskript: Folge von Editieroperationen, die Überführung von s in s bewirken sind nicht eindeutig können unterschiedlich lang sein Länge: Anzahl der Editieroperationen Claudia Gerhold Dynamische Programmierung / 4

39 Beispiel Transformiere Matratze in Katze: M a t r a t z e = = x x x K a t z e Anzahl Operationen: 6 Editskript: REPLACE, MATCH, MATCH, REPLACE, REPLACE, DELETE, DELETE, DELETE Claudia Gerhold Dynamische Programmierung / 4

40 Beispiel Transformiere Matratze in Katze: M a t r a t z e x x x = = = = K a t z e Anzahl Operationen: 4 Editskript: DELETE, DELETE, DELETE, REPLACE, MATCH, MATCH, MATCH, MATCH Claudia Gerhold Dynamische Programmierung / 4

41 Rekursionsgleichung d[i ][j ] +, match (s i = s i ) d[i][j ] +, delete d[i][j] = min d[i ][j] +, insert d[i ][j ] +, replace m = s, n = s d[i][] = i, i m d[][j] = j, j n Claudia Gerhold Dynamische Programmierung / 4

42 Arbeitsweise i j M a t r a t z e K a t 3 z 4 e 5 Rekursionsgleichung: d[i ][j ] +, match d[i][j ] +, delete d[i][j] = min d[i ][j] +, insert d[i ][j ] +, replace initialisiere Tabelle (trivialer Fall) s oder s sind leer für Transformation sind s.length bzw. s.length Operationen nötig Claudia Gerhold Dynamische Programmierung / 4

43 Arbeitsweise i j M a t r a t z e K a t 3 z 4 e 5 Rekursionsgleichung: d[i ][j ] +, match d[i][j ] +, delete d[i][j] = min d[i ][j] +, insert d[i ][j ] +, replace i=, j= s = K, s = M, K M d[][] = min(,, ) + = Claudia Gerhold Dynamische Programmierung / 4

44 Arbeitsweise i j M a t r a t z e K a t 3 z 4 e 5 Rekursionsgleichung: d[i ][j ] + d[i][j ] + d[i][j] = min d[i ][j] + d[i ][j ] + i=[], j=[..8], match, delete, insert, replace Claudia Gerhold Dynamische Programmierung / 4

45 Arbeitsweise i j M a t r a t z e K a t 3 z 4 e 5 Rekursionsgleichung: d[i ][j ] +, match d[i][j ] +, delete d[i][j] = min d[i ][j] +, insert d[i ][j ] +, replace i=[], j[] s = a, s = M, a M d[][] = min(,, ) + = Claudia Gerhold Dynamische Programmierung / 4

46 Arbeitsweise i j M a t r a t z e K a t 3 z 4 e 5 Rekursionsgleichung: d[i ][j ] + d[i][j ] + d[i][j] = min d[i ][j] + d[i ][j ] + i=[], j[] s = a, s = a, a = a d[][] = + =, match, delete, insert, replace Claudia Gerhold Dynamische Programmierung / 4

47 Arbeitsweise i j M a t r a t z e K a t z e Rekursionsgleichung: d[i ][j ] +, match d[i][j ] +, delete d[i][j] = min d[i ][j] +, insert d[i ][j ] +, replace d[m][n], enthält minimale Anzahl an Operationen d[5][8] = 4 Claudia Gerhold Dynamische Programmierung / 4

48 Rekonstruktion eines minimalen Editskripts i j M a t r a t z e K a t z e Rekursionsgleichung: d[i ][j ] +, match d[i][j ] +, delete d[i][j] = min d[i ][j] +, insert d[i ][j ] +, replace Editskript: REPLACE, MATCH, MATCH, INSERT, INSERT, INSERT, MATCH, MATCH Claudia Gerhold Dynamische Programmierung / 4

49 Gewichtete Levenshtein-Distanz Unterschiedliche Gewichtung der Operationen Zur Vermeidung bestimmter Operation Claudia Gerhold Dynamische Programmierung / 4

50 Aufwandsbetrachtung Tabelle m n m = string.length() + n = string.length() + Zeitaufwand ist O(m n) Platzbedarf ist ebenfalls O(m n) Claudia Gerhold Dynamische Programmierung / 4

51 Klammerung von Matrizenprodukten Problemstellung Gegeben: Folge von Matrizen (A, A,..., A n ) mit verschiedenen Dimensionen Gesucht: Produkt A A... A n Möglichst effizient: mit minimaler Anzahl skalarer Operationen berechnen Matrixmultiplikation ist assoziativ: Optimierung durch geschickte Klammerung möglich Claudia Gerhold Dynamische Programmierung / 4

52 Beispiel Drei Matrizen: A R 3, B R 3 5, C R 5 6 Zwei Möglichkeiten der Klammerung : ((A B) C)bzw.(A (B C)) ((A B) C) = ( 3 5) + ( 5 6) = 45 (A (B C)) = (3 5 6) + ( 3 6) = 7 Claudia Gerhold Dynamische Programmierung / 4

53 Beispiel Drei Matrizen: A R 3, B R 3 5, C R 5 6 Zwei Möglichkeiten der Klammerung : ((A B) C)bzw.(A (B C)) ((A B) C) = ( 3 5) + ( 5 6) = 45 (A (B C)) = (3 5 6) + ( 3 6) = 7 Anzahl skalarer Multiplikationen minimal halten Claudia Gerhold Dynamische Programmierung / 4

54 Bestimmung minimaler Anzahl skalarer Operationen (A i... A k ) (A k +... A j ), (i j) i = j: keine Kosten (keine Multiplikation, da nur eine Matrix) i < j: Teilen des Matrixprodukt an k (Position nach der geklammert wird) es gilt i k < j: (A i... A k ) (A k +... A j ) Berechnung Matrizen (A i...a k ) und (A k+...a j ), dann Multiplikation der Ergebnisse um endgültiges Produkt A i...a j zu erhalten Kosten: Kosten Berechnung (A i... A k ) + Kosten Berechnung (A k+... A j ) + Kosten der letzten Multiplikation In jedem Schritt wird k gesucht, so dass Kosten minimal sind Claudia Gerhold Dynamische Programmierung / 4

55 Rekursionsgleichung m[i][j] = {, wenn i=j min i k<j (m[i][k] + m[k + ][j] + p i p k p j ), wenn i<j m[i][j] ist die Anzahl der minimal notwendigen skalaren Operationen m[][n] minimale Anzahl skalarer Operationen für Gesamtproblem Matrix A hat Dimension p i p i Für Berechnung des Matrixprodukts sind p i p k p j skalare Operationen notwendig Claudia Gerhold Dynamische Programmierung / 4

56 Beispiel A R 6 A R A 3 R 3 A 4 R 3 A 5 R 5 A 6 R 5 8 p = [6,,, 3,, 5, 8] i j Rekursionsgleichung: m[i][j] = {, wenn i=j min i k<j (m[i][k] + m[k + ][j] +p i p k p j ), wenn i<j m[i][j] = keine Kosten (trivialer Fall) Claudia Gerhold Dynamische Programmierung / 4

57 Beispiel A R 6 A R A 3 R 3 A 4 R 3 A 5 R 5 A 6 R 5 8 p = [6,,, 3,, 5, 8] i j Rekursionsgleichung: m[i][j] = {, wenn i=j min i k<j (m[i][k] + m[k + ][j] +p i p k p j ), wenn i<j i =, j =, i k < j k = m[][] = m[][] + m[][] + p p p m[][] = ++6 = 44 Claudia Gerhold Dynamische Programmierung / 4

58 Beispiel A R 6 A R A 3 R 3 A 4 R 3 A 5 R 5 A 6 R 5 8 p = [6,,, 3,, 5, 8] i j Rekursionsgleichung: m[i][j] = {, wenn i=j min i k<j (m[i][k] + m[k + ][j] +p i p k p j ), wenn i<j i =, j =, i k < j k = m[][] = m[][] + m[][] + p p p m[][] = ++6 = 44 kein weiteres k Claudia Gerhold Dynamische Programmierung / 4

59 Beispiel A R 6 A R A 3 R 3 A 4 R 3 A 5 R 5 A 6 R 5 8 p = [6,,, 3,, 5, 8] i j Rekursionsgleichung: m[i][j] = {, wenn i=j min i k<j (m[i][k] + m[k + ][j] +p i p k p j ), wenn i<j i =, j = 3, i k < j k = m[][3] = m[][] + m[3][3] + p p p 3 m[][3] = = 7 Claudia Gerhold Dynamische Programmierung / 4

60 Beispiel A R 6 A R A 3 R 3 A 4 R 3 A 5 R 5 A 6 R 5 8 p = [6,,, 3,, 5, 8] i j Rekursionsgleichung: m[i][j] = {, wenn i=j min i k<j (m[i][k] + m[k + ][j] +p i p k p j ), wenn i<j i =, j = 3, i k < j k = m[][3] = m[][] + m[3][3] + p p p 3 m[][3] = = 7 kein weiteres k Claudia Gerhold Dynamische Programmierung / 4

61 Beispiel A R 6 A R A 3 R 3 A 4 R 3 A 5 R 5 A 6 R 5 8 p = [6,,, 3,, 5, 8] i j Rekursionsgleichung: m[i][j] = {, wenn i=j min i k<j (m[i][k] + m[k + ][j] +p i p k p j ), wenn i<j i =, j = 3, i k < j k = m[][3] = m[][] + m[][3] + p p p 3 m[][3] = = 936 Claudia Gerhold Dynamische Programmierung / 4

62 Beispiel A R 6 A R A 3 R 3 A 4 R 3 A 5 R 5 A 6 R 5 8 p = [6,,, 3,, 5, 8] i j Rekursionsgleichung: m[i][j] = {, wenn i=j min i k<j (m[i][k] + m[k + ][j] +p i p k p j ), wenn i<j i =, j = 3, i k < j k = m[][3] = m[][] + m[3][3] + p p p 3 m[][3] = = 8 Claudia Gerhold Dynamische Programmierung / 4

63 Beispiel A R 6 A R A 3 R 3 A 4 R 3 A 5 R 5 A 6 R 5 8 p = [6,,, 3,, 5, 8] i j Rekursionsgleichung: m[i][j] = {, wenn i=j min i k<j (m[i][k] + m[k + ][j] +p i p k p j ), wenn i<j i =, j = 3, i k < j k = m[][3] = m[][] + m[3][3] + p p p 3 m[][3] = = 8 kein weiteres k min(936, 8) Claudia Gerhold Dynamische Programmierung / 4

64 Beispiel A R 6 A R A 3 R 3 A 4 R 3 A 5 R 5 A 6 R 5 8 p = [6,,, 3,, 5, 8] i j Rekursionsgleichung: m[i][j] = {, wenn i=j min i k<j (m[i][k] + m[k + ][j] +p i p k p j ), wenn i<j Der optimale Wert steht in m[][6] Es werden 68 skalare Operationen benötigt Claudia Gerhold Dynamische Programmierung / 4

65 Rekonstruktion optimaler Klammerung i j Rekursionsgleichung: m[i][j] = {, wenn i=j min i k<j (m[i][k] + m[k + ][j] +p i p k p j ), wenn i<j s[][6], da hier in m der optimale Wert steht optimaler Wert bei k = 3 Klammerung nach A 3 (A A A 3 ) (A 4 A 5 A 6 ) Claudia Gerhold Dynamische Programmierung / 4

66 Rekonstruktion optimaler Klammerung i j Rekursionsgleichung: m[i][j] = {, wenn i=j min i k<j (m[i][k] + m[k + ][j] +p i p k p j ), wenn i<j s[][3], optimales Ergebnis für (A A A 3 ) optimaler Wert bei k = Klammerung nach A (A (A A 3 )) (A 4 A 5 A 6 ) Claudia Gerhold Dynamische Programmierung / 4

67 Rekonstruktion optimaler Klammerung i j Rekursionsgleichung: m[i][j] = {, wenn i=j min i k<j (m[i][k] + m[k + ][j] +p i p k p j ), wenn i<j s[4][6], optimales Ergebnis für (A 4 A 5 A 6 ) optimaler Wert bei k = 5 Klammerung nach A 5 (A (A A 3 )) ((A 4 A 5 ) A 6 ) Claudia Gerhold Dynamische Programmierung / 4

68 Aufwandsbetrachtung Tabelle n n, n = Anzahl Matrizen Größe Tabelle Aufwand pro Eintrag Zeitaufwand ist O(n n) = O(n 3 ) Claudia Gerhold Dynamische Programmierung / 4

69 Fazit Wann dynamische Programmierung anwenden? Problem rekursiv formulierbar Optimale Teilstruktur Überlappende Teilprobleme Top-Down mit Memoization vs. Bottom-Up Bottom-Up: im Allgemeinen schneller Bottom-Up: keinen Verwaltungsaufwand für Rekursionen Wenn nicht alle Teilergebnisse benötigt werden, ist Top-Down besser Wann dynamische Programmierung nicht anwenden? Anzahl Funktionswerte zu groß Speicherbedarf für Tabelle zu groß Effizientere Verfahren bekannt (z.b. Formel) Claudia Gerhold Dynamische Programmierung / 4

70 Vielen Dank für eure Aufmerksamkeit! Gibt es Fragen? Claudia Gerhold Dynamische Programmierung / 4

71 Quellen T. Cormen et al., Introduction To Algorithms, MIT Press, 9 SS/HalloWelt/DP_.pdf SS5/HalloWelt/dyn_programming.beamer.pdf folien/3_dynanimc_programming_.pdf introduction-to-dynamic-programming-fibonacci-series/ dynamic-programming-longest-common-substring/ Eff.Alg/SS/EA-SS-Kapitel5.pdf user_upload/documents/dasal/lec_handout.pdf Claudia Gerhold Dynamische Programmierung / 4

Datenstrukturen & Algorithmen

Datenstrukturen & Algorithmen Datenstrukturen & Algorithmen Matthias Zwicker Universität Bern Frühling 2010 Übersicht Dynamische Programmierung Einführung Ablaufkoordination von Montagebändern Längste gemeinsame Teilsequenz Optimale

Mehr

Dynamische Programmierung

Dynamische Programmierung Dynamische Programmierung Julian Brost 11. Juni 2013 Julian Brost Dynamische Programmierung 11. Juni 2013 1 / 39 Gliederung 1 Was ist dynamische Programmierung? Top-Down-DP Bottom-Up-DP 2 Matrix-Kettenmultiplikation

Mehr

Dynamische Programmierung

Dynamische Programmierung Dynamische Programmierung Manuel Grandeit Hallo Welt -Seminar 28.06.2011 Manuel Grandeit 1 / 40 Inhaltsübersicht Einführung Münzwechsel Was ist ein Zustand? Konstruktion einer DP-Lösung Top-Down-DP Bottom-Up-DP

Mehr

Algorithmen und Datenstrukturen 1 Kapitel 3

Algorithmen und Datenstrukturen 1 Kapitel 3 Algorithmen und Datenstrukturen 1 Kapitel 3 Technische Fakultät robert@techfak.uni-bielefeld.de Vorlesung, U. Bielefeld, Winter 2005/2006 3.6 Dynamische Programmierung Die rekursive Problemzerlegung kann

Mehr

Dynamische Programmierung. Problemlösungsstrategie der Informatik

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

Mehr

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

Dynamische Programmierung

Dynamische Programmierung Dynamische Programmierung Hannes Schwarz - WS-06/07 Hannes.Schwarz@uni-konstanz.de Getting Ready for the ACM Programming Contest Übersicht Übersicht Was ist dynamische Programmierung? Entwicklung eines

Mehr

Ein Dieb raubt einen Laden aus; um möglichst flexibel zu sein, hat er für die Beute nur einen Rucksack dabei

Ein Dieb raubt einen Laden aus; um möglichst flexibel zu sein, hat er für die Beute nur einen Rucksack dabei 7/7/ Das Rucksack-Problem Englisch: Knapsack Problem Das Problem: "Die Qual der Wahl" Ein Dieb raubt einen Laden aus; um möglichst flexibel zu sein, hat er für die Beute nur einen Rucksack dabei Im Ladens

Mehr

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

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

Mehr

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

Gliederung. Algorithmen und Datenstrukturen II. Problem: Längste gemeinsame Teilsequenz. Problem: Längste gemeinsame Teilsequenz

Gliederung. Algorithmen und Datenstrukturen II. Problem: Längste gemeinsame Teilsequenz. Problem: Längste gemeinsame Teilsequenz Gliederung Algorithmen und Datenstrukturen II Algorithmen zur Textverarbeitung II D. Rösner Institut für Wissens- und Sprachverarbeitung Fakultät für Informatik Otto-von-Guericke Universität Magdeburg

Mehr

Algorithmische Bioinformatik

Algorithmische Bioinformatik Algorithmische Bioinformatik Effiziente Berechnung des Editabstands Dynamische Programmierung Ulf Leser Wissensmanagement in der Bioinformatik Inhalt dieser Vorlesung Rekursive Definition des Editabstands

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

5.4 Das Rucksackproblem

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

Mehr

Optimierung. Algorithmik III Algorithmen und Modelle für kontinuierliche Datenstrukturen. Vorgehen: Dynamische Programmierung

Optimierung. Algorithmik III Algorithmen und Modelle für kontinuierliche Datenstrukturen. Vorgehen: Dynamische Programmierung Optimierung Algorithmik III Algorithmen und Modelle für kontinuierliche Datenstrukturen Optimierung I Dynamisches Programmieren Günther Greiner Lehrstuhl für Graphische Datenverarbeitung Sommersemester

Mehr

Algorithmische Bioinformatik 1

Algorithmische Bioinformatik 1 Algorithmische Bioinformatik 1 Dr. Hanjo Täubig Lehrstuhl für Effiziente Algorithmen (Prof. Dr. Ernst W. Mayr) Institut für Informatik Technische Universität München Sommersemester 2009 Übersicht Paarweises

Mehr

Effiziente Algorithmen und Datenstrukturen I. Kapitel 10: Lineare Algebra

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

Mehr

Dynamisches Programmieren - Problemstruktur

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

Mehr

11. Rekursion, Komplexität von Algorithmen

11. Rekursion, Komplexität von Algorithmen 11. Rekursion, Komplexität von Algorithmen Teil 2 Java-Beispiele: Power1.java Hanoi.java K. Bothe, Institut für Informatik, HU Berlin, GdP, WS 2015/16 Version: 23. Nov. 2015 Anwendung der Rekursion Rekursiv

Mehr

Algorithmen und Datenstrukturen

Algorithmen und Datenstrukturen Algorithmen und Datenstrukturen Prof. Dr. Ralf Möller Universität zu Lübeck Institut für Informationssysteme Tanya Braun (Übungen) sowie viele Tutoren Danksagung Animationen wurden übernommen aus dem Kurs:

Mehr

Klausur Informatik 1 SS 08. Aufgabe 1 2 3 4 Max. Punkte 30 40 40 10 Punkte. Gesamtpunkte:

Klausur Informatik 1 SS 08. Aufgabe 1 2 3 4 Max. Punkte 30 40 40 10 Punkte. Gesamtpunkte: Klausur Informatik 1 SS 08 Aufgabe 1 2 3 4 Max. Punkte 30 40 40 10 Punkte Gesamtpunkte: Note: Bearbeitungszeit 120 Minuten Keine Hilfsmittel Tragen Sie als erstes Ihren vollständigen Namen und Ihre Matrikelnummer

Mehr

Seminar über aktuelle Forschungsthemen in der Algorithmik, Dozent Prof. Dr. Alt;

Seminar über aktuelle Forschungsthemen in der Algorithmik, Dozent Prof. Dr. Alt; Seminar über aktuelle Forschungsthemen in der Algorithmik, Dozent Prof. Dr. Alt Referent Matthias Rost 1 Einleitung Definitionen Maximaler Dynamischer Fluss Algorithmus von Ford-Fulkerson Techniken zur

Mehr

37 Gauß-Algorithmus und lineare Gleichungssysteme

37 Gauß-Algorithmus und lineare Gleichungssysteme 37 Gauß-Algorithmus und lineare Gleichungssysteme 37 Motivation Lineare Gleichungssysteme treten in einer Vielzahl von Anwendungen auf und müssen gelöst werden In Abschnitt 355 haben wir gesehen, dass

Mehr

Ranking by Reordering Tobias Joppen

Ranking by Reordering Tobias Joppen Ranking by Reordering Tobias Joppen 09.07.2014 Fachbereich Informatik Knowledge Engineering Prof. Johannes Fürnkranz 1 Überblick Einleitung Rank-differential Methode Idee Problemdefinition Beispiel Vereinfachung

Mehr

Projekt Systementwicklung

Projekt Systementwicklung Projekt Systementwicklung Effiziente Codierung: Laufzeitoptimierung Prof. Dr. Nikolaus Wulff Effiziente Codierung Der Wunsch effizienten Code zu schreiben entstammt mehreren Quellen: Zielplattformen mit

Mehr

Schulmethode zur Multiplikation von n-stelligen Binärzahlen a und b: (evtl. fallen Zeilen weg, wenn das zugehörige Bit des Multiplikators 0 ist).

Schulmethode zur Multiplikation von n-stelligen Binärzahlen a und b: (evtl. fallen Zeilen weg, wenn das zugehörige Bit des Multiplikators 0 ist). 4-1 4. Algorithmen auf Zahlen Themen: Multiplikation von binären Zahlen Matrixmultiplikation 4.1 Multiplikation ganzer Zahlen Schulmethode zur Multiplikation von n-stelligen Binärzahlen a und b: n=8: aaaaaaaa

Mehr

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

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

Mehr

Beispiele 1. Gegeben sei das lineare Gleichungssystem mit erweiterter Matrix (A

Beispiele 1. Gegeben sei das lineare Gleichungssystem mit erweiterter Matrix (A 133 e 1. Gegeben sei das lineare Gleichungssystem mit erweiterter Matrix 1 3 2 1 1 2 3 0. 1 3 2 1 2. Gegeben sei das lineare Gleichungssystem mit erweiterter Matrix 1 3 2 1 1 2 3 0. 1 3 2 1 Schritte des

Mehr

Fortgeschrittene Netzwerk- und Graph-Algorithmen

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

Mehr

Kombinatorische Optimierung

Kombinatorische Optimierung Kombinatorische Optimierung Zuweisungsprobleme 2 1 3 5 4 Kombinatorische Optimierung Rucksackpackproblem 1 10 2 4 6 3 5 8 6 Aufspannende Bäume Travelling Salesman VLSI Design C. Kanzow, M. Gerdts Kombinatorische

Mehr

Speicher und Adressraum

Speicher und Adressraum Linearer Speicher (Adressraum) Technische Universität München Speicher und Adressraum Freie Speicherhalde (Heap) Freier Speicherstapel (Stack) Globale Variablen Bibliotheksfunktionen Laufzeitsystem Programmcode

Mehr

Studiengang Informatik der FH Gießen-Friedberg. Sequenz-Alignment. Jan Schäfer. WS 2006/07 Betreuer: Prof. Dr. Klaus Quibeldey-Cirkel

Studiengang Informatik der FH Gießen-Friedberg. Sequenz-Alignment. Jan Schäfer. WS 2006/07 Betreuer: Prof. Dr. Klaus Quibeldey-Cirkel Studiengang Informatik der FH Gießen-Friedberg Sequenz-Alignment Jan Schäfer WS 2006/07 Betreuer: Prof. Dr. Klaus Quibeldey-Cirkel Überblick Einführung Grundlagen Wann ist das Merkmal der Ähnlichkeit erfüllt?

Mehr

1 Definition. 2 Besondere Typen. 2.1 Vektoren und transponieren A = 2.2 Quadratische Matrix. 2.3 Diagonalmatrix. 2.

1 Definition. 2 Besondere Typen. 2.1 Vektoren und transponieren A = 2.2 Quadratische Matrix. 2.3 Diagonalmatrix. 2. Definition Die rechteckige Anordnung von m n Elementen a ij in m Zeilen und n Spalten heißt m n- Matrix. Gewöhnlich handelt es sich bei den Elementen a ij der Matrix um reelle Zahlen. Man nennt das Paar

Mehr

Matrix-Algorithmen Matrixmultiplikation Allgemeiner Matrizen

Matrix-Algorithmen Matrixmultiplikation Allgemeiner Matrizen Matrix-Algorithmen Matrixmultiplikation Allgemeiner Matrizen 15.04.2011 Inhaltsverzeichnis Grundlagen 1 Grundlagen Matrizen Vektoren 2 Skalarprodukt und Saxpy Matrix-Vektor-Multiplikation Gaxpy Matrix-Matrix-Multiplikation

Mehr

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

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

Mehr

Algorithmen & Programmierung. Rekursive Funktionen (1)

Algorithmen & Programmierung. Rekursive Funktionen (1) Algorithmen & Programmierung Rekursive Funktionen (1) Berechnung der Fakultät Fakultät Die Fakultät N! einer nichtnegativen ganzen Zahl N kann folgendermaßen definiert werden: d.h. zur Berechnung werden

Mehr

2. Repräsentationen von Graphen in Computern

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

Mehr

Definition, Rechenoperationen, Lineares Gleichungssystem

Definition, Rechenoperationen, Lineares Gleichungssystem Bau und Gestaltung, Mathematik, T. Borer Aufgaben / Aufgaben Matrizen Definition, Rechenoperationen, Lineares Gleichungssystem Lernziele - die Bezeichnung der Matrixelemente kennen und verstehen. - den

Mehr

Bioinformatik. Lokale Alignierung Gapkosten. Silke Trißl / Ulf Leser Wissensmanagement in der. Bioinformatik

Bioinformatik. Lokale Alignierung Gapkosten. Silke Trißl / Ulf Leser Wissensmanagement in der. Bioinformatik Bioinformatik Lokale Alignierung Gapkosten Silke Trißl / Ulf Leser Wissensmanagement in der Bioinformatik Inhalt dieser Vorlesung Ähnlichkeit Lokales und globales Alignment Gapped Alignment Silke Trißl:

Mehr

Alignment-Verfahren zum Vergleich biologischer Sequenzen

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

Mehr

Übungen zu Einführung in die Lineare Algebra und Geometrie

Übungen zu Einführung in die Lineare Algebra und Geometrie Übungen zu Einführung in die Lineare Algebra und Geometrie Andreas Cap Sommersemester 2010 Kapitel 1: Einleitung (1) Für a, b Z diskutiere analog zur Vorlesung das Lösungsverhalten der Gleichung ax = b

Mehr

11 Dynamisches Programmieren

11 Dynamisches Programmieren Algorithmen und Datenstrukturen 279 11 Dynamisches Programmieren Gegenstand dieses und des nächsten Kapitels sind noch einmal Algorithmen. Zunächst beschreiben wir das sog. dynamische Programmieren. kein

Mehr

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

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

Mehr

Dynamische Optimierung im Dienstleistungsbereich

Dynamische Optimierung im Dienstleistungsbereich Dynamische Optimierung im Dienstleistungsbereich Univ.-Prof. Dr. Jochen Gönsch Universität Duisburg-Essen Mercator School of Management Lehrstuhl für Betriebswirtschaftslehre, insb. Service Operations

Mehr

Matrizen und Determinanten

Matrizen und Determinanten Matrizen und Determinanten 1 Matrizen und Determinanten 1 Einführung in den Matrizenbegriff Zur Beschreibung und Lösung vieler physikalischer Probleme ist die Vektorrechnung vonnöten Durch Verwendung von

Mehr

Algorithmische Methoden zur Netzwerkanalyse

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

Mehr

Achtung: Groß O definiert keine totale Ordnungsrelation auf der Menge aller Funktionen! Beweis: Es gibt positive Funktionen f und g so, dass

Achtung: Groß O definiert keine totale Ordnungsrelation auf der Menge aller Funktionen! Beweis: Es gibt positive Funktionen f und g so, dass Achtung: Groß O definiert keine totale Ordnungsrelation auf der Menge aller Funktionen! Beweis: Es gibt positive Funktionen f und g so, dass f O g und auch g O f. Wähle zum Beispiel und G. Zachmann Informatik

Mehr

Konzepte und Methoden der Programmierung Lösungen P. Fierz / FS 2012

Konzepte und Methoden der Programmierung Lösungen P. Fierz / FS 2012 Kapitel 1 Rekursion Alle Programme finden Sie im mitgelieferten zip-file. Aufgabe 1.1 [Fakultät] Für diese Übung brauchen Sie die Klassen Factorial Skelett und MyTimer. n! ist rekursiv folgendermassen

Mehr

Sortieralgorithmen. Inhalt: InsertionSort BubbleSort QuickSort. Marco Block

Sortieralgorithmen. Inhalt: InsertionSort BubbleSort QuickSort. Marco Block Inhalt: InsertionSort BubbleSort QuickSort Block M.: "Java-Intensivkurs - In 14 Tagen lernen Projekte erfolgreich zu realisieren", Springer-Verlag 2007 InsertionSort I Das Problem unsortierte Daten in

Mehr

9.2 Invertierbare Matrizen

9.2 Invertierbare Matrizen 34 9.2 Invertierbare Matrizen Die Division ist als Umkehroperation der Multiplikation definiert. Das heisst, für reelle Zahlen a 0 und b gilt b = a genau dann, wenn a b =. Übertragen wir dies von den reellen

Mehr

Student: Alexander Carls Matrikelnummer: Aufgabe: Beschreibung des euklidischen Algorithmus Datum:

Student: Alexander Carls Matrikelnummer: Aufgabe: Beschreibung des euklidischen Algorithmus Datum: Berufsakademie Stuttgart / Außenstelle Horb Studienbereich Technik Studiengang Informationstechnik Kurs IT2006, 2.Semester Dozent: Olaf Herden Student: Alexander Carls Matrikelnummer: 166270 Aufgabe: Beschreibung

Mehr

Zugriff auf Matrizen. Anhängen von Elementen. Punktweise Operatoren. Vektoren und Matrizen in MATLAB II

Zugriff auf Matrizen. Anhängen von Elementen. Punktweise Operatoren. Vektoren und Matrizen in MATLAB II Zugriff auf Matrizen. Anhängen von Elementen. Punktweise Operatoren. Vektoren und Matrizen in MATLAB II Matrixzugriff Wir wollen nun unsere Einführung in die Arbeit mit Vektoren und Matrizen in MATLAB

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

Matrizen, Determinanten, lineare Gleichungssysteme

Matrizen, Determinanten, lineare Gleichungssysteme Matrizen, Determinanten, lineare Gleichungssysteme 1 Matrizen Definition 1. Eine Matrix A vom Typ m n (oder eine m n Matrix, A R m n oder A C m n ) ist ein rechteckiges Zahlenschema mit m Zeilen und n

Mehr

Meinten Sie...? Wie Suchmaschinen mit Hilfe des Levenshtein-Algorithmus und Soundex ähnliche Wörter finden.

Meinten Sie...? Wie Suchmaschinen mit Hilfe des Levenshtein-Algorithmus und Soundex ähnliche Wörter finden. Meinten Sie...? Wie Suchmaschinen mit Hilfe des Levenshtein-Algorithmus und Soundex ähnliche Wörter finden. 24.11.2010, Christiane Olschewski Kontakt: Olschewski@LaminARt.de, Olschewski@Olschewski.org

Mehr

MafI I: Logik & Diskrete Mathematik (F. Hoffmann)

MafI I: Logik & Diskrete Mathematik (F. Hoffmann) Lösungen zum 14. und letzten Aufgabenblatt zur Vorlesung MafI I: Logik & Diskrete Mathematik (F. Hoffmann) 1. Ungerichtete Graphen (a) Beschreiben Sie einen Algorithmus, der algorithmisch feststellt, ob

Mehr

Einstieg in die Informatik mit Java

Einstieg in die Informatik mit Java 1 / 20 Einstieg in die Informatik mit Java Rekursion Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 20 1 Überblick 2 Rekursion 3 Rekursive Sortieralgorithmen 4 Backtracking

Mehr

Übungspaket 23 Mehrdimensionale Arrays

Übungspaket 23 Mehrdimensionale Arrays Übungspaket 23 Mehrdimensionale Arrays Übungsziele: Skript: Deklaration und Verwendung mehrdimensionaler Arrays Kapitel: 49 Semester: Wintersemester 2016/17 Betreuer: Kevin, Matthias, Thomas und Ralf Synopsis:

Mehr

Bioinformatik. Dynamische Programmierung. Ulf Leser Wissensmanagement in der. Bioinformatik

Bioinformatik. Dynamische Programmierung. Ulf Leser Wissensmanagement in der. Bioinformatik Bioinformatik Dynamische Programmierung Ulf Leser Wissensmanagement in der Bioinformatik Motivation BLAST / FASTA und Verwandte sind *die* Bioinformatik Anwendung Teilweise synonym für Bioinformatik rundlegende

Mehr

( ) Lineare Gleichungssysteme

( ) Lineare Gleichungssysteme 102 III. LINEARE ALGEBRA Aufgabe 13.37 Berechne die Eigenwerte der folgenden Matrizen: ( ) 1 1 0 1 1 2 0 3 0 0, 2 1 1 1 2 1. 1 1 0 3 Aufgabe 13.38 Überprüfe, ob die folgenden symmetrischen Matrizen positiv

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

Besteht eine Matrix nur aus einer Spalte (Zeile), so spricht man auch von einem Spaltenvektor (Zeilenvektor)

Besteht eine Matrix nur aus einer Spalte (Zeile), so spricht man auch von einem Spaltenvektor (Zeilenvektor) Matrizenrechnung. Matrizen Matrizen sind bereits im Kapitel Lineare Gleichungssysteme aufgetreten. Unter einer (m n) -Matrix A verstehen wir ein rechteckiges Zahlenschema mit m Zeilen und n Spalten. Der.

Mehr

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

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

Mehr

Einstieg in die Informatik mit Java

Einstieg in die Informatik mit Java 1 / 32 Einstieg in die Informatik mit Java Effizienz Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 32 1 Überblick: was ist Effizienz? 2 Landau-Symbole 3 Eier im Korb 4

Mehr

Lineare Gleichungssysteme (Teschl/Teschl 11.1)

Lineare Gleichungssysteme (Teschl/Teschl 11.1) Lineare Gleichungssysteme (Teschl/Teschl.) Ein Lineares Gleichungssystem (LGS) besteht aus m Gleichungen mit n Unbekannten x,...,x n und hat die Form a x + a 2 x 2 +... + a n x n b a 2 x + a 22 x 2 +...

Mehr

Numerische Methoden und Algorithmen in der Physik

Numerische Methoden und Algorithmen in der Physik Numerische Methoden und Algorithmen in der Physik Hartmut Stadie, Christian Autermann 29.01.2009 Numerische Methoden und Algorithmen in der Physik Hartmut Stadie 1/ 18 Einführung Fourier-Transformation

Mehr

14. Algorithmus der Woche Gewinnstrategie für ein Streichholzspiel

14. Algorithmus der Woche Gewinnstrategie für ein Streichholzspiel 14. Algorithmus der Woche Gewinnstrategie für ein Streichholzspiel Autor Jochen Könemann, University of Waterloo Ich bin gerade ein bisschen verärgert und, zugegeben, auch etwas verwirrt. Gestern Abend

Mehr

6. Übungsblatt zur Mathematik I für Maschinenbau

6. Übungsblatt zur Mathematik I für Maschinenbau Fachbereich Mathematik Prof. Dr. M. Joswig Dr. habil. Sören Kraußhar Dipl.-Math. Katja Kulas 6. Übungsblatt zur Mathematik I für Maschinenbau Gruppenübung WS 2/ 25..-.2. Aufgabe G (Lineare Gleichungssysteme)

Mehr

In diesem Abschnitt betrachten wir nur quadratische Matrizen mit Komponenten aus einem Körper K, also A K n n für ein n N. Wenn (mit einem n > 1)

In diesem Abschnitt betrachten wir nur quadratische Matrizen mit Komponenten aus einem Körper K, also A K n n für ein n N. Wenn (mit einem n > 1) 34 Determinanten In diesem Abschnitt betrachten wir nur quadratische Matrizen mit Komponenten aus einem Körper K, also A K n n für ein n N Wenn (mit einem n > 1) a 11 a 12 a 1n a 21 a 22 a 2n A =, (1)

Mehr

Euklidische Distanzmatrizen. Andrei Grecu

Euklidische Distanzmatrizen. Andrei Grecu Euklidische Distanzmatrizen Andrei Grecu Übersicht Motivation Definition und Problemstellung Algo 1: Semidefinite Programmierung Algo 2: Multidimensional Scaling Algo 3: Spring Embedder Algo 4: Genetischer

Mehr

Datenstrukturen und Algorithmen

Datenstrukturen und Algorithmen Datenstrukturen und Algorithmen VO 708.031 27.10.2011 stefan.klampfl@tugraz.at 1 Wiederholung Wir vergleichen Algorithmen anhand des ordnungsmäßigen Wachstums von T(n), S(n), Asymptotische Schranken: O-Notation:

Mehr

Routing Algorithmen. Begriffe, Definitionen

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

Mehr

Optimierungsprobleme. B. Langfeld, M. Ritter, B. Wilhelm Diskrete Optimierung: Fallstudien aus der Praxis

Optimierungsprobleme. B. Langfeld, M. Ritter, B. Wilhelm Diskrete Optimierung: Fallstudien aus der Praxis Optimierungsprobleme Instanz eines Optimierungsproblems zulässiger Bereich (meist implizit definiert) Zielfunktion Optimierungsrichtung opt {max, min} Optimierungsproblem Menge von Instanzen meist implizit

Mehr

Customization (Zuschneiden)

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

Mehr

SS11 Effiziente Algorithmen 5. Kapitel: Dynamische Programmierung

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

Mehr

Lineare Gleichungssysteme

Lineare Gleichungssysteme Christian Serpé Universität Münster 14. September 2011 Christian Serpé (Universität Münster) 14. September 2011 1 / 56 Gliederung 1 Motivation Beispiele Allgemeines Vorgehen 2 Der Vektorraum R n 3 Lineare

Mehr

Algorithmen und Datenstrukturen

Algorithmen und Datenstrukturen Algorithmen und Datenstrukturen Prof. Dr. Ralf Möller Universität zu Lübeck Institut für Informationssysteme Stefan Werner (Übungen) sowie viele Tutoren Teilnehmerkreis und Voraussetzungen Studiengänge

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

Copyright, Page 1 of 5 Die Determinante

Copyright, Page 1 of 5 Die Determinante wwwmathematik-netzde Copyright, Page 1 of 5 Die Determinante Determinanten sind ein äußerst wichtiges Instrument zur Untersuchung von Matrizen und linearen Abbildungen Außerhalb der linearen Algebra ist

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

Algorithmus zum Graphen-Matching. und. Anwendung zur inhaltsbasierten Bildersuche

Algorithmus zum Graphen-Matching. und. Anwendung zur inhaltsbasierten Bildersuche Algorithmus zum Graphen-Matching und Anwendung zur inhaltsbasierten Bildersuche Gliederung 1. Einführung 2. Algorithmus Beschreibung Beispiel Laufzeit 3. Anwendung des Algorithmus Seite 1 von 18 1. Einführung

Mehr

2. Aufgabe Vereinfachen Sie die folgenden Ausdrücke so, dass möglichst wenige Multiplikationen ausgeführt werden müssen!

2. Aufgabe Vereinfachen Sie die folgenden Ausdrücke so, dass möglichst wenige Multiplikationen ausgeführt werden müssen! Studiengang: PT/LOT/PVHT Semester: WS 9/ lgebra Serie: 2 Thema: Matrizen, Determinanten. ufgabe Gegeben sind die Matrizen = µ 2 3 2 µ 3 2 4, B = 2 Berechnen Sie: a) 2 + 3B b) B 2 c) B T d) B T e) T B f)

Mehr

Komplexität von Algorithmen

Komplexität von Algorithmen Komplexität von Algorithmen Prof. Dr. Christian Böhm WS 07/08 in Zusammenarbeit mit Gefei Zhang http://www.dbs.informatik.uni-muenchen.de/lehre/nfinfosw Ressourcenbedarf - Größenordnungen Prozesse verbrauchen

Mehr

Optimierung. Optimierung. Vorlesung 2 Optimierung ohne Nebenbedingungen Gradientenverfahren. 2013 Thomas Brox, Fabian Kuhn

Optimierung. Optimierung. Vorlesung 2 Optimierung ohne Nebenbedingungen Gradientenverfahren. 2013 Thomas Brox, Fabian Kuhn Optimierung Vorlesung 2 Optimierung ohne Nebenbedingungen Gradientenverfahren 1 Minimierung ohne Nebenbedingung Ein Optimierungsproblem besteht aus einer zulässigen Menge und einer Zielfunktion Minimum

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

Beginn der Vorlesung zur Numerik I (Wintersemester 2010/2011)

Beginn der Vorlesung zur Numerik I (Wintersemester 2010/2011) M. Sc. Frank Gimbel Beginn der Vorlesung zur Numerik I (Wintersemester 2010/2011) 1 Motivation Ziel ist es, ein gegebenes lineares Gleichungssystem der Form Ax = b (1) mit x, b R n und A R n n zu lösen.

Mehr

One of the few resources increasing faster than the speed of computer hardware is the amount of data to be processed. Bin Hu

One of the few resources increasing faster than the speed of computer hardware is the amount of data to be processed. Bin Hu Bin Hu Algorithmen und Datenstrukturen 2 Arbeitsbereich fr Algorithmen und Datenstrukturen Institut fr Computergraphik und Algorithmen Technische Universität Wien One of the few resources increasing faster

Mehr

1 Singulärwertzerlegung und Pseudoinverse

1 Singulärwertzerlegung und Pseudoinverse Singulärwertzerlegung und Pseudoinverse Singulärwertzerlegung A sei eine Matrix mit n Spalten und m Zeilen. Zunächst sei n m. Bilde B = A A. Dies ist eine n n-matrix. Berechne die Eigenwerte von B. Diese

Mehr

Theoretische Informatik 1

Theoretische Informatik 1 Theoretische Informatik 1 Boltzmann Maschine David Kappel Institut für Grundlagen der Informationsverarbeitung TU Graz SS 2014 Übersicht Boltzmann Maschine Neuronale Netzwerke Die Boltzmann Maschine Gibbs

Mehr

Homologie und Sequenzähnlichkeit. Prof. Dr. Antje Krause FH Bingen 06721 / 409 253 akrause@fh-bingen.de

Homologie und Sequenzähnlichkeit. Prof. Dr. Antje Krause FH Bingen 06721 / 409 253 akrause@fh-bingen.de Homologie und Sequenzähnlichkeit Prof. Dr. Antje Krause FH Bingen 06721 / 409 253 akrause@fh-bingen.de Homologie Verwandtschaft aufgrund gleicher Abstammung basiert auf Speziation (Artbildung): aus einer

Mehr

Kapitel 12: Schnelles Bestimmen der Frequent Itemsets

Kapitel 12: Schnelles Bestimmen der Frequent Itemsets Einleitung In welchen Situationen ist Apriori teuer, und warum? Kapitel 12: Schnelles Bestimmen der Frequent Itemsets Data Warehousing und Mining 1 Data Warehousing und Mining 2 Schnelles Identifizieren

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

Vorlesung 4 BETWEENNESS CENTRALITY

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

Mehr

Informationstheorie als quantitative Methode in der Dialektometrie

Informationstheorie als quantitative Methode in der Dialektometrie Informationstheorie als quantitative Methode in der Dialektometrie 1 Informationstheorie als quantitative Methode in der Dialektometrie Informationstheorie als quantitative Methode in der Dialektometrie

Mehr

35 Stetige lineare Abbildungen

35 Stetige lineare Abbildungen 171 35 Stetige lineare Abbildungen Lernziele: Konzepte: Lineare Operatoren und ihre Normen Resultate: Abschätzungen für Matrizennormen Kompetenzen: Abschätzung von Operatornormen 35.1 Lineare Abbildungen.

Mehr

Mathematik für Wirtschaftswissenschaftler, WS 10/11 Musterlösungen zu Aufgabenblatt 11

Mathematik für Wirtschaftswissenschaftler, WS 10/11 Musterlösungen zu Aufgabenblatt 11 Mathematik für Wirtschaftswissenschaftler, WS / Musterlösungen zu Aufgabenblatt Aufgabe 76: Bestimmen Sie mittels Gauß-Elimination die allgemeine Lösung der folgenden linearen Gleichungssysteme Ax b: a)

Mehr

Kapitel III. Aufbau des Zahlensystems

Kapitel III. Aufbau des Zahlensystems Kapitel III. Aufbau des Zahlensystems 1 Addition und Multiplikation natürlicher Zahlen Wir wollen erklären, wie man natürliche Zahlen addiert und multipliziert und dabei nur den Begriff das Zählens verwenden.

Mehr

Parallelisierung des Levenshtein Algorithmus

Parallelisierung des Levenshtein Algorithmus Köln, den 30. August 2014 Studiengang Informationsverarbeitung Sommersemester 2014 Sprachliche Informationsverarbeitung Hauptseminar: Angewandte Linguistische Datenverarbeitung bei Prof. Dr. Jürgen Rolshoven

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

Einführung in die Informatik I

Einführung in die Informatik I Einführung in die Informatik I Berechenbarkeit und Komplexität Prof. Dr. Nikolaus Wulff Berechenbarkeit Im Rahmen der Turingmaschine fiel zum ersten Mal der Begriff Berechenbarkeit. Ein Funktion f heißt

Mehr