Theoretische Grundlagen der Informatik Informationstheorie Vorlesung vom 2. und 4. Februar 2016
INSTITUT FÜR THEORETISCHE INFORMATIK
0
Sanders, Wagner - Theoretische Grundlagen der Informatik KIT –04.02.2016 Universität desGog, Landes Baden-Württemberg und nationales Forschungszentrum in der Helmholtz-Gemeinschaft
INSTITUT FÜR THEORETISCHE INFORMATIK
www.kit.edu
Thema dieses Kapitels Informationstheorie hat Anwendungen in Quellkodierung Kanalkodierung Kryptographie
1
04.02.2016
Gog, Sanders, Wagner - Theoretische Grundlagen der Informatik
INSTITUT FÜR THEORETISCHE INFORMATIK
Thema dieses Kapitels Informationstheorie hat Anwendungen in Quellkodierung Reduktion von Redundanz/Irrelevanz am Ausgang einer Informationsquelle Hauptaufgabe: Datenkompression Interessante Anwendung: Komprimierte Datenstrukturen Unterscheidung: Verlustfrei vs. verlustbehaftete Kompression Hohe wirtschaftliche Bedeutung
Kanalkodierung Kryptographie
1
04.02.2016
Gog, Sanders, Wagner - Theoretische Grundlagen der Informatik
INSTITUT FÜR THEORETISCHE INFORMATIK
Thema dieses Kapitels Informationstheorie hat Anwendungen in Quellkodierung Kanalkodierung Übertragung von digitalen Daten über gestörte Kanäle Schutz vor Übertragungsfehlern durch Redundanz Fehlerkorrektur
Kryptographie
1
04.02.2016
Gog, Sanders, Wagner - Theoretische Grundlagen der Informatik
INSTITUT FÜR THEORETISCHE INFORMATIK
Thema dieses Kapitels Informationstheorie hat Anwendungen in Quellkodierung Kanalkodierung Kryptographie Informationssicherheit: Konzeption, Definition und Konstruktion von Informationssystemen, die widerstandsfähig gegen unbefugtes Lesen und Verändern sind Kryptographie bildet zusammen mit Kryptoanalyse die Kryptologie.
1
04.02.2016
Gog, Sanders, Wagner - Theoretische Grundlagen der Informatik
INSTITUT FÜR THEORETISCHE INFORMATIK
Material für Informationstheorie Vorlesungsfolien Martin Werner: Information und Codierung, VIEWEG TEUBNER, 2008 http://rd.springer.com/book/10.1007/978-3-8348-9550-9
2
04.02.2016
Gog, Sanders, Wagner - Theoretische Grundlagen der Informatik
INSTITUT FÜR THEORETISCHE INFORMATIK
Information Sei Σ = {1, . . . , n} eine Menge von Zeichen mit Wahrscheinlichkeiten { p1 , . . . , pn } . Wir betrachten eine Informationsquelle X , die Zeichen i ∈ Σ mit Wahrscheinlichkeit pi liefert. Bemerkung: X wird auch diskrete, endliche Zufallsvariable genannt.
3
04.02.2016
Gog, Sanders, Wagner - Theoretische Grundlagen der Informatik
INSTITUT FÜR THEORETISCHE INFORMATIK
Information Sei Σ = {1, . . . , n} eine Menge von Zeichen mit Wahrscheinlichkeiten { p1 , . . . , pn } . Wir betrachten eine Informationsquelle X , die Zeichen i ∈ Σ mit Wahrscheinlichkeit pi liefert. Bemerkung: X wird auch diskrete, endliche Zufallsvariable genannt. Beispiel Ein idealer Würfel wird durch die Wahrscheinlichkeiten ( 61 , 61 , 16 , 61 , 16 , 16 ) dargestellt. Das Ergebnis des idealen Würfels ist schwer vorherzusagen. Der Erkenntnisgewinn nach Ausgang des Experiments ist deshalb groß.
3
04.02.2016
Gog, Sanders, Wagner - Theoretische Grundlagen der Informatik
INSTITUT FÜR THEORETISCHE INFORMATIK
Information Sei Σ = {1, . . . , n} eine Menge von Zeichen mit Wahrscheinlichkeiten { p1 , . . . , pn } . Wir betrachten eine Informationsquelle X , die Zeichen i ∈ Σ mit Wahrscheinlichkeit pi liefert. Bemerkung: X wird auch diskrete, endliche Zufallsvariable genannt. Beispiel Betrachte den gezinkten Würfel mit Wahrscheinlichkeiten 1 1 1 1 1 1 ( 10 , 10 , 10 , 10 , 10 , 2 ). Hier ist schon klarer, welche Zahl als nächstes gewürfelt wird. Der Erkenntnisgewinn ist also kleiner.
3
04.02.2016
Gog, Sanders, Wagner - Theoretische Grundlagen der Informatik
INSTITUT FÜR THEORETISCHE INFORMATIK
Information Sei Σ = {1, . . . , n} eine Menge von Zeichen mit Wahrscheinlichkeiten { p1 , . . . , pn } . Wir betrachten eine Informationsquelle X , die Zeichen i ∈ Σ mit Wahrscheinlichkeit pi liefert. Bemerkung: X wird auch diskrete, endliche Zufallsvariable genannt. Frage Wir suchen ein Maß für den Erkenntnisgewinn nach Ausgang k mit Wahrscheinlichkeit pk . Wir bezeichnen diesen Erkenntnisgewinn als Information Ipk
3
04.02.2016
Gog, Sanders, Wagner - Theoretische Grundlagen der Informatik
INSTITUT FÜR THEORETISCHE INFORMATIK
Information Sei Σ = {1, . . . , n} eine Menge von Zeichen mit Wahrscheinlichkeiten { p1 , . . . , pn } . Wir betrachten eine Informationsquelle X , die Zeichen i ∈ Σ mit Wahrscheinlichkeit pi liefert. Bemerkung: X wird auch diskrete, endliche Zufallsvariable genannt. Wünsche an die Definition von Information Information soll nicht negativ sein. In Formeln: Ipi ≥ 0
Ein sicheres Ereignis (also pi = 1) soll keine Information liefern. Kleine Änderungen an der Wahrscheinlichkeit sollen nur kleine Änderungen an der Information bewirken. Etwas mathematischer ausgedrückt: Information soll stetig sein.
3
04.02.2016
Gog, Sanders, Wagner - Theoretische Grundlagen der Informatik
INSTITUT FÜR THEORETISCHE INFORMATIK
Information Sei Σ = {1, . . . , n} eine Menge von Zeichen mit Wahrscheinlichkeiten { p1 , . . . , pn } . Wir betrachten eine Informationsquelle X , die Zeichen i ∈ Σ mit Wahrscheinlichkeit pi liefert. Bemerkung: X wird auch diskrete, endliche Zufallsvariable genannt. Wünsche an die Definition von Information Wunsch: Eine doppelt so lange Zeichenkette soll doppelte Information enthalten können Deshalb fordern wir, dass Ipi ·pj = Ipi + Ipj Dies soll später sicherstellen, dass die Information einer (unabhängigen) Zeichenkette gleich der Summe der Einzelinformationen ist. 3
04.02.2016
Gog, Sanders, Wagner - Theoretische Grundlagen der Informatik
INSTITUT FÜR THEORETISCHE INFORMATIK
Information Sei Σ = {1, . . . , n} eine Menge von Zeichen mit Wahrscheinlichkeiten { p1 , . . . , pn } . Wir betrachten eine Informationsquelle X , die Zeichen i ∈ Σ mit Wahrscheinlichkeit pi liefert. Bemerkung: X wird auch diskrete, endliche Zufallsvariable genannt. Definition Information Sei p eine Wahrscheinlichkeit. Die Information von p (zur Basis b) ist 1 Ip = logb ( ) = − logb (p ) p Im Folgenden verwenden wir immer die Basis b = 2.
3
04.02.2016
Gog, Sanders, Wagner - Theoretische Grundlagen der Informatik
INSTITUT FÜR THEORETISCHE INFORMATIK
Wiederholung: Rechenregeln Logarithmus loga (x · y ) = loga (x ) + loga (y ) loga (1/x ) = − loga (x ) Basiswechsel: logb (x ) loga (x ) = logb (a)
2
0
1
2
3
4
5 p
6
7
8
9
10
K2 K4 K6 K8
Nützliche Ungleichung: loge x ≤ x − 1 bzw. log2 x ≤ log2 e · (x − 1) 4
04.02.2016
Gog, Sanders, Wagner - Theoretische Grundlagen der Informatik
INSTITUT FÜR THEORETISCHE INFORMATIK
Information Definition Information Sei p eine Wahrscheinlichkeit. Die Information von p (zur Basis b) ist 1 Ip = logb ( ) = − logb (p ) p Im Folgenden verwenden wir immer die Basis b = 2. Beispiel 2: Betrachte einen Münze mit Seiten 0, 1 und Wkten p0 = p1 = 12 . Die Information eines Münzwurfs ist log(1/ 12 ) = log(2) = 1. Werfen wir die Münze k mal, so ist die Wahrscheinlichkeit für einen bestimmen Ausgang gleich 12 · . . . · 12 = 21k . Die Information ist dann − log( 21k ) = log(2k ) = k 5
04.02.2016
Gog, Sanders, Wagner - Theoretische Grundlagen der Informatik
INSTITUT FÜR THEORETISCHE INFORMATIK
Entropie Anschaulich formuliert Entropie ist ein Maß für den mittleren Informationsgehalt pro Zeichen einer Quelle.
6
04.02.2016
Gog, Sanders, Wagner - Theoretische Grundlagen der Informatik
INSTITUT FÜR THEORETISCHE INFORMATIK
Entropie Entropie Die Entropie (zur Basis 2) einer diskreten Zufallsvariable mit Ereignissen (Zeichen) X und Wahrscheinlichkeiten p (x ) für x ∈ X , ist definiert durch 1 H (X ) = ∑ p (x ) log2 ( ) p (x ) x ∈X dabei gelten die folgenden Konventionen 0 · log 0 := 0, a · log
a := ∞ 0
Bemerkung Es gilt immer H (X ) ≥ 0. 7
04.02.2016
Gog, Sanders, Wagner - Theoretische Grundlagen der Informatik
INSTITUT FÜR THEORETISCHE INFORMATIK
Bemerkungen zur Entropie
H (X ) =
∑
x ∈X
p (x ) log2 (
1 ) p (x )
Die Entropie einer diskreten, endlichen Zufallsvariable mit n Zeichen wird maximal, wenn alle Zeichen gleichwahrscheinlich sind. Die maximale Entropie beträgt dann log2 (n). Die Entropie der deutschen Sprache liegt etwa bei 4,1. Bei 26 Buchstaben ergibt sich eine maximale Entropie von log2 (26) ≈ 4,7.
8
04.02.2016
Gog, Sanders, Wagner - Theoretische Grundlagen der Informatik
INSTITUT FÜR THEORETISCHE INFORMATIK
Entropie einer Münze mit Wkt p für Zahl 1.00
H(X) [Bit]
0.75
0.50
0.25
0.00 0.00
0.25
0.50
0.75
1.00
p
H (X ) = 9
∑
x ∈X 04.02.2016
p (x ) log2 (
1 ) = −p log2 (p ) − (1 − p ) log2 (1 − p ) p (x )
Gog, Sanders, Wagner - Theoretische Grundlagen der Informatik
INSTITUT FÜR THEORETISCHE INFORMATIK
(Platzsparende) Codierungen Wir betrachten eine Informationsquelle X , die Zeichen i ∈ Σ mit Wahrscheinlichkeit pi liefert. Zum Codieren der Zeichen aus Σ haben wir aber nur Zeichenketten aus {0, 1}∗ zur Verfügung. Wie können wir Σ ohne Informationsverlust codieren, dass die erwartete Länge der Ausgabe möglichst klein wird?
Formal Wir ordnen jedem Zeichen i ∈ Σ ein Codewort zi ∈ {0, 1}∗ mit ni Zeichen zu. Die mittlere Codewortlänge ist n = ∑i ∈Σ pi ni .
10
04.02.2016
Gog, Sanders, Wagner - Theoretische Grundlagen der Informatik
INSTITUT FÜR THEORETISCHE INFORMATIK
Codierungsbäume Wir codieren im Folgenden binär. Sei Σ = {1, . . . n} ein Alphabet mit Präfix-Code C = {c1 , . . . cn }.
Der Codierungsbaum T von (Σ, C ) ist ein gerichteter, binärer Baum so dass jede Kante mit 0 oder 1 annotiert ist, ausgehend von einem Knoten höchstens eine Kante mit 0 und höchstens eine Kante mit 1 annotiert ist, die Blätter von T genau die Elemente in Σ sind, der Weg von der Wurzel zu i ∈ Σ mit ci annotiert ist. 0 0
11
04.02.2016
1
1
0
1
0
1
0
1
0
1
0
1
a
b
c
d
e
f
g
h
Gog, Sanders, Wagner - Theoretische Grundlagen der Informatik
INSTITUT FÜR THEORETISCHE INFORMATIK
Codierungsbäume
0 0
1
1
0
1
0
1
0
1
0
1
0
1
a
b
c
d
e
f
g
h
Beispiele Zeichen c hat Code 010 Zeichen f hat Code 101 Zeichen h hat Code 111
12
04.02.2016
Gog, Sanders, Wagner - Theoretische Grundlagen der Informatik
INSTITUT FÜR THEORETISCHE INFORMATIK
Codierungsbäume 0 0
1
1
0
1
0
1
0
1
0
1
0
1
a
b
c
d
e
f
g
h
Bemerkungen Es besteht ein direkter Zusammenhang zwischen Codierungen und den zugehörigen Bäumen. Die Tiefe dT (v ) eines Knotens v in einem Baum T ist die Anzahl der Kanten auf einem kürzesten Weg von der Wurzel zu v.
13
04.02.2016
Gog, Sanders, Wagner - Theoretische Grundlagen der Informatik
INSTITUT FÜR THEORETISCHE INFORMATIK
Codierungsbäume 0 0
1
1
0
1
0
1
0
1
0
1
0
1
a
b
c
d
e
f
g
h
Bemerkungen Gegeben sei eine Codierung für Alphabet Σ mit Wahrscheinlichkeit pi für i ∈ Σ, Codewortlänge ni für i ∈ Σ und zugehörigem Codierungsbaum T . Die mittlere Codewortlänge ist n = ∑i ∈Σ pi ni = ∑v ∈Σ pv dT (v ). 13
04.02.2016
Gog, Sanders, Wagner - Theoretische Grundlagen der Informatik
INSTITUT FÜR THEORETISCHE INFORMATIK
Beispiel Betrachte eine Informationsquelle X mit Σ = {a, b, c , d , e, f , g , h} und Wahrscheinlichkeiten ps = 1/8 für s ∈ Σ. 0 0
14
04.02.2016
1
1
0
1
0
1
0
1
0
1
0
1
a
b
c
d
e
f
g
h
Gog, Sanders, Wagner - Theoretische Grundlagen der Informatik
INSTITUT FÜR THEORETISCHE INFORMATIK
Beispiel Betrachte eine Informationsquelle X mit Σ = {a, b, c , d , e, f , g , h} und Wahrscheinlichkeiten ps = 1/8 für s ∈ Σ. 0 0
1
1
0
1
0
1
0
1
0
1
0
1
a
b
c
d
e
f
g
h
Mittlere Codewortlänge Hier haben alle Codes Länge 3. Die mittlere Codewortlänge ist also 3.
14
04.02.2016
Gog, Sanders, Wagner - Theoretische Grundlagen der Informatik
INSTITUT FÜR THEORETISCHE INFORMATIK
Beispiel Betrachte eine Informationsquelle X mit Σ = {a, b, c , d , e, f , g , h} und Wahrscheinlichkeiten ps = 1/8 für s ∈ Σ. 0 0
1
1
0
1
0
1
0
1
0
1
0
1
a
b
c
d
e
f
g
h
Anzahl der codierten Zeichen Mit jedem zusätzlichen Bit verdoppelt sich die Größe des darstellbaren Alphabets. Um ein Alphabet Σ mit Wörtern gleicher Länge zu kodieren braucht man also dlog(|Σ|)e Bits. 14
04.02.2016
Gog, Sanders, Wagner - Theoretische Grundlagen der Informatik
INSTITUT FÜR THEORETISCHE INFORMATIK
Präfix-Codes Bei Codes mit variabler Länge muss man wissen, wann ein neues Codewort beginnt. Ein Präfix-Code ist ein Code, so dass kein Codewort Anfang eines anderen Codeworts ist. Für Präfix-Codes benötigt man deswegen keine Trennzeichen. Jeder Präfix-Code kann auf die in der letzten Folie benutze Art als Baum dargestellt werden.
15
04.02.2016
Gog, Sanders, Wagner - Theoretische Grundlagen der Informatik
INSTITUT FÜR THEORETISCHE INFORMATIK
Beispiel: Morse-Alphabet Das Morse-Alphabet hat variable Länge. Das Morse-Alphabet ist kein Präfix-Code. Zur Unterscheidung von A und ET benötigt man ein Trennzeichen. Das Morsealphabet besteht deswegen aus 3 Zeichen. Buchstabe A B C D E F G H I J K L M 16
04.02.2016
Morsezeichen ◦− − ◦ ◦◦ − ◦ −◦ −◦◦ ◦ ◦ ◦ −◦ −−◦ ◦ ◦ ◦◦ ◦◦ ◦ − −− −◦− ◦ − ◦◦ −−
Gog, Sanders, Wagner - Theoretische Grundlagen der Informatik
Buchstabe N O P Q R S T U V W X Y Z
Morsezeichen −◦ −−− ◦ − −◦ − − ◦− ◦−◦ ◦◦◦ − ◦◦− ◦ ◦ ◦− ◦−− − ◦ ◦− − ◦ −− − − ◦◦
INSTITUT FÜR THEORETISCHE INFORMATIK
Quellencodierungstheorem Es seien Codes mit variabler Länge erlaubt. Es ist dann nützlich, häufige Zeichen mit kurzen Wörtern zu codieren. Dies verkleinert die mittlere Codewortlänge. Satz (Shannon’s Quellencodierungstheorem): Sei X eine diskrete endliche Zufallsvariable mit Entropie H (X ). Dann existiert ein Präfix-Code für X mit einem Codealphabet aus D Zeichen so, dass für die mittlerer Codewortlänge n gilt H (X ) H (X ) ≤n< +1 . log2 D log2 D Bemerkung In der Vorlesung betrachten wir den Fall D = 2, d.h. wir verwenden den binären Code. Entropie und mittlere Codewortlänge werden dann in Anzahl Binärzeichen (Bit) angegeben. 17
04.02.2016
Gog, Sanders, Wagner - Theoretische Grundlagen der Informatik
INSTITUT FÜR THEORETISCHE INFORMATIK
Quellencodierungstheorem – Beweis Schritt 1 Kraftsche Ungleichung Für die Existenz eines binären Präfixcodes mit K Codewörtern der Länge n1 , n2 , . . . , nK ist notwendig und hinreichend, dass die kraftsche Ungleichung erfüllt ist. ∑ 2−nk ≤ 1 i
Beweis Auf der i-ten Ebene des Coderierungsbaum gibt es 2i Konten Zu jedem Knoten der i-ten Ebene gehören genau 2n−i Knoten in der letzten (n-ten) Ebene Der Codebaum liefert einen Präfixcode
18
04.02.2016
Gog, Sanders, Wagner - Theoretische Grundlagen der Informatik
INSTITUT FÜR THEORETISCHE INFORMATIK
Quellencodierungstheorem – Beweis Ebene
z1 z3
z2
z11 z10 z9 z8 z7 z6 z5 z4
18
04.02.2016
Gog, Sanders, Wagner - Theoretische Grundlagen der Informatik
# Knoten
0
20 = 1
1
21 = 2
2
22 = 4
3
23 = 8
4
24 = 16
INSTITUT FÜR THEORETISCHE INFORMATIK
Quellencodierungstheorem – Beweis Ordne Codewortlänge der Größe nach n1 ≤ n2 ≤ · · · ≤ nK = n Das Codewort zi sperrt 2n−ni Blattknoten; da die gesperrten Blätter unterschiedlicher Codewörter nicht überlappen gilt insgesamt: K
∑ 2n−nk
k =1
Blätter gesperrt. Ein Code mit maximaler Länge n hat maximal 2n Wörter. D.h. n−nk ≤ 2n . Division mit 2n liefert also: ∑K k =1 2 K
∑ 2−nk
k =1
18
04.02.2016
Gog, Sanders, Wagner - Theoretische Grundlagen der Informatik
≤1 INSTITUT FÜR THEORETISCHE INFORMATIK
Quellencodierungstheorem – Beweis Wir haben gerade die Präfixeigenschaft des Codes benutzt. Die Aussage lässt sich von Präfixcodes auf eindeutig decodierbare Codes erweitern. Satz von Mc Millan „Jeder eindeutig decodierbare Code erfüllt die kraftsche Ungleichung.”
18
04.02.2016
Gog, Sanders, Wagner - Theoretische Grundlagen der Informatik
INSTITUT FÜR THEORETISCHE INFORMATIK
Quellencodierungstheorem – Beweis Schritt 2 Linke Seite: H (X ) − n ≤ 0 K
H (X ) − n =
1
∑ pk log pk
k =1
−
K
K
k =1
k =1
∑ pk nk = ∑ pk log
2 − nk pk
mit log x ≤ (x − 1) · log e 2−nk ∑ pk log pk k =1
K
K
≤ log e ·
∑ pk
k =1
2−nk −1 pk
K K − nk = log e · 2 − p ∑ k ∑ ≤0 k =1 k =1 | {z } | {z } Kraft
≤ 1
18
04.02.2016
Gog, Sanders, Wagner - Theoretische Grundlagen der Informatik
=1
INSTITUT FÜR THEORETISCHE INFORMATIK
Quellencodierungstheorem – Beweis Schritt 3 Rechte Seite: n < H (X ) + 1 Es gilt die kraftschen Ungl. und es existiert ein Code mit entspr. Längen n1 , . . . , nK . Somit K
∑
k =1
2−nk ≤ 1 =
K
∑ pk
k =1
Solange die kraftsche Ungl. gilt, sind wir frei in der Wahl der nk . Wähle nk so, dass 2 − n k ≤ pk wobei nk die kleinste nat. Zahl sei, welche die Ungl. erfüllt. Damit gilt für jedes nk − 1 pk < 2−nk +1 18
04.02.2016
Gog, Sanders, Wagner - Theoretische Grundlagen der Informatik
INSTITUT FÜR THEORETISCHE INFORMATIK
Quellencodierungstheorem – Beweis Logarithmieren und multipliziere mit pk ergibt: pk log pk < −nk · pk + pk Aufsummieren über alle k ergibt: K
−
1
∑ pk log pk
k =1
< −n + 1
⇔ n < H (X ) + 1
18
04.02.2016
Gog, Sanders, Wagner - Theoretische Grundlagen der Informatik
INSTITUT FÜR THEORETISCHE INFORMATIK
Beispiel: Shannon-Fano Codierung Elemente 0 1 2 3 4 5 6 7 8 9 10 11 12 ... 19
04.02.2016
Wahrscheinlichkeiten 0,1591 0,1388 0,1125 0,0946 0,0796 0,0669 0,0563 0,0473 0,0398 0,0334 0,0281 0,0237 0,0199 ...
Gog, Sanders, Wagner - Theoretische Grundlagen der Informatik
Codewort
... INSTITUT FÜR THEORETISCHE INFORMATIK
Beispiel: Shannon-Fano Codierung Elemente 0 1 2 3 4 5 6 7 8 9 10 11 12 ... 19
04.02.2016
Wahrscheinlichkeiten 0,1591 0,1388 0,1125 0,0946 0,0796 0,0669 0,0563 0,0473 0,0398 0,0334 0,0281 0,0237 0,0199 ...
Gog, Sanders, Wagner - Theoretische Grundlagen der Informatik
Codewort 0 0 0 0 1 1 1 1 1 1 1 1 1 ... INSTITUT FÜR THEORETISCHE INFORMATIK
Beispiel: Shannon-Fano Codierung Elemente 0 1 2 3 4 5 6 7 8 9 10 11 12 ... 19
04.02.2016
Wahrscheinlichkeiten 0,1591 0,1388 0,1125 0,0946 0,0796 0,0669 0,0563 0,0473 0,0398 0,0334 0,0281 0,0237 0,0199 ...
Gog, Sanders, Wagner - Theoretische Grundlagen der Informatik
Codewort 00 00 01 01 1 1 1 1 1 1 1 1 1 ... INSTITUT FÜR THEORETISCHE INFORMATIK
Beispiel: Shannon-Fano Codierung Elemente 0 1 2 3 4 5 6 7 8 9 10 11 12 ... 19
04.02.2016
Wahrscheinlichkeiten 0,1591 0,1388 0,1125 0,0946 0,0796 0,0669 0,0563 0,0473 0,0398 0,0334 0,0281 0,0237 0,0199 ...
Gog, Sanders, Wagner - Theoretische Grundlagen der Informatik
Codewort 000 001 01 01 1 1 1 1 1 1 1 1 1 ... INSTITUT FÜR THEORETISCHE INFORMATIK
Beispiel: Shannon-Fano Codierung Elemente 0 1 2 3 4 5 6 7 8 9 10 11 12 ... 19
04.02.2016
Wahrscheinlichkeiten 0,1591 0,1388 0,1125 0,0946 0,0796 0,0669 0,0563 0,0473 0,0398 0,0334 0,0281 0,0237 0,0199 ...
Gog, Sanders, Wagner - Theoretische Grundlagen der Informatik
Codewort 000 001 010 011 1 1 1 1 1 1 1 1 1 ... INSTITUT FÜR THEORETISCHE INFORMATIK
Beispiel: Shannon-Fano Codierung Elemente 0 1 2 3 4 5 6 7 8 9 10 11 12 ... 19
04.02.2016
Wahrscheinlichkeiten 0,1591 0,1388 0,1125 0,0946 0,0796 0,0669 0,0563 0,0473 0,0398 0,0334 0,0281 0,0237 0,0199 ...
Gog, Sanders, Wagner - Theoretische Grundlagen der Informatik
Codewort 000 001 010 011 10 10 10 10 11 11 11 11 11 ... INSTITUT FÜR THEORETISCHE INFORMATIK
Beispiel: Shannon-Fano Codierung Elemente 0 1 2 3 4 5 6 7 8 9 10 11 12 ... 19
04.02.2016
Wahrscheinlichkeiten 0,1591 0,1388 0,1125 0,0946 0,0796 0,0669 0,0563 0,0473 0,0398 0,0334 0,0281 0,0237 0,0199 ...
Gog, Sanders, Wagner - Theoretische Grundlagen der Informatik
Codewort 000 001 010 011 100 100 101 101 11 11 11 11 11 ... INSTITUT FÜR THEORETISCHE INFORMATIK
Beispiel: Shannon-Fano Codierung Ein paar Zwischenschritte später ... Elemente 0 1 2 3 4 5 6 7 8 9 10 11 12 ... 19
04.02.2016
Wahrscheinlichkeiten 0,1591 0,1388 0,1125 0,0946 0,0796 0,0669 0,0563 0,0473 0,0398 0,0334 0,0281 0,0237 0,0199 ...
Gog, Sanders, Wagner - Theoretische Grundlagen der Informatik
Codewort 000 001 010 011 1000 1001 1010 1011 11000 11001 11010 11011 111000 ... INSTITUT FÜR THEORETISCHE INFORMATIK
Shannon-Fano Codierung Funktion ShannonFano(Z ) Eingabe: Zeichenliste Z = (z1 , . . . , zk ) mit Wkten p1 , . . . pk Ausgabe: Shannon-Fano Codierung (c1 , . . . , ck ) Wenn k = 1 return (c1 = e) and exit
Sortiere Zeichen Z absteigend nach Wkt pi (d.h p1 ≥ p2 , . . . ≥ pk ). Trenne Z in Z1 ← (z1 , . . . zl ) Z2 ← (zl +1 , . . . zk )
so dass | ∑li =1 pi − ∑ki=l +1 pi | minimal ist.
(c1 , . . . cl ) ← 0 ShannonFano(Z1 ) L (cl +1 , . . . ck ) ← 1 ShannonFano(Z2 ) L
return (c1 , . . . ck ) 20
04.02.2016
Gog, Sanders, Wagner - Theoretische Grundlagen der Informatik
INSTITUT FÜR THEORETISCHE INFORMATIK
Codierungsbaum Shannon-Fano 1
0
0 0
1
0 0
21
04.02.2016
1
1
0
1 0
0
1
0
1
0
1
0
1
0
1
0
1
2
3
4
5
6
7
8
9 10 11 12
Gog, Sanders, Wagner - Theoretische Grundlagen der Informatik
1
INSTITUT FÜR THEORETISCHE INFORMATIK
Bemerkung Die mittlere Codewortlänge der Shannon-Fano Codierung muss nicht optimal sein. Sie ist deswegen nicht sehr verbreitet. Wir werden sehen, dass die Huffman-Codierung optimale mittlere Codewortlänge besitzt.
22
04.02.2016
Gog, Sanders, Wagner - Theoretische Grundlagen der Informatik
INSTITUT FÜR THEORETISCHE INFORMATIK
Beispiel: Huffman-Codierung d 0, 4 f 0, 2 b 0, 15 e 0, 15 a 0, 05 c 0, 05
23
04.02.2016
Gog, Sanders, Wagner - Theoretische Grundlagen der Informatik
INSTITUT FÜR THEORETISCHE INFORMATIK
Beispiel: Huffman-Codierung d 0, 4 f 0, 2 b 0, 15 e 0, 15 a 0, 05 c 0, 05
23
04.02.2016
0 0, 1 1
Gog, Sanders, Wagner - Theoretische Grundlagen der Informatik
INSTITUT FÜR THEORETISCHE INFORMATIK
Beispiel: Huffman-Codierung d 0, 4 f 0, 2 b 0, 15 0
e 0, 15 a 0, 05 c 0, 05
23
04.02.2016
0, 25
0 0, 1 1
1
Gog, Sanders, Wagner - Theoretische Grundlagen der Informatik
INSTITUT FÜR THEORETISCHE INFORMATIK
Beispiel: Huffman-Codierung d 0, 4 f 0, 2 b 0, 15
0 0, 35 1
0
e 0, 15 a 0, 05 c 0, 05
23
04.02.2016
0, 25
0 0, 1 1
1
Gog, Sanders, Wagner - Theoretische Grundlagen der Informatik
INSTITUT FÜR THEORETISCHE INFORMATIK
Beispiel: Huffman-Codierung d 0, 4 f 0, 2 b 0, 15
0 1
0
e 0, 15 a 0, 05 c 0, 05
23
04.02.2016
0
0, 35
0, 25
0 0, 1 1
0, 6 1
1
Gog, Sanders, Wagner - Theoretische Grundlagen der Informatik
INSTITUT FÜR THEORETISCHE INFORMATIK
Beispiel: Huffman-Codierung 1
d 0, 4 f 0, 2 b 0, 15
0 1
0
e 0, 15 a 0, 05 c 0, 05
23
04.02.2016
0
0, 35
0, 1 1
0, 6 0, 25
0
1 0
1
1
Gog, Sanders, Wagner - Theoretische Grundlagen der Informatik
INSTITUT FÜR THEORETISCHE INFORMATIK
Beispiel: Huffman-Codierung 1
d 0, 4 f 0, 2 b 0, 15
0 1
0
e 0, 15 a 0, 05 c 0, 05
0
0, 35
0, 6 0, 25
0 0, 1 1
1 0
1
1
Beispiele Zeichen c hat Code 0111 Zeichen e hat Code 010 Zeichen d hat Code 1
23
04.02.2016
Gog, Sanders, Wagner - Theoretische Grundlagen der Informatik
INSTITUT FÜR THEORETISCHE INFORMATIK
Huffman-Codierung Eingabe: Zeichen 1, . . . , n mit Wahrscheinlichkeiten p1 , . . . , pn Ausgabe: Baum T des Huffman-Codes Menge Q = {1, . . . n} Füge alle Zeichen aus Q als Blätter in T ein Für i = 1, . . . n − 1 Erzeuge neuen Knoten z für T
u ← extrahiere Element x aus Q mit px minimal Bestimme u als linker Nachfolger von z v ← extrahiere Element x aus Q mit px minimal Bestimme v als rechter Nachfolger von z Wahrscheinlichkeit pz von z ist pu + pv Füge z in Q ein
r ← extrahiere letztes Element aus Q return r (r ist Wurzel von T ) 24
04.02.2016
Gog, Sanders, Wagner - Theoretische Grundlagen der Informatik
INSTITUT FÜR THEORETISCHE INFORMATIK
Optimalität der Huffman-Codierung Satz: Der Huffman-Algorithmus berechnet einen Codierungsbaum mit minimaler mittlerer Codewortlänge.
25
04.02.2016
Gog, Sanders, Wagner - Theoretische Grundlagen der Informatik
INSTITUT FÜR THEORETISCHE INFORMATIK
Vorbereitendes Lemma Satz: Sei Σ = {1, . . . , n} ein Alphabet mit Wahrscheinlichkeiten P, wobei P = {p1 , . . . , pn }. Seien x , y ∈ Σ, x 6= y eine beliebige Wahl für die zwei unwahrscheinlichsten Zeichen. Dann gibt es einen Codierungsbaum T für (Σ, P ) mit minimaler mittlerer Codewortlänge, so dass x und y den gleichen Elternknoten besitzen.
26
04.02.2016
Gog, Sanders, Wagner - Theoretische Grundlagen der Informatik
INSTITUT FÜR THEORETISCHE INFORMATIK
Vorbereitendes Lemma: Beweis Sei Σ = {1, . . . , n} ein Alphabet mit Wkten P = {p1 , . . . , pn }. Seien x , y ∈ Σ, x 6= y eine beliebige Wahl für die zwei unwahrscheinlichsten Zeichen. Beweis Sei T 0 ein beliebiger Codierungsbaum für (Σ, P ) mit minimaler mittlerer Codewortlänge. O.B.d.A gelte für die Tiefe, dass dT0 (x ) ≥ dT0 (y ). Sei z der Elternknoten von x in T 0 . Fall 1: z hat nur x als Nachkommen Dann könnte man z löschen und durch x ersetzen. Dieser Baum hätte eine kleinere mittlere Codewortlänge. Widerspruch zur Optimalität von T 0 . 27
04.02.2016
Gog, Sanders, Wagner - Theoretische Grundlagen der Informatik
z
y
x
INSTITUT FÜR THEORETISCHE INFORMATIK
Vorbereitendes Lemma: Beweis Sei Σ = {1, . . . , n} ein Alphabet mit Wkten P = {p1 , . . . , pn }. Seien x , y ∈ Σ, x 6= y eine beliebige Wahl für die zwei unwahrscheinlichsten Zeichen. Beweis Sei T 0 ein beliebiger Codierungsbaum für (Σ, P ) mit minimaler mittlerer Codewortlänge. O.B.d.A gelte für die Tiefe, dass dT0 (x ) ≥ dT0 (y ). Sei z der Elternknoten von x in T 0 . Fall 2: z hat mehr als 2 Nachkommen Sei w 6= y ein Nachfahre von z von maximaler Tiefe. Optimalität von T 0 : pw ≤ px . Wahl von x , y: pw = px . Tausche x mit w. Weiter mit Fall 3. 27
04.02.2016
Gog, Sanders, Wagner - Theoretische Grundlagen der Informatik
y
z q
x w
INSTITUT FÜR THEORETISCHE INFORMATIK
Vorbereitendes Lemma: Beweis Sei Σ = {1, . . . , n} ein Alphabet mit Wkten P = {p1 , . . . , pn }. Seien x , y ∈ Σ, x 6= y eine beliebige Wahl für die zwei unwahrscheinlichsten Zeichen. Beweis Sei T 0 ein beliebiger Codierungsbaum für (Σ, P ) mit minimaler mittlerer Codewortlänge. O.B.d.A gelte für die Tiefe, dass dT0 (x ) ≥ dT0 (y ). Sei z der Elternknoten von x in T 0 . Fall 3: z hat genau 2 Nachkommen Sei q 6= x der andere Nachfahre von z. Tausche q mit y. q und y gleiche Tiefe: Tauschen ok. q tiefer als y: Wegen Optimalität pq = py . 27
04.02.2016
Gog, Sanders, Wagner - Theoretische Grundlagen der Informatik
y
z x
q
INSTITUT FÜR THEORETISCHE INFORMATIK
Optimalität der Huffman-Codierung Satz: Der Huffman-Algorithmus berechnet einen Codierungsbaum mit minimaler mittlerer Codewortlänge.
Beweis Wir benutzen Induktion nach der Anzahl der Zeichen |Σ| des Alphabets Σ. Induktionsanfang: Die Aussage ist für ein Zeichen erfüllt.
28
04.02.2016
Gog, Sanders, Wagner - Theoretische Grundlagen der Informatik
INSTITUT FÜR THEORETISCHE INFORMATIK
Beweis - Induktionsschluss Induktions-Voraussetzung Der Huffman-Algorithmus berechnet einen optimalen Codierungsbaum für alle Alphabete Σ mit |Σ| ≤ n und alle Möglichkeiten für P. Induktions-Schluss Gegeben sei Alphabet Σ = {1, . . . , n + 1} mit Wahrscheinlichkeiten P = { p1 , . . . pn + 1 } . Für einen Codierungsbaum T bezeichne f (T ) = ∑v ∈Σ pv dT (v ) die zugehörige mittlere Wortlänge. Wir machen einen Widerspruchsbeweis. Bezeichne Thuff einen Huffman-Baum für (Σ, P ). Sei Topt einen Codierungsbaum für (Σ, P ) mit f (Topt ) < f (Thuff ). 29
04.02.2016
Gog, Sanders, Wagner - Theoretische Grundlagen der Informatik
INSTITUT FÜR THEORETISCHE INFORMATIK
Beweis - Induktionsschluss Seien x , y ∈ Σ die Zeichen, die im Huffman-Algorithmus zuerst zusammengefasst werden. Vorbereitendes Lemma: Wir können Topt so wählen, dass x und y den gleichen Elternknoten besitzen. Topt
Thuff
x
30
04.02.2016
y
Gog, Sanders, Wagner - Theoretische Grundlagen der Informatik
x
y
INSTITUT FÜR THEORETISCHE INFORMATIK
Beweis - Induktionsschluss Seien x , y ∈ Σ die Zeichen, die im Huffman-Algorithmus zuerst zusammengefasst werden. Vorbereitendes Lemma: Wir können Topt so wählen, dass x und y den gleichen Elternknoten besitzen. 0 Thuff
0 Topt
z
z
Sei Σ0 = Σ \ {x , y } ∪ {z } Instanz für neues Zeichen z mit Wkt px + py . 0 und T 0 Seien Topt huff die Bäume, die sich aus Topt und Thuff ergeben, wenn man x , y mit ihrem Elternknoten zu Knoten z verschmilzt. 30
04.02.2016
Gog, Sanders, Wagner - Theoretische Grundlagen der Informatik
INSTITUT FÜR THEORETISCHE INFORMATIK
Beweis - Induktionsschluss Sei Σ0 = Σ \ {x , y } ∪ {z } Instanz für neues Zeichen z mit Wkt px + py . 0 und T 0 Seien Topt huff die Bäume, die sich aus Topt und Thuff ergeben, wenn man x , y mit ihrem Elternknoten zu Knoten z verschmilzt. 0 Thuff
0 Topt
z
z
Es gilt: 0 Thuff ist ein Huffman-Baum für Instanz Σ0 mit den neuen Wkten. 0 ist ein Codierungs-Baum für Instanz Σ0 mit den neuen Wkten. Topt
31
04.02.2016
Gog, Sanders, Wagner - Theoretische Grundlagen der Informatik
INSTITUT FÜR THEORETISCHE INFORMATIK
Beweis - Induktionsschluss Sei Σ0 = Σ \ {x , y } ∪ {z } Instanz für neues Zeichen z mit Wkt px + py . 0 und T 0 Seien Topt huff die Bäume, die sich aus Topt und Thuff ergeben, wenn man x , y mit ihrem Elternknoten zu Knoten z verschmilzt. 0 Thuff
0 Topt
z
z
Es gilt: 0 f (Thuff ) = f (Thuff ) − dThuff (x )px − dThuff (y )py + (dT 0 (z ) − 1)pz huff
= f (Thuff ) − px − py 0 f (Topt ) = f (Topt ) − dTopt (x )px − dTopt (y )py + (dT 0 (z ) − 1)pz opt = f (Topt ) − px − py
31
04.02.2016
Gog, Sanders, Wagner - Theoretische Grundlagen der Informatik
INSTITUT FÜR THEORETISCHE INFORMATIK
Beweis - Induktionsschluss Sei Σ0 = Σ \ {x , y } ∪ {z } Instanz für neues Zeichen z mit Wkt px + py . 0 und T 0 Seien Topt huff die Bäume, die sich aus Topt und Thuff ergeben, wenn man x , y mit ihrem Elternknoten zu Knoten z verschmilzt. 0 Thuff
0 Topt
z
z
0 ein besserer Coderierungsbaum für Σ0 als T 0 . Damit ist Topt huff
Da |Σ0 | = n ist dies ein Widerspruch zur Induktionsvoraussetzung.
31
04.02.2016
Gog, Sanders, Wagner - Theoretische Grundlagen der Informatik
INSTITUT FÜR THEORETISCHE INFORMATIK
Nachteile der Huffman-Codierung Unterschiedliche Codewortlängen führen zu unterschiedlichen Bitraten und Decodierungsverzögerung. Datenkompression reduziert die Redundanz und erhöht damit die Fehleranfälligkeit. Die Kenntnis der Wahrscheinlichkeiten der Zeichen wird vorausgesetzt. Universelle Codierverfahren wie der Lempel-Ziv Algorithmus setzen kein a-priori Wissen an die Statistik der Daten voraus.
32
04.02.2016
Gog, Sanders, Wagner - Theoretische Grundlagen der Informatik
INSTITUT FÜR THEORETISCHE INFORMATIK
Lauflängenkodierung Bei der Faxübertragung wird die Vorlage zeilenweise abgetastet und in weiße (w) und schwarze (s) Bildelemente zerlegt. Üblicherweise ist die Zahl der weißen Elemente viel höher als die der schwarzen. Wir nehmen der Einfachheit halber an, dass die Bildpunkte voneinander unabhängig sind. Bei 15% Schwärzungsgrad ergibt sich eine Entropie von H = −0.85 · log2 (0.85) − 0.15 · log2 (0.15) ≈ 0.61 Bei guter Codierung sollte eine entsprechende mittlere Codewortlänge zu erwarten sein.
33
04.02.2016
Gog, Sanders, Wagner - Theoretische Grundlagen der Informatik
INSTITUT FÜR THEORETISCHE INFORMATIK
Lauflängenkodierung Bei der Faxübertragung wird die Vorlage zeilenweise abgetastet und in weiße (w) und schwarze (s) Bildelemente zerlegt. Üblicherweise ist die Zahl der weißen Elemente viel höher als die der schwarzen. Wir nehmen der Einfachheit halber an, dass die Bildpunkte voneinander unabhängig sind. Bei 15% Schwärzungsgrad ergibt sich eine Entropie von H = −0.85 · log2 (0.85) − 0.15 · log2 (0.15) ≈ 0.61 Bei guter Codierung sollte eine entsprechende mittlere Codewortlänge zu erwarten sein. Problem: Wie ist platzsparende Codierung von einem Alphabet mit zwei Zeichen möglich? 33
04.02.2016
Gog, Sanders, Wagner - Theoretische Grundlagen der Informatik
INSTITUT FÜR THEORETISCHE INFORMATIK
Lauflängencodierung Problem: Wie ist platzsparende Codierung von einem Alphabet mit zwei Zeichen möglich? Möglicher Ansatz: Blockcodes Fasse k Zeichen zu Blöcken zusammen und codiere diesen Beispiel k = 2: Neues Alphabet: ww,ws,sw,ss. Dieses kann platzsparend codiert werden.
Beispiel: Zeichen Wkt Huffman
34
04.02.2016
ww
ws
sw
ss
1 2
2 10
2 10
1 10
0
11
100
101
Gog, Sanders, Wagner - Theoretische Grundlagen der Informatik
INSTITUT FÜR THEORETISCHE INFORMATIK
Lauflängencodierung Lauflängencodierung Spezielle Zusammenfassung für Bildcodierung bei Fax/Videoanwendungen Die Länge der Blöcke ist variabel. Idee: Codiere nicht die Bildpunkte, sondern den Abstand zwischen zwei schwarzen Bildpunkten. Beispiel: wwwswwsswwwwswswwwwwwswwwwwws wird aufgefasst als 3204166. Für eine Binärcodierung braucht man noch Codes für die Abstände (also für N). Um dies platzsparend zu machen, benötigt man Wahrscheinlichkeiten für einzelne Abstände.
35
04.02.2016
Gog, Sanders, Wagner - Theoretische Grundlagen der Informatik
INSTITUT FÜR THEORETISCHE INFORMATIK
Lauflängencodierung Lauflängencodierung Wie groß sind die Wkten für die einzelnen Abstände? Annahme: Die Bildpunkte sind voneinander unabhängig. Sei p` die Wkt für einen Block aus ` aufeinanderfolgenden weißen Bildpunkten mit einem schwarzen Bildpunkten am Schluss pl = P(w ` s) = P` (w ) · P(s) = P(s) · (1 − P(s))` . Es ergibt sich eine geometrische Verteilung. Erwartungswert der geometrische Verteilung ist 1/P(s).
35
04.02.2016
Gog, Sanders, Wagner - Theoretische Grundlagen der Informatik
INSTITUT FÜR THEORETISCHE INFORMATIK
Geometrische Verteilung 0.8
Wahrscheinlichkeit
0.6 p 0.2 0.4 0.6 0.8
0.4
0.2
0.0 0
4
8
i
36
04.02.2016
Gog, Sanders, Wagner - Theoretische Grundlagen der Informatik
INSTITUT FÜR THEORETISCHE INFORMATIK
Lauflängencodierung
Man kann ein Schwarzweißbild über Angabe der Lauflängen verlustfrei rekonstruieren. Sonderbehandlung für letzten Block erforderlich. Weiteres Problem: Lauflängen können beliebig groß werden. Shannon-Fano-Codierung kann trotzdem einfach angewandt werden.
37
04.02.2016
Gog, Sanders, Wagner - Theoretische Grundlagen der Informatik
Abstand 0 1 2 3 4 5 6 7 8 9 10 11 12 ...
Wkten 0,1591 0,1388 0,1125 0,0946 0,0796 0,0669 0,0563 0,0473 0,0398 0,0334 0,0281 0,0237 0,0199 ...
Codewort 000 001 010 011 1000 1001 1010 1011 11000 11001 11010 11011 111000 ... INSTITUT FÜR THEORETISCHE INFORMATIK
Succinct Datenstrukturen Sei ein kombinatorisches Objekt T fester Größe n gegeben. Wenn fT (n) die Anzahl verschiedener Instanzen von T ist, dann ist die Informationstheoretische Schranke um alle Instanzen von T eindeutig darzustellen ZT = log2 fT (n) Bits. Eine Datenstruktur für Objekt T nennen wir succinct, wenn die Platzkomplexität nicht größer als ZT + o(n) ist und Operationen auf T effizient (sublinear) ausführbar sind. Der sublineare Platz wird für den Indexteil benötigt, der die effiziente Ausführung der Operationen ermöglicht.
38
04.02.2016
Gog, Sanders, Wagner - Theoretische Grundlagen der Informatik
INSTITUT FÜR THEORETISCHE INFORMATIK
Succinct Datenstrukturen Beispiel Bitvektor B der Länge n (=Sequenz der Länge n über binärem Alphabet) mit Zugriff (access) und Rang (rank1 ) Operation. access(i ): Wert an i-ter Stelle 1 rank1 (i ): ∑ji − =0 B [ i ]
2n verschiedene Instanzen der Länge n. Z = n Bits Mit naiver Darstellung des Bitvektors wird access im RAM Modell in O (1) Zeit unterstützt. Wie kann man rank1 (i ) in O (1) Zeit realisieren?
38
04.02.2016
Gog, Sanders, Wagner - Theoretische Grundlagen der Informatik
INSTITUT FÜR THEORETISCHE INFORMATIK
Bitvektoren mit Zugriff und Rank Operation o(n)-Bit Index für die rank1 Operation Unterteile B in Blöcke der Länge L1 = log2 n Berechne und speichere P1 [i ] = rank1 (i · L1 ) für i ∈ {0, . . . , n/L1 }
Unterteile B in Blöcke der Länge L2 = 12 log n Berechne und speichere P2 [i ] = rank1 (i · L2 ) − P1 [b(i · L2 )/L1 c] für i =∈ {0, . . . , n/L2 }
n
L1 L2
39
04.02.2016
L2
L1 L2
L1
……. …….
L2
Gog, Sanders, Wagner - Theoretische Grundlagen der Informatik
L2
L2
L2
L2
INSTITUT FÜR THEORETISCHE INFORMATIK
Bitvektoren mit Zugriff und Rank Operation o(n)-Bit Index für die rank1 Operation √ 1 Für alle n verschiedene Bitvectoren der Länge L2 = log 2 n berechnen wir für alle i ∈ {0, . . . , L2 } den Wert rank1 (i ) in einer Tabelle P3 vor. Platzbedarf n L1 log n + (für P1 ) n L2 2 log log n + (für √
P2 ) n · L2 log L2 (für P3 ) ∈ o(n) für unsere Wahl für L1 und L2
n
L1 L2 39
04.02.2016
L2
L1 L2
L1
……. …….
L2
Gog, Sanders, Wagner - Theoretische Grundlagen der Informatik
L2
L2
L2
L2
INSTITUT FÜR THEORETISCHE INFORMATIK
Bitvektoren mit Zugriff und Rank Operation Berechnung von rank1 (i ) mit dem o(n)-Bit Index Sei j = di/L2 e · L2 und B [`..r ] ein Teilvektor rank1 (i ) = P1 [di/L1 e] + P2 [di/L2 e] + P3 [B [j ..j + L2 − 1]][(i mod L2 )]
n L1 L2
39
04.02.2016
L2
L1 L2
L1
……. …….
L2
Gog, Sanders, Wagner - Theoretische Grundlagen der Informatik
L2
L2
L2
L2
INSTITUT FÜR THEORETISCHE INFORMATIK
Bitvektoren mit Zugriff und Rank Operation Bemerkung
Die inverse Operation zu rank1 ist die Operation select1 . Sie gibt die Position der i-ten Eins im Bitvektor zurück. Die select1 Operation kann ähnlich zu rank1 auch in konstanter Zeit mit einem o(n)-Bit Index realisiert werden.
40
04.02.2016
Gog, Sanders, Wagner - Theoretische Grundlagen der Informatik
INSTITUT FÜR THEORETISCHE INFORMATIK
Komprimierte Datenstrukturen Für eine gegebene Instanz eines Objekt fester Länge n (etwa einer Sequenz) werden die Wkten der Symbole durch Zählen bestimmt. Sei etwa eine Sequenze S der Länge n über einem Alphabet Σ = {1, . . . , σ } und nc sei die Anzahl an Vorkommen des Symbols c in S. Dann ist p (c ) = nnc und wir nennen H0 (S ) = ∑c ∈Σ p (c ) log2 ( p(1c ) ) die empirische Entropie von S. Komprimierte Datenstrukturen repräsentieren die Instanz in n · H0 (S ) + o(n) Bits. Der n · H0 (S ) Teil repräsentiert die Daten, während der sublineare Term o(n) Indexinformation zur effizienten Ausführung von Operationen enthählt.
41
04.02.2016
Gog, Sanders, Wagner - Theoretische Grundlagen der Informatik
INSTITUT FÜR THEORETISCHE INFORMATIK
Komprimierte Datenstrukturen: Wavelet Tree Der Wavelet Tree ist eine komprimierte Datenstruktur für Sequenzen. Folgende Operationen sollen effizient ausführbar sein: access(i , S ): Zugriff auf S [i ]. rank (i , c , S ): Anzahl an Vorkommen des Symbols c im Präfix S [0, . . . , i − 1], formal: | {j | S [j ] = c ∧ 0 ≤ j < i } |
Wavelet Tree Sei S eine Sequenz der Länge n über Alphabet Σ = {0, . . . , σ − 1}. Jedem c ∈ Σ sei ein Wort zc aus einem Präfix-Code C zugeordnet. Ein Wavelet Tree ist ein binärer Baum, dessen Topologie der des Codierungsbaum T von C entspricht. Jedem Knoten v mit Pfadbeschriftung ω (v ) der Länge ` wird die Teilsequenz Sv = {S [i ] | ω (v ) ist Präfix von zS [i ] } konzeptionell zugeordnet Knoten v enthält ein Bitvector Bv der Länge nv = |Sv | mit Bv [i ] = ω (Sv [i ])[`] für ` < |zSv [0] | 42
04.02.2016
Gog, Sanders, Wagner - Theoretische Grundlagen der Informatik
INSTITUT FÜR THEORETISCHE INFORMATIK
Komprimierte Datenstrukturen: Wavelet Tree arrd$rcbbraaaaaabba 0111011001000000000 1
0
a$bbaaaaaabba 0011000000110
rrdrcr 110101
0
0 dc 10
bbbb
aaaaaaaa
c
nc 1 8 4 1 1 4
rrrr
1
0
1
0 $
1
1 a$aaaaaaa 101111111
Beispiel c zc $ 000 a 001 b 01 c 100 d 101 r 11
d
Tiefe des Wavelet Tree ist dlog σ e = 3. Summe der Bitvektoren und die O (σ ) Zeichen um die Topologie darzustellen: ndlog σ e + O (σ log n) Bits. 42
04.02.2016
Gog, Sanders, Wagner - Theoretische Grundlagen der Informatik
INSTITUT FÜR THEORETISCHE INFORMATIK
Komprimierte Datenstrukturen: Wavelet Tree Berechnung von ranka (i )
arrd$rcbbraaaaaabba 0111011001000000000 1
0
a$bbaaaaaabba 0011000000110
rrdrcr 110101
0
0 dc 10
bbbb
aaaaaaaa
c
rrrr
1
0
1
0 $
1
1 a$aaaaaaa 101111111
za entspricht Pfad im WT Bestimme Position iω (v ) von i in jedem Sv des Pfads mittels rank1 (rank0 ) auf Bitvektoren iza = ranka (i )
d
Beispiel ranka (11) za =001
ie = i = 11
43
04.02.2016
Gog, Sanders, Wagner - Theoretische Grundlagen der Informatik
INSTITUT FÜR THEORETISCHE INFORMATIK
Komprimierte Datenstrukturen: Wavelet Tree Berechnung von ranka (i )
arrd$rcbbraaaaaabba 0111011001000000000 1
0
a$bbaaaaaabba 0011000000110
rrdrcr 110101
0
0 dc 10
bbbb
aaaaaaaa
c
rrrr
1
0
1
0 $
1
1 a$aaaaaaa 101111111
za entspricht Pfad im WT Bestimme Position iω (v ) von i in jedem Sv des Pfads mittels rank1 (rank0 ) auf Bitvektoren iza = ranka (i )
d
Beispiel ranka (11) za =001
ie = i = 11 ,i0 = rank0 (ie ) = 5
43
04.02.2016
Gog, Sanders, Wagner - Theoretische Grundlagen der Informatik
INSTITUT FÜR THEORETISCHE INFORMATIK
Komprimierte Datenstrukturen: Wavelet Tree Berechnung von ranka (i )
arrd$rcbbraaaaaabba 0111011001000000000 1
0
a$bbaaaaaabba 0011000000110
rrdrcr 110101
0
0 dc 10
bbbb
aaaaaaaa
c
rrrr
1
0
1
0 $
1
1 a$aaaaaaa 101111111
za entspricht Pfad im WT Bestimme Position iω (v ) von i in jedem Sv des Pfads mittels rank1 (rank0 ) auf Bitvektoren iza = ranka (i )
d
Beispiel ranka (11) za =001
ie = i = 11 ,i0 = rank0 (ie ) = 5 , i00 = rank0 (i0 ) = 3
43
04.02.2016
Gog, Sanders, Wagner - Theoretische Grundlagen der Informatik
INSTITUT FÜR THEORETISCHE INFORMATIK
Komprimierte Datenstrukturen: Wavelet Tree Berechnung von ranka (i )
arrd$rcbbraaaaaabba 0111011001000000000 1
0
a$bbaaaaaabba 0011000000110
rrdrcr 110101
0
0 dc 10
bbbb
aaaaaaaa
c
rrrr
1
0
1
0 $
1
1 a$aaaaaaa 101111111
za entspricht Pfad im WT Bestimme Position iω (v ) von i in jedem Sv des Pfads mittels rank1 (rank0 ) auf Bitvektoren iza = ranka (i )
d
Beispiel ranka (11) za =001
ie = i = 11 ,i0 = rank0 (ie ) = 5 , i00 = rank0 (i0 ) = 3 , i001 = rank1 (i00 ) = 2 43
04.02.2016
Gog, Sanders, Wagner - Theoretische Grundlagen der Informatik
INSTITUT FÜR THEORETISCHE INFORMATIK
Komprimierte Datenstrukturen: Wavelet Tree Die worst case und average case Komplexität der rank-Funktion für einen Präfix-Code mit maximaler Tiefe dlog σ e liegt in O (log σ ) Platz und average Komplexität lassen sich durch Nutzung des Huffman Codes verbessern: Platz auf n(H0 (S ) + 1) + o(n) + O (σ log n) Bits Average Laufzeit auf H0 (S )
44
04.02.2016
Gog, Sanders, Wagner - Theoretische Grundlagen der Informatik
INSTITUT FÜR THEORETISCHE INFORMATIK
Komprimierte Datenstrukturen: Wavelet Tree arrd$rcbbraaaaaabba 1000000000111111001
0 1 rrd$rcbbrbb 11001000100
aaaaaaaa
0 1 d$cbbbb 0001111
rrrr
0 1
d$c 100
bbbb
0 1 $c 01
Beispiel 1 H0 (S ) = 3 · 19 log 19 + 4 19 8 19 log + · log 19 4 19 8 ≈ 2.1426 Bits Optimale Darstellung von S mit nH0 (S ) < 41 Bits Gesamtlänge der Bitvektoren 49 Bits (mit balancierter Topologie) 42 Bits (mit Huffman Topologie, s.l.)
d
1 0 $
44
c
04.02.2016
Gog, Sanders, Wagner - Theoretische Grundlagen der Informatik
INSTITUT FÜR THEORETISCHE INFORMATIK
Elias-Fano Kodierung Elias-Fano Kodierung Sei X eine aufsteigende Sequenz aus {0, . . . , n − 1}. Es gibt eine Darn stellung für X in mblog m c + 3m + o(m) Bits die Zugriff auf jedes X [i ] in konstanter Zeit erlaubt. Naive Darstellung von X würde mdlog ne Platz benötigen X kann auch als Bitvektor der Länge n mit m gesetzten Bits aufgefasst werden. Analog zu der rank Datenstruktur gibt es eine Struktur, welche die Position der i-te 1 in einem Bitvektor in konstanter Zeit berechnet und nur sublinear Platz benötigt. Aufsteigende Sequenzen treten in vielen Anwendungen auf: Adjazenlisten, invertierte Indizes, . . .
45
04.02.2016
Gog, Sanders, Wagner - Theoretische Grundlagen der Informatik
INSTITUT FÜR THEORETISCHE INFORMATIK
Elias-Fano Kodierung – Funktionsweise Teile jedes Element von X in zwei Teile: n die unteren r = blog m c Bits (low part) die oberen dlog ne − r Bits (high part)
Die low parts werden in einem Array L mit r-Bit Einträgen gespeichert. Die Sequenz der high parts ist nicht absteigend. Sei δi die Differenz des high parts von X [i ] und X [i − 1]. Erzeuge einen Bitvektor H durch die Konkatenation der unären Codierung von δ0 , δ1 , . . . , δm−1 . Unäre Codierung Eine nicht negative Zahl x wird durch den String u (x ) = 0x 1 unär kodiert. Also gilt u (0) = 1, u (1) = 01, u (2) = 001, . . .
46
04.02.2016
Gog, Sanders, Wagner - Theoretische Grundlagen der Informatik
INSTITUT FÜR THEORETISCHE INFORMATIK
Elias-Fano Kodierung – Funktionsweise X =
4
13
15
24
26
27
29
00100 01101 01111 11000 11010 11011 11101 1 0 3 1 3 3 6 0 6 2 6 3 7 1 1-0
δ=
1
3-1
2
3-3
0
6-3
3
6-6
0
6-6
0
7-6
1
H = 01 001 1 0001 1 1 01 L= 0 1 3 0 2 3 1 H enthält m Nullen und höchstens 2dlog ne−blog n/mc ≤ 2log n−(log n/m−1) = 2log m+1 = 2m Einsen. Damit benötigt die Elias-Fano Codierung höchstens m · blog n/mc + 3m Bits. 47
04.02.2016
Gog, Sanders, Wagner - Theoretische Grundlagen der Informatik
INSTITUT FÜR THEORETISCHE INFORMATIK
Elias-Fano Codierung – Funktionsweise Rekonstruktion eines beliebigen X [i ]
access(i ) p ← select1 (i , H ) x ← p−i return x · 2blog n/mc + L[i ] Beispiel: X [2] = (5 − 2) · 22 + 3 = 3 · 4 + 3 = 15
48
04.02.2016
Gog, Sanders, Wagner - Theoretische Grundlagen der Informatik
INSTITUT FÜR THEORETISCHE INFORMATIK
Elias-Fano Kodierung – Anwendung Gegeben ein String S der Länge n über einem Alphabet Σ der Größe σ, etwa die Konkatenation von k Webseiten. Speichere für jedes Symbol c ∈ Σ eine Liste, welche an Position i die Position des i-ten Vorkommen von c in S enthält. Sei ni die Länge der Liste.
49
04.02.2016
Gog, Sanders, Wagner - Theoretische Grundlagen der Informatik
INSTITUT FÜR THEORETISCHE INFORMATIK
Elias-Fano Kodierung – Anwendung Platzanalyse:
=
n
∑ ni · blog ni c + 3ni + o(ni ) + O (log n)
c ∈Σ
≤ n·
∑
c ∈Σ
n ni log n ni
+ 3n + o(n) + O (σ log n)
= n · H0 (S ) + 3n + o(n) + O (σ log n)
50
04.02.2016
Gog, Sanders, Wagner - Theoretische Grundlagen der Informatik
INSTITUT FÜR THEORETISCHE INFORMATIK
Wechselseitiger und bedingter Informationsgehalt
Quelle X ,,Kopplung’’
Ereignispaar
(xi,yj)
Quelle Y
Betrachte Zeichen/Ergebnispaar zweier Quellen X und Y Für die Wkt gilt: p (xi , yj ) = p (xi | yj ) · p (yj ) = p (yj | xi ) · p (xj ) 51
04.02.2016
Gog, Sanders, Wagner - Theoretische Grundlagen der Informatik
INSTITUT FÜR THEORETISCHE INFORMATIK
Wechselseitiger und bedingter Informationsgehalt Durch Logarithmieren: log p (xi , yj ) = log p (xi | yj ) + log p (yj ) = log p (yj | xi ) + log p (xj ) {z } | {z } | {z } | − I ( x i ,y j )
−I (yj )
− I ( xj )
Umgestellt: I (xi , yj ) = I (yj ) − log p (xi | yj ) = I (xi ) − log p (yj | xi ) Addiere 0 = I (xi ) − log p(1x ) bzw. 0 = I (yi ) − log p(1y ) : i
I (xi , yj ) = I (yj ) + I (xi ) − log 51
04.02.2016
j
p (xi | yj ) p (yj | xi ) = I (xi ) + I (yj ) − log p ( xi ) p ( yj )
Gog, Sanders, Wagner - Theoretische Grundlagen der Informatik
INSTITUT FÜR THEORETISCHE INFORMATIK
Wechselseitiger und bedingter Informationsgehalt Die wechselseitige Information eines Zeichenpaares ist p ( xi | yj ) p (yj | xi ) I (xi ; yj ) = log = log p ( xi ) p (yj )
I(xi) I(xi;yj)
I(yj)
und stellt die aufgelöste Ungewissheit über das Zeichen yj dar, wenn xi bekannt ist – und umgekeht. Für unabhängige Quellen X und Y gilt: I (xi ; yj ) = 0 Für streng gekoppelte Quellen X und Y gilt: I (xi ; yj ) = I (xi ) = I (yj ), da p (xi | yj ) = p (yj | xi ) = 1.
51
04.02.2016
Gog, Sanders, Wagner - Theoretische Grundlagen der Informatik
INSTITUT FÜR THEORETISCHE INFORMATIK
Verbundentropie und bedingte Entropie Verbundentropie Die Verbundentropie zweiter Quellen X und Y ist H (X , Y ) =
1
∑ ∑ p(x , y ) log p(x , y ) X Y
Bedingte oder relative Entropie Die bedingte Entropie zweiter Quellen X und Y ist 1
H (X |Y ) =
∑ ∑ p(x , y ) log p(x |y )
H (Y |X ) =
∑ ∑ p(x , y ) log p(y |x )
X Y
und
52
04.02.2016
1
X Y
Gog, Sanders, Wagner - Theoretische Grundlagen der Informatik
INSTITUT FÜR THEORETISCHE INFORMATIK
Verbundentropie und bedingte Entropie Zusammenhänge H (X , Y ) = H (X ) + H (Y |X ) = H (Y ) + H (X |Y ) H (X , Y ) ≤ H (X ) + H (Y )
52
04.02.2016
Gog, Sanders, Wagner - Theoretische Grundlagen der Informatik
INSTITUT FÜR THEORETISCHE INFORMATIK
Übertragungsmodell
Sender
Quelle X
53
04.02.2016
Gog, Sanders, Wagner - Theoretische Grundlagen der Informatik
Kanal
Empfänger
Quelle Y
INSTITUT FÜR THEORETISCHE INFORMATIK
Der Symmetrische Binärkanal
Quelle X x0
x1
1-𝜀 𝜀 𝜀 1-𝜀
Quelle Y y0
y1
Ein simples Beispiel für die Kopplung zweier Quelle ist der symmetrische Binärkanal (Binary Symmetric Channel, BSC) Ein Zeichen xi der Binärquelle X wird mit Fehlerwahrscheinlichkeit e ∈ [0, 21 ] in y1−i überführt. 54
04.02.2016
Gog, Sanders, Wagner - Theoretische Grundlagen der Informatik
INSTITUT FÜR THEORETISCHE INFORMATIK
Der Symmetrische Binärkanal Mit Gleichverteilung an den Eingängen gilt für den bedingten Informationsgehalt: I (y0 | x0 ) = I (y1 | x1 ) = log
1 1−e
und I (y1 | x0 ) = I (y0 | x1 ) = log
1 e
Für den wechselseitigen Informationsgehalt eines Paares gilt: I (x0 ; y0 ) = I (x1 ; y1 ) = log
1 2
1 = 1 − log(1 − e) Bits · (1 − e )
I (x1 ; y0 ) = I (x0 ; y1 ) = log
54
04.02.2016
Gog, Sanders, Wagner - Theoretische Grundlagen der Informatik
1 2
1 = 1 − log(e) Bits ·e INSTITUT FÜR THEORETISCHE INFORMATIK
1.00
Bit
0.75
I ( x0 ; y0 ) I ( y0 | x0 )
0.50
0.25
0.00 0.0
0.1
0.2
0.3
0.4
0.5
e
e = 0: I (x0 ; y0 ) = 1; Die Information wird vollständig weitergegeben. 55
04.02.2016
Gog, Sanders, Wagner - Theoretische Grundlagen der Informatik
INSTITUT FÜR THEORETISCHE INFORMATIK
1.00
Bit
0.75
I ( x0 ; y0 ) I ( y0 | x0 )
0.50
0.25
0.00 0.0
0.1
0.2
0.3
0.4
0.5
e
e = 12 : I (x0 ; y0 ) = 0: Kein Informationsaustausch; X und Y sind unabhängig. 55
04.02.2016
Gog, Sanders, Wagner - Theoretische Grundlagen der Informatik
INSTITUT FÜR THEORETISCHE INFORMATIK
1.00
Bit
0.75
I ( x0 ; y0 ) I ( y0 | x0 )
0.50
0.25
0.00 0.0
0.1
0.2
0.3
0.4
0.5
e
e = 1: I (x0 ; y0 ) = 1; Die Information wird vollständig vertauscht weitergegeben. 55
04.02.2016
Gog, Sanders, Wagner - Theoretische Grundlagen der Informatik
INSTITUT FÜR THEORETISCHE INFORMATIK
Transinformation (mutual information) Definition Die Transinformation zweier diskreten Quellen X und Y gibt die mittlere Informationsgehalt zwischen X und Y an und ist definiert durch I (X ; Y ) =
∑ ∑ p(x , y ) · log X Y
p (y | x ) = p (y )
∑ ∑ p(x , y ) · log X Y
p (x | y ) p (x )
Oder auch: I (X ; Y ) =
∑ ∑ p(x , y ) · log p(x | y ) − ∑ log p(x ) ∑ p(x , y ) X Y
|
X
{z
−H (X |Y )
Y
}
| |
{z
=H (X )
{z
=p (x )
} }
Analog: I (X ; Y ) = H (Y ) − H (Y | X ) 56
04.02.2016
Gog, Sanders, Wagner - Theoretische Grundlagen der Informatik
INSTITUT FÜR THEORETISCHE INFORMATIK
Transinformation (mutual information)
Rückschlussentropie H(X|Y) H(X)
Transinformation I(X;Y) =H(X)-H(X|Y)=H(Y)-H(Y|X) H(Y)
Streuentropie H(Y|X)
I (X ; Y ) ≥ 0 wobei X (X ; Y ) = 0 genau dann ist wenn X und Y unabhängig sind
56
04.02.2016
Gog, Sanders, Wagner - Theoretische Grundlagen der Informatik
INSTITUT FÜR THEORETISCHE INFORMATIK
Kanalkapazität Definition Die Kanalkapazität eines Kanals K ist definiert durch C = max I (X ; Y ) X
wobei X die speisende Quelle ist und I (X ; Y ) über alle möglichen Wahrscheinlichkeitsverteilungen von X maximiert wird. Bemerkung Berechnung der Kanalkapazität ist ein Optimierungsproblem Wähle Wkten p (x ) der Quelle X so, dass I (X ; Y ) maximal wird unter Nebenbedingungen 0 < p (x ) ≤ 1 und
57
04.02.2016
Gog, Sanders, Wagner - Theoretische Grundlagen der Informatik
∑ p (x ) = 1 X
INSTITUT FÜR THEORETISCHE INFORMATIK
Kanalkapazität des BSC Für den BSC ist H (X |Y ) = e log
1 1 + (1 − e) log e 1−e
(also unabhängig von der Verteilung der Wkten von X ) Damit wird I (X ; Y ) maximal wenn H (X ) maximal wird (bei Gleichverteilung) 1 C BSC = 1 − e log 1e + (1 − e) log 1− e = 1 − H ({ e, 1 − e })
58
04.02.2016
Gog, Sanders, Wagner - Theoretische Grundlagen der Informatik
INSTITUT FÜR THEORETISCHE INFORMATIK
Kanalkapazität des BSC
1.00
C BSC [Bit/Zeichen]
0.75
0.50
0.25
0.00 0.00
0.25
0.50
0.75
1.00
e
58
04.02.2016
Gog, Sanders, Wagner - Theoretische Grundlagen der Informatik
INSTITUT FÜR THEORETISCHE INFORMATIK
Codierung zum Schutz gegen Übertragungsfehler
Quelle
Quellencodierung St¨orung
Senke
59
04.02.2016
Quellendecodierung
Gog, Sanders, Wagner - Theoretische Grundlagen der Informatik
Kanalcodierung Kanal Kanaldecodierung
INSTITUT FÜR THEORETISCHE INFORMATIK
Codierung zum Schutz gegen Übertragungsfehler Qualität einer digitalen Übertragung wird häufig als gemessene Bitfehlerquote bzw. Bitfehlerwahrscheinlichkeit angegeben. Beherrschung von Übertragungsfehlern: Fehlerkorrektur (beim Empfänger), Fehlererkennung und Wiederholungsanforderung.
Tradeoff: Wahrscheinlichkeit unentdeckter Fehler vs. Datendurchsatz.
59
04.02.2016
Gog, Sanders, Wagner - Theoretische Grundlagen der Informatik
INSTITUT FÜR THEORETISCHE INFORMATIK
Paritätscodes - Einfach Binär
Quelle: Wikipedia Paritätscode der RS232-Schnittstelle. Neunpoliges Kabel ermöglicht die parallele Übertragung von 8 Bit. Dabei werden nur sieben Bits b1 , . . . b7 für die Nachrichtenübertragung genutzt. Das achte Bit b8 wird Paritätsbit genannt.
60
04.02.2016
Gog, Sanders, Wagner - Theoretische Grundlagen der Informatik
INSTITUT FÜR THEORETISCHE INFORMATIK
Paritätscodes - Einfach Binär Paritätscode der RS232-Schnittstelle. Neunpoliges Kabel ermöglicht die parallele Übertragung von 8 Bit. Dabei werden nur sieben Bits b1 , . . . b7 für die Nachrichtenübertragung genutzt. Das achte Bit b8 wird Paritätsbit genannt. Wiederholung XOR-Verknüpfung ⊕
⊕ 0 1
0 0 1
1 1 0
Es wird b8 so gesendet, dass b8 = b1 ⊕ b2 ⊕ b3 ⊕ b4 ⊕ b5 ⊕ b6 ⊕ b7 . 60
04.02.2016
Gog, Sanders, Wagner - Theoretische Grundlagen der Informatik
INSTITUT FÜR THEORETISCHE INFORMATIK
Paritätscodes - Einfach Binär Wiederholung XOR-Verknüpfung ⊕
⊕ 0 1
0 0 1
1 1 0
Es wird b8 so gesendet, dass b8 = b1 ⊕ b2 ⊕ b3 ⊕ b4 ⊕ b5 ⊕ b6 ⊕ b7 . Mit dem Paritätscode werden einfache Fehler im Codewort erkannt. Gleichzeitiger Übertragungsfehler von 2 Fehlern werden nicht erkannt. Falls ein Fehler erkannt wird, kann die ursprüngliche Nachricht nicht rekonstruiert werden: Die Fehlerstelle ist unbekannt.
60
04.02.2016
Gog, Sanders, Wagner - Theoretische Grundlagen der Informatik
INSTITUT FÜR THEORETISCHE INFORMATIK
Kreuzsicherung Dient zum Schutz gegen Doppelfehler Erklärung am Beispiel Lochkarte Parit¨atszeichen L¨angsparit¨at
Parit¨atszeichen Querparit¨at Transportrichtung 61
04.02.2016
Gog, Sanders, Wagner - Theoretische Grundlagen der Informatik
INSTITUT FÜR THEORETISCHE INFORMATIK
Kreuzsicherung Alle 1,2,3 fachen Fehler sind erkennbar Ab 4 Fehlern nicht zwingend erkennbar Parit¨atszeichen L¨angsparit¨at
Parit¨atszeichen Querparit¨at Transportrichtung 61
04.02.2016
Gog, Sanders, Wagner - Theoretische Grundlagen der Informatik
INSTITUT FÜR THEORETISCHE INFORMATIK
Kreuzsicherung Alle 1,2,3 fachen Fehler sind erkennbar Ab 4 Fehlern nicht zwingend erkennbar Parit¨atszeichen L¨angsparit¨at
Parit¨atszeichen Querparit¨at Transportrichtung 61
04.02.2016
Gog, Sanders, Wagner - Theoretische Grundlagen der Informatik
INSTITUT FÜR THEORETISCHE INFORMATIK
Kreuzsicherung Alle 1,2,3 fachen Fehler sind erkennbar Ab 4 Fehlern nicht zwingend erkennbar Parit¨atszeichen L¨angsparit¨at
Parit¨atszeichen Querparit¨at Transportrichtung 61
04.02.2016
Gog, Sanders, Wagner - Theoretische Grundlagen der Informatik
INSTITUT FÜR THEORETISCHE INFORMATIK
Kreuzsicherung Alle 1,2,3 fachen Fehler sind erkennbar Ab 4 Fehlern nicht zwingend erkennbar Parit¨atszeichen L¨angsparit¨at
Parit¨atszeichen Querparit¨at Transportrichtung 61
04.02.2016
Gog, Sanders, Wagner - Theoretische Grundlagen der Informatik
INSTITUT FÜR THEORETISCHE INFORMATIK
Paritätscodes Paritätscodes Gegeben ein Alphabet Σ = {1, 2, . . . , q − 1}. Ein Code der Länge n zur Basis q sei eine Menge von Folgen mit Elementen aus Σ. Einzelne Folgen werden Codewörter genannt. Ein Paritätscode liegt vor, wenn für jedes Codewort a1 , a2 , . . . , an
(a1 + a2 + . . . + an ) mod
q
=0
gilt.
Satz: Jeder Paritätscode erkennt Einzelfehler. 62
04.02.2016
Gog, Sanders, Wagner - Theoretische Grundlagen der Informatik
INSTITUT FÜR THEORETISCHE INFORMATIK
Beweis Sei a1 , . . . , an das ursprüngliche Codewort. ei übertragen. Annahme: Das i-te Element wurde fehlerhaft als a Ein Übertragungsfehler liegt vor, wenn ei + . . . + an ) mod ( a1 + a2 + . . . + a
= 0.
q
Für das ursprüngliche Codewort gilt:
(a1 + a2 + . . . + an ) mod
q
=0.
Also ei + . . . + an ) 0 = ( a1 + a2 + . . . + a = (a1 + a2 + . . . + an ) mod q
63
04.02.2016
Gog, Sanders, Wagner - Theoretische Grundlagen der Informatik
mod
q
INSTITUT FÜR THEORETISCHE INFORMATIK
Beweis
ei + . . . + an ) 0 = ( a1 + a2 + . . . + a = (a1 + a2 + . . . + an ) mod q
mod
q
Damit ei + . . . + an ) 0 = ( a1 + a2 + . . . + a (a1 + a2 + . . . + an ) mod q ei − ai ) mod q = (a
mod
q
−
ei − ai ) durch q teilbar sein. Weil aber Um dies zu erfüllen muss (a 0 ≤ ai < q folgt ei − ai | < q . 0 ≤ |a 64
04.02.2016
Gog, Sanders, Wagner - Theoretische Grundlagen der Informatik
INSTITUT FÜR THEORETISCHE INFORMATIK
Paritätscodes gegen Vertauschungsfehler Häufige Fehlerart bei manueller Eingabe: Vertauschungsfehler. Diese werden von gewöhnlichen Paritätscodes nicht erkannt. Sei wieder a1 , . . . , an ein Codewort. Paritätscode mit Gewichten: Wir führen zusätzlich ganzzahlige Gewichte w1 , . . . , wn−1 ein, so dass
(w1 · a1 + w2 · a2 + . . . + wn−1 an−1 + an ) mod
q
=0
gilt. Zusatzbedingung: Alle Gewichte wi müssen teilerfremd zu q sein.
65
04.02.2016
Gog, Sanders, Wagner - Theoretische Grundlagen der Informatik
INSTITUT FÜR THEORETISCHE INFORMATIK
Paritätscodes gegen Vertauschungsfehler Paritätscode mit Gewichten: Wir führen zusätzlich ganzzahlige Gewichte w1 , . . . , wn−1 ein, so dass
(w1 · a1 + w2 · a2 + . . . + wn−1 an−1 + an ) mod
q
=0
gilt. Zusatzbedingung: Alle Gewichte wi müssen teilerfremd zu q sein. Satz: Jeder Paritätscode mit Gewichten erkennt Einzelfehler. Beweis: Analog zu normalen Paritätscodes kann gezeigt werden, dass Einzelfehler nicht erkannt werden, wenn ei − ai ) wi · (a 65
04.02.2016
Gog, Sanders, Wagner - Theoretische Grundlagen der Informatik
mod
q
=0. INSTITUT FÜR THEORETISCHE INFORMATIK
Paritätscodes gegen Vertauschungsfehler Paritätscode mit Gewichten: Wir führen zusätzlich ganzzahlige Gewichte w1 , . . . , wn−1 ein, so dass
(w1 · a1 + w2 · a2 + . . . + wn−1 an−1 + an ) mod
q
=0
gilt. Zusatzbedingung: Alle Gewichte wi müssen teilerfremd zu q sein. Satz: Ein Paritätscode mit Gewichten erkennt die Vertauschung an den Stellen i und j, falls die Zahl wi − wj teilerfremd zu q ist. Beweis: Analog zu oben: Vertauschungsfehler wird nicht erkannt, falls
[(wi ai + wj aj ) − (wj ai + wi aj )] mod q = [(wi − wj )(ai − aj )] mod q = 0 . 65
04.02.2016
Gog, Sanders, Wagner - Theoretische Grundlagen der Informatik
INSTITUT FÜR THEORETISCHE INFORMATIK
Bsp: ISBN-10
66
04.02.2016
Gog, Sanders, Wagner - Theoretische Grundlagen der Informatik
INSTITUT FÜR THEORETISCHE INFORMATIK
ISBN ISBN: International Standard Book Number (ISO Standard 2108) ISBN-10 (Code oben im letzten Beispiel) war bis 2006 übliche Codierung Seit 2007 EAN-13 (European Article Number) Beschreibung ISBN-10 Alphabet Σ = {0, 1, . . . , 9}, Basis q = 11 (Primzahl!), Länge n = 10, Paritätscode, Für Code a1 , . . . , a10 berechnet sich die Prüfziffer a10 aus
(10a1 + 9a2 + 8a3 + . . . + 2a9 + a10 ) mod 11 = 0 .
67
04.02.2016
Gog, Sanders, Wagner - Theoretische Grundlagen der Informatik
INSTITUT FÜR THEORETISCHE INFORMATIK
Block-Codes Man unterscheidet verschiedene Arten von Kanal-Codes. Block-Codes: Hier betrachtet man Codeworte fester Länge. Aufeinanderfolgende Blöcke werden unabhängig voneinander kodiert. Faltungs-Codes: Codeworte können beliebig lang sein. Die Zeichen sind vom Vorgeschehen abhängig. In TGI befassen wir uns ausschließlich mit Block-Codes.
68
04.02.2016
Gog, Sanders, Wagner - Theoretische Grundlagen der Informatik
INSTITUT FÜR THEORETISCHE INFORMATIK
Hamming-Distanz und Fehlerkorrektur Hamming-Distanz Für x , y ∈ {0, 1}n ist d (x , y ) := #{i |i = 1, . . . , n, xi 6= yi } die Hamming-Distanz zwischen x und y. Anschaulich: Die Hamming-Distanz zwischen x und y ist die Anzahl der Zeichen in x, die sich von denen in y unterscheiden. Es sei Bρ (x ) die Menge aller Worte y mit d (x , y ) ≤ ρ. Anschaulich: Bρ ist eine Kugel (die Hamming-Kugel) um x mit Radius ρ.
69
04.02.2016
Gog, Sanders, Wagner - Theoretische Grundlagen der Informatik
INSTITUT FÜR THEORETISCHE INFORMATIK
Maximum-Likelihood-Decoding Maximum-Likelyhood-Decoding Sei eine Kodierung C gegeben und y ein empfangenes Wort. Decodiere y als dasjenige Codewort x ∈ C, für das d (x , y ) minimal wird.
70
04.02.2016
Gog, Sanders, Wagner - Theoretische Grundlagen der Informatik
INSTITUT FÜR THEORETISCHE INFORMATIK
Block-Codes Block-Code Gegeben ist ein endliches Alphabet Σ. Ein Block-Code ist eine Teilmenge C ⊆ Σn für ein n ∈ N. Falls #C = 1, so heißt C trivial, da es nur ein Codewort gibt. Die (Informations-)Rate von C ist definiert durch log #C log #C R (C ) = log #Q n = n log #Q
Minimaldistanz Die Minimaldistanz eines nichttrivialen Block-Codes C ist m (C ) : =
71
04.02.2016
min
c1 ,c2 ∈C ,c1 6=c2
Gog, Sanders, Wagner - Theoretische Grundlagen der Informatik
d (c1 , c2 ) .
INSTITUT FÜR THEORETISCHE INFORMATIK
Block-Codes Satz: Ein Block-Code C mit Minimaldistanz j m(kC ) = d kann entweder bis zu
d − 1 Fehler erkennen oder bis zu
72
04.02.2016
Gog, Sanders, Wagner - Theoretische Grundlagen der Informatik
d −1 2
Fehler korrigieren.
INSTITUT FÜR THEORETISCHE INFORMATIK
Beweisskizze
d−1 b d−1 2 c
b d−1 2 c b d−1 2 c
73
04.02.2016
Gog, Sanders, Wagner - Theoretische Grundlagen der Informatik
INSTITUT FÜR THEORETISCHE INFORMATIK
Block-Codes Perfekte Codes Ein Code ist perfekt oder dichtgepackt, wenn alle Empfangswörter innerhalb der Korrigierkugel liegen. Beispiel: (7, 4)-Hamming Code Nachrichtenwort 0000 1000 0100 1100 0010 1010 0110 1110 Informationsrate R 74
04.02.2016
Codewort 000 0000 110 1000 011 0100 101 1100 111 0010 001 1010 100 0110 010 1110 = 74 ≈ 0.57
Gog, Sanders, Wagner - Theoretische Grundlagen der Informatik
Nachrichtenwort 0001 1001 0101 1101 0011 1011 0111 1111
Codewort 101 0001 011 1001 110 0101 000 1101 010 0011 100 1011 001 0111 111 1111
INSTITUT FÜR THEORETISCHE INFORMATIK