PD. Dr. Pradyumn Shukla Marlon Braun Micaela Wünsche Dr. Friederike Pfeiffer-Bohnen Dr. Lukas König Institut für Angewandte Informatik und Formale Beschreibungsverfahren Grundlagen der Informatik II Übungsblatt: 5, WS 7/8 mit Lösungen Besprechung ab: 8. Januar 28 Forum: http://info2.aifb.kit.edu/qa Klicken Sie auf die ID AU-X-Y im Aufgaben-Header um zum richtigen Thread zu gelangen. Anmerkung zum XWizard (http://www.xwizard.de): Auf den Übungsblättern sind manchmal Links (QR-Codes) angegeben, die zu dem in der Aufgabe behandelten Konzept (etwa dem dort dargestellten endlichen Automaten) auf der XWizard-Website führen. Die mit Skript überschriebenen Links leiten einfach zu dem jeweiligen endlichen Automaten (oder sonstigen Konzept) weiter, wo Sie damit herumspielen können. Die mit MiniEx überschriebenen Links führen zu einer kleinen 2-Minuten-Aufgabe, die Sie zusätzlich mit dem XWizard lösen können. Tipp: Sie können auch die angegebene ID (in der Form ID-234) ins Skriptfeld eingeben. Aufgabe AU-5- INTERAKTIV (b) Huffman-Kodierung Gegeben sei eine Zeichenmenge A mit zugehöriger Wahrscheinlichkeitsverteilung p für das Auftreten der Zeichen: A a b c d e f g p /49 /7 3/49 5/49 /49 9/49 3/49 Analysieren Sie die folgenden Kodierungen c a, c b und c c, im Hinblick darauf, ob sie äquivalent sind zu einer Huffman-Kodierung der obigen Zeichenmenge samt Wahrscheinlichkeitsverteilung. Geben Sie Gründe an, falls es nicht zur Übereinstimmung kommt. a b c d e f g a) c a : b) c b : c) c c : i
(a) Das Codewort von g ist ein Präfix der Codewörter für a, b und c. Somit kann dies keine gültige Huffman-Kodierung sein, da diese immer die Fano-Bedingung erfüllen muss. (b) Die Fano-Bedingung wird von dieser Kodierung erfüllt, und die Codelänge L A,p (c b ) = 2 29 /49 ist minimal (dies kann über eine eigene Kodierung berechnet werden, siehe Abbildung). Somit ist dies eine gültige Huffman Kodierung. d 5 c 3 a b 7 g 3 e f 9 4 2 9 6 29 49 Skript ID-9756 ii
Codelänge nach Abbildung: 3 2+ 2+9 2+7 3+5 4+3 5+ 5 49 = 2 29 /49 = L A,p (c b ) Hinweis: Der Huffman-Algorithmus erzeugt eine minimale Kodierung, die aber nicht eindeutig ist. Deshalb ist es egal, dass die Kodierung im Baum nicht genau der Kodierung c b entspricht. Beim Rechnen von Hand ist es meist geschickter, den Huffman-Baum anders herum zu zeichnen, vgl. Folien. (c) Die Codelänge dieser Kodierung ist nicht minimal: L A,p (c c ) = L A,p (c b ) + (4 5) + (4 3) 49 7 + (4 5) 3 49 = L A,p (c b ) 49 + 7 3 49 = L A,p(c b ) + 3 49 > L A,p(c b ) Also kann diese Kodierung keine Huffman Kodierung für die vorgegebene Wahrscheinlichkeitsverteilung sein. Aufgabe 2 HU-5- Für zuhause Huffman-Kodierung Folgende Zeichenkette sei repräsentativ für weitere Daten, die noch folgen werden. dadabdadcbddaadbdadaccabdaaadbcd Bisher wurden die Daten wie folgt abgespeichert: a =, b =, c = und d =. a) Erzeugen Sie anhand der durch den obigen Datenstring gegebenen Wahrscheinlichkeitsverteilung eine Huffman-Kodierung für die Zeichen a, b, c und d. Die Zeichenkette ist 32 Zeichen lang. Die enthaltenen Zeichen treten mit folgenden Häufigkeiten auf: Buchstabe Häufigkeit resultierende Wahrscheinlichkeit a,34375 b 5,5625 c 4,25 d 2,375 Aufgrund der Wahrscheinlichkeiten wird zuerst {c} mit {b}, dann {b, c} mit {a} und schließlich {a, b, c} mit {d} zusammengefasst. iii
a b 5 c 4 d 2 9 2 32 Skript ID-9762 Danach werden aus dem Huffman-Baum die folgenden Kodierungen abgelesen: Codewort Kodierung a b c d b) Wie groß ist die erwartete relative Ersparnis an Speicherplatz durch Verwendung des Huffman-Codes zum Abspeichern der Zeichen? Die durchschnittliche Länge eines Codewortes ist, 34375 2 +, 5625 3 +, 25 3 +, 375 =, 9625. Die erwartete relative Ersparnis ist demnach, 9625/2 =, 46875, also knapp 5%. iv
Aufgabe 3 AU-5-2 INTERAKTIV (b) Fehlererkennung Gegeben sei der folgende Code: Die Bits der Codewörter seien von links nach rechts mit,2,..., 7 durchnummeriert. Die Bits, 2, 4 (Zweierpotenzen) dienen als Prüfbits (p). Die restlichen Bits enthalten die Nutz-Bits (a). Anordnung der Bits: p p 2 a 3 p 4 a 5 a 6 a 7 mit p = a 3 a 5 a 7 p 2 = a 3 a 6 a 7 p 4 = a 5 a 6 a 7 a) Berechnen Sie den Code für die 4-Bit-Binärzahlen,,...,. Binärwert Dezimalwert Hammingcode a 3 a 5 a 6 a 7 p p 2 a 3 p 4 a 5 a 6 a 7 2 3 4 5 6 7 8 9 2 3 4 5 v
b) Sei ein übertragenes Codewort, bei dem eine Position g falsch übertragen wurde. Bestimmen Sie g und korrigieren Sie das Wort. Hinweis: Diese Kodierung ist so gewählt, dass die Summe der Positionen der Prüfbits, deren übertragener Wert nicht mit dem berechneten übereinstimmt, die Position des fehlerhaft übertragenen Bits angibt. Nutz-Bits: a 3 =, a 5 =, a 6 = and a 7 =. Berechnete Prüfbits: p =, p 2 = und p 4 =. Übertragene Prüfbits: p =, p 2 = und p 4 =. Also wurde das Bit an Position 5 (a 5 ) falsch übertragen. Das zum falsch übertragenen Wort gehörende Codewort ist also. Bemerkung: Wenn bekannt ist, dass ein Fehler auftrat, könnt dieser alternativ auch über einen Vergleich des übertragenen Codewortes mit den wirklichen Codewörtern und Berechnung der Hamming-Distanz ermittelt werden, was in diesem Fall aber etwas aufwändiger wäre. Aufgabe 4 AU-5-4 INTERAKTIV (a) Zahlendarstellung Stellen Sie die folgenden Zahlen so genau wie möglich als einfach genaue Gleitpunktzahl gemäß IEEE 754 sowie als Zweikomplement einer Festpunktzahl mit 6 Vorpunkt- und 6 Nachpunktbits dar. a) 2 3 4 Zur Darstellung der Zahl x = 2 3 in IEEE-754 wird wie folgt vorgegangen: 4 Zerlegung in Vorzeichen, Summe aus Zweierpotenzen, Bestimmung und Ausklammerung der größten Zweierpotenz, Umformung von Exponent zu Charakteristik. vi
2 3 4 = ( ) 2 3 4 = ( ) (8 + 4 + 2 + 4 ) = ( ) 2 3 ( + 2 + 2 4 + 2 5 ) = ( ) 2 3 27 ( + 2 + 2 4 + 2 5 ) Somit lässt sich x als Gleitpunktzahl im Format vcm mit v =, c = (3) = () 2 und m = darstellen. Für die Darstellung im Festpunktformat stellt man zunächst den Betrag der Zahl dar und bildet, falls die Zahl (wie hier) negativ ist, das 2er-Komplement. Durch die Zerlegung in Zweierpotenzen lässt sich leicht ablesen, dass 2 3 die Darstellung 4. hat. Die Bildung des 2er-Komplements erfolgt durch Negation und Addition von an der niederwertigsten Stelle, also nicht an der ersten Vorpunktstelle! Somit ergibt sich als Festpunktdarstellung für x der Bitstring b) 36 49 64 Analog zu (a)... 36 49 64 = ( ) 36 49 64 = ( ) (32 + 4 + 2 + 4 + 64 ) = ( ) 2 5 ( + 2 3 + 2 6 + 2 7 + 2 ) = ( ) 2 32 27 ( + 2 3 + 2 6 + 2 7 + 2 ) Als Gleitpunktzahl: v =, c = (32) = () 2 und m =. Als Festpunktzahl:.. vii
Aufgabe 5 AU-5-3 Zahlendarstellung Gegeben sei folgender Bitstring. b = Geben Sie den jeweiligen Dezimalwert dieses Strings an, wenn man ihn deutet als a) Dualzahl, b) Zahl im Zweikomplement, c) BCD-Zahl bzw. d) Gleitpunktzahl gemäß IEEE 754. a) 252346996 als Zahl zur Basis 2 2 3 + 2 28 + 2 26 + 2 25 + 2 22 + 2 2 + 2 9 + 2 6 + 2 2 + 2 + 2 8 + 2 5 + 2 3 b) 774982 als Zahl zur Basis 2 im 2er-Komplement 2 28 + 2 26 + 2 25 + 2 22 + 2 2 + 2 9 + 2 6 + 2 2 + 2 + 2 8 + 2 5 + 2 3 2 3 c) 9669528 als BCD-Zahl Teilung in 4-Bit Abschnitte, natürliche Fortsetzung d) 9943 2 3.883 25 als Gleitpunktzahl gemäß IEEE 754 x =( ) v ( + m ) 2 c q =( ) ( + (2 + 2 2 + 2 4 + 2 7 + 2 + 2 3 + 2 5 + 2 8 + 2 2 )) 2 44 27 =( ) ( + 2 2 (2 9 + 2 8 + 2 6 + 2 3 + 2 9 + 2 7 + 2 5 + 2 2 + )) 2 44 27 = 9943 2 3.883 25 viii
Aufgabe 6 HU-5-2 Für zuhause Zahlendarstellung Stellen Sie gemäß der folgenden Zahlenkodierungen so genau wie möglich dar. a) einfach genaue Gleitpunktzahl gemäß IEEE 754 Die Zahl / wird wie folgt zerlegt: Vorzeichen, (approximative) Summe aus Zweierpotenzen, Bestimmung und Ausklammerung der größten Zweierpotenz, Umformung von Exponent zu Charakteristik. = ( ) = ( ) ( + 2 4 + 2 5 + 2 8 + 2 9 +... ) = ( ) + ( 2 4i + 2 4i ) i= ( ) 2 ( + 2 4 + 2 5 + 2 8 + 2 9 + 2 2 + 2 3 + 2 6 + 2 7 + 2 2 + 2 2 + 2 23 ) = ( ) 2 27 27 ( + 2 4 + 2 5 + 2 8 + 2 9 + 2 2 + 2 3 + 2 6 + 2 7 + 2 2 + 2 2 + 2 23 ) Bei der 3. Umformung wurde nach oben gerundet. Somit lässt sich x als Gleitpunktzahl im Format vcm mit darstellen. v =, c = (27) = () 2, M = b) 2er Komplement einer Festpunktzahl mit 6 Vorpunkt- und 6 Nachpunktbits Trick: Für die Berechnung der approximativen Summe aus Zweierpotenzen kann man auch das folgende Verfahren benutzen. Man multipliziert die Nachpunktstellen(!) mit 2 bis man die Periode erkennt und leitet aus den resultierenden Vorpunktstellen (von oben nach unten lesen) die Binärdarstellung ab., 2 =, 2, 2 2 =, 4 ix
, 4 2 =, 8, 8 2 =, 6 Die Eins wird nicht für den nächten Schritt übernommen., 6 2 =, 2 Ab hier erkennt man die Periode, die nächste Zeile beginnt wieder, 2 2 =, 4 mit, 2, 4 2 =, 8, 8 2 =, 6 usw. Die Binärdarstellung von sieht folgendermaßen aus:,. Für die Aufgabe muss nach der 6ten Stelle gerundet werden. Für die Festpunktzahl kann man einen Großteil der Mantisse wiederverwenden, durch Rundung ergibt sich hier,. Aufgabe 7 HU-5-3 Für zuhause Zahlendarstellung Gegeben seien die Zahlen A, B in der bekannten IEEE-754-Darstellung: A ˆ= B ˆ= Berechnen Sie die Summe S = A + B ohne Umwandlung in Dezimalzahlen und geben Sie S korrekt in IEEE-754-Darstellung an. Ohne Umwandlung in reelle Zahlen: x
Mit Umwandlung in reelle Zahlen. A: v =, c = 2 7 + 2 + 2 = 3 e = 3 27 = 4 2 + 2 4 + 2 6 Zahl = 2 4 ( + m ) = 2 4 ( + 2 + 2 4 + 2 6 ) = 25, 25 B: v =, c = 2 7 + 2 = 3 e = 3 27 = 3 2 + 2 4 + 2 5 Zahl = 2 3 ( + m ) = 2 3 ( + 2 + 2 4 + 2 5 ) = 2, 75 S: Summe = 38 v =, 38 = 2 5 + 2 2 + 2 = 2 5 ( + 2 3 + 2 4 ) c = 5 + 27 = 32 : und m = xi