Effiziente Algorithmen und Komplexitätstheorie

Größe: px
Ab Seite anzeigen:

Download "Effiziente Algorithmen und Komplexitätstheorie"

Transkript

1 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 (nächste Woche): Raum E04/E05 1/23

2 Datenkompression: Definition und Motivation Aufgabe: Verkürze Repräsentation von Daten Kompression Dekompression X Y = c(x) X = d(y ) Daten komprimierte Daten dekomprimierte Daten 2/23

3 Datenkompression: Definition und Motivation Aufgabe: Verkürze Repräsentation von Daten Kompression Dekompression X Y = c(x) X = d(y ) Daten komprimierte Daten dekomprimierte Daten Brauchen wir heutzutage noch Datenkompression? 2/23

4 Datenkompression: Definition und Motivation Aufgabe: Verkürze Repräsentation von Daten Kompression Dekompression X Y = c(x) X = d(y ) Daten komprimierte Daten dekomprimierte Daten Brauchen wir heutzutage noch Datenkompression? Anschein: Speicher wächst viel langsamer als Datenmengen Fakt: Datenkompression allgegenwärtig 2/23

5 Datenkompression: Definition und Motivation Aufgabe: Verkürze Repräsentation von Daten Kompression Dekompression X Y = c(x) X = d(y ) Daten komprimierte Daten dekomprimierte Daten Brauchen wir heutzutage noch Datenkompression? Anschein: Speicher wächst viel langsamer als Datenmengen Fakt: Datenkompression allgegenwärtig Klassifikation verlustfrei (lossless) X : d(c(x)) = X z.b. bzip2, gif, zip verlustbehaftet (lossy) i. Allg. d(c(x)) X z.b. jpeg, mpeg, mp3 2/23

6 Datenkompression: Definition und Motivation Aufgabe: Verkürze Repräsentation von Daten Kompression Dekompression X Y = c(x) X = d(y ) Daten komprimierte Daten dekomprimierte Daten Brauchen wir heutzutage noch Datenkompression? Anschein: Speicher wächst viel langsamer als Datenmengen Fakt: Datenkompression allgegenwärtig Klassifikation verlustfrei (lossless) X : d(c(x)) = X z.b. bzip2, gif, zip verlustbehaftet (lossy) i. Allg. d(c(x)) X z.b. jpeg, mpeg, mp3 Hier: nur verlustfreie Kompression 2/23

7 Güte von Kompressionen Kompression Dekompression X Y = c(x) X = d(y ) Daten komprimierte Daten dekomprimierte Daten Konventionen: Daten X Σ für endliches Alphabet Σ Komprimierte Daten c(x) {0,1} + 3/23

8 Güte von Kompressionen Kompression Dekompression X Y = c(x) X = d(y ) Daten komprimierte Daten dekomprimierte Daten Konventionen: Daten X Σ für endliches Alphabet Σ Komprimierte Daten c(x) {0,1} + Maße Kompressionsrate = c(x) X (Einheit [bpb], bits per bit ) Kompressionsfaktor = 1 Kompressionsrate 3/23

9 Güte von Kompressionen Kompression Dekompression X Y = c(x) X = d(y ) Daten komprimierte Daten dekomprimierte Daten Konventionen: Daten X Σ für endliches Alphabet Σ Komprimierte Daten c(x) {0,1} + Maße Kompressionsrate = c(x) X (Einheit [bpb], bits per bit ) Kompressionsfaktor = 1 Kompressionsrate Schranken für die Maße? 3/23

10 Güte von Kompressionen Kompression Dekompression X Y = c(x) X = d(y ) Daten komprimierte Daten dekomprimierte Daten Konventionen: Daten X Σ für endliches Alphabet Σ Komprimierte Daten c(x) {0,1} + Maße Kompressionsrate = c(x) X (Einheit [bpb], bits per bit ) Kompressionsfaktor = 1 Kompressionsrate Schranken für die Maße? Im Allgemeinen nicht: c(x) = 1 für beliebig lange X möglich Aber: für jedes verlustfreie Verfahren gibt es auch X mit c(x) X, da c injektiv und c(x) {0,1} +. 3/23

11 Präfixkodes: Repräsentation komprimierter Daten Ansatz hier: Kodiere Texte X Σ buchstabenweise Zunächst c : Σ {0,1} +, also Code für jeden Buchstaben 4/23

12 Präfixkodes: Repräsentation komprimierter Daten Ansatz hier: Kodiere Texte X Σ buchstabenweise Zunächst c : Σ {0,1} +, also Code für jeden Buchstaben Dann setze c für Texte X = x 1 x 2... x l fort: c(x 1 x 2...x l ) = c(x 1 )c(x 2 )... c(x l ) ohne Trennzeichen Nötig: eindeutige Dekodierbarkeit 4/23

13 Präfixkodes: Repräsentation komprimierter Daten Ansatz hier: Kodiere Texte X Σ buchstabenweise Zunächst c : Σ {0,1} +, also Code für jeden Buchstaben Dann setze c für Texte X = x 1 x 2... x l fort: c(x 1 x 2...x l ) = c(x 1 )c(x 2 )... c(x l ) ohne Trennzeichen Nötig: eindeutige Dekodierbarkeit Lösung: Präfixkodes Definition Für x {0,1} sei PRE(x) := {x {0,1} X X } die Menge aller Präfixe von X. Eine Kodierung c : Σ {0,1} + heißt Präfixkode, wenn Y X : c(x) / PRE(c(Y )) gilt. 4/23

14 Beschreibung von Präfixkodes Eindeutige Darstellung von Präfixkodes: Binärbaum mit Σ Blättern Σ = {a,b,c,d} s Σ c(s) a 0 b 101 c 11 d 100 a d b c 5/23

15 Beschreibung von Präfixkodes Eindeutige Darstellung von Präfixkodes: Binärbaum mit Σ Blättern Σ = {a,b,c,d} s Σ c(s) a 0 b 101 c 11 d 100 Wann existieren Präfixkodes überhaupt? a d b c 5/23

16 Beschreibung von Präfixkodes Eindeutige Darstellung von Präfixkodes: Binärbaum mit Σ Blättern Σ = {a,b,c,d} s Σ c(s) a 0 b 101 c 11 d 100 Wann existieren Präfixkodes überhaupt? a d b c Theorem (Ungleichung von Kraft/McMillan) Ein Präfixkode c : {s 1,s 2,...,s n } {0,1} + mit c(s 1 ) = l 1, c(s 2 ) = l 2,..., c(s n ) = l n existiert genau dann, wenn n i=1 2 l i 1 gilt. 5/23

17 Beweis der Ungleichung von Kraft/McMillan ( ) Sei Präfixkode c : Σ {0,1} + mit l i := c(s i ) gegeben. 6/23

18 Beweis der Ungleichung von Kraft/McMillan ( ) Sei Präfixkode c : Σ {0,1} + mit l i := c(s i ) gegeben. Sei l := max{l 1,...,l n }. Vervollständige Binärbaum für c a c d b 6/23

19 Beweis der Ungleichung von Kraft/McMillan ( ) Sei Präfixkode c : Σ {0,1} + mit l i := c(s i ) gegeben. Sei l := max{l 1,...,l n }. Vervollständige Binärbaum für c a Binärbaum mit Höhe l und 2 l Blättern d b c Darin betrachte Teilbäume mit Wurzeln s 1,...,s n, beobachte: Teilbaum mit Wurzel s i hat 2 l l i Blätter. 6/23

20 Beweis der Ungleichung von Kraft/McMillan ( ) Sei Präfixkode c : Σ {0,1} + mit l i := c(s i ) gegeben. Sei l := max{l 1,...,l n }. Vervollständige Binärbaum für c a Binärbaum mit Höhe l und 2 l Blättern d b c Darin Also: betrachte Teilbäume mit Wurzeln s 1,...,s n, beobachte: Teilbaum mit Wurzel s i hat 2 l l i Blätter. n i=1 2l l i = 2 l n i=1 2 l i = 1. 6/23

21 Beweis der Ungleichung von Kraft/McMillan ( ) Gegeben: l 1,...,l n mit S := n i=1 2 l i 1 Ziel: Präfixkode 7/23

22 Beweis der Ungleichung von Kraft/McMillan ( ) Gegeben: l 1,...,l n mit S := n i=1 2 l i 1 Ziel: Präfixkode O. B.d.A.: l 1 l 2 l n =: l. 7/23

23 Beweis der Ungleichung von Kraft/McMillan ( ) Gegeben: l 1,...,l n mit S := n i=1 2 l i 1 Ziel: Präfixkode O. B.d.A.: l 1 l 2 l n =: l. Induktion über l l = 1: Dann n 2 und 0 bzw. 0,1 sind passende Präfixkodes. 7/23

