Codierung, Codes (variabler Länge)

Ähnliche Dokumente
15 Optimales Kodieren

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

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

Codierungstheorie Rudolf Scharlau, SoSe

CODIERUNGSTHEORIE KURS ZELL AN DER PRAM, FEBRUAR 2005

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

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

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

Anmerkungen zur Übergangsprüfung

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

Theoretische Grundlagen der Informatik WS 09/10

WS 2009/10. Diskrete Strukturen

Also kann nur A ist roter Südler und B ist grüner Nordler gelten.

a n auf Konvergenz. Berechnen der ersten paar Folgenglieder liefert:

ERGÄNZUNGEN ZUR ANALYSIS II MITTELWERTSATZ UND ANWENDUNGEN

1. Man schreibe die folgenden Aussagen jeweils in einen normalen Satz um. Zum Beispiel kann man die Aussage:

Grundbegriffe der Informatik

Mathematik für Information und Kommunikation

Primzahlen und RSA-Verschlüsselung

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

6. Bayes-Klassifikation. (Schukat-Talamazzini 2002)

6.2 Perfekte Sicherheit

1 topologisches Sortieren

7 Rechnen mit Polynomen

Lineargleichungssysteme: Additions-/ Subtraktionsverfahren

Informationsblatt Induktionsbeweis

4 Greedy-Algorithmen (gierige Algorithmen)

Abituraufgabe zur Stochastik, Hessen 2009, Grundkurs (TR)

15.3 Bedingte Wahrscheinlichkeit und Unabhängigkeit

Der Zwei-Quadrate-Satz von Fermat

9.2. DER SATZ ÜBER IMPLIZITE FUNKTIONEN 83

50. Mathematik-Olympiade 2. Stufe (Regionalrunde) Klasse Lösung 10 Punkte

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

WS 2013/14. Diskrete Strukturen

Grundlagen der Technischen Informatik. 2. Übung

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

A1.7: Entropie natürlicher Texte

Zeichen bei Zahlen entschlüsseln

Zahlen und das Hüten von Geheimnissen (G. Wiese, 23. April 2009)

Lenstras Algorithmus für Faktorisierung

2.11 Kontextfreie Grammatiken und Parsebäume

Würfelt man dabei je genau 10 - mal eine 1, 2, 3, 4, 5 und 6, so beträgt die Anzahl. der verschiedenen Reihenfolgen, in denen man dies tun kann, 60!.

Beispiel Zusammengesetzte Zufallsvariablen

Outlook. sysplus.ch outlook - mail-grundlagen Seite 1/8. Mail-Grundlagen. Posteingang

Fachschaft Mathematik und Informatik (FIM) LA I VORKURS. Herbstsemester gehalten von Harald Baum

Einführung. Vorlesungen zur Komplexitätstheorie: Reduktion und Vollständigkeit (3) Vorlesungen zur Komplexitätstheorie. K-Vollständigkeit (1/5)

3. LINEARE GLEICHUNGSSYSTEME

Einführung in die Kodierungstheorie

Grundlagen der Theoretischen Informatik, SoSe 2008

Mathematischer Vorbereitungskurs für Ökonomen

Kapiteltests zum Leitprogramm Binäre Suchbäume

V 2 B, C, D Drinks. Möglicher Lösungsweg a) Gleichungssystem: 300x y = x + 500y = 597,5 2x3 Matrix: Energydrink 0,7 Mineralwasser 0,775,

3 Quellencodierung. 3.1 Einleitung

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

Absolute Stetigkeit von Maßen

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


Teil III: Routing - Inhalt I. Literatur. Geometric Routing. Voraussetzungen. Unit Disk Graph (UDG) Geometric Routing 29

Binäre Bäume. 1. Allgemeines. 2. Funktionsweise. 2.1 Eintragen

Einführung in die Algebra

Satz. Für jede Herbrand-Struktur A für F und alle t D(F ) gilt offensichtlich

! " # $ " % & Nicki Wruck worldwidewruck

