Kodierung und Sicherheit

Ähnliche Dokumente
Seminar Kompressionsalgorithmen Huffman-Codierung, arithmetische Codierung

Stochastik I. Vorlesungsmitschrift

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

Codierungstheorie Rudolf Scharlau, SoSe

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

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

Grundbegriffe der Wahrscheinlichkeitsrechnung

Codierung, Codes (variabler Länge)

x, y 2 f(x)g(x) dµ(x). Es ist leicht nachzuprüfen, dass die x 2 setzen. Dann liefert (5.1) n=1 x ny n bzw. f, g = Ω

Algorithmik WS 07/ Vorlesung, Andreas Jakoby Universität zu Lübeck

Übungen zur Linearen Algebra 1

Satz 18 (Satz von der totalen Wahrscheinlichkeit)

Satz 16 (Multiplikationssatz)

Referat zum Thema Huffman-Codes

Dynamisches Huffman-Verfahren

4. Woche Decodierung; Maximale, Perfekte und Optimale Codes. 4. Woche: Decodierung; Maximale, Perfekte und Optimale Codes 69/ 140

Informationstheorie und Codierung

(Prüfungs-)Aufgaben zur Codierungstheorie

Information und Codierung

3 Vom Zählen zur Induktion

Mathematik II für Studierende der Informatik. Wirtschaftsinformatik (Analysis und lineare Algebra) im Sommersemester 2016

2. Symmetrische Gruppen

Stochastik. 1. Wahrscheinlichkeitsräume

2 Die Dimension eines Vektorraums

Randomisierte Algorithmen 2. Erste Beispiele

3 Bedingte Wahrscheinlichkeit, Unabhängigkeit von Ereignissen

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

Allgemeine diskrete Wahrscheinlichkeitsräume II. Beispiel II. Beispiel I. Definition 6.3 (Diskreter Wahrscheinlichkeitsraum)

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

4 Diskrete Wahrscheinlichkeitsverteilungen

1.2 Eigenschaften der ganzen Zahlen

Dieses Quiz soll Ihnen helfen, Kapitel besser zu verstehen.

CODIERUNGSTHEORIE KURS ZELL AN DER PRAM, FEBRUAR 2005

Vervollständigung Lateinischer Quadrate

Mathematik III. Produkt-Präringe

Einführung in die Wahrscheinlichkeitsrechnung

3 Quellencodierung. 3.1 Einleitung

Technische Universität München

Unabhängigkeit KAPITEL 4

Kapitel 3. Natürliche Zahlen und vollständige Induktion

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

1 Euklidische und unitäre Vektorräume

7 KONVERGENTE FOLGEN 35. inf M = Infimum von M. bezeichnet haben. Definition. Sei (a n ) n N eine beschränkte Folge in R. Dann heißt.

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

Varianz und Kovarianz

Folgen und Reihen. Wirtschaftswissenschaftliches Zentrum Universität Basel. Mathematik für Ökonomen 1 Dr. Thomas Zehrt

5 Zwei spieltheoretische Aspekte

Klausur zur Wahrscheinlichkeitstheorie für Lehramtsstudierende

MafI I: Logik & Diskrete Mathematik (F. Hoffmann)

6 Reelle und komplexe Zahlenfolgen

Lösungen zur Klausur GRUNDLAGEN DER WAHRSCHEINLICHKEITSTHEORIE UND STATISTIK

5. Äquivalenzrelationen

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

2.11 Kontextfreie Grammatiken und Parsebäume

Einführung in die Theoretische Informatik

Technische Universität München Zentrum Mathematik. Übungsblatt 7

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

Wahrscheinlichkeitstheorie und Statistik vom

Stochastische Lernalgorithmen

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

3. Kombinatorik und Wahrscheinlichkeit

(x, x + y 2, x y 2 + z 3. = e x sin y. sin y. Nach dem Umkehrsatz besitzt f dann genau auf der Menge

Übungsblatt 2 - Lösung

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

Wiederholung zu Flüssen

P (X = 2) = 1/36, P (X = 3) = 2/36,...

3 Bedingte Wahrscheinlichkeit, Unabhängigkeit

Rechnernetze Übung 5. Frank Weinhold Professur VSR Fakultät für Informatik TU Chemnitz Mai Wo sind wir?

Donnerstag, 11. Dezember 03 Satz 2.2 Der Name Unterraum ist gerechtfertigt, denn jeder Unterraum U von V ist bzgl.

5 Grundlagen der Zahlentheorie

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

Elementare Beweismethoden

2 Zufallsvariable, Verteilungen, Erwartungswert

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

Technische Universität München Zentrum Mathematik Propädeutikum Diskrete Mathematik. Weihnachtsblatt

Analysis II (FS 2015): ZUSAMMENHÄNGENDE METRISCHE RÄUME

Mengen und Abbildungen

7.2 Moment und Varianz

Natürliche, ganze und rationale Zahlen

Vorkurs: Mathematik für Informatiker

Vollständigkeit; Überabzählbarkeit und dichte Mengen) Als typisches Beispiel für die reellen Zahlen dient die kontinuierlich ablaufende Zeit.

Einführung in die Theorie der Markov-Ketten. Jens Schomaker

Das Zweikinderproblem

Randomisierte Algorithmen

Kapitel 5 KONVERGENZ

KONSTRUKTION VON MASSEN

Doz. Dr. H.P. Scheffler Sommer 2000 Klausur zur Vorlesung Stochastik I

(Man sagt dafür auch, dass die Teilmenge U bezüglich der Gruppenoperationen abgeschlossen sein muss.)

$Id: reihen.tex,v /06/12 10:59:50 hk Exp $ unendliche Summe. a 1 + a 2 + a 3 +.

Mathematik II für Studierende der Informatik. Wirtschaftsinformatik (Analysis und lineare Algebra) im Sommersemester 2016

Vorlesung 4. Tilman Bauer. 13. September Wir befassen uns in dieser Vorlesung noch einmal mit Mengen.

Algorithmen II Vorlesung am

1 Zahlentheorie. 1.1 Kongruenzen

Datenstrukturen & Algorithmen Lösungen zu Blatt 6 FS 14

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

Diskrete Wahrscheinlichkeitstheorie - Probeklausur

Strukturelle Rekursion und Induktion

24 KAPITEL 2. REELLE UND KOMPLEXE ZAHLEN

Zusammenfassung Mathe II. Themenschwerpunkt 2: Stochastik (ean) 1. Ein- und mehrstufige Zufallsexperimente; Ergebnismengen

Grundbegriffe der Informatik

Transkript:

Skript zur Vorlesung: Kodierung und Sicherheit 0000 00000 000 0000 0000 000 00 000 Wintersemester 2004-2005 Dr. Andreas Jakoby Institut für Theoretische Informatik Universität zu Lübeck

Inhaltsverzeichnis Einführung. Was ist ein Code?.......................................2 Sofort decodierbare Codes.................................. 4.3 Informationsquelle und erwartete Codewortlänge..................... 7.4 Huffman-Code........................................ 8 2 Informationstheorie 4 2. Information und Entropie.................................. 4 2.2 Eigenschaften der Entropie................................. 6 2.3 Erweiterung einer Informationsquelle............................ 8 2.4 Codierungstheorem für fehlerfreie Codes.......................... 9 3 Kanäle und Codes 22 3. Eine kurzer Einschub: Wahrscheinlichkeitsräume..................... 22 3.2 Kommunikationskanäle.................................... 24 4 Decodierung und Entscheidungsregeln 26 4. Ideale und Maximum-Likelihood Decodierregel...................... 26 4.2 Die Hammingdistanz..................................... 28 4.3 Decodierfehlerwahrscheinlichkeit.............................. 33 4.4 Aus Alt mach Neu...................................... 36 4.5 Effizienz von Codes...................................... 38 4.6 Schranken für A r (n, d)................................... 39 4.7 Die Singleton- und die Plotkinschranke........................... 4 4.8 Das Codierungstheorem für fehlerbehaftete Kanäle.................... 42 I

5 Lineare Codes 45 5. Eine kurzer Einschub: Etwas Algebra............................ 45 5.. Begriffe aus der Algebra............................... 45 5..2 Der Vektorraum Z n p................................. 47 5.2 Lineare Codes......................................... 50 5.2. Generatormatrizen.................................. 5 5.2.2 Der binäre Reed-Muller Code............................ 5 5.2.3 Decodierung linearer Codes............................. 53 5.2.4 Das Fehlersyndrom.................................. 54 5.2.5 Decodierung von Reed-Muller Codes erster Ordnung............... 54 5.3 Zyklische Codes........................................ 55 5.4 Reed-Solomon-Code..................................... 58 5.5 Das RAID-System...................................... 59 6 Sicherheitsprobleme 60 6. Intruders........................................... 60 6.. Kennwörter...................................... 60 6..2 Kennworttests.................................... 62 6..3 Test auf Eindringlinge................................ 63 7 Lösungen 65 II

