Wstęp do teorii informacji: Wykład 6

4

Click here to load reader

Transcript of Wstęp do teorii informacji: Wykład 6

Page 1: Wstęp do teorii informacji: Wykład 6

Wstęp do teorii informacji: Wykład 6

I. KODY

Rozpatrzmy zbiór D = {x1, . . . , xn}, który nazywaćbędziemy alfabetem. Zbiór, którego elementami są skoń-czone ciągi si = xi1 . . . xik oznaczamy D

∗ i nazywamysłownikiem. Elementami słownika są słowa.

Definicja 6.1: Kodem C dla zmiennej losowej A : X →Y nazywamy odwzorowanie C : X → D∗.

Przykłady: (a) D = {0, 1}. C(Białe) = 00,C(Czarne) = 11. Zbiór {Białe,Czarne} może być dzie-dziną zmiennej losowej, np. A(Białe) = +100 zł,A(Czarne) = −100 zł, określającej wygraną w zakładzie.Jeżeli zakład dotyczy partii szachów, białymi gra Kaspa-row, a czarnymi ja, to możemy określić prawdopodobień-stwa zwycięstwa,

p(Białe) = 1− ǫ ≈ 1, p(Czarne) = ǫ≪ 1.

(b) Kod z Wykładu 1:

C(K1) = 0C(K2) = 10,

C(K3) = 110,C(K4) = 1110,C(K5) = 111100,

C(K6) = 111101,C(K7) = 111110,

C(K8) = 111111.

Ze słowami Kj zwiazane są prawdopodobieństwap(Kj) = pj . Oba powyższe kody są binarne, gdyż lite-rami alfabetu sa bity.

Definicja 6.2: Kod jest jednozancznie dekodowalny je-żeli podział dowolnego ciągu liter alfabetu na słowa jestjednoznaczny.

Definicja 6.3: Kod nazywamy przedrostkowym (prefik-sowym, natychmiastowym), jeżeli żadne słowo ze słow-nika nie jest przedrostkiem innego słowa (inaczej: słoworozpoznajemy natychmiast po doczytaniu do jego ostat-niej litery, a nie dopiero po przeczytaniu dłuższego frag-mentu tekstu).

Uwaga: Każde słowo można reprezentować graficznie ja-ko „liść drzewa kodowego”. Na Rys. 1 „liście” zaznaczonesą jako węzły numerowane od A do I. Jeżeli przesuwającsię najkrótszą drogą od góry w dół napotkamy na liść, tonie musimy iść dalej, gdyż na tej drodze na inny liść jużnie napotkamy. Na tym właśnie polega własność przed-rostkowości. Kod nie jest przedrostkowy, jeżeli napotkaw-szy na liść musimy iść do końca gałęzi, żeby sprawdzić,czy nie ma tam dalszych liści.

0 1

A

B

C

D

E

F

G

H

I

Rysunek 1: Drzewo odpowiadające kodowi przedrostkowemu.A = 00000, B = 0001, C = 001, D = 0100, E = 01010,F = 0110, G = 10, H = 1100, I = 111.

II. NIERÓWNOŚĆ KRAFTA

Oznaczmy przez li długość słowa si ∈ {s1, . . . , sN}.Nierówność Krafta jest pewną cechą drzew z Rys. 1. Niestosuje sie ona jedynie do kodów.

Twierdzenie 6.1: (Twierdzenie Krafta) Długości słówzapisanych w binarnym kodzie przedrostkowym spełniająnierówność Krafta

N∑

i=1

2−li ¬ 1. (1)

Ponadto, jeżeli spełniona jest nierówność Krafta, to ist-nieje odpowiadający jej kod przedrostkowy.

Dowód : Rozpatrzmy kod przedrostkowy w rodzaju tegoz Rys. 1. Zapytajmy, ile dróg jest zablokowanych przezliście, włączając w to drogi o maksymalnej długości. Ła-two widać, że jeżeli długość najdłuższej drogi wynosi l, tona drzewie jest 2l możliwych dróg startujących od wierz-chołka i docierających na sam dół. Jeżeli na i-ty liść na-trafiamy po li krokach, to do samego dołu brakuje naml− li kroków. Czyli taki liść blokuje 2l−li dróg w dół. Wsumie liście blokują

N∑

i=1

2l−li ¬ 2l (2)

dróg. Dzieląc tę nierówność obustronnie przez 2l uzysku-jemy nierówność Krafta. Mając zbiór długości spełniają-cych nierówność Krafta możemy je zawsze odwzorowaćna odpowiednie drzewo z liśćmi, a to wystarcza do zdefi-niowania kodu przedrostkowego. �

Uwaga: Jeżeli zamiast alfabetu binarnego użyjemy alfa-betu D-narnego, D = {0, . . . , D − 1}, nierówność Kraftadowodzi się w postaci

N∑

i=1

D−li ¬ 1. (3)

Page 2: Wstęp do teorii informacji: Wykład 6

2

1 2 3 4 5

0.5

1

1.5

2

2.5

3

3.5

Rysunek 2: Wykres funkcji f(x) = x−1−ln x. Jest ona zawszenieujemna, więc x− 1 ­ ln x.

Dowód bazuje na drzewach, w których każde rozgałęzie-nie zawiera D możliwości.

III. TWIERDZENIA SHANNONA OKODOWANIU DYSKRETNYM

Zacznijmy od obserwacji, iż dla x > 0 prawdziwa jestnierówność lnx ¬ x − 1, co pokazuje Rys. 2. Zmienia-jąc podstawę logarytmu przepisujemy nierówność jakolog x ¬ (x− 1) log e.

Twierdzenie 6.2: Rozpatrzmy zbiór słów {s1, . . . , sN}o długościach {l1, . . . , lN} i prawdopodobieństwach wy-stąpienia {p1, . . . , pN}. Średnia długość L(p1, . . . , pN ) =∑

i pili jest ograniczona od dołu przez entropię H =H(p1, . . . , pN),

H ¬ L. (4)

Dowód :

H − L = −∑

i

pi log pi −∑

i

pili

= −∑

i

pi log pi −∑

i

pi log 2li

= −∑

i

pi log(pi2li)

=∑

i

pi log1pi2li

·

i

pi

( 1pi2li

− 1)

log e (5)

=(∑

i

pi1pi2li

−∑

i

pi

)

log e

=(∑

i

2−li − 1)log e (6)

¬ (1− 1) log e = 0. (7)

Szacowanie (5) wynika z Rys. 2, a przejście od (6) do (7)wykorzystuje nierówność Krafta.�

Definicja 6.4: Długością Shannona i-tego słowa nazy-wamy najmniejszą liczbę naturalną wiekszą lub równąlog 1pi, czyli li = ⌈log 1pi ⌉. Kod, w którym słowa mają

długości Shannona, nazywamy kodem Shannona.

Twierdzenie 6.3: W kodzie Shannona średnia długośćL =∑

i pili spełnia

H(p1, . . . , pN ) ¬ L(p1, . . . , pN ) < H(p1, . . . , pN) + 1 (8)

Dowód : Trzeba udowodnić tylko górne szacowanie, co wy-nika z nierówności

x ¬ ⌈x⌉ < x+ 1 (9)

prawdziwej dla każdej liczby rzeczywistej x. Tak więc

log1pi¬ li =

log1pi

< log1pi+ 1. (10)

Prawa nierówność jest ostra. Mnożąc obustronnie przezpi i sumując, znajdujemy

i

pi log1pi·

i

pili <∑

i

pi log1pi+∑

i

pi, (11)

co mieliśmy udowodnić.�

Rozpatrzmy teraz k-literowe słowa zapisane w jakimśalfabecie, D = {x1, . . . , xn}. Oznaczmy prawdopodobień-stwa związane z częstotliwościami wystąpienia liter jako{q1, . . . , qn}. Tak więc prawdopodobieństwa pojawiającesie w poprzednim twierdzeniu bedą postaci pi = p(si) =p(xi1 . . . xik) = qi1 . . . qik . Entropia związana z takimiprawdopodobieństwa spełnia równość

H(p1, . . . , pN) = −∑

i

pi log pi,

= −∑

i1...ik

qi1 . . . qik log(qi1 . . . qik),

= −∑

i1...ik

qi1 . . . qik log qi1

...−∑

i1...ik

qi1 . . . qik log qik

= −∑

i1

qi1 log qi1

...−∑

ik

qik log qik

= −k∑

i

qi log qi = kH(q) (12)

Podstawiając to do (8) uzyskujemy nierówność

H(q) ¬L(p1, . . . , pN )

k< H(q) +

1k

(13)

Page 3: Wstęp do teorii informacji: Wykład 6

3

skąd wynika

Twierdzenie 6.4: (Podstawowe twierdzenie Shannonao kodowaniu dyskretnym) Możliwe jest takie przypisaniesłów kodowych ciągom k-literowym, żeby spełniona byławłasność przedrostkowa oraz dla średniej długości słówkodowych L = L(p1, . . . , pN ) zachodziła nierówność (13).Czyli średnia długość słowa przypadająca na jedną literęalfabetu może byc dowolnie bliska entropii alfabetu.