1. Weniger Steuern zahlen

Professionelle Seminare im Bereich MS-Office

4. Mathematik Olympiade 2. Stufe (Kreisolympiade) Klasse 8 Saison 1964/1965 Aufgaben und Lösungen

Folge 19 - Bäume Binärbäume - Allgemeines. Grundlagen: Ulrich Helmich: Informatik 2 mit BlueJ - Ein Kurs für die Stufe 12

Übung 13: Quellencodierung

Unterrichtsmaterialien in digitaler und in gedruckter Form. Auszug aus: Übungsbuch für den Grundkurs mit Tipps und Lösungen: Analysis

Bestimmung einer ersten

Was meinen die Leute eigentlich mit: Grexit?

Lineare Gleichungssysteme

Vorlesung Diskrete Strukturen Graphen: Wieviele Bäume?

Numerische Verfahren und Grundlagen der Analysis

Datenstrukturen & Algorithmen

Tangentengleichung. Wie lautet die Geradengleichung für die Tangente, y T =? Antwort:

Physik & Musik. Stimmgabeln. 1 Auftrag

1. Formale Sprachen 1.2 Grammatiken formaler Sprachen

Einfügen von Bildern innerhalb eines Beitrages

Grammatiken. Einführung

1 Mathematische Grundlagen

Welche Bereiche gibt es auf der Internetseite vom Bundes-Aufsichtsamt für Flugsicherung?

Analysis I für Studierende der Ingenieurwissenschaften

Ohne Fehler geht es nicht Doch wie viele Fehler sind erlaubt?

0, v 6 = , v 4 = span(v 1, v 5, v 6 ) = span(v 1, v 2, v 3, v 4, v 5, v 6 ) 4. span(v 1, v 2, v 4 ) = span(v 2, v 3, v 5, v 6 )

Dow Jones am im 1-min Chat

Eigenwerte und Eigenvektoren von Matrizen

Motivation. Formale Grundlagen der Informatik 1 Kapitel 5 Kontextfreie Sprachen. Informales Beispiel. Informales Beispiel.

Orientierungstest für angehende Industriemeister. Vorbereitungskurs Mathematik

Nachtrag zu binären Suchbäumen

Kapitel 5: Dynamisches Programmieren Gliederung

Formale Sprachen. Der Unterschied zwischen Grammatiken und Sprachen. Rudolf Freund, Marian Kogler

Objektorientierte Programmierung für Anfänger am Beispiel PHP

Lichtbrechung an Linsen

Basis und Dimension. Als nächstes wollen wir die wichtigen Begriffe Erzeugendensystem und Basis eines Vektorraums definieren.

Bevor lineare Gleichungen gelöst werden, ein paar wichtige Begriffe, die im Zusammenhang von linearen Gleichungen oft auftauchen.

Anleitung über den Umgang mit Schildern

Alle gehören dazu. Vorwort

Division Für diesen Abschnitt setzen wir voraus, dass der Koeffizientenring ein Körper ist. Betrachte das Schema

Wie löst man Mathematikaufgaben?

Transkript:

Codierung, Codes (variabler Länge) A = {a, b, c,...} eine endliche Menge von Nachrichten (Quellalphabet) B = {0, 1} das Kanalalphabet Eine (binäre) Codierung ist eine injektive Abbildung Φ : A B +, falls die Fortsetzung zu einem Homomorphismus Φ : A B : a 1 a 2... a n Φ(a 1 )Φ(a 2 )... Φ(a n ) ebenfalls injektiv ist, d.h. (UD) für jedes w B gibt es höchstens ein a A mit Φ(a) = w (Decodierbedingung, unique decipherability) Die Menge Φ(A) = {Φ(a), Φ(b), Φ(c),...} der Codewörter wird dann als Code bezeichnet

Beispiele a 00 b 01 Φ 1 : c 10 d 11 a 0 b 111 Φ 2 : c 110 d 101 a 01 b 011 Φ 3 : c 110 d 101 Φ 1 ist Codierung mit konstanter Länge ( Blockcode ) Φ 1 (abadc) = 00 01 00 11 10 = 0001001110 Φ 2 ist Codierung mit variabler Länge Φ 2 (abadc) = 0 111 0 101 110 = 01110101110 Φ 3 ist keine Codierung! Φ 3 (bda) = 011 101 01 = 01110101 = 01 110 101 = Φ 3 (acd)

Präfixeigenschaft (PP) Eine Codierung Φ (ein Code Φ(A)) hat die Präfix-Eigenschaft (oder: ist ein Präfixcode), wenn gilt: (PP) Kein Codewort ist Präfix eines anderen Codewortes Φ 1 (und allgemein alle Codes konstanter Länge) sowie Φ 2 haben die (PP), für die Abbildung Φ 3 gilt (PP) nicht. Offensichtlich: (PP) (UD), aber (UD) (PP). Zwei Beispiele mit A = {a, b, c, d, e}: a 0 a 00 b 100 Φ 4 : c 1010 d 1011 e 11 b 101 Φ 5 : c 010 d 001 e 11 Φ 4 hat (PP), Φ 5 hat (UD), aber nicht (PP).

Präfixcodes und binäre Bäume Präfixcodes sind binäre Bäume in einem erweiterten Sinn: innere Knoten können einen (rechten oder linken) oder zwei (rechten und linken) Nachfolger haben. d c b a 1 0 1 0 1 0 Φ 1 a b c d 1 0 1 0 1 0 1 Φ 2 a e b c d 1 1 0 0 1 0 0 1 Φ 4

Vergleich von Codierungen Vergleiche die Codierungen Φ 4 und Φ 5 : Φ 4 Φ 5 aaaea 000110 0000001100 abaedbc 0100011101110101011 0010001100101010 Welche Codierung besser? Das hängt davon ab, mit welchen Wahrscheinlichkeiten die Quellsymbole a, b, c, d, e vorkommen!

Quellen Eine Quelle Q = A, p ist ein Paar, bestehend aus einem Quellalphabet A = {a, b, c,...} einer Wahrscheinlichkeitsverteilung p = (pa, p b, p c,...) auf A. Für Codierungen Φ : A {0, 1} + einer Quelle Q = A, p ist µ(q, Φ) = x A p x Φ(x) mittlere oder erwartete Codewortlänge des Codes C = Φ(A)

Mittlere Codewortlänge und Höhe von Binärbäumen Für Präfixcodes gilt: mittlere Codewortlänge gewichtete mittlere Höhe des entsprechenden Binärbaumes (im erweiterten Sinn) Diese Größe ist ein Maß dafür, welche Kompression bei Codierung mit diesem Code erreicht wird

Beispiel Q = A, p mit A = {a, b, c, d} und p = (p a, p b, p c, p d ) = (0.9, 0.05, 0.025, 0.025) Φ 1 : a 00, b 01, c 10, d 11 µ(q, Φ 1 ) = 0.9 2 + 0.05 2 + 0.025 2 + 0.025 2 = 2 Φ2 : a 0, b 111, c 110, d 101 µ(q, Φ 2 ) = 0.9 1 + 0.05 3 + 0.025 3 + 0.025 3 = 1.2

Beispiel Q = A, q mit A = {a, b, c, d} und q = (q a, q b, q c, q d ) = (0.35, 0.25, 0.25, 0.15) Φ 1 : a 00, b 01, c 10, d 11 µ(q, Φ 1 ) = 0.35 2 + 0.25 2 + 0.25 2 + 0.15 2 = 2 Φ2 : a 0, b 111, c 110, d 101 µ(q, Φ 2 ) = 0.35 1 + 0.25 3 + 0.25 3 + 0.15 3 = 2.3

