Gierige Methoden "kurzsichtig handeln, langfristig gewinnen" Huffman-Code Gierige Methoden "kurzsichtig handeln, langfristig gewinnen"
Übersicht Funktionsweise der Huffman-Codierung Beispiel zum Codieren und Decodieren Aufgabe zum Huffman-Verfahren
Ideale Codierung Ziel: Inhalte so kurz wie möglich zu speichern ASCII-Codierung mit 8-Bit (= 1 Byte) Trennzeichen zwischen jeder Codierung Keine Trennzeichen Bei fester Zeichenanzahl kein Problem Schwierigkeit bei variabler Zeichenanzahl Anfang von Codierung muss unterscheidbar vom Ende der Codierung sein Binär Baum bzw. Codierungsbaum
Lösung von Huffman Der zu codierende Inhalt/Text muss eingelesen werden Häufigkeit aller Buchstaben wird ermittelt Sortieren der Buchstaben nach Häufigkeit Die beiden Buchstaben/Bäume mit der geringsten Häufigkeit werden zu einem Binär-Baum zusammengefasst Ab der Wurzel sinkt die Häufigkeit der Buchstaben Dieser Baum wird wieder in die Liste der Häufigkeiten einsortiert Der Baum besitzt die Häufigkeit von der Summe der Häufigkeiten seiner beiden Teilbäume
Beispiel für die Codierung von Huffman „aaacef“ A = 3 , B = 0, C = 1, D = 0, E = 1, F =1 … C, A Die beiden Buchstaben/Bäume mit der geringsten Häufigkeit werden zu einem Binär-Baum zusammengefasst Ab der Wurzel sinkt die Häufigkeit der Buchstaben Dieser Baum wird wieder in die Liste der Häufigkeiten einsortiert Der Baum besitzt die Häufigkeit von der Summe der Häufigkeiten seiner beiden Teilbäume 11101000011
Aufgaben Sortiere die folgenden Häufigkeiten: a = 651 g = 301 m = 253 y = 4 b = 189 h = 476 n = 978 t = 615 z = 113 c = 306 i = 755 o = 251 u = 435 d = 508 j = 27 p = 79 v = 67 e = 1740 k = 121 q = 2 w = 189 f = 166 l = 344 r = 700 x = 3 Erstelle dir auf Grundlage der ersten Aufgabe einen Huffman Baum! Codiere basierend auf Aufgabe 2 folgendes Wort: „Huffman“
Noch Fragen?
Danke für eure Aufmerksamkeit (Präsentation von: Angelika Richter, Benno Ommerborn, Etibar, Charlotte Smid, Gernot Götz vom Informatik LK 12.1 VDB 2009)