of 70 /70
0 31.01.2019 Torsten Ueckerdt - Theoretische Grundlagen der Informatik Vorlesung am 31. Januar 2019 INSTITUT FÜR THEORETISCHE INFORMATIK INSTITUT FÜR THEORETISCHE INFORMATIK Theoretische Grundlagen der Informatik Vorlesung am 31. Januar 2019 KIT – Die Forschungsuniversität in der Helmholtz-Gemeinschaft www.kit.edu

Theoretische Grundlagen der Informatik Vorlesung am 31 ......Vorlesung am 31. Januar 2019 INSTITUT FÜR THEORETISCHE INFORMATIK KIT Bei Codes mit variabler Länge muss man wissen,

  • Upload
    others

  • View
    2

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Theoretische Grundlagen der Informatik Vorlesung am 31 ......Vorlesung am 31. Januar 2019 INSTITUT FÜR THEORETISCHE INFORMATIK KIT Bei Codes mit variabler Länge muss man wissen,

0 31.01.2019 Torsten Ueckerdt - Theoretische Grundlagen der InformatikVorlesung am 31. Januar 2019

INSTITUT FÜR THEORETISCHE INFORMATIK

KIT

INSTITUT FÜR THEORETISCHE INFORMATIK

Theoretische Grundlagen der InformatikVorlesung am 31. Januar 2019

KIT – Die Forschungsuniversität in derHelmholtz-Gemeinschaft www.kit.edu

Page 2: Theoretische Grundlagen der Informatik Vorlesung am 31 ......Vorlesung am 31. Januar 2019 INSTITUT FÜR THEORETISCHE INFORMATIK KIT Bei Codes mit variabler Länge muss man wissen,

Thema dieses Kapitels

1 31.01.2019 Torsten Ueckerdt - Theoretische Grundlagen der InformatikVorlesung am 31. Januar 2019

INSTITUT FÜR THEORETISCHE INFORMATIK

KIT

Informationstheorie hat Anwendungen inQuellkodierungKanalkodierungKryptographie

Page 3: Theoretische Grundlagen der Informatik Vorlesung am 31 ......Vorlesung am 31. Januar 2019 INSTITUT FÜR THEORETISCHE INFORMATIK KIT Bei Codes mit variabler Länge muss man wissen,

Thema dieses Kapitels

1 31.01.2019 Torsten Ueckerdt - Theoretische Grundlagen der InformatikVorlesung am 31. Januar 2019

INSTITUT FÜR THEORETISCHE INFORMATIK

KIT

Informationstheorie hat Anwendungen inQuellkodierung

Reduktion von Redundanz/Irrelevanz am Ausgang einer InformationsquelleHauptaufgabe: DatenkompressionUnterscheidung: Verlustfrei vs. verlustbehaftete KompressionHohe wirtschaftliche Bedeutung

KanalkodierungKryptographie

Page 4: Theoretische Grundlagen der Informatik Vorlesung am 31 ......Vorlesung am 31. Januar 2019 INSTITUT FÜR THEORETISCHE INFORMATIK KIT Bei Codes mit variabler Länge muss man wissen,

Thema dieses Kapitels

1 31.01.2019 Torsten Ueckerdt - Theoretische Grundlagen der InformatikVorlesung am 31. Januar 2019

INSTITUT FÜR THEORETISCHE INFORMATIK

KIT

Informationstheorie hat Anwendungen inQuellkodierungKanalkodierung

Übertragung von digitalen Daten über gestörte KanäleSchutz vor Übertragungsfehlern durch RedundanzFehlerkorrektur

Kryptographie

Page 5: Theoretische Grundlagen der Informatik Vorlesung am 31 ......Vorlesung am 31. Januar 2019 INSTITUT FÜR THEORETISCHE INFORMATIK KIT Bei Codes mit variabler Länge muss man wissen,

Thema dieses Kapitels

1 31.01.2019 Torsten Ueckerdt - Theoretische Grundlagen der InformatikVorlesung am 31. Januar 2019

INSTITUT FÜR THEORETISCHE INFORMATIK

KIT

Informationstheorie hat Anwendungen inQuellkodierungKanalkodierungKryptographie

Informationssicherheit:Konzeption, Definition und Konstruktion von Informationssystemen, diewiderstandsfähig gegen unbefugtes Lesen und Verändern sindKryptographie bildet zusammen mit Kryptoanalyse die Kryptologie.

Page 6: Theoretische Grundlagen der Informatik Vorlesung am 31 ......Vorlesung am 31. Januar 2019 INSTITUT FÜR THEORETISCHE INFORMATIK KIT Bei Codes mit variabler Länge muss man wissen,

Material für Informationstheorie

2 31.01.2019 Torsten Ueckerdt - Theoretische Grundlagen der InformatikVorlesung am 31. Januar 2019

INSTITUT FÜR THEORETISCHE INFORMATIK

KIT

VorlesungsfolienTGI-Skript von Prof. Müller-Quade aus dem WS 08/09(auf der TGI-Homepage verlinkt)Martin Werner: Information und Kodierung, VIEWEG TEUBNER, 2008

Page 7: Theoretische Grundlagen der Informatik Vorlesung am 31 ......Vorlesung am 31. Januar 2019 INSTITUT FÜR THEORETISCHE INFORMATIK KIT Bei Codes mit variabler Länge muss man wissen,

Information

3 31.01.2019 Torsten Ueckerdt - Theoretische Grundlagen der InformatikVorlesung am 31. Januar 2019

INSTITUT FÜR THEORETISCHE INFORMATIK

KIT

Sei Σ = {1, . . . ,n} eine Menge von Zeichen mit Wahrscheinlichkeiten{p1, . . . ,pn}.

Wir betrachten eine Informationsquelle X , die Zeichen i ∈ Σ mitWahrscheinlichkeit pi liefert.Bemerkung: X wird auch diskrete, endliche Zufallsvariable genannt.

Page 8: Theoretische Grundlagen der Informatik Vorlesung am 31 ......Vorlesung am 31. Januar 2019 INSTITUT FÜR THEORETISCHE INFORMATIK KIT Bei Codes mit variabler Länge muss man wissen,

Information

3 31.01.2019 Torsten Ueckerdt - Theoretische Grundlagen der InformatikVorlesung am 31. Januar 2019

INSTITUT FÜR THEORETISCHE INFORMATIK

KIT

Sei Σ = {1, . . . ,n} eine Menge von Zeichen mit Wahrscheinlichkeiten{p1, . . . ,pn}.

Wir betrachten eine Informationsquelle X , die Zeichen i ∈ Σ mitWahrscheinlichkeit pi liefert.Bemerkung: X wird auch diskrete, endliche Zufallsvariable genannt.

BeispielEin idealer Würfel wird durch die Wahrscheinlichkeiten( 1

6 ,16 ,

16 ,

16 ,

16 ,

16 ) dargestellt.

Das Ergebnis des idealen Würfels ist schwer vorherzusagen.Der Erkenntnisgewinn nach Ausgang des Experiments ist deshalbgroß.

Page 9: Theoretische Grundlagen der Informatik Vorlesung am 31 ......Vorlesung am 31. Januar 2019 INSTITUT FÜR THEORETISCHE INFORMATIK KIT Bei Codes mit variabler Länge muss man wissen,

Information

3 31.01.2019 Torsten Ueckerdt - Theoretische Grundlagen der InformatikVorlesung am 31. Januar 2019

INSTITUT FÜR THEORETISCHE INFORMATIK

KIT

Sei Σ = {1, . . . ,n} eine Menge von Zeichen mit Wahrscheinlichkeiten{p1, . . . ,pn}.

Wir betrachten eine Informationsquelle X , die Zeichen i ∈ Σ mitWahrscheinlichkeit pi liefert.Bemerkung: X wird auch diskrete, endliche Zufallsvariable genannt.

BeispielBetrachte den gezinkten Würfel mit Wahrscheinlichkeiten( 1

10 ,110 ,

110 ,

110 ,

110 ,

12 ).

Hier ist schon klarer, welche Zahl als nächstes gewürfelt wird.Der Erkenntnisgewinn ist also kleiner.

