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