h = 1 7 ( ) = 21 7 = 3

Ähnliche Dokumente
Codierung, Codes (variabler Länge)

Die mittlere Höhe eines Binärbaumes. h(t) = 1 e(t) mit E(t) = Menge der Blätter von t, h(b, t) = Höhe des Blattes b in t

3. Woche Information, Entropie. 3. Woche: Information, Entropie 45/ 238

Kapitel 7: Optimalcodierung und Huffman Coding

Informationsgehalt einer Nachricht

Definition Information I(p)

Informatik II, SS 2016

Definition Information I(p)

21. Greedy Algorithmen. Aktivitätenauswahl, Fractional Knapsack Problem, Huffman Coding Cormen et al, Kap. 16.1, 16.3

21. Dynamic Programming III

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

Informatik II, SS 2018

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

3 Codierung diskreter Quellen. Quelle Quellcodierer Kanalcodierer reduziert die benötigte Datenmenge. fügt Daten zur Fehlerkorrektur ein.

Vorlesung 15a. Quellencodieren und Entropie

Referat zum Thema Huffman-Codes

5. Vorrangwarteschlangen - Priority Queues

Proseminar Datenkompression Suchstrategien und Präfixcodes

Wir erinnern uns: Um eine Zufallsvariable mit N verschiedenen, gleichwahrscheinlichen Zuständen binär zu codieren, benötigen wir

Vorlesung 12. Quellencodieren und Entropie

2.7 Der Shannon-Fano-Elias Code

Einleitung. Kapitel 1

Information nachher = Unsicherheit vorher.

Effiziente Algorithmen und Komplexitätstheorie

Informatik II, SS 2014

Wann sind Codes eindeutig entschlüsselbar?

Kolmogoroffkomplexität Teil 3 Informationstheorie und Kodierung. Torsten Steinbrecher

Vollständige Induktion. Analysis I. Guofang Wang. Universität Freiburg

Grundlagen der Algorithmen und Datenstrukturen Kapitel 6

Kompression. Tim Kilian

Proseminar Online Algorithmen, Prof. Dr. Rolf Klein

Informatik II, SS 2016

Beispiel: Zeigen Sie, dass H(x) = H 0 = I gilt, wenn alle Zeichen gleichwahrscheinlich sind.

Algorithmen & Komplexität

(Prüfungs-)Aufgaben zur Codierungstheorie

Algorithmen und Datenstrukturen

Entropie. Um der Begriff der Entropie zu erläutern brauchen wir erst mal einige Definitionen, z.b.

Diskrete Mathematik II

Vorlesung 13b. Relative Entropie

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

Informatik II, SS 2018

5. Vorrangwarteschlangen (priority queues)

Stochastik I. Vorlesungsmitschrift

Abschnitt 18: Effizientes Suchen in Mengen

Algorithmen und Datenstrukturen (für ET/IT) Programm heute. Wintersemester 2012/13. Dr. Tobias Lasser. 7 Fortgeschrittene Datenstrukturen

Seminar Kompressionsalgorithmen Huffman-Codierung, arithmetische Codierung

Algorithmen und Datenstrukturen 2

Theoretische Grundlagen der Informatik. Vorlesung am 31. Januar INSTITUT FÜR THEORETISCHE INFORMATIK

Umgekehrt kann eine Datenbank-Instanz in eine konjunktive Anfrage umgewandelt werden: hasairport. ans. fly n 1 n 2 n 3 n 2 Bonn n 4.

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

Datenstrukturen und Algorithmen. Christian Sohler FG Algorithmen & Komplexität

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

Dynamisches Huffman-Verfahren

7. Sortieren Lernziele. 7. Sortieren

Die Höhe von binären Suchbäumen Ausarbeitung zum Seminar zu Stochastischen Rekursionsgleichungen im WS 2011/2012

Restricted Isometry Property und der Zusammenhang mit dem Johnson-Lindenstrauss Lemma

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