Einführung Was ist Sicherheit in der Informatik? In einem ersten Ansatz können wir diesen Begriff in folgenden Szenarien interpretieren:. Sicherheit im Sinne der Kryptographie, 2. Sicherheit eines Rechners gegen Angriffe von außen (Viren, Würmer, etc.) oder 3. Sicherheit gegen Datenverlust. In dieser Vorlesung wollen wir uns in erster Linie mit der Sicherheit gegen Datenverlust auseinander setzen. Der Bereich der Informatik, der sich mit dieser Fragestellung auseinander setzt, ist die Kodierungs- und Informationstheorie. Das Umfeld, in dem wir uns also zunächst bewegen wollen, können wir wie folgt darstellen:. Eine Daten- bzw. Nachrichtenquelle liefert uns eine Folge von Datenelementen. Diese Quelle produziert nach gewissen stochastischen Gesetzmäßigkeiten eine Folge x 0 x x 2... von Nachrichten x i über einem endlichen Alphabet Q. Wir nennen diese Nachrichten auch Quellnachrichten. 2. Mit Hilfe eines Quellencodierers werden diese Signale in Zeichen übersetzt, welche wir über einen Kanal versenden oder im Rechner abspeichern können, d.h. der Quellencodierer bildet die Quellnachrichten in Quellcodewörter ab. 3. Da das Übertragen einer Nachricht diese verändern kann, übersetzt der Kanalcodierer diese Folge in eine neue Folge, die auch bei möglichen Störungen eine Wiederherstellung der ursprünglichen Nachricht erlaubt, d.h. der Kanalcodierer bildet die Quellcodewörter in Kanalcodewörter ab. 4. Der Kanal dient zur Übertragung einer Nachricht. Dieser kann von einer Rauschquelle beeinflußt werden, welche die Daten, die sich auf dem Kanal befinden, stochastisch verändert, d.h. der Kanal bildet die Kanalcodewörter in empfangene Codewörter ab. 5. Der Kanaldecodierer hat die Aufgabe die veränderte Nachricht der empfangenen Codewörter wieder in eine Zeichenfolge zu überführen, welche der ursprünglichen Nachricht entspricht, d.h. der Kanaldecodierer bildet die empfangene Codewörter in Zielcodewörter ab. 6. Der Quellendecodierer schließlich überträgt diese Zielcodewörter in die Zielnachricht, welche den Signalen der Nachrichtenquelle entspricht, und liefert diese an die Nachrichtensenke. Die wesentliche Aufgabe, der wir hier begegnen, ist also die Umwandlung einer Folge von Nachrichten in eine Folge von Codewörten und diese (nach einer möglichen Verfremdung) wieder in eine Folge von Nachrichten. Im Folgenden wollen wir zunächst auf einige grundlegende Fragestellungen aus dem Bereich der Kodierungstheorie eingehen.. Was ist ein Code? Ein Code ist eine (endliche) Menge von Zeichenketten über einem gegebenen Alphabet, z.b. C = {0, 0, 0, 0}, C 2 = {0, 0, 0, 0} oder C 3 = {00, 0, 0, }.

Definition Sei Σ = {a 0,..., a r } eine endliche Menge, welche wir im Folgenden als Codealphabet bezeichnen. Ein r -närer Code über Σ ist eine Teilmenge C von Σ, wobei Σ die Menge aller Zeichenketten (inklusive der leeren Zeichenkette λ ) über Σ bezeichnet. Die Elemente c C nennen wir Codewörter. Zur Darstellung von Codes benutzen wir meistens die modularen Restklassen Z n := {0,,..., n }. Ein wesentlicher Vorteil dieser Darstellung ist die Eigenschaft, das Z n für eine Primzahl n eine Gruppe darstelle. Von großem Interesse sind sogenannte binäre Codes über Z 2 und ternäre Codes über Z 3. Definition 2 Sei Γ = {s 0,..., s q } eine endliche Menge, welche wir im Folgenden als Quellenalphabet bezeichnen, und C ein Code. Eine Kodierungsfunktion f : Γ C ist eine bijektive Abbildung von Γ nach C. Wir bezeichnen das Paar (C, f) auch als Kodierungsschema. Wie wir schon bei den Beispielen C, C 2 und C 3 oben gesehen haben, können wir zwischen Codes variabler Länge und Codes fester Länge bzw. Blockcodes unterscheiden. Wir nennen einen Code C einen Blockcode (der Länge n ), wenn alle Codewörter in C die gleiche Länge n haben. Eine wesentliche Bedingung, welche von einem Code erfüllt sein muss, ist die Eindeutigkeit einer Kodierung. Definition 3 Eindeutig decodierbare Codes Einen Code C über einem Alphabet Σ nennen wir eindeutig decodierbar, wenn es für jede Folge x Σ höchstens eine Folge c... c m C m gibt, s.d. c... c m = x ist. Alternativ können wir diese Eigenschaft auch wie folgt beschreiben: Fakt Ein Code ist genau dann eindeutig decodierbar, wenn für alle Paare von Folgen c... c m C m und c... c k Cm gilt c... c m = c... c k m = k und i {,..., m} : c i = c i. Da unser Interesse eindeutig decodierbaren Codes gilt, ist es erforderlich solche Codes mit Hilfe einfacher Verfahren von nicht eindeutig decodierbaren Codes zu unterscheiden. Die Ungleichung von Kraft gibt uns eine notwendige Bedingung für eindeutig decodierbaren Codes: Theorem [Satz von McMillan] Sei C ein eindeutig decodierbarer Code über einem r -nären Alphabet Σ, der aus l Codewörtern c,..., c l der Längen n n 2 n l besteht. Dann gilt: l i= r ni. 2

Beweis: Sei α j die Anzahl der Codewörter aus C der Länge j. Betrachten wir nun den Term auf der linken Seite der Ungleichung, so gilt: Für u N gilt nun ( maxk n k i= α i r i ) u = = = l i= r ni = ( α r + α 2 r 2 max k n k i= α i r i. +... + α ) u max k n k r maxk n k α i i,...,i u mit i j max k n k i,...,i u Da i j max k n k, gilt für die Summe i +... + i u Setzen wir N k i= r αi 2 i r i2... αi u r iu α i α i2... α iu. r i+...+iu mit i j max k n k u i +... + i u u max n k. k = i α +...+i u=k i α i2... α iu, so erhalten wir ( maxk ) ( ) n k u max α i k n k r i = r i α i α i2... α iu = i=u u max k n k i=u N i r i. i +...+i u=i Wir wollen nun den Wert von N i analysieren. Da α i die Anzahl der Codewörter in C der Länge i ist, ist α i α i2... α iu die Anzahl der Zeichenketten, die sich über die Konkatenation eines Codewortes der Länge i gefolgt von einem Codewortes der Länge i 2 usw. ergeben. Hierbei ist i die Länge der resultierenden Zeichenkette. Da C ein eindeutig decodierbarer Code ist, kann jede Zeichenkette, die sich über eine solche Konkatenation darstellen lässt, nur bei einem Tupel (i,..., i u ) aufgezählt werden. Da C ein Code über einem r -nären Alphabet ist, folgt somit und weiter ( maxk n k i= α i r i ) N i r i u max k n k i=u Für den ursprünglichen Term in der Ungleichung gilt daher l i= r i r i u max k r ni u u max k n k. Da diese Beobachtung für alle Werte u N gilt, folgt n k. l i= r ni lim u u u maxk n k = lim u u u lim u u maxk n k = lim e ln u u u ln u limu = e u = e 0 =. Die Ungleichung aus Theorem wird oft auch als die Ungleichung von Kraft bezeichnet. 3

