Gierige Algorithmen Interval Scheduling
|
|
|
- Christa Otto
- vor 8 Jahren
- Abrufe
Transkript
1 Gierige Algorithmen Interval Scheduling IntervalScheduling(s,f). n length[s] 2. A {} 3. j 4. for i 2 to n do 5. if s[i] f[j] then 6. A A {i} 7. j i 8. return A
2 Gierige Algorithmen Interval Scheduling Beweisidee: Der gierige Algorithmus liegt vorn Wir messen Fortschritt des Algorithmus Schritt für Schritt Zeige: Der gierige Algorithmus macht mindestens genau so viel Fortschritt wie jeder beliebige andere Algorithmus Beobachtung: A ist eine Menge von kompatiblen Anfragen. 2
3 Gierige Algorithmen Interval Scheduling Wie können wir Optimalität zeigen? Sei O optimale Menge von Intervallen u. U. viele optimale Lösungen Wir zeigen: A = O 3
4 Gierige Algorithmen Interval Scheduling Wie können wir Optimalität zeigen? Sei O optimale Menge von Intervallen u. U. viele optimale Lösungen Wir zeigen: A = O 4
5 Gierige Algorithmen Interval Scheduling Notation: i,, i Intervalle von A in Ordnung des Hinzufügen j,, j Intervalle von O sortiert nach Endpunkt k m Zu zeigen: k = m i i 2 i 3 j j i 3 4 j 2 j 4 5
6 Gierige Algorithmen Interval Scheduling Der gierige Algorithmus liegt vorn: Idee des Algorithmus: Die Resource soll so früh wie möglich wieder frei werden Dies ist war für das erste Interval: f[i ] f[j ] Zu zeigen: Gilt für alle Intervalle i i 2 i 3 j j i 3 4 j 2 j 4 6
7 Gierige Algorithmen Interval Scheduling Lemma 8.4: Für alle r k gilt f[i r ] f[j ]. r i i 2 i 3 j j i 3 4 j 2 j 4 7
8 Gierige Algorithmen Interval Scheduling Lemma 8.4: Für alle r k gilt f[i r ] f[j ]. r f[i ], f[j ] i i 2 i 3 j j i 3 4 j 2 j 4 8
9 Gierige Algorithmen Interval Scheduling Lemma 8.4: Für alle r k gilt f[i r ] f[j ]. r f[i ] 2 i i 2 i 3 j j i 3 4 j 2 f[j ] 2 j 4 9
10 Gierige Algorithmen Interval Scheduling Lemma 8.4: Für alle r k gilt f[i r ] f[j ]. r f[i ] f[j ] 3 3 i i 2 i 3 j j i 3 4 j 2 j 4 0
11 Gierige Algorithmen Interval Scheduling Lemma 8.4: Für alle r k gilt f[i r ] f[j ]. r f[i ] 4 f[j ] i 4 i 2 i 3 j j i 3 4 j 2 j 4
12 Gierige Algorithmen Interval Scheduling Satz 8.5: Die von Algorithmus IntervalSchedule berechnete Lösung A ist optimal. i i 2 i 3 j j i 3 4 j 2 j 4 2
13 Gierige Algorithmen Interval Scheduling IntervalScheduling(s,f). n length[s] 2. A {} 3. j 4. for i 2 to n do 5. if s[i] f[j] then 6. A A {i} 7. j i 8. return A 3
14 Gierige Algorithmen Interval Scheduling IntervalScheduling(s,f). n length[s] 2. A {} Θ() 3. j 4. for i 2 to n do 5. if s[i] f[j] then 6. A A {i} 7. j i 8. return A 4
15 Gierige Algorithmen Interval Scheduling IntervalScheduling(s,f). n length[s] 2. A {} Θ() 3. j 4. for i 2 to n do 5. if s[i] f[j] then 6. A A {i} Θ(n) 7. j i 8. return A 5
16 Gierige Algorithmen Interval Scheduling IntervalScheduling(s,f). n length[s] 2. A {} Θ() 3. j 4. for i 2 to n do 5. if s[i] f[j] then 6. A A {i} Θ(n) 7. j i 8. return A Θ() 6
17 Gierige Algorithmen Interval Scheduling IntervalScheduling(s,f). n length[s] 2. A {} Θ() 3. j 4. for i 2 to n do 5. if s[i] f[j] then 6. A A {i} Θ(n) 7. j i 8. return A Θ() Θ(n) 7
18 Gierige Algorithmen Interval Scheduling Satz 8.6: Algorithmus IntervalSchedule berechnet in Θ(n) Zeit eine optimale Lösung, wenn die Eingabe nach Endzeit der Intervalle (rechter Endpunkt) sortiert ist. Die Sortierung kann in Θ(n log n) Zeit berechnet werden. 8
19 Berechne Lösung schrittweise In jedem Schritt mache lokal optimale Wahl Daumenregel: Wenn optimale Lösung eines Problems eine optimale Lösung von Teilproblemen enthält, dann gibt es häufig einen gierigen Algorithmus Algorithmen: Scheduling Probleme 9
20 Datenkompression Reduziert Größen von Files Viele Verfahren für unterschiedliche Anwendungen: MP3, MPEG, JPEG, Wie funktioniert Datenkompression? Zwei Typen von Kompression: Verlustbehaftete Kompression (Bilder, Musik, Filme, ) Verlustfreie Kompression (Programme, Texte, Excel-Dateien, ) 20
21 Datenkompression Reduziert Größen von Files Viele Verfahren für unterschiedliche Anwendungen: MP3, MPEG, JPEG, Wie funktioniert Datenkompression? Zwei Typen von Kompression: Verlustbehaftete Kompression (Bilder, Musik, Filme, ) Verlustfreie Kompression (Programme, Texte, Excel-Dateien, ) 2
22 Kodierung: Computer arbeiten auf Bits (Symbole 0 und ), nutzen also das Alphabet {0,} Menschen nutzen umfangreichere Alphabete (z.b. Alphabete von Sprachen) Darstellung auf Rechner erfordert Umwandlung in Bitfolgen 22
23 Beispiel: Alphabet Σ={a,b,c,d,,x,y,z,,.,:,!,?,&} (32 Zeichen) 5 Bits pro Symbol: 2 =32 Möglichkeiten 5 a b z. :!? &
24 Beispiel: Alphabet Σ={a,b,c,d,,x,y,z,,.,:,!,?,&} (32 Zeichen) 5 Bits pro Symbol: 2 =32 Möglichkeiten a b z. :!? & Optimal? 5 4 Bits pro Symbol nicht genug Müssen im Durchschnitt 5 Bits für langen Text verwenden? 24
25 Beobachtung: Nicht jeder Buchstabe kommt gleich häufig vor Z.B. kommen x,y und z in Deutsch viel seltener vor als e,n oder r 25
26 Beobachtung: Nicht jeder Buchstabe kommt gleich häufig vor Z.B. kommen x,y und z in Deutsch viel seltener vor als e,n oder r Idee: Benutze kurze Bitstrings für Symbole die häufig vorkommen 26
27 Beobachtung: Nicht jeder Buchstabe kommt gleich häufig vor Z.B. kommen x,y und z in Deutsch viel seltener vor als e,n oder r Idee: Benutze kurze Bitstrings für Symbole die häufig vorkommen Effekt: Gesamtlänge der Kodierung einer Symbolfolge (eines Textes) wird reduziert 27
28 Grundlegendes Problem: Eingabe:Text in Alphabet Σ Gesucht: Eine binäre Kodierung von Σ, so dass die Länge des Textes in dieser Kodierung minimiert wird Beispiel: Σ={0,,2,,9} Text = (7 Zeichen)
29 Grundlegendes Problem: Eingabe:Text in Alphabet Σ Gesucht: Eine binäre Kodierung von Σ, so dass die Länge des Textes in dieser Kodierung minimiert wird Beispiel: Länge der Kodierung: Σ={0,,2,,9} 4 7 = 68 Bits Text = (7 Zeichen)
30 Grundlegendes Problem: Eingabe:Text in Alphabet Σ Gesucht: Eine binäre Kodierung von Σ, so dass die Länge des Textes in dieser Kodierung minimiert wird Beispiel: Σ={0,,2,,9} Text = (7 Zeichen)
31 Grundlegendes Problem: Eingabe:Text in Alphabet Σ Gesucht: Eine binäre Kodierung von Σ, so dass die Länge des Textes in dieser Kodierung minimiert wird Länge der Kodierung: Beispiel: = 56 Bits Σ={0,,2,,9} Text = (7 Zeichen)
32 Grundlegendes Problem: Eingabe:Text in Alphabet Σ Gesucht: Eine binäre Kodierung von Σ, so dass die Länge des Textes in dieser Kodierung minimiert wird Länge der Kodierung: Beispiel: = 56 Bits Σ={0,,2,,9} Text = (7 Zeichen)
33 Grundlegendes Problem: Eingabe:Text in Alphabet Σ Gesucht: Eine binäre Kodierung von Σ, so dass die Länge des Textes in dieser Kodierung minimiert wird Länge der Kodierung: Beispiel: = 56 Bits Σ={0,,2,,9} Text = (7 Zeichen)
34 Grundlegendes Problem: Eingabe:Text in Alphabet Σ Gesucht: Eine binäre Kodierung von Σ, so dass die Länge des Textes in dieser Kodierung minimiert wird Länge der Kodierung: Beispiel: = 56 Bits Σ={0,,2,,9} Text = (7 Zeichen)
35 MorseCode: Elektrische Pulse über Kabel Punkte (kurze Pulse) Striche(Lange Pulse) Beispiele aus dem MorseCode: e ist 0 (ein einzelner Punkt) t ist (ein einzelner Strich) a ist 0 (Strich Punkt) Problem: Ist 00 eta, aa, etet, oder aet? 35
36 Problem Mehrdeutigkeit: Ist die Kodierung eines Buchstaben Präfix der Kodierung eines anderen Buchstaben, dann ist die Kodierung nicht immer eindeutig Beispiel: e = 0, a = 0 0 ist Präfix von 0 36
37 Präfix-Kodierung: Eine Präfix-Kodierung für ein Alphabet Σ ist eine Funktion γ, die jeden Buchstaben x Σ auf eine endliche Sequenz von 0 und abbildet, so dass für x,y Σ, x y, die Sequenz γ(x) nicht Präfix der Sequenz γ(y) ist. 37
38 Präfix-Kodierung: Eine Präfix-Kodierung für ein Alphabet Σ ist eine Funktion γ, die jeden Buchstaben x Σ auf eine endliche Sequenz von 0 und abbildet, so dass für x,y Σ, x y, die Sequenz γ(x) nicht Präfix der Sequenz γ(y) ist. Beispiel (Präfix-Kodierung): x Σ γ(x)
39 Definition (Frequenz) Die Frequenz f[x] eines Buchstaben x Σ bezeichnet den Bruchteil der Buchstaben im Text, die x sind. Beispiel: Σ = {0,,2} Text = f[0] = 3/5 f[] = /5 f[2] = /5 39
40 Definition (Kodierungslänge) Die Kodierungslänge eines Textes mit n Zeichen bzgl. einer Kodierung γ ist gegeben durch Beispiel: Kodierungslänge = Σ n f[x] γ(x) x Σ Σ = {a,b,c,d} γ(a) = 0; γ(b) =0; γ(c)= 0; γ(d)= Text = aacdaabb Kodierungslänge = 6 40
41 Definition (Kodierungslänge) Anzahl der Vorkommen von x im Die Kodierungslänge eines Textes mit n Text Zeichen bzgl. einer Kodierung γ ist gegeben durch Beispiel: Kodierungslänge = Σ n f[x] γ(x) x Σ Σ = {a,b,c,d} γ(a) = 0; γ(b) =0; γ(c)= 0; γ(d)= Text = aacdaabb Kodierungslänge = 6 4
42 Definition (Kodierungslänge) Länge Die Kodierungslänge eines Textes mit n Zeichen bzgl. der einer Kodierung γ ist gegeben durch Beispiel: Σ = {a,b,c,d} Kodierungslänge = Σ n f[x] γ(x) x Σ γ(a) = 0; γ(b) =0; γ(c)= 0; γ(d)= Text = aacdaabb Kodierungslänge = 6 Codierung von x 42
43 Definition (durchschn. Kodierungslänge) Die durchschnittliche Kodierungslänge eines Textes mit n Zeichen bzgl. einer Kodierung γ ist gegeben durch Beispiel: ABL(γ) = Σ f[x] γ(x) Σ = {a,b,c,d} γ(a) = 0; γ(b) =0; γ(c)= 0; γ(d)= Text = aacdaabb Durchschnittliche Kodierungslänge = 6/8 = 2 x Σ 43
44 Optimale Präfix-Kodierung: Problem: Optimale Präfix-Kodierung Eingabe: Alphabet Σ; für jedes x Σ seine Frequenz f[x] Ausgabe: Eine Kodierung γ, die ABL(γ) minimiert 44
45 Kodierungen und Binärbäume: a b d c 45
46 Kodierungen und Binärbäume: 0 0 b a 0 d c 46
47 Kodierungen und Binärbäume: a 0 d 0 x Σ γ(x) b a 00 b 0 c 0 c d 00 47
48 Kodierungen und Binärbäume: x Σ γ(x) a b 0 c 00 d 0 48
49 Kodierungen und Binärbäume: x Σ γ(x) a b 0 c 00 d c b d a 49
50 Definition: Die Tiefe eines Baumknotens ist die Länge seines Pfades zur Wurzel. 0 0 b a 0 d c Tiefe(c) = 3 50
51 Neue Problemformulierung: Suche Binärbaum, dessen Blätter die Symbole aus Σ sind und der minimiert. ABL(T) = Σ f[x] Tiefe(x) x S 5
52 Definition: Ein Binärbaum heißt voll, wenn jeder innere Knoten zwei Kinder hat. 0 0 b a 0 d c Ein voller Binärbaum 52
53 Definition: Ein Binärbaum heißt voll, wenn jeder innere Knoten zwei Kinder hat. 0 0 b a d 0 Ein nicht voller Binärbaum, da der rote innere Knoten keine zwei Kinder hat 53
54 Lemma 6: Ein Binärbaum, der einer optimalen Präfix-Kodierung entspricht, ist voll. 0 b 0 d a 54
55 Lemma 6: Ein Binärbaum, der einer optimalen Präfix-Kodierung entspricht, ist voll. u d Beweis: 0 Annahme: T ist optimal und hat inneren Knoten u mit einem b Kind v Ersetze u durch v v Dies verkürzt die Tiefe einiger 0 Knoten, erhöht aber keine Tiefe Damit verbessert man die a Kodierung 55
56 Lemma 6: Ein Binärbaum, der einer optimalen Präfix-Kodierung entspricht, ist voll. d 0 v 0 a b Beweis: Annahme: T ist optimal und hat inneren Knoten u mit einem Kind v Ersetze u durch v Dies verkürzt die Tiefe einiger Knoten, erhöht aber keine Tiefe Damit verbessert man die Kodierung 56
57 Ein Gedankenexperiment: Angenommen, jemand gibt uns den optimalen Baum T*, aber nicht die Bezeichnung der Blätter Wie schwierig ist es, die Bezeichnungen zu finden? 57
58 Lemma 7: Seien u und v sind Blätter von T* mit Tiefe(u) <Tiefe(v). Seien u bzw. v in einer optimalen Kodierung mit y Σ bzw. z Σ bezeichnet. Dann gilt f[y] f[z]. 0 0 u y 0 v z 58
59 Lemma 7: Seien u und v sind Blätter von T* mit Tiefe(u) <Tiefe(v). Seien u bzw. v in einer optimalen Kodierung mit y Σ bzw. z Σ bezeichnet. Dann gilt f[y] f[z] x Σ f[x] a 0% b 2% c 8% d 60% 59
60 Lemma 7: Seien u und v sind Blätter von T* mit Tiefe(u) <Tiefe(v). Seien u bzw. v in einer optimalen Kodierung mit y Σ bzw. z Σ bezeichnet. Dann gilt f[y] f[z]. 0 0 d x Σ f[x] a 0% b 2% c 8% 0 d 60% 60
61 Lemma 7: Seien u und v sind Blätter von T* mit Tiefe(u) <Tiefe(v). Seien u bzw. v in einer optimalen Kodierung mit y Σ bzw. z Σ bezeichnet. Dann gilt f[y] f[z]. c d x Σ f[x] a 0% b 2% c 8% d 60% 6
62 Lemma 7: Seien u und v sind Blätter von T* mit Tiefe(u) <Tiefe(v). Seien u bzw. v in einer optimalen Kodierung mit y Σ bzw. z Σ bezeichnet. Dann gilt f[y] f[z]. c d x Σ f[x] a 0% b 2% c 8% d 60% b 62
63 Lemma 7: Seien u und v sind Blätter von T* mit Tiefe(u) <Tiefe(v). Seien u bzw. v in einer optimalen Kodierung mit y Σ bzw. z Σ bezeichnet. Dann gilt f[y] f[z]. c d x Σ f[x] a 0% b 2% c 8% d 60% b a 63
64 Lemma 7: Seien u und v sind Blätter von T* mit Tiefe(u) <Tiefe(v). Seien u bzw. v in einer optimalen Kodierung mit y Σ bzw. z Σ bezeichnet. Dann gilt f[y] f[z]. c d x Σ f[x] a 0% b 2% Anordnung innerhalb einer Tiefenstufe ist egal! c 8% d 60% a b 64
65 Beobachtung Sei v der tiefste Blattknoten in T*. Dann hat v einen Bruder und dieser ist ebenfalls ein Blattknoten. 0 0 d c 0 a w (Bruder von v) b v 65
66 Beobachtung Sei v der tiefste Blattknoten in T*. Dann hat v einen Bruder und dieser ist ebenfalls ein Blattknoten. c d Beweis: Da ein optimaler Baum voll ist, hat v einen Bruder w Wäre w kein Blatt, dann hätte ein Nachfolger von w größere Tiefe als v a w (Bruder von v) b v 66
67 Zusammenfassende Behauptung Es gibt eine optimale Präfix-Kodierung mit zugehörigem Baum T*, so dass die beiden Blattknoten, denen die Symbole mit den kleinsten Frequenzen zugewiesen wurden, Bruderknoten in T* sind. 67
68 Zusammenfassende Behauptung Es gibt eine optimale Präfix-Kodierung mit zugehörigem Baum T*, so dass die beiden Blattknoten, denen die Symbole mit den kleinsten Frequenzen zugewiesen wurden, Bruderknoten in T* sind. 0 x Σ f[x] a 0% c 0 0 d b 2% c 8% d 60% a b 68
69 Behauptung Es gibt eine optimale Präfix-Kodierung mit zugehörigem Baum T*, so dass die beiden Blattknoten, denen die Symbole mit den kleinsten Frequenzen zugewiesen wurden, Bruderknoten in T* sind. c d x Σ f[x] a 0% b 2% a und b erfüllen die Bedingungen der Behauptung! c 8% d 60% a b 69
70 Idee des Algorithmus: Die beiden Symbole y* und z* mit den niedrigsten Frequenzen sind Bruderknoten Fasse y* und z* zu einem neuen Symbol zusammen Löse das Problem für die übrigen n- Symbole (z.b. rekursiv) y* z* 70
71 Idee des Algorithmus: Die beiden Symbole y* und z* mit den niedrigsten Frequenzen sind Bruderknoten Fasse y* und z* zu einem neuen Symbol zusammen Löse das Problem für die übrigen n- Symbole (z.b. rekursiv) y*z* 7
72 Huffmann(C). n C 2. Q C 3. for i to n- do 4. x Extract_Min(Q) 5. y Extract_Min(Q) 6. z new BinTree(x, f[x]+f[y],y) 7. f[z] f[x] + f[y] 8. Q Q {z} 9. return Extract_Min(Q) x Σ f[x] a 23% b 2% c 55% d 0% 72
73 Huffmann(C). n C 2. Q C 3. for i to n- do 4. x Extract_Min(Q) 5. y Extract_Min(Q) 6. z new BinTree(x, f[x]+f[y],y) 7. f[z] f[x] + f[y] 8. Q Q {z} 9. return Extract_Min(Q) x Σ f[x] a 23% b 2% c 55% d 0% 73
74 Huffmann(C). n C 2. Q C 3. for i to n- do 4. x Extract_Min(Q) 5. y Extract_Min(Q) 6. z new BinTree(x, f[x]+f[y],y) 7. f[z] f[x] + f[y] 8. Q Q {z} 9. return Extract_Min(Q) x Σ f[x] a 23% b 2% c 55% d 0% Q: 23% 2% 55% 0% 74
75 Huffmann(C). n C 2. Q C 3. for i to n- do 4. x Extract_Min(Q) 5. y Extract_Min(Q) 6. z new BinTree(x, f[x]+f[y],y) 7. f[z] f[x] + f[y] 8. Q Q {z} 9. return Extract_Min(Q) x Σ f[x] a 23% b 2% c 55% i= d 0% Q: 23% 2% 55% 0% 75
76 Huffmann(C). n C 2. Q C 3. for i to n- do 4. x Extract_Min(Q) 5. y Extract_Min(Q) 6. z new BinTree(x, f[x]+f[y],y) 7. f[z] f[x] + f[y] 8. Q Q {z} 9. return Extract_Min(Q) x Σ f[x] a 23% b 2% c 55% i= d 0% Q: 23% 2% 55% x: 0% 76
77 Huffmann(C). n C 2. Q C 3. for i to n- do 4. x Extract_Min(Q) 5. y Extract_Min(Q) 6. z new BinTree(x, f[x]+f[y],y) 7. f[z] f[x] + f[y] 8. Q Q {z} 9. return Extract_Min(Q) x Σ f[x] a 23% b 2% c 55% i= d 0% Q: 23% 55% x: y: 0% 2% 77
78 Huffmann(C). n C 2. Q C 3. for i to n- do 4. x Extract_Min(Q) 5. y Extract_Min(Q) 6. z new BinTree(x, f[x]+f[y],y) 7. f[z] f[x] + f[y] 8. Q Q {z} 9. return Extract_Min(Q) x Σ f[x] a 23% b 2% c 55% i= d 0% Q: 23% 55% z: 22% 0% 2% 78
79 Huffmann(C). n C 2. Q C 3. for i to n- do 4. x Extract_Min(Q) 5. y Extract_Min(Q) 6. z new BinTree(x, f[x]+f[y],y) 7. f[z] f[x] + f[y] 8. Q Q {z} 9. return Extract_Min(Q) x Σ f[x] a 23% b 2% c 55% i= d 0% Q: 23% 55% z: 22% 0% 2% 79
80 Huffmann(C). n C 2. Q C 3. for i to n- do 4. x Extract_Min(Q) 5. y Extract_Min(Q) 6. z new BinTree(x, f[x]+f[y],y) 7. f[z] f[x] + f[y] 8. Q Q {z} 9. return Extract_Min(Q) x Σ f[x] a 23% b 2% c 55% i= d 0% Q: 23% 55% 22% 0% 2% 80
81 Huffmann(C). n C 2. Q C 3. for i to n- do 4. x Extract_Min(Q) 5. y Extract_Min(Q) 6. z new BinTree(x, f[x]+f[y],y) 7. f[z] f[x] + f[y] 8. Q Q {z} 9. return Extract_Min(Q) x Σ f[x] a 23% b 2% c 55% i=2 d 0% Q: 23% 55% 22% 0% 2% 8
82 Huffmann(C). n C 2. Q C 3. for i to n- do 4. x Extract_Min(Q) 5. y Extract_Min(Q) 6. z new BinTree(x, f[x]+f[y],y) 7. f[z] f[x] + f[y] 8. Q Q {z} 9. return Extract_Min(Q) x Σ f[x] a 23% b 2% c 55% i=2 d 0% Q: 23% 55% x: 22% 0% 2% 82
83 Huffmann(C). n C 2. Q C 3. for i to n- do 4. x Extract_Min(Q) 5. y Extract_Min(Q) 6. z new BinTree(x, f[x]+f[y],y) 7. f[z] f[x] + f[y] 8. Q Q {z} 9. return Extract_Min(Q) i=2 Q: 55% x Σ x: 22% y: 0% 2% f[x] a 23% b 2% c 55% d 0% 23% 83
84 Huffmann(C). n C 2. Q C 3. for i to n- do 4. x Extract_Min(Q) 5. y Extract_Min(Q) 6. z new BinTree(x, f[x]+f[y],y) 7. f[z] f[x] + f[y] 8. Q Q {z} 9. return Extract_Min(Q) x Σ f[x] a 23% b 2% c 55% i=2 d 0% Q: 55% z: 22% 0% 2% 45% 23% 84
85 Huffmann(C). n C 2. Q C 3. for i to n- do 4. x Extract_Min(Q) 5. y Extract_Min(Q) 6. z new BinTree(x, f[x]+f[y],y) 7. f[z] f[x] + f[y] 8. Q Q {z} 9. return Extract_Min(Q) x Σ f[x] a 23% b 2% c 55% i=2 d 0% Q: 55% z: 22% 0% 2% 45% 23% 85
86 Huffmann(C). n C 2. Q C 3. for i to n- do 4. x Extract_Min(Q) 5. y Extract_Min(Q) 6. z new BinTree(x, f[x]+f[y],y) 7. f[z] f[x] + f[y] 8. Q Q {z} 9. return Extract_Min(Q) x Σ f[x] a 23% b 2% c 55% i=2 d 0% Q: 55% 45% 22% 23% 0% 2% 86
87 Huffmann(C). n C 2. Q C 3. for i to n- do 4. x Extract_Min(Q) 5. y Extract_Min(Q) 6. z new BinTree(x, f[x]+f[y],y) 7. f[z] f[x] + f[y] 8. Q Q {z} 9. return Extract_Min(Q) x Σ f[x] a 23% b 2% c 55% i=3 d 0% Q: 55% 45% 22% 23% 0% 2% 87
88 Huffmann(C). n C 2. Q C 3. for i to n- do 4. x Extract_Min(Q) 5. y Extract_Min(Q) 6. z new BinTree(x, f[x]+f[y],y) 7. f[z] f[x] + f[y] 8. Q Q {z} 9. return Extract_Min(Q) Q: x Σ f[x] a 23% b 2% c 55% i=3 d 0% 55% x: 22% 0% 2% 45% 23% 88
89 Huffmann(C). n C 2. Q C 3. for i to n- do 4. x Extract_Min(Q) 5. y Extract_Min(Q) 6. z new BinTree(x, f[x]+f[y],y) 7. f[z] f[x] + f[y] 8. Q Q {z} 9. return Extract_Min(Q) Q: i=3 x Σ f[x] a 23% b 2% c 55% d 0% x: y: 22% 0% 2% 45% 55% 23% 89
90 Huffmann(C). n C 2. Q C 3. for i to n- do 4. x Extract_Min(Q) 5. y Extract_Min(Q) 6. z new BinTree(x, f[x]+f[y],y) 7. f[z] f[x] + f[y] 8. Q Q {z} 9. return Extract_Min(Q) Q: z: i=3 22% 0% 2% x Σ f[x] a 23% b 2% c 55% d 0% 00% 45% 55% 23% 90
91 Huffmann(C). n C 2. Q C 3. for i to n- do 4. x Extract_Min(Q) 5. y Extract_Min(Q) 6. z new BinTree(x, f[x]+f[y],y) 7. f[z] f[x] + f[y] 8. Q Q {z} 9. return Extract_Min(Q) Q: z: i=3 22% 0% 2% x Σ f[x] a 23% b 2% c 55% d 0% 00% 45% 55% 23% 9
92 Huffmann(C). n C 2. Q C 3. for i to n- do 4. x Extract_Min(Q) 5. y Extract_Min(Q) 6. z new BinTree(x, f[x]+f[y],y) 7. f[z] f[x] + f[y] 8. Q Q {z} 9. return Extract_Min(Q) Q: i=3 22% 0% 2% x Σ f[x] a 23% b 2% c 55% d 0% 00% 45% 55% 23% 92
93 Huffmann(C). n C 2. Q C 3. for i to n- do 4. x Extract_Min(Q) 5. y Extract_Min(Q) 6. z new BinTree(x, f[x]+f[y],y) 7. f[z] f[x] + f[y] 8. Q Q {z} 9. return Extract_Min(Q) Q: i=3 22% 0% 2% x Σ f[x] a 23% b 2% c 55% d 0% 00% 45% 55% 23% 93
94 Satz 8 Algorithmus Huffman(C) berechnet eine optimale Präfix- Kodierung. 94
95 Gierige Algorithmen: Berechne Lösung schrittweise In jedem Schritt mache lokal optimale Wahl Anwendbar: Wenn optimale Lösung eines Problems optimale Lösung von Teilproblemen enthält Algorithmen: Scheduling Probleme Optimale Präfix-Kodierung (Huffman Codes) 95
Übersicht. Aktivitäten-Auswahl-Problem. Greedy Algorithmen. Aktivitäten-Auswahl-Problem. Aktivitäten-Auswahl-Problem. Datenstrukturen & Algorithmen
Datenstrukturen & Algorithmen Übersicht Greedy Algorithmen Einführung Aktivitäten-Auswahl-Problem Huffman Codierung Matthias Zwicker Universität Bern Frühling 2009 2 Greedy Algorithmen Entwurfsstrategie
Wann sind Codes eindeutig entschlüsselbar?
Wann sind Codes eindeutig entschlüsselbar? Definition Suffix Sei C ein Code. Ein Folge s {0, 1} heißt Suffix in C falls 1 c i, c j C : c i = c j s oder 2 c C und einen Suffix s in C: s = cs oder 3 c C
2. Woche Eindeutige Entschlüsselbarleit, Sätze von Kraft und McMillan, Huffmancodierung
2 Woche Eindeutige Entschlüsselbarleit, Sätze von Kraft und McMillan, Huffmancodierung 2 Woche: Eindeutige Entschlüsselbarleit, Sätze von Kraft und McMillan, Huffmancodierung 24/ 44 Zwei Beispiele a 0
Greedy Algorithmen. Grundlegendes. Organisatorisches. VL-21: Greedy Algorithmen. (Datenstrukturen und Algorithmen, SS 2017) Gerhard Woeginger
Organisatorisches VL-21: Greedy Algorithmen (Datenstrukturen und Algorithmen, SS 2017) Gerhard Woeginger Vorlesung: Gerhard Woeginger (Zimmer 4024 im E1) Sprechstunde: Mittwoch 11:15 12:00 Übungen: Tim
Referat zum Thema Huffman-Codes
Referat zum Thema Huffman-Codes Darko Ostricki Yüksel Kahraman 05.02.2004 1 Huffman-Codes Huffman-Codes ( David A. Huffman, 1951) sind Präfix-Codes und das beste - optimale - Verfahren für die Codierung
16 - Kompressionsverfahren für Texte
16 - Kompressionsverfahren für Texte Prof. Dr. S. Albers Kompressionsverfahren für Texte Verlustfreie Kompression Original kann perfekt rekonstruiert werden Beispiele: Huffman Code, Lauflängencodierung,
Einführung in die Informatik II Aus der Informationstheorie: Datenkompression
Einführung in die Informatik II Aus der Informationstheorie: Datenkompression Prof. Bernd Brügge, Ph.D Institut für Informatik Technische Universität München Sommersemester 2 2. Juli 2 Copyright 2 Bernd
Kompressionsverfahren für Texte
Kompressionsverfahren für Texte Prof. Dr. S. Albers Prof. Dr. Th. Ottmann 1 Zeichenkettenverarbeitung Suche in Texten, Textindizes Mustererkennung (Pattern-Matching) Verschlüsseln Komprimiern Analysieren
Randomisierte Algorithmen 2. Erste Beispiele
Randomisierte Algorithmen Randomisierte Algorithmen 2. Erste Beispiele Thomas Worsch Fakultät für Informatik Karlsruher Institut für Technologie Wintersemester 2016/2017 1 / 35 Randomisierter Identitätstest
Datenkompression. 1 Allgemeines. 2 Verlustlose Kompression. Holger Rauhut
Datenkompression Holger Rauhut 1. September 2010 Skript für die Schülerwoche 2010, 8.-11.9.2010 Hausdorff Center for Mathematics, Bonn 1 Allgemeines Datenkompression hat zum Ziel, Daten in digitaler Form,
Greedy Algorithms - Gierige Algorithmen
Greedy Algorithms - Gierige Algorithmen Marius Burfey 23. Juni 2009 Inhaltsverzeichnis 1 Greedy Algorithms 1 2 Interval Scheduling - Ablaufplanung 2 2.1 Problembeschreibung....................... 2 2.2
Alle bislang betrachteten Sortieralgorithmen hatten (worst-case) Laufzeit Ω(nlog(n)).
8. Untere Schranken für Sortieren Alle bislang betrachteten Sortieralgorithmen hatten (worst-case) Laufzeit Ω(nlog(n)). Werden nun gemeinsame Eigenschaften dieser Algorithmen untersuchen. Fassen gemeinsame
Mathematik für Information und Kommunikation
Mathematik für Information und Kommunikation Am Beispiel des Huffman- Algorithmus Thomas Borys und (Christian Urff) Huffman im Alltag MPEG Telefax JPEG MP3 ZIP avid Huffman avid Huffman [95-999] www.soe.ucsc.edu/people/faculty/huffman.html
2.7 Der Shannon-Fano-Elias Code
2.7 Der Shannon-Fano-Elias Code Die Huffman-Codierung ist ein asymptotisch optimales Verfahren. Wir haben auch gesehen, dass sich die Huffman-Codierung gut berechnen und dann auch gut decodieren lassen.
Divide & Conquer. Problem in Teilprobleme aufteilen Teilprobleme rekursiv lösen Lösung aus Teillösungen zusammensetzen
Teile & Herrsche: Divide & Conquer Problem in Teilprobleme aufteilen Teilprobleme rekursiv lösen Lösung aus Teillösungen zusammensetzen Probleme: Wie setzt man zusammen? [erfordert algorithmisches Geschick
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
Sortieren & Co. KIT Institut für Theoretische Informatik
Sortieren & Co KIT Institut für Theoretische Informatik 1 Formaler Gegeben: Elementfolge s = e 1,...,e n Gesucht: s = e 1,...,e n mit s ist Permutation von s e e 1 n für eine Totalordnung ` ' KIT Institut
Problem: Finde für Alphabet mit n Zeichen einen Binärcode, der die Gesamtlänge eines Textes (über diesem Alphabet) minimiert.
Anwendungen von Bäumen 4.3.2 Huffman Code Problem: Finde für Alphabet mit n Zeichen einen Binärcode, der die Gesamtlänge eines Textes (über diesem Alphabet) minimiert. => nutzbar für Kompression Code fester
6 Ü B E R S E T Z U N G E N U N D C O D I E R U N G E N. 6.1 von wörtern zu zahlen und zurück Dezimaldarstellung von Zahlen Num 10
6 Ü B E R S E T Z U N G E N U N D C O D I E R U N G E N 6.1 von wörtern zu zahlen und zurück 6.1.1 Dezimaldarstellung von Zahlen Num 10 Num10(ε) = 0 (6.1) für jedes w Z 10 für jedes x Z 10 Num 10 (wx)
S=[n] Menge von Veranstaltungen J S kompatibel mit maximaler Größe J
Greedy-Strategie Definition Paradigma Greedy Der Greedy-Ansatz verwendet die Strategie 1 Top-down Auswahl: Bestimme in jedem Schritt eine lokal optimale Lösung, so dass man eine global optimale Lösung
2.2 Allgemeine (vergleichsbasierte) Sortierverfahren
. Allgemeine (vergleichsbasierte) Sortierverfahren Vergleichsbaum: Der Aufbau des Verbleichsbaum ist für jeden Algorithmus und jede Eingabelänge n gleich. Jede Permutation der Eingabe, muss zu einem anderen
8. A & D - Heapsort. Werden sehen, wie wir durch geschicktes Organsieren von Daten effiziente Algorithmen entwerfen können.
8. A & D - Heapsort Werden sehen, wie wir durch geschicktes Organsieren von Daten effiziente Algorithmen entwerfen können. Genauer werden wir immer wieder benötigte Operationen durch Datenstrukturen unterstützen.
Textkompression. Komprimierung von Daten. Runlength Komprimierung (2) Runlength Komprimierung (1) Herkömmliche Kodierung. Runlength Komprimierung (3)
Komprimierung von Daten Textkompression Effiziente Algorithmen VU 2.0 WS 2008/09 Bin Hu Ziel: Platz und Zeit sparen Kompression durch - Effiziente Kodierung - Verminderung der Redundanzen (verlustfrei)
Suchen und Sortieren Sortieren. Heaps
Suchen und Heaps (Folie 156, Seite 56 im Skript) Definition Ein Heap ist ein Binärbaum, der die Heapeigenschaft hat (Kinder sind größer als der Vater), bis auf die letzte Ebene vollständig besetzt ist,
15 Optimales Kodieren
15 Optimales Kodieren Es soll ein optimaler Kodierer C(T ) entworfen werden, welcher eine Information (z.b. Text T ) mit möglichst geringer Bitanzahl eindeutig überträgt. Die Anforderungen an den optimalen
Dynamisches Huffman-Verfahren
Dynamisches Huffman-Verfahren - Adaptive Huffman Coding - von Michael Brückner 1. Einleitung 2. Der Huffman-Algorithmus 3. Übergang zu einem dynamischen Verfahren 4. Der FGK-Algorithmus 5. Überblick über
3. Binäre Suchbäume. 3.1 Natürliche binäre Suchbäume. EADS 3.1 Natürliche binäre Suchbäume 78/598 ľernst W. Mayr
3. Binäre Suchbäume 3.1 Natürliche binäre Suchbäume Definition 18 Ein natürlicher binärer Suchbaum über einem durch total geordneten Universum U ist ein als interner Suchbaum organisierter Binärbaum (also:
1.5 Turing-Berechenbarkeit
A.M. Turing (1937): Maschinenmodell zur exakten Beschreibung des Begriffs effektiv berechenbar Stift Mensch a c b b Rechenblatt a b b c Lese-/Schreibkopf endliche Kontrolle Turingmaschine Eine Turingmaschine
Übung zur Vorlesung Algorithmische Geometrie
Übung zur Vorlesung Algorithmische Geometrie Dipl.-Math. Bastian Rieck Arbeitsgruppe Computergraphik und Visualisierung Interdisziplinäres Zentrum für Wissenschaftliches Rechnen 8. Mai 2012 B. Rieck (CoVis)
Molekulare Bioinformatik
Molekulare Bioinformatik Wintersemester 203/204 Prof. Thomas Martinetz Institut für Neuro- und Bioinformatik Universität zu Luebeck 07.0.204 Molekulare Bioinformatik - Vorlesung 0 Wiederhohlung Die Entropie
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 Algorithmen
Erinnerung: das Knapsack-Problem
Erinnerung: das Knapsack-Problem Das 0-1-Knapsack-Problem: Wähle aus n egenständen, wobei der i-te egenstand den Wert v i und das ewicht w i besitzt Maximiere den esamtwert bei vorgegebenem Höchstgewicht
Kapitel 2. Weitere Beispiele Effizienter Algorithmen
Kapitel 2 Weitere Beispiele Effizienter Algorithmen Sequentielle Suche Gegeben: Array a[1..n] Suche in a nach Element x Ohne weitere Zusatzinformationen: Sequentielle Suche a[1] a[2] a[3] Laufzeit: n Schritte
10. Sortieren III. Untere Schranken für das vergleichsbasierte Sortieren, Radix- und Bucketsort
280 10. Sortieren III Untere Schranken für das vergleichsbasierte Sortieren, Radix- und Bucketsort 281 10.1 Untere Grenzen für Vergleichbasiertes Sortieren [Ottman/Widmayer, Kap. 2.8, Cormen et al, Kap.
Seminar Kompressionsalgorithmen Huffman-Codierung, arithmetische Codierung
Huffman-Codierung, arithmetische Codierung Theoretische Informatik RWTH-Aachen 4. April 2012 Übersicht 1 Einführung 2 3 4 5 6 Einführung Datenkompression Disziplin,die Kompressionsalgorithmen entwirft
1.5 Turing-Berechenbarkeit
A.M. Turing (1937): Maschinenmodell zur exakten Beschreibung des Begriffs effektiv berechenbar Stift Mensch a c b b Rechenblatt a b b c Lese-/Schreibkopf endliche Kontrolle Turingmaschine Eine Turingmaschine
Lemma Für jede monotone Grammatik G gibt es eine kontextsensitive
Lemma Für jede monotone Grammatik G gibt es eine kontextsensitive Grammatik G mit L(G) = L(G ). Beweis im Beispiel (2.): G = (V,Σ, P, S) : P = {S asbc, S abc, CB BC, ab ab, bb bb, bc bc, cc cc}. (i) G
Relationen und DAGs, starker Zusammenhang
Relationen und DAGs, starker Zusammenhang Anmerkung: Sei D = (V, E). Dann ist A V V eine Relation auf V. Sei andererseits R S S eine Relation auf S. Dann definiert D = (S, R) einen DAG. D.h. DAGs sind
Effiziente Algorithmen 2
Effiziente Algorithmen 2 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 Algorithmen
Datenstrukturen und Algorithmen. Christian Sohler FG Algorithmen & Komplexität
Datenstrukturen und Algorithmen Christian Sohler FG Algorithmen & Komplexität 1 Clustering: Partitioniere Objektmenge in Gruppen(Cluster), so dass sich Objekte in einer Gruppe ähnlich sind und Objekte
Das Suchproblem. Gegeben Menge von Datensätzen. Beispiele Telefonverzeichnis, Wörterbuch, Symboltabelle
122 4. Suchen Lineare Suche, Binäre Suche, Interpolationssuche, Untere Schranken [Ottman/Widmayer, Kap. 3.2, Cormen et al, Kap. 2: Problems 2.1-3,2.2-3,2.3-5] 123 Das Suchproblem Gegeben Menge von Datensätzen.
Einführung in die Informatik 2
Einführung in die Informatik Strukturelle Induktion Sven Kosub AG Algorithmik/Theorie komplexer Systeme Universität Konstanz E 0 [email protected] Sprechstunde: Freitag, 1:30-14:00 Uhr, o.n.v.
String - Matching. Kapitel Definition
Kapitel 1 String - Matching 1.1 Definition String - Matching ( übersetzt in etwa Zeichenkettenanpassung ) ist die Suche eines Musters ( Pattern ) in einem Text. Es findet beispielsweise Anwendung bei der
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
Das Suchproblem 4. Suchen Das Auswahlproblem Suche in Array
Das Suchproblem Gegeben. Suchen Lineare Suche, Binäre Suche, Interpolationssuche, Untere Schranken [Ottman/Widmayer, Kap. 3.2, Cormen et al, Kap. 2: Problems 2.-3,2.2-3,2.3-] Menge von Datensätzen. Beispiele
Grundlagen der Theoretischen Informatik
Grundlagen der Theoretischen Informatik 4. Kellerautomaten und kontextfreie Sprachen (I) 3.06.2015 Viorica Sofronie-Stokkermans e-mail: [email protected] 1 Organisatorisches 1. Teilklausur: Mittwoch,
Algorithmen und Datenstrukturen
Algorithmen und Datenstrukturen Wintersemester 2012/13 26. Vorlesung Greedy- und Approximationsalgorithmen Prof. Dr. Alexander Wolff Lehrstuhl für Informatik I Operations Research Optimierung für Wirtschaftsabläufe:
Algorithmen und Datenstrukturen Heapsort
Algorithmen und Datenstrukturen 2 5 Heapsort In diesem Kapitel wird Heapsort, ein weiterer Sortieralgorithmus, vorgestellt. Dieser besitzt wie MERGE-SORT eine Laufzeit von O(n log n), sortiert jedoch das
Das Suchproblem. Gegeben Menge von Datensätzen. Beispiele Telefonverzeichnis, Wörterbuch, Symboltabelle
119 4. Suchen Lineare Suche, Binäre Suche, Interpolationssuche, Exponentielle Suche, Untere Schranken [Ottman/Widmayer, Kap. 3.2, Cormen et al, Kap. 2: Problems 2.1-3,2.2-3,2.3-5] 120 Das Suchproblem Gegeben
Diskrete Strukturen Kapitel 4: Graphentheorie (Bäume)
WS 2016/17 Diskrete Strukturen Kapitel 4: Graphentheorie (Bäume) Hans-Joachim Bungartz Lehrstuhl für wissenschaftliches Rechnen Fakultät für Informatik Technische Universität München http://www5.in.tum.de/wiki/index.php/diskrete_strukturen_-_winter_16
6. Komprimierung. (Text)komprimierung ist ein Wechsel der Repräsentation von Daten, so daß sie weniger
Komprimierung 6. Komprimierung (Text)komprimierung ist ein Wechsel der Repräsentation von Daten, so daß sie weniger Platz brauchen Motivation: beschleunigt Plattenzugriffe oder Datenübertragungen Voraussetzung:
Algorithmen und Datenstrukturen (für ET/IT)
Algorithmen und Datenstrukturen (für ET/IT) Sommersemester 206 Dr. Tobias Lasser Computer Aided Medical Procedures Technische Universität München Organisatorisches Weiterer Ablauf: heute und Donnerstag,
Mächtigkeit von WHILE-Programmen
Mächtigkeit von WHILE-Programmen Prof. Dr. Berthold Vöcking Lehrstuhl Informatik 1 Algorithmen und Komplexität RWTH Aachen 26. November 2009 Berthold Vöcking, Informatik 1 () Vorlesung Berechenbarkeit
Theoretische Informatik. Exkurs: Komplexität von Optimierungsproblemen. Optimierungsprobleme. Optimierungsprobleme. Exkurs Optimierungsprobleme
Theoretische Informatik Exkurs Rainer Schrader Exkurs: Komplexität von n Institut für Informatik 13. Mai 2009 1 / 34 2 / 34 Gliederung Entscheidungs- und Approximationen und Gütegarantien zwei Greedy-Strategien
Einführung in die Theoretische Informatik
Technische Universität München Fakultät für Informatik Prof. Tobias Nipkow, Ph.D. Sascha Böhme, Lars Noschinski Sommersemester 2011 Lösungsblatt 9 25. Juli 2011 Einführung in die Theoretische Informatik
Heapsort / 1 A[1] A[2] A[3] A[4] A[5] A[6] A[7] A[8]
Heapsort / 1 Heap: Ein Array heißt Heap, falls A [i] A [2i] und A[i] A [2i + 1] (für 2i n bzw. 2i + 1 n) gilt. Beispiel: A[1] A[2] A[3] A[4] A[5] A[6] A[7] A[8] Heapsort / 2 Darstellung eines Heaps als
f 1 (n) = log(n) + n 2 n 5 f 2 (n) = n 3 + n 2 f 3 (n) = log(n 2 ) f 4 (n) = n n f 5 (n) = (log(n)) 2
Prof. aa Dr. E. Ábrahám Datenstrukturen und Algorithmen SS Lösung - Präsenzübung.05.0 F. Corzilius, S. Schupp, T. Ströder Aufgabe (Asymptotische Komplexität): (6 + 0 + 6 = Punkte) a) Geben Sie eine formale
Informatik II Greedy-Algorithmen
7/7/06 lausthal Erinnerung: Dynamische Programmierung Informatik II reedy-algorithmen. Zachmann lausthal University, ermany [email protected] Zusammenfassung der grundlegenden Idee: Optimale Sub-Struktur:
Kodierungsalgorithmen
Kodierungsalgorithmen Komprimierung Verschlüsselung Komprimierung Zielsetzung: Reduktion der Speicherkapazität Schnellere Übertragung Prinzipien: Wiederholungen in den Eingabedaten kompakter speichern
Algorithmen und Komplexität Lösungsvorschlag zu Übungsblatt 8
ETH Zürich Institut für Theoretische Informatik Prof. Dr. Angelika Steger Florian Meier, Ralph Keusch HS 2017 Algorithmen und Komplexität Lösungsvorschlag zu Übungsblatt 8 Lösungsvorschlag zu Aufgabe 1
lim log 2n n = > 0 Da es einen Limes gibt, gibt es auch einen Limes inferior, der gleich diesem Limes ist.
Prof. aa Dr. Ir. Joost-Pieter Katoen Christian Dehnert, Jonathan Heinen, Thomas Ströder, Sabrina von Styp Aufgabe 1 (O-Notation): Beweisen oder widerlegen Sie die folgenden Aussagen: (3 + 3 + 4 = 10 Punkte)
Kapitel 4: Dynamische Datenstrukturen. Algorithmen und Datenstrukturen WS 2012/13. Prof. Dr. Sándor Fekete
Kapitel 4: Dynamische Datenstrukturen Algorithmen und Datenstrukturen WS 2012/13 Prof. Dr. Sándor Fekete 4.4 Binäre Suche Aufgabenstellung: Rate eine Zahl zwischen 100 und 114! Algorithmus 4.1 INPUT: OUTPUT:
4 Greedy-Algorithmen (gierige Algorithmen)
Greedy-Algorithmen (gierige Algorithmen) Greedy-Algorithmen werden oft für die exakte oder approximative Lösung von Optimierungsproblemen verwendet. Typischerweise konstruiert ein Greedy-Algorithmus eine
Grundlagen: Algorithmen und Datenstrukturen
Grundlagen: Algorithmen und Datenstrukturen Prof. Dr. Hanjo Täubig Lehrstuhl für Effiziente Algorithmen (Prof. Dr. Ernst W. Mayr) Institut für Informatik Technische Universität München Sommersemester 00
13. Binäre Suchbäume
1. Binäre Suchbäume Binäre Suchbäume realiesieren Wörterbücher. Sie unterstützen die Operationen 1. Einfügen (Insert) 2. Entfernen (Delete). Suchen (Search) 4. Maximum/Minimum-Suche 5. Vorgänger (Predecessor),
19. Dynamic Programming I
495 19. Dynamic Programming I Fibonacci, Längste aufsteigende Teilfolge, längste gemeinsame Teilfolge, Editierdistanz, Matrixkettenmultiplikation, Matrixmultiplikation nach Strassen [Ottman/Widmayer, Kap.
Kryptographie und Codierung für den Mathematikunterricht
Kryptographie und Codierung für den Mathematikunterricht Pädagogische Hochschule Karlsruhe University of Education École Supérieure de Pédagogie Institut für Mathematik und Informatik Th. Borys Was verstehst
Klausur Informatik-Propädeutikum (Niedermeier/Hartung/Nichterlein, Wintersemester 2012/13)
Berlin, 21. Februar 2013 Name:... Matr.-Nr.:... Klausur Informatik-Propädeutikum (Niedermeier/Hartung/Nichterlein, Wintersemester 2012/13) 1 2 3 4 5 6 7 8 9 Σ Bearbeitungszeit: 90 min. max. Punktezahl:
Codes und Codierung. Dr. Michael Hielscher
Codes und Codierung Dr. Michael Hielscher Aus der Eingangsbefragung von Studierenden Ich weiss, wie Codes in unserem Alltag (z.b. Barcodes auf der Milchpackung) funktionieren. Ja 10.60% Teilweise 31.80%
Natürliche Bäume. (Algorithmen und Datenstrukturen I) Prof. Dr. Oliver Braun. Letzte Änderung: :16. Natürliche Bäume 1/16
Natürliche Bäume (Algorithmen und Datenstrukturen I) Prof. Dr. Oliver Braun Letzte Änderung: 18.03.2018 18:16 Natürliche Bäume 1/16 Bäume Begriffe (1/2) Bäume sind verallgemeinerte Listenstrukturen ein
Tutorium 23 Grundbegriffe der Informatik (6. Sitzung)
Tutorium 23 Grundbegriffe der Informatik (6. Sitzung) Tutor: Felix Stahlberg SOFTWARE DESIGN AND QUALITY GROUP Source: pixelio.de KIT The cooperation of Forschungszentrum Karlsruhe GmbH and Universität
Lösungen zur 1. Klausur. Einführung in Berechenbarkeit, formale Sprachen und Komplexitätstheorie
Hochschuldozent Dr. Christian Schindelhauer Paderborn, den 21. 2. 2006 Lösungen zur 1. Klausur in Einführung in Berechenbarkeit, formale Sprachen und Komplexitätstheorie Name :................................
Algorithmentheorie. 10 Greedy Verfahren
Algorithmentheorie 0 Greedy Verfahren Prof. Dr. S. Albers Greedy Verfahren. Allgemeine Vorbemerkungen 2. Einfache Beispiele Münzwechselproblem Handlungsreisenden-Problem 3. Das Aktivitäten Auswahlproblem
Effiziente Algorithmen und Komplexitätstheorie
1 Effiziente lgorithmen und Komplexitätstheorie Vorlesung Thomas Jansen 29.06.2006 2 Burrows-Wheeler-Kompression: Verbesserungen dreischrittiges Kompressionsverfahren Burrows- Wheeler- Transformation Globale
Vortrag 20: Kurze Vektoren in Gittern
Seminar: Wie genau ist ungefähr Vortrag 20: Kurze Vektoren in Gittern Kerstin Bauer Sommerakademie Görlitz, 2007 Definition und Problembeschreibung Definition: Gitter Seien b 1,,b k Q n. Dann heißt die
13. Bäume: effektives Suchen und Sortieren
Schwerpunkte Aufgabe und Vorteile von Bäumen 13. Bäume: effektives Suchen und Sortieren Java-Beispiele: Baum.java Traverse.java TraverseTest.java Sortieren mit Bäumen Ausgabealgorithmen: - Preorder - Postorder
Grundlagen der Theoretischen Informatik
Grundlagen der Theoretischen Informatik 4. Kellerautomaten und kontextfreie Sprachen (III) 17.06.2015 Viorica Sofronie-Stokkermans e-mail: [email protected] 1 Übersicht 1. Motivation 2. Terminologie
Informatik II Greedy-Algorithmen
lausthal Informatik II reedy-algorithmen. Zachmann lausthal University, ermany [email protected] Erinnerung: Dynamische Programmierung Zusammenfassung der grundlegenden Idee: Optimale Sub-Struktur:
Strings. Stringsuche, Boyer-Moore, Textkompression, Huffman Codes.
Strings Stringsuche, Boyer-Moore, Textkompression, Huffman Codes. Suche Substring Häufiges Problem Relevante Beispiele: Suche ein Schlagwort in einem Buch Alphabet: A-Za-z0-9 Suche Virussignatur auf der
8.4 Digraphen mit negativen Kantengewichten Grundsätzliches Betrachte Startknoten s und einen Kreis C mit Gesamtlänge < 0.
8.4 Digraphen mit negativen Kantengewichten 8.4.1 Grundsätzliches Betrachte Startknoten s und einen Kreis C mit Gesamtlänge < 0. k 4 5 1 s 1 3 2 C k 0 k 3 1 1 1 k 1 k 2 v Sollte ein Pfad von s nach C und
Triangulierungen von Punktmengen und Polyedern
Triangulierungen von Punktmengen und Polyedern Vorlesung im Sommersemester 2 Technische Universität Berlin Jörg Rambau 2.4.2 Motivation und Beispiele Wir wollen hier den Begriff der Triangulierungen von
Information Modellierung Shannon Fano Praxis. Entropie. Ingo Blechschmidt, Michael Hartmann. 15. November 2006
Information Modellierung Shannon Fano Praxis Ingo Blechschmidt, Michael Hartmann 15. November 2006 Information Modellierung Shannon Fano Praxis Inhalt 1 Information Definition Informationsebenen 2 Mathematische
2. Algorithmische Methoden 2.1 Rekursion. 18. April 2017
2. Algorithmische Methoden 2.1 Rekursion 18. April 2017 Rekursiver Algorithmus Ein rekursiver Algorithmus löst ein Problem, indem er eine oder mehrere kleinere Instanzen des gleichen Problems löst. Beispiel
Grundlagen: Algorithmen und Datenstrukturen
Technische Universität München Fakultät für Informatik Lehrstuhl für Effiziente Algorithmen Dr. Hanjo Täubig Tobias Lieber Sommersemester 2011 Übungsblatt 5 14. Juni 2011 Grundlagen: Algorithmen und Datenstrukturen
