2. Woche Eindeutige Entschlüsselbarleit, Sätze von Kraft und McMillan, Huffmancodierung

Ähnliche Dokumente
Wann sind Codes eindeutig entschlüsselbar?

Einleitung. Kapitel 1

2.7 Der Shannon-Fano-Elias Code

Nachbarschaft, Grad, regulär, Inzidenz

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

Das Heiratsproblem. Definition Matching

Codierung, Codes (variabler Länge)

durch Einfügen von Knoten konstruiert werden kann.

Übersicht. Aktivitäten-Auswahl-Problem. Greedy Algorithmen. Aktivitäten-Auswahl-Problem. Aktivitäten-Auswahl-Problem. Datenstrukturen & Algorithmen

Referat zum Thema Huffman-Codes

7. Woche Extra-Material: - Beispiele von Codes. 7. Woche: Beispiele von Codes 144/ 238

Die Größe A(n, d) und optimale Codes

Freie Bäume und Wälder

Paarweise Unabhängigkeit vs. Unabhängigkeit

Lösungen zur Vorlesung Berechenbarkeit und Komplexität

Beliebige Anzahl von Signaturen

5. Bäume und Minimalgerüste

Effiziente Algorithmen und Komplexitätstheorie

Fortgeschrittene Netzwerk- und Graph-Algorithmen

WS 2013/14. Diskrete Strukturen

Seminar Kompressionsalgorithmen Huffman-Codierung, arithmetische Codierung

Gierige Algorithmen Interval Scheduling

12. Woche: Verifizierer, nicht-deterministische Turingmaschine, Klasse NP

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

Diskrete Strukturen Kapitel 4: Graphentheorie (Bäume)

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

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

Übung zur Vorlesung Berechenbarkeit und Komplexität

Ununterscheidbarkeit von Chiffretexten

8. A & D - Heapsort. Werden sehen, wie wir durch geschicktes Organsieren von Daten effiziente Algorithmen entwerfen können.

mit. Wir definieren (Skalarprodukt = Winkel).

Kodierung und Sicherheit

15 Optimales Kodieren

(a, b)-bäume / 1. Datenmenge ist so groß, dass sie auf der Festplatte abgespeichert werden muss.

Grundlagen der Theoretischen Informatik

5. Woche Perfekte und Optimale Codes, Schranken. 5. Woche: Perfekte und Optimale Codes, Schranken 88/ 142

Algorithmen und Datenstrukturen

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

13. Woche: NP-Vollständigkeit Satz von Cook-Levin Anwendungen in der Kryptographie

Literatur. Dominating Set (DS) Dominating Sets in Sensornetzen. Problem Minimum Dominating Set (MDS)

4.2 Minimale Spannbäume: Der Algorithmus von Jarník/Prim Definition 4.2.1

Entscheidungsbäume. Definition Entscheidungsbaum. Frage: Gibt es einen Sortieralgorithmus mit o(n log n) Vergleichen?

Theoretische Grundlagen der Informatik

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

Algorithmen und Datenstrukturen Tutorium Übungsaufgaben

Graphentheorie. Eulersche Graphen. Eulersche Graphen. Eulersche Graphen. Rainer Schrader. 14. November Gliederung.

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

8. Woche Quadratische Reste und Anwendungen. 8. Woche: Quadratische Reste und Anwendungen 163/ 238

Grundbegriffe der Informatik Tutorium 3

2. Klausur zur Vorlesung Theoretische Grundlagen der Informatik Wintersemester 2014/2015

Algorithmische Bioinformatik 1

Kochrezept für NP-Vollständigkeitsbeweise

Voronoi-Diagramme. Dr. Martin Nöllenburg Vorlesung Algorithmische Geometrie INSTITUT FÜR THEORETISCHE INFORMATIK FAKULTÄT FÜR INFORMATIK

Primzahltest für Mersenne-Primzahlen

Die Hamming-Distanz definiert eine Metrik.

Felix Brandt, Jan Johannsen. Vorlesung im Wintersemester 2008/09

4. ggt und kgv. Chr.Nelius: Zahlentheorie (SS 2007) 9

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

Rechenzeit für A. Sei t B die Rechenzeit eines Algo für B. Seien p,q,r monotone Polynome ( +).

String - Matching. Kapitel Definition

Isomorphie von Bäumen

Das Quadratische Reste Problem

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