Page 10: Theoretische Grundlagen der Informatik Vorlesung am 31 ......Vorlesung am 31. Januar 2019 INSTITUT FÜR THEORETISCHE INFORMATIK KIT Bei Codes mit variabler Länge muss man wissen,

Information

3 31.01.2019 Torsten Ueckerdt - Theoretische Grundlagen der InformatikVorlesung am 31. Januar 2019

INSTITUT FÜR THEORETISCHE INFORMATIK

KIT

Sei Σ = {1, . . . ,n} eine Menge von Zeichen mit Wahrscheinlichkeiten{p1, . . . ,pn}.

Wir betrachten eine Informationsquelle X , die Zeichen i ∈ Σ mitWahrscheinlichkeit pi liefert.Bemerkung: X wird auch diskrete, endliche Zufallsvariable genannt.

FrageWir suchen ein Maß für den Erkenntnisgewinn nach Ausgang k mitWahrscheinlichkeit pk .Wir bezeichnen diesen Erkenntnisgewinn als Information Ipk

Page 11: Theoretische Grundlagen der Informatik Vorlesung am 31 ......Vorlesung am 31. Januar 2019 INSTITUT FÜR THEORETISCHE INFORMATIK KIT Bei Codes mit variabler Länge muss man wissen,

Information

3 31.01.2019 Torsten Ueckerdt - Theoretische Grundlagen der InformatikVorlesung am 31. Januar 2019

INSTITUT FÜR THEORETISCHE INFORMATIK

KIT

Sei Σ = {1, . . . ,n} eine Menge von Zeichen mit Wahrscheinlichkeiten{p1, . . . ,pn}.

Wir betrachten eine Informationsquelle X , die Zeichen i ∈ Σ mitWahrscheinlichkeit pi liefert.Bemerkung: X wird auch diskrete, endliche Zufallsvariable genannt.

Wünsche an die Definition von InformationInformation soll nicht negativ sein. In Formeln: Ipi ≥ 0

Ein sicheres Ereignis (also pi = 1) soll keine Information liefern.

Kleine Änderungen an der Wahrscheinlichkeit sollen nur kleineÄnderungen an der Information bewirken.Etwas mathematischer ausgedrückt: Information soll stetig sein.

Page 12: Theoretische Grundlagen der Informatik Vorlesung am 31 ......Vorlesung am 31. Januar 2019 INSTITUT FÜR THEORETISCHE INFORMATIK KIT Bei Codes mit variabler Länge muss man wissen,

Information

3 31.01.2019 Torsten Ueckerdt - Theoretische Grundlagen der InformatikVorlesung am 31. Januar 2019

INSTITUT FÜR THEORETISCHE INFORMATIK

KIT

Sei Σ = {1, . . . ,n} eine Menge von Zeichen mit Wahrscheinlichkeiten{p1, . . . ,pn}.

Wir betrachten eine Informationsquelle X , die Zeichen i ∈ Σ mitWahrscheinlichkeit pi liefert.Bemerkung: X wird auch diskrete, endliche Zufallsvariable genannt.

Wünsche an die Definition von InformationWunsch: Eine doppelt so lange Zeichenkette soll doppelte Informationenthalten könnenDeshalb fordern wir, dass Ipi ·pj = Ipi + Ipj

Dies soll später sicherstellen, dass die Information einer(unabhängigen) Zeichenkette gleich der Summe derEinzelinformationen ist.

Page 13: Theoretische Grundlagen der Informatik Vorlesung am 31 ......Vorlesung am 31. Januar 2019 INSTITUT FÜR THEORETISCHE INFORMATIK KIT Bei Codes mit variabler Länge muss man wissen,

Information

3 31.01.2019 Torsten Ueckerdt - Theoretische Grundlagen der InformatikVorlesung am 31. Januar 2019

INSTITUT FÜR THEORETISCHE INFORMATIK

KIT

Sei Σ = {1, . . . ,n} eine Menge von Zeichen mit Wahrscheinlichkeiten{p1, . . . ,pn}.

Wir betrachten eine Informationsquelle X , die Zeichen i ∈ Σ mitWahrscheinlichkeit pi liefert.Bemerkung: X wird auch diskrete, endliche Zufallsvariable genannt.

Definition InformationSei p eine Wahrscheinlichkeit. Die Information von p (zur Basis b) ist

Ip = logb(1p) = − logb(p)

Im Folgenden verwenden wir immer die Basis b = 2.

Page 14: Theoretische Grundlagen der Informatik Vorlesung am 31 ......Vorlesung am 31. Januar 2019 INSTITUT FÜR THEORETISCHE INFORMATIK KIT Bei Codes mit variabler Länge muss man wissen,

Wiederholung: Rechenregeln Logarithmus

4 31.01.2019 Torsten Ueckerdt - Theoretische Grundlagen der InformatikVorlesung am 31. Januar 2019

INSTITUT FÜR THEORETISCHE INFORMATIK

KIT

loga(x · y) = loga(x) + loga(x)loga(1/x) = − loga(x)

Basiswechsel: loga(x) =logb(x)logb(a)

p1 2 3 4 5 6 7 8 9 10

K8

K6

K4

K2

0

2

Page 15: Theoretische Grundlagen der Informatik Vorlesung am 31 ......Vorlesung am 31. Januar 2019 INSTITUT FÜR THEORETISCHE INFORMATIK KIT Bei Codes mit variabler Länge muss man wissen,

Information

5 31.01.2019 Torsten Ueckerdt - Theoretische Grundlagen der InformatikVorlesung am 31. Januar 2019

INSTITUT FÜR THEORETISCHE INFORMATIK

KIT

Definition InformationSei p eine Wahrscheinlichkeit. Die Information von p (zur Basis b) ist

Ip = logb(1p) = − logb(p)

Im Folgenden verwenden wir immer die Basis b = 2.

Beispiel 2:Betrachte einen Münze mit Seiten 0,1 und Wkten p0 = p1 = 1

2 .

Die Information eines Münzwurfs ist log(1/ 12 ) = log(2) = 1.

Werfen wir die Münze k mal, so ist die Wahrscheinlichkeit für einenbestimmen Ausgang gleich 1

2 · . . . · 12 = 1

2k .

Die Information ist dann − log( 12k ) = log(2k ) = k

Page 16: Theoretische Grundlagen der Informatik Vorlesung am 31 ......Vorlesung am 31. Januar 2019 INSTITUT FÜR THEORETISCHE INFORMATIK KIT Bei Codes mit variabler Länge muss man wissen,

Entropie

6 31.01.2019 Torsten Ueckerdt - Theoretische Grundlagen der InformatikVorlesung am 31. Januar 2019

INSTITUT FÜR THEORETISCHE INFORMATIK

KIT

Anschaulich formuliertEntropie ist ein Maß für den mittleren Informationsgehalt pro Zeicheneiner Quelle.

Interessante andere SichtweiseEntropie eines Strings bezeichnet die Länge unter der ein String nichtkomprimiert werden kann.

Die Kolmogorov-Komplexität eines String ist die Länge eineskürzesten Programms, das diesen String ausgibt.

Damit ist Entropie eine untere Schranke für dieKolmogorov-Komplexität.

Page 17: Theoretische Grundlagen der Informatik Vorlesung am 31 ......Vorlesung am 31. Januar 2019 INSTITUT FÜR THEORETISCHE INFORMATIK KIT Bei Codes mit variabler Länge muss man wissen,

Entropie

7 31.01.2019 Torsten Ueckerdt - Theoretische Grundlagen der InformatikVorlesung am 31. Januar 2019

INSTITUT FÜR THEORETISCHE INFORMATIK

KIT

EntropieDie Entropie (zur Basis 2) einer diskreten Zufallsvariable X mit Ergeb-nissen (Zeichen) in Σ und Wahrscheinlichkeiten p(a) > 0 für a ∈ Σ,ist definiert durch

H(X ) = ∑a∈Σ

p(a) log2(1

p(a)).

BemerkungEs gilt immer H(X ) > 0.

Page 18: Theoretische Grundlagen der Informatik Vorlesung am 31 ......Vorlesung am 31. Januar 2019 INSTITUT FÜR THEORETISCHE INFORMATIK KIT Bei Codes mit variabler Länge muss man wissen,

Bemerkungen zur Entropie

8 31.01.2019 Torsten Ueckerdt - Theoretische Grundlagen der InformatikVorlesung am 31. Januar 2019

INSTITUT FÜR THEORETISCHE INFORMATIK

KIT

H(X ) = ∑a∈Σ

p(a) log2(1

p(a))

Die Entropie einer diskreten, endlichen Zufallsvariable mit |Σ| = nZeichen wird maximal, wenn alle Zeichen gleichwahrscheinlich sind:p(a) = 1/n für jedes a ∈ Σ.Die maximale Entropie beträgt dann

H(X ) = ∑a∈Σ

p(a) log2(1

p(a)) = n · 1

n· log2(

11/n

) = log2(n).

Die Entropie der deutschen Sprache liegt etwa bei 4,1.Bei 26 Buchstaben ergibt sich eine maximale Entropie vonlog2(26) ≈ 4,7.

Page 19: Theoretische Grundlagen der Informatik Vorlesung am 31 ......Vorlesung am 31. Januar 2019 INSTITUT FÜR THEORETISCHE INFORMATIK KIT Bei Codes mit variabler Länge muss man wissen,

Entropie einer Münze mit Wkt p für Zahl

9 31.01.2019 Torsten Ueckerdt - Theoretische Grundlagen der InformatikVorlesung am 31. Januar 2019

INSTITUT FÜR THEORETISCHE INFORMATIK

KIT

p0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9

0.1

0.2

0.3

0.4

0.5

0.6

0.7

0.8

0.9

1.0

H(X ) = ∑a∈Σ

p(a) log2(1

p(a)) = p · log2(

1p) + (1− p) · log2(

11− p

)

Page 20: Theoretische Grundlagen der Informatik Vorlesung am 31 ......Vorlesung am 31. Januar 2019 INSTITUT FÜR THEORETISCHE INFORMATIK KIT Bei Codes mit variabler Länge muss man wissen,

(Platzsparende) Kodierungen

10 31.01.2019 Torsten Ueckerdt - Theoretische Grundlagen der InformatikVorlesung am 31. Januar 2019

INSTITUT FÜR THEORETISCHE INFORMATIK

KIT

Wir betrachten eine Informationsquelle X , die Zeichen i ∈ Σ mitWahrscheinlichkeit pi liefert.Zum Kodieren der Zeichen aus Σ haben wir aber nur Zeichenkettenaus {0,1}∗ zur Verfügung.Wie können wir Σ ohne Informationsverlust kodieren, dass dieerwartete Länge der Ausgabe möglichst klein wird?

FormalWir ordnen jedem Zeichen i ∈ Σ ein Codewort ci ∈ {0,1}∗ zu.Wir verwenden keine Trennzeichen.

BeispielA: 00 H: 110 L: 10 O: 01

11000101001 ist eine Folge von fünf Codewörtern und steht für: HALLO

Page 21: Theoretische Grundlagen der Informatik Vorlesung am 31 ......Vorlesung am 31. Januar 2019 INSTITUT FÜR THEORETISCHE INFORMATIK KIT Bei Codes mit variabler Länge muss man wissen,

Präfix-Codes

11 31.01.2019 Torsten Ueckerdt - Theoretische Grundlagen der InformatikVorlesung am 31. Januar 2019

INSTITUT FÜR THEORETISCHE INFORMATIK

KIT

Bei Codes mit variabler Länge muss man wissen, wann ein neuesCodewort beginnt.Ein Präfix-Code ist ein Code, so dass kein Codewort Anfang einesanderen Codeworts ist.Für Präfix-Codes benötigt man deswegen keine Trennzeichen.Jeder Präfix-Code kann als Baum dargestellt werden . . .

Page 22: Theoretische Grundlagen der Informatik Vorlesung am 31 ......Vorlesung am 31. Januar 2019 INSTITUT FÜR THEORETISCHE INFORMATIK KIT Bei Codes mit variabler Länge muss man wissen,

Kodierungsbäume

12 31.01.2019 Torsten Ueckerdt - Theoretische Grundlagen der InformatikVorlesung am 31. Januar 2019

INSTITUT FÜR THEORETISCHE INFORMATIK

KIT

Wir kodieren im Folgenden binär.Sei Σ = {1, . . . ,n} ein Alphabet mit Präfix-Code C = {c1, . . . , cn}.Der Kodierungsbaum T von (Σ,C) ist ein gerichteter, binärer Baum sodass

jede Kante mit 0 oder 1 annotiert ist,ausgehend von einem Knoten höchstens eine Kante mit 0 und höchstenseine Kante mit 1 annotiert ist,die Blätter von T genau die Elemente in Σ sind,der Weg von der Wurzel zu i ∈ Σ mit ci annotiert ist.

10

10

0 1 0 1 0 1 0 1

10

a b c d e f g h

Page 23: Theoretische Grundlagen der Informatik Vorlesung am 31 ......Vorlesung am 31. Januar 2019 INSTITUT FÜR THEORETISCHE INFORMATIK KIT Bei Codes mit variabler Länge muss man wissen,

Kodierungsbäume

13 31.01.2019 Torsten Ueckerdt - Theoretische Grundlagen der InformatikVorlesung am 31. Januar 2019

INSTITUT FÜR THEORETISCHE INFORMATIK

KIT

10

10

0 1 0 1 0 1 0 1

10

a b c d e f g h

BeispieleZeichen b hat Code 001Zeichen e hat Code 100Zeichen h hat Code 111

Page 24: Theoretische Grundlagen der Informatik Vorlesung am 31 ......Vorlesung am 31. Januar 2019 INSTITUT FÜR THEORETISCHE INFORMATIK KIT Bei Codes mit variabler Länge muss man wissen,

Kodierungsbäume

13 31.01.2019 Torsten Ueckerdt - Theoretische Grundlagen der InformatikVorlesung am 31. Januar 2019

INSTITUT FÜR THEORETISCHE INFORMATIK

KIT

10

10

0 1 0 1 0 1 0 1

10

a b c d e f g h

BemerkungenEs besteht ein direkter Zusammenhang zwischen Kodierungen undden zugehörigen Bäumen.Die Tiefe dT (v) eines Knotens v in einem Baum T ist die Anzahl derKanten auf einem kürzesten Weg von der Wurzel zu v .

Page 25: Theoretische Grundlagen der Informatik Vorlesung am 31 ......Vorlesung am 31. Januar 2019 INSTITUT FÜR THEORETISCHE INFORMATIK KIT Bei Codes mit variabler Länge muss man wissen,

Kodierungsbäume

13 31.01.2019 Torsten Ueckerdt - Theoretische Grundlagen der InformatikVorlesung am 31. Januar 2019

INSTITUT FÜR THEORETISCHE INFORMATIK

KIT

10

10

0 1 0 1 0 1 0 1

10

a b c d e f g h

BemerkungenGegeben sei eine Kodierung für Alphabet Σ mit

Wahrscheinlichkeit pi für i ∈ Σ,Codewortlänge ni für i ∈ Σ undzugehörigem Kodierungsbaum T .

Die mittlere Codewortlänge ist n = ∑i∈Σ pini = ∑v∈Σ pv dT (v).

Page 26: Theoretische Grundlagen der Informatik Vorlesung am 31 ......Vorlesung am 31. Januar 2019 INSTITUT FÜR THEORETISCHE INFORMATIK KIT Bei Codes mit variabler Länge muss man wissen,

Beispiel

14 31.01.2019 Torsten Ueckerdt - Theoretische Grundlagen der InformatikVorlesung am 31. Januar 2019

INSTITUT FÜR THEORETISCHE INFORMATIK

KIT

Betrachte eine Informationsquelle X mit Σ = {a,b, c,d ,e, f ,g,h} undWahrscheinlichkeiten pi = 1/8 für i ∈ Σ.

10

10

0 1 0 1 0 1 0 1

10

a b c d e f g h

