Dynamische Programmierung
|
|
- Busso Holtzer
- vor 6 Jahren
- Abrufe
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 Matthias Zwicker Universität Bern Frühling 2010 Übersicht Dynamische Programmierung Einführung Ablaufkoordination von Montagebändern Längste gemeinsame Teilsequenz Optimale
MehrDynamische 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
MehrDynamische 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
MehrAlgorithmen 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
MehrDynamische 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
MehrEntscheidungsbä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
MehrDynamische 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
MehrEin 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
MehrProgrammierung 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
Mehr16. 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
MehrGliederung. 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
MehrAlgorithmische Bioinformatik
Algorithmische Bioinformatik Effiziente Berechnung des Editabstands Dynamische Programmierung Ulf Leser Wissensmanagement in der Bioinformatik Inhalt dieser Vorlesung Rekursive Definition des Editabstands
MehrBabeș-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
Mehr5.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
MehrOptimierung. 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
MehrAlgorithmische 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
MehrEffiziente 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)
MehrDynamisches 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)
Mehr11. 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
MehrAlgorithmen 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:
MehrKlausur 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
MehrSeminar ü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
Mehr37 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
MehrRanking 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
MehrProjekt Systementwicklung
Projekt Systementwicklung Effiziente Codierung: Laufzeitoptimierung Prof. Dr. Nikolaus Wulff Effiziente Codierung Der Wunsch effizienten Code zu schreiben entstammt mehreren Quellen: Zielplattformen mit
MehrSchulmethode 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
MehrAm 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
MehrBeispiele 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
MehrFortgeschrittene 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
MehrKombinatorische 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
MehrSpeicher und Adressraum
Linearer Speicher (Adressraum) Technische Universität München Speicher und Adressraum Freie Speicherhalde (Heap) Freier Speicherstapel (Stack) Globale Variablen Bibliotheksfunktionen Laufzeitsystem Programmcode
MehrStudiengang 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?
Mehr1 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
MehrMatrix-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).
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
MehrAlgorithmen & 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
Mehr2. 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
MehrDefinition, 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
MehrBioinformatik. 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:
MehrAlignment-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 Andreas Cap Sommersemester 2010 Kapitel 1: Einleitung (1) Für a, b Z diskutiere analog zur Vorlesung das Lösungsverhalten der Gleichung ax = b
Mehr11 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
MehrDatenbankanwendung. 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
MehrDynamische 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
MehrMatrizen 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
MehrAlgorithmische 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
MehrAchtung: 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
MehrKonzepte 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
MehrSortieralgorithmen. 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
Mehr9.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
MehrStudent: 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
MehrZugriff 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
MehrDatenstrukturen & 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
MehrMatrizen, 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
MehrMeinten 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
MehrMafI 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
MehrEinstieg 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 Übungsziele: Skript: Deklaration und Verwendung mehrdimensionaler Arrays Kapitel: 49 Semester: Wintersemester 2016/17 Betreuer: Kevin, Matthias, Thomas und Ralf Synopsis:
MehrBioinformatik. 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
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
MehrElemente 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
MehrBesteht 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: (K4) Joost-Pieter Katoen Lehrstuhl für Informatik 2 Software Modeling and Verification Group http://www-i2.informatik.rwth-aachen.de/i2/dsal12/ 20.
MehrEinstieg 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
MehrLineare 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 +...
MehrNumerische 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
Mehr14. 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
Mehr6. Ü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)
MehrIn 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)
MehrEuklidische 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
MehrDatenstrukturen 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:
MehrRouting 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
MehrOptimierungsprobleme. 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
MehrCustomization (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
MehrSS11 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
MehrLineare 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
MehrAlgorithmen 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
MehrEffiziente 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
MehrCopyright, 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
MehrAlgorithmen 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
MehrAlgorithmus 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
Mehr2. 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)
MehrKomplexitä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
MehrOptimierung. 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
MehrAufabe 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,
MehrBeginn 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.
MehrOne 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
Mehr1 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
MehrTheoretische 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
MehrHomologie 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
MehrKapitel 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
MehrKostenmaß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);
MehrVorlesung 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/
MehrInformationstheorie 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
Mehr35 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.
MehrMathematik 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)
MehrKapitel 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.
MehrParallelisierung 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
MehrDatenstruktur, 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)
MehrEinfü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