CODIERUNGSTHEORIE KURS ZELL AN DER PRAM, FEBRUAR 2005

Beweis: Annahme: T (n) c n, wobei c = c(m) konstant ist. Die Annahme ist ok, falls T (n)

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

Konstruktion reeller Zahlen aus rationalen Zahlen

Kap. 6.5: Minimale Spannbäume ff

Vorkurs Mathematik und Informatik Mengen, natürliche Zahlen, Induktion

Signale und Codes Vorlesung 4

Hallo Welt für Fortgeschrittene

Methoden für den Entwurf von Algorithmen

Kapitel 9: Informationstheorie. 2. Entropie

Algorithmen und Datenstrukturen (für ET/IT)

Top-down Bottom-up Divide & Conquer Dynamisches Programmieren Caching (Memoization) Branch-and-Bound Greedy

Aufgabe: Platz-effiziente Kompression von Textdaten

Algorithmen & Komplexität

Hrushovskis primordiales Amalgam

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 =.

Graphentheorie. Zufallsgraphen. Zufallsgraphen. Zufallsgraphen. Rainer Schrader. 23. Januar 2008

Vorlesung Datenstrukturen

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

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

1 Kürzeste Pfade in Graphen

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

Grundlagen der Algorithmen und Datenstrukturen Kapitel 12

Informatik II, SS 2018

6 Ü B E R S E T Z U N G E N U N D C O D I E R U N G E N. 6.1 von wörtern zu zahlen und zurück Dezimaldarstellung von Zahlen Num 10

Gierige Algorithmen Interval Scheduling

3. Minimale Spannbäume. Definition 99 T heißt minimaler Spannbaum (MSB, MST) von G, falls T Spannbaum von G ist und gilt:

Informatik II, SS 2016

Isomorphie von Bäumen

Prof. Dr. H. Brenner Osnabrück SS Analysis II. Vorlesung 50. Hinreichende Kriterien für lokale Extrema

Einführung in die Logik

i Der Informatinonsgehalt ist also intuitiv umgekehrt proportional der Auftritswahrscheimlichkeit.

Diskrete Mathematik II

Fibonacci-Heaps und deren Anwendung

Gierige Algorithmen. Seminar Hallo Welt! für Fortgeschrittene. Daniel Ziegler Daniel Ziegler Gierige Algorithmen

Seminar Kolmogorovkomplexität. Universität Potsdam Wintersemester 2009/10

Die Ringe Z n. Invertierbare Elemente ( Einheiten ) für n > 0 wird auf Z n = {0, 1, 2,..., n 1} definiert: n : Z n Z n Z n : (a, b) (a b) mod n

19. Dynamic Programming I

Gierige Algorithmen. Seminar Hallo Welt! für Fortgeschrittene. Daniel Danner. 11. Juni Daniel Danner Gierige Algorithmen

Kapitel III Selektieren und Sortieren

19. Dynamic Programming I

Detaillierte Gliederung Algorithmen und Datenstrukturen (für ET/IT)

Transkript:

Zur mittleren Höhe von Binärbäumen mittlere Höhe von Binärbäumen Entropie gewichtete mittlere Höhe von Binärbäumen Quellcodierung, Datenkompression Shannons Theorem optimale Quellcodierung (Huffman) wobei t : Binärbaum h(t) = e(t) b E(t) h(b, t) E(t) : Menge der Blätter (external nodes) von t e(t) = E(t) : Anzahl der Blätter von t h(b, t) : Höhe des Blattes b in t 2 h(t) = + 5 7 h(t l) + 2 7 h(t r) = 3 t r h(t r ) = 2 ( + ) = 2 2 h = 7 (3 + 3 + 3 + 4 + 4 + 2 + 2) = 2 7 = 3 t l h(t l ) = 5 (2 + 2 + 2 + 3 + 3) = 2 5 3 4

