(wcześniejsza notatka)
1. Co wiemy o kodach Shannon’a?
H(X)≤LSh(X)≤H(X)+1(⋆)
Teraz kodujemy słowa długości n nad alfabetem X.
Formalnie: patrzymy na Xn=nX×X⋯×X |
P({(a1,…,an)})=pa1⋅pa2⋯pan |
H(Xn)=n⋅H(X)(cˊw.) |
Używamy kodowania Shanonn’a dla elementów X i kodujemy elementy Xn. L(Xn)=n⋅LSh(X)(cˊw.) |
1.1. Frukt
Z „⋆”: n⋅H(X)≤n⋅LSh(X)≤H(Xn)+1=n⋅H(X)+1H(X)≤nL(Xn)≤H(X)+n1.
Twierdzenie Shannon’a raz jeszcze
biorąc pod uwagę Frukt z poprzedniego punktu: n→∞limnL(Xn)=H(X)
Uwaga o kodach Shannon’a
Kody Shannon’a bywają nieoptymalne.
Bez straty ogólności dla ∣X∣=N jest skończenie wiele (rozsądnych) kodów.
(Można ograniczyć długość słowa kodowego przez ?)
Zrobimy optymalne kody!
Kody Huffmana
Kodowanie Shannon’a nie jest jednoznaczne!