Page 27: Theoretische Grundlagen der Informatik Vorlesung am 31 ......Vorlesung am 31. Januar 2019 INSTITUT FÜR THEORETISCHE INFORMATIK KIT Bei Codes mit variabler Länge muss man wissen,

Beispiel

14 31.01.2019 Torsten Ueckerdt - Theoretische Grundlagen der InformatikVorlesung am 31. Januar 2019

INSTITUT FÜR THEORETISCHE INFORMATIK

KIT

Betrachte eine Informationsquelle X mit Σ = {a,b, c,d ,e, f ,g,h} undWahrscheinlichkeiten pi = 1/8 für i ∈ Σ.

10

10

0 1 0 1 0 1 0 1

10

a b c d e f g h

Mittlere CodewortlängeHier haben alle Codewörter Länge 3.Die mittlere Codewortlänge ist also 3.

Page 28: Theoretische Grundlagen der Informatik Vorlesung am 31 ......Vorlesung am 31. Januar 2019 INSTITUT FÜR THEORETISCHE INFORMATIK KIT Bei Codes mit variabler Länge muss man wissen,

Beispiel

14 31.01.2019 Torsten Ueckerdt - Theoretische Grundlagen der InformatikVorlesung am 31. Januar 2019

INSTITUT FÜR THEORETISCHE INFORMATIK

KIT

Betrachte eine Informationsquelle X mit Σ = {a,b, c,d ,e, f ,g,h} undWahrscheinlichkeiten pi = 1/8 für i ∈ Σ.

10

10

0 1 0 1 0 1 0 1

10

a b c d e f g h

Anzahl der kodierten ZeichenMit jedem zusätzlichen Bit, verdoppelt sich die Größe desdarstellbaren Alphabets.Um ein Alphabet Σ mit Wörtern gleicher Länge zu kodieren brauchtman also log2(|Σ|) Bits pro Codewort.

Page 29: Theoretische Grundlagen der Informatik Vorlesung am 31 ......Vorlesung am 31. Januar 2019 INSTITUT FÜR THEORETISCHE INFORMATIK KIT Bei Codes mit variabler Länge muss man wissen,

Beispiel: Morse-Alphabet

15 31.01.2019 Torsten Ueckerdt - Theoretische Grundlagen der InformatikVorlesung am 31. Januar 2019

INSTITUT FÜR THEORETISCHE INFORMATIK

KIT

Das Morse-Alphabet hat variable Länge.Das Morse-Alphabet ist kein Präfix-Code.Zur Unterscheidung von A und ET benötigt man ein Trennzeichen.Das Morsealphabet besteht deswegen aus 3 Zeichen.

Buchstabe Morsezeichen Buchstabe MorsezeichenA ◦− N −◦B − ◦ ◦◦ O −−−C − ◦−◦ P ◦ −−◦D − ◦ ◦ Q −− ◦−E ◦ R ◦ − ◦F ◦ ◦ −◦ S ◦ ◦ ◦G −− ◦ T −H ◦ ◦ ◦◦ U ◦ ◦ −I ◦◦ V ◦ ◦ ◦−J ◦ −−− W ◦ −−K − ◦− X − ◦ ◦−L ◦ − ◦◦ Y − ◦−−M −− Z −− ◦◦

Page 30: Theoretische Grundlagen der Informatik Vorlesung am 31 ......Vorlesung am 31. Januar 2019 INSTITUT FÜR THEORETISCHE INFORMATIK KIT Bei Codes mit variabler Länge muss man wissen,

Quellenkodierungstheorem

16 31.01.2019 Torsten Ueckerdt - Theoretische Grundlagen der InformatikVorlesung am 31. Januar 2019

INSTITUT FÜR THEORETISCHE INFORMATIK

KIT

Es seien Codes mit variabler Länge erlaubt.Es ist dann nützlich, häufige Zeichen mit kurzen Wörtern zu kodieren.Dies verkleinert die mittlere Codewortlänge.

Satz (Shannon’s Quellenkodierungstheorem):Sei X eine diskrete endliche Zufallsvariable mit Entropie H(X ). Weitersei ein Präfix-Code für X mit einem Codealphabet aus D Zeichen undminimaler mittlerer Codewortlänge n gegeben. Dann gilt

H(X )

log2 D≤ n <

H(X )

log2 D+ 1 .

Page 31: Theoretische Grundlagen der Informatik Vorlesung am 31 ......Vorlesung am 31. Januar 2019 INSTITUT FÜR THEORETISCHE INFORMATIK KIT Bei Codes mit variabler Länge muss man wissen,

Beispiel: Shannon-Fano Kodierung

17 31.01.2019 Torsten Ueckerdt - Theoretische Grundlagen der InformatikVorlesung am 31. Januar 2019

INSTITUT FÜR THEORETISCHE INFORMATIK

KIT

Zeichen Wahrscheinlichkeiten Codewort0 0,15911 0,13882 0,11253 0,09464 0,07965 0,06696 0,05637 0,04738 0,03989 0,033410 0,028111 0,023712 0,0199. . . . . . . . .

Page 32: Theoretische Grundlagen der Informatik Vorlesung am 31 ......Vorlesung am 31. Januar 2019 INSTITUT FÜR THEORETISCHE INFORMATIK KIT Bei Codes mit variabler Länge muss man wissen,

Beispiel: Shannon-Fano Kodierung

17 31.01.2019 Torsten Ueckerdt - Theoretische Grundlagen der InformatikVorlesung am 31. Januar 2019

INSTITUT FÜR THEORETISCHE INFORMATIK

KIT

Zeichen Wahrscheinlichkeiten Codewort0 0,1591 01 0,1388 02 0,1125 03 0,0946 04 0,0796 15 0,0669 16 0,0563 17 0,0473 18 0,0398 19 0,0334 110 0,0281 111 0,0237 112 0,0199 1. . . . . . . . .

Page 33: Theoretische Grundlagen der Informatik Vorlesung am 31 ......Vorlesung am 31. Januar 2019 INSTITUT FÜR THEORETISCHE INFORMATIK KIT Bei Codes mit variabler Länge muss man wissen,

Beispiel: Shannon-Fano Kodierung

17 31.01.2019 Torsten Ueckerdt - Theoretische Grundlagen der InformatikVorlesung am 31. Januar 2019

INSTITUT FÜR THEORETISCHE INFORMATIK

KIT

Zeichen Wahrscheinlichkeiten Codewort0 0,1591 001 0,1388 002 0,1125 013 0,0946 014 0,0796 15 0,0669 16 0,0563 17 0,0473 18 0,0398 19 0,0334 110 0,0281 111 0,0237 112 0,0199 1. . . . . . . . .

Page 34: Theoretische Grundlagen der Informatik Vorlesung am 31 ......Vorlesung am 31. Januar 2019 INSTITUT FÜR THEORETISCHE INFORMATIK KIT Bei Codes mit variabler Länge muss man wissen,

Beispiel: Shannon-Fano Kodierung

17 31.01.2019 Torsten Ueckerdt - Theoretische Grundlagen der InformatikVorlesung am 31. Januar 2019

INSTITUT FÜR THEORETISCHE INFORMATIK

KIT

Zeichen Wahrscheinlichkeiten Codewort0 0,1591 0001 0,1388 0012 0,1125 013 0,0946 014 0,0796 15 0,0669 16 0,0563 17 0,0473 18 0,0398 19 0,0334 110 0,0281 111 0,0237 112 0,0199 1. . . . . . . . .

Page 35: Theoretische Grundlagen der Informatik Vorlesung am 31 ......Vorlesung am 31. Januar 2019 INSTITUT FÜR THEORETISCHE INFORMATIK KIT Bei Codes mit variabler Länge muss man wissen,

Beispiel: Shannon-Fano Kodierung

17 31.01.2019 Torsten Ueckerdt - Theoretische Grundlagen der InformatikVorlesung am 31. Januar 2019

INSTITUT FÜR THEORETISCHE INFORMATIK

KIT

