26
Information und Kommunikation Hartmut Klauck Universität Frankfurt SS 07 25.5.

Information und Kommunikation Hartmut Klauck Universität Frankfurt SS 07 25.5

Embed Size (px)

Citation preview

Page 1: Information und Kommunikation Hartmut Klauck Universität Frankfurt SS 07 25.5

Information und Kommunikation

Hartmut KlauckUniversität Frankfurt

SS 0725.5.

Page 2: Information und Kommunikation Hartmut Klauck Universität Frankfurt SS 07 25.5

Information & Kommunikation 12

2

Dekodierung

• Wir wollen nun untersuchen, wie RS Codes dekodiert werden können (die Kodierung ist trivial)

• Gegeben sind n verschiedene Elemente a1,…,an von Zq, y1,…,yn2 Zq, und Parameter k,t mit t· (n-k)/2

• Gesucht ist ein Polynom P mit Grad <k und P(ai)yi für höchstens t Werte von i

Page 3: Information und Kommunikation Hartmut Klauck Universität Frankfurt SS 07 25.5

Information & Kommunikation 12

3

Dekodierung

• Es gibt einen Polynomialzeitalgorithmus

• Der erste entworfene Algorithmus für das Problem hat Laufzeit O(n3), bester Algorithmus heute O(n polylog n)

• Wir betrachten einen einfachen Algorithmus mit O(n3) Laufzeit

Page 4: Information und Kommunikation Hartmut Klauck Universität Frankfurt SS 07 25.5

Information & Kommunikation 12

4

Dekodierung

• Definition 12.1– Gegeben a1,…,an und einen erhaltenen

Vektor y1,…,yn nennen wir ein Polynom E(x) fehlerlokalisierend für P, wenn es Grad t hat und E(ai)=0 gdw P(ai)yi

• So ein Polynom existiert:T sei die Menge der Fehlerpositionen in y,

|T|=t, setze E(x)=i2T (x-ai)

Page 5: Information und Kommunikation Hartmut Klauck Universität Frankfurt SS 07 25.5

Information & Kommunikation 12

5

Dekodierung

• Wir setzen N(x)=P(x)E(x)• N hat Grad höchstens k-1+t

• Es gilt für alle i: N(ai)=yiE(ai)

– Denn: wenn E(ai)=0, dann gilt P(ai)E(ai)=0=yi E(ai)

– Wenn E(ai)0, dann gilt P(ai)=yi

Page 6: Information und Kommunikation Hartmut Klauck Universität Frankfurt SS 07 25.5

Information & Kommunikation 12

6

Welch-Berlekamp Algorithmus

• Gegeben n,k,t· (n-k)/2 sowie n Paare (ai,yi) mit verschiedenen ai

• Schritt 1:– Finde Polynome N,E wie folgt, wenn

diese existieren• deg(E)=t• deg(N)<k+t

• Für alle i: N(ai)=yiE(ai)

• Schritt 2: Ausgabe von N(x)/E(x)

Page 7: Information und Kommunikation Hartmut Klauck Universität Frankfurt SS 07 25.5

Information & Kommunikation 12

7

Laufzeit• Die Laufzeit ist O(n3)

– Für Schritt 2 ist dies leicht zu sehen– Der erste Schritt ist die Lösung eines linearen

Gleichungssystems– Wir suchen Koeffizienten N0,…,Nk+t-1 und E0,…,Et so dass für alle

i gilt:

– Weiterhin muss gelten Et 0– Wir dürfen aber Et=1 festlegen (es gibt ein

fehlerlokalisierendes Polynom mit Et=1, denn wir können sonst alle Koeffizienten durch Et teilen ohne die Nullstellen zu ändern)

– Das lineare Gleichungssystem kann in Zeit O(n3) gelöst werden

Page 8: Information und Kommunikation Hartmut Klauck Universität Frankfurt SS 07 25.5

Information & Kommunikation 12

8

Korrektheit

• Angenommen P hat Grad <k und stimmt mit n-t Paaren überein (d.h. P(ai)=yi)

• Wir zeigen, dass ein Paar von Polynomen N,E wie gefordert existiert– E sei das fehlerlokalisierende Polynom;

N=PE. Dann erfüllen N und E alle Eigenschaften.

• Allerdings sind N,E nicht unbedingt eindeutig

Page 9: Information und Kommunikation Hartmut Klauck Universität Frankfurt SS 07 25.5

Information & Kommunikation 12

9

Korrektheit• Lemma 12.2

Alle Lösungen N,E und N‘,E‘ erfüllenN(x)/E(x)=N‘(x)/E‘(x)