Aufgabe Beweisen Sie Fakt. Aufgabe 2 Zeigen Sie, dass die folgenden Codes nicht eindeutig decodierbarer sind: C 4 = {0, 0, 00, 0, 0,, 000} C 5 = {0, 0, 0, 0} Aufgabe 3 Sei C ein Code über einem r -nären Alphabet, r 2, der aus l Codewörtern c,..., c l der Längen n n 2 n l besteht. Ferner soll für C l i= r ni = gelten. Zeigen Sie, dass dann n l = n l ist..2 Sofort decodierbare Codes Vergleichen wir Blockcodes mit Codes variabler Länge, so erkennen wir, dass schon bei einem binären Codealphabet {0, } und bei einer Mächtigkeit von l = 2 m + die meisten Zeichenketten aus {0, } k für k m nicht als eine Konkatenation von Codewörtern dargestellt werden können. Auf der anderen Seite, sind Blockcodes eindeutig decodierbar, was jedoch nicht auf jeden Code variabler Länge zutrifft (vergleiche Code C 4 und C 5 ). Ein weiterer Vorteil von Blockcodes ist deren sofortige Decodierbarkeit. Definition 4 Einen Code nennen wir sofort decodierbar, wenn er eindeutig decodierbar ist und bei dem man jede Zeichenfolge, die aus aneinandergereihten Codewörtern besteht, von vorne beginnend Wort für Wort decodieren kann, ohne die nachfolgenden Zeichen beachten zu müssen. Code C 2 ist ein Beispiel für einen Code der nicht sofort decodierbar ist. Eine nähere Betrachtung von C 2 zeigt uns, dass die meisten Codewörter Präfixe anderer Codewörter sind. Ein Wort w ist Präfix eines Worts u, wenn wir w durch Konkatenation mit einem Wort v zu u ergänzen können, d.h. wv = u. Diese Beobachtung führt uns zu folgender Definition: Definition 5 Ein Code besitzt die Präfix-Eigenschaft (oder auch FANO-Bedingung genannt), wenn kein Codewort Präfix eines anderen Codeworts ist. Besitzt ein Code die Präfix-Eigenschaft, so nennen wir ihn auch einen Präfix-Code. Die Wichtigkeit der Präfix-Eigenschaft wird aus folgendem Theorem deutlich: Theorem 2 Ein Code ist genau dann sofort decodierbar, wenn er ein Präfix-Code ist. Beweis: ) Wir betrachten zunächst den Fall, dass C ein Präfix-Code ist. Sei w eine beliebige Zeichenkette, welche durch das Aneinanderfügen von Codewörtern entsteht. Der Beweis erfolgt über eine vollständige Induktion über die Anzahl m der Codewörter deren Konkatenation w ergeben. Ist m =, so folgt aus der Präfix-Eigenschaft, dass kein Präfix von w ein Codewort ist. Die Decodierung ist somit eineindeutig. 4

Wir betrachten nun den Fall, dass die sofortige Decodierbarkeit für alle Werte m m 0 erfüllt ist. Sei w eine Zeichenkette, welche durch das Aneinanderfügen von m 0 + Codewörtern entsteht. Aus der Präfix-Eigenschaft folgt, dass der Präfix u von w, der ein Codewort aus C darstellt, eindeutig bestimmt ist. Sei also w = uv. Da w aus m 0 + Codewörtern besteht und das erste Codewort u eindeutig bestimmt ist, muss v durch die Konkatenation von m 0 Codewörtern beschrieben werden können. 2) Sei C ein sofort decodierbarer Code, der nicht die Präfix-Eigenschaft besitzt. Dann gibt es zwei Codeworte c, c 2 C, so dass c Präfix von c 2 ist. Beginnt eine Zeichenkette w mit c, so können wir nach dem Lesen der ersten c Symbole von w diese noch nicht decodieren, da sich nach dem c + -ten Symbol herausstellen könnte, dass w auch den Präfix c 2 besitzt. w ist somit nicht sofort decodierbar ein Widerspruch. Die Präfix-Eigenschaft eines Codes ist durch einen paarweisen Vergleich aller Codewörter zu überprüfen. Neben der sofortigen Decodierbarkeit eines solchen Codes erhalten wir zudem die Eigenschaft, dass ein Präfix-Code immer eindeutig decodierbar ist. Für einen beliebigen Code stellt uns die Aufgabe die eindeutige Decodierbarkeit nachzuweisen vor ein erhebliches Problem; ein Algorithmus zur Lösung geht auf Patterson und Sardinas [SaPa53] zurück und ist unter anderem in [Gall68, Sayo00] publiziert: Algorithm EindeutigDecodierbar(C) Eingabe: Code C Ausgabe: Antwort, ob C eindeutig decodierbar ist : setze C 0 = C 2: for i = to do 3: wähle c, c 2 aus C i, s.d. c = c 2 u für ein u C i \ C 0 4: if es existiert kein solches Paar c, c 2 then 5: C ist eindeutig decodierbar 6: breche die Schleife ab 7: else if u C 0 then 8: C ist nicht eindeutig decodierbar 9: breche die Schleife ab 0: end if : setze C i = C i {u} 2: end for Anstelle auf diesen Algorithmus näher einzugehen, werden wir noch einige weitere Eigenschaften von Präfix-Codes herleiten. Theorem 3. [Satz von Kraft] Es existiert genau dann ein Präfix-Code C über einem r -nären Alphabet Σ, der aus l Codewörtern c,..., c l der Längen n n 2 n l besteht, wenn gilt: l r ni. i= 2. Sei C ein Präfix-Code über einem r -nären Alphabet. C ist genau dann ein maximaler Präfix-Code, d.h. C ist keine echte Teilmenge eines anderen r -nären Präfix-Codes, wenn für C die Gleichheit in der Kraftschen Ungleichung gilt. 3. Sei C ein Präfix-Code über einem r -nären Alphabet mit maximaler Codewortlänge m. Ist C kein maximaler Präfix-Code, dann können wir zu C noch Codewörter der Länge m hinzufügen, ohne dass der resultierende Code die Präfix-Eigenschaft verletzt. 5

Beweis: Wie im Beweis vom Satz von McMillan beginnen wir mit einer Umformung der Ungleichung von Kraft. Sei α j die Anzahl der Codewörter aus C der Länge j und m = max ci C c i die maximale Codewortlänge, dann gilt l i= r ni = m i= α i r i = r m m α i r m i. Die Ungleichung von Kraft kann demnach auch wie folgt dargestellt werden: m α i r m i r m bzw. α m + i= i= m i= α i r m i r m. Wir kommen nun zum eigentlichen Beweis der einzelnen Teile des Theorems.. a) Da ein Präfix-Code eindeutig decodierbar ist, folgt aus dem Satz von McMillan, dass jeder Präfix-Code die Ungleichung von Kraft erfüllen muss. Da wir jedoch einige Aspekte dieser Ungleichung im Weiteren noch näher untersuchen wollen, werden wir hier diese Richtung erneut beweisen. Sei c C ein Codewort der Länge i m. Da C ein Präfix-Code ist, gibt es keine Zeichenkette x der Länge m i, so dass cx C ist. Es gibt 2 m i Zeichenketten x der Länge m i und somit kennen wir 2 m i Zeichenketten cx, die nicht in C vorkommen. Betrachten wir nun ein zweites Codewort c C der Länge j m, so gilt zudem, dass die Mengen {cx x Σ m i } und {c y y Σ m j } disjunkt sind. Sind diese Mengen nicht disjunkt, so ist entweder c ein Präfix von c oder c ein Präfix von c. Wir folgern, dass wir m i= α i r m i Zeichenketten der Länge m konstruieren können, die nicht in C sind. Somit ist α m r m m i= α i r m i. Die Ungleichung von Kraft ist für jeden Präfix-Code erfüllt. b) Wir müssen nun noch die Umkehrung des obigen Falls zeigen: Seien n n 2 n l Längen, welche die Ungleichung von Kraft erfüllen, dann existiert ein Präfix-Code C über einem r -nären Alphabet, der aus l Codewörtern c,..., c l der Längen n, n 2,, n l besteht. Der Beweis erfolgt über eine vollständige Induktion über die Anzahl l der Codewörter in C. Ist l r, dann wählen wir die Codewörter in C so, dass alle mit einem unterschiedlichen Symbol beginnen. Um die Codewörter auf die gewünschten Längen n, n 2,, n l zu bringen, können wir sie beliebig ergänzen. Da jedes Codewort mit einem individuellen Symbol beginnt, ist kein Codewort ein Präfix eines anderen Codeworts. Die Aussage gilt somit für l r. Im Folgenden wollen wir annehmen, dass die Aussage auch für alle l l 0 gültig ist. Sei n n 2 n l0 n l0+ eine Folge von Längen, welche die Ungleichung von Kraft erfüllen. Betrachten wir nun die ersten l 0 dieser Längen, so gibt es nach Induktionsannahme einen Präfix-Code C = {c,..., c l0 } der Mächtigkeit l 0 mit c i = n i für alle i l 0. Ferner gilt l 0 i= r ni = (α m ) + m i= α i r m i < r m. Betrachten wir also die Codewörter C = {c,..., c l0 } bzw. die Menge der durch diese Codewörter c generierten verbotenen Mengen {cx x Σ m c }, so gilt entsprechend unserer unter (a) hergeleiteten Beobachtung: {cx x Σ m c } c C Es gibt zumindest eine Zeichenkette = (α m ) + m i= c Σ m \ {cx x Σ m c }. c C α i r m i < r m. 6