Zeichen Wahrscheinlichkeiten Codewort0 0,1591 0001 0,1388 0012 0,1125 0103 0,0946 0114 0,0796 15 0,0669 16 0,0563 17 0,0473 18 0,0398 19 0,0334 110 0,0281 111 0,0237 112 0,0199 1. . . . . . . . .

Page 36: Theoretische Grundlagen der Informatik Vorlesung am 31 ......Vorlesung am 31. Januar 2019 INSTITUT FÜR THEORETISCHE INFORMATIK KIT Bei Codes mit variabler Länge muss man wissen,

Beispiel: Shannon-Fano Kodierung

17 31.01.2019 Torsten Ueckerdt - Theoretische Grundlagen der InformatikVorlesung am 31. Januar 2019

INSTITUT FÜR THEORETISCHE INFORMATIK

KIT

Zeichen Wahrscheinlichkeiten Codewort0 0,1591 0001 0,1388 0012 0,1125 0103 0,0946 0114 0,0796 105 0,0669 106 0,0563 107 0,0473 108 0,0398 119 0,0334 1110 0,0281 1111 0,0237 1112 0,0199 11. . . . . . . . .

Page 37: Theoretische Grundlagen der Informatik Vorlesung am 31 ......Vorlesung am 31. Januar 2019 INSTITUT FÜR THEORETISCHE INFORMATIK KIT Bei Codes mit variabler Länge muss man wissen,

Beispiel: Shannon-Fano Kodierung

17 31.01.2019 Torsten Ueckerdt - Theoretische Grundlagen der InformatikVorlesung am 31. Januar 2019

INSTITUT FÜR THEORETISCHE INFORMATIK

KIT

Zeichen Wahrscheinlichkeiten Codewort0 0,1591 0001 0,1388 0012 0,1125 0103 0,0946 0114 0,0796 1005 0,0669 1006 0,0563 1017 0,0473 1018 0,0398 119 0,0334 1110 0,0281 1111 0,0237 1112 0,0199 11. . . . . . . . .

Page 38: Theoretische Grundlagen der Informatik Vorlesung am 31 ......Vorlesung am 31. Januar 2019 INSTITUT FÜR THEORETISCHE INFORMATIK KIT Bei Codes mit variabler Länge muss man wissen,

Beispiel: Shannon-Fano Kodierung

17 31.01.2019 Torsten Ueckerdt - Theoretische Grundlagen der InformatikVorlesung am 31. Januar 2019

INSTITUT FÜR THEORETISCHE INFORMATIK

KIT

Ein paar Zwischenschritte später ...

Zeichen Wahrscheinlichkeiten Codewort0 0,1591 0001 0,1388 0012 0,1125 0103 0,0946 0114 0,0796 10005 0,0669 10016 0,0563 10107 0,0473 10118 0,0398 110009 0,0334 1100110 0,0281 1101011 0,0237 1101112 0,0199 111000. . . . . . . . .

Page 39: Theoretische Grundlagen der Informatik Vorlesung am 31 ......Vorlesung am 31. Januar 2019 INSTITUT FÜR THEORETISCHE INFORMATIK KIT Bei Codes mit variabler Länge muss man wissen,

Shannon-Fano Kodierung

18 31.01.2019 Torsten Ueckerdt - Theoretische Grundlagen der InformatikVorlesung am 31. Januar 2019

INSTITUT FÜR THEORETISCHE INFORMATIK

KIT

Funktion ShannonFano(Z )Eingabe: Zeichenliste Z = (z1, . . . , zk ) mit Wkten p1, . . . ,pk

Ausgabe: Shannon-Fano Kodierung (c1, . . . , ck )

Wenn k = 1return (c1 = ε) and exit

Sortiere Zeichen Z absteigend nach Wkt pi (d.h p1 ≥ p2 ≥ . . . ≥ pk ).Trenne Z in

Z1 ← (z1, . . . , zl )Z2 ← (zl+1, . . . , zk )

so dass |∑li=1 pi −∑k

i=l+1 pi | minimal ist.

(c1, . . . , cl )← (0s1, . . . ,0sl ) mit (s1, . . . , sl )← ShannonFano(Z1)

(cl+1, . . . , ck )← (1sl+1, . . . ,1sk ) mit(sl+1, . . . , sk )← ShannonFano(Z2)

return (c1, . . . , ck )

Page 40: Theoretische Grundlagen der Informatik Vorlesung am 31 ......Vorlesung am 31. Januar 2019 INSTITUT FÜR THEORETISCHE INFORMATIK KIT Bei Codes mit variabler Länge muss man wissen,

Kodierungsbaum Shannon-Fano

19 31.01.2019 Torsten Ueckerdt - Theoretische Grundlagen der InformatikVorlesung am 31. Januar 2019

INSTITUT FÜR THEORETISCHE INFORMATIK

KIT

1 2 3 4 5 6 7 8 9 10 11 12

0 1 0 1 0 1 0 1 0 1 0 1

1 2 3 4 5 6 7 8 9 10 11 120

0 1

0

0

00

0 1

1

1

1

Page 41: Theoretische Grundlagen der Informatik Vorlesung am 31 ......Vorlesung am 31. Januar 2019 INSTITUT FÜR THEORETISCHE INFORMATIK KIT Bei Codes mit variabler Länge muss man wissen,

Bemerkung

20 31.01.2019 Torsten Ueckerdt - Theoretische Grundlagen der InformatikVorlesung am 31. Januar 2019

INSTITUT FÜR THEORETISCHE INFORMATIK

KIT

Die mittlere Codewortlänge der Shannon-Fano Kodierung muss nichtoptimal sein.

Sie ist deswegen nicht sehr verbreitet.

Wir werden sehen, dass die Huffman-Kodierung optimale mittlereCodewortlänge besitzt.

Page 42: Theoretische Grundlagen der Informatik Vorlesung am 31 ......Vorlesung am 31. Januar 2019 INSTITUT FÜR THEORETISCHE INFORMATIK KIT Bei Codes mit variabler Länge muss man wissen,

Beispiel: Huffman-Kodierung

21 31.01.2019 Torsten Ueckerdt - Theoretische Grundlagen der InformatikVorlesung am 31. Januar 2019

INSTITUT FÜR THEORETISCHE INFORMATIK

KIT

c 0, 05

a 0, 05

e 0, 15

f 0, 2

d 0, 4

b 0, 15

Page 43: Theoretische Grundlagen der Informatik Vorlesung am 31 ......Vorlesung am 31. Januar 2019 INSTITUT FÜR THEORETISCHE INFORMATIK KIT Bei Codes mit variabler Länge muss man wissen,

Beispiel: Huffman-Kodierung

21 31.01.2019 Torsten Ueckerdt - Theoretische Grundlagen der InformatikVorlesung am 31. Januar 2019

INSTITUT FÜR THEORETISCHE INFORMATIK

KIT

c 0, 05

a 0, 050, 1

e 0, 15

f 0, 2

d 0, 4

b 0, 15

1

0

Page 44: Theoretische Grundlagen der Informatik Vorlesung am 31 ......Vorlesung am 31. Januar 2019 INSTITUT FÜR THEORETISCHE INFORMATIK KIT Bei Codes mit variabler Länge muss man wissen,

Beispiel: Huffman-Kodierung

21 31.01.2019 Torsten Ueckerdt - Theoretische Grundlagen der InformatikVorlesung am 31. Januar 2019

INSTITUT FÜR THEORETISCHE INFORMATIK

KIT

c 0, 05

a 0, 050, 1

e 0, 15

f 0, 2

0, 25

d 0, 4

b 0, 15

11

0

0

Page 45: Theoretische Grundlagen der Informatik Vorlesung am 31 ......Vorlesung am 31. Januar 2019 INSTITUT FÜR THEORETISCHE INFORMATIK KIT Bei Codes mit variabler Länge muss man wissen,

Beispiel: Huffman-Kodierung

21 31.01.2019 Torsten Ueckerdt - Theoretische Grundlagen der InformatikVorlesung am 31. Januar 2019

INSTITUT FÜR THEORETISCHE INFORMATIK

KIT

c 0, 05

a 0, 050, 1

e 0, 15

f 0, 2

0, 25

d 0, 4

b 0, 150, 35

1

11

0

0

0

Page 46: Theoretische Grundlagen der Informatik Vorlesung am 31 ......Vorlesung am 31. Januar 2019 INSTITUT FÜR THEORETISCHE INFORMATIK KIT Bei Codes mit variabler Länge muss man wissen,

Beispiel: Huffman-Kodierung

21 31.01.2019 Torsten Ueckerdt - Theoretische Grundlagen der InformatikVorlesung am 31. Januar 2019

INSTITUT FÜR THEORETISCHE INFORMATIK

KIT

c 0, 05

a 0, 050, 1

e 0, 15

f 0, 2

0, 25

d 0, 4

b 0, 150, 35

0, 61

11

1

0

0

0

0

Page 47: Theoretische Grundlagen der Informatik Vorlesung am 31 ......Vorlesung am 31. Januar 2019 INSTITUT FÜR THEORETISCHE INFORMATIK KIT Bei Codes mit variabler Länge muss man wissen,

Beispiel: Huffman-Kodierung

21 31.01.2019 Torsten Ueckerdt - Theoretische Grundlagen der InformatikVorlesung am 31. Januar 2019

INSTITUT FÜR THEORETISCHE INFORMATIK

KIT

c 0, 05

a 0, 050, 1

e 0, 15

f 0, 2

0, 25

d 0, 4

b 0, 150, 35

0, 6

1

1

1

11

1

0

00

0

0

Page 48: Theoretische Grundlagen der Informatik Vorlesung am 31 ......Vorlesung am 31. Januar 2019 INSTITUT FÜR THEORETISCHE INFORMATIK KIT Bei Codes mit variabler Länge muss man wissen,

Beispiel: Huffman-Kodierung

21 31.01.2019 Torsten Ueckerdt - Theoretische Grundlagen der InformatikVorlesung am 31. Januar 2019

INSTITUT FÜR THEORETISCHE INFORMATIK

KIT

c 0, 05

a 0, 050, 1

e 0, 15

f 0, 2

0, 25

d 0, 4

b 0, 150, 35

0, 6

1

1

1

11

1

0

00

0

0

Beispiele

Zeichen c hat Code 0111Zeichen e hat Code 010Zeichen d hat Code 1

Page 49: Theoretische Grundlagen der Informatik Vorlesung am 31 ......Vorlesung am 31. Januar 2019 INSTITUT FÜR THEORETISCHE INFORMATIK KIT Bei Codes mit variabler Länge muss man wissen,

Huffman-Kodierung

22 31.01.2019 Torsten Ueckerdt - Theoretische Grundlagen der InformatikVorlesung am 31. Januar 2019

INSTITUT FÜR THEORETISCHE INFORMATIK

KIT

Eingabe: Zeichen 1, . . . ,n mit Wahrscheinlichkeiten p1, . . . ,pnAusgabe: Baum T des Huffman-Codes

Menge Q = {1, . . . ,n}Füge alle Zeichen aus Q als Blätter in T einFür i = 1, . . . ,n− 1

Erzeuge neuen Knoten z für T

u ← extrahiere Element x aus Q mit px minimalBestimme u als linker Nachfolger von z

v ← extrahiere Element x aus Q mit px minimalBestimme v als rechter Nachfolger von z

Wahrscheinlichkeit pz von z ist pu + pvFüge z in Q ein

r ← extrahiere letztes Element aus Qreturn r (r ist Wurzel von T )

Page 50: Theoretische Grundlagen der Informatik Vorlesung am 31 ......Vorlesung am 31. Januar 2019 INSTITUT FÜR THEORETISCHE INFORMATIK KIT Bei Codes mit variabler Länge muss man wissen,

Optimalität der Huffman-Kodierung

23 31.01.2019 Torsten Ueckerdt - Theoretische Grundlagen der InformatikVorlesung am 31. Januar 2019

INSTITUT FÜR THEORETISCHE INFORMATIK

KIT

Satz:Der Huffman-Algorithmus berechnet einen Kodierungsbaum mit mini-maler mittlerer Codewortlänge.

Page 51: Theoretische Grundlagen der Informatik Vorlesung am 31 ......Vorlesung am 31. Januar 2019 INSTITUT FÜR THEORETISCHE INFORMATIK KIT Bei Codes mit variabler Länge muss man wissen,

Vorbereitendes Lemma

24 31.01.2019 Torsten Ueckerdt - Theoretische Grundlagen der InformatikVorlesung am 31. Januar 2019

INSTITUT FÜR THEORETISCHE INFORMATIK

KIT

Satz:Sei Σ = {1, . . . ,n} ein Alphabet mit Wahrscheinlichkeiten P, wobeiP = {p1, . . . ,pn}. Seien x , y ∈ Σ, x 6= y eine beliebige Wahl für diezwei unwahrscheinlichsten Zeichen.

Dann gibt es einen Kodierungsbaum T für (Σ,P) mit minimaler mitt-lerer Codewortlänge, so dass x und y den gleichen Elternknoten be-sitzen.

Page 52: Theoretische Grundlagen der Informatik Vorlesung am 31 ......Vorlesung am 31. Januar 2019 INSTITUT FÜR THEORETISCHE INFORMATIK KIT Bei Codes mit variabler Länge muss man wissen,

Vorbereitendes Lemma: Beweis

25 31.01.2019 Torsten Ueckerdt - Theoretische Grundlagen der InformatikVorlesung am 31. Januar 2019

INSTITUT FÜR THEORETISCHE INFORMATIK

KIT

Sei Σ = {1, . . . ,n} ein Alphabet mit Wkten P = {p1, . . . ,pn}.Seien x , y ∈ Σ, x 6= y eine beliebige Wahl für die zweiunwahrscheinlichsten Zeichen.

BeweisSei T ′ ein beliebiger Kodierungsbaum für (Σ,P) mit minimalermittlerer Codewortlänge.O.B.d.A gelte für die Tiefe, dass d ′T (x) ≥ d ′T (y).Sei z der Elternknoten von x in T ′.

Fall 1: z hat nur x als NachkommenDann könnte man z löschen unddurch x ersetzen.Dieser Baum hätte eine kleineremittlere Codewortlänge.Widerspruch zur Optimalität von T ′.

x

yz

Page 53: Theoretische Grundlagen der Informatik Vorlesung am 31 ......Vorlesung am 31. Januar 2019 INSTITUT FÜR THEORETISCHE INFORMATIK KIT Bei Codes mit variabler Länge muss man wissen,

Vorbereitendes Lemma: Beweis

25 31.01.2019 Torsten Ueckerdt - Theoretische Grundlagen der InformatikVorlesung am 31. Januar 2019

INSTITUT FÜR THEORETISCHE INFORMATIK

KIT

Sei Σ = {1, . . . ,n} ein Alphabet mit Wkten P = {p1, . . . ,pn}.Seien x , y ∈ Σ, x 6= y eine beliebige Wahl für die zweiunwahrscheinlichsten Zeichen.

BeweisSei T ′ ein beliebiger Kodierungsbaum für (Σ,P) mit minimalermittlerer Codewortlänge.O.B.d.A gelte für die Tiefe, dass d ′T (x) ≥ d ′T (y).Sei z der Elternknoten von x in T ′.

Fall 2: z hat mehr als 2 NachkommenSei w 6= x ein Nachfahre von z vonmaximaler Tiefe.Optimalität von T ′: pw ≤ px .Wahl von x , y : pw = px .Tausche x mit w . Weiter mit Fall 3.

x

yz

w

q

Page 54: Theoretische Grundlagen der Informatik Vorlesung am 31 ......Vorlesung am 31. Januar 2019 INSTITUT FÜR THEORETISCHE INFORMATIK KIT Bei Codes mit variabler Länge muss man wissen,

Vorbereitendes Lemma: Beweis

25 31.01.2019 Torsten Ueckerdt - Theoretische Grundlagen der InformatikVorlesung am 31. Januar 2019

INSTITUT FÜR THEORETISCHE INFORMATIK

KIT

Sei Σ = {1, . . . ,n} ein Alphabet mit Wkten P = {p1, . . . ,pn}.Seien x , y ∈ Σ, x 6= y eine beliebige Wahl für die zweiunwahrscheinlichsten Zeichen.

BeweisSei T ′ ein beliebiger Kodierungsbaum für (Σ,P) mit minimalermittlerer Codewortlänge.O.B.d.A gelte für die Tiefe, dass d ′T (x) ≥ d ′T (y).Sei z der Elternknoten von x in T ′.

Fall 3: z hat genau 2 NachkommenSei q 6= x der andere Nachfahre vonz. Tausche q mit y .q und y gleiche Tiefe: Tauschen ok.q tiefer als y : Wegen Optimalitätpq = py .

x

yz

q

Page 55: Theoretische Grundlagen der Informatik Vorlesung am 31 ......Vorlesung am 31. Januar 2019 INSTITUT FÜR THEORETISCHE INFORMATIK KIT Bei Codes mit variabler Länge muss man wissen,

Optimalität der Huffman-Kodierung

26 31.01.2019 Torsten Ueckerdt - Theoretische Grundlagen der InformatikVorlesung am 31. Januar 2019

INSTITUT FÜR THEORETISCHE INFORMATIK

KIT

Satz:Der Huffman-Algorithmus berechnet einen Kodierungsbaum mit mini-maler mittlerer Codewortlänge.

BeweisWir benutzen Induktion nach der Anzahl der Zeichen |Σ| desAlphabets Σ.

Induktionsanfang: Die Aussage ist für ein Zeichen erfüllt.

Page 56: Theoretische Grundlagen der Informatik Vorlesung am 31 ......Vorlesung am 31. Januar 2019 INSTITUT FÜR THEORETISCHE INFORMATIK KIT Bei Codes mit variabler Länge muss man wissen,

Beweis – Induktionsschluss

27 31.01.2019 Torsten Ueckerdt - Theoretische Grundlagen der InformatikVorlesung am 31. Januar 2019

INSTITUT FÜR THEORETISCHE INFORMATIK

KIT

Induktions-VoraussetzungDer Huffman-Algorithmus berechnet einen optimalenKodierungsbaum für alle Alphabete Σ mit |Σ| ≤ n und alleMöglichkeiten für P.

Induktions-SchlussGegeben sei Alphabet Σ = {1, . . . ,n + 1} mit WahrscheinlichkeitenP = {p1, . . . ,pn+1}.Für einen Kodierungsbaum T bezeichne f (T ) = ∑v∈Σ pv dT (v) diezugehörige mittlere Wortlänge.

Wir machen einen Widerspruchsbeweis.

Bezeichne Thuff einen Huffman-Baum für (Σ,P).

Sei Topt einen Kodierungsbaum für (Σ,P) mit f (Topt) < f (Thuff).

Page 57: Theoretische Grundlagen der Informatik Vorlesung am 31 ......Vorlesung am 31. Januar 2019 INSTITUT FÜR THEORETISCHE INFORMATIK KIT Bei Codes mit variabler Länge muss man wissen,

Beweis – Induktionsschluss

28 31.01.2019 Torsten Ueckerdt - Theoretische Grundlagen der InformatikVorlesung am 31. Januar 2019

INSTITUT FÜR THEORETISCHE INFORMATIK

KIT

Seien x , y ∈ Σ die Zeichen, die im Huffman-Algorithmus zuerstzusammengefasst werden.

Vorbereitendes Lemma: Wir können Topt so wählen, dass x und y dengleichen Elternknoten besitzen.

x y

Topt Thuff

x y

Page 58: Theoretische Grundlagen der Informatik Vorlesung am 31 ......Vorlesung am 31. Januar 2019 INSTITUT FÜR THEORETISCHE INFORMATIK KIT Bei Codes mit variabler Länge muss man wissen,

Beweis – Induktionsschluss

28 31.01.2019 Torsten Ueckerdt - Theoretische Grundlagen der InformatikVorlesung am 31. Januar 2019

INSTITUT FÜR THEORETISCHE INFORMATIK

KIT

Seien x , y ∈ Σ die Zeichen, die im Huffman-Algorithmus zuerstzusammengefasst werden.

Vorbereitendes Lemma: Wir können Topt so wählen, dass x und y dengleichen Elternknoten besitzen.

z z

T ′opt T ′

huff

Sei Σ′ = Σ \ {x , y} ∪ {z} Instanz für neues Zeichen z mit Wktpx + py .Seien T ′opt und T ′huff die Bäume, die sich aus Topt und Thuff ergeben,wenn man x , y mit ihrem Elternknoten zu Knoten z verschmilzt.

Page 59: Theoretische Grundlagen der Informatik Vorlesung am 31 ......Vorlesung am 31. Januar 2019 INSTITUT FÜR THEORETISCHE INFORMATIK KIT Bei Codes mit variabler Länge muss man wissen,

Beweis – Induktionsschluss

29 31.01.2019 Torsten Ueckerdt - Theoretische Grundlagen der InformatikVorlesung am 31. Januar 2019

INSTITUT FÜR THEORETISCHE INFORMATIK

KIT

Sei Σ′ = Σ \ {x , y} ∪ {z} Instanz für neues Zeichen z mit Wktpx + py .Seien T ′opt und T ′huff die Bäume, die sich aus Topt und Thuff ergeben,wenn man x , y mit ihrem Elternknoten zu Knoten z verschmilzt.

z z

T ′opt T ′

huff

Es gilt:T ′huff ist ein Huffman-Baum für Instanz Σ′ mit den neuen Wkten.T ′opt ist ein Kodierungs-Baum für Instanz Σ′ mit den neuen Wkten.

Page 60: Theoretische Grundlagen der Informatik Vorlesung am 31 ......Vorlesung am 31. Januar 2019 INSTITUT FÜR THEORETISCHE INFORMATIK KIT Bei Codes mit variabler Länge muss man wissen,

Beweis – Induktionsschluss

29 31.01.2019 Torsten Ueckerdt - Theoretische Grundlagen der InformatikVorlesung am 31. Januar 2019

INSTITUT FÜR THEORETISCHE INFORMATIK

KIT

Sei Σ′ = Σ \ {x , y} ∪ {z} Instanz für neues Zeichen z mit Wktpx + py .Seien T ′opt und T ′huff die Bäume, die sich aus Topt und Thuff ergeben,wenn man x , y mit ihrem Elternknoten zu Knoten z verschmilzt.

z z

T ′opt T ′

huff

Es gilt: f (T ′huff) = f (Thuff)− dThuff(x)px − dThuff

(y)py + dT ′huff(z)pz

= f (Thuff)− px − py

f (T ′opt) = f (Topt)− dTopt(x)px − dTopt(y)py + dT ′opt(z)pz

= f (Topt)− px − py

Page 61: Theoretische Grundlagen der Informatik Vorlesung am 31 ......Vorlesung am 31. Januar 2019 INSTITUT FÜR THEORETISCHE INFORMATIK KIT Bei Codes mit variabler Länge muss man wissen,

Beweis – Induktionsschluss

29 31.01.2019 Torsten Ueckerdt - Theoretische Grundlagen der InformatikVorlesung am 31. Januar 2019

INSTITUT FÜR THEORETISCHE INFORMATIK

KIT

Sei Σ′ = Σ \ {x , y} ∪ {z} Instanz für neues Zeichen z mit Wktpx + py .Seien T ′opt und T ′huff die Bäume, die sich aus Topt und Thuff ergeben,wenn man x , y mit ihrem Elternknoten zu Knoten z verschmilzt.

z z

T ′opt T ′

huff

Damit ist T ′opt ein besserer Coderierungsbaum für Σ′ als T ′huff.

Da |Σ′| = n ist dies ein Widerspruch zur Induktionsvoraussetzung.

Page 62: Theoretische Grundlagen der Informatik Vorlesung am 31 ......Vorlesung am 31. Januar 2019 INSTITUT FÜR THEORETISCHE INFORMATIK KIT Bei Codes mit variabler Länge muss man wissen,

Nachteile der Huffman-Kodierung