Diskrete Strukturen. Hausaufgabe 1 (5 Punkte) Hausaufgabe 2 (5 Punkte) Wintersemester 2007/08 Lösungsblatt Januar 2008

Randomisierte Datenstrukturen

Resolutionsalgorithmus

Algorithmen und Datenstrukturen Heapsort

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

16 - Kompressionsverfahren für Texte

Graphentheorie. Zusammenhang. Zusammenhang. Zusammenhang. Rainer Schrader. 13. November 2007

Informatik II, SS 2014

2. Entsprechende Listen P i von Vorgängern von i 3. for i := 1 to n do. (ii) S i = Knoten 2 + 1}

Zentralübung zur Vorlesung Diskrete Strukturen (Prof. Esparza)

Die Klasse NP und die polynomielle Reduktion

Algorithmen II Vorlesung am

6. Woche: Lineare Codes, Syndrom, Gilbert-Varshamov Schranke. 6. Woche: Lineare Codes, Syndrom, Gilbert-Varshamov Schranke 107/ 238

Skript und Übungen Teil II

Dynamisches Huffman-Verfahren

Übungsblatt 7. Vorlesung Theoretische Grundlagen der Informatik im WS 16/17

Tutorium 23 Grundbegriffe der Informatik (6. Sitzung)

Voronoi-Diagramme INSTITUT FÜR THEORETISCHE INFORMATIK FAKULTÄT FÜR INFORMATIK. Dr. Martin Nöllenburg Vorlesung Algorithmische Geometrie

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

Einwegfunktionen. Problemseminar. Komplexitätstheorie und Kryptographie. Martin Huschenbett. 30. Oktober 2008

Einführung in die Logik

Polynomielle Verifizierer und NP

Satz 324 Sei M wie oben. Dann gibt es für ein geeignetes k Konstanten c i > 0 und Permutationsmatrizen P i, i = 1,...

Algorithmen und Datenstrukturen SS09. Foliensatz 15. Michael Brinkmeier. Technische Universität Ilmenau Institut für Theoretische Informatik

Algo&Komp. - Wichtige Begriffe Mattia Bergomi Woche 6 7

Bereichsabfragen II. Dr. Martin Nöllenburg Vorlesung Algorithmische Geometrie

Komplexität von Algorithmen:

Diskrete Mathematik 1

Effiziente Algorithmen und Komplexitätstheorie

4. Kreis- und Wegeprobleme

WS 2008/09. Diskrete Strukturen

Grundbegriffe der Informatik

Vorlesung Datenstrukturen

8. Sortieren II. 8.1 Heapsort. Heapsort. [Max-]Heap 6. Heapsort, Quicksort, Mergesort. Binärer Baum mit folgenden Eigenschaften

Heapsort, Quicksort, Mergesort. 8. Sortieren II

6. Planare Graphen und Färbungen

Definition 77 Sei n N. Der Median (das mittlere Element) einer total geordneten Menge von n Elementen ist deren i-kleinstes Element, wobei n i =.

Transkript:

2 Woche Eindeutige Entschlüsselbarleit, Sätze von Kraft und McMillan, Huffmancodierung 2 Woche: Eindeutige Entschlüsselbarleit, Sätze von Kraft und McMillan, Huffmancodierung 24/ 44

Zwei Beispiele a 0 a 0 C : b 01 c 011 d 0111 und C : b 10 c 110 d 1110 Beide Codes eindeutig entschlüsselbar Der erste ist nicht sofort entschlüsselbar Der zweite ist ein Präfixcode, dh sofort entschlüsselbar Aber, sie sind die Spiegelung von einenander Vielleicht sollen wir nicht nur analysieren, wie Codeworte anfangen (Präfixe), aber auch wie sie enden ( Suffixe), um die eindeutige Entschlüsselbarkeit zu charakterisieren 2 Woche: Eindeutige Entschlüsselbarleit, Sätze von Kraft und McMillan, Huffmancodierung 25/ 44

Wann sind Codes eindeutig entschlüsselbar? Definition Suffix Sei C ein Code Eine Folge s {0, 1} heißt Suffix in C falls eine der drei folgenden Bedingungen erfüllt ist: 1 c i, c j C : c i = c j s oder 2 c C und einen Suffix s in C: s = cs oder 3 c C und einen Suffix s in C: c = s s Bedeutung der Bedingungen Bedingung 1: Codewort c j lässt sich zu Codewort c i erweitern Bedingung 2: Codewort c lässt sich zu Suffix s erweitern Bedingung 3: Suffix s lässt sich zu Codewort c erweitern 2 Woche: Eindeutige Entschlüsselbarleit, Sätze von Kraft und McMillan, Huffmancodierung 26/ 44

Effiziente Berechnung von Suffixen Algorithmus Berechnung Suffix EINGABE: C = {c 1,, c n } 1 Setze S :=, T := 2 Für alle c i, c j C C: Falls es ein s {0, 1} gibt mit c i = c j s, füge s in S und T ein 3 Solange T 1 Entferne ein beliebiges s aus T 2 Für alle c C: Falls es ein s {0, 1} \ S gibt mit s = c s oder c = s s, dann füge s zu S und T hinzu AUSGABE: Menge S der Suffixe von C 2 Woche: Eindeutige Entschlüsselbarleit, Sätze von Kraft und McMillan, Huffmancodierung 27/ 44

Laufzeit Suffixberechnung Laufzeit: Schritt 2: O(n 2 ) Codewortpaare Suffixlänge ist durch max i { c i } beschränkt Es kann höchstens n max i { c i } Suffixe geben Schritt 3: O(n 2 max i { c i }) Polynomiell in der Eingabelänge: n, max i { c i } 2 Woche: Eindeutige Entschlüsselbarleit, Sätze von Kraft und McMillan, Huffmancodierung 28/ 44

Beispiele Suffixberechnung Code C 2 = {0, 1, 00} Suffix s 1 = 0, denn c 3 = c 1 0 Code C 3 = {0, 01, 011} Suffix s1 = 1, denn c 2 = c 1 1 Suffix s 2 = 11, denn c 3 = c 1 11 Code C 4 = {0, 10, 11} Keine Suffixe, da Präfixcode Code C 5 = {1, 110, 101} Suffix s 1 = 10, denn c 2 = c 1 10 Suffix s2 = 01, denn c 3 = c 1 01 Suffix s 3 = 0, denn s 1 = c 1 0 Suffix s4 = 1, denn c 3 = s 1 1 2 Woche: Eindeutige Entschlüsselbarleit, Sätze von Kraft und McMillan, Huffmancodierung 29/ 44

Kriterium für eindeutig entschlüsselbar Satz Eindeutig entschlüsselbar C ist ein eindeutig entschlüsselbarer Code Kein Suffix ist Codewort in C zz: C nicht eindeutig entschlüsselbar Suffix ist Codewort Zwei gleiche Folgen c 1 c n und d 1 d m von verschiedenen Codeworten Fall 1: Codewort c i lässt sich zu d j erweitern c i c i+1 d j Fall 2: Codewort c i lässt sich zu Suffix s j erweitern c i s j c i+1 2 Woche: Eindeutige Entschlüsselbarleit, Sätze von Kraft und McMillan, Huffmancodierung 30/ 44

Suffix ist Codewort Fall 3: Suffix s k lässt sich zu Codewort d j erweitern s k c i+1 d j Nach jedem Schritt beginnt der konstruierte Suffix mit einem Codewortpräfix Der zuletzt konstruierte Suffix ist identisch mit dem letzten Codewort von beiden Sequenzen 2 Woche: Eindeutige Entschlüsselbarleit, Sätze von Kraft und McMillan, Huffmancodierung 31/ 44

Rückrichtung zz: Suffix s ist ein Codewort C ist nicht eindeutig entschlüsselbar Suffix s ist aus Anwendungen der drei Regeln entstanden Berechne die Kette zurück, aus der s entstanden ist Setze String c s Iteriere: 1 Fall ci = c j s: c c j c, terminiere 2 Fall s = cs: c cc, s s 3 Fall c = s s: c s c, s s Kette muss mit 1 Fall c i = c j s terminieren Zwei verschiedene Entschlüsselungen: Eine beginnt mit c i, die andere mit c j Beide sind gültig, da der letzte Suffix ein Codewort ist Beispiel: Für C = 1, 110, 101 erhalten wir für den Suffix 1 den String c = 1101 mit gültigen Decodierungen 1 101 und 110 1 2 Woche: Eindeutige Entschlüsselbarleit, Sätze von Kraft und McMillan, Huffmancodierung 32/ 44

