(Von Neumann podał algorytm, który symuluje uczciwą monetę, mając dostęp do identycznych monet o tendencyjnym charakterze. Algorytm ten potencjalnie wymaga nieskończonej liczby monet (choć w oczekiwaniu wystarcza ostatecznie ich wiele). Pytanie dotyczy przypadku, gdy dozwolona liczba rzutów monetą jest zobowiązany.)
Załóżmy, że mamy identycznych monet o nastawieniu . Celem jest symulacja jednego rzutu monetą przy jednoczesnym zminimalizowaniu stronniczości.
Symulacja musi być wydajna w następującym znaczeniu: Algorytm działający w czasie wielomianowym sprawdza losowych bitów i wysyła pojedynczy bit. Odchylenie algorytmu jest określony jako gdzie oczekiwane jest przejęcie rozkładu określonego przez bitów takich, że .
Który algorytm działa w czasie wielomianowym ma najmniejszego odchylenia B i s ( ) ?
To pytanie wydaje mi się bardzo naturalne i jest bardzo prawdopodobne, że zostało wcześniej rozważone.
Co wiadomo na temat tego problemu? Czy coś wiadomo, kiedy słabszy klasy (w , itd.) Algorytmów jest brane pod uwagę?
Nie mów, czy uprzedzenie jest znane czy nieznane. Magia algorytmu von Neumanna polega na tym, że działa on w obu przypadkach.
Załóżmy, że jest to znane. Najlepsza odpowiedź zależy zatem krytycznie od liczbowo teoretycznych cech błędu. Weźmy p = 2/3. Rzuć monetą dwa razy i zamapuj HH na 0, a TH i HT na 1, powtarzając eksperyment, jeśli wynikiem jest TT. Wówczas 0 i 1 są jednakowo prawdopodobne, a szansa na powtórzenie wynosi tylko 1/9 zamiast 5/9 z algorytmem von Neumanna. Lub, ujmując to terminem, odchylenie jednego z wyników wynosi tylko 1/9, jeśli limit iteracji wynosi 2.
Wszystko to jest ściśle związane z teorią informacji i teorią kodowania. Gdy p jest ułamkiem o bardziej skomplikowanym liczniku i mianowniku, najlepszy algorytm będzie wymagał dłuższej długości bloku niż 2. Możesz użyć argumentu istnienia w stylu Shannona, aby pokazać, że dla danego błędu istnieje procedura, która jest tak optymalna jak chcesz, ale długość bloku może być bardzo duża.
Peres w swojej pracy „ Iterating von von Neumann's Procedury for Extracting Random Bits” dowodzi, że wersja algorytmu von Neumanna może dowolnie zbliżyć się do granicy Shannona. Wygląda na to, że wiele pracy w tej dziedzinie wykonali teoretycy informacji i statystycy, więc nie mogę wymyślić żadnej pracy o nachyleniu teoretycznym złożoności, która dałaby ci bezpośrednią odpowiedź na twoje pytanie.
Istnieje problem związany z zabawą, który stawia przeciwne pytanie: jeśli masz źródło uczciwych bitów, w jaki sposób wydajnie generujesz równomierny rozkład w pewnym zestawie innym niż potęga dwóch? Ograniczona do iteracji wersja problemu podobnego do twojego pytania prosi o maksymalizację entropii (tzn. Aby rozkład był jak najbardziej równomierny) za pomocą rzutów uczciwej monety.
źródło
Wolę myśleć o tym pytaniu w następującej uogólnionej formie: mamy pełne drzewo binarne wysokości n, w którym każdemu węzłowi przypisana jest liczba st suma liczb wynosi 1. Czy możemy podzielić liście na dwa zestawy st sumy numery są blisko?
Jeśli mamy tendencyjną monetę z parametrem i q = 1 - p , węzły będą miały wartości pp q=1−p .piqn−i
Jak zauważono w innych odpowiedziach, dla większości celów pirackich dobranie pary bitów jest dobre. Bias będzie .∑i(ni)parity(x)piqn−i=∑i(ni)(−p)iqn−i=(q−p)n
Ogólnie, jeśli mamy wystarczającą ilość zasobów obliczeniowych (powiedzmy w liczbie losowych bitów), możemy podzielić węzły w najlepszy możliwy sposób.PSpace
EDYCJA „Zasadniczo jest to problem kodowania Shannona”. (Podziękowania dla Per Vognsen.) KONIEC EDYCJI
Z drugiej strony, jeśli wolno nam tylko korzystaćAC0
(Ta odpowiedź może zawierać błędy, nie sprawdziłem szczegółów).
źródło
Możesz również uzyskać wiele losowych bitów z stronniczych monet, patrz artykuł Gabizona Algorytmy derandomizacji w części Dystrybucje produktów (http://sites.google.com/site/arielgabizon1/)
źródło
Powiązane pytanie, inna strona: wybielanie losowej sekwencji bitów
źródło
Jeśli chcesz, aby parzysta liczba rzutów monetą była bezstronna w przypadku monet o tendencyjnym charakterze, łatwym sposobem na usunięcie uprzedzeń jest odwrócenie wyniku każdego innego rzutu.
źródło