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