• Damit gilt, dass N‘(x)/E‘(x)=N(x)/E(x)=P(x).• Beweis:

– Der Grad von N(x)E‘(x) und N‘(x)E(x) ist \leq k-1+2t– Für alle i gilt:

• yiE(ai)=N(ai) und N‘(ai)=yiE‘(ai)• yiE(ai)N‘(ai)=yiE‘(ai)N(ai)• Wir behaupten dass sogar E(ai)N‘(ai)=E‘(ai)N(ai)

– Klar wenn yi0– Sonst: N(ai)=N‘(ai)=0 und Beh. gilt ebenfalls

– Wenn nun n¸ k+2t, so stimmen E(x)N‘(x) und E‘(x)N(x) auf mehr Punkten überein als ihr Grad, und sind daher identisch

Page 10: Information und Kommunikation Hartmut Klauck Universität Frankfurt SS 07 25.5

Information & Kommunikation 12

10

Codes

• Wir haben verschiedene fehlerkorrigierende Codes kennengelernt– Reed-Solomon, Hamming, Hadamard

• Diese Codes können ¼ doppelt so viele Erasures korrigieren wie Fehler

• Es gibt aber auch spezielle Erasure Codes

Page 11: Information und Kommunikation Hartmut Klauck Universität Frankfurt SS 07 25.5

Information & Kommunikation 12

11

Codes

• Welche guten Codes gibt es noch?– BCH-Codes: algebraische Codes (Reed-Solomon

Spezialfall) mit teilweise besseren Eigenschaften– Low Density Parity Check Codes:

• können in Linearzeit dekodiert werden– durch graphtheoretische Ideen

• können konstanten Bruchteil von Fehlern korrigieren• Konstante Rate• Variante davon kann auch in Linearzeit kodiert werden

– Tornado Codes• Erasure Codes, welche Kapazität fast erreichen

– Linearzeit kodierbar und dekodierbar

Page 12: Information und Kommunikation Hartmut Klauck Universität Frankfurt SS 07 25.5

Information & Kommunikation 12

12

Dynamische Codes

• Es gibt weitere Variante von Codes– Fountain Codes:

• Sender schickt eine Folge von Paketen. Jede Teilmenge von k Paketen reicht aus, um die Nachricht zu dekodieren

• Also für Erasure Kanäle mit beliebiger Verlustrate geeignet

• Sender schickt eine unendliche Folge von Paketen, stoppt erst, wenn Empfänger dies signalisiert

Page 13: Information und Kommunikation Hartmut Klauck Universität Frankfurt SS 07 25.5

Information & Kommunikation 12

13

Datenkompression

• Wir kommen jetzt kurz zur Kompression zurück

• Praktisch relevantes Verfahren:Lempel-Ziv

• (Z.B. in zip-Programmen, oder dem GIF Standard)

• Dynamisches Verfahren• Verlustfrei

Page 14: Information und Kommunikation Hartmut Klauck Universität Frankfurt SS 07 25.5

Information & Kommunikation 12

14

Lempel Ziv

• Universelles Verfahren zur Kompression von Daten aus einer Quelle

• Passt sich der Quelle an• Die Rate geht gegen die Entropie der

Quelle• Auch praktisch relativ effizient

Page 15: Information und Kommunikation Hartmut Klauck Universität Frankfurt SS 07 25.5

Information & Kommunikation 12

15

Lempel Ziv

• Eine Quelle produziert einen Bitstring– (Verfahren kann einfach auf andere

Alphabete verallgemeinert werden)

• Der Algorithmus konstruiert eine Tabelle von Worten, die bereits vorkamen

• Worte, die noch nicht vorkamen, werden in die Tabelle aufgenommen

Page 16: Information und Kommunikation Hartmut Klauck Universität Frankfurt SS 07 25.5

Information & Kommunikation 12

16

Lempel Ziv

• Beispiel:– 010010010110101010101– wird zu 0,1,00,10,01,011, 010,101,0101

• D.h. nach jedem Komma suchen wir das kürzeste neue Wort

• Alle Präfixe eines neuen Teilstrings xi,…,xi+t sind bereits in unserer Tabelle, insbesondere der String xi,…,xi+t-1

• Wir kodieren den neuen String als die Position des Präfixes in der Tabelle + das neue Bit

Page 17: Information und Kommunikation Hartmut Klauck Universität Frankfurt SS 07 25.5

Information & Kommunikation 12

17

Lempel Ziv

• c(x) sei die Anzahl der Worte in der Tabelle zu einem n-Bit String x

