Wielkie granie
O grze w 20 pytań inaczej
W artykule „Gra w 20 pytań” omówiliśmy sposób gry z graczem, który nie kłamie. A jak postępować z graczem, który kłamie? Czy jesteśmy zupełnie bezradni?
To pytanie postawił Stanisław Ulam w swojej książce Adventures of a Mathematician. Zapytał on mianowicie o to, jaka jest najmniejsza możliwa liczba pytań, które musi zadać Pytający, by odgadnąć pomyślaną liczbę z przedziału jeżeli wiadomo, że Odpowiadający może raz skłamać? Strategia wygrywająca oczywiścieistnieje: powtarzamy każde pytanie 3 razy.
Zajmiemy się od razu problemem ogólnym: Odpowiadający wybiera liczbę z przedziału domkniętego Pytający zadaje pytań, Odpowiadającemu wolno raz skłamać. Podobnie, jak poprzednio, Pytający zadaje pytania typu „czy ?”, gdzie jest dowolnym podzbiorem przedziału W tej postaci problem został niedawno rozwiązany przez Andrzeja Pelca z Kanady. Problem analogiczny, w którym zadawane pytania muszą być porównawcze, nie jest jeszcze rozwiązany do końca. Przedstawimy teraz rozwiązanie oryginalnego problemu Ulama, dowód będzie niewielką modyfikacją dowodu Pelca.
Zauważmy najpierw, że w każdym momencie naszej gry musimy rozpatrywać dwa zbiory dopuszczalnych liczb (a nie jeden zbiór, jak w przypadku gry bez kłamstw). Pierwszy z tych zbiorów składa się z tych liczb, które są zgodne ze wszystkimi dotychczas udzielonymi odpowiedziami – tzn. liczb o tej własności, że gdyby Odpowiadający pomyślał którąś z nich, to w dotychczasowych odpowiedziach jeszcze nie skłamał, ma więc prawo skłamać w dalszym ciągu gry. Drugi z tych zbiorów składa się z liczb, spełniających wszystkie odpowiedzi z wyjątkiem jednej – są to więc liczby, o których Odpowiadający już skłamał. Niech pierwszy zbiór ma elementów, a drugi elementów. Parę nazwiemy stanem gry. Teraz zauważmy, że każde pytanie jest w istocie rzeczy pytaniem o pewną liczbę elementów każdego z rozważanych powyżej zbiorów. Przypuśćmy zatem, że pytamy o elementów pierwszego zbioru i elementów drugiego. W zależności od odpowiedzi, gra przejdzie ze stanu w jeden z dwóch stanów oznaczanych dalej przez TAK i NIE. Zastanówmy się, jaką postać ma stan TAK. Niech będzie pierwszym zbiorem (ma on elementów) i drugim zbiorem (o elementach). Pytanie „czy ?” jest pytaniem o elementów zbioru i elementów zbioru tzn. zbiór ma elementów i zbiór ma elementów. Zatem zbiory i mają odpowiednio po i elementów. W przypadku odpowiedzi „tak” pierwszy zbiór będzie się składał z tych elementów zbioru które są zgodne z ostatnią odpowiedzią, czyli należą do Jest to zatem zbiór Do drugiego zbioru należą natomiast te elementy zbioru o których teraz skłamaliśmy (tzn. ) oraz te elementy zbioru o których nie skłamaliśmy (tzn. ). Stan TAK jest zatem równy Podobnie rozumując stwierdzimy, że stan NIE ma postać
Z każdym stanem zwiążemy teraz funkcję zwaną jego wagą. Przypuśćmy, że w stanie Pytający może zadać jeszcze pytań. Wtedy kładziemy Funkcję nazwiemy właśnie funkcją wagi (dokładniej -tą wagą) stanu Funkcja wagi mówi nam, jakie możliwości ma jeszcze Odpowiadający. Ma on do dyspozycji liczb, o których dotychczas mówił prawdę, może więc o każdej z nich dalej mówić prawdę lub skłamać w jednym z następnych pytań – daje to możliwości dla każdej z tych liczb. Wreszcie ma on do dyspozycji liczb, o których musi mówić prawdę do końca. Następnie określmy tzw. charakter stanu
Zauważmy na koniec, że
W dalszym ciągu będziemy wielokrotnie zastanawiali się nad istnieniem strategii wygrywającej dla Pytającego w środkowej fazie gry. Jeżeli gra znalazła się w stanie i Pytający ma od tego momentu strategię wygrywającą za pomocą co najwyżej pytań, to będziemy nazywać ją strategią wygrywającą począwszy od tego stanu.
Dowód. Odpowiadający może zastosować diabelską strategię (patrz Mała Delta). Po pierwszym pytaniu będziemy mieli nierówność
Stąd jeden ze stanów TAK i NIE ma -szą wagę większą od Odpowiadający wybiera tę odpowiedź, która ma większą wagę. W ten sposób po pytaniach dojdzie do stanu, którego zerowa waga jest co najmniej równa 2. Teraz wystarczy zauważyć, że Pytający ma pewność zgadnięcia po zadaniu wszystkich pytań tylko wtedy, gdy stan gry jest jednym ze stanów (1,0) lub (0,1). Oba te stany mają jednak zerową wagę równą 1. Diabelska strategia okazała się zatem skuteczna dla Odpowiadającego, co kończy dowód lematu.
Z powyższego lematu wynika, że Pytający może mieć strategię wygrywającą w pytaniach tylko wtedy, gdy -ta waga stanu początkowego jest co najwyżej równa W szczególności może się zdarzyć, że Pytający ma strategię wygrywającą w pytaniach począwszy od stanu Pokażemy teraz, że tak jest w istocie dla bardzo obszernej klasy stanów.
Nazwijmy stan stanem przyjemnym, jeśli Pytający ma strategię wygrywającą w pytaniach począwszy od stanu Stan nazwiemy stanem typowym, jeśli
Twierdzenie. Wszystkie stany typowe są przyjemne.
Dowód. Jedynymi stanami o charakterze 0 są stany (1,0) i (0,1). Są one stanami przyjemnymi, bo Pytający zna pomyślaną liczbę bez zadawania jakichkolwiek pytań.
Przypuśćmy teraz, że wszystkie stany typowe o charakterze mniejszym od są przyjemne. Niech będzie dowolnym stanem typowym charakteru Pokażemy, że jest on przyjemny. W tym celu wystarczy znaleźć takie pytanie, że otrzymane w jego wyniku stany mają -sze wagi różniące się co najwyżej o 1. Mianowicie z założenia o charakterze stanu wiemy, że Jeśli teraz to Stąd wynika, że charakter stanów TAK i NIE jest co najwyżej równy Jeśli teraz uda nam się dobrać pytanie tak, aby stany TAK i NIE były typowe, to z założenia będą one przyjemne. Pytający ma zatem strategię wygrywającą w pytaniach, co łącznie z zadanym już pierwszym pytaniem daje strategię wygrywającą w pytaniach.
Przypadek 1. Niech W zależności od parzystości liczby bierzemy liczbę tak, by lub Wystarczy zadać teraz pytanie o elementów pierwszego zbioru i elementów drugiego zbioru. Otrzymamy stany typowe
których wagi różnią się, oczywiście, co najwyżej o 1.
Przypadek 2. Niech Udowodnimy najpierw pomocniczy lemat.
Dowód. Bierzemy takie liczby i by lub oraz lub Zadajemy teraz pytanie o elementów pierwszego zbioru i elementów drugiego zbioru. Otrzymamy stany typowe
różniące się wagami co najwyżej o 1:
Niech teraz będzie stanem typowym, takim, że Pokażemy, że wtedy czyli spełnione jest założenie lematu 2. Otóż wystarczy pokazać, że
Ostatnią nierówność sprawdza się łatwo przez indukcję względem co skończy dowód lematu.
Niech teraz będzie stanem typowym, takim, że Wtedy i z powyższych rozważań wynika, że istnieje poszukiwane pytanie. Pozostają do rozpatrzenia przypadki stanów takich, że lub oraz Znalezienie w każdym z tych przypadków (z wyjątkiem stanu (3,2)) pytania, takiego, że stany TAK i NIE mają wagi różniące się co najwyżej o 1, jest łatwym ćwiczeniem dla Czytelnika. W stanie (3,2), który ma charakter 5, zadajemy pytanie o 2 elementy pierwszego zbioru, otrzymując w wyniku stany (2,1) i (1,4). Teraz wystarczy zauważyć, że oraz To kończy dowód twierdzenia.
Udowodnione twierdzenie pozwala już na dokładne określenie liczby pytań potrzebnych Pytającemu do odgadnięcia pomyślanej liczby. Ograniczymy się w dalszym ciągu do szczególnego przypadku, gdy liczba jest parzysta. Rozważmy zatem stan i przypuśćmy, że jego charakter wynosi Zatem Zadamy pytanie o elementów (gdzie ). Otrzymamy w wyniku tego pytania dwa identyczne stany każdy o tej samej wadze Zatem skąd wynika, że otrzymane stany mają charakter równy co najwyżej Jednocześnie są one typowe, a więc z twierdzenia wynika, że są one przyjemne. Oznacza to, że Pytający ma strategię wygrywającą w pytaniach, począwszy od każdego z tych stanów. Łącznie z pierwszym pytaniem daje to strategię wygrywającą w pytaniach, począwszy od stanu wyjściowego a więc od przedziału domkniętego
Z drugiej strony, jeśli to Odpowiadający ma swoją strategię diabelską. Ostatecznie dostajemy odpowiedź na pytanie, kiedy Pytający ma strategię wygrywającą: strategia ta istnieje dla przedziału domkniętego (dla parzystego) i pytań wtedy i tylko wtedy, gdy Analogiczne rozwiązanie dla nieparzystego Czytelnik bez trudu znajdzie samodzielnie – jedyna drobna trudność polega na tym, że po pierwszym pytaniu nie otrzymujemy stanów identycznych. Najrówniejszy podział stanu dla otrzymamy pytając o elementów – wynikiem będą stany oraz Z otrzymanej zależności po chwili wynika, że dla potrzeba 25 pytań. Jako ciekawostkę można podać, że analogiczna gra z dwoma kłamstwami wymaga 29 pytań.
Analiza przedstawionego dowodu pozwala zauważyć, że pytania, które będziemy zadawać, są pytaniami o przedział: „czy pomyślana liczba leży w przedziale domkniętym ?”.
Czytelnikom umiejącym pisać programy komputerowe można teraz zaproponować napisanie programu odgadującego pomyślaną liczbę według opisanego wyżej algorytmu.
Zastosowanie dla tego typu zabaw jest chyba widoczne. Chodzi mianowicie o przesyłanie informacji kanałami, które czasami powodują powstawanie błędów. Wystąpienie dwóch błędów jest bardzo mało prawdopodobne, spróbujmy więc opracować metodę postępowania w przypadku pojawienia się co najwyżej jednego błędu. Zobaczyliśmy pewną metodę postępowania w takich przypadkach, mianowicie wtedy, gdy mamy do czynienia z interakcyjną wymianą informacji. Można teraz wyobrazić sobie, że chcemy odgadnąć pomyślaną liczbę, ale musimy zadać wszystkie pytania od razu. Pytania te będą, oczywiście, znane Odpowiadającemu przed grą. Wystarczy więc, jeśli przyśle on nam ciąg odpowiedzi, zakodowany w postaci ciągu zer i jedynek: zero na -tej pozycji oznacza, że na to pytanie dał odpowiedź negatywną, jedynka – pozytywną. Problemem będzie teraz znalezienie minimalnej długości kodu (i oczywiście sposobu rozkodowywania, czyli treści kolejnych pytań), tak aby móc przesłać jednoznaczną informację o pomyślanej liczbie, pomimo że zakodowany ciąg po odebraniu go może różnić się na jednym miejscu od ciągu wysłanego. W ten sposób doszliśmy do pojęcia tzw. kodów korygujących błędy, o których innym razem.