2.7 Der Shannon-Fano-Elias Code
|
|
- Daniela Gerstle
- vor 6 Jahren
- Abrufe
Transkript
1 2.7 Der Shannon-Fano-Elias Code Die Huffman-Codierung ist ein asymptotisch optimales Verfahren. Wir haben auch gesehen, dass sich die Huffman-Codierung gut berechnen und dann auch gut decodieren lassen. Die letzte Aussage trifft allerdings nur zu, wenn das Quellalphabet nicht zu groß ist. Denn zur Berechnung der Codeworte eines Huffman-Codes wird Zeit O(n log n) benötigt, wenn n die Größe des Alphabets ist. Da wir die Wahrscheinlichkeiten in der Verteilung (implizit) sortieren müssen, können wir auch nicht hoffen, die Codeworte in Zeit weniger als n log n zu berechnen. Für die eigentliche Codierung und Decodierung wird auch der Huffman-Baum benötigt. Dieser hat immer Größe Θ(n). Wollen wir nun die Huffman-Codierung etwa auf das Alphabet {0, 1} 50 anwenden, so sehen wir, dass dieses kaum noch praktikabel ist. Deshalb wollen wir nun ein Codierungsverfahren kennen lernen, das angewandt auf Alphabete der Form A b deutlich effizienter ist als die Huffman-Codierung. Dieses Verfahren wurde von Shannon, Fano und Elias entwickelt. Wir nennen es die Shannon-Fano-Elias-Codierung, kurz SFE-Codierung. Wir werden dieses Verfahren zunächst für allgemeine Quelle erklären und dann für Quellen mit Alphabeten der Form A b effiziente Codier- und Decodieralgorithmen beschreiben. In diesem Fall wird das Verfahren arithmetische Codierung genannt. Wir betrachten eine Quelle mit Alphabet A = {a 1,..., a n } und Wahrscheinlichkeitsverteilung p = (p 1,..., p n ). Die p i müssen nicht sortiert sein. Für jedes i = 1,..., n definieren wir nun w i := log 1 p i + 1 i 1 L i := j=1 p j (2.1) T i := L i + p i 1 i 2 = p j + p i 2. Zusätzlich setzen wir L n+1 = 1. Die L i partitionieren das Einheitsintervall [0, 1) in n Teilintervalle I i := [L i, L i+1 ). Die Werte T i sind jeweils Mittelpunkt des Teilintervalls I i = [L i, L i+1 ). Die Breite von I i ist genau p i. Wir ordnen nun dem Symbol a i das i-te Teilintervall I i zu. Damit wird Symbolen ein Teilintervall mit Breite genau ihrer Quellwahrscheinlichkeit zugeordnet. j=1 38
2 Nach Wahl von w i gilt 2 w i p i 2. Weiter bezeichnen wir für eine Zahl x [0, 1] und ein c N mit x c die obersten c Bits der Binärdarstellung von x. Es gilt dann x 0. x c < 2 c. (2.2) Die SFE-Codierung C ordnet nun dem Quellsymbol a i das Codewort C(a i ) = T i wi (2.3) zu. Jedem Symbol a i wird also der Mittelpunkt seines Teilintervalls I i, dargestellt mit w i Bits, zugeordnet. Beispiel: Betrachten wir die Quelle mit Quellsymbolen a 1, a 2, a 3, a 4 und den Wahrscheinlichkeiten 1 16, 3 16, 9 16, Wir erhalten dann die folgenden Werte für w i, T i, C(a i ): i = 1 i = 2 i = 3 i = 4 w i T i C(a i ) Abbildung 2.10 zeigt die Intervalle I i und ihre Mittelpunkte. Das zu a 3 gehörige Intervall L 3, L 4 ist fett in Rot eingezeichnet. Abbildung 2.10: Intervalleinteilung bei SFE-Codierung Wir erhalten nun Satz Die SFE-Codierung liefert einen Präfix-Code. Beweis: Sei C(a i ) ein Präfix von C(a j ), d.h., C(a i ) und C(a j ) stimmen in den ersten w i Bits überein. Dann muss gelten T i T j < 2 w i, denn mit C(a i ), C(a j ) stimmen auch T i, T j in den obersten w i Bits überein. Nun gilt 39
3 aber 2 w i p i /2 und T i T j p i /2. Damit ist die Annahme, dass C(a i ) ein Präfix von C(a j ) ist, zum Widerspruch geführt. Die SFE-Codierung ordnet wahrscheinlichen Symbolen Intervalle großer Breite zu. Mittelpunkte großer Intervall müssen aber nur mit wenigen Bits Präzision dargestellt werden, um nicht mit anderen Mittelpunkten verwechselt werden zu können. Dieses liefert die Kompression bei der SFE-Codierung. Satz Für die erwartete Länge E(C) der SFE-Codierung C einer Quelle mit Wahrscheinlichkeitsverteilung p = (p 1,..., p n ) gilt Beweis: Der Satz folgt aus H(p) < E(C) H(p) + 2. log p i < w i log p i + 2. Aus diesem Satz folgt unmittelbar, dass auch die SFE-Codierung ein asymptotisch optimales Codierungsverfahren ist. Denn angewandt auf das Alphabet A b mit Verteilung p b erreicht die SFE-Codierung eine erwartete Codierungslänge von höchstens H(p b ) + 2 = bh(p) + 2. Damit ist im Grenzwert die erwartete Codierungslänge pro Quellsymbol genau H(p). 2.8 Arithmetische Codierung In diesem Abschnitt lernen wir effiziente Codier- und Decodieralgorithmen für die SFE-Codierung kennen, wenn das Quellalphabet A b und die Wahrscheinlichkeitsverteilung p b, b N, ist, wobei p eine Wahrscheinlichkeitsverteilung auf A = {a 1,..., a n } ist. Die in diesem Abschnitt beschriebenen Techniken werden als arithmetische Codierung bezeichnet. Betrachten wir also eine Quelle mit Alphabet A b, A = {a 1,..., a n }. Die Verteilung auf A ist von der Form p = (Pr(a 1 ),..., Pr(a n )) = (p 1,..., p n ). Die Wahrscheinlichkeit für das Quellsymbol x = (x 1,..., x b ) A b bezeichnen wir mit p(x). Es gilt p(x) = b Pr(x i ). i=1 Auf den Elementen aus A b definieren wir nun eine (totale) Ordnung <. Dazu definieren zunächst auf den Elementen auf A die Ordnung a 1 < a 2 < 40
4 ... < a n. Auf A b benutzen wir nun die lexikographische Ordnung bezüglich der Ordnung auf A. Sind also x = (x 1,..., x b ) und y = (y 1,..., y b ) zwei Elemente aus A b so gilt x < y genau dann, wenn für den kleinsten Index 1 k b mit x k y k gilt x k < y k. Um die arithmetische Codierung für A b mit Wahrscheinlichkeitsverteilung p b zu beschreiben, benutzen wir die folgende Notation. Wir setzen w(x) := log 1 p(x) + 1 L(x) := p(y) y<x y A b (2.4) T (x) := y<x y A b p(y) + p(x) 2. Die Codierung C(x) des Symbols x A b ist dann gegeben durch Es gilt C(x) := T (x)) w(x). (2.5) 2 w(x) < p(x) 2. (2.6) Die so definierte Codierung ist eine SFE-Codierung für eine spezielle Ordnung der Elemente in A b. Insbesondere ist die so definierte arithmetische Codierung also ein Präfix-Code (Satz 2.7.1). Wir wollen nun effiziente Algorithmen zur Berechnung der Codeworte in der arithmetischen Codierung beschreiben. Zunächst beobachten wir, dass die L(x) eine Partitionierung des Einheitsintervalls [0, 1) liefern. Diese Partitionierung kann man sich folgendermassen anschaulich machen. Zunächst wird das Intervall [0, 1) wie bei der SFE-Codierung beschrieben gemäß der Verteilung p in die Teilintervalle I 1,..., I n unterteilt. Um die Unterteilung bei der arithmetischen Codierung zu erhalten, wird nun jedes der Teilintervall I j selber wieder in n Teilintervalle der Breite proportional zu p i unterteilt. Dieses liefert dann die Teilintervalle, die zur arithmetischen Codierung von A 2 gehören. Sind nun die Teilintervalle für A b 1 bereits definiert, erhält man die Intervalle für A b, indem jedes der Teilintervall I der Unterteilung für A b 1 in Teilintervalle mit Breite proportional zu den p i unterteilt wird. Einer der Vorteile der arithmetischen Codierung gegenüber der Huffman- Codierung ist nun, dass nicht alle Codeworte gleichzeitig berechnet werden 41
5 müssen, um die die Codierung eines einzelnen Symbols zu bestimmen. Vielmehr kann die gerade beschriebene Idee des sukzessiven Verfeinerns benutzt werden, um einzelne Codeworte zu berechnen. Hierzu wird bei gegebenem Wort m = m 1 m 2 m b zunächst das Teilintervall I s berechnet, indem das Intervall für m liegt. Dann wird nur in diesem Teilintervall nach dem korrektem Intervall für m gesucht. Die Bestimmung von I j ist einfach, denn der Index s ist gegeben durch 1 s n mit m 1 = a s. Weitere Teilintervalle können dann genauso bestimmt werden. Dieses liefert den folgenden Algorithmus zur Berechnung des Codewortes für m. Die Zahlen L s sind dabei definiert wie in der SFE-Codierung für das Alphabet A mit den Wahrscheinlichkeiten p 1,..., p n. Eingabe m = m 1 m 2 m b A b. Ideal-Encode-AC (IE-AC) 1. Schritt Setze l 0 := 0, u 0 := 1, w 0 := Schritt Für i = 1,..., b wiederhole die folgenden Schritte. 3. Schritt Finde s mit a s = m i. 4. Schritt Setze l i := l i 1 + w i 1 L s u i := l i 1 + w i 1 L s+1 w i = w i 1 p s (2.7) 5. Schritt Gib l b + w b 2 mit log 1 w b + 1 Bits Genauigkeit aus. Der Wert w i gibt jeweils die Breite des aktuellen Intervalls an. Es gilt w i = u i l i. Mit dem oben Gesagten folgt leicht, dass dieser Algorithmus die Codierung C(m i ) korrekt berechnet. Etwas formaler folgt die Korrektheit durch vollständige Induktion über i aus den Gleichungen L(m) = y<m p(y) = y1 A y 1 <m 1 p(y 1 ) + p(m 1 ) y 2 y b A b 1 y 2 y b <m 2 m b p(y 2 y b ). (2.8) 42
6 Da jeder Durchlauf der Schleife im 2. Schritt nur konstante Anzahl von arithmetischen Operationen benötigt, ist die Laufzeit von IE-AC im RAM- Modell gegeben durch O(b). Wir werden hierzu allerdings noch viel mehr sagen müssen. Zunächst jedoch einige Beispiele. Beispiel 1: A = {a 1, a 2, a 3 }, p 1 = 0.8, p 2 = 0.02, p 3 = Codiert werden soll m = a 1 a 3 a 2 a 1. In der folgenden Tabelle sind die Werte s, l i u i, w i im Laufe des Algorithmus IE-AC zusammengefasst. Die Werte für l i, u i, w i ergeben sich jeweils aus (2.7). s l i u i w i i = i = i = i = i = Da log( ) 1 = 9 und u 4 + w 4 2 = ist die Codierung von m gegeben durch Beispiel 2: Es sei A = {0, 1} mit den Quellwahrscheinlichkeiten p 1 = 3 4, p 2 = 1 4. Weiter sei b = 5. Codiert werden soll m = Wir setzen a 1 = 0, a 2 01 und erhalten dann L 1 = 0, L 2 = 3 4, L 3 = 1. Wir erhalten dann die folgende Tabelle für die Werte s, l i u i, w i im Laufe des Algorithmus IE-AC. s l i u i w i i = i = i = i = i = i = Da log = 6 und u 5+l 5 2 = l 5 + w 5 2 = ist die Codierung von m gegeben durch In Abbildung 2.11 sind die einzelnen Teilintervalle, die im Laufe des Algorithmus berechnet werden, schematisch dargestellt. 43
7 Abbildung 2.11: Beispiel für IE-AC Die sukzessive Unterteilung von Intervallen führt auch sofort auf den folgenden Algorithmus zur Decodierung eines einzelnen Codewortes. Eingabe Ein Codewort c {0, 1}. Ideal-Decode-AC (ID-AC) 1. Schritt Setze l 0 := 0, u 0 := 1, w 0 := 1, m = ɛ, t = 0.c. 2. Schritt Für i = 1,..., b wiederhole die folgenden Schritte. 3. Schritt Finde s mit l i 1 + w i 1 L s t < l i 1 + w i 1 L s Schritt Setze 5. Schritt Ausgabe m. l i := l i 1 + w i 1 L s u i := l i 1 + w i 1 L s+1 w i = w i 1 p s m := ma s (2.9) Die Korrektheit des Algorithmus folgt aus der oben definierten Unterteilung in Teilintervalle und den Gleichungen in (2.8). 44
8 Beispiel 4: Gegeben ist eine Quelle mit Alphabet A := {0, 1} und den Wahrscheinlichkeiten p 1 = p(0) = 3 4 und p 2 = p(1) = 1 4. Damit gilt L 1 = 0, L 2 = 3 4 und L 3 = 1. Ausserdem sei b = 3. Wir erhalten das Codewort c = Zunächst setzen wir l 0 = 0, u 0 = 1, m = ɛ und t := = 5 8. Da < 3 4, setzen wir s = 1 und damit ist m 1 = 0. Die neuen Parameterwerte sind nun l 1 = 0, u 1 = 3 4, w 1 = 3 4, m = 0. Als nächstes erhalten wir s = 2 und m 2 = 1, denn l 1 + w 1 L 2 = = < 3 4 = l 1 + w 1 L 3. Als neue Parameter erhalten wir Jetzt berechnen wir s = 1, denn l 2 = 9 16, u 2 = 3 4, w 2 = 3 16, m = 01. l 2 + w 2 L 1 = = < 9 16 = l 2 + w 2 L 2 = = Die neuen Parameterwerte sind l 3 = 9 16, u 3 = 45 64, w 3 = 9 64, m = 010. Damit ist das Wort m = 010 decodiert. Beispiel 3: Gegeben ist die Quelle aus Beispiel 1. Es sei b = 2. Wir erhalten das Codewort c = Es gilt t = 0.c = Wir setzen l 0 = 0, u 0 = 1, w 0 = 1 und m = ɛ. Da < 1, ist m 1 = a 3. Die neuen Parameterwerte sind dann Da l 1 = 0.82, u 1 = 1, w 1 = < , ist m 2 = a 2. Das Codewort ist zu a 3 a 2 decodiert. 45
2. Woche Eindeutige Entschlüsselbarleit, Sätze von Kraft und McMillan, Huffmancodierung
2 Woche Eindeutige Entschlüsselbarleit, Sätze von Kraft und McMillan, Huffmancodierung 2 Woche: Eindeutige Entschlüsselbarleit, Sätze von Kraft und McMillan, Huffmancodierung 24/ 44 Zwei Beispiele a 0
MehrSeminar Kompressionsalgorithmen Huffman-Codierung, arithmetische Codierung
Huffman-Codierung, arithmetische Codierung Theoretische Informatik RWTH-Aachen 4. April 2012 Übersicht 1 Einführung 2 3 4 5 6 Einführung Datenkompression Disziplin,die Kompressionsalgorithmen entwirft
Mehr1. Woche Einführung in die Codierungstheorie, Definition Codes, Präfixcode, kompakte Codes
1 Woche Einführung in die Codierungstheorie, Definition Codes, Präfixcode, kompakte Codes 1 Woche: Einführung in die Codierungstheorie, Definition Codes, Präfixcode, kompakte Codes 5/ 44 Unser Modell Shannon
MehrReferat zum Thema Huffman-Codes
Referat zum Thema Huffman-Codes Darko Ostricki Yüksel Kahraman 05.02.2004 1 Huffman-Codes Huffman-Codes ( David A. Huffman, 1951) sind Präfix-Codes und das beste - optimale - Verfahren für die Codierung
MehrIsomorphie von Bäumen
Isomorphie von Bäumen Alexandra Weinberger 23. Dezember 2011 Inhaltsverzeichnis 1 Einige Grundlagen und Definitionen 2 1.1 Bäume................................. 3 1.2 Isomorphie..............................
MehrDynamisches Huffman-Verfahren
Dynamisches Huffman-Verfahren - Adaptive Huffman Coding - von Michael Brückner 1. Einleitung 2. Der Huffman-Algorithmus 3. Übergang zu einem dynamischen Verfahren 4. Der FGK-Algorithmus 5. Überblick über
MehrKostenmodell. Daniel Graf, Tobias Pröger. 22. September 2016 (aktualisierte Fassung 5 vom 9. Oktober 2016)
Kostenmodell Daniel Graf, Tobias Pröger 22. September 2016 (aktualisierte Fassung 5 vom 9. Oktober 2016) Erklärung: Diese Mitschrift ist als Ergänzung zur Vorlesung gedacht. Wir erheben keinen Anspruch
Mehr2.2 Allgemeine (vergleichsbasierte) Sortierverfahren
. Allgemeine (vergleichsbasierte) Sortierverfahren Vergleichsbaum: Der Aufbau des Verbleichsbaum ist für jeden Algorithmus und jede Eingabelänge n gleich. Jede Permutation der Eingabe, muss zu einem anderen
MehrArithmetisches Codieren
Arithmetisches Codieren 1. Motivation: Als Alternative zum arithmetischen Codieren bot sich damals als effizientester Algorithmus das Huffmann-Coding an. Dieses jedoch hatte einen entscheidenden Nachteil:
MehrInformationstheorie und Codierung
Informationstheorie und Codierung 3. Codierung diskreter Quellen Gleichmäßiger Code Ungleichmäßiger Code Fano-, Huffman-Codierung Optimalcodierung von Markoff-Quellen Lauflängencodes nach Golomb und Rice
MehrGierige Algorithmen Interval Scheduling
Gierige Algorithmen Interval Scheduling IntervalScheduling(s,f). n length[s] 2. A {} 3. j 4. for i 2 to n do 5. if s[i] f[j] then 6. A A {i} 7. j i 8. return A Gierige Algorithmen Interval Scheduling Beweisidee:
MehrProblem: Finde für Alphabet mit n Zeichen einen Binärcode, der die Gesamtlänge eines Textes (über diesem Alphabet) minimiert.
Anwendungen von Bäumen 4.3.2 Huffman Code Problem: Finde für Alphabet mit n Zeichen einen Binärcode, der die Gesamtlänge eines Textes (über diesem Alphabet) minimiert. => nutzbar für Kompression Code fester
Mehr3 Quellencodierung. 3.1 Einleitung
Source coding is what Alice uses to save money on her telephone bills. It is usually used for data compression, in other words, to make messages shorter. John Gordon 3 Quellencodierung 3. Einleitung Im
Mehr1. Musterlösung. Problem 1: Average-case-Laufzeit vs. Worst-case-Laufzeit
Universität Karlsruhe Algorithmentechnik Fakultät für Informatik WS 06/07 ITI Wagner Musterlösung Problem : Average-case-Laufzeit vs Worst-case-Laufzeit pt (a) Folgender Algorithmus löst das Problem der
Mehr4. Woche Decodierung; Maximale, Perfekte und Optimale Codes. 4. Woche: Decodierung; Maximale, Perfekte und Optimale Codes 69/ 140
4 Woche Decodierung; Maximale, Perfekte und Optimale Codes 4 Woche: Decodierung; Maximale, Perfekte und Optimale Codes 69/ 140 Szenario für fehlerkorrigierende Codes Definition (n, M)-Code Sei C {0, 1}
MehrEinführung in die Theoretische Informatik
Technische Universität München Fakultät für Informatik Prof. Tobias Nipkow, Ph.D. Dr. Werner Meixner, Dr. Alexander Krauss Sommersemester 2010 Lösungsblatt 11 15. Juli 2010 Einführung in die Theoretische
MehrAlgorithmen und Datenstrukturen
1 Algorithmen und Datenstrukturen Wintersemester 2014/15 3. Vorlesung Laufzeitanalyse Prof. Dr. Alexander Wolff Lehrstuhl für Informatik I 2 Recap: Diskutieren Sie mit Ihrer NachbarIn! 1. 2. 3. Was sind
MehrStrings. Stringsuche, Boyer-Moore, Textkompression, Huffman Codes.
Strings Stringsuche, Boyer-Moore, Textkompression, Huffman Codes. Suche Substring Häufiges Problem Relevante Beispiele: Suche ein Schlagwort in einem Buch Alphabet: A-Za-z0-9 Suche Virussignatur auf der
MehrCodierungstheorie Rudolf Scharlau, SoSe 2006 9
Codierungstheorie Rudolf Scharlau, SoSe 2006 9 2 Optimale Codes Optimalität bezieht sich auf eine gegebene Quelle, d.h. eine Wahrscheinlichkeitsverteilung auf den Symbolen s 1,..., s q des Quellalphabets
Mehr4 Greedy-Algorithmen (gierige Algorithmen)
Greedy-Algorithmen (gierige Algorithmen) Greedy-Algorithmen werden oft für die exakte oder approximative Lösung von Optimierungsproblemen verwendet. Typischerweise konstruiert ein Greedy-Algorithmus eine
MehrCodierung, Codes (variabler Länge)
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
MehrEntscheidungsbäume. Definition Entscheidungsbaum. Frage: Gibt es einen Sortieralgorithmus mit o(n log n) Vergleichen?
Entscheidungsbäume Frage: Gibt es einen Sortieralgorithmus mit o(n log n) Vergleichen? Definition Entscheidungsbaum Sei T ein Binärbaum und A = {a 1,..., a n } eine zu sortierenden Menge. T ist ein Entscheidungsbaum
MehrÜbungsaufgaben zu Formalen Sprachen und Automaten
Universität Freiburg PD Dr. A. Jakoby Sommer 27 Übungen zum Repetitorium Informatik III Übungsaufgaben zu Formalen Sprachen und Automaten. Untersuchen Sie das folgende Spiel: A B x x 2 x 3 C D Eine Murmel
MehrWir erinnern uns: Um eine Zufallsvariable mit N verschiedenen, gleichwahrscheinlichen Zuständen binär zu codieren, benötigen wir
Kapitel 3: Entropie Motivation Wir erinnern uns: Um eine Zufallsvariable mit N verschiedenen, gleichwahrscheinlichen Zuständen binär zu codieren, benötigen wir log N Bits log p N Bits Die Information steht
MehrLösungsvorschlag 3. Übung Technische Grundlagen der Informatik II Sommersemester 2009
Fachgebiet Rechnerarchitektur Fachbereich Informatik Lösungsvorschlag 3. Übung Technische Grundlagen der Informatik II Sommersemester 2009 Aufgabe 3.1: Codierungen a) Vervollständigen Sie folge Tabelle,
MehrAlgorithmen und Datenstrukturen (ESE) Entwurf, Analyse und Umsetzung von Algorithmen (IEMS) WS 2014 / 2015 Vorlesung 3, Donnerstag 6.
Algorithmen und Datenstrukturen (ESE) Entwurf, Analyse und Umsetzung von Algorithmen (IEMS) WS 2014 / 2015 Vorlesung 3, Donnerstag 6. November 2014 (O-Notation, Theta, Omega) Junior-Prof. Dr. Olaf Ronneberger
MehrQuicksort ist ein Divide-and-Conquer-Verfahren.
. Quicksort Wie bei vielen anderen Sortierverfahren (Bubblesort, Mergesort, usw.) ist auch bei Quicksort die Aufgabe, die Elemente eines Array a[..n] zu sortieren. Quicksort ist ein Divide-and-Conquer-Verfahren.
MehrSeminar über Algorithmen, SS2004. Textkompression. von Christian Grümme und Robert Hartmann
Seminar über Algorithmen, SS2004 Textkompression von Christian Grümme und Robert Hartmann 1. Einleitung Textkompression wird zur Verringerung des Speicherbedarfs und der Übertragungskapazität von allgemeinen
Mehr15 Optimales Kodieren
15 Optimales Kodieren Es soll ein optimaler Kodierer C(T ) entworfen werden, welcher eine Information (z.b. Text T ) mit möglichst geringer Bitanzahl eindeutig überträgt. Die Anforderungen an den optimalen
MehrDatenstrukturen & Algorithmen
Datenstrukturen & Algorithmen Matthias Zwicker Universität Bern Frühling 2010 Übersicht Dynamische Programmierung Einführung Ablaufkoordination von Montagebändern Längste gemeinsame Teilsequenz Optimale
MehrÜbrigens: um den Algorithmus im Unterricht einzuführen, sind keine Formeln notwendig! Warum reicht die normale ASCII-Codierung nicht aus?
Huffman-Code Dieser Text ist als Hintergrundinformation ausschliesslich für die Lehrperson gedacht. Der Text ist deshalb eher technisch gehalten. Er lehnt sich an das entsprechende Kapitel in "Turing Omnibus"
MehrAlgorithmen II Vorlesung am 15.11.2012
Algorithmen II Vorlesung am 15.11.2012 Kreisbasen, Matroide & Algorithmen INSTITUT FÜR THEORETISCHE INFORMATIK PROF. DR. DOROTHEA WAGNER KIT Universität des Landes Baden-Württemberg und Algorithmen nationales
MehrEinführung in die Kodierungstheorie
Einführung in die Kodierungstheorie Einführung Vorgehen Beispiele Definitionen (Code, Codewort, Alphabet, Länge) Hamming-Distanz Definitionen (Äquivalenz, Coderate, ) Singleton-Schranke Lineare Codes Hamming-Gewicht
MehrMusterlösung zur Hauptklausur Theoretische Grundlagen der Informatik Wintersemester 2013/14
Institut für Theoretische Informatik Prof. Dr. Jörn Müller-Quade Musterlösung zur Hauptklausur Theoretische Grundlagen der Informatik Wintersemester 23/4 Vorname Nachname Matrikelnummer Hinweise Für die
MehrAbschnitt: Algorithmendesign und Laufzeitanalyse
Abschnitt: Algorithmendesign und Laufzeitanalyse Definition Divide-and-Conquer Paradigma Divide-and-Conquer Algorithmen verwenden die Strategien 1 Divide: Teile das Problem rekursiv in Subproblem gleicher
MehrTheorie und Praxis geometrischer Algorithmen
0/36 Theorie und Praxis geometrischer Algorithmen Isolierende Intervalle: Sturmsche Ketten Rico Philipp Motivation 1/36 Was ist eine Sturmsche Kette? Wie berechnet man diese? Durch welche Eigenschaften
Mehr7. Woche Extra-Material: - Beispiele von Codes. 7. Woche: Beispiele von Codes 144/ 238
7 Woche Extra-Material: - Beispiele von Codes 7 Woche: Beispiele von Codes 144/ 238 Hamming-Matrix H(h) und Hammingcode H(h) Wir definieren nun eine Parity-Check Matrix H(h) von einem neuen Code: Parametrisiert
Mehr(Prüfungs-)Aufgaben zur Codierungstheorie
(Prüfungs-)Aufgaben zur Codierungstheorie 1) Gegeben sei die folgende CCITT2-Codierung der Dezimalziffern: Dezimal CCITT2 0 0 1 1 0 1 1 1 1 1 0 1 2 1 1 0 0 1 3 1 0 0 0 0 4 0 1 0 1 0 5 0 0 0 0 1 6 1 0 1
MehrEin RSA verwandtes, randomisiertes Public Key Kryptosystem
Seminar Codes und Kryptographie WS 2003 Ein RSA verwandtes, randomisiertes Public Key Kryptosystem Kai Gehrs Übersicht 1. Motivation 2. Das Public Key Kryptosystem 2.1 p-sylow Untergruppen und eine spezielle
MehrProgrammiertechnik II
Analyse von Algorithmen Algorithmenentwurf Algorithmen sind oft Teil einer größeren Anwendung operieren auf Daten der Anwendung, sollen aber unabhängig von konkreten Typen sein Darstellung der Algorithmen
MehrRandomisierte Algorithmen 2. Erste Beispiele
Randomisierte Algorithmen Randomisierte Algorithmen 2. Erste Beispiele Thomas Worsch Fakultät für Informatik Karlsruher Institut für Technologie Wintersemester 2016/2017 1 / 35 Randomisierter Identitätstest
MehrInduktive Beweise und rekursive Definitionen
Induktive Beweise und rekursive Definitionen Vorlesung Logik in der Informatik, HU Berlin 1. Übungsstunde Beweis durch vollständige Induktion über N Aufgabe 1 Zeige, dass für alle n N gilt: n 2 i = 2 n+1
MehrÜbung zur Vorlesung Berechenbarkeit und Komplexität
RWTH Aachen Lehrgebiet Theoretische Informatik Reidl Ries Rossmanith Sanchez Tönnis WS 2012/13 Übungsblatt 9 10.12.2012 Übung zur Vorlesung Berechenbarkeit und Komplexität Aufgabe T20 Beweisen Sie die
MehrEntropie. Um der Begriff der Entropie zu erläutern brauchen wir erst mal einige Definitionen, z.b.
Entropie Grundlegend für das Verständnis des Begriffes der Komprimierung ist der Begriff der Entropie. In der Physik ist die Entropie ein Maß für die Unordnung eines Systems. In der Informationstheorie
MehrVortrag: Prüfzeichencodierung. Michael Gläser
Vortrag: Prüfzeichencodierung Michael Gläser Prüfzeichencodierung (Inhalt): 1. Definition und allgemeine Eigenschaften 2. Prüfziffercodierung 3. ISBN-Codierung 4. EAN-Codierung 1. Definition und allgemeine
MehrErzeugendensystem und Basis
Erzeugendensystem und Basis Definition Erzeugendensystem und Basis eines Unterraums Sei S F n 2 ein Unterraum. Eine Menge G = {g 1,..., g k } S heißt Erzeugendensystem von S, falls jedes x S als Linearkombination
Mehr5. Woche Perfekte und Optimale Codes, Schranken. 5. Woche: Perfekte und Optimale Codes, Schranken 88/ 142
5 Woche Perfekte und Optimale Codes, Schranken 5 Woche: Perfekte und Optimale Codes, Schranken 88/ 142 Packradius eines Codes (Wiederholung) Definition Packradius eines Codes Sei C ein (n, M, d)-code Der
Mehrx x y x y Informatik II Schaltkreise Schaltkreise Schaltkreise Rainer Schrader 3. November 2008
Informatik II Rainer Schrader Zentrum für Angewandte Informatik Köln 3. November 008 1 / 47 / 47 jede Boolesche Funktion lässt mit,, realisieren wir wollen wir uns jetzt in Richtung Elektrotechnik und
MehrWahrscheinlichkeitstheorie und Statistik vom
INSTITUT FÜR STOCHASTIK SS 2007 UNIVERSITÄT KARLSRUHE Priv.-Doz. Dr. D. Kadelka Dipl.-Math. oec. W. Lao Klausur (Maschineningenieure) Wahrscheinlichkeitstheorie und Statistik vom 2.9.2007 Musterlösungen
MehrApproximationsalgorithmen
Makespan-Scheduling Kapitel 4: Approximationsalgorithmen (dritter Teil) (weitere Beispiele und Illustrationen an der Tafel) Hilfreiche Literatur: Vazarani: Approximation Algorithms, Springer Verlag, 2001.
MehrS=[n] Menge von Veranstaltungen J S kompatibel mit maximaler Größe J
Greedy-Strategie Definition Paradigma Greedy Der Greedy-Ansatz verwendet die Strategie 1 Top-down Auswahl: Bestimme in jedem Schritt eine lokal optimale Lösung, so dass man eine global optimale Lösung
Mehr13. Der diskrete Logarithmus
13. Der diskrete Logarithmus 13.1. Definition. Sei p eine Primzahl. Wie wir in 9 bewiesen haben, ist die multiplikative Gruppe F p des Körpers F p = Z/p zyklisch. Sei g ein erzeugendes Element von F p
MehrÜbungen zur Vorlesung Grundlagen der Rechnernetze. Zusätzliche Übungen
Übungen zur Vorlesung Grundlagen der Rechnernetze Zusätzliche Übungen Hamming-Abstand d Der Hamming-Abstand d zwischen zwei Codewörtern c1 und c2 ist die Anzahl der Bits, in denen sich die beiden Codewörter
MehrRedundanz. Technische Informationsquelle Entropie und Redundanz Huffman Codierung. Martin Werner WS 09/10. Martin Werner, Dezember 09 1
Information, Entropie und Redundanz Technische Informationsquelle Entropie und Redundanz Huffman Codierung Martin Werner WS 9/ Martin Werner, Dezember 9 Information und Daten Informare/ Informatio (lat.)
Mehr4. ggt und kgv. Chr.Nelius: Zahlentheorie (SS 2007) 9
Chr.Nelius: Zahlentheorie (SS 2007) 9 4. ggt und kgv (4.1) DEF: Eine ganze Zahl g heißt größter gemeinsamer Teiler (ggt) zweier ganzer Zahlen a und b, wenn gilt: GGT 0 ) g 0 GGT 1 ) g a und g b GGT 2 )
MehrAusgewählte Kapitel Diskreter Mathematik mit Anwendungen
Wahlpflichtfach Bachelor Informatik 4. Semester Ausgewählte Kapitel Diskreter Mathematik mit Anwendungen Lektion 6: utm- und Kurt-Ulrich Witt Sommersemester 2011 Kurt-Ulrich Witt Diskrete Mathematik Lektion
MehrAlgorithmen und Datenstrukturen 2
Algorithmen und Datenstrukturen 2 Sommersemester 2007 11. Vorlesung Peter F. Stadler Universität Leipzig Institut für Informatik studla@bioinf.uni-leipzig.de Das Rucksack-Problem Ein Dieb, der einen Safe
MehrAlle bislang betrachteten Sortieralgorithmen hatten (worst-case) Laufzeit Ω(nlog(n)).
8. Untere Schranken für Sortieren Alle bislang betrachteten Sortieralgorithmen hatten (worst-case) Laufzeit Ω(nlog(n)). Werden nun gemeinsame Eigenschaften dieser Algorithmen untersuchen. Fassen gemeinsame
Mehr3. Prozesse mit kontinuierlicher Zeit
3. Prozesse mit kontinuierlicher Zeit 3.1 Einführung Wir betrachten nun Markov-Ketten (X(t)) t R +. 0 Wie beim Übergang von der geometrischen zur Exponentialverteilung können wir uns auch hier einen Grenzprozess
MehrCodierung. Auszug aus dem Skript von Maciej Liśkiewicz und Henning Fernau
Codierung Auszug aus dem Skript von Maciej Liśkiewicz und Henning Fernau Ein bisschen Informationstheorie Betrachten wir das folgende Problem: Wie lautet eine sinnvolle Definition für das quantitative
MehrDatenkompression. 1 Allgemeines. 2 Verlustlose Kompression. Holger Rauhut
Datenkompression Holger Rauhut 1. September 2010 Skript für die Schülerwoche 2010, 8.-11.9.2010 Hausdorff Center for Mathematics, Bonn 1 Allgemeines Datenkompression hat zum Ziel, Daten in digitaler Form,
MehrKapitel 2. Kombinatorische Schaltungen. Codierer und Decodierer
Kapitel 2 Kombinatorische Schaltungen Definition nach DIN 44300/93 Ein Schaltnetz oder kombinatorischer Funktionsblock ist eine Funktionseinheit zum Verarbeiten von Schaltvariablen, deren Wert am Ausgang
MehrÜbersicht. Datenstrukturen und Algorithmen Vorlesung 5: Rekursionsgleichungen (K4) Übersicht. Binäre Suche. Joost-Pieter Katoen. 20.
Übersicht Datenstrukturen und Algorithmen Vorlesung 5: (K4) Joost-Pieter Katoen Lehrstuhl für Informatik 2 Software Modeling and Verification Group http://www-i2.informatik.rwth-aachen.de/i2/dsal12/ 20.
MehrNichtlineare Optimierung ohne Nebenbedingungen
Kapitel 2 Nichtlineare Optimierung ohne Nebenbedingungen In diesem Abschnitt sollen im wesentlichen Verfahren zur Bestimmung des Minimums von nichtglatten Funktionen in einer Variablen im Detail vorgestellt
MehrSignalübertragung und -verarbeitung
ILehrstuhl für Informationsübertragung Schriftliche Prüfung im Fach Signalübertragung und -verarbeitung 6. Oktober 008 5Aufgaben 90 Punkte Hinweise: Beachten Sie die Hinweise zu den einzelnen Teilaufgaben.
MehrKapitel 1. Exakte Suche nach einem Wort. R. Stiebe: Textalgorithmen, WS 2003/04 11
Kapitel 1 Exakte Suche nach einem Wort R. Stiebe: Textalgorithmen, WS 2003/04 11 Überblick Aufgabenstellung Gegeben: Text T Σ, Suchwort Σ mit T = n, = m, Σ = σ Gesucht: alle Vorkommen von in T Es gibt
MehrLernalgorithmen SoSe 2008 in Trier. Henning Fernau Universität Trier
Lernalgorithmen SoSe 2008 in Trier Henning Fernau Universität Trier fernau@uni-trier.de 1 Lernalgorithmen Gesamtübersicht 0. Einführung 1. Identifikation (aus positiven Beispielen) 2. Zur Identifikation
MehrEinführung in die Informatik I
Einführung in die Informatik I Algorithmen und deren Programmierung Prof. Dr. Nikolaus Wulff Definition Algorithmus Ein Algorithmus ist eine präzise formulierte Handlungsanweisung zur Lösung einer gleichartigen
MehrRolf Wanka Sommersemester Vorlesung
Peer-to to-peer-netzwerke Rolf Wanka Sommersemester 2007 12. Vorlesung 12.07.2007 rwanka@cs.fau.de basiert auf einer Vorlesung von Christian Schindelhauer an der Uni Freiburg Aufbau Viceroy Knoten in Viceroy
MehrAbgabe: (vor der Vorlesung) Aufgabe 2.1 (P) O-Notation Beweisen Sie die folgenden Aussagen für positive Funktionen f und g:
TECHNISCHE UNIVERSITÄT MÜNCHEN FAKULTÄT FÜR INFORMATIK Lehrstuhl für Sprachen und Beschreibungsstrukturen SS 2009 Grundlagen: Algorithmen und Datenstrukturen Übungsblatt 2 Prof. Dr. Helmut Seidl, S. Pott,
Mehr6 Reelle und komplexe Zahlenfolgen
Mathematik für Physiker I, WS 200/20 Freitag 0.2 $Id: folgen.tex,v. 200/2/06 :2:5 hk Exp $ $Id: reihen.tex,v. 200/2/0 4:4:40 hk Exp hk $ 6 Reelle und komplexe Zahlenfolgen 6. Cauchyfolgen Wir kommen nun
Mehr4.9.7 Konstruktion der Suffixbäume
.9.7 Konstruktion der Suffixbäume Beipiel: xabxa (siehe Abbildung.27) Man beginnt mit der Konstruktion eines Suffixbaumes für gesamten String und schreibt eine 1 am Blatt, weil der Suffix xabxa an der
Mehr1.2 Eigenschaften der ganzen Zahlen
Lineare Algebra I WS 2015/16 c Rudolf Scharlau 13 1.2 Eigenschaften der ganzen Zahlen Dieser Abschnitt handelt von den gewöhlichen ganzen Zahlen Z und ihren Verknüpfungen plus und mal. Man kann die natürlichen
Mehr5 Zwei spieltheoretische Aspekte
5 Zwei spieltheoretische Aspekte In diesem Kapitel wollen wir uns mit dem algorithmischen Problem beschäftigen, sogenannte Und-Oder-Bäume (kurz UOB) auszuwerten. Sie sind ein Spezialfall von Spielbäumen,
MehrIn der Praxis werden wir häufig mit relativ komplexen Funktionen konfrontiert. y
Approximationen In der Praxis werden wir häufig mit relativ komplexen Funktionen konfrontiert. y y = f (x) x Um das Arbeiten mit einer komplizierten Funktion zu vermeiden, können wir versuchen, diese Funktion
Mehr6. Komprimierung. (Text)komprimierung ist ein Wechsel der Repräsentation von Daten, so daß sie weniger
Komprimierung 6. Komprimierung (Text)komprimierung ist ein Wechsel der Repräsentation von Daten, so daß sie weniger Platz brauchen Motivation: beschleunigt Plattenzugriffe oder Datenübertragungen Voraussetzung:
MehrÜbungsklausur Algorithmen I
Universität Karlsruhe, Institut für Theoretische Informatik Prof. Dr. P. Sanders 26.5.2010 svorschlag Übungsklausur Algorithmen I Hiermit bestätige ich, dass ich die Klausur selbständig bearbeitet habe:
MehrDie Hamming-Distanz definiert eine Metrik.
Die Hamming-Distanz definiert eine Metrik. Satz Metrik Hamming-Distanz Die Hamming-Distanz ist eine Metrik auf {0, 1} n, d.h. für alle x, y, z {0, 1} n gilt: 1 Positivität: d(x, y) 0, Gleichheit gdw x
MehrUnentscheidbare Probleme: Diagonalisierung
Unentscheidbare Probleme: Diagonalisierung Prof Dr Berthold Vöcking Lehrstuhl Informatik 1 Algorithmen und Komplexität RWTH Aachen Oktober 2011 Berthold Vöcking, Informatik 1 () Vorlesung Berechenbarkeit
MehrBeweis: Mit Hilfe des Satzes von der totalen Wahrscheinlichkeit folgt, dass
Beweis: Mit Hilfe des Satzes von der totalen Wahrscheinlichkeit folgt, dass f Z (z) = Pr[Z = z] = x W X Pr[X + Y = z X = x] Pr[X = x] = x W X Pr[Y = z x] Pr[X = x] = x W X f X (x) f Y (z x). Den Ausdruck
MehrKonstruktion der reellen Zahlen
Konstruktion der reellen Zahlen Zur Wiederholung: Eine Menge K (mit mindestens zwei Elementen) heißt Körper, wenn für beliebige Elemente x, y K eindeutig eine Summe x+y K und ein Produkt x y K definiert
Mehr3. Musterlösung. Problem 1: Boruvka MST
Universität Karlsruhe Algorithmentechnik Fakultät für Informatik WS 06/07 ITI Wagner. Musterlösung Problem : Boruvka MST pt (a) Beweis durch Widerspruch. Sei T MST von G, e die lokal minimale Kante eines
MehrProf. Dr. Heinrich Müller; Dr. Frank Weichert 7. September 2015
Technische Universität Dortmund Informatik VII (Graphische Systeme) Prof. Dr. Heinrich Müller; Dr. Frank Weichert 7. September 2015 Übungsaufgaben zum Vorkurs Informatik Wintersemester 2015/2016 Teil I
MehrBerechnung von W für die Elementarereignisse einer Zufallsgröße
R. Albers, M. Yanik Skript zur Vorlesung Stochastik (lementarmathematik) 5. Zufallsvariablen Bei Zufallsvariablen geht es darum, ein xperiment durchzuführen und dem entstandenen rgebnis eine Zahl zuzuordnen.
MehrAlgorithmen & Komplexität
Algorithmen & Komplexität Angelika Steger Institut für Theoretische Informatik steger@inf.ethz.ch Kürzeste Pfade Problem Gegeben Netzwerk: Graph G = (V, E), Gewichtsfunktion w: E N Zwei Knoten: s, t Kantenzug/Weg
MehrÜbung zur Vorlesung Berechenbarkeit und Komplexität
RWTH Aachen Lehrgebiet Theoretische Informatik Reidl Ries Rossmanith Sanchez Tönnis WS 2012/13 Übungsblatt 7 26.11.2012 Übung zur Vorlesung Berechenbarkeit und Komplexität Aufgabe T15 Entwickeln Sie ein
MehrLösungen zum 9. Übungsblatt zur Vorlesung Höhere Mathematik II für biw/ciw/mach/mage/vt
Karlsruher Institut für Technologie Institut für Algebra und Geometrie PD Dr. F. Hettlich Dr. S. Schmitt Dipl.-Math. J. Kusch Karlsruhe, den 09.06.20 Lösungen zum 9. Übungsblatt zur Vorlesung Höhere Mathematik
MehrWS 2009/10. Diskrete Strukturen
WS 2009/10 Diskrete Strukturen Prof. Dr. J. Esparza Lehrstuhl für Grundlagen der Softwarezuverlässigkeit und theoretische Informatik Fakultät für Informatik Technische Universität München http://www7.in.tum.de/um/courses/ds/ws0910
MehrEinführung in die Integralrechnung. Mag. Mone Denninger 13. November 2005
Einführung in die Integralrechnung Mag. Mone Denninger. November 5 INHALTSVERZEICHNIS 8. Klasse Inhaltsverzeichnis Einleitung Berechnung einfacher Stammfunktionen. Integrationsregeln.........................
Mehr6.2 Scan-Konvertierung (Scan Conversion)
6.2 Scan-Konvertierung (Scan Conversion) Scan-Konvertierung ist die Rasterung von einfachen Objekten (Geraden, Kreisen, Kurven). Als Ausgabemedium dient meist der Bildschirm, der aus einem Pixelraster
MehrÜbersicht über Informatik und Softwaresystemtechnik WS 99/00, Prof. Dr. Andreas Schwill
Konvexe Hülle Hierbei handelt es sich um ein klassisches Problem aus der Algorithmischen Geometrie, dem Teilgebiet der Informatik, in dem man für geometrische Probleme effiziente Algorithmen bestimmt.
MehrTechnische Universität München
Stand der Vorlesung Kapitel 2: Auffrischung einiger mathematischer Grundlagen Mengen, Potenzmenge, Kreuzprodukt (Paare, Tripel, n-tupel) Relation: Teilmenge MxN Eigenschaften: reflexiv, symmetrisch, transitiv,
MehrNumerische Verfahren und Grundlagen der Analysis
Numerische Verfahren und Grundlagen der Analysis Rasa Steuding Hochschule RheinMain Wiesbaden Wintersemester 2011/12 R. Steuding (HS-RM) NumAna Wintersemester 2011/12 1 / 16 4. Groß-O R. Steuding (HS-RM)
MehrDie Komplexitätsklassen P und NP
Die Komplexitätsklassen P und NP Prof. Dr. Berthold Vöcking Lehrstuhl Informatik 1 Algorithmen und Komplexität RWTH Aachen 3. Dezember 2009 Berthold Vöcking, Informatik 1 () Vorlesung Berechenbarkeit und
MehrSortierverfahren für Felder (Listen)
Sortierverfahren für Felder (Listen) Generell geht es um die Sortierung von Daten nach einem bestimmten Sortierschlüssel. Es ist auch möglich, daß verschiedene Daten denselben Sortierschlüssel haben. Es
MehrDiskrete Strukturen. Abgabetermin: 15. Januar 2013, 14 Uhr in die DS Briefkästen
Technische Universität München Fakultät für Informatik Lehrstuhl für Effiziente Algorithmen Prof. Dr. Ernst W. Mayr Dr. Werner Meixner Wintersemester 2012/13 Übungsblatt 11 7. Januar 2013 Diskrete Strukturen
MehrLösungen zur Klausur WAHRSCHEINLICHKEITSTHEORIE UND STATISTIK (STOCHASTIK)
Institut für Stochastik Dr. Steffen Winter Lösungen zur Klausur WAHRSCHEINLICHKEITSTHEORIE UND STATISTIK (STOCHASTIK) für Studierende des Maschinenbaus vom 7. Juli (Dauer: 8 Minuten) Übersicht über die
MehrKlausur zur Vorlesung Grundbegriffe der Informatik 5. März 2014
Klausur zur Vorlesung Grundbegriffe der Informatik 5. März 2014 Klausurnummer Nachname: Vorname: Matr.-Nr.: Aufgabe 1 2 3 4 5 6 7 max. Punkte 6 8 4 7 5 6 8 tats. Punkte Gesamtpunktzahl: Note: Punkte Aufgabe
Mehr1 Grundlagen. 1.1 Erste Grundbegriffe 1.2 Kryptographische Systeme 1.3 Informationstheoretische Grundlagen
1 Grundlagen 1.1 Erste Grundbegriffe 1.2 Kryptographische Systeme 1.3 Informationstheoretische Grundlagen Die Überlegungen dieses Kapitels basieren auf der Informationstheorie von Shannon. Er beschäftigte
MehrMathematische Probleme, SS 2013 Donnerstag $Id: quadratisch.tex,v /08/12 09:49:46 hk Exp $ c a b = 1 3. tan(2φ) =
Mathematische Probleme SS 13 Donnerstag 136 $Id: quadratischtexv 18 13/08/1 09:49:46 hk Exp $ 4 Kegelschnitte 41 Quadratische Gleichungen Nachdem wir in der letzten Sitzung die Hauptachsentransformation
Mehr