• Jeder Tabellenindex braucht daherlog c(x) Bits, dazu 1 Bit für das letzte Zeichen

• Beispiel:– 0,1,00,10,01,011,010,101,0101– Wird zu (0000,0), (0000,1), (0001,0), (0010,0),

(0001,1), (0101,1), (0101,0), (0100,1), (0111,1)– Erst bei langen Strings erhalten wir tatsächlich

eine Kompression!

Page 18: Information und Kommunikation Hartmut Klauck Universität Frankfurt SS 07 25.5

Information & Kommunikation 12

18

Lempel Ziv

• Der Algorithmus läuft also zweimal über de String, zuerst wird die Tabelle erzeugt, c(x) berechnet

• Dann wird kodiert• Varianten möglich, wo die Pointer

nicht alle die gleiche Länge haben, und wo nur ein Durchlauf nötig

Page 19: Information und Kommunikation Hartmut Klauck Universität Frankfurt SS 07 25.5

Information & Kommunikation 12

19

Lempel Ziv

• Wir erhalten eine Kodierung mit Längec(x)(log(c(x))+1)

• Unser Ziel ist es zu zeigen, dassc(x)(log(c(x))+1)/n gegen die Entropie der Quelle geht

• Dies gilt für Stationäre Ergodische Quellen• Wir betrachten der Einfachheit halber nur

Quellen, die unabhängig zufällig Bits ausgeben

Page 20: Information und Kommunikation Hartmut Klauck Universität Frankfurt SS 07 25.5

Information & Kommunikation 12

20

Lempel Ziv

• Theorem 12.3– Die Anzahl c(x) der Worte in die ein n-Bit String

x zerlegt wird, erfüllt c(x)· n/((1-n) log n),

wobei n gegen 0 geht

• Beweis:– Sei

– Dies ist die Summe der Längen aller Strings der Länge ·k

Page 21: Information und Kommunikation Hartmut Klauck Universität Frankfurt SS 07 25.5

Information & Kommunikation 12

21

Lempel Ziv

• Die Anzahl der erzeugten Teilworte in unserem String x1,…,xn ist maximal, wenn diese möglichst kurz sind

• Wenn n=nk, dann geschieht dies wenn alle erzeugten Teilworte · k lang sind, daher gilt:

• Wenn nk· n < nk+1, gilt n=nk+ und · (k+1)2k+1

• Es gibt dann /(k+1) Worte der Länge k+1

Page 22: Information und Kommunikation Hartmut Klauck Universität Frankfurt SS 07 25.5

Information & Kommunikation 12

22

Lempel Ziv

• Daher:

• Wir müssen noch die Größe von k für gegebenes n bestimmen.

• nk· n < nk+1,

• Dann:

Page 23: Information und Kommunikation Hartmut Klauck Universität Frankfurt SS 07 25.5

Information & Kommunikation 12

23

Lempel Ziv

Page 24: Information und Kommunikation Hartmut Klauck Universität Frankfurt SS 07 25.5

Information & Kommunikation 12

24

Lempel Ziv• Sei nun y1,…yc(x) eine Zerlegung von x in Teilworte• cl(x) sei die Anzahl der yi mit Länge l• Klar:

• Lemma 12.4– Für jede Verteilung p auf {0,1} (und deren Erweiterung auf {0,1}n )

und die Zerlegung y1,…yc(x) von x gilt:

log p(x)· -l=1....ncl(x) log cl(x)

Page 25: Information und Kommunikation Hartmut Klauck Universität Frankfurt SS 07 25.5

Information & Kommunikation 12

25

Beweis 12.4

• Es gilt:

log p(x)=log i=1…n p(xi)

=log i=1…c(x) p(yi)

=i=1…c(x) log p(yi)

=l=1....n i:|yi|=l log p(yi)

=l=1....ncl(x)i:|yi|=l (1/cl(x)) log p(yi)

· l=1....ncl(x) log(i:|yi|=l (1/cl(x)) p(yi) )

mit Jensen und i:|yi|=l 1/cl(x)=1

Page 26: Information und Kommunikation Hartmut Klauck Universität Frankfurt SS 07 25.5

Information & Kommunikation 12

26

Beweis 12.4

• Daher:

• log p(x)

· l=1....ncl(x) log(i:|yi|=l (1/cl(x)) p(yi))

= l=1....ncl(x) log((1/cl(x)) i:|yi|=l p(yi))

· l=1....ncl(x) log(1/cl(x))

=-l=1....ncl(x) log cl(x)