Zusammenhang mit dem rekursiven Aufbau von Binärbäumen h( )= h(, t l, t r )= e(t) = e(t) b E(t) b E(t l ) = e(t l) + e(t r ) e(t) h(b, t) [h(b, t l ) + ] + b E(t r ) + e(t l) e(t) h(t l) + e(t r) e(t) h(t r) = + e(t l) e(t) h(t l) + e(t r) e(t) h(t r) [h(b, t r ) + ] Fundamentale Ungleichung für Binärbäume h(t) log e(t) folgt per Induktion über der rekursiven Aufbau h( )= = log h(, t l, t r )= + e(t l) e(t) h(t l) + e(t r) e(t) h(t r) + e(t l) e(t) log e(t l) + e(t r) e(t) log e(t r) = + e(t l) e(t) log e(t l) e(t) + e(t r) e(t) log e(t r) + log e(t) e(t) {z } H( e(t l ) e(t), e(t r ) e(t) ) = H( e(t l) e(t), e(t r) e(t) ) + log e(t) {z } 5 6 Dabei ist die Entropiefunktion H(x, x) = x log x ( x) log( x) Shannons Entropie X : Zufallsvariable, die endlich-viele Werte, z.b., 2,..., n annimmt p k = P [X = k] : Wahrscheinlichkeit für Eintreten des Ereignisses X = k also n p k ( k n) mit p k = k= Bezeichnung: p = p, p 2,..., p n Information(sgehalt) des Ereignisses X = k I[X = k] = log p k Entropie = Erwartungswert der Information n H(p) = H(p,..., p n ) = E(I, p) = p k log p k k= 7 8

Eigenschaften der Entropiefunktion. H(p,..., p n ) 2. H(p,..., p n ) = p k = δ i,k für ein i {,..., n} 3. H(p,..., p n ) wird maximal für die Gleichverteilung p =... = p n = n 4. H(p,..., p n ) ist invariant unter Permutation der Komponenten p k 5. H(p,..., p n, ) = H(p,..., p n ) 6. H(/n,..., /n) H(/(n + ),..., /(n + )) 7. H(p,..., p n ) ist stetige Funktion der Variablen p k 8. H(/mn,..., /mn) = H(/m,..., /m) + H(/n,..., /n) 9. für p,... p m und q,..., q n mit p + + p m = p, q + q n = q und p + q = gilt Bemerkung: Alle diese Eigenschaften ausgenommen vielleicht 3. (s.u.) lassen sich ausgehend von der Definition leicht nachrechnen. Was wichtiger ist: diese Eigenschaften erscheinen als plausible Forderungen, wenn man ausgeht von der intuitiven Vorstellung von der Entropie als dem Informationsgewinn beim Durchführen eines Experiments So beschreibt 8. das Verhalten bei der Kombination unabhängiger und gleichverteilter Experimente zu einem Produktexperiment und 9. bei der Ausführung eines Experiments in zwei Stufen. H(p,..., p m, q..., q n ) = H(p, q) + p H(p /p,..., p n /p) + q H(q /q,..., q n /q) 9 Zum Beweis der Eigenschaft 3. der Entropiefunktion: Folgende Aussage bezeichnet man in der Informationstheorie als key lemma : Für Wahrscheinlichkeitsverteilungen p = (p,..., p n ) und q = (q,..., q n ) gilt H(p,..., p n ) n p k log q k k= und es gilt = genau dann, wenn p = q. Als Konsequenz hat man, indem man für q die Gleichverteilung q =... = q n = n wählt: H(p,..., p n ) log n Beweis des key lemmas : Die Logarithmusfunktion ist konvex und es gilt daher ln x x (x > ) mit = genau dann, wenn x =. Also ist k n k n ln q k p k q k p k ( k n) p k ln q k p k p k ln q k k n k n q k p k ln p k k n p k = mit = genau dann, wenn p = q. 2