Sätze von Kraft und McMillan Satz von Kraft (1949) Ein Präfixcode C für das Alphabet A = {a 1,, a n } mit Codierungslängen C(a j ) = l j existiert gdw n 1 2 l j j=1 1 Diese Ungleichung heißt Krafts Ungleichung Satz von McMillan (1956) Falls der Code C für das Alphabet A = {a 1,, a n } mit Codierungslängen C(a j ) = l j eindeutig entschlüsselbar ist, dann n 1 2 l j j=1 1 2 Woche: Eindeutige Entschlüsselbarleit, Sätze von Kraft und McMillan, Huffmancodierung 33/ 44

Präfixcodes genügen Korollar Ein Präfixcode C existiert gdw es einen eindeutig entschlüsselbaren Code C mit denselben Codierungslängen gibt Wir zeigen den Ringschluss für: n j=1 2 l j 1 Präfix Eindeutig entschlüsselbar (Präfix Eindeutig entschlüsselbar: letzte Vorlesung) Gegeben sind Codierungslängen l j Gesucht ist ein Präfixcode mit l j = C(a j ) Definiere l := max{l 1,, l n }, n i := Anzahl l j mit l j = i n 2 l j = j=1 l n j 2 j 1 j=1 2 Woche: Eindeutige Entschlüsselbarleit, Sätze von Kraft und McMillan, Huffmancodierung 34/ 44

Beweis: n j=1 2 l j 1 Präfix Induktion über l: IV l = 1: n 1 2 Präfixcode C {0, 1}, max 2 Codeworte, konstruierbar IA Falls l 1 i=1 n i/2 i 1 dann Präfixcode mit diesen Codewortlängen IS l 1 l: Sei l i=1 n i/2 i 1, dh n l 2 l n 1 2 l 1 n 2 2 l 2 n l 1 2 2 l n 1 2 l 1 n 2 2 l 2 n l 1 2 ist der max Wert von n l Aus IA Präfixcode C mit n i Worten der Länge i, i = 1,, l 1 Anzahl der Worte der Länge l: 2 l Wir zählen die durch C ausgeschlossenen Worte der Länge l Sei c i C mit Länge l i Dann enthalten alle c i s {0, 1} l mit beliebigem s {0, 1} l l i den Präfix c i Durch Präfixe der Länge 1 ausgeschlossene Worte: n 1 2 l 1 Menge M 1 ; Durch Präfixe der Länge 2 ausgeschlossene Worte: n2 2 l 2 Menge M 2 ; Durch Präfixe der Länge l 1 ausgeschlossene Worte: nl 1 2 Menge M l 1 NB Die Mengen M i sind paarweise disjunkt wir können bis 2 l (n 1 2 l 1 + + n l 1 2) Symbole mit den verbleibenden Worten der Länge l codieren, und die Präfixcode-Eigenschaft erhalten Das dies der max Wert von n l ist, dies ist immer möglich 2 Woche: Eindeutige Entschlüsselbarleit, Sätze von Kraft und McMillan, Huffmancodierung 35/ 44

Eindeutig entschlüsselbar n j=1 2 l j 1 Sei C eindeutig entschlüsselbar mit C(a j ) = l j, l = max j {l j } Wählen r N beliebig Betrachten n j=1 2 l j r rl = m i 2 i Analog zum Beweis zuvor: m i = Anzahl Strings aus {0, 1} i, die sich als Folge von r Codeworten schreiben lässt C eindeutig entschlüsselbar: Jeder String aus {0, 1} i lässt sich als höchstens eine Folge von Codeworten schreiben, dh m i 2 i i=1 Damit gilt rl i=1 m i2 i rl n j=1 2 l j (rl) 1 r Für r folgt n j=1 2 l j 1 2 Woche: Eindeutige Entschlüsselbarleit, Sätze von Kraft und McMillan, Huffmancodierung 36/ 44

Effiziente (bandbreitensparende) Codierung Szenario: Codierung mit variabler Codewortlänge Intuition: Je wahrscheinlicher ein Symbol ist, desto kürzer soll seine Codierung sein Huffman Codierung macht genau das Erst beschreiben wir sie, dann beweisen dass der resultierende Code kompakt ist 2 Woche: Eindeutige Entschlüsselbarleit, Sätze von Kraft und McMillan, Huffmancodierung 37/ 44