Shannons Erkenntnis Bei gegebener Quellverteilung p = (p a, p b, p c,...) ist die Entropie H(p) ein Maß dafür, welche Kompression (mittlere gewichtete Wortlänge) durch geeignete Codierung (annähernd) erreicht werden, aber bei keiner Codierung unterschritten werden kann

Wichtige Anmerkungen Für optimale Codierung kann man sich auf die Verwendung von (echten) Binärbäumen beschränken Präfixcodes lassen sich online decodieren, bei Codes ohne (PP) geht das i.a. nicht Verwendung von (UD)-Codes, die nicht die (PP) haben, kann die Situation bezüglich Kompression nicht verbessern, denn es gilt der Satz von Macmillan: Zu jeder Quelle Q = A, p und zu jedem (UD)-Code Φ(A) gibt es einen (PP)-Code Ψ(A) mit µ(q, Φ) = µ(q, Ψ) Die Konstruktion optimaler Präfixcodes leistet ein Verfahren von Huffman

Existenz von Präfixcodes: Ungleichung von Kraft Notwendig und hinreichend für die Existenz eines binären Präfixcodes {w 1, w 2,..., w n } B mit Wortlängen w k = l k (1 k n) ist 1 k n 2 l k 1 Beachte: ist t ein Binärbaum (im ursprünglichen Sinn), so gilt immer 2 h(b,t) = 1 b E(t)

Beweis der Ungleichung von Kraft Die Bedingung ist notwendig, denn existiert ein solcher Präfixcode und ist l n = max 1 k n l k, so gilt die Wortmengen w k B ln l k B ln (1 k n) wegen (PP) paarweise disjunkt und daher 2 ln l k 2 ln 1 k n

Beweis der Ungleichung von Kraft Die Bedingung ist hinreichend (mittels Induktion über n): Für n = 1 bzw. n = 2 leisten {0 l1 } bzw. {0 l1, 1 l2 } das Gewünschte Sei die Behauptung für n > 1 bewiesen und genügen die 1 l 1... l n l n+1 der Ungleichung von Kraft. Dann gilt die Ungleichung von Kraft auch für die n + 1 Zahlen l 1, l 2,..., l n 1, l n, l n und wegen 2 ln + 2 ln = 2 (ln 1) auch für die n Zahlen Es existiert also ein Präfixcode l 1, l 2,..., l n 1, l n 1. {w 1, w 2,..., w n } mit w k = l k (1 k < n) und w n = l n 1. Der Präfixcode leistet das Verlangte {w 1, w 2,..., w n 1, w n 0, w n 1 ln+1 ln+1 }

Beispiel zur Ungleichung von Kraft Wortlängen Code 2, 3, 3, 3, 5, 7 {00, 010, 110, 111, 01110, 0111111} 2, 3, 3, 3, 4 {00, 010, 110, 111, 0111} 2, 2, 3, 3 {00, 01, 110, 111} 2, 2, 2 {00, 01, 11} 1, 2 {0, 11} 0 {ɛ}

Shannons Quellcodierungstheorem: die obere Schranke Q = A, p Quelle mit Alphabet A = {a 1,..., a n } und Wkeiten p = (p 1, p 2,..., p n ) (o.e. p k > 0 (1 k n)) aus l k = log p k (1 k n) folgt log p k l k < 1 log p k (1 k n) und somit aus der linken Ungleichung 2 l k 1 1 k n aus Kraft es existiert ein Präfixcode Φ : A {w 1, w 2,..., w n } : a i w i (1 i n) mit den Wortlängen w k = l k = 2 log p k (1 k n) Abschätzung für die mittlere Wortlänge dieses Codes aus der rechten Ungleichung µ(q, Φ) = p k l k < p k (1 log p k ) = 1 + H(p) 1 k n 1 k n

Optimale Codierungen Eine optimale Codierung Φ für eine Quelle Q = A, p liegt vor, wenn µ(q, Φ) = min{ µ(q, Ψ) ; Ψ Codierung für Q } Das Theorem von Shannon garantiert für optimales Φ H(p) µ(q, Φ) < 1 + H(p) Die Konstruktion eines optimalen Φ kann mit Hilfe eines greedy -Algorithmus ausgeführt werden, der sich am Beweis der Ungleichung von Kraft orientiert

Eigenschaften optimaler Codierungen Ist Q = A, p ein Quelle mit A 2 und Φ eine optimale Codierung für Q, so gilt: Für a, b A mit p a > p b ist Φ(a) Φ(b) Begründung Gibt es a, b A mit pa > p b und Φ(a) > Φ(b), so kann man die Codierungen von a und b vertauschen: a Φ(b) Ψ : b Φ(a) c Φ(c) (c A \ {a, b}) und damit die mittlere Codewortlänge verkleinern: µ(q, Ψ) = µ(q, Φ) p a ( Φ(a) Ψ(a) ) p b ( Φ(b) Ψ(b) ) = µ(q, Φ) (p a p b ) ( Φ(a) Φ(b) ) } {{ } >0

Eigenschaften optimaler Codierungen Ist Φ optimale Codierung für Q, so kann man annehmen (d.h., durch Umordnung erreichen), dass es Symbole a, b A mit minimalen Wahrscheinlichkeiten p a, p b gibt, d.h. p a, p b min p c, c A\{a,b} die als Geschwister codiert sind, d.h. es gibt ein w {0, 1} mit Φ(a) = w 0 und Φ(b) = w 1 Begründung Knoten auf dem höchsten Niveau eines Binärbaumes (im engeren Sinne) treten immer als Geschwisterpaare auf Durch Umordung der Wahrscheinlichkeiten auf dem höchsten Niveau kann man die angegebene Situation erreichen, ohne die mittlere Wortlänge zu ändern

Fusion einer Quelle Q = A, p Quelle mit A 2 a, b A zwei Quellsymbole die durch Fusion der Quellsymbolen A und b entstehende Quelle Q = A, p wird definiert durch: Q = A, p A = \ {a, b}) {α} (A { p x = p x für x A \ {a, b} p a + p b für x = α

Fusion und optimale Codes Φ (strikter) Präfixcode für Q Φ(a) und Φ(b) Geschwister, d.h. Φ(a) = w 0, Φ(b) = w 1 für ein w {0, 1} Φ definiert durch Φ : A {0, 1} + : { x Φ(x) α w, für x A \ {a, b}, Φ ein (strikter) Präfixcode für Q

Fusion und optimale Codes Φ ein (strikter) Präfixcode für Q Φ definiert durch x Φ (x) Φ : A {0, 1} + : a Φ (α) 0, b Φ (α) 1, für x A \ {a, b}, Φ ein (strikter) Präfixcode für Q, bei dem Φ(a) und Φ(b) Geschwister sind

Fusion und optimale Codes Für die mittleren Codewortlängen gilt dabei µ(q, Φ) µ(q, Φ ) = p a Φ(a) + p b Φ(b) p α Φ (α) = p a Φ(a) + p b Φ(b) (p a + p b ) ( Φ(a) 1) = p a + p b = p α.

Fusion und optimale Codes Entsteht die Quelle Q = A, p aus der Quelle Q = A, p durch Fusion zweier Symbole a, b A mit minimalen Wahrscheinlichkeiten p a, p b, so gilt (mit dem obigen Zusammenhang zwischen Φ und Φ ): Φ optimal für Q Φ optimal für Q Diese Aussage erlaubt die rekursive Konstruktion optimaler Präfixcodes

Schema der Huffman-Konstruktion Dabei ist Q (2) Q (3) Q (n 1) Q (n) = Q Φ (2) Φ (3) Φ (n 1) Φ (n) = Φ Q (k) : Quelle mit k Symbolen Φ (k) : optimaler Präfixcode für Q (k) Q (k 1) Q (k) : Fusion von zwei Symbolen mit minimaler Wahrscheinlichkeit Φ (k 1) Φ (k) : Konstruktion entlang Umkehrung der Fusion Q (2) = {a, b}, (p a, p b ) Φ (2) = a 0, b 1

Huffman-Konstruktion (mit Symbolhäufigkeiten statt Wkeiten) Q (4) Q (5) Q (6) a 9 10 b 8 11 cdf 10 01 e 15 00 Q (3) Φ (4) ab 17 1 cdf 10 01 e 15 00 Φ (5) a 9 10 b 8 11 c 5 010 df 5 011 e 15 00 Q (2) Φ (3) Φ (2) ab 17 1 cdef 25 0 Φ (6) a 9 10 b 8 11 c 5 010 d 3 0110 e 15 00 f 2 0111 Beachte: µ(q (6), Φ (6) ) = 9 2 + 8 2 + 5 3 + 3 4 + 15 2 + 2 4 42 5 + 10 + 17 + 25 = + 1 = 99 42 42 = 2.35714284... H( 9 42, 8 42, 5 42, 3 42, 15 42, 2 42 ) = 2.309050472...

bottom-up-konstruktion Quelle Q = A, p mit A = n mit p = (p 1,..., p n ) Man konstruiert eine Folge F (n), F (n 1),..., F (3), F (2), F (1), wobei jedes F (k) = { (t (k) 1, g 1),..., (t (k) k, g k ) } ein Wald von k gewichteten Binärbäumen ist Dabei ist g 1 g 2... g k und g 1 + + g k = 1. Das Gewicht eines gewichteten Binärbaumes ist die Summe der Gewichte seiner Blätter unter der Bewertung

Die Konstruktion startet mit F (n) = {(, p 1 ),..., (, p n )} Der Konstruktionsschritt F (k) F (k 1) fusioniert die beiden Bäume aus F (k) mit dem geringsten Gewicht: ( F (k 1) = F (k) \ { (t (k) k 1, g k 1), (t (k) k, g k ) }) (s, h) wobei s =, t (k) k 1, t(k) k, h = g k 1 + g k Die Bäume in F (k 1) sind noch nach ihrem Gewicht zu ordnen F (1) = {t (1) 1 } ist ein Baum und dies ist der Huffman-Code

Beispiel e / 15 a / 9 b / 8 c / 5 d / 3 f / 2 25 17 e / 15 10 a / 9 b / 8 e / 15 a / 9 b / 8 c / 5 5 c / 5 5 d / 3 f / 2 d / 3 f / 2 e / 15 10 a / 9 b / 8 42 c / 5 5 25 17 d / 3 f / 2 e / 15 10 a / 9 b / 8 e / 15 17 10 c / 5 5 a / 9 b / 8 c / 5 5 d / 3 f / 2 d / 3 f / 2

Komplexität der Huffman-Konstruktion Die Information über die Baum-Gewichte g j kann man in einer priority queue organisieren! Diese Queue kann man als minimum-heap implementieren Der Aufbau des heaps kostet O(n) Aufwand Die n 1 Konstruktionsschritte erfordern heap-operationen (2 deletemin, 1 reheap) mit einem Aufwand von jeweils O(log n) Der Gesamtaufwand (an Vergleichsoperationen) ist somit O(n log n)

Einige weiterführende Bemerkungen Huffmans Konstruktion ist ein klassischer greedy-algorithmus Weitere bekannte greedy-algorithmen Zahldarstellung in Positionssystemen Minimale Gerüste (Spannbäume) (Kruskal, Prim) Kürzeste Wege (Dijkstra) Knapsack ( fractional ) greedy gehört mit divide-and-conquer, dynamic programming, backtracking mit branch-and-bound, randomization zu den fundamentalen algorithmischen Prinzipien Typische für greedy: optimale Lösungen von Teilproblemen lassen sich immer zu global-optimalen Lösungen fortsetzen greedy kann man nicht immer einsetzen, aber wenn ja, ist es sehr effizient! Man kann genau charakterisieren, in welchen Situationen greedy funktioniert (das führt auf den Begriff der Matriode ).