Gierige Algorithmen Interval Scheduling

Save this PDF as:
 WORD  PNG  TXT  JPG

Größe: px
Ab Seite anzeigen:

Download "Gierige Algorithmen Interval Scheduling"

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

Ü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

Mehr

Effiziente Algorithmen und Komplexitätstheorie

Effiziente Algorithmen und Komplexitätstheorie Fakultät für Informatik Lehrstuhl 2 Vorlesung Effiziente Algorithmen und Komplexitätstheorie Sommersemester 2008 Ingo Wegener; Vertretung: Carsten Witt 7. Juli 2008 Vorlesung am 14.07. (nächste Woche):

Mehr

Wann sind Codes eindeutig entschlüsselbar?

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

Mehr

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 2 Woche: Eindeutige Entschlüsselbarleit, Sätze von Kraft und McMillan, Huffmancodierung 24/ 44 Zwei Beispiele a 0

Mehr

Greedy Algorithmen. Grundlegendes. Organisatorisches. VL-21: Greedy Algorithmen. (Datenstrukturen und Algorithmen, SS 2017) Gerhard Woeginger

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

Mehr

Einleitung. Kapitel 1

Einleitung. Kapitel 1 Kapitel 1 Einleitung In diesem Abschnitt geben wir einen kurzen Überblick über den Inhalt der Vorlesung. Wir werden kurz die wesentlichen Probleme erläutern, die wir ansprechen wollen. Wir werden auch

Mehr

Referat zum Thema Huffman-Codes

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

Mehr

16 - Kompressionsverfahren für Texte

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,

Mehr

Einführung in die Informatik II Aus der Informationstheorie: Datenkompression

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

Mehr

Kompressionsverfahren für Texte

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

Mehr

Randomisierte Algorithmen 2. Erste Beispiele

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

Mehr

Datenkompression. 1 Allgemeines. 2 Verlustlose Kompression. Holger Rauhut

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,

Mehr

Greedy Algorithms - Gierige Algorithmen

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

Mehr

Alle bislang betrachteten Sortieralgorithmen hatten (worst-case) Laufzeit Ω(nlog(n)).

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

Mehr

Mathematik für Information und Kommunikation

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

Mehr

2.7 Der Shannon-Fano-Elias Code

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.

Mehr

Divide & Conquer. Problem in Teilprobleme aufteilen Teilprobleme rekursiv lösen Lösung aus Teillösungen zusammensetzen

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

Mehr

Kapitel 1. Exakte Suche nach einem Wort. R. Stiebe: Textalgorithmen, WS 2003/04 11

Kapitel 1. Exakte Suche nach einem Wort. R. Stiebe: Textalgorithmen, WS 2003/04 11 Kapitel 1 Exakte Suche nach einem Wort R. Stiebe: Textalgorithmen, WS 2003/04 11 Überblick Aufgabenstellung Gegeben: Text T Σ, Suchwort Σ mit T = n, = m, Σ = σ Gesucht: alle Vorkommen von in T Es gibt

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

Sortieren & Co. KIT Institut für Theoretische Informatik

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

Mehr

Problem: Finde für Alphabet mit n Zeichen einen Binärcode, der die Gesamtlänge eines Textes (über diesem Alphabet) minimiert.

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

Mehr

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 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)

Mehr

S=[n] Menge von Veranstaltungen J S kompatibel mit maximaler Größe J

S=[n] Menge von Veranstaltungen J S kompatibel mit maximaler Größe J Greedy-Strategie Definition Paradigma Greedy Der Greedy-Ansatz verwendet die Strategie 1 Top-down Auswahl: Bestimme in jedem Schritt eine lokal optimale Lösung, so dass man eine global optimale Lösung

Mehr

2.2 Allgemeine (vergleichsbasierte) Sortierverfahren

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

Mehr

Kapitel 2. Suche nach endlich vielen Wörtern. R. Stiebe: Textalgorithmen, Winter 2005/06 113

Kapitel 2. Suche nach endlich vielen Wörtern. R. Stiebe: Textalgorithmen, Winter 2005/06 113 Kapitel 2 Suche nach endlich vielen Wörtern R. Stiebe: Textalgorithmen, Winter 2005/06 113 Übersicht Aufgabenstellung Gegeben: Text T und eine endliche Menge von Wörtern P = {P 1,..., P r }; Gesucht: alle

Mehr

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

Mehr

Textkompression. Komprimierung von Daten. Runlength Komprimierung (2) Runlength Komprimierung (1) Herkömmliche Kodierung. Runlength Komprimierung (3)

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)

Mehr

Algorithmen und Datenstrukturen (für ET/IT) Programm heute. Wintersemester 2012/13. Dr. Tobias Lasser. 7 Fortgeschrittene Datenstrukturen

Algorithmen und Datenstrukturen (für ET/IT) Programm heute. Wintersemester 2012/13. Dr. Tobias Lasser. 7 Fortgeschrittene Datenstrukturen Algorithmen und Datenstrukturen (für ET/IT) Wintersemester 202/3 Dr. Tobias Lasser Computer Aided Medical Procedures Technische Universität München Programm heute 7 Fortgeschrittene Datenstrukturen 8 Such-Algorithmen

Mehr

Suchen und Sortieren Sortieren. Heaps

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,

Mehr

15 Optimales Kodieren

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

Mehr

Dynamisches Huffman-Verfahren

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

Mehr

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

Mehr

1.5 Turing-Berechenbarkeit

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

Mehr

Übung zur Vorlesung Algorithmische Geometrie

Ü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)

Mehr

Molekulare Bioinformatik

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

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 Algorithmen

Mehr

Erinnerung: das Knapsack-Problem

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

Mehr

Kapitel 2. Weitere Beispiele Effizienter Algorithmen

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

Mehr

10. Sortieren III. Untere Schranken für das vergleichsbasierte Sortieren, Radix- und Bucketsort

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.

Mehr

Seminar Kompressionsalgorithmen Huffman-Codierung, arithmetische Codierung

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

Mehr

1.5 Turing-Berechenbarkeit

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

Mehr

Lemma Für jede monotone Grammatik G gibt es eine kontextsensitive

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

Mehr

Relationen und DAGs, starker Zusammenhang

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

Mehr

Effiziente Algorithmen 2

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

Mehr

Datenstrukturen und Algorithmen. Christian Sohler FG Algorithmen & Komplexität

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

Mehr

Das Suchproblem. Gegeben Menge von Datensätzen. Beispiele Telefonverzeichnis, Wörterbuch, Symboltabelle

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.

Mehr

Einführung in die Informatik 2

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 Sven.Kosub@uni-konstanz.de Sprechstunde: Freitag, 1:30-14:00 Uhr, o.n.v.

Mehr

Definition 15 Rot-Schwarz-Bäume sind externe Binärbäume (jeder Knoten hat 0 oder 2 Kinder) mit roten und schwarzen Kanten, so dass gilt:

Definition 15 Rot-Schwarz-Bäume sind externe Binärbäume (jeder Knoten hat 0 oder 2 Kinder) mit roten und schwarzen Kanten, so dass gilt: 2.2 Rot-Schwarz-Bäume Definition 15 Rot-Schwarz-Bäume sind externe Binäräume (jeder Knoten hat 0 oder 2 Kinder) mit roten und schwarzen Kanten, so dass gilt: 1 alle Blätter hängen an schwarzen Kanten (durchgezogene

Mehr

String - Matching. Kapitel Definition

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

Mehr

Informatik II, SS 2016

Informatik II, SS 2016 Informatik II - SS 2016 (Algorithmen & Datenstrukturen) Vorlesung 20 (13.7.2016) String Matching (Textsuche) Algorithmen und Komplexität Textsuche / String Matching Gegeben: Zwei Zeichenketten (Strings)

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

Freie Universität Berlin. Seminar Talk. Datenkompression. Zacharias V. Fisches 2. Mai 2017

Freie Universität Berlin. Seminar Talk. Datenkompression. Zacharias V. Fisches 2. Mai 2017 Freie Universität Berlin Seminar Talk Datenkompression Zacharias V. Fisches zacharias.vf@gmail.com 2. Mai 2017 Proseminar Theoretische Informatik Prof. Wolfgang Mulzer Inhaltsverzeichnis 1 Einleitung 2

Mehr

Das Suchproblem 4. Suchen Das Auswahlproblem Suche in Array

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

Mehr

Grundlagen der Theoretischen Informatik

Grundlagen der Theoretischen Informatik Grundlagen der Theoretischen Informatik 4. Kellerautomaten und kontextfreie Sprachen (I) 3.06.2015 Viorica Sofronie-Stokkermans e-mail: sofronie@uni-koblenz.de 1 Organisatorisches 1. Teilklausur: Mittwoch,

Mehr

Algorithmen und Datenstrukturen

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:

Mehr

Algorithmen und Datenstrukturen Heapsort

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

Mehr

Das Suchproblem. Gegeben Menge von Datensätzen. Beispiele Telefonverzeichnis, Wörterbuch, Symboltabelle

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

Mehr

Diskrete Strukturen Kapitel 4: Graphentheorie (Bäume)

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

Mehr

6. Komprimierung. (Text)komprimierung ist ein Wechsel der Repräsentation von Daten, so daß sie weniger

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:

Mehr

Clausthal C G C C G C. Informatik II Bäume. G. Zachmann Clausthal University, Germany Beispiele. Stammbaum.

Clausthal C G C C G C. Informatik II Bäume. G. Zachmann Clausthal University, Germany Beispiele. Stammbaum. lausthal Informatik II Bäume. Zachmann lausthal University, ermany zach@in.tu-clausthal.de Beispiele Stammbaum. Zachmann Informatik - SS 0 Bäume Stammbaum Parse tree, Rekursionsbaum Unix file hierarchy

Mehr

Algorithmen und Datenstrukturen (für ET/IT)

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,

Mehr

Mächtigkeit von WHILE-Programmen

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

Mehr

Theoretische Informatik. Exkurs: Komplexität von Optimierungsproblemen. Optimierungsprobleme. Optimierungsprobleme. Exkurs Optimierungsprobleme

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

Mehr

Einführung in die Theoretische Informatik

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

Mehr

Heapsort / 1 A[1] A[2] A[3] A[4] A[5] A[6] A[7] A[8]

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

Mehr

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

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

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 Algorithmen

Mehr

Informatik II Greedy-Algorithmen

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

Mehr

Kodierungsalgorithmen

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

Mehr

Algorithmen und Komplexität Lösungsvorschlag zu Übungsblatt 8

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

Mehr

lim log 2n n = > 0 Da es einen Limes gibt, gibt es auch einen Limes inferior, der gleich diesem Limes ist.

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)

Mehr

Kapitel 4: Dynamische Datenstrukturen. Algorithmen und Datenstrukturen WS 2012/13. Prof. Dr. Sándor Fekete

Kapitel 4: Dynamische Datenstrukturen. Algorithmen und Datenstrukturen WS 2012/13. Prof. Dr. Sándor Fekete Kapitel 4: Dynamische Datenstrukturen Algorithmen und Datenstrukturen WS 2012/13 Prof. Dr. Sándor Fekete 4.4 Binäre Suche Aufgabenstellung: Rate eine Zahl zwischen 100 und 114! Algorithmus 4.1 INPUT: OUTPUT:

Mehr

Informatik II, SS 2014

Informatik II, SS 2014 Informatik II SS 2014 (Algorithmen & Datenstrukturen) Vorlesung 13 (18.6.2014) Binäre Suchbäume IV (Rot Schwarz Bäume) Algorithmen und Komplexität Rot Schwarz Bäume Ziel: Binäre Suchbäume, welche immer

Mehr

4 Greedy-Algorithmen (gierige Algorithmen)

4 Greedy-Algorithmen (gierige Algorithmen) Greedy-Algorithmen (gierige Algorithmen) Greedy-Algorithmen werden oft für die exakte oder approximative Lösung von Optimierungsproblemen verwendet. Typischerweise konstruiert ein Greedy-Algorithmus eine