24 Beweis der Ungleichung von Kraft/McMillan ( ) Gegeben: l 1,...,l n mit S := n i=1 2 l i 1 Ziel: Präfixkode O. B.d.A.: l 1 l 2 l n =: l. Induktion über l l = 1: Dann n 2 und 0 bzw. 0,1 sind passende Präfixkodes. l > 1: Fallunterscheidung nach S S 1/2: Entweder l 1 = 1, dann aber l = 1 und Präfixkode trivial. Oder l 1 2, dann benutze n i=1 1) = 2S 1, 2 (li wende IV auf l 1 1, l 2 1,...,l n 1 an und hänge vor die erhaltenen Kodes je eine 0. Präfixkode mit gewünschten Längen. 7/23

25 Beweis der Ungleichung von Kraft/McMillan ( ) Gegeben: l 1,...,l n mit S := n i=1 2 l i 1 Ziel: Präfixkode O. B.d.A.: l 1 l 2 l n =: l. Induktion über l l = 1: Dann n 2 und 0 bzw. 0,1 sind passende Präfixkodes. l > 1: Fallunterscheidung nach S S 1/2: Entweder l 1 = 1, dann aber l = 1 und Präfixkode trivial. Oder l 1 2, dann benutze n i=1 1) = 2S 1, 2 (li wende IV auf l 1 1, l 2 1,...,l n 1 an und hänge vor die erhaltenen Kodes je eine 0. Präfixkode mit gewünschten Längen. S > 1/2: Beobachtung: 2 l1 2 l2 2 ln, Definiere m := min{k k i=1 1/2} 2 li Beobachtung: m i=1 2 li = 1/2, da m 1 i=1 1/2 2 2 li lm IV anwenden auf {l 1,..., l m } und {l m+1,..., l n }, gib erhaltenen Präfixkodes neue Präfixe (0 bzw. 1). 7/23

26 Informationstheorie Hintergrund: probabilistisches Modell Quelle erzeugt unabh. Ereignisse, hier Buchstaben s Σ = {s 1,...,s n } mit Auftrittswahrscheinlichkeiten Prob(s) für s Σ. 8/23

27 Informationstheorie Hintergrund: probabilistisches Modell Quelle erzeugt unabh. Ereignisse, hier Buchstaben s Σ = {s 1,...,s n } mit Auftrittswahrscheinlichkeiten Prob(s) für s Σ. Selbstinformation für Ereignis s ist i(s) = log 1 Prob(s), mindestens 1 für Σ 2. 8/23

28 Informationstheorie Hintergrund: probabilistisches Modell Quelle erzeugt unabh. Ereignisse, hier Buchstaben s Σ = {s 1,...,s n } mit Auftrittswahrscheinlichkeiten Prob(s) für s Σ. Selbstinformation für Ereignis s ist i(s) = log 1 Prob(s), mindestens 1 für Σ 2. Entropie H(Σ) = s Σ Prob(s) i(s) = s ΣProb(s)log(Prob(s)) als Erwartungswert der Selbstinformation 8/23

29 Informationstheorie Hintergrund: probabilistisches Modell Quelle erzeugt unabh. Ereignisse, hier Buchstaben s Σ = {s 1,...,s n } mit Auftrittswahrscheinlichkeiten Prob(s) für s Σ. Selbstinformation für Ereignis s ist i(s) = log 1 Prob(s), mindestens 1 für Σ 2. Entropie H(Σ) = s Σ Prob(s) i(s) = s ΣProb(s)log(Prob(s)) als Erwartungswert der Selbstinformation Satz: durchschnittliche Kodierungslänge Entropie (Beweis später) 8/23

30 Informationstheorie Hintergrund: probabilistisches Modell Quelle erzeugt unabh. Ereignisse, hier Buchstaben s Σ = {s 1,...,s n } mit Auftrittswahrscheinlichkeiten Prob(s) für s Σ. Selbstinformation für Ereignis s ist i(s) = log 1 Prob(s), mindestens 1 für Σ 2. Entropie H(Σ) = s Σ Prob(s) i(s) = s ΣProb(s)log(Prob(s)) als Erwartungswert der Selbstinformation Satz: durchschnittliche Kodierungslänge Entropie (Beweis später) Problem: im Allgemeinen Entropie unbekannt probabilistisches Modell aufstellen oder schätzen 8/23

31 Erzeugung von Präfixkodes aus probabilistischen Modellen Einige Eigenschaften Präfixkode gegeben: Kodierung und Dekodierung in Linearzeit gegenüber fester Kodierung: Gewinn durch kurze Kodierung häufiger Zeichen bei rein zufälligen Texten (Gleichverteilung über Σ) sinnlos 9/23

32 Erzeugung von Präfixkodes aus probabilistischen Modellen Einige Eigenschaften Präfixkode gegeben: Kodierung und Dekodierung in Linearzeit gegenüber fester Kodierung: Gewinn durch kurze Kodierung häufiger Zeichen bei rein zufälligen Texten (Gleichverteilung über Σ) sinnlos Annahmen: Zeichen s i Σ unabhängig, Prob(s i ) bekannt Erwartete Länge eines Kodeworts c: L c := n i=1 Prob(s i) c(s i ) Damit erwartete Kodierungslänge eines Textes X: X L c 9/23

33 Erzeugung von Präfixkodes aus probabilistischen Modellen Einige Eigenschaften Präfixkode gegeben: Kodierung und Dekodierung in Linearzeit gegenüber fester Kodierung: Gewinn durch kurze Kodierung häufiger Zeichen bei rein zufälligen Texten (Gleichverteilung über Σ) sinnlos Annahmen: Zeichen s i Σ unabhängig, Prob(s i ) bekannt Erwartete Länge eines Kodeworts c: L c := n i=1 Prob(s i) c(s i ) Damit erwartete Kodierungslänge eines Textes X: X L c Gesucht: optimaler Präfixkode c, d.h. mit minimalem L c 9/23

34 Erzeugung von Präfixkodes aus probabilistischen Modellen Einige Eigenschaften Präfixkode gegeben: Kodierung und Dekodierung in Linearzeit gegenüber fester Kodierung: Gewinn durch kurze Kodierung häufiger Zeichen bei rein zufälligen Texten (Gleichverteilung über Σ) sinnlos Annahmen: Zeichen s i Σ unabhängig, Prob(s i ) bekannt Erwartete Länge eines Kodeworts c: L c := n i=1 Prob(s i) c(s i ) Damit erwartete Kodierungslänge eines Textes X: X L c Gesucht: optimaler Präfixkode c, d.h. mit minimalem L c Im Folgenden: drei Ansätze für kurze Präfixkodes 9/23

35 Shannon-Algorithmus Notation: p i := Prob(s i ), P i := i 1 j=1 p j O. B.d.A.: p 1 p 2 p n 10/23

36 Shannon-Algorithmus Notation: p i := Prob(s i ), P i := i 1 j=1 p j O. B.d.A.: p 1 p 2 p n Shannon-Algorithmus (1948) 1. Für i = 1,...,n 2. l i := log p i 3. c(s i ) := b 1 b 2...b li nach Binärdarstellung für P i = 0,b 1 b 2 b /23

37 Shannon-Algorithmus Notation: p i := Prob(s i ), P i := i 1 j=1 p j O. B.d.A.: p 1 p 2 p n Shannon-Algorithmus (1948) 1. Für i = 1,...,n 2. l i := log p i 3. c(s i ) := b 1 b 2...b li nach Binärdarstellung für P i = 0,b 1 b 2 b 3... Beispiel: Σ = {a, b, c, d, e}, Wkten. (0,4; 0,25; 0,15; 0,1; 0,1) s i p i l i P i P i binär c(s i ) a 0, , b 0,25 2 0,4 0, c 0,15 3 0,65 0, d 0,1 4 0,8 0, e 0,1 4 0,9 0, /23

38 Shannon-Algorithmus Notation: p i := Prob(s i ), P i := i 1 j=1 p j O. B.d.A.: p 1 p 2 p n Shannon-Algorithmus (1948) 1. Für i = 1,...,n 2. l i := log p i 3. c(s i ) := b 1 b 2...b li nach Binärdarstellung für P i = 0,b 1 b 2 b 3... Beispiel: Σ = {a, b, c, d, e}, Wkten. (0,4; 0,25; 0,15; 0,1; 0,1) s i p i l i P i P i binär c(s i ) a 0, , b 0,25 2 0,4 0, c 0,15 3 0,65 0, d 0,1 4 0,8 0, e 0,1 4 0,9 0, Erwartete Kodelänge = 0, , , , ,1 4 = 2,55 korrekt? 10/23

39 Shannon-Algorithmus: Korrektheit Theorem Der Shannon-Algorithmus erzeugt einen Präfixkode. 11/23

40 Shannon-Algorithmus: Korrektheit Theorem Der Shannon-Algorithmus erzeugt einen Präfixkode. Beweis Algo. setzt l i := log p i, also l i log(1/p i ). 11/23

41 Shannon-Algorithmus: Korrektheit Theorem Der Shannon-Algorithmus erzeugt einen Präfixkode. Beweis Algo. setzt l i := log p i, also l i log(1/p i ). Daher: j > i P j P i = j 1 k=i p k p i 2 l i. 11/23

42 Shannon-Algorithmus: Korrektheit Theorem Der Shannon-Algorithmus erzeugt einen Präfixkode. Beweis Algo. setzt l i := log p i, also l i log(1/p i ). Daher: j > i P j P i = j 1 k=i p k p i 2 l i. Wegen p 1 p n ist l 1 l n. Annahme: kein Präfixkode, dann i < j mit c(s i ) c(s j ). Sei c(s i ) = a 1...a li und c(s j ) = b 1...b lj. 11/23

43 Shannon-Algorithmus: Korrektheit Theorem Der Shannon-Algorithmus erzeugt einen Präfixkode. Beweis Algo. setzt l i := log p i, also l i log(1/p i ). Daher: j > i P j P i = j 1 k=i p k p i 2 l i. Wegen p 1 p n ist l 1 l n. Annahme: kein Präfixkode, dann i < j mit c(s i ) c(s j ). Sei c(s i ) = a 1...a li und c(s j ) = b 1...b lj. Es folgt P j P i = = = ( a1 ( b b l i 2 l i ) a l i 2 l + b l i+1 i 2 l +... i+1 ( ) bli +1 2 l i ( a1 ) ( ali +1 2 l i ) a l i 2 l i ( a a l i 2 l i < 1 2 l i ) +... ) /23

44 Shannon-Algorithmus: Güte Erinnerung: minimale erwartete Kodelänge gesucht, Entropie untere Schranke 12/23

45 Shannon-Algorithmus: Güte Erinnerung: Theorem minimale erwartete Kodelänge gesucht, Entropie untere Schranke Der Shannon-Algorithmus berechnet aus einer Quelle Σ einen Kode c mit L Shannon c H(Σ) /23

46 Shannon-Algorithmus: Güte Erinnerung: Theorem minimale erwartete Kodelänge gesucht, Entropie untere Schranke Der Shannon-Algorithmus berechnet aus einer Quelle Σ einen Kode c mit L Shannon c H(Σ) + 1. Beweis Erinnerung: Kodelänge c(s i ) = log Prob(s i ). 12/23

47 Shannon-Algorithmus: Güte Erinnerung: minimale erwartete Kodelänge gesucht, Entropie untere Schranke Theorem Der Shannon-Algorithmus berechnet aus einer Quelle Σ einen Kode c mit L Shannon c H(Σ) + 1. Beweis Erinnerung: Kodelänge c(s i ) = log Prob(s i ). Somit n L c = (Prob(s i ) log(prob(s i )) ) i=1 n (Prob(s i )( log(prob(s i )) + 1)) = H(Σ) + 1. i=1 12/23

48 Shannon-Algorithmus: Güte Erinnerung: minimale erwartete Kodelänge gesucht, Entropie untere Schranke Theorem Der Shannon-Algorithmus berechnet aus einer Quelle Σ einen Kode c mit L Shannon c H(Σ) + 1. Beweis Erinnerung: Kodelänge c(s i ) = log Prob(s i ). Somit n L c = (Prob(s i ) log(prob(s i )) ) Aber i=1 n (Prob(s i )( log(prob(s i )) + 1)) = H(Σ) + 1. i=1 werden sehen: Shannon-Algo. nicht optimal. 12/23

49 Shannon-Fano-Algorithmus Rekursiv Präfixkodebaum erzeugen 13/23

50 Shannon-Fano-Algorithmus Rekursiv Präfixkodebaum erzeugen Eingabe wieder: Σ mit zugehöriger Wahrscheinlichkeitsverteilung 13/23

51 Shannon-Fano-Algorithmus Rekursiv Präfixkodebaum erzeugen Eingabe wieder: Σ mit zugehöriger Wahrscheinlichkeitsverteilung 1 Falls Σ = 1, erzeuge Baum mit einem Knoten und entsprechender Beschriftung. STOP. 13/23

52 Shannon-Fano-Algorithmus Rekursiv Präfixkodebaum erzeugen Eingabe wieder: Σ mit zugehöriger Wahrscheinlichkeitsverteilung 1 Falls Σ = 1, erzeuge Baum mit einem Knoten und entsprechender Beschriftung. STOP. 2 Teile Σ in Σ 1 und Σ 2 mit s Σ 1 Prob(s) s Σ 2 Prob(s). 13/23

53 Shannon-Fano-Algorithmus Rekursiv Präfixkodebaum erzeugen Eingabe wieder: Σ mit zugehöriger Wahrscheinlichkeitsverteilung 1 Falls Σ = 1, erzeuge Baum mit einem Knoten und entsprechender Beschriftung. STOP. 2 Teile Σ in Σ 1 und Σ 2 mit s Σ 1 Prob(s) s Σ 2 Prob(s). 3 Erzeuge Baum mit unbeschrifteter Wurzel und Shannon-Fano(Σ 1 ) als linkem sowie Shannon-Fano(Σ 2 ) als rechtem Teilbaum. 13/23

54 Shannon-Fano-Algorithmus Rekursiv Präfixkodebaum erzeugen Eingabe wieder: Σ mit zugehöriger Wahrscheinlichkeitsverteilung 1 Falls Σ = 1, erzeuge Baum mit einem Knoten und entsprechender Beschriftung. STOP. 2 Teile Σ in Σ 1 und Σ 2 mit s Σ 1 Prob(s) s Σ 2 Prob(s). 3 Erzeuge Baum mit unbeschrifteter Wurzel und Shannon-Fano(Σ 1 ) als linkem sowie Shannon-Fano(Σ 2 ) als rechtem Teilbaum. Beobachtung: erzeugt Präfixkode 13/23

55 Shannon-Fano-Algorithmus Rekursiv Präfixkodebaum erzeugen Eingabe wieder: Σ mit zugehöriger Wahrscheinlichkeitsverteilung 1 Falls Σ = 1, erzeuge Baum mit einem Knoten und entsprechender Beschriftung. STOP. 2 Teile Σ in Σ 1 und Σ 2 mit s Σ 1 Prob(s) s Σ 2 Prob(s). 3 Erzeuge Baum mit unbeschrifteter Wurzel und Shannon-Fano(Σ 1 ) als linkem sowie Shannon-Fano(Σ 2 ) als rechtem Teilbaum. Beobachtung: erzeugt Präfixkode Probleme: algorithmisch schwierig (Partitionierung), mehrdeutig 13/23

56 Shannon-Fano-Algorithmus: Beispiel Wie oben: Σ = {a, b, c, d, e}, Wkten. (0,4; 0,25; 0,15; 0,1; 0,1) Σ 1 1 = {a,d}, Σ1 2 = {b,c,e} 14/23

57 Shannon-Fano-Algorithmus: Beispiel Wie oben: Σ = {a, b, c, d, e}, Wkten. (0,4; 0,25; 0,15; 0,1; 0,1) Σ 1 1 = {a,d}, Σ1 2 = {b,c,e} Σ 2 1 = {a}, Σ2 2 = {d} 14/23

58 Shannon-Fano-Algorithmus: Beispiel Wie oben: Σ = {a, b, c, d, e}, Wkten. (0,4; 0,25; 0,15; 0,1; 0,1) Σ 1 1 = {a,d}, Σ1 2 = {b,c,e} Σ 2 1 = {a}, Σ2 2 = {d} Σ 3 1 = {c,e}, Σ3 1 = {b} 14/23

59 Shannon-Fano-Algorithmus: Beispiel Wie oben: Σ = {a, b, c, d, e}, Wkten. (0,4; 0,25; 0,15; 0,1; 0,1) Σ 1 1 = {a,d}, Σ1 2 = {b,c,e} Σ 2 1 = {a}, Σ2 2 = {d} Σ 3 1 = {c,e}, Σ3 1 = {b} Σ 4 1 = {c}, Σ4 1 = {e} a d c e b 14/23

60 Shannon-Fano-Algorithmus: Beispiel Wie oben: Σ = {a, b, c, d, e}, Wkten. (0,4; 0,25; 0,15; 0,1; 0,1) Σ 1 1 = {a,d}, Σ1 2 = {b,c,e} Σ 2 1 = {a}, Σ2 2 = {d} Σ 3 1 = {c,e}, Σ3 1 = {b} Σ 4 1 = {c}, Σ4 1 = {e} a d c e b Erwartete Kodelänge = 0, , , , ,25 2 = 2,25 14/23

61 Shannon-Fano-Algorithmus: Beispiel Wie oben: Σ = {a, b, c, d, e}, Wkten. (0,4; 0,25; 0,15; 0,1; 0,1) Σ 1 1 = {a,d}, Σ1 2 = {b,c,e} Σ 2 1 = {a}, Σ2 2 = {d} Σ 3 1 = {c,e}, Σ3 1 = {b} Σ 4 1 = {c}, Σ4 1 = {e} a d c e b Erwartete Kodelänge = 0, , , , ,25 2 = 2,25 Werden sehen: auch nicht optimal 14/23

62 Huffman-Algorithmus Huffman (1952): Iterativ Präfixkodebaum erzeugen 15/23

63 Huffman-Algorithmus Huffman (1952): Iterativ Präfixkodebaum erzeugen Vorgehen: bottom-up mithilfe von Gewichtswerten 1 Erzeuge Wald aus t := n Bäumen, die je nur aus der Wurzel mit Markierung s i bestehen und Gewicht Prob(s i ) haben. 15/23

64 Huffman-Algorithmus Huffman (1952): Iterativ Präfixkodebaum erzeugen Vorgehen: bottom-up mithilfe von Gewichtswerten 1 Erzeuge Wald aus t := n Bäumen, die je nur aus der Wurzel mit Markierung s i bestehen und Gewicht Prob(s i ) haben. 2 Solange t > 1 3 Wähle Bäume T 1 und T 2 mit min. Gewichten w 1 und w 2. 15/23

65 Huffman-Algorithmus Huffman (1952): Iterativ Präfixkodebaum erzeugen Vorgehen: bottom-up mithilfe von Gewichtswerten 1 Erzeuge Wald aus t := n Bäumen, die je nur aus der Wurzel mit Markierung s i bestehen und Gewicht Prob(s i ) haben. 2 Solange t > 1 3 Wähle Bäume T 1 und T 2 mit min. Gewichten w 1 und w 2. 4 Erzeuge Baum T mit unmarkierter Wurzel, linkem Teilbaum T 1, rechtem Teilbaum T 2 und Gewicht w 1 + w 2. 15/23

66 Huffman-Algorithmus Huffman (1952): Iterativ Präfixkodebaum erzeugen Vorgehen: bottom-up mithilfe von Gewichtswerten 1 Erzeuge Wald aus t := n Bäumen, die je nur aus der Wurzel mit Markierung s i bestehen und Gewicht Prob(s i ) haben. 2 Solange t > 1 3 Wähle Bäume T 1 und T 2 mit min. Gewichten w 1 und w 2. 4 Erzeuge Baum T mit unmarkierter Wurzel, linkem Teilbaum T 1, rechtem Teilbaum T 2 und Gewicht w 1 + w 2. 5 Entferne T 1 und T 2. 15/23

67 Huffman-Algorithmus Huffman (1952): Iterativ Präfixkodebaum erzeugen Vorgehen: bottom-up mithilfe von Gewichtswerten 1 Erzeuge Wald aus t := n Bäumen, die je nur aus der Wurzel mit Markierung s i bestehen und Gewicht Prob(s i ) haben. 2 Solange t > 1 3 Wähle Bäume T 1 und T 2 mit min. Gewichten w 1 und w 2. 4 Erzeuge Baum T mit unmarkierter Wurzel, linkem Teilbaum T 1, rechtem Teilbaum T 2 und Gewicht w 1 + w 2. 5 Entferne T 1 und T 2. 6 t := t 1. 15/23

68 Huffman-Algorithmus Huffman (1952): Iterativ Präfixkodebaum erzeugen Vorgehen: bottom-up mithilfe von Gewichtswerten 1 Erzeuge Wald aus t := n Bäumen, die je nur aus der Wurzel mit Markierung s i bestehen und Gewicht Prob(s i ) haben. 2 Solange t > 1 3 Wähle Bäume T 1 und T 2 mit min. Gewichten w 1 und w 2. 4 Erzeuge Baum T mit unmarkierter Wurzel, linkem Teilbaum T 1, rechtem Teilbaum T 2 und Gewicht w 1 + w 2. 5 Entferne T 1 und T 2. 6 t := t 1. Beobachtungen: erzeugt Präfixkode, Laufzeit O(n log n) möglich 15/23

69 Huffman-Algorithmus Huffman (1952): Iterativ Präfixkodebaum erzeugen Vorgehen: bottom-up mithilfe von Gewichtswerten 1 Erzeuge Wald aus t := n Bäumen, die je nur aus der Wurzel mit Markierung s i bestehen und Gewicht Prob(s i ) haben. 2 Solange t > 1 3 Wähle Bäume T 1 und T 2 mit min. Gewichten w 1 und w 2. 4 Erzeuge Baum T mit unmarkierter Wurzel, linkem Teilbaum T 1, rechtem Teilbaum T 2 und Gewicht w 1 + w 2. 5 Entferne T 1 und T 2. 6 t := t 1. Beobachtungen: erzeugt Präfixkode, Laufzeit O(n log n) möglich Anwendungen: Übertragung von Faxen (Gruppen 3 und 4) 15/23

70 Huffman-Algorithmus: Beispiel Wieder: Σ = {a,b,c,d,e}, Wkten. (0,4;0,25;0,15;0,1;0,1) 1,0 0,4 a 0,6 0,25 b 0,35 0,15 c 0,2 0,1 d 0,1 e 16/23

71 Huffman-Algorithmus: Beispiel Wieder: Σ = {a,b,c,d,e}, Wkten. (0,4;0,25;0,15;0,1;0,1) 1,0 0,4 a 0,6 0,25 b 0,35 0,15 c 0,2 0,1 d 0,1 e 16/23

72 Huffman-Algorithmus: Beispiel Wieder: Σ = {a,b,c,d,e}, Wkten. (0,4;0,25;0,15;0,1;0,1) 1,0 0,4 a 0,6 0,25 b 0,35 0,15 c 0,2 0,1 d 0,1 e 16/23

73 Huffman-Algorithmus: Beispiel Wieder: Σ = {a,b,c,d,e}, Wkten. (0,4;0,25;0,15;0,1;0,1) 1,0 0,4 a 0,6 0,25 b 0,35 0,15 c 0,2 0,1 d 0,1 e 16/23

74 Huffman-Algorithmus: Beispiel Wieder: Σ = {a,b,c,d,e}, Wkten. (0,4;0,25;0,15;0,1;0,1) 1,0 0,4 a 0,6 0,25 b 0,35 0,15 c 0,2 0,1 d 0,1 e 16/23

75 Huffman-Algorithmus: Beispiel Wieder: Σ = {a,b,c,d,e}, Wkten. (0,4;0,25;0,15;0,1;0,1) 1,0 0,4 a 0,6 0,25 b 0,35 0,15 c 0,2 0,1 d 0,1 e 16/23

76 Huffman-Algorithmus: Beispiel Wieder: Σ = {a,b,c,d,e}, Wkten. (0,4;0,25;0,15;0,1;0,1) 1,0 0,4 a 0,6 0,25 b 0,35 0,15 c 0,2 0,1 d 0,1 e Erwartete Kodelänge = 0, , , , ,1 4 = 2,15 optimal? 16/23

77 Optimalität der Huffman-Kodierung Theorem Die Huffman-Kodierung hat optimale erwartete Kodelänge. 17/23

78 Optimalität der Huffman-Kodierung Theorem Die Huffman-Kodierung hat optimale erwartete Kodelänge. Beweis per Induktion über Σ. Induktionsanfang für Σ 2 klar. 17/23

79 Optimalität der Huffman-Kodierung Theorem Die Huffman-Kodierung hat optimale erwartete Kodelänge. Beweis per Induktion über Σ. Induktionsanfang für Σ 2 klar. Sei nun Σ > 2 und T ein Baum, der einen optimalen Präfixkode für Σ darstellt. 17/23

80 Optimalität der Huffman-Kodierung Theorem Die Huffman-Kodierung hat optimale erwartete Kodelänge. Beweis per Induktion über Σ. Induktionsanfang für Σ 2 klar. Sei nun Σ > 2 und T ein Baum, der einen optimalen Präfixkode für Σ darstellt. 1. Beobachtung: Jeder innere Knoten in T hat zwei Kinder (sonst Widerspruch zur Optimalität). 17/23

81 Optimalität der Huffman-Kodierung Theorem Die Huffman-Kodierung hat optimale erwartete Kodelänge. Beweis per Induktion über Σ. Induktionsanfang für Σ 2 klar. Sei nun Σ > 2 und T ein Baum, der einen optimalen Präfixkode für Σ darstellt. 1. Beobachtung: Jeder innere Knoten in T hat zwei Kinder (sonst Widerspruch zur Optimalität). 2. Beobachtung: Seien s i und s j die Zeichen mit den geringsten Wahrscheinlichkeiten. Dann haben s i und s j in T maximale Tiefe (sonst Widerspruch zur Optimalität). 17/23

82 Optimalität der Huffman-Kodierung Theorem Die Huffman-Kodierung hat optimale erwartete Kodelänge. Beweis per Induktion über Σ. Induktionsanfang für Σ 2 klar. Sei nun Σ > 2 und T ein Baum, der einen optimalen Präfixkode für Σ darstellt. 1. Beobachtung: Jeder innere Knoten in T hat zwei Kinder (sonst Widerspruch zur Optimalität). 2. Beobachtung: Seien s i und s j die Zeichen mit den geringsten Wahrscheinlichkeiten. Dann haben s i und s j in T maximale Tiefe (sonst Widerspruch zur Optimalität). Also: s i und s j in T wie im Huffman-Baum 17/23

83 Optimalität der Huffman-Kodierung Theorem Die Huffman-Kodierung hat optimale erwartete Kodelänge. Beweis per Induktion über Σ. Induktionsanfang für Σ 2 klar. Sei nun Σ > 2 und T ein Baum, der einen optimalen Präfixkode für Σ darstellt. 1. Beobachtung: Jeder innere Knoten in T hat zwei Kinder (sonst Widerspruch zur Optimalität). 2. Beobachtung: Seien s i und s j die Zeichen mit den geringsten Wahrscheinlichkeiten. Dann haben s i und s j in T maximale Tiefe (sonst Widerspruch zur Optimalität). Also: s i und s j in T wie im Huffman-Baum Ersetze s i und s j durch neuen Buchstaben s mit Prob(s) = Prob(s i ) + Prob(s j ). 17/23

84 Optimalität der Huffman-Kodierung Theorem Die Huffman-Kodierung hat optimale erwartete Kodelänge. Beweis per Induktion über Σ. Induktionsanfang für Σ 2 klar. Sei nun Σ > 2 und T ein Baum, der einen optimalen Präfixkode für Σ darstellt. 1. Beobachtung: Jeder innere Knoten in T hat zwei Kinder (sonst Widerspruch zur Optimalität). 2. Beobachtung: Seien s i und s j die Zeichen mit den geringsten Wahrscheinlichkeiten. Dann haben s i und s j in T maximale Tiefe (sonst Widerspruch zur Optimalität). Also: s i und s j in T wie im Huffman-Baum Ersetze s i und s j durch neuen Buchstaben s mit Prob(s) = Prob(s i ) + Prob(s j ). Indukt.-Vor.: Rest-Huffman-Baum für neues Σ optimal Induktionsschritt. 17/23

85 Huffman-Kodierung und Entropie (1/2) Wissen: erwartete Kodelänge L Huffman c von Huffman-Kode optimal Vergleich mit Entropie (theoretischem Optimum) gewünscht 18/23

86 Huffman-Kodierung und Entropie (1/2) Wissen: erwartete Kodelänge L Huffman c von Huffman-Kode optimal Vergleich mit Entropie (theoretischem Optimum) gewünscht Theorem H(Σ) L Huffman c H(Σ) /23

87 Huffman-Kodierung und Entropie (1/2) Wissen: erwartete Kodelänge L Huffman c von Huffman-Kode optimal Vergleich mit Entropie (theoretischem Optimum) gewünscht Theorem H(Σ) L Huffman c H(Σ) + 1. Beweis Zweite Ungleichung folgt wegen Optimalität von L Huffman c aus L Huffman c L Shannon c H(Σ) /23

88 Huffman-Kodierung und Entropie (1/2) Wissen: erwartete Kodelänge L Huffman c von Huffman-Kode optimal Vergleich mit Entropie (theoretischem Optimum) gewünscht Theorem H(Σ) L Huffman c H(Σ) + 1. Beweis Zweite Ungleichung folgt wegen Optimalität von L Huffman c aus L Huffman c } {{ } H(Σ) L Shannon c H(Σ) + 1. Erste Ungleichung: Betrachte ( ) ( ) Prob(s) c(s) s ΣProb(s)log(Prob(s)) s Σ } {{ } L Huffman c 18/23

89 Huffman-Kodierung und Entropie (2/2) ( ) ( ) Prob(s)log(Prob(s)) Prob(s) c(s) s Σ } {{ } H(Σ) s Σ } {{ } L Huffman c 19/23

90 Huffman-Kodierung und Entropie (2/2) ( ) ( ) Prob(s)log(Prob(s)) Prob(s) c(s) s Σ }{{} H(Σ) = s Σ Prob(s) ( log ( ) 1 Prob(s) s Σ }{{} L Huffman c ) c(s) 19/23

91 Huffman-Kodierung und Entropie (2/2) ( ) ( ) Prob(s)log(Prob(s)) Prob(s) c(s) s Σ }{{} H(Σ) = s Σ Prob(s) ( ( log = ( Prob(s) log s Σ s Σ }{{} L Huffman c ) ) 1 c(s) Prob(s) ( )) 1 Prob(s) 2 c(s) 19/23

92 Huffman-Kodierung und Entropie (2/2) ( ) ( ) Prob(s)log(Prob(s)) Prob(s) c(s) s Σ }{{} H(Σ) = s Σ Prob(s) ( ( log = ( Prob(s) log s Σ s Σ }{{} L Huffman c ) ) 1 c(s) Prob(s) ( )) 1 Prob(s) 2 c(s) = E(log(X)) mit Zufallsv. X = 2 c(s) /Prob(s). 19/23

93 Huffman-Kodierung und Entropie (2/2) ( ) ( ) Prob(s)log(Prob(s)) Prob(s) c(s) s Σ }{{} H(Σ) = s Σ Prob(s) ( ( log = ( Prob(s) log s Σ s Σ }{{} L Huffman c ) ) 1 c(s) Prob(s) ( )) 1 Prob(s) 2 c(s) = E(log(X)) mit Zufallsv. X = 2 c(s) /Prob(s). Jensensche Ungleichung: f konkav: E(f (X)) f (E(X)). 19/23

94 Huffman-Kodierung und Entropie (2/2) ( ) ( ) Prob(s)log(Prob(s)) Prob(s) c(s) s Σ }{{} H(Σ) = s Σ Prob(s) ( ( log = ( Prob(s) log s Σ s Σ }{{} L Huffman c ) ) 1 c(s) Prob(s) ( )) 1 Prob(s) 2 c(s) = E(log(X)) mit Zufallsv. X = 2 c(s) /Prob(s). Jensensche Ungleichung: f konkav: E(f (X)) f (E(X)). ( ) log Prob(s) 2 c(s) Prob(s) s Σ 19/23

95 Huffman-Kodierung und Entropie (2/2) ( ) ( ) Prob(s)log(Prob(s)) Prob(s) c(s) s Σ }{{} H(Σ) = s Σ Prob(s) ( ( log = ( Prob(s) log s Σ s Σ }{{} L Huffman c ) ) 1 c(s) Prob(s) ( )) 1 Prob(s) 2 c(s) = E(log(X)) mit Zufallsv. X = 2 c(s) /Prob(s). Jensensche Ungleichung: f konkav: E(f (X)) f (E(X)). ( ) ( ) log Prob(s) 2 c(s) = log 2 c(s) Prob(s) s Σ s Σ 19/23

96 Huffman-Kodierung und Entropie (2/2) ( ) ( ) Prob(s)log(Prob(s)) Prob(s) c(s) s Σ }{{} H(Σ) = s Σ Prob(s) ( ( log = ( Prob(s) log s Σ s Σ }{{} L Huffman c ) ) 1 c(s) Prob(s) ( )) 1 Prob(s) 2 c(s) = E(log(X)) mit Zufallsv. X = 2 c(s) /Prob(s). Jensensche Ungleichung: f konkav: E(f (X)) f (E(X)). ( ) ( ) log Prob(s) 2 c(s) = log 2 c(s) log(1) = 0 Prob(s) s Σ s Σ wegen der Ungleichung von Kraft/McMillan. 19/23

97 Huffman-Kodierung: Diskussion Frage: Stört +1 in L Huffman c H(Σ) + 1? Beispiel: Σ = {a, b}, Prob(a) = 0,99, Prob(b) = 0,01 20/23

98 Huffman-Kodierung: Diskussion Frage: Stört +1 in L Huffman c H(Σ) + 1? Beispiel: Σ = {a, b}, Prob(a) = 0,99, Prob(b) = 0,01 Klar: Huffman-Kode c(a) = 0, c(b) = 1 (oder umgekehrt) erwartete Länge L c = 1 0, ,01 = 1 Entropie = 0,99 log(1/0,99) + 0,01 log(1/0,01) 0,081 Konsequenzen? 20/23

99 Huffman-Kodierung: Diskussion Frage: Stört +1 in L Huffman c H(Σ) + 1? Beispiel: Σ = {a, b}, Prob(a) = 0,99, Prob(b) = 0,01 Klar: Huffman-Kode c(a) = 0, c(b) = 1 (oder umgekehrt) erwartete Länge L c = 1 0, ,01 = 1 Entropie = 0,99 log(1/0,99) + 0,01 log(1/0,01) 0,081 Konsequenzen? Definition: Redundanz = erwartete Länge Entropie Hier: Redundanz 0, 919 Anders gesagt: Kompression mehr als 1134% länger als optimal 20/23

100 Huffman-Kodierung: Diskussion Frage: Stört +1 in L Huffman c H(Σ) + 1? Beispiel: Σ = {a, b}, Prob(a) = 0,99, Prob(b) = 0,01 Klar: Huffman-Kode c(a) = 0, c(b) = 1 (oder umgekehrt) erwartete Länge L c = 1 0, ,01 = 1 Entropie = 0,99 log(1/0,99) + 0,01 log(1/0,01) 0,081 Konsequenzen? Definition: Redundanz = erwartete Länge Entropie Hier: Redundanz 0, 919 Anders gesagt: Kompression mehr als 1134% länger als optimal Problem: a nicht kürzer als 1 Bit kodierbar unabhängig von Prob(a) 20/23

101 Erweiterte Huffman-Kodierung Beispiel: Σ = {a, b}, Prob(a) = 0,99, Prob(b) = 0,01 Idee: Zusammenfassung von je 2 Buchstaben zu einem Block 21/23

102 Erweiterte Huffman-Kodierung Beispiel: Σ = {a, b}, Prob(a) = 0,99, Prob(b) = 0,01 Idee: Zusammenfassung von je 2 Buchstaben zu einem Block Also: Σ 2 = {aa,ab,ba,bb} mit Prob(aa) = 0,9801, Prob(ab) = Prob(ba) = 0,0099, Prob(bb) = 0, /23

103 Erweiterte Huffman-Kodierung Beispiel: Σ = {a, b}, Prob(a) = 0,99, Prob(b) = 0,01 Idee: Zusammenfassung von je 2 Buchstaben zu einem Block Also: Σ 2 = {aa,ab,ba,bb} mit Prob(aa) = 0,9801, Prob(ab) = Prob(ba) = 0,0099, Prob(bb) = 0,0001 Huffman-Kode: c(aa) = 0, c(ab) = 10, c(ba) = 110, c(bb) = /23

104 Erweiterte Huffman-Kodierung Beispiel: Σ = {a, b}, Prob(a) = 0,99, Prob(b) = 0,01 Idee: Zusammenfassung von je 2 Buchstaben zu einem Block Also: Σ 2 = {aa,ab,ba,bb} mit Prob(aa) = 0,9801, Prob(ab) = Prob(ba) = 0,0099, Prob(bb) = 0,0001 Huffman-Kode: c(aa) = 0, c(ab) = 10, c(ba) = 110, c(bb) = 111. Erwartete Länge = 0, , , , = 1,0299 Entropie H(Σ 2 ) = 0,9801 log(1/0,9801) + 2 0,0099 log(1/0,0099) + 0,0001 log(1/0,0001) = 0, /23

105 Erweiterte Huffman-Kodierung Beispiel: Σ = {a, b}, Prob(a) = 0,99, Prob(b) = 0,01 Idee: Zusammenfassung von je 2 Buchstaben zu einem Block Also: Σ 2 = {aa,ab,ba,bb} mit Prob(aa) = 0,9801, Prob(ab) = Prob(ba) = 0,0099, Prob(bb) = 0,0001 Huffman-Kode: c(aa) = 0, c(ab) = 10, c(ba) = 110, c(bb) = 111. Erwartete Länge = 0, , , , = 1,0299 Entropie H(Σ 2 ) = 0,9801 log(1/0,9801) + 2 0,0099 log(1/0,0099) + 0,0001 log(1/0,0001) = 0, Also: Redundanz 0,869, Kompression nur noch 537% zu lang 21/23

106 Erweiterte Huffman-Kodierung: weiteres Beispiel Beispiel: Σ = {a, b}, Prob(a) = 0,99, Prob(b) = 0,01 Idee: Zusammenfassung von je 3 Buchstaben zu einem Block 22/23

107 Erweiterte Huffman-Kodierung: weiteres Beispiel Beispiel: Σ = {a, b}, Prob(a) = 0,99, Prob(b) = 0,01 Idee: Zusammenfassung von je 3 Buchstaben zu einem Block Also: Σ 3 = {aaa,aab,aba,baa,abb,bab,bba,bbb} 22/23

108 Erweiterte Huffman-Kodierung: weiteres Beispiel Beispiel: Σ = {a, b}, Prob(a) = 0,99, Prob(b) = 0,01 Idee: Zusammenfassung von je 3 Buchstaben zu einem Block Also: Σ 3 = {aaa,aab,aba,baa,abb,bab,bba,bbb} Huffman-Kode:c(aaa) = 0, c(aab) = 100, c(aba) = 101, c(baa) = 110, c(abb) = 11100, c(bab) = 11101, c(bba) = 11110, c(bbb) = /23

109 Erweiterte Huffman-Kodierung: weiteres Beispiel Beispiel: Σ = {a, b}, Prob(a) = 0,99, Prob(b) = 0,01 Idee: Zusammenfassung von je 3 Buchstaben zu einem Block Also: Σ 3 = {aaa,aab,aba,baa,abb,bab,bba,bbb} Huffman-Kode:c(aaa) = 0, c(aab) = 100, c(aba) = 101, c(baa) = 110, c(abb) = 11100, c(bab) = 11101, c(bba) = 11110, c(bbb) = Erwartete Länge = 1, Entropie H(Σ 3 ) 0,242 22/23

110 Erweiterte Huffman-Kodierung: weiteres Beispiel Beispiel: Σ = {a, b}, Prob(a) = 0,99, Prob(b) = 0,01 Idee: Zusammenfassung von je 3 Buchstaben zu einem Block Also: Σ 3 = {aaa,aab,aba,baa,abb,bab,bba,bbb} Huffman-Kode:c(aaa) = 0, c(aab) = 100, c(aba) = 101, c(baa) = 110, c(abb) = 11100, c(bab) = 11101, c(bba) = 11110, c(bbb) = Erwartete Länge = 1, Entropie H(Σ 3 ) 0,242 Also: Redundanz 0,818, Kompression nur noch 338% zu lang 22/23

111 Erweiterte Huffman-Kodierung: weiteres Beispiel Beispiel: Σ = {a, b}, Prob(a) = 0,99, Prob(b) = 0,01 Idee: Zusammenfassung von je 3 Buchstaben zu einem Block Also: Σ 3 = {aaa,aab,aba,baa,abb,bab,bba,bbb} Huffman-Kode:c(aaa) = 0, c(aab) = 100, c(aba) = 101, c(baa) = 110, c(abb) = 11100, c(bab) = 11101, c(bba) = 11110, c(bbb) = Erwartete Länge = 1, Entropie H(Σ 3 ) 0,242 Also: Redundanz 0,818, Kompression nur noch 338% zu lang Vergleich der 3 Varianten: k H(Σ k ) L c (Σ k ) L c (Σ k )/k L c (Σ k )/k H(Σ k ) L c (Σ k )/k H(Σ) 1 0,081 1,000 1,000 0,919 0, ,161 1,030 0,515 0,354 0, ,242 1,060 0,353 0,111 0,272 22/23

112 Erweiterte Huffman-Kodierung: Analyse Beobachtung: L c (Σ k )/k = bei Blocklänge k erwartete Kodierungslänge eines Zeichens der erweiterten Huffman-Kodierung 23/23

113 Erweiterte Huffman-Kodierung: Analyse Beobachtung: L c (Σ k )/k = bei Blocklänge k erwartete Kodierungslänge eines Zeichens der erweiterten Huffman-Kodierung Theorem L c (Σ k )/k H(Σ) + 1/k. 23/23

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

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

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

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

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

Mehr

Proseminar WS 2002/2003

Proseminar WS 2002/2003 Technische Universität Chemnitz Fakultät für Informatik Professur Theoretische Informatik Proseminar WS 2002/2003 Thema: Datenkompression Dynamisches / Adaptives Huffman-Verfahren Danny Grobe Rainer Kuhn

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

1 Grundlagen. 1.1 Erste Grundbegriffe 1.2 Kryptographische Systeme 1.3 Informationstheoretische Grundlagen

1 Grundlagen. 1.1 Erste Grundbegriffe 1.2 Kryptographische Systeme 1.3 Informationstheoretische Grundlagen 1 Grundlagen 1.1 Erste Grundbegriffe 1.2 Kryptographische Systeme 1.3 Informationstheoretische Grundlagen Die Überlegungen dieses Kapitels basieren auf der Informationstheorie von Shannon. Er beschäftigte

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

1. Woche Einführung in die Codierungstheorie, Definition Codes, Präfixcode, kompakte Codes

1. Woche Einführung in die Codierungstheorie, Definition Codes, Präfixcode, kompakte Codes 1 Woche Einführung in die Codierungstheorie, Definition Codes, Präfixcode, kompakte Codes 1 Woche: Einführung in die Codierungstheorie, Definition Codes, Präfixcode, kompakte Codes 5/ 44 Unser Modell Shannon

Mehr

Codierung, Codes (variabler Länge)

Codierung, Codes (variabler Länge) Codierung, Codes (variabler Länge) A = {a, b, c,...} eine endliche Menge von Nachrichten (Quellalphabet) B = {0, 1} das Kanalalphabet Eine (binäre) Codierung ist eine injektive Abbildung Φ : A B +, falls

Mehr

Algorithmen II Vorlesung am

Algorithmen II Vorlesung am Algorithmen II Vorlesung am 0..0 Minimale Schnitte in Graphen INSTITUT FÜR THEORETISCHE INFORMATIK PROF. DR. DOROTHEA WAGNER KIT Universität des Landes Baden-Württemberg und Algorithmen nationales Forschungszentrum

Mehr

5 Zwei spieltheoretische Aspekte

5 Zwei spieltheoretische Aspekte 5 Zwei spieltheoretische Aspekte In diesem Kapitel wollen wir uns mit dem algorithmischen Problem beschäftigen, sogenannte Und-Oder-Bäume (kurz UOB) auszuwerten. Sie sind ein Spezialfall von Spielbäumen,

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

Datenkompression. Vortrag von Markus Durzinsky Student der Otto-von-Guericke-Universität Magdeburg

Datenkompression. Vortrag von Markus Durzinsky Student der Otto-von-Guericke-Universität Magdeburg Vortrag am 25. Januar 200 Werner von Siemens Gymnasium Magdeburg Zeitansatz: 5h (inklusive Programmieraufgaben) Datenkompression Vortrag von Markus Durzinsky Student der Otto-von-Guericke-Universität Magdeburg

Mehr

Lernziele: Ausgleichstechniken für binäre Bäume verstehen und einsetzen können.

Lernziele: Ausgleichstechniken für binäre Bäume verstehen und einsetzen können. 6. Bäume Lernziele 6. Bäume Lernziele: Definition und Eigenschaften binärer Bäume kennen, Traversierungsalgorithmen für binäre Bäume implementieren können, die Bedeutung von Suchbäumen für die effiziente

Mehr

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

Randomisierte Algorithmen

Randomisierte Algorithmen Randomisierte Algorithmen Randomisierte Algorithmen 5. Zwei spieltheoretische Aspekte Thomas Worsch Fakultät für Informatik Karlsruher Institut für Technologie Wintersemester 2015/2016 1 / 36 Überblick

Mehr

Stochastische Lernalgorithmen

Stochastische Lernalgorithmen Stochastische Lernalgorithmen Gerhard Jäger 14. Mai 2003 Das Maximum-Entropy-Prinzip Der Entropiebegriff Entropie: Chaos, Unordung, Nicht-Vorhersagbarkeit,... Begriff kommt ursprünglich aus der Physik:

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

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

Musterlösung zur Hauptklausur Theoretische Grundlagen der Informatik Wintersemester 2013/14

Musterlösung zur Hauptklausur Theoretische Grundlagen der Informatik Wintersemester 2013/14 Institut für Theoretische Informatik Prof. Dr. Jörn Müller-Quade Musterlösung zur Hauptklausur Theoretische Grundlagen der Informatik Wintersemester 23/4 Vorname Nachname Matrikelnummer Hinweise Für die

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

Induktive Beweise und rekursive Definitionen

Induktive Beweise und rekursive Definitionen Induktive Beweise und rekursive Definitionen Vorlesung Logik in der Informatik, HU Berlin 1. Übungsstunde Beweis durch vollständige Induktion über N Aufgabe 1 Zeige, dass für alle n N gilt: n 2 i = 2 n+1

Mehr

Kryptologie und Kodierungstheorie

Kryptologie und Kodierungstheorie Kryptologie und Kodierungstheorie Alexander May Horst Görtz Institut für IT-Sicherheit Ruhr-Universität Bochum Lehrerfortbildung 17.01.2012 Kryptologie Verschlüsselung, Substitution, Permutation 1 / 18

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

Textkomprimierung. Stringologie. Codes. Textkomprimierung. Alle Komprimierung beruht auf Wiederholungen im Text. Textkomprimierung

Textkomprimierung. Stringologie. Codes. Textkomprimierung. Alle Komprimierung beruht auf Wiederholungen im Text. Textkomprimierung Stringologie Peter Leupold Universität Leipzig Vorlesung SS 2014 Alle Komprimierung beruht auf Wiederholungen im Text Die Komprimierung muss rückgängig gemacht werden können Je kleiner das Alphabet, desto

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

Binäre Suchbäume. Mengen, Funktionalität, Binäre Suchbäume, Heaps, Treaps

Binäre Suchbäume. Mengen, Funktionalität, Binäre Suchbäume, Heaps, Treaps Binäre Suchbäume Mengen, Funktionalität, Binäre Suchbäume, Heaps, Treaps Mengen n Ziel: Aufrechterhalten einer Menge (hier: ganzer Zahlen) unter folgenden Operationen: Mengen n Ziel: Aufrechterhalten einer

Mehr

Umformung NTM DTM. Charakterisierung rek. aufz. Spr. Chomsky-3-Grammatiken (T5.3) Chomsky-0-Grammatik Rek. Aufz.

Umformung NTM DTM. Charakterisierung rek. aufz. Spr. Chomsky-3-Grammatiken (T5.3) Chomsky-0-Grammatik Rek. Aufz. Chomsky-0-Grammatik Rek. Aufz. Satz T5.2.2: Wenn L durch eine Chomsky-0- Grammatik G beschrieben wird, gibt es eine NTM M, die L akzeptiert. Beweis: Algo von M: Schreibe S auf freie Spur. Iteriere: Führe

Mehr

Induktive Beweise und rekursive Definitionen

Induktive Beweise und rekursive Definitionen Induktive Beweise und rekursive Definitionen Vorlesung Logik in der Informatik, HU Berlin 1. Übungsstunde Beweis durch vollständige Induktion über N Aufgabe 1 Zeige, dass für alle n N gilt: n 2 i = 2 n+1

Mehr

Minimal spannende Bäume

Minimal spannende Bäume http://www.uni-magdeburg.de/harbich/ Minimal spannende Fakultät für Informatik Otto-von-Guericke-Universität 2 Inhalt Definition Wege Untergraphen Kantengewichtete Graphen Minimal spannende Algorithmen

Mehr

Datenstrukturen & Algorithmen

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

Mehr

Organisation. Was kommt zum Test? Buch Informatik Grundlagen bis inkl. Kapitel 7.4 Wissensfragen und Rechenbeispiele

Organisation. Was kommt zum Test? Buch Informatik Grundlagen bis inkl. Kapitel 7.4 Wissensfragen und Rechenbeispiele Organisation Was kommt zum Test? Buch Informatik Grundlagen bis inkl Kapitel 74 Wissensfragen und Rechenbeispiele 3 Vorträge zur Übung Informationstheorie, Huffman-Codierung und trennzeichenfreie Codierung

Mehr

4. Jeder Knoten hat höchstens zwei Kinder, ein linkes und ein rechtes.

4. Jeder Knoten hat höchstens zwei Kinder, ein linkes und ein rechtes. Binäre Bäume Definition: Ein binärer Baum T besteht aus einer Menge von Knoten, die durch eine Vater-Kind-Beziehung wie folgt strukturiert ist: 1. Es gibt genau einen hervorgehobenen Knoten r T, die Wurzel

Mehr

Grundbegriffe der Informatik

Grundbegriffe der Informatik Grundbegriffe der Informatik Einheit 11: Graphen Thomas Worsch Karlsruher Institut für Technologie, Fakultät für Informatik Wintersemester 2010/2011 1/59 Graphische Darstellung von Zusammenhängen schon

Mehr

Begriffe aus der Informatik Nachrichten

Begriffe aus der Informatik Nachrichten Begriffe aus der Informatik Nachrichten Gerhard Goos definiert in Vorlesungen über Informatik, Band 1, 1995 Springer-Verlag Berlin Heidelberg: Die Darstellung einer Mitteilung durch die zeitliche Veränderung

Mehr

Eigenschaften von Kompressionsverfahren

Eigenschaften von Kompressionsverfahren 6 Textkompression Eigenschaften von Kompressionsverfahren Das Ziel der Datenkompression ist es, eine gegebene Information (Datenquelle) auf eine kompaktere Weise zu repräsentieren. Dies geschieht, indem

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

Kodierungsalgorithmen

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

Mehr

Abschnitt 18: Effizientes Suchen in Mengen

Abschnitt 18: Effizientes Suchen in Mengen Abschnitt 18: Effizientes Suchen in Mengen 18. Effizientes Suchen in Mengen 18.1 Vollständig ausgeglichene binäre Suchbäume 18.2 AVL-Bäume 18.3 Operationen auf AVL-Bäumen 18.4 Zusammenfassung 18 Effizientes

Mehr

Aufgabe 4.2 Sei G = (V, E, l) ein ungerichteter, gewichteter und zusammenhängender Graph.

Aufgabe 4.2 Sei G = (V, E, l) ein ungerichteter, gewichteter und zusammenhängender Graph. Aufgabe 4.2 Sei G = (V, E, l) ein ungerichteter, gewichteter und zusammenhängender Graph. a) Es seien W 1 = (V, E 1 ), W 2 = (V, E 2 ) Untergraphen von G, die beide Wälder sind. Weiter gelte E 1 > E 2.