Theorem: Die Eigenschaften.-9. bestimmen die Entropiefunktion eindeutig (bis auf einen konstanten Faktor), d.h. Eine Funktion mit den Eigenschaften.-9. ist notwendig von der Form mit einer Konstanten c >. H(p,..., p n ) = c n p k log p k k= Binäre Bäume mit Gewichten (auf den Blättern) betrachten t, p wobei t : binärer Baum p = (p b ) b E(t) Wahrscheinlichkeitsverteilung auf den Blättern von t untersuchen Erwartungswert der Höhe der Blätter ( gewichtete mittlere Höhe, gewichtete externe Pfadlänge ) h(t, p) = p b h(b, t) b E(t) für den Fall der Gleichverteilung auf E(t) ist das gerade h(t) Erinnerung: h(t) log e(t) ( information theory bound ) 3 4 h(t ) = 3 h(t 2 ) = 4.4.4.2.2.2... h(t ) = 5 (2 + 3 + 3 + 2 + 2) = 2 5 h(t 2 ) = 5 ( + 3 + 4 + 4 + 2) = 4 5..2 h(t, p) =.4 2 +. 3 +. 3 +.2 2 +.2 2 = 2.2 h(t 2, p) =.4 +. 3 +. 4 +.2 4 +.2 2 = 2.3 5 6

Fundamentales Problem der Informationstheorie.6 wie klein kann h(t, p) bei gegebenem p gemacht werden, indem man den Binärbaum t geeignet wählt? Antwort: Shannons Quellcodierungstheorem.6... untere Schranke: für jeden gewichteten Binärbaum t, p gilt... H(p) h(t, p) obere Schranke: zu jeder WV p gibt es einen Binärbaum t mit.. h(t, p) < H(p) + h(t, q) =.6 2 +. 3 +. 3 +. 2 +. 2 = 2.2 h(t 2, q) =.6 +. 3 +. 4 +. 4 +. 2 =.9 7 8 Der Beweis für den ersten Teil (untere Schranke für h(t, p)) geht genauso wie der Beweis für log e(t) h(t) im Fall der Gleichverteilung. Sei t =, t l, t r Binärbaum mit Knotengewichten (p,..., p m ) auf E(t l ) = (b,..., b m ) (q,..., q n ) auf E(t r ) = (c,..., c n ) Dabei sind p = (p,..., p m, q,..., q n ) p l = (p /p,..., p m /p) mit p = p + + p m p r = (q /q,..., q n /q) mit q = q + + q n Wahrscheinlichkeitsverteilungen auf E(t) bzw. E(t l ) bzw. E(t r ). Dann gilt (Induktion!) h(t, p)= b E(t) = b E(t l ) = i m p b h(b, t) p b h(b, t) + c E(t r ) p i (h(b i, t l ) + ) + p c h(c, t) j n = p + q + p h(t l, p l ) + q h(t r, p r ) + p H(p l ) + q H(p r ) = H(p, q) +H(p) H(p) }{{} wegen Eigenschaften 3. und 9. der Entropiefunktion. q j (h(c j, t r ) + ) 9 2

(Verlustfreie) Datenkompression durch Quellcodierung mit variabler Länge A = {a, b, c,...} : endliche Menge von Nachrichten (Quellalphabet) {, } : Kanalalphabet (binäre) Codierung ist injektive Abbildung Φ : A {, } + fortgesetzt zu Homomorphismus Φ : A {, }, falls die Decodierbedingung (unique decipherability) erfüllt ist: (UD) für jedes w {, } gilt Φ (w) Φ(A) = {Φ(a), Φ(b), Φ(c),...} : Menge der Codewörter, Code Beispiele (A = {a, b, c, d}) a a a b b b Φ : Φ 2 : Φ 3 : c c c d d d Φ : Codierung mit konstanter Länge Φ (abadc) = = Φ 2 : Codierung mit variabler Länge Φ 2 (abadc) = = Φ 3 : keine Codierung! Φ 3 (bda) = = = = Φ 3 (acd) 2 22 Eine Codierung Φ (ein Code Φ(A)) hat die Präfix-Eigenschaft (ist ein Präfixcode), wenn gilt: (PP) kein Codewort ist Präfix eines anderen Codewortes Φ (und allgemein alle Codes konstanter Länge) sowie Φ 2 haben die (PE), die Abbildung Φ 3 nicht es gilt offensichtlich: (PP) (UD), aber (UD) (PP) Beispiele (A = {a, b, c, d, e}) a b Φ 4 : c d e a b Φ 5 : c d e 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 a Φ b c d a Φ 2 d c b a b Φ 4 c d e Φ 4 hat (PP), Φ 5 hat (UD), aber nicht (PP) 23 24

Vergleich von Codierungen Datenkompression Φ 4 Φ 5 aaaea abaedbc Welche Codierung ist besser? Das hängt davon ab, mit welchen Wahrscheinlichkeiten die Quellsymbole a, b, c, d, e vorkommen! Eine Quelle Q = A, p ist ein Paar, bestehend aus einem Quellalphabet A = {a, b, c,...} einer Wahrscheinlichkeitsverteilung p = (p a, p b, p c,...) auf A. Für Codierungen Φ : A {, } + einer Quelle Q = A, p ist µ(q, Φ) = p x Φ(x) x A mittlere oder erwartete Codewortlänge des Codes C = Φ(A). Für Präfixcodes: mittlere Codewortlänge = gewichtete mittlere Höhe des entsprechenden Binärbaumes (im erweiterten Sinn) 25 26 Beispiel Q = A, p mit A = {a, b, c, d} und p = (p a, p b, p c, p d ) = (.9,.5,.25,.25) Φ : a, b, c, d µ(q, Φ ) =.9 2 +.5 2 +.25 2 +.25 2 = 2 Φ 2 : a, b, c, d µ(q, Φ 2 ) =.9 +.5 3 +.25 3 +.25 3 =.2 Beispiel Q = A, q mit A = {a, b, c, d} und q = (q a, q b, q c, q d ) = (.35,.25,.25,.5) Φ : a, b, c, d µ(q, Φ ) =.35 2 +.25 2 +.25 2 +.5 2 = 2 Φ 2 : a, b, c, d µ(q, Φ 2 ) =.35 +.25 3 +.25 3 +.5 3 = 2.3 Folgerung (Shannon): Bei gegebener Quellverteilung p = (p a, p b, p c,...) gibt die Entropie H(p) ein Maß dafür an, welche Kompression (mittlere Wortlänge) bei keiner Codierung unterschritten werden kann. Bemerkungen: für optimale Codierung kann man sich auf die Verwendung von (echten) Binärbäumen beschränken Präfixcodes lassen sich online decodieren Codes ohne (PP) lassen sich i.a. nicht online decodieren Verwendung von (UD)-Codes, die nicht die (PP) haben, kann die Situation nicht verbessern: zu jeder Quelle Q = A, p und zu jedem (UD)-Code Φ(A) gibt es einen (PP)-Code Ψ(A) mit µ(q, Φ) = µ(q, Ψ) (Satz von Macmillan) Konstruktion optimaler Präfixcodes: Verfahren von Huffman 27 28

Existenz von Präfix-Codes mit gegebenen Wortlängen l, l 2,..., l n Es existiert ein Präfixcode {w, w 2,..., w n } {, } mit Wortlängen w k = l k ( k n) genau dann, wenn 2 l k k n (Ungleichung von Kraft) Beachte: ist t ein Binärbaum (im ursprünglichen Sinn), so gilt immer 2 h(b,t) = b E(t) Beweis der Ungleichung von Kraft (notwendig): Es sei l n = max k n l k. Die Wortmengen w k {, } l n l k {, } l n ( k n) sind wegen (PP) paarweise disjunkt, deshalb 2 l n l k 2 l n k n 29 3 Für n = bzw. n = 2 leisten { l } bzw. { l, l 2 } das Gewünschte Sei die Behauptung für n > bewiesen. l... l n l n+ genüge der Ungleichung von Kraft. Beispiel zu Ungleichung von Kraft Die gilt dann auch für die n + Zahlen l, l 2,..., l n, l n, l n und wegen 2 l n + 2 l n = 2 (ln ) auch für die n Zahlen l, l 2,..., l n, l n Es existiert also ein Präfixcode {w, w 2,..., w n } mit w k = l k ( k < n) und w n = l n Der Präfixcode {w, w 2,..., w n, w n, w n l n+ l n + } Wortlängen Code 2, 3, 3, 3, 5, 7 {,,,,, } 2, 3, 3, 3, 4 {,,,, } 2, 2, 3, 3 {,,, } 2, 2, 2 {,, }, 2 {, } {ɛ} leistet das Verlangte. 3 32

Beweis des Theorems von Shannon (obere Schranke) Q = A, p : Quelle mit A = {a,..., a n }, p = (p, p 2,..., p n ), wobei p k > ( k n). Mit sei l k = log p k ( k n) log p k l k < log p k ( k n) Eine Abschätzung für die mittlere Wortlänge dieses Codes ergibt sich aus der rechten Ungleichung und somit (linke Ungleichung) Es existiert also ein Präfixcode k n 2 l k µ(q, Φ) = p k l k < p k ( log p k ) = + H(p) k n k n Φ : A {w, w 2,..., w n } : a i w i ( i n) mit Wortlängen w k = l k = 2 log p k ( k n) 33 34 Konstruktion optimaler (Präfix-)Codes (Huffman) optimale Codierung Φ für eine Quelle Q = A, p µ(q, Φ) = min{ µ(q, Ψ) ; Ψ Codierung für Q } Das Theorem von Shannon garantiert für optimales Φ: H(p) µ(q, Φ) < + H(p) Die Konstruktion eines optimalen Φ kann mit Hilfe eines greedy -Algorithmus ausgeführt werden, der sich am Beweis der Ungleichung von Kraft orientiert Für eine Quelle Q = A, p mit A 2 gilt: ist Φ optimal für Q und sind a, b A mit p a > p b, so ist Φ(a) Φ(b) Begründung: andernfalls könnte man die Codierungen von a und b vertauschen, d.h. a Φ(b) Ψ : b Φ(a) c Φ(c) (c A \ {a, b}) und damit die mittlere Codelänge verkleinern: µ(q, Ψ) = µ(q, Φ) p a ( Φ(a) Ψ(a) ) p b ( Φ(b) Ψ(b) ) = µ(q, Φ) (p a p b ) ( Φ(a) Φ(b) ) }{{} > ist Φ optimal für Q, so ist der Code Φ(A) ein Binärbaum (im strikten Sinn) 35 36

ist Φ optimal 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 {, } mit Φ(a) = w und Φ(b) = w 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 von Quellsymbolen a, b A: Q = A, p A = (A \ {a, b}) {α} p p x für x A \ {a, b} x = p a + p b für x = α Q = A, p 37 38 Φ (strikter) Präfixcode für Q, bei dem Φ(a) und Φ(b) Geschwister sind, d.h. Φ(a) = w, Φ(b) = w für ein w {, } Φ : A {, } + x Φ(x) für x A \ {a, b} : α w Φ (strikter) Präfixcode für Q Φ (strikter) Präfixcode für Q x Φ (x) für x A \ {a, b} Φ : A {, } + : a Φ (α) b Φ (α) Φ (strikter) Präfixcode für Q, bei dem Φ(a) und Φ(b) Geschwister sind hierbei gilt Folgerung µ(q, Φ) µ(q, Φ ) = p a Φ(a) + p b Φ(b) p α Φ (α) = p a Φ(a) + p b Φ(b) (p a + p b ) ( Φ(a) ) = p a + p b = p α 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. 39 4

Realisierung dieser Idee Q (2) Q (3) Q (n ) Q (n) = Q Φ (2) Φ (3) Φ (n ) Φ (n) = Φ Dabei Q (k) : Quelle mit k Symbolen Φ (k) : optimaler Präfixcode für Q (k) Q (k ) Q (k) : Fusion von zwei Symbolen mit minimaler W.keit Φ (k ) Φ (k) : Konstruktion entlang Umkehrung der Fusion Q (2) = {a, b}, (p a, p b ) Φ (2) = a, b Beispiel zur Konstruktion von Huffman (mit Symbolhäufigkeiten statt Wahrscheinlichkeiten) Q (4) Q (5) Q (6) Φ (4) a 9 b 8 cdf e 5 Q (3) ab 7 cdf e 5 Φ (5) a 9 b 8 c 5 df 5 e 5 Q (2) Φ (3) Φ (2) ab 7 cdef 25 Φ (6) a 9 b 8 c 5 d 3 e 5 f 2 µ(q (6), Φ (6) ) = 9 2 + 8 2 + 5 3 + 3 4 + 5 2 + 2 4 42 5 + + 7 + 25 = + = 99 42 42 = 2.3574284... NB H( 9 42, 8 42, 5 42, 3 42, 5 42, 2 42 ) = 2.395472... 4 42 Implementierung der Huffman-Konstruktion e / 5 a / 9 b / 8 c / 5 d / 3 f / 2 25 7 Quelle Q = A, p mit A, p = (p,..., p n ) e / 5 a / 9 b / 8 c / 5 5 e / 5 a / 9 b / 8 konstruiere Folge F (n), F (n ),..., F (3), F (2), F () von Wäldern d / 3 f / 2 c / 5 5 F (k) = {(t (k), g ),..., (t (k), g k)} k e / 5 c / 5 a / 9 b / 8 5 d / 3 f / 2 e / 5 25 d / 3 f / 2 42 7 a / 9 b / 8 t (k),..., t(k) k Binärbäume g,..., g k Gewichte mit g g 2... g k und g + + g k = F (n) = {(, p ),..., (, p n )} F (k) F (k ) : mit s =, t (k) k, t(k) k, h = g k + g k ( F (k ) = F (k) \ { (t (k) k, g k ), (t (k) k, g k) }) (s, h) e / 5 7 a / 9 b / 8 c / 5 5 c / 5 5 d / 3 f / 2 (nach Gewichten ordnen!) t () ist der Huffman-Code d / 3 f / 2 43 44

Komplexität der Huffman-Konstruktion Information über die Gewichte g j in einer priority queue organisieren! Diese Queue als min-heap implementieren. Aufbau des heaps: O(n) n heap-operationen (2 deletemin, reheap) mit Aufwand O(log n) Gesamtaufwand (Vergleichsoperationen): O(n log n) Huffmans Konstruktion ist ein klassischer greedy-algorithmus. Weitere bekannte greedy-algorithmen Zahldarstellung in Positionssystemen (incl. Fibonacci) 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 Entwurfsprinzipien für Algorithmen das Typische an greedy-problemen: 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 ( Matriode ) 45 46 Literaturhinweise V. Heun behandelt in Grundlegende Algorithmen die Huffman-Konstruktion in Kapitel 6.5 (Datenkompression). Alles über Datenkompression erfährt man in S. C. Salomon, Data Compression The Complete Reference, Springer, 997. Für eine Diskussion des Entropiebegriffs, Quellcodierung etc. muss man in Bücher über Informationstheorie schauen, z.b. D. Welsh, Codes and Cryptography, Oxford UP, 988. R. J. McEliece, The Theory of Information and Coding, Addison-Wesley, 977. Alle soliden Lehrbücher über Algorithmen(-entwurf) behandeln mehr oder weniger ausführlich die Huffman-Konstruktion im Kontext der greedy-algorithmen, siehe z.b. Kapitel 6 in T. H. Cormen, C. L. Leiserson, R. L. Rivest, C. Stein, An Introduction to Algorithms (2nd. ed.), MIT Press, 2. Dort erfährt man auch etwas über den theoretischen Hintergrund (Matroide). 47