Uwagi: (a) Kod jest przedrostkowy, gdyż szacowania po-jawiające się w twierdzeniach 6.2 i 6.3 wykorzystywały wdowodach nierówność Krafta. (b) Kompresja kodu pole-ga na zmniejszaniu jego średniej długości. Widzimy więc,że kodowanie przy pomocy dłuższych ciągów liter możepoprawiać stopień kompresji (wyznaczany przez porów-nanie L z entropią).

IV. KODOWANIE SHANNONA

A. Przykład

Zacznijmy od przykładu [1]. Znajdźmy predrostkowybinarny kod Shannona dla słów s1 = A, s2 = B, s3 = C,s4 = D, s5 = E, jeżeli pojawiają się w tekście z praw-dopodobieństwami p1 = 0, 35, p2 = 0, 17, p3 = 0, 17,p4 = 0, 16, p5 = 0, 15. Zauważmy, iż słowa uporządko-waliśmy tak, aby p1 ­ p2 ­ p3 ­ p4 ­ p5. Definiujemyteraz wielkości

P1 = 0,P2 = p1 = 0, 35,

P3 = p1 + p2 = 0, 52,P4 = p1 + p2 + p3 = 0, 69,

P5 = p1 + p2 + p3 + p4 = 0, 85.

Długości słów w kodzie binarnym definiujemy jako

l1 =⌈

log10035

= 2,

l2 =⌈

log10017

= 3,

l3 =⌈

log10017

= 3,

l4 =⌈

log10016

= 3,

l5 =⌈

log10015

= 3.

Jako kod potraktujemy początkowe bity (te po przecin-ku) binarnych rozwinięć liczb Pj :

P1 = 0, 00P2 = 0, 010 . . . ,P3 = 0, 100 . . . ,

P4 = 0, 101 . . . ,P5 = 0, 110 . . . .

0 1

A

B C D E

Rysunek 3: Drzewo odpowiadające przedrostkowemu kodowiShannona: A = 00, B = 010, C = 100, D = 101, E = 110.

Ostatecznie: C(A) = C(s1) = 00, C(B) = C(s2) = 010,C(C) = C(s3) = 100, C(D) = C(s4) = 101, C(E) =C(s5) = 110. Drzewo kodu pokazane jest na Rys. 3. Wi-dać od razu, że kod można skrócić bez utraty przedrost-kowości (ostatni bit można usunąć z B i E). Kod Shan-nona nie zawsze jest optymalny.

B. Konstrukcja ogólna

Porządkujemy prawdopodobieństwa p1 ­ · · · ­ pn.Następnie tworzymy sumy według reguły P1 = 0, Pj =∑j−1i=1 pi, dla j > 1, po czym zapisujemy je binarnie

Pj =b121+b222+ · · ·+

blj2lj+ . . . (14)

Kodem jest ciąg bitów b1 . . . blj . Ponieważ jest to kodShannona, więc długości słów spełniają nierówność (10),którą równoważnie przepiszemy jako

1pi¬ 2li <

2pi

(15)

lub, wygodniej, jako

pi ­12li>pi2. (16)

Ponieważ Pj+1 = Pj + pj , zachodzi

Pj+1 − Pj = pj ­12li. (17)

Binarnie

12li= 0, 0 . . .01︸ ︷︷ ︸

li

. . . (18)

gdzie 1 pojawia się na li-tej pozycji. Każda liczba x <1/2li zapisuje się jako

x = 0, 0 . . . 0︸ ︷︷ ︸

li

bli+1 . . . (19)

gdzie na prawo od li-tego bitu znajduje sie chociaż jedno0 (gdyby były same jedynki, to byłby to równoważnyzapis liczby 1/2li). Ponieważ pi ­ 1/2li, więc pi musi

Page 4: Wstęp do teorii informacji: Wykład 6

4

na pierwszych li bitach mieć co najmniej jedną jedynkę.Rozpatrzmy teraz

Pj = 0, b1 . . . bljbli+1 . . . , .

Każdy Pi jest ułamkiem właściwym, 0 ¬ Pi < 1, więcbit przed przecinkiem jest zawsze 0. Dodając pj do Pjmusimy zmienić chociaż jeden z pierwszych lj bitów, co

jest równoznaczne stwierdzeniu, iż na gałęzi drzewa ko-dowego gałąź reprezentująca Pj+1 odłącza się od gałęzireprezentującej Pj powyżej liścia reprezentującego C(sj),przy czym gałąź C(sj+1) jest nie krótsza niż gałąź C(sj)(co wynika z ustawienia słów według malejącego praw-dopodobieństwa). Kod jest zatem przedrostkowy.

[1] A. Drozdek, Wprowadzenie do kompresji danych (WNT,Warszawa, 1999).