Mehr

Datenstrukturen & Algorithmen Lösungen zu Blatt 6 FS 14

Datenstrukturen & Algorithmen Lösungen zu Blatt 6 FS 14 Eidgenössische Technische Hochschule Zürich Ecole polytechnique fédérale de Zurich Politecnico federale di Zurigo Federal Institute of Technology at Zurich Institut für Theoretische Informatik 2. April

Mehr

Huffman-Kodierung. Fachbereich Medieninformatik. Hochschule Harz. Huffman-Kodierung. Referat. Henner Wöhler. Abgabe:

Huffman-Kodierung. Fachbereich Medieninformatik. Hochschule Harz. Huffman-Kodierung. Referat. Henner Wöhler. Abgabe: Fachbereich Medieninformatik Hochschule Harz Huffman-Kodierung Referat Henner Wöhler 11459 Abgabe: 15.01.2007 Inhaltsverzeichnis Einleitung...I 1. Entropiekodierung...1 1.1 Morse Code...2 1.2 Shannon-Fano-Kodierung...3

Mehr

Einführung in Kompressionstechniken

Einführung in Kompressionstechniken Einführung in Kompressionstechniken W. Kowarschick 7. Februar 997. November 9 W. Kowarschick Motivation Dateigrößen Text Vektorgraphiken Rasterbilder Tomographien Telephon CD-Stereo Bildfolgen VD7 VD7

Mehr

Proseminar Kodierverfahren bei Dr. Ulrich Tamm Sommersemester 2003 Thema: Codierung von Bäumen (Prüfer Codes...)

Proseminar Kodierverfahren bei Dr. Ulrich Tamm Sommersemester 2003 Thema: Codierung von Bäumen (Prüfer Codes...) Proseminar Kodierverfahren bei Dr. Ulrich Tamm Sommersemester 2003 Thema: Codierung von Bäumen (Prüfer Codes...) Inhalt: Einleitung, Begriffe Baumtypen und deren Kodierung Binäre Bäume Mehrwegbäume Prüfer

Mehr

Dank. Grundlagen der Theoretischen Informatik / Einführung in die Theoretische Informatik I. Probleme über Sprachen. Teil II.

Dank. Grundlagen der Theoretischen Informatik / Einführung in die Theoretische Informatik I. Probleme über Sprachen. Teil II. Dank Vorlesung Grundlagen der Theoretischen Informatik / Einführung in die Theoretische Informatik I Bernhard Beckert Diese Vorlesungsmaterialien basieren ganz wesentlich auf den Folien zu den Vorlesungen

Mehr

Datenstrukturen & Algorithmen

Datenstrukturen & Algorithmen Datenstrukturen & Algorithmen Matthias Zwicker Universität Bern Frühling 2010 Übersicht Binäre Suchbäume Einführung und Begriffe Binäre Suchbäume 2 Binäre Suchbäume Datenstruktur für dynamische Mengen

