Teoria informacji - seria 1., zadanie 3.
Transkrypt
Teoria informacji - seria 1., zadanie 3.
Teoria informacji - seria 1., zadanie 3. Marcin Kotowski 27 listopada 2009 Pokażemy, że każde dwa z podanych w treści warunków implikują trzeci. (1) i (2) ⇒ (3) Udowodniliśmy na ćwiczeniach, że dla kodu bezprefiksowego warunek P −|x| = 1 jest równoważny maksymalności kodu. Wystarczy więc pox∈X r kazać, że kod spełniający warunki (1) i (2) jest maksymalny. Dowolny kod bezprefiksowy możemy reprezentować jako drzewo, gdzie słowa kodowe odpowiadają liściom. Maksymalność kodu oznacza, że każdy wierzchołek ma 0 lub |A| synów. Przypuśćmy, że kod spełniający warunki (1) i (2) nie jest maksymalny, tj. w odpowiadającym mu drzewie istnieje wierzchołek x mający mniej niż |A| synów. Kod nie mógłby wtedy wyczerpywać alfabetu. Istotnie, jeśli x nie ma syna odpowiadającego literze a ∈ A, to dowolne słowo nieskończone rozpoczynające się od xa nie da się rozłożyć na słowa kodowe, gdyż żadne słowo kodowe nie jest prefiksem xa ani też nie ma xa jako prefiksu. (1) i (3) ⇒ (2) Tak jak w poprzednim punkcie reprezentujemy kod bezprefiksowy jako drzewo. Kod bezprefiksowy spełniający warunek (3) jest maksymalny. Pokażemy, że każde słowo nieskończone posiada rozkład na słowa kodowe. Reprezentując słowo nieskończone jako nieskończoną ścieżkę w pełnym nieskończonym drzewie o arności |A| widzimy, że każda taka ścieżka przechodzi przez wierzchołek będący liściem w drzewie odpowiadającym rozpatrywanemu kodowi (korzystamy w tym momencie z maksymalności kodu). Wynika stąd, że 1 każde słowo nieskończone posiada pewne słowo kodowe jako prefiks, a więc daje się rozłożyć na słowa kodowe. (2) i (3) ⇒ (1) Jak wyżej, reprezentujemy kod jako drzewo (nie musi być to kod bezprefiksowy, myślimy więc o tym jedynie tak, że słowa kodowe reprezentujemy zaznaczając dowolne wierzchołki drzewa, nie tylko liście). Bezprefiksowości dowodzimy przez indukcję po wysokości drzewa, dowodząc, że jeśli kod wyP czerpuje alfabet i x∈X r−|x| ¬ 1 (w szczególności = 1), to kod jest bezprefiksowy. Dla wysokości n = 1 drzewo musi mieć dwa liście 0 i 1, bo kod wyczerpuje alfabet. Przypuśćmy, że mamy tezę dla drzew kodowych wysokości ¬ n. Rozpatrzmy kod reprezentowany drzewem wysokości n + 1. Jeśli poddrzewo korzenia ma w swoim korzeniu słowo kodowe, to daje wkład do sumy P 1 −|x| . Któreś z poddrzew korzenia nie ma w swoim koco najmniej |Σ| x∈X r rzeniu słowa kodowego - gdyby wszystkie poddrzewa miały w korzeniach słowa kodowe, to kod nie mógłby zawierać już żadnych innych słów, bo P −|x| = 1. Któreś z poddrzew korzenia nie ma więc w korzeniu słowa x∈X r P 1 . Oczywiście kodowego i daje wkład do sumy x∈X r−|x| nie większy niż |Σ| własność wyczerpywania alfabetu przenosi się na poddrzewo (tj. nie ma w tym poddrzewie ścieżek bez słowa kodowego). Stosując do tego poddrzewa założenie indukcyjne otrzymujemy, że kod jest na tym poddrzewie jest bezP 1 prefiksowy, w szczególności daje wkład do sumy x∈X r−|x| dokładnie |Σ| P (bo dla kodu bezprefiksowego wyczerpującego alfabet x∈X r−|x| = 1). Jeśli wszystkie pozostałe poddrzewa mają w korzeniach słowa kodowe, to nie mogą one zawierać żadnych innych słów kodowych i teza jest dowiedziona. W przeciwnym wypadku istnieje jakieś poddrzewo niezawierające w korzeniu P 1 słowa kodowego i dające wkład do sumy x∈X r−|x| nie większy niż |Σ| , dla którego możemy powtórzyć powyższe rozumowanie. W ten sposób dowodzimy, że kod jest bezprefiksowy na każdym poddrzewie, a więc jest bezprefiksowy. W dowodzie nie korzystamy z faktu, że 2 r−|x| = 1, a jedynie x∈X r−|x| ¬ 1, co jest prawdą dla każdego kodu. W istocie przedstawione rozumowanie dowodzi, że warunek (2) implikuje (3). P x∈X P Pokażemy, że żaden z podanych warunków nie implikuje pozostałych dwóch, poza implikacjami (2) ⇒ (3), (2) ⇒ (1). (1) ; (2), (1) ; (3) Ustalmy alfabet A = {0, 1}. Kod S = {0} jest oczywiście bezprefiksowy, nie wyczerpuje alfabetu (żadne słowo nieskończone zawierające 1 nie daje się P rozłożyć na słowa kodowe) oraz s∈S r−|x| = 21 < 1. (3) ; (1), (3) ; (2) Rozpatrzmy zbiór S = {0, 01, 11} - jest to kod, gdyż zbiór słów kodowych P jest bezsufiksowy. Mamy również s∈S r−|x| = 21 + 14 + 14 = 1. Oczywiście S nie jest bezprefiksowy, gdyż 0 jest prefiksem 01, oraz nie wyczerpuje alfabetu, gdyż żadne słowo nieskończone rozpoczynające się od 10 nie daje się rozłożyć na słowa kodowe. (2) ⇒ (3) Patrz dowód (2) i (3) ⇒ (1) (2) ⇒ (1) Skoro z (2) wynika (3), a z (2) i (3) razem wynika (1), to z (2) wynika (1) Pokażemy, że w przypadku nieskończonym nie zachodzi żadna z udowodnionych na początku implikacji. (1) i (2) ; (3) Na ćwiczeniach (gr. T. Kazany) skontruowaliśmy nieskończony bezprefikP sowy maksymalny kod, dla którego s∈S r−|x| < 1. Z rozumowania analogicznego, jak dla kodu skończonego, wynika, że kod maksymalny automatycznie wyczerpuje alfabet (na każdej nieskończonej ścieżce występuje liść odpowiadający słowu kodowemu). Mamy więc kod spełniający warunki (1) i (2), ale niespełniający (3). 3 (1) i (3) ; (2) Rozpatrzmy kod S = {1, 01, 001, 0001 . . . }. Kod ten jest bezprefiksowy i P −|x| = 12 + 41 + 18 + · · · = 1. Nie spełnia on jednak warunku (2), gdyż s∈S r słowo nieskoczone złożone z samych 0 nie daje się rozłożyć na słowa kodowe. (2) i (3) ; (1) Na ćwiczeniach skonstruowaliśmy (jedno z zadań do domu) dla dowolnego x przykład kodu nieskończonego o następujących własnościach: jest bezprefiksowy maksymalny (tj. na każddej nieskończonej ścieżce istnieje słowo koP dowe, a więc kod wyczerpuje alfabet), ma sumę s∈S r−|x| równą x oraz ma co najwyżej jedno słowo każdej długości. Możemy wziąć taki kod dla x = 34 P i dodać do niego dowolne słowo długości 2. Taki kod ma sumę x∈X r−|x| równą 1 i dalej wyczerpuje alfabet, ale już nie jest bezprefiksowy. 4