30 31.01.2019 Torsten Ueckerdt - Theoretische Grundlagen der InformatikVorlesung am 31. Januar 2019

INSTITUT FÜR THEORETISCHE INFORMATIK

KIT

Unterschiedliche Codewortlängen führen zu unterschiedlichenBitraten und Dekodierungsverzögerung.

Datenkompression reduziert die Redundanz und erhöht damit dieFehleranfälligkeit.

Die Kenntnis der Wahrscheinlichkeiten der Zeichen wirdvorausgesetzt.

Universelle Kodierverfahren wie der Lempel-Ziv Algorithmus setzenkein a-priori Wissen an die Statistik der Daten voraus.

Page 63: Theoretische Grundlagen der Informatik Vorlesung am 31 ......Vorlesung am 31. Januar 2019 INSTITUT FÜR THEORETISCHE INFORMATIK KIT Bei Codes mit variabler Länge muss man wissen,

Lauflängenkodierung

31 31.01.2019 Torsten Ueckerdt - Theoretische Grundlagen der InformatikVorlesung am 31. Januar 2019

INSTITUT FÜR THEORETISCHE INFORMATIK

KIT

Bei der Faxübertragung wird die Vorlage zeilenweise abgetastet undin weiße (w) und schwarze (s) Bildelemente zerlegt.

Üblicherweise ist die Zahl der weißen Elemente viel höher, als die derschwarzen.

Wir nehmen der Einfachheit halber an, dass die Bildpunktevoneinander unabhängig sind.

Bei 15% Schwärzungsgrad ergibt sich eine Entropie vonH = −0.85 · log2(0.85)− 0.15 · log2(0.15) ≈ 0.61

Bei guter Kodierung sollte eine entsprechende mittlere Codewortlängezu erwarten sein.

Page 64: Theoretische Grundlagen der Informatik Vorlesung am 31 ......Vorlesung am 31. Januar 2019 INSTITUT FÜR THEORETISCHE INFORMATIK KIT Bei Codes mit variabler Länge muss man wissen,

Lauflängenkodierung

31 31.01.2019 Torsten Ueckerdt - Theoretische Grundlagen der InformatikVorlesung am 31. Januar 2019

INSTITUT FÜR THEORETISCHE INFORMATIK

KIT

Bei der Faxübertragung wird die Vorlage zeilenweise abgetastet undin weiße (w) und schwarze (s) Bildelemente zerlegt.

Üblicherweise ist die Zahl der weißen Elemente viel höher, als die derschwarzen.

Wir nehmen der Einfachheit halber an, dass die Bildpunktevoneinander unabhängig sind.

Bei 15% Schwärzungsgrad ergibt sich eine Entropie vonH = −0.85 · log2(0.85)− 0.15 · log2(0.15) ≈ 0.61

Bei guter Kodierung sollte eine entsprechende mittlere Codewortlängezu erwarten sein.

Problem:Wie ist platzsparende Kodierung von einem Alphabet mit zweiZeichen möglich?

Page 65: Theoretische Grundlagen der Informatik Vorlesung am 31 ......Vorlesung am 31. Januar 2019 INSTITUT FÜR THEORETISCHE INFORMATIK KIT Bei Codes mit variabler Länge muss man wissen,

Lauflängenkodierung

32 31.01.2019 Torsten Ueckerdt - Theoretische Grundlagen der InformatikVorlesung am 31. Januar 2019

INSTITUT FÜR THEORETISCHE INFORMATIK

KIT

Problem:Wie ist platzsparende Kodierung von einem Alphabet mit zweiZeichen möglich?

Möglicher Ansatz: Block-CodesFasse k Zeichen zu Blöcken zusammen und kodiere diesenBeispiel k = 2:

Neues Alphabet: ww,ws,sw,ss.Dieses kann platzsparend kodiert werden.

Beispiel:

Zeichen ww ws sw ss

Wkt 12

210

210

110

Huffman 0 11 100 101

Page 66: Theoretische Grundlagen der Informatik Vorlesung am 31 ......Vorlesung am 31. Januar 2019 INSTITUT FÜR THEORETISCHE INFORMATIK KIT Bei Codes mit variabler Länge muss man wissen,

Lauflängenkodierung

33 31.01.2019 Torsten Ueckerdt - Theoretische Grundlagen der InformatikVorlesung am 31. Januar 2019

INSTITUT FÜR THEORETISCHE INFORMATIK

KIT

Lauflängenkodierung

Spezielle Zusammenfassung für Bildkodierung beiFax/VideoanwendungenDie Länge der Blöcke ist variabel.Idee: Kodiere nicht die Bildpunkte, sondern den Abstand zwischenzwei schwarzen Bildpunkten.Beispiel:

wwwswwsswwwwswswwwwwwswwwwwwswird aufgefasst als 3204166.Für eine Binärkodierung braucht man noch Codes für die Abstände(also für N).Um dies platzsparend zu machen, benötigt man Wahrscheinlichkeitenfür einzelne Abstände.

Page 67: Theoretische Grundlagen der Informatik Vorlesung am 31 ......Vorlesung am 31. Januar 2019 INSTITUT FÜR THEORETISCHE INFORMATIK KIT Bei Codes mit variabler Länge muss man wissen,

Lauflängenkodierung

33 31.01.2019 Torsten Ueckerdt - Theoretische Grundlagen der InformatikVorlesung am 31. Januar 2019

INSTITUT FÜR THEORETISCHE INFORMATIK

KIT

Lauflängenkodierung

Wie groß sind die Wkten für die einzelnen Abstände?Annahme: Die Bildpunkte sind voneinander unabhängig.Sei pk die Wkt für einen Block aus k aufeinanderfolgenden weißenBildpunkten mit einem schwarzen Bildpunkt am Schluss

pk = P(wk s) = Pk (w) ·P(s).

Es ergibt sich eine geometrische Verteilung.

Page 68: Theoretische Grundlagen der Informatik Vorlesung am 31 ......Vorlesung am 31. Januar 2019 INSTITUT FÜR THEORETISCHE INFORMATIK KIT Bei Codes mit variabler Länge muss man wissen,

Geometrische Verteilung

34 31.01.2019 Torsten Ueckerdt - Theoretische Grundlagen der InformatikVorlesung am 31. Januar 2019

INSTITUT FÜR THEORETISCHE INFORMATIK

KIT

Quelle: Wikipedia.

Page 69: Theoretische Grundlagen der Informatik Vorlesung am 31 ......Vorlesung am 31. Januar 2019 INSTITUT FÜR THEORETISCHE INFORMATIK KIT Bei Codes mit variabler Länge muss man wissen,

Lauflängenkodierung

35 31.01.2019 Torsten Ueckerdt - Theoretische Grundlagen der InformatikVorlesung am 31. Januar 2019

INSTITUT FÜR THEORETISCHE INFORMATIK

KIT

Man kann einSchwarzweißbild überAngabe der Lauflängenverlustfrei rekonstruieren.Sonderbehandlung fürletzten Block erforderlich.Weiteres Problem:Lauflängen können beliebiggroß werden.Shannon-Fano-Kodierungkann trotzdem einfachangewandt werden.

Abstand Wkten Codewort0 0,1591 0001 0,1388 0012 0,1125 0103 0,0946 0114 0,0796 10005 0,0669 10016 0,0563 10107 0,0473 10118 0,0398 110009 0,0334 1100110 0,0281 1101011 0,0237 1101112 0,0199 111000. . . . . . . . .

Page 70: Theoretische Grundlagen der Informatik Vorlesung am 31 ......Vorlesung am 31. Januar 2019 INSTITUT FÜR THEORETISCHE INFORMATIK KIT Bei Codes mit variabler Länge muss man wissen,

Kodierung zum Schutz gegenÜbertragungsfehler

36 31.01.2019 Torsten Ueckerdt - Theoretische Grundlagen der InformatikVorlesung am 31. Januar 2019

INSTITUT FÜR THEORETISCHE INFORMATIK

KIT

QuelleQuellen-kodierung

Kanal-kodierung

Kanal

Kanal-dekodierung

Quellen-dekodierung

Empfanger

Storung