Da diese Zeichenkette eine maximale Länge hat, kann sie kein Präfix eines Codeworts aus C sein. Ferner haben wir bei der Auswahl von c alle Zeichenketten ausgeschlossen, die ein Codewort aus C zum Präfix haben. Folglich erfüllt C {c} die Präfix-Eigenschaft und ist somit ein Präfix-Code mit l 0 + Codewörtern {c,..., c l0, c l0+} mit n n l0 n l0+. 2. Wir betrachten zunächst den Fall, dass für einen gegebenen Präfix-Code C die Gleichheit in der Ungleichung von Kraft gilt. Dann gilt aber für jeden r -nären Code C C, dass c C > r c ist. Folglich ist C kein Präfix-Code. C ist somit maximal. Die Rückrichtung folgt unmittelbar aus dem dritten Punkt des Theorems. 3. Sei c C r c <. Dann gibt es zumindest eine Zeichenkette c Σ m \ {cx x Σ m c }. c C Da diese Zeichenkette eine maximale Länge hat, kann sie kein Präfix eines Codeworts aus C sein. Ferner haben wir bei der Auswahl von c alle Zeichenketten ausgeschlossen, die ein Codewort aus C zum Präfix haben. Folglich erfüllt C {c} die Präfix-Eigenschaft und C ist nicht maximal. Fassen wir zusammen: Existiert ein eindeutig decodierbarer Code mit den Codewortlängen n,..., n l, so ist nach dem Satz von McMillan die Ungleichung von Kraft erfüllt. Wenden wir nun den Satz von Kraft an, so sehen wir, dass es auch einen Präfix-Code mit den Codewortlängen n,..., n l geben muss. Es gilt also: Korollar Existiert ein eindeutig decodierbarer Code mit den Codewortlängen n,..., n l, dann existiert auch ein Präfix-Code mit diesen Codewortlängen..3 Informationsquelle und erwartete Codewortlänge Bei der Vorstellung des Umfelds der Kodierungstheorie haben wir bereits gesehen, dass ein Code dazu dient, die Ausgabe einer Nachrichten- bzw. Informationsquelle zu codieren. Es ist daher an der Zeit das Modell der Informationsquelle vorzustellen: Definition 6 Eine Informationsquelle (kurz Quelle) ist ein Paar Q = (Γ, P ) bestehend aus dem Quellenalphabet Γ = {s 0,..., s q } und einem randomisierten Bildungsgesetz P, welches die Ausgabefolgen der Quelle beschreibt. Die Quelle Q wollen wir uns im Folgenden als eine Black-Box vorstellen, welche in regelmäßigen Abständen Symbole ausgibt. Für ein Quellensymbol s i gibt P (s i ) = p i die Wahrscheinlichkeit an, dass die Quelle s i ausgibt. Ein Maß für die Effizienz eines Codierungsschemas ist die erwartete Codewortlänge. Definition 7 Sei Q = (Γ, P ) eine Informationsquelle und (C, f) ein Codierungsschema für Γ, dann definieren wir die erwartete Codewortlänge von (C, f) als AveLen(C, f) := s i Γ P (s i ) f(s i ). 7