Beispiel Sei folgende Quelle gegeben mit Quellenwahrscheinlichkeiten Symbol Wahrscheinlichkeit a 035 b 010 c 019 d 025 e 007 f 004 2 Woche: Eindeutige Entschlüsselbarleit, Sätze von Kraft und McMillan, Huffmancodierung 38/ 44

Beispiel a 035 025 d 019 c 010 b 007 e 004 f Schritt 1: Bilde sechs Knoten, etikettiert je mit einem Symbol Die Knoten sind nach absteigender Ws des entsprechenden Symbols geordnet Diese sind die Level 1 Knoten Neben jedem Knoten schreiben wir die Ws 2 Woche: Eindeutige Entschlüsselbarleit, Sätze von Kraft und McMillan, Huffmancodierung 39/ 44

Beispiel a 035 025 d 019 c 010 b 011 007 e 004 f Schritt 2: Verbinde die zwei Knoten nach rechts (Symbole mit niedrigsten Ws) einem neuen Knoten dessen Ws ist die Summe der Ws der Zwei alten Knoten Die alten Knoten werden Kinder des neuen Knotens Der neue Knoten wird sich in die Level 1 Knoten einreihen 2 Woche: Eindeutige Entschlüsselbarleit, Sätze von Kraft und McMillan, Huffmancodierung 39/ 44

Beispiel a 035 025 d 019 c 011 010 b 007 e 004 f Schritt 3: Ordne die Level 1 Knoten nach absteigender Wahrscheinlichkeit wieder 2 Woche: Eindeutige Entschlüsselbarleit, Sätze von Kraft und McMillan, Huffmancodierung 39/ 44

Beispiel a 035 025 d 019 c 021 011 010 b 007 e 004 f Verbinde die zwei Knoten nach rechts (also die mit den niedrigsten Wahrscheinlichkeiten) wie in Schritt 2 2 Woche: Eindeutige Entschlüsselbarleit, Sätze von Kraft und McMillan, Huffmancodierung 39/ 44

Beispiel a 035 025 d 021 019 c 011 010 b 007 e 004 f Und ordne wieder, wie in Schritt 3 2 Woche: Eindeutige Entschlüsselbarleit, Sätze von Kraft und McMillan, Huffmancodierung 39/ 44

Beispiel a 035 025 d 04 021 019 c 011 010 b 007 e 004 f Verbinde 2 Woche: Eindeutige Entschlüsselbarleit, Sätze von Kraft und McMillan, Huffmancodierung 39/ 44

Beispiel 04 035 a 025 d 021 019 c 011 010 b 007 e 004 f Ordne 2 Woche: Eindeutige Entschlüsselbarleit, Sätze von Kraft und McMillan, Huffmancodierung 39/ 44

Beispiel 04 06 021 019 c 035 a 025 d 011 010 b 007 e 004 f Verbinde 2 Woche: Eindeutige Entschlüsselbarleit, Sätze von Kraft und McMillan, Huffmancodierung 39/ 44

Beispiel 06 04 035 a 025 d 021 019 c 011 010 b 007 e 004 f Ordne 2 Woche: Eindeutige Entschlüsselbarleit, Sätze von Kraft und McMillan, Huffmancodierung 39/ 44

Beispiel 1 06 04 035 a 025 d 021 019 c 011 010 b 007 e 004 f Verbinde Nun haben wir einen Baum 2 Woche: Eindeutige Entschlüsselbarleit, Sätze von Kraft und McMillan, Huffmancodierung 39/ 44

Beispiel 035 a 0 06 0 1 025 d 1 011 0 021 0 1 1 04 0 1 010 b 1 019 c 007 e 004 f Etikettiere die Kanten Kanten nach links mit 0, die nach rechts mit 1 2 Woche: Eindeutige Entschlüsselbarleit, Sätze von Kraft und McMillan, Huffmancodierung 39/ 44

Beispiel 035 a 0 06 0 1 025 d 1 011 0 021 0 1 1 04 0 1 010 b 1 019 c a 00 b 101 c 11 d 01 e 1000 f 1001 007 e 004 f Lese den Code ab! Das ist ein Präfixcode, denn die Labels mit den Quellensymbolen befinden sich nur an Blättern 2 Woche: Eindeutige Entschlüsselbarleit, Sätze von Kraft und McMillan, Huffmancodierung 39/ 44

Beobachtung Symbol Wahrscheinlichkeit a 035 b 010 c 019 d 025 e 007 f 004 a 00 b 101 c 11 d 01 e 1000 f 1001 Man sieht, dass die Symbole, die am häufigsten vorkommen, nicht längere Codierung besitzen als Symbole, die seltener vorkommen Mit anderen Worten: Falls p i > p j, dann ist l i l j 2 Woche: Eindeutige Entschlüsselbarleit, Sätze von Kraft und McMillan, Huffmancodierung 40/ 44

Huffman Codierung Szenario: Quelle Q mit Symbole {a 1,, a n } a i sortiert nach absteigenden Quellws p 1 p 2 p n Algorithmus Huffman-Codierung Eingabe: Symbole a i mit absteigend sortierten p i, i = 1,, n 1 IF (n=2), Ausgabe C(a 1 ) = 0, C(a 2 ) = 1 2 ELSE 1 Bestimme k Z n 1 mit p k p n 1 + p n p k+1 2 (p 1,, p k, p k+1, p k+2,, p n 1 ) (p 1,, p k, p n 1 + p n, p k+1,, p n 2 ) 3 (C(a 1 ),, C(a k 1 ), C(a k+1 ),, C(a n 2 ), C(a k )0, C(a k )1) Huffmann-Codierung(a 1,, a n 1, p 1,, p n 1 ) Ausgabe: kompakter Präfixcode für Q Laufzeit: O(n 2 ) (O(n log n) mit Hilfe von Heap-Datenstruktur) 2 Woche: Eindeutige Entschlüsselbarleit, Sätze von Kraft und McMillan, Huffmancodierung 41/ 44

Eigenschaften kompakter Codes Sei l i := C(a i ) Lemma Eigenschaften kompakter Codes Sei C ein kompakter Code, obda ist C ein Präfixcode 1 Falls p i > p j, dann ist l i l j 2 Es gibt mindestens zwei Codeworte in C mit maximaler Länge 3 Unter den Worten mit maximaler Länge existieren zwei Worte, die sich nur in der letzten Stelle unterscheiden 2 Woche: Eindeutige Entschlüsselbarleit, Sätze von Kraft und McMillan, Huffmancodierung 42/ 44

Beweis der Eigenschaften Beweis: 1 Sei l i > l j Dann gilt p i l i + p j l j = p i (l i l j + l j ) + p j (l j l i + l i ) = p i l j + p j l i + (l i l j )(p i p j ) > p i l j + p j l i Dh vertauschen der Codierungen von a i und a j verkürzt den Code 2 Sei c = c 1 c n C das einzige Codewort mit maximaler Länge Streichen von c n führt zu einem Präfixcode mit kürzerer erwarteter Codewortlänge 3 Annahme: Alle Paar von Codeworten maximaler Länge unterscheiden sich nicht nur in der letzten Komponente Entferne die letzte Komponente eines beliebigen Codewortes maximaler Länge Wir erhalten einen Präfixcode mit kürzerer Länge 2 Woche: Eindeutige Entschlüsselbarleit, Sätze von Kraft und McMillan, Huffmancodierung 43/ 44

Optimalität der Huffman-Codierung Satz Die Huffman-Codierung liefert einen kompakten Code Beweis per Induktion über n IA: n = 2: Für {a 1, a 2 } ist die Codierung {0, 1} kompakt IS: n 1 n: Sei C kompakt für {a 1,, a n } Lemma,2: C enthält zwei Codeworte maximaler Länge Lemma,3: Unter den Codeworten maximaler Länge gibt es zwei Codeworte c0, c1 C mit c {0, 1}, die sich nur in der letzten Stelle unterscheiden Lemma,1: Die beiden Symbole an 1, a n mit kleinster Quellws besitzen maximale Codewortlänge Vertausche die Codierungen dieser Symbole mit c0, c1 a n 1 oder a n tauchen mit Ws p n 1 + p n auf IA: Huffman-Codierung liefert kompakten Präfixcode C für a 1,, a n 2, a mit Quellws p 1,, p n 2, p n 1 + p n C(a1 ),, C(a n 2 ), C(a )0 = c0, C(a )1 = c1 ist Präfixcode mit erwarteter Codewortlänge E(C ), dh die Huffman-Codierung liefert einen kompakten Präfixcode 2 Woche: Eindeutige Entschlüsselbarleit, Sätze von Kraft und McMillan, Huffmancodierung 44/ 44