Mehr

Abgabe: (vor der Vorlesung) Aufgabe 2.1 (P) O-Notation Beweisen Sie die folgenden Aussagen für positive Funktionen f und g:

Abgabe: (vor der Vorlesung) Aufgabe 2.1 (P) O-Notation Beweisen Sie die folgenden Aussagen für positive Funktionen f und g: TECHNISCHE UNIVERSITÄT MÜNCHEN FAKULTÄT FÜR INFORMATIK Lehrstuhl für Sprachen und Beschreibungsstrukturen SS 2009 Grundlagen: Algorithmen und Datenstrukturen Übungsblatt 2 Prof. Dr. Helmut Seidl, S. Pott,

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

Grundlagen der Theoretischen Informatik

Grundlagen der Theoretischen Informatik Grundlagen der Theoretischen Informatik Sommersemester 2016 20.04.2016 Viorica Sofronie-Stokkermans e-mail: sofronie@uni-koblenz.de 1 Bis jetzt 1. Terminologie 2. Endliche Automaten und reguläre Sprachen

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

Algorithmen und Datenstrukturen

Algorithmen und Datenstrukturen 1 Algorithmen und Datenstrukturen Wintersemester 2014/15 3. Vorlesung Laufzeitanalyse Prof. Dr. Alexander Wolff Lehrstuhl für Informatik I 2 Recap: Diskutieren Sie mit Ihrer NachbarIn! 1. 2. 3. Was sind

Mehr

Dank. 1 Ableitungsbäume. 2 Umformung von Grammatiken. 3 Normalformen. 4 Pumping-Lemma für kontextfreie Sprachen. 5 Pushdown-Automaten (PDAs)

Dank. 1 Ableitungsbäume. 2 Umformung von Grammatiken. 3 Normalformen. 4 Pumping-Lemma für kontextfreie Sprachen. 5 Pushdown-Automaten (PDAs) ank Vorlesung Grundlagen der Theoretischen Informatik / Einführung in die Theoretische Informatik I Bernhard Beckert iese Vorlesungsmaterialien basieren ganz wesentlich auf den Folien zu den Vorlesungen

Mehr

Grammatiken. Einführung

Grammatiken. Einführung Einführung Beispiel: Die arithmetischen Ausdrücke über der Variablen a und den Operationen + und können wie folgt definiert werden: a, a + a und a a sind arithmetische Ausdrücke Wenn A und B arithmetische

Mehr

Grundlagen der Theoretischen Informatik

Grundlagen der Theoretischen Informatik Grundlagen der Theoretischen Informatik Sommersemester 2015 22.04.2015 Viorica Sofronie-Stokkermans e-mail: sofronie@uni-koblenz.de 1 Bis jetzt 1. Terminologie 2. Endliche Automaten und reguläre Sprachen

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

Universität Potsdam Institut für Informatik Lehrstuhl Maschinelles Lernen. Clusteranalyse. Tobias Scheffer Thomas Vanck

Universität Potsdam Institut für Informatik Lehrstuhl Maschinelles Lernen. Clusteranalyse. Tobias Scheffer Thomas Vanck Universität Potsdam Institut für Informatik Lehrstuhl Maschinelles Lernen Clusteranalyse Tobias Scheffer Thomas Vanck Überblick Problemstellung/Motivation Deterministischer Ansatz: K-Means Probabilistischer

Mehr

Lösung zur Übung für Analysis einer Variablen WS 2016/17

Lösung zur Übung für Analysis einer Variablen WS 2016/17 Blatt Nr. 3 Prof. F. Merkl Lösung zur Übung für Analysis einer Variablen WS 206/7 Aufgabe Das Guthaben G setzt sich zusammen aus der Summe aller bisherigen Einzahlungen multipliziert mit ( + p) k, wobei

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

Viel Spaÿ! Aufgabe 0.1. Laufzeit unter Verdoppelung (-)

Viel Spaÿ! Aufgabe 0.1. Laufzeit unter Verdoppelung (-) Datenstrukturen (DS) Sommersemester 2015 Prof. Dr. Georg Schnitger Dipl-Inf. Bert Besser Hannes Seiwert, M.Sc. Institut für Informatik AG Theoretische Informatik Übung 0 Ausgabe: 14.04.2015 Abgabe: - Wenn

Mehr

1 / 33. P.F. Stadler & S. Will (Bioinf, Uni LE) ADS 2, V5 07. Mai / 33

1 / 33. P.F. Stadler & S. Will (Bioinf, Uni LE) ADS 2, V5 07. Mai / 33 P.F. Stadler & S. Will (Bioinf, Uni LE) ADS 2, V5 07. Mai 204 7 / 33 P.F. Stadler & S. Will (Bioinf, Uni LE) ADS 2, V5 07. Mai 204 8 / 33 ADS: Algorithmen und Datenstrukturen 2 Teil 5 Prof. Peter F. Stadler

Mehr

Grundbegriffe der Informatik

Grundbegriffe der Informatik Grundbegriffe der Informatik Kapitel 15: Graphen Thomas Worsch KIT, Institut für Theoretische Informatik Wintersemester 2015/2016 GBI Grundbegriffe der Informatik KIT, Institut für Theoretische Informatik

Mehr

Stefan Schmid TU Berlin & T-Labs, Berlin, Germany. Reduktionen in der Berechenbarkeitstheorie

Stefan Schmid TU Berlin & T-Labs, Berlin, Germany. Reduktionen in der Berechenbarkeitstheorie Stefan Schmid TU Berlin & T-Labs, Berlin, Germany Reduktionen in der Berechenbarkeitstheorie Problem: Wie komme ich von hier zum Hamburger Hbf? 2 Beispiel P1 Wie komme ich von hier zum Hamburger Hbf? kann

Mehr

3.1 Konstruktion von minimalen Spannbäumen Es gibt zwei Prinzipien für die Konstruktion von minimalen Spannbäumen (Tarjan): blaue Regel rote Regel

3.1 Konstruktion von minimalen Spannbäumen Es gibt zwei Prinzipien für die Konstruktion von minimalen Spannbäumen (Tarjan): blaue Regel rote Regel 3.1 Konstruktion von minimalen Spannbäumen Es gibt zwei Prinzipien für die Konstruktion von minimalen Spannbäumen (Tarjan): blaue Regel rote Regel EADS 3.1 Konstruktion von minimalen Spannbäumen 16/36

Mehr

2 i. i=0. und beweisen Sie mittels eines geeigneten Verfahrens die Korrektheit der geschlossenen Form.

2 i. i=0. und beweisen Sie mittels eines geeigneten Verfahrens die Korrektheit der geschlossenen Form. für Informatik Prof. aa Dr. Ir. Joost-Pieter Katoen Christian Dehnert, Friedrich Gretz, Benjamin Kaminski, Thomas Ströder Tutoraufgabe (Vollständige Induktion): Finden Sie eine geschlossene Form für die

Mehr

Übrigens: um den Algorithmus im Unterricht einzuführen, sind keine Formeln notwendig! Warum reicht die normale ASCII-Codierung nicht aus?

Übrigens: um den Algorithmus im Unterricht einzuführen, sind keine Formeln notwendig! Warum reicht die normale ASCII-Codierung nicht aus? Huffman-Code Dieser Text ist als Hintergrundinformation ausschliesslich für die Lehrperson gedacht. Der Text ist deshalb eher technisch gehalten. Er lehnt sich an das entsprechende Kapitel in "Turing Omnibus"

Mehr

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

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

Mehr

CODIERUNGSTHEORIE KURS ZELL AN DER PRAM, FEBRUAR 2005

CODIERUNGSTHEORIE KURS ZELL AN DER PRAM, FEBRUAR 2005 CODIERUNGSTHEORIE KURS ZELL AN DER PRAM, FEBRUAR 2005. Das Problem.. Quellcodierung und Datenkompression. Wir wollen eine Nachricht über einen digitalen Kanal, der nur 0 oder übertragen kann, schicken.

Mehr

Information und Codierung

Information und Codierung Richard W. Hamming Information und Codierung Technische Universität Darmstadt FACHBEREICH INFORMATIK BIBLIOTHEK Invantar-Nr.: Sachgebiete:. Standort: VCH Inhalt Vorwort zur 1. Auflage der Originalausgabe

Mehr

Der RSA-Algorithmus. 2. Anschließend ist n = p q und ϕ (n) = (p 1) (q 1) zu berechnen.

