Teoria informacji/TI Wykład 3: Różnice pomiędzy wersjami
Nie podano opisu zmian |
mNie podano opisu zmian |
||
Linia 26: | Linia 26: | ||
Znalezienie optymalnego kodu bezprefiksowego dla danego rozkładu prawdopodobieństwa nie jest wcale trudnym zadaniem. Prosty algorytm rozwiązujący ten problem podał Huffman. Wygląda on następująco: | Znalezienie optymalnego kodu bezprefiksowego dla danego rozkładu prawdopodobieństwa nie jest wcale trudnym zadaniem. Prosty algorytm rozwiązujący ten problem podał Huffman. Wygląda on następująco: | ||
{{kotwica| | {{kotwica|huffman|}} | ||
'''Algorytm Huffmana''' | '''Algorytm Huffmana''' | ||
(dla zbioru kodowanego S i alfabetu <math>\Sigma</math>) | (dla zbioru kodowanego S i alfabetu <math>\Sigma</math>) |
Wersja z 12:53, 1 wrz 2006
Jak widzieliśmy na przykładzie z grą, jeśli wszystkie prawdopodobieństwa są potęgami , to entropia jest równa średniej długości optymalnego kodu. Udowodnimy że zawsze stanowi ona dolne ograniczenie:
Definicja [długość kodu]
Dla danego S i parametru niech będzie minimum ze wszystkich dla dowolnego kodu , gdzie . Zauważmy że na mocy Twierdzenia Mcmillana wystarczy że znajdziemy minimum dla wszystkich kodów bezprefiksowych.
Twierdzenie
Dowód
Rozważmy dowolny kod gdzie . Pokażmy że
Wystarczy w tym celu użyć Złotego Lematu dla i .
Pozostało jedynie pokazać drugą część twierdzenie. Jeśli , to znaczy że dla pewnego kodu . Znów na podstawie Złotego Lematu dostajemy dla wszystkich .
Z drugiej strony, jeśli wszystkie prawdopodobieństwa są postaci , to na mocy nierówności Krafta, istnieje kod z , i dla tego kodu . A zatem , czyli musi zachodzić równość.
Znalezienie optymalnego kodu bezprefiksowego dla danego rozkładu prawdopodobieństwa nie jest wcale trudnym zadaniem. Prosty algorytm rozwiązujący ten problem podał Huffman. Wygląda on następująco:
Algorytm Huffmana (dla zbioru kodowanego S i alfabetu ) Jeśli to przypisz po prostu jakieś symbole obiektom z S. W przeciwnym wypadku 1. Jeśli , w razie konieczności uzupełnij S symbolami o prawdopodobieństwie 0, tak aby 2. Wybierz symboli o minimalnych prawdopodobieństwach 3. Uruchom rekurencyjnie ten algorytm dla zbioru z prawdopodobieństwami dla i . 4. Mając dane drzewo z poprzedniego punktu skonstruuj drzewo w następujący sposób: Dodaj k synów do słowa i oznacz ich jako .
Dla przedstawionej powyżej definicji kodu problem mamy zatem rozwiązany. Niestety w większości wypadków długość takiego
optymalnego kodu będzie się różniła od dolnej granicy . Na szczęście możemy ten problem obejść.
Okazuje się że dla dowolnego zadanego S i p można uzyskiwać mniejszą średnią długość kodu, dowolnie zbliżając się do . Uzyskuje się to przez lekkie poszerzenie samego pojęcia kodu.
Przykład [Kodowanie par]
Niech z . Oczywiście . (Jednocześnie łatwo oszacować że ). Oznacza to że nie możemy zakodować wiadomości w postaci krótszej niż sama . Wyobraźmy sobie jednak następujące kodowanie par:
Nie jest to w dosłownym sensie kod dla S, ale wygląda na to że możemy go użyć do zakodowania dowolnych wiadomości o parzystej długości. Faktycznie, zgodnie z definicją to jest kod dla . Rozważmy jako produkt (probabilistyczny) przestrzeni, w którym
Średnia długość naszego kodowania dwuznakowych bloków będzie wynosić
Jak można się spodziewać, podążając tym tropem dla kodów złożonych z trzech, czterech i więcej znaków będziemy mogli otrzymać coraz efektywniejsze kodowania. Czy jednak możemy zejść poniżej granicy entropii, czyli uzyskać
dla pewnego n?
Udowodnimy później że to jest niemożliwe, ale Pierwsze Twierdzenie Shannona pokaże że możemy zbliżyć się do niej dowolnie blisko, dla .
Najpierw jednak policzmy entropię przestrzeni interpretowanej jako przestrzeń produktowa. Można to zrobić przez żmudne elementarne wyliczenia, ale spróbujemy uzyskać wynik na podstawie ogólnych własności zmiennych losowych.
Przypomnijmy że wartość oczekiwana zmiennej losowej można przedstawić na dwa równoważne sposoby:
Drugi sposób często zapisuje się prościej jako
przyjmując że suma dowolnie wielu zer daje 0.
Używana tutaj notacja jest szczególnym przypadkiem notacji , określającej prawdopodobieństwo że zachodzi , czyli sumę p(s) po wszystkich s dla których jest spełnione.
Przypominamy z Rachunku Prawdopodobieństwa:
Fakt [Liniowość wartości oczekiwanej]
Rozważmy teraz przypadek gdy mamy dwie przestrzenie probabilistyczne S i Q. (Zwyczajowo, jeśli nie powoduje to niejasności, będziemy używać tej samej litery p na określenie prawdopodobieństwa we wszystkich przestrzeniach).
Niech będzie przestrzenią produktową, z prawdopodobieństwem określonym następująco
Dla zmiennych losowych i , definiujemy zmienne , na jako
Oczywiście mamy:
i analogicznie . Zatem i . Z liniowości wartości oczekiwanej
Niech teraz i . Rozkład sumy tych zmiennych będzie miał postać
Ale zgodnie z definicją, to jest dokładnie zmienna losowa na której wartość oczekiwana jest entropią . Czyli
W konsekwencji: