Teoria informacji

Transkrypt

Teoria informacji
Teoria informacji - zadania
Marcin Kotowski
20 sierpnia 2010
Zadanie 1. Mamy N graczy, każdy z nich dostaje czarną lub czerwoną czapkę (z równym prawdopodobieństwem). Zanim gracze dostaną czapki, mogą ustalić dowolną strategię, ale potem nie mogą się komunikować.
Po otrzymaniu czapek każdy gracz widzi czapki pozostałych, ale nie swoją. Każdy z graczy zgaduje, jaki ma
kolor, gracze wygrywają, jeśli każdy zgadnie dobrze. Jaka strategia zapewnia największe prawdopodobieństwo
wygranej?
Niech 0 oznacza czarną czapkę, a 1 czerwoną. Strategia każdego gracza to „powiedz XOR wszystkich
czapek, które widzisz”. Jeśli qi to kolor i-tego gracza, to i-ty gracz zgaduje, że ma kolor (q1 ⊕ · · · ⊕ qn ) ⊗ qi .
Łatwo widać, że każdy gracz zgadnie dobrze, jeśli suma wszsytkich qi wynosi 0, co się zdarza w połowie
przypadków. Czyli prawdopodbieństwo wygranej wynosi 12 .
Zadanie 2. Nierówność Krafta : Niech T będzie kodem bezprefiksowym, którego słowa kodowe mają długości l1 , . . . , ln . Zachodzi wtedy:
n
X
2−li ¬ 1
i=1
Na odwrót, jeśli liczby całkowite l1 , . . . , ln spełniają nierówność Krafta, to istnieje kod bezprefiksowy mający
słowa kodowe o zadanych długościach.
Dowód jest prostą indukcją po ilości słów kodowych (ew. długości najdłuższego słowa kodowego).
Zadanie 3. Udowodnij nierówność Krafta dla dowolnych kodów (niekoniecznie bezprefiksowych).
Niech φ będzie naszym kodem. Trick polega na rozpatrzeniu „potęgi” kodu φ - np. kod φ2 koduje pary
symboli w ten sposób, że parę symboli s1 s2 koduje jako φ(s1 )φ(s2 ) (konkatenacja kodu samego ze sobą).
Formalnie, kod φ2 jest nowym kodem o zbiorze symboli S × S. Analogicznie określamy φn . φn jest kodem,
bo φ jest kodem.
Zauważmy, że dla dowolnego kodu, w którym najdłuższe słowo ma długość lmax , zachodzi:
n
X
2−li ¬ lmax
i=1
k
Suma Krafta dla kodu φ wynosi:
n
X
X
(
2−li )k =
2−(li1 +···+lik )
i=1
i1 ,...,ik
Najdłuższe słowo w kodzie φk jest długości co najwyżej klmax . Stąd:
(
n
X
2−li )k ¬ klmax ⇒
i=1
n
X
1
1
k
2−li ¬ k k lmax
i=1
co zachodzi dla dowolnego k, a prawa strona dąży do 1.
Zauważmy, że z nierówności Krafta wynika, że dla dowolnego kodu φ istnieje kod bezprefiksowy φ0 , który
ma te same długości słów kodowych. Tak więc ograniczając się do kodów bezprefiksowych nic nie tracimy,
jeśli chodzi o wydajność kodowania.
1
Zadanie 4. Pokaż, że skończony kod T jest maksymalny ⇔ w nierówności Krafta zachodzi równość.
Oczywiście jeśli kod ma równość w nierówności Krafta, to nie można już do niego nic dodać, gdyż suma
Krafta byłaby wtedy ­ 1, a więc nie byłby to już kod. Na odwrót, jeśli kod jest maksymalny, t
Zadanie 5. Znajdź maksymalny bezprefiksowy kod nieskończony, która ma sumę Krafta mniejszą od 1 (a
nawet - dowolnie małą).
Rozwiązanie 1 - weźmy zbiór wszystkich słów v postaci v = www. Zbiór ten ma sumę Krafta równą:
∞
X
i=1
2i 2−3i =
∞
X
i=1
2−2i =
1
3
Możemy go „ubezprefiksowić” wyrzucając pewną liczbę słów. Wtedy otrzymamy kod bezprefiksowy, a suma
Krafta może się jedynie zmniejszyć. Pozostaje zauważyć, że tak otrzymany kod jest maksymalny. Przypuśćmy, że można byłoby do niego dorzucić jakieś słowo v. Jeśli vvv jest w kodzie, to sprzeczność, bo nasz
kod jest bezprefiksowy. Jeśli słowo vvv nie jest w kodzie, to znaczy, że zostało z niego usunięte w trakcie „ubezprefiksowywania”, a więc było prefiksem jakiegoś innego słowa v 0 . A stąd v jest prefiksem v 0 sprzeczność.
Rozwiązanie 2 - rozpatrzmy nieskończone drzewo binarne, po którym schodzimy w każdym kroku po
jednym poziomie. Mamy do dyspozycji kolejkę, która początkowo zawiera korzeń. W każdym kroku możemy
na węźle na danym poziomie, który jest na początku kolejki, położyć kropkę albo nie. Jesli na danym
wierzchołku nie kładziemy kropki, to wszystkich synów danego wierzchołka wrzucamy do kolejki. W ten
sposób dostaniemy kod maksymalny
każdej ścieżce będzie kiedyś kropka, bo wrzucamy synów do kolejki),
P (na
a jego suma Krafta jest równa
ai 2−i , gdzie ai = 0 lub 1 zależnie od tego, czy w i-tym kroku postawiliśmy
kropkę.
Zadanie 6. Pokaż, że skończony kod bezprefiksowy jest maksymalny ⇔ każde nieskończone słowo daje się
rozłożyć na słowa kodowe.
Łatwe, jeśli wyobrażamy sobie kod jako drzewo. Maksymalność oznacza, że na każdej ścieżce w końcu
wystąpi jakieś słowo kodowe.
Zadanie 7. Znajdź algorytm, który mając dany skończony zbior słów kodowych rozstrzyga, czy zbiór ten jest
kodem.
Dla wtajemniczonych - łatwo skonstruować niedeterministyczny automat skończony, który dla zadanego
słowa zgaduje jego rozkład na słowa kodowe. Oznaczmy zbór stanów tego automatu przez Q - łatwo skontruować automat o zbiorze stanów Q × Q × {0, 1}, który sprawdza, czy dane słowo ma dwa różne rozkłady
(automat równolegle zgaduje rozkłady i sprawdza, czy dwa zgadnięcia kiedyś się rozeszły). Wobec tego
wystarczy sprawdzić pustość zbioru słów rozpoznawanego przez automat.
Rozwiązanie bardziej algorytmiczne - zauważmy, że jeśli istnieje słowo mającedwa różne rozkłady, to
wystepują w nim „wiszące sufiksy”:
Słowo mające dwa rozkłady istnieje wtedy i tylko wtedy, gdy istnieje „wiszący sufiks” będący słowem
kodowym.
„⇒”:
„⇐”:
2
Zadanie 8. Mamy N graczy, każdy z nich dostaje czarna lub czerwoną czapkę (z równym prawdopodobieństwem). Zanim gracze dostaną czapki, mogą ustalić dowolną strategię, ale potem nie mogą się komunikować.
Po otrzymaniu czapek każdy gracz widzi czapki pozostałych, ale nie swoją. Każdy z graczy zgaduje, jaki ma
kolor - może powiedzieć dowolny kolor lub spasować. Gracze przegrywają, jeśli ktoś zgadnie źle lub wszyscy
spasują, wygrywają w przeciwnym przypadku. Zaproponuj strategię, która daje wysokie prawdopodobieństwo
wygranej. Pokaż, że maksymalne możliwe prawdopodobieństwo wynosi NN+1 .
Łatwo podać strategię, która gwarantuje szansę na wygraną 43 . Wszyscy gracze poza wybranymi trzema
pasują. Z wybranych trzech graczy każdy stosuje następującą strategię - jeśli widziani przez niego dwaj gracze
mają ten sam kolor, to mówi odwrotność tego koloru, w przeciwnym wypadku pasuje. Rozpisując wszystkie
możliwości widać, że przegrywamy tylko przy układach 000 lub 111.
Jak znaleźć górne oszacowanie? Układ nazwiemy wygrywającym, jeśli stosując naszą strategię wygrywamy, w przeciwnym wypadku nazwiemy go przegrywającym. Dwa układy sąsiadują, jeśli różnią się jednym
bitem. Jeśli wygraliśmy, to któryś gracz coś powiedział - jeśli podmienimy mu 0 na 1, to powie on to samo,
ale tym razem przegra. A więc każdy układ wygrywający sąsiaduje z co najmniej jednym przegrywającym.
Z drugiej strony, każdy układ przegrywający sąsiaduje z n układami, a więc z co najwyżej n układami
wygrywającymi - nP ­ W . Czyli prawdopodobieństwo przegranej wynosi:
P
1
P
¬
=
W +P
nP + P
n+1
Zadanie 9. Załóżmy, że chcemy przesłać 8 symboli za pomocą 6 bitów, ale podczas przesyłania jeden bit
może ulec zamianie (0 na 1 lub odwrotnie). Jaki przyjąć schemat kodowania, by umożliwić jednoznaczne
odczytanie przesłanej wiadomości? Czy da się to zrobić z mniejszą ilością bitów?
Łatwe kodowanie : (a, b, c) 7→ (a, b, c, a ⊕ b, b ⊕ c, c ⊕ a). Czy da się to zrobić z mniejszą liczbą bitów?
Każde słowo na wyjściu jest w odległości co najwyżej 1 od słowa na wejściu, i żadne takie dwie „kule” nie
mogę się przecinać (inaczej odczytanie nie będzie jednoznaczne). Mając n wiadomości do przesłania musimy
upchać n kul, a przy k bitach każda kula zawiera k słów. Stąd nk ¬ 2k . U nas n = 8, czyli 8k ¬ 2k , czyli
minimalne k wynosi 6.
Zadanie 10. Rozważmy następującą grę: prowadzący wkłada do dwóch kolorowych kopert nieznane liczby
całkowite i pozwala Ci wybrać jedną z kopert. Po otwarciu koperty i przekonaniu się, jaka liczba jest w środku,
masz zgadnąć, czy liczba w drugiej kopercie jest większa, czy mniejsza. Jeśli zgadniesz dobrze, wygrywasz
złotówkę, w przeciwnym wypadku przegrywasz złotówkę.
Sąsiad przestrzega Cię, byś nie grał - jego syn strawił całe życie na graniu w tę grę i sumarycznie wyszedł
na zero. „Tu się średnio nie da nic wygrać, wychodzi się zawsze na zero” - twierdzi. Czy ma rację?
Rozwiązanie - wybierzmy dowolny rozkład prawdopodobieństwa na liczbach całkowitych i przed otwarciem koperty wylosujmy z tego rozkładu liczbę R. Oznaczmy liczbę w otwartej kopercie przez A. Stosujemy
taktykę - jeśli A < R, to uznajemy, że A jest małe i zgadujemy, że B jest większe, jeśli A > R, to odwrotnie.
• jeśli A, B < R, to wygrywamy z p = 12 .
• jeśli A, B > R, to też wygrywamy z p =
1
2
• jesli A < R < B albo B < R < A, to wygrywamy zawsze!
Trzeci przypadek zachodzi z niezerowym prawdopodobieństwem, a więc średnio prawdopodobieństwo
wygranej wynosi więcej, niż 12 .
3

Podobne dokumenty