Aufgabe 4 Betrachten Sie das Codierungsschema (C, g) für die Quelle (Γ, P ) mit C = {00, 0,, 0, 00, 0} und Quellensymbol s i g(s i ) P (s i ) a 0, 35 b 00 0, 0 c 00 0, 9 d 0 0, 25 e 0 0, 06 f 00 0, 05 Bestimmen sie die erwartete Codewortlänge von (C, g). Ist C maximal? Aufgabe 5 Sei (Γ, P ) eine Quelle mit P (s i ) = Γ für alle Quellensymbol s i. Geben Sie ein Codierungsschema für einen r -nären Code an, welcher die erwartete Codewortlänge minimiert. Beweisen Sie Ihre Aussage. Aufgabe 6 Sei (Γ, P ) eine Quelle mit P (s i ) = Γ für alle Quellensymbol s i. Geben Sie ein Codierungsschema für einen r -nären Präfix-Code an, welcher die erwartete Codewortlänge minimiert. Beweisen Sie Ihre Aussage..4 Huffman-Code 952 publizierte D. A. Huffman ein effizientes Codierungsschema, dessen erwartete Codewortlänge wir im Folgenden untersuchen wollen. Sei Q = (Γ, P ) eine Informationsquelle mit Γ = {s 0,..., s q } und Σ = {a 0,..., a r } ein r - näres Codealphabet. Wir wollen nun das Verfahren von Huffman vorstellen, mit dessen Hilfe wir zunächst einen Huffman-Baum T = (V, E) für die Quelle Q generieren können. Hierbei sollte man beachten, dass für jede Quelle verschiedene Huffman-Codes existieren, die jedoch alle die gleiche erwartete Codewortlänge besitzen. Phase 0 Zunächst ergänzen wir Γ, so dass der nun folgende Algorithmus aufgeht. Wähle l N minimal mit m = r + l (r ) q und setze Γ 0 = Γ {s q,..., s m }, wobei s i mit i {q,..., m } neue Symbole sind. Ferner definiere eine Gewichtsfunktion w durch w(s i ) := { P (si ) für s i Γ 0 sonst für alle s i Γ 0. Im weiteren Verlauf dieses Verfahrens werden wir w, V, Γ,..., Γ l+ und E sukzessive verändern bzw. aufbauen. Als Initialwerte wählen wir V = Γ 0 und E =. Γ stellt die Menge der Knoten dar, die wir noch zu einem Baum zusammenfassen müssen. Phase i mit i l + Sei s m+i ein neues Symbol (bzw. ein neuer Knoten). In dieser Phase fassen wir m Knoten aus Γ i zusammen, wobei s m+i im Weiteren als Repräsentant dieser Knoten dienen soll: 8

Sei g i = σ,..., σ Γi eine sortierte Folge der Knoten aus Γ i, wobei w(σ ) w(σ 2 )... w(σ Γi ) ist. Nun definieren wir r w(s m+i ) = w(σ j ) und setzen j= Γ i = {s m+i } Γ i \ {σ,..., σ r } V = V {s m+i } E = E {(s m+i, σ ),..., (s m+i, σ r )}. Phase l + Lösche nun die Knoten der m q Symbole s q,..., s m aus V, die wir in der Phase 0 eingefügt haben: Gebe T = (V, E) aus. V = V \ {s q,..., s m } E = E \ {(s m, s q ),..., (s m, s m )}. Um einen Huffman-Code aus dem Huffman-Baum T = (V, E) zu generieren, markieren wir für jeden Knoten s i V dessen ausgehenden Kanten (s i, s j ) mit einem Symbol aus Σ, wobei wir darauf achten, dass kein Knoten s i zwei ausgehende Kanten besitzt, die mit dem gleichen Symbol markiert sind. Da die ursprünglichen Symbole aus Γ sich alle in den Blättern des Baumes befinden, existiert für jedes Symbol s i Γ ein eindeutiger Pfad π i von der Wurzel s m+l von T zu dem jeweiligen Blatt s i. Die Codierung f(s i ) ergibt sich aus der Folge der Kantenmarkierungen auf π i von s m+l nach s i. Beispiel Konstruiere einen binären Huffman-Code für folgende Quelle Symbol Wahrscheinlichkeit a 0,35 b 0,0 c 0,9 d 0,25 e 0,06 f 0,05 Phase 0,05 f 0,06 e 0,0 b 0,9 c 0,25 d 0,35 a Phase 2 0,0 b 0, 0,9 c 0,25 d 0,35 a 0,05 f 0,06 e Phase 3 0,9 c 0,2 0,25 d 0,35 a 0,0 b 0, 0,05 f 0,06 e 9

Phase 4 0,25 d 0,35 a 0,40 0,9 c 0,2 0,0 b 0, 0,05 f 0,06 e Phase 5 0,40 0,60 0,9 c 0,2 0,25 d 0,35 a 0,0 b 0, 0,05 f 0,06 e Huffman-Code 0 0 0 c 0 d a b f 0 e Abbildung : Die sortierten Folgen σ vor den einzelnen Phasen bei der Erzeugung eines Huffman- Baums. Die Bedeutung des Huffman-Codes ergibt sich aus folgendem Theorem: Theorem 4 Sei Q = (Γ, P ) eine Informationsquelle, dann sind alle Huffman-Codes (H, f) für Q Präfix-Codes. Zudem ist die erwartete Codewortlänge aller Huffman-Codes für Q minimal für alle Präfix-Codes für Q. Beweis: Wir wollen dieses Theorem nur für binäre Huffman-Codes beweisen. Der Beweis, dass ein Huffman-Code ein Präfix-Code ist, erfolgt über eine Widerspruchsannahme. Sei also H ein Huffman-Code, der die Präfix-Eigenschaft nicht hat, d.h. es existieren zwei Codewörter c, c 2 H wobei c ein Präfix von c 2 ist. Nach Konstruktion sind die Codewörter eines Huffman- Codes eineindeutig den Blättern eines Huffman-Baums zugeordnet, wobei die Kantenbeschriftungen der Wurzel-Blatt-Pfade den Codewörtern entsprechen. Ist also c ein Präfix von c 2, so sind die beiden Wurzel-Blatt-Pfade auf dem ersten c Kanten identisch, d.h. das Blatt für c ist ein interner Knoten auf dem Wurzel-Blatt-Pfad von c 2 ein Widerspruch. 0

Wir wollen nun den zweiten Teil von Theorem 4 beweisen, d.h. wir wollen zeigen, dass für jeden Huffman-Code (H, f) und für jeden Präfix-Code (C, g) gilt: AveLen(H, f) AveLen(C, g). Zur Vereinfachung machen wir zunächst ein paar Beobachtungen, welche es uns erlauben die Form von C zu vereinfachen. Zunächst können wir o.b.d.a. annehmen, dass die Quellensymbole bezüglich ihrer Wahrscheinlichkeit sortiert sind, d.h. Γ = {s 0,..., s q }, wobei p 0 p... p q ist. Beobachtung Für jede Quelle Q = (Γ, P ), Γ = {s 0,..., s q } und jedes Codierungsschema (C, f) eines Präfix-Codes C für Q existiert ein Codierungsschema (C, g), s.d. und AveLen(C, g) AveLen(C, f) ist. g(s 0 ) g(s )... g(s q ) Beweisidee: Zunächst zeigen wir, dass sich die erwartete Codewortlänge von einem Codierungsschema (C, f) verkleinert, wenn wir die Codewörter von zwei Symbolen s i, s j mit p i > p j und f(s i ) > f(s j ) vertauschen, d.h. g(s i ) := f(s j ), g(s j ) := f(s i ) und g(s k ) := f(s k ) für alle k {i, j}. Die Beobachtung folgt nun über eine vollständige Induktion über die Anzahl der Vertauschungsoperationen, die nötig sind, um aus der unsortierten Folge f(s 0 ),..., f(s q ) eine sortierte Folge herzuleiten. Beobachtung 2 Für jede Quelle Q = (Γ, P ), Γ = {s 0,..., s q } und jedes Codierungsschema (C, f) eines Präfix-Codes C für Q existiert ein Codierungsschema (C, g), s.d. g(s q 2 ) = g(s q ), die beiden Codewörter g(s q 2 ) und g(s q ) unterscheiden sich nur in der letzten Position und AveLen(C, g) AveLen(C, f). Beweisidee: O.B.d.A. nehmen wir an, dass f(s 0 ) f(s )... f(s q ) ist (siehe Beobachtung ). Gilt nun g(s q 2 ) < g(s q ), so erhalten wir ein Codierungsschema für einen Präfix-Code C mit AveLen(C, g) < AveLen(C, f) indem wir beim Codewort f(s q ) das letzte Symbol streichen und die anderen Codewörter unverändert lassen. Da f(s q ) das längste Codewort in C ist und kein anderes Codewort aus C ein Präfix von f(s q ) ist, ist der resultierende Code C = (C \ {f(s q )}) { v Γ f(sq ) vx = f(s q ) } wieder ein Präfix-Code. Sei (C, f ) das resultierende Codierungsschema. Sei w eine Zeichenkette, die wir erhalten, indem wir in f (s q ) das letzte Symbol ändern. Ist w noch kein Codewort, so erhalten wir einen Präfix-Code, indem wir das Codewort f (s q ) gegen w austauschen. Ist w bereits ein Codewort, d.h. w = f (s i ), so erhalten wir den gewünschten Präfix-Code, indem wir die Codewörter für s i und s q 2 vertauschen. Durch Vertauschung von Codewörtern kann man zudem zeigen: Beobachtung 3 Die erwartete Codewortlänge eines Huffman-Codes ist unabhängig von der Reihenfolge der gleichwahrscheinlichen Quellensymbole in der sortierten Folge g der Phase. Somit können wir o.b.d.a. annehmen, dass die Quellensymbole s q 2 und s q in dieser Folge die ersten beiden echten Quellensymbole sind, und die beiden korrespondierenden Codewörter die gleiche Länge haben und sich nur in der letzten Codewortposition unterscheiden.

Im Folgenden wollen wir davon ausgehen, dass die betrachteten Codes (C, g) und (H, f) den Bedingungen der obigen Beobachtungen genügt. Wir wollen uns nun dem Beweis des Theorems zuwenden. Dieser erfolgt über eine vollständige Induktion über die Größe q des Quellenalphabets. Für q = 2 ist die erwartete Codewortlänge eines Huffman-Codes, somit gilt AveLen(H, f) AveLen(C, g). Wir betrachten nun den Fall, dass die Behauptung des Theorems für alle Quellenalphabete der Größe q erfüllt ist. Sei (H, f) ein Huffman-Code für eine Quelle Q = (Γ, P ) mit q = Γ. Im Induktionsschritt werden wir aus dieser Quelle eine neue generieren, indem wir die Quellensymbole s q 2 und s q zu einem Symbol s zusammenfassen. Die resultierende Quelle Q = (Γ, P ) erhalten wir, indem wir Γ = {s} Γ \ {s q 2, s q } und P (s) = P (s q 2 ) + P (s q ) und P (s i ) = P (s i ) für s i Γ \ {s q 2, s q } setzen. Nach Beobachtung 2 und 3 können wir davon ausgehen, dass sich die Codewörter f(s q 2 ) und f(s q ) nur im letzten Symbol unterscheiden. Entfernen wir aus dem Huffman-Baum die beiden Blätter s q 2 und s q, so erhalten wir den Huffman-Baum T, der sich durch die Phasen 2 bis l + für die Quelle Q ergibt. Sei (H, f ) das Codierungsschema, welches wir für T erhalten. Für (H, f ) gilt: AveLen(H, f ) = AveLen(H, f) f(s q 2 ) P (s q 2 ) f(s q ) P (s q )) + ( f(s q ) ) (P (s q 2 ) + P (s q )) = AveLen(H, f) (P (s q 2 ) + P (s q )). Hierbei ist zu beachten, dass im binären Fall der Huffman-Baum ein binärer Baum ist. Da s q 2 und s q die beiden Symbole sind, die in der ersten Phase unseres Verfahrens zusammengefasst werden, haben die beiden Codewörter die gleiche Länge. Betrachten wir nun das Codierungsschema (C, g). Nach Beobachtung und 2 können wir davon ausgehen, dass sich die Codewörter g(s q 2 ) und g(s q ) nur in der letzten Position unterscheiden. O.B.d.A. sei g(s q 2 ) = w0 und g(s q ) = w. Da C ein Präfix-Code ist, gilt w C, wir erhalten somit aus (C, g) einen neuen Präfix-Code (C, g ) für Q, indem wir dem neuen Symbol s das Codewort w zuweisen. Wie schon für den Huffman-Code gilt: AveLen(C, g ) = AveLen(C, g) (P (s q 2 ) + P (s q )). Entsprechend der Induktionshypothese gilt: und folglich ist AveLen(H, f) AveLen(C, g). AveLen(H, f ) AveLen(C, g ) Soweit haben wir gezeigt, dass für jeden Präfix-Code (C, g) und jeden Huffman-Code (H, f) eine Zuordnung f gemäß Beobachtung 3 existiert, so dass gilt: AveLen(H, f) = AveLen(H, f ) AveLen(C, g). Die obigen Ausführungen zu Codes sind leicht überarbeitet aus den Lehrbüchern [HeQu95] und [Roma96] entnommen. 2

Aufgabe 7 Bestimmen Sie einen binären Huffman-Code für die Quelle Q = (Γ, P ) mit Γ = {s 0,..., s 0 } und { 9 0 für i 9 P (s i ) = i+ 0 für i = 0. 0 Aufgabe 8 Zeigen Sie, dass für jede Quelle Q = (Γ, P ) mit P (s i ) = Γ und für alle s i Γ jeder Huffman-Code nur Codewörter von maximal zwei unterschiedlichen Längen besitzt. Bestimmen Sie diese Längen in Abhängigkeit von der Größe des Codealphabets. Aufgabe 9 Sei Γ = {s 0,..., s q } mit P (s 0 ) P (s )... P (s q ) und q r ein Vielfaches von r. Bestimmen Sie die maximale Länge eines Codeworts eines Huffman-Codes über einem r -nären Alphabet. Geben sie eine scharfe obere Schranke für P (s 0 ) an. 3

2 Informationstheorie Im Folgenden wollen wir den Informationsgehalt einer Nachricht untersuchen. Das Maß, mit dem wir diese Information messen wollen, ist die Entropie, d.h. die Unsicherheit der Quelle. Zunächst wollen wir jedoch die Information untersuchen, die in einem einzelnen Quellensymbol steckt. Betrachten wir den Fall einer binären Quelle ({0, }, P ), wobei die Wahrscheinlichkeit für 0 0 und die Wahrscheinlichkeit für 9 0 ist. Es stellt sich nun die Frage, ob beide Symbole die gleiche Information beinhalten. Um diese Frage besser zu verstehen, betrachten wir zwei Personen, die eine Wette auf das nächste Symbol der Quelle abschließen. Die Person, die auf die setzt, ist von seinem Gewinn, sollte die als nächstes kommen, nur wenig überrascht. Es liegt also die Vermutung nahe, dass die weniger Information beinhaltet als die 0. Die Information ist somit eine Funktion in der Wahrscheinlichkeit eines Symbols und nicht eine Funktion in dem Symbol selbst. Für ein Quellensymbol s i Γ und eine Wahrscheinlichkeit P (s i ) = p sei I(p) die Information von s i. 2. Information und Entropie Die Funktion der Information können wir für die Wahrscheinlichkeiten 0 < p durch folgende Bedingungen einschränken: Bedingung I(p) 0. Bedingung 2 I(p) ist kontinuierlich in p. Bedingung 3 Für die Konkatenation zweier Symbole s i s j mit den Wahrscheinlichkeiten p i und p j gilt: P (s i s j ) = p i p j und I(p i p j ) = I(p i ) + I(p j ). Das Bemerkenswerte an diesen Beobachtungen ist, dass es genau einen Typ von Funktionen gibt, die diesen Beobachtungen genügt: Theorem 5 Eine Funktion I(p), definiert für alle 0 < p, erfüllt die Bedingungen bis 3 genau dann, wenn für eine positive Konstante C gilt: I(p) = C log 2 p. Beweis: Das für jedes C die Funktion C log 2 p im Bereich 0 < p die Bedingungen bis 3 erfüllt, folgt unmittelbar aus den Eigenschaften der Logarithmusfunktion. Wir wollen uns daher hier auf die folgende Behauptung untersuchen: Sei I(p) eine Funktion, die die Bedingungen bis 3 erfüllt, dann gibt es eine positive Konstante C, so dass I(p) = C log 2 p. 4

Aus Bedingung 3 können wir per vollständiger Induktion folgern, dass für alle k N mit k > 0 und alle p gilt: I(p k ) = k I(p). Aus dieser Beobachtung folgt und somit k k I(p) = I(p) = I(pk/k ) = k I(p /k ) I(p /k ) = k I(p). Fassen wir die beiden obigen Beobachtungen zusammen, so gilt für alle rationalen Zahlen q : I(p q ) = q I(p). Für jede reelle Zahl 0 < r < existiert eine Sequenz von positiven rationalen Zahlen q n mit 0 < q n <, so dass lim n q n = r und p limn qn = p r ist. Aus der Kontinuität von I(p) folgt I(p r ) = I( lim n pqn ) = lim n I(pqn ) = I(p) lim n q n = r I(p). Für ein festes p, 0 < p < p, können wir jeden Wert q mit 0 < q < mit Hilfe von p log p q darstellen. Somit erhalten wir I(q) = I(p log p q ) = I(p) log p q = I(p) log 2 p log 2 q = C log 2 q. Da p < ist, gilt C = I(p) log 2 p > 0. Da C von der konkreten Wahl von p im obigen Beweis abhängt, setzen wir C =. Wir erhalten für die Information I(p) die folgende Definition: Definition 8 Die Information I eines Quellensymbols s i definiert als I(p i ) := log 2 p i. mit der Wahrscheinlichkeit p i > 0 ist Zur Analyse der durchschnittlichen Information definieren wir die Entropie einer Quelle. Definition 9 Sei Q = (Γ, P ) eine Quelle mit einer Wahrscheinlichkeitsverteilung P = {p i s i Γ}. Dann ist die durchschnittliche Information, welche wir aus einem einzelnen Quellensymbol erhalten, H(Q) = s i Γ p i I(p i ) = s i Γ p i log 2 p i. Für p i = 0 setzen wir p i log p i = 0. H(Q) wird auch Entropie genannt. Da die Entropie nur von der Wahrscheinlichkeitsverteilung P = {p i s i Γ} abhängt, schreiben wir auch H(P ). 5

2.2 Eigenschaften der Entropie Zwei Eigenschaften der Entropie können wir durch einfaches Auswerten der Formel überprüfen: Beobachtung 4 Sei Q = (Γ, P ) mit P (s i ) = Γ für alle s i Γ, dann ist H(Q) = log 2 Γ. Beobachtung 5 Sei Q = (Γ, P ) mit P (s i ) = für ein ausgezeichnetes Symbol s i Γ und P (s j ) = 0 für alle s j s i, dann ist H(Q) = 0. Im Folgenden soll nun gezeigen werden, dass diese beiden Fälle die Extremwerte der Entropie darstellen. Doch bevor wir diese Schranken zeigen können, benötigen wir noch eine Eigenschaft der Logarithmusfunktion. Lemma Für den natürlichen Logarithmus ln und für alle x > 0 gilt: ln x x. Für den Logarithmus zur Basis 2 und für alle x > 0 gilt: log 2 x ln 2. In beiden Fällen gilt die Gleichheit genau dann, wenn x = ist. Wir wollen uns nun einer oberen Schranke für die Entropie zuwenden: Lemma 2 Sei P = {p,..., p n } eine Wahrscheinlichkeitsverteilung und R = {r,..., r n } R n eine Menge mit der Eigenschaft r i, r i R dann gilt n n H(P ) = p i log 2 p i p i log 2 r i, i= i= wobei die Gleichheit nur dann gilt, wenn r i = p i für alle i {,..., n} gilt. Beweis: Aus Lemma folgt: n i= p i log 2 r i p i = ln 2 ln 2 n ( ) ri p i p ( i= i n ) n p i i= r i i= = = ln 2 ln 2 n (r i p i ) ( i= n ) r i i= 0. r Da log i 2 p i = log 2 p i log 2 r i Ungleichung herleiten. ist, können wir aus der obigen Ungleichung unmittelbar die gesuchte 6

Um die Gleichheit zu errechen, müssen wir in der Ungleichung n i= p i log 2 r i p i ln 2 n i= ( ) ri p i p i die Gleichheit in jedem Summenterm erreichen. Nach Lemma ist dieses jedoch nur dann möglich, r wenn für alle i i p i = ist, d.h. r i = p i für alle i {,..., n}. Dieses Lemma werden wir nun benutzen, um eine obere Schranke für die Entropie zu zeigen. Theorem 6 Sei Q = (Γ, P ) eine Quelle mit q Quellensymbolen, dann gilt 0 H(Q) log 2 q. Ferner gilt H(Q) = 0 s i Γ s j Γ \ {s i } : P (s i ) = und P (s j ) = 0 und H(Q) = log 2 q s i Γ : P (s i ) = q. Beweis: Die untere Schranke für die Entropie folgt unmittelbar aus der Eigenschaft, dass log 2 p für p immer positiv ist. Die obere Schranke folgt Lemma 2: H(Q) = s i Γ p i log 2 p i log p 2 i /q s i Γ Aus Lemma 2 folgt zudem, dass nur dann s i Γ = s i Γ p i log 2 q = log 2 q p i log 2 = p i log p 2 i /q s i Γ p i = log 2 q. s i Γ ist, wenn für alle s i Γ p i = q ist. Abschließend soll noch untersucht werden, für welche Wahrscheinlichkeitsverteilungen H(Q) = 0 ist. Besitzt die Quelle nur ein Symbol s i, so gilt für alle Terme der Summe p i log 2 p i = 0. Folglich ist auch die Summe 0. Ist die Summe 0, so muss jeder Term der Summe 0 sein. Dieses folgt aus der Beobachtung, dass für alle p i jeder Term p i log 2 p i 0 ist. Wir unterscheiden zwei Fälle:. p i = 0 : In diesem Fall gilt p i log 2 p i = 0. 2. p i > 0 : In diesem Fall ist genau dann p i log 2 p i = 0, wenn log 2 p i = 0 bzw. p i p i =. = ist, d.h. Fassen wir diese Fälle zusammen, so folgt aus der Voraussetzung, dass s i Γ p i = ist, s i Γ s j Γ \ {s i } : P (s i ) = und P (s j ) = 0. 7

Wie wir in Theorem 5 gesehen haben, können wir die Information I(p) bezüglich jeder beliebigen Basis definieren. Sei r N mit r 2, dann nennen wir die r -näre Entropie. H r (Q) = s i Γ p i log r p i = H(Q) log 2 r Aufgabe 0 Bestimmen Sie die Entropie der Verteilung { a, a,..., 2 a, 2 a } für a 5 in Abhängigkeit der Anzahl der Werte 2 a. Aufgabe Zeigen Sie, dass H(p) = p log p ( p) log( p) symmetrisch bezüglich der Linie p = 2 ist. Aufgabe 2 Sei P = {p, p 2,..., p n } eine Wahrscheinlichkeitsverteilung mit p p 2... p n und ε R + eine positive Zahl mit ε 0 und 0 p ε < p 2 + ε. Zeigen Sie, dass ist. H(p, p 2,..., p n ) > H(p ε, p 2 + ε,..., p n ) 2.3 Erweiterung einer Informationsquelle In Theorem 4 haben wir gesehen, dass ein Huffman-Code für eine Quelle optimal bezüglich der erwarteten Codewortlänge ist zumindestens, wenn wir uns auf Präfix-Codes beschränken. Bevor wir die Zusammenhänge zwischen Entropie und erwarteter Codewortlänge näher analysieren, wollen wir die Frage betrachten, ob die erwartete Codewortlänge von Huffman-Codes noch verbessert werden kann. Sei Q = (Γ, P ) mit Γ = {s, s 2 } und P (s ) = 4 und P (s 2) = 3 4. Ein Huffman-Codierungsschema (H, f) hat für diese Quelle folgende Gestalt: f(s ) = 0 und f(s 2 ) =. Die erwartete Codewortlänge von (H, f) ist und die erwartete Länge der Codierung einer Sequenz der Länge 2 ist ebenfalls 2. Für die Wahrscheinlichkeiten, dass eine bestimmte Sequenz der Länge 2 tatsächlich die Ausgabe der Quelle ist, erhalten wir die folgenden Werte: P (s s ) = p p = 4 4 P (s s 2 ) = p p 2 = 4 3 4 P (s 2 s ) = p 2 p = 3 4 4 P (s 2 s 2 ) = p 2 p 2 = 3 4 3 4 = 0, 0625 = 0, 875 = 0, 875 = 0, 5625 Erweitern wir die Quelle auf Sequenzen der Länge 2, so erhalten wir einen Huffman-Code (H, f ) der folgenden Form: f (s s ) = 00, f (s s 2 ) = 0, f (s 2 s ) = 00 und f (s 2 s 2 ) =. Die erwartete Codewortlänge dieses Codes ist, 6875 und die durchschnittliche Codewortlänge pro Quellensymbol ist 0, 84375. Im Vergleich hierzu ist die Entropie dieser Quelle 0, 828. 8

Definition 0 Für eine Quelle Q = (Γ, P ) definieren wir die n te Erweiterung Q n = (Γ n, P n ), wobei für alle s i... s in Γ n gilt P n (s i... s in ) = P (s i )... P (s in ). Betrachten wir die Unsicherheit, die wir über ein Symbol aus Γ n haben, so können wir erwarten, dass sich die Unsicherheiten für die einzelnen Symbole aus Γ aufaddiert. Theorem 7 Sei Q = (Γ, P ) eine Quelle, dann gilt H(Q n ) := n H(Q). Beweis: Der Beweis erfolgt durch eine direckte Analyse der Entropie von Q n : H(Q n ) = P (s i )... P (s in ) log 2 (P (s i )... P (s in )) und somit H(Q n ) = n = = = q j= i j =0 0 i,...,i n q 0 i,...,i n q n j= 0 i,...,i n q n j= 0 i,...,i n q P (s ij ) log 2 P (s ij ) P (s i )... P (s in ) n log 2 P (s ij ) j= P (s i )... P (s in ) log 2 P (s ij ) P (s i )... P (s in ) log 2 P (s ij ) q i =0 P (s i )... q i j+=0 q i j =0 P (s ij+ )... P (s ij ) q i n=0 P (s in ). Da P eine Wahrscheinlichkeitsverteilung darstellt und q i j =0 P (s i j ) log 2 P (s ij ) der Entropie der Quelle Q entspricht, können wir die letzte Gleichung erheblich vereinfachen: n H(Q n ) = ( H(Q) j= = n H(Q). j i 2.4 Codierungstheorem für fehlerfreie Codes Wie unser Beispiel für eine erweitere Quelle zeigt, ist der einfache Huffman-Code nicht optimal bezüglich seiner erwarteten Codewortlänge, wenn wir uns auf Codes beziehen, welche eine Sequenz von mehreren Quellensymbole gleichzeitig codieren können. Eine untere Schranke für die minimale erwartete Codewortlänge einer Quelle können wir jedoch mit Hilfe der Entropie herleiten. Für eine Quelle Q sei MinAveLen r (Q) = min (C,f) ist ein eindeutig decodierbarer r närer Code für Q AveLen(C, f). Der folgende Satz geht auf das berühmten Codierungstheorem für fehlerfreie Codes von Shannon (948) zurück. 9

Theorem 8 [Codierungstheorem für fehlerfreie Codes, Variante ] Für jede Quelle Q gilt H r (Q) MinAveLen r (Q). Beweis: Sei (C, f) ein eindeutig decodierbarer Code für Q mit Codewörtern c 0,..., c q l 0,..., l q. Sei r i = r li, dann folgt aus dem Satz von McMillan: der Länge q r i = i=0 q i=0 r li. Aus Lemma 2 können wir folgern: q q H(Q) = P (s i ) log 2 P (s i ) P (s i ) log 2 r i = = i=0 i=0 i=0 q P (s i ) log 2 r li q q l i P (s i ) log 2 r = log 2 r l i P (s i ) = log 2 r AveLen(C, f). Somit gilt H r (Q) = H(Q)/ log 2 r AveLen(C, f). Wir werden nun analysieren, wie scharf diese Schranke ist. Aus dem Satz von Kraft folgt, dass für alle Folgen l 0,..., l q, welche die Kraft sche Ungleichung für ein r -näres Codealphabet erfüllen, ein Präfix-Code existiert, welcher aus Codewörtern dieser Längen existiert. Für eine Quelle Q = (Γ, P ) mit Γ = q wählen wir für alle s i Γ die Werte l i minimal, so dass r li P (s i ) ist, d.h. i=0 i=0 Durch einige Umformungen erhalten wir r li P (s i ) < r li. log r P (s i ) l i < log r P (s i ) +. Wir nennen ein Codierungsschema, das diese Ungleichung erfüllt, auch Shannon-Fano-Codierungsschema. Für ein solches Schema (C, f) über einem r -nären Codealphabet gilt: AveLen(C, f) = P (s i ) l i < P (s i ) ( log r P (s i ) + ) c i C c i C = H r (Q) + P (s i ) = H r (Q) +. c i C Der Beweis, dass ein solches Codierungsschema tatsächlich existiert, folgt unmittelbar aus dem Satz von Kraft. Da log r P (s i ) l i ist, gilt auch r li P (s i ). Summieren wir jetzt über alle diese Terme, so folgt: r li P (s i ) =. s i Γ c i C Folglich ist die Kraft sche Ungleichung für Shannon-Fano-Codierungsschemata erfüllt, und es gibt somit einen Präfix-Code, der diese Bedingungen erfüllt. Theorem 9 [Codierungstheorem für fehlerfreie Codes, Variante 2] Für jede Quelle Q gilt H r (Q) MinAveLen r (Q) H r (Q) +. 20

Abschließend wollen wir noch untersuchen, wie sich diese Schranken für erweitere Quellen verhalten. Wenden wir die zweite Variante des Codierungstheorems für fehlerfreie Codes direkt auf eine Quelle Q n an, so erhalten wir n H r (Q) = H r (Q n ) MinAveLen r (Q) H r (Q n ) + = n H r (Q) +. Theorem 0 [Codierungstheorem für fehlerfreie Codes, Variante 3] Für jede Quelle Q gilt H r (Q) MinAveLen r(q n ) n H r (Q) + n. Lassen wir n gegen unendlich laufen, so fallen obere und untere Schranke zusammen, d.h. der durchschnittlich benötigte Aufwand, um ein Symbol der Quelle zu codieren, ist gleich der Entropie der Quelle. Dieses müssen wir jedoch damit bezahlen, dass wir zum Dekodieren eines Symbols der Quelle bis zu n weitere Symbole warten müssen. 2

3 Kanäle und Codes Bisher galt unser Augenmerk der Frage, wie wir eine Quelle mit Hilfe eines gegebenen Alphabets darstellen können. In diesem Abschnitt wollen wir uns der Frage zuwenden, was erforderlich ist, wenn diese Codierung über einen fehlerbehafteten Kanal übertragen werden soll. Wir werden uns im Folgenden auf Blockcodes konzentrieren. Sei Σ = {a 0,..., a r } ein r -näres Codealphabet, dann nennen wir eine Teilmenge von C Σ n einen r -nären Blockcode der Länge n bzw. für m = C einen r -nären (n, m) -Code. 3. Eine kurzer Einschub: Wahrscheinlichkeitsräume Bevor wir uns eingehender mit fehlerbehafteten Kanälen befassen, müssen wir noch einige Begriffe, Notationen und Eigenschaften aus der Statistik einführen. Da wir in dieser Vorlesung verschiedene Ergebnisse aus diesem Bereich nur streifen können, möchte ich hier noch auf das Buch von Ross [Ross94] und das Skriptum zu den Vorlesungen Stochastik von L. Dümbgen [Dümb02] verweisen. Definition Diskreter Wahrscheinlichkeitsraum Ein diskreter Wahrscheinlichkeitsraum ist ein Paar (U, Prob). Hierbei ist U eine nichtleere abzählbare Menge, deren Elemente wir Elementarereignisse nennen, und Prob : U R 0 ein Wahrscheinlichkeitsmaß, d.h. Prob ist eine Funktion mit der Eigenschaft Prob[u] =. u U Eine Teilmenge von Elementarereignissen E U nennen wir ein Ereignis, und definieren Prob[E] = Prob[u]. u E Ein Wahrscheinlichkeitsmaß Prob auf einer endlichen Menge U ist eine Gleichverteilung auf U, wenn für alle Elementarereignisse u U Prob[u] = U gilt. Mit U + bezeichnen wir die Menge aller Elementarereignisse mit strikt positiver Wahrscheinlichkeit, d.h. U + := { u U Prob[u] > 0 }. Eine Menge von Ereignissen {E,..., E k } nennen wir Zerlegung von U, wenn die Ereignisse paarweise disjunkt sind und k i= E i = U ist. Sei E ein Ereignis in einem Wahrscheinlichkeitsraum (U, Prob) und E 2 ein Ereignis in einem Wahrscheinlichkeitsraum (U 2, Prob) dann ist Prob[E E 2 ] die Wahrscheinlichkeit, dass E und E 2 simultan zutrifft. Für ein Ereignis E 2 U 2 + definieren wir die bedingte Wahrscheinlichkeit Prob[E E 2 ] durch: Prob[E E 2 ] = Prob[E E 2 ]. Prob[E 2 ] Aus der Definition des diskreten Wahrscheinlichkeitsraums können wir unmittelbar folgende Eigenschaften herleiten: Eigenschaft Sei (U, Prob) ein diskreter Wahrscheinlichkeitsraum, dann gilt: 22

. Für jedes Ereignis E U gilt 0 Prob[E]. 2. Für k [ U ] sei { E i i [, k]} eine Menge von paarweise disjunkten Ereignissen, dann gilt Prob[ i [,k] E i] = i [,k] Prob[E i]. Bezüglich der bedingten Wahrscheinlichkeiten gelten folgende Eigenschaften: Eigenschaft 2 Sei {E,..., E k } eine paarweise disjunkte Menge von Ereignissen über dem Wahrscheinlichkeitsraum (U, Prob), dann gilt:. (Formel von der totalen Wahrscheinlichkeit) Ist {E,..., E k } eine Zerlegung von U, dann gilt für alle Ereignisse E : Prob[E ] = k Prob[E i ] Prob[E E i ] i= (ist Prob[E i ] = 0 und somit Prob[E E i ] nicht definiert, so setzen wir Prob[E i ] Prob[E E i ] = 0 ). 2. (Formel von Bayer) Ist Prob[E ] > 0 und {E,..., E k } eine Zerlegung von U, dann gilt für alle i [, k] Prob[E i E Prob[E i ] Prob[E E i ] ] = k i= Prob[E i] Prob[E E i ]. 3. Sei E = k i= E i, Prob[E i ] > 0 für alle i [, k] und Prob[E E i ] = Prob[E E j ] für alle i, j [, k], dann gilt Prob[E E] = Prob[E E ]. Als nächstes wollen wir noch auf die Begriffe Zufallsvariable und Erwartungswert eingehen. Definition 2 Reellwertige Zufallsvariable Eine (reellwertige) Zufallsvariable X über einem diskreten Wahrscheinlichkeitsraum (U, Prob) ist eine Funktion X : U R. Für ein x R bezeichnet Prob[X = x] die Wahrscheinlichkeit des Ereignisses E = { u U X(u) = x}. Untersuchen wir Ereignisse, die sich aus zwei oder mehreren Zufallsvariablen zusammensetzen, so spielt der Begriff der Unabhängigkeiten bzw. Abhängigkeiten zwischen den Ereignissen eine große Rolle. Wir definieren daher: Definition 3 Unabhängigkeit Zwei Zufallsvariablen X, X 2 nennen wir unabhängig, wenn Prob[X X 2 ] = Prob[X ] Prob[X 2 ] ist. Sind X, X 2 nicht unabhängig, so nennen wir sie abhängig. Definition 4 Erwartungswert einer Zufallsvariable Sei X eine Zufallsvariable über einem diskreten Wahrscheinlichkeitsraum (U, Prob), dann ist E[X] = x Prob[X = x] x X(U + ) der Erwartungswert von X, sofern die obige Reihe absolut konvergiert. Die Varianz von X definieren wir wie folgt: Var[X] = E[(X E[X]) 2 ]. 23

Eigenschaft 3 Seien X, X 2 zwei Zufallsvariablen deren Erwartungswerte existieren, dann gilt:. Für alle c R existiert der Erwartungswert von c X, und es gilt E[c X ] = c E[X ]. 2. Der Erwartungswert von X + X 2 existiert, und es gilt E[X + X 2 ] = E[X ] + E[X 2 ]. 3. Sind X, X 2 unabhängig, so existiert der Erwartungswert E[X X 2 ], und es gilt E[X X 2 ] = E[X ] E[X 2 ]. Eine Eigenschaft des Erwartungswerts, welche im Folgenden von großer Bedeutung sein wird, ist: Eigenschaft 4 Linearität des Erwartungswerts Seien X,..., X k Zufallsvariablen und h : R k R eine lineare Funktion, dann gilt E[h(X,..., X k )] = h(e[x ],..., E[X k ]). 3.2 Kommunikationskanäle Soll ein Quellensymbol über einen Kanal mit Hilfe eines Codes übertragen werden, so ist ein Code, dessen Codealphabet mehr Zeichen besitzt als wir über den Kanal übertragen können nur von geringem Nutzen. Wir werden daher im Folgenden annehmen, dass das Codealphabet mit dem Kanalalphabet übereinstimmt. Um den Übertragungsfehler eines Kanals zu bestimmen, bedienen wir uns der Bedingtenwahrscheinlichkeit P [a j empfangen a i gesendet] für a i, a j Σ. Definition 5 Ein (Kommunikations-)Kanal besteht aus einem endlichen Kanalalphabet Σ = {a 0,..., a r } und einer Menge P von Übertragungswahrscheinlichkeiten, P [a j empfangen a i gesendet], wobei für alle a i Σ gilt r P [a j empfangen a i gesendet] = j=0 Aus der obigen Definition können wir zwei grundsätzliche Eigenschaften der hier betrachteten Kanäle ableiten:. Kanäle ändern sich nicht mit der Zeit. 2. Ein Kanal kann keine Symbole verlieren. Neben der oben angegebenen vorwärts gerichteten Übertragungswahrscheinlichkeit können wir noch die rückwärts gerichtete Übertragungswahrscheinlichkeit betrachten: P [a i gesendet a j empfangen]. Neben den oben beschriebenen Eigenschaften wollen wir zudem annehmen, dass die betrachteten Kanäle gedächtnislos sind, d.h.: 24

Definition 6 Ein Kanal heißt gedächtnislos, wenn für alle Zeichenketten c, x Σ n mit c = c... c n und x = x... x n gilt: P [x empfangen c gesendet] = n i= P [x i empfangen c i gesendet], wobei P [x empfangen c gesendet] die Wahrscheinlichkeit ist, dass wir x (Zeichen für Zeichen) empfangen, wenn c gesendet wurde. Die Übertragungswahrscheinlichkeit ist folglich unabhängig von zuvor gesendeten Symbolen. Wir nennen P [x empfangen c gesendet] auch vorwärtsgerichtete Kanalwahrscheinlichkeit. Aufgabe 3 Geben Sie ein Shannon-Fano Codierungsschema (Σ, f) mit Σ = {0,, 2} für eine Quelle Q = ({s i i 8}, P ) mit P (s i ) = max{2 i, 2 7 } an. Aufgabe 4 Gegeben sei eine Quelle Q = (Γ, P ) mit Γ = {s 0, s, s 2 } und P (s 0 ) = 2, P (s ) = 4 sowie P (s 2 ) = 4. Bestimmen Sie H(Q). Gibt es ein Codierungsschema (C, f) für Q mit H(Q) = AveLen(C, f)? Aufgabe 5 Betrachten Sie den Kanal (Σ, P ) mit P [a i empfangen a j gesendet] = P [a i empfangen a k gesendet] für alle a i, a j, a k Σ. Zeigen Sie, dass dieser Kanal keine sinnvolle Decodierung nach der Übertragung erlaubt. Definition 7 Einen Kanal nennen wir symmetrisch mit Fehlerwahrscheinlichkeit p, wenn für alle a i, a j Σ gilt: P [a i empfangen a j gesendet] = { p für ai = a j p r für a i a j. p nennen wir aus Crossover-Wahrscheinlichkeit. Neben den Kanälen, welche ein Codesymbol nur in ein anderes Codesymbol übertragen, und die es daher dem Code überlassen zwischen fehlerhaften und korrekten Symbolen zu unterscheiden, spielen auch sogenannte Erasure-Kanäle eine gewisse Rolle. Ein Kanal ist ein Erasure-Kanal, wenn das Kanalalphabet ein Sondersymbol beinhaltet, welches einen Fehler signalisiert. Ein binärer Erasure- Kanal ist über einem ternären Alphabet {0,,?} definiert, wobei für a i = a j =? q für a P [a i empfangen a j gesendet] = i = a j? p für a i =? a j q p für? a i a j?. 25