Mehr

Grundlagen: Algorithmen und Datenstrukturen

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

Mehr

13. Binäre Suchbäume

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

Mehr

Grundlagen der Algorithmen und Datenstrukturen Kapitel 12

Grundlagen der Algorithmen und Datenstrukturen Kapitel 12 Grundlagen der Algorithmen und Datenstrukturen Kapitel 12 Christian Scheideler + Helmut Seidl SS 2009 28.06.09 Kapitel 12 1 Generische Optimierungsverfahren Techniken: Systematische Suche lass nichts aus

Mehr

19. Dynamic Programming I

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.

Mehr

Kryptographie und Codierung für den Mathematikunterricht

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

Mehr

Klausur Informatik-Propädeutikum (Niedermeier/Hartung/Nichterlein, Wintersemester 2012/13)

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:

Mehr

Codes und Codierung. Dr. Michael Hielscher

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%

Mehr

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: :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

Mehr

Tutorium 23 Grundbegriffe der Informatik (6. Sitzung)

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

Mehr

Lösungen zur 1. Klausur. Einführung in Berechenbarkeit, formale Sprachen und Komplexitätstheorie

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

Mehr

Algorithmentheorie. 10 Greedy Verfahren

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

Mehr

Effiziente Algorithmen und Komplexitätstheorie

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

Mehr

Vortrag 20: Kurze Vektoren in Gittern

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

Mehr

13. Bäume: effektives Suchen und Sortieren

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

Mehr

Grundlagen der Theoretischen Informatik

Grundlagen der Theoretischen Informatik Grundlagen der Theoretischen Informatik 4. Kellerautomaten und kontextfreie Sprachen (III) 17.06.2015 Viorica Sofronie-Stokkermans e-mail: sofronie@uni-koblenz.de 1 Übersicht 1. Motivation 2. Terminologie

Mehr

Informatik II Greedy-Algorithmen

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

Mehr

Informatik II, SS 2014

Informatik II, SS 2014 Informatik II SS 2014 (Algorithmen & Datenstrukturen) Vorlesung 11 (4.6.2014) Binäre Suchbäume II Algorithmen und Komplexität Binäre Suchbäume Binäre Suchbäume müssen nicht immer so schön symmetrisch sein

Mehr

Strings. Stringsuche, Boyer-Moore, Textkompression, Huffman Codes.

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

Mehr

Informatik II, SS 2016

Informatik II, SS 2016 Informatik II - SS 2016 (Algorithmen & Datenstrukturen) Vorlesung 10 (27.5.2016) Binäre Suchbäume II Algorithmen und Komplexität Zusätzliche Dictionary Operationen Dictionary: Zusätzliche mögliche Operationen:

Mehr

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

Mehr

Formale Methoden 2. Gaetano Geck Lehrstuhl I Logik in der Informatik WS 2015/2016

Formale Methoden 2. Gaetano Geck Lehrstuhl I Logik in der Informatik WS 2015/2016 Formale Methoden 2 Gaetano Geck Lehrstuhl I Logik in der Informatik WS 2015/2016 Teil 3: Kodierung 1 Motivation 2 Exkurs Grundlagen formaler Sprachen 3 Grundlagen 4 Beispielkodierungen FM2 (WS 2014/15,

Mehr

Triangulierungen von Punktmengen und Polyedern

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

Mehr

Information Modellierung Shannon Fano Praxis. Entropie. Ingo Blechschmidt, Michael Hartmann. 15. November 2006

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

Mehr

2. Algorithmische Methoden 2.1 Rekursion. 18. April 2017

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

Mehr

Grundlagen: Algorithmen und Datenstrukturen

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

Mehr

WS 2013/14. Diskrete Strukturen

WS 2013/14. Diskrete Strukturen WS 2013/14 Diskrete Strukturen Prof. Dr. J. Esparza Lehrstuhl für Grundlagen der Softwarezuverlässigkeit und theoretische Informatik Fakultät für Informatik Technische Universität München http://www7.in.tum.de/um/courses/ds/ws1314

Mehr