Der RSA-Algorithmus. 2. Anschließend ist n = p q und ϕ (n) = (p 1) (q 1) zu berechnen. Kapitel 4 Der RSA-Algorithmus Der RSA-Algorithmus ist das heute bekannteste Verfahren aus der Familie der Public-Key-Kryptosysteme. Es wurde 1978 der Öffentlichkeit vorgestellt und gilt bis heute als der

Mehr

Redundanz. Technische Informationsquelle Entropie und Redundanz Huffman Codierung. Martin Werner WS 09/10. Martin Werner, Dezember 09 1

Redundanz. Technische Informationsquelle Entropie und Redundanz Huffman Codierung. Martin Werner WS 09/10. Martin Werner, Dezember 09 1 Information, Entropie und Redundanz Technische Informationsquelle Entropie und Redundanz Huffman Codierung Martin Werner WS 9/ Martin Werner, Dezember 9 Information und Daten Informare/ Informatio (lat.)

Mehr

3. Musterlösung. Problem 1: Boruvka MST

3. Musterlösung. Problem 1: Boruvka MST Universität Karlsruhe Algorithmentechnik Fakultät für Informatik WS 06/07 ITI Wagner. Musterlösung Problem : Boruvka MST pt (a) Beweis durch Widerspruch. Sei T MST von G, e die lokal minimale Kante eines

Mehr

Informationstheorie und Codierung

Informationstheorie und Codierung Informationstheorie und Codierung 3. Codierung diskreter Quellen Gleichmäßiger Code Ungleichmäßiger Code Fano-, Huffman-Codierung Optimalcodierung von Markoff-Quellen Lauflängencodes nach Golomb und Rice

Mehr

Seminar über Algorithmen, SS2004. Textkompression. von Christian Grümme und Robert Hartmann

Seminar über Algorithmen, SS2004. Textkompression. von Christian Grümme und Robert Hartmann Seminar über Algorithmen, SS2004 Textkompression von Christian Grümme und Robert Hartmann 1. Einleitung Textkompression wird zur Verringerung des Speicherbedarfs und der Übertragungskapazität von allgemeinen

Mehr

Kapiteltests zum Leitprogramm Binäre Suchbäume

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

Mehr

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

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

Mehr

2 Informationstheorie

2 Informationstheorie 2 Informationstheorie Formale Grundlagen der Informatik I Herbstsemester 2012 Robert Marti Vorlesung teilweise basierend auf Unterlagen von Prof. emer. Helmut Schauer Grundbegriffe Informatik (IT: Information

Mehr

kontextfreie Grammatiken Theoretische Informatik kontextfreie Grammatiken kontextfreie Grammatiken Rainer Schrader 14. Juli 2009 Gliederung

kontextfreie Grammatiken Theoretische Informatik kontextfreie Grammatiken kontextfreie Grammatiken Rainer Schrader 14. Juli 2009 Gliederung Theoretische Informatik Rainer Schrader Zentrum für Angewandte Informatik Köln 14. Juli 2009 1 / 40 2 / 40 Beispiele: Aus den bisher gemachten Überlegungen ergibt sich: aus der Chomsky-Hierarchie bleiben

Mehr

Vorlesung Datenstrukturen

Vorlesung Datenstrukturen Vorlesung Datenstrukturen Binärbaum Suchbaum Dr. Frank Seifert Vorlesung Datenstrukturen - Sommersemester 2016 Folie 356 Datenstruktur Binärbaum Strukturrepräsentation des mathematischen Konzepts Binärbaum

Mehr

4. Induktives Definieren - Themenübersicht

4. Induktives Definieren - Themenübersicht Induktives Definieren 4. Induktives Definieren - Themenübersicht Induktives Definieren Natürliche Zahlen Operationen auf natürlichen Zahlen Induktive Algorithmen Induktiv definierte Mengen Binärbäume Boolesche

Mehr

Strukturelle Rekursion und Induktion

Strukturelle Rekursion und Induktion Kapitel 2 Strukturelle Rekursion und Induktion Rekursion ist eine konstruktive Technik für die Beschreibung unendlicher Mengen (und damit insbesondere für die Beschreibung unendliche Funktionen). Induktion

Mehr

Algorithmische Bioinformatik 1

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

Mehr

ETWR Teil B. Spezielle Wahrscheinlichkeitsverteilungen (stetig)

ETWR Teil B. Spezielle Wahrscheinlichkeitsverteilungen (stetig) ETWR Teil B 2 Ziele Bisher (eindimensionale, mehrdimensionale) Zufallsvariablen besprochen Lageparameter von Zufallsvariablen besprochen Übertragung des gelernten auf diskrete Verteilungen Ziel des Kapitels

Mehr

Verlustfreie Kompression

Verlustfreie Kompression Verlustfreie Kompression Tim Rolff Arbeitsbereich Wissenschaftliches Rechnen Fachbereich Informatik Fakultät für Mathematik, Informatik und Naturwissenschaften Universität Hamburg 8. Juni 2016 Tim Rolff

Mehr

Algorithms for Regression and Classification

Algorithms for Regression and Classification Fakultät für Informatik Effiziente Algorithmen und Komplexitätstheorie Algorithms for Regression and Classification Robust Regression and Genetic Association Studies Robin Nunkesser Fakultät für Informatik

Mehr

12 (2-4)-Bäume Implementierbare Funktionen. (2-4)-Bäume sind durch folgende Eigenschaften deniert: 1. Alle Äste sind gleich lang

12 (2-4)-Bäume Implementierbare Funktionen. (2-4)-Bäume sind durch folgende Eigenschaften deniert: 1. Alle Äste sind gleich lang 12 (2-4)-Bäume (2-4)-Bäume sind durch folgende Eigenschaften deniert: 1. Alle Äste sind gleich lang 2. Die Ordnung (maximale Anzahl der Söhne eines Knotens) ist gleich 4 3. Innere Knoten haben 2 Söhne

Mehr

Resolutionsalgorithmus

Resolutionsalgorithmus 112 Resolutionskalkül Mit dem Begriff Kalkül bezeichnet man eine Menge von syntaktischen Umformungsregeln, mit denen man semantische Eigenschaften der Eingabeformel herleiten kann. Für den Resolutionskalkül:

Mehr

Theoretische Informatik 1

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

Mehr

Grundlagen der Theoretischen Informatik

Grundlagen der Theoretischen Informatik 1 Grundlagen der Theoretischen Informatik Till Mossakowski Fakultät für Informatik Otto-von-Guericke Universität Magdeburg Wintersemester 2014/15 2 Kontextfreie Grammatiken Definition: Eine Grammatik G

Mehr

Induktive Definitionen

Induktive Definitionen Priv.-Doz. Dr.rer.nat.habil. Karl-Heinz Niggl Technische Universität Ilmenau Fakultät IA, Institut für Theoretische Informatik Fachgebiet Komplexitätstheorie und Effiziente Algorithmen J Induktive Definitionen

Mehr

Idee: Wenn wir beim Kopfknoten zwei Referenzen verfolgen können, sind die Teillisten kürzer. kopf Eine Datenstruktur mit Schlüsselwerten 1 bis 10

Idee: Wenn wir beim Kopfknoten zwei Referenzen verfolgen können, sind die Teillisten kürzer. kopf Eine Datenstruktur mit Schlüsselwerten 1 bis 10 Binäre Bäume Bäume gehören zu den wichtigsten Datenstrukturen in der Informatik. Sie repräsentieren z.b. die Struktur eines arithmetischen Terms oder die Struktur eines Buchs. Bäume beschreiben Organisationshierarchien

Mehr

Lösungsvorschläge Blatt 4

Lösungsvorschläge Blatt 4 Theoretische Informatik Departement Informatik Prof. Dr. Juraj Hromkovič http://www.ita.inf.ethz.ch/theoinf16 Lösungsvorschläge Blatt 4 Zürich, 21. Oktober 2016 Lösung zu Aufgabe 10 (a) Wir zeigen mit

Mehr

Informatik II Bäume. Beispiele. G. Zachmann Clausthal University, Germany zach@in.tu-clausthal.de. Stammbaum. Stammbaum. Stammbaum

Informatik II Bäume. Beispiele. G. Zachmann Clausthal University, Germany zach@in.tu-clausthal.de. Stammbaum. Stammbaum. Stammbaum lausthal Beispiele Stammbaum Informatik II. Zachmann lausthal University, ermany zach@in.tu-clausthal.de. Zachmann Informatik - SS 06 Stammbaum Stammbaum / Parse tree, Rekursionsbaum Parse tree, Rekursionsbaum

Mehr

Bayes sches Lernen: Übersicht

Bayes sches Lernen: Übersicht Bayes sches Lernen: Übersicht Bayes sches Theorem MAP, ML Hypothesen MAP Lernen Minimum Description Length Principle Bayes sche Klassifikation Naive Bayes Lernalgorithmus Teil 5: Naive Bayes + IBL (V.

Mehr

Kapitel 2: Informationstheorie. 3. Quellencodierung

Kapitel 2: Informationstheorie. 3. Quellencodierung ZHAW, NTM2, Rumc, 2.3-1 Kapitel 2: Informationstheorie 3. Quellencodierung Inhaltsverzeichnis 1. EINLEITUNG... 1 2. QUELLENCODIERUNGSTHEOREM... 2 3. HUFFMAN-QUELLENCODIERUNG... 3 4. DATENKOMPRESSION MIT

Mehr

Algorithmen und Datenstrukturen 1

Algorithmen und Datenstrukturen 1 Algorithmen und Datenstrukturen 1 7. Vorlesung Peter F. Stadler Universität Leipzig Institut für Informatik studla@informatik.uni-leipzig.de aufbauend auf den Kursen der letzten Jahre von E. Rahm, G. Heyer,

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. Dr. Werner Meixner, Dr. Alexander Krauss Sommersemester 2010 Lösungsblatt 3 14. Mai 2010 Einführung in die Theoretische

Mehr

Algorithmen und Datenstrukturen Suchbaum

Algorithmen und Datenstrukturen Suchbaum Algorithmen und Datenstrukturen Suchbaum Matthias Teschner Graphische Datenverarbeitung Institut für Informatik Universität Freiburg SS 12 Motivation Datenstruktur zur Repräsentation dynamischer Mengen

Mehr

Minimal spannende Bäume

Minimal spannende Bäume Minimal spannende Bäume Ronny Harbich 4. Mai 006 (geändert 19. August 006) Vorwort Ich danke Patrick Bahr und meinem Bruder Steffen Harbich für die Unterstützung bei dieser Arbeit. Sie haben sowohl zu

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