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