(Von Neumann memberikan algoritma yang mensimulasikan koin yang adil diberikan akses ke koin bias identik. Algoritma ini berpotensi membutuhkan jumlah koin yang tak terbatas (meskipun dalam harapan, cukup banyak saja). Pertanyaan ini menyangkut kasus ketika jumlah lemparan koin yang diizinkan adalah dibatasi.)
Misalkan kita memiliki koin identik dengan bias . Tujuannya adalah untuk mensimulasikan lemparan koin tunggal sambil meminimalkan bias.
Simulasi harus efisien dalam arti berikut: Algoritma yang berjalan dalam waktu polinomial melihat bit acak dan menghasilkan bit tunggal. Bias algoritme didefinisikan sebagaidi mana ekspektasi diambil alih distribusi yang didefinisikan oleh iid bit sedemikian rupa sehingga .
Algoritme berjalan dalam waktu polinomial yang memiliki bias paling sedikit ?
Pertanyaan ini tampaknya sangat alami bagi saya dan sangat mungkin telah dipertimbangkan sebelumnya.
Apa yang diketahui tentang masalah ini? Adakah yang diketahui ketika kelas yang lebih lemah (dalam , dll.) Dari algoritma dipertimbangkan?
Anda tidak mengatakan apakah bias diketahui atau tidak diketahui. Keajaiban algoritma von Neumann adalah bahwa ia berfungsi dalam kedua kasus tersebut.
Misalkan diketahui. Jawaban terbaik kemudian sangat tergantung pada fitur-fitur teoritis angka dari bias. Mari kita ambil p = 2/3. Lempar koin dua kali dan petakan HH ke 0 dan TH dan HT ke 1, ulangi percobaan jika hasilnya TT. Maka 0 dan 1 sama-sama mungkin dan kemungkinan pengulangan hanya 1/9 bukannya 5/9 dengan algoritma von Neumann. Atau dengan kata lain, Anda hanya bias satu dari hasil dengan 1/9 jika batas iterasi Anda adalah 2.
Ini semua terkait erat dengan teori informasi dan teori pengkodean. Ketika p adalah pecahan dengan pembilang dan penyebut yang lebih rumit, algoritma terbaik akan membutuhkan panjang blok lebih panjang dari 2. Anda dapat menggunakan argumen keberadaan gaya Shannon untuk menunjukkan bahwa untuk bias yang diberikan ada prosedur yang seoptimal Anda ingin, tetapi panjang blok bisa menjadi sangat besar.
Peres dalam makalahnya Prosedur Iterating Von Neumann untuk Mengekstraksi Bit Acak membuktikan bahwa versi algoritma von Neumann dapat mendekati batas Shannon secara sewenang-wenang dengan baik. Banyak pekerjaan di bidang ini tampaknya telah dilakukan oleh ahli teori informasi dan ahli statistik, jadi saya tidak dapat memikirkan makalah dengan kemiringan teori-kompleksitas yang akan memberi Anda jawaban langsung untuk pertanyaan Anda.
Ada masalah terkait kesenangan yang menanyakan hal sebaliknya: Jika Anda memiliki sumber bit yang adil, bagaimana Anda secara efisien menghasilkan distribusi yang seragam pada beberapa set non-power-of-two? Versi terbatas iterasi dari masalah yang mirip dengan pertanyaan Anda meminta untuk memaksimalkan entropi (yaitu membuat distribusi serata mungkin) dengan lemparan koin yang adil.
sumber
Saya lebih suka memikirkan pertanyaan dalam bentuk umum berikut: kami memiliki pohon biner lengkap dari n, di mana setiap node diberi nomor st jumlah angka adalah 1. Bisakah kita mempartisi daun menjadi dua set st jumlah jumlah angka mereka dekat?
Jika kita memiliki bias koin dengan parameter dan , node akan memiliki nilai .q = 1 - p p i q n - ip q=1−p piqn−i
Seperti dicatat dalam jawaban lain, untuk sebagian besar tujuan pembajakan mengambil paritas bit adalah baik. Biasnya adalah .∑i(ni)parity(x)piqn−i=∑i(ni)(−p)iqn−i=(q−p)n
Secara umum, jika kita memiliki sumber daya komputasi yang cukup ( dalam jumlah bit acak), kita dapat mempartisi node dengan cara terbaik.PSpace
EDIT "Ini pada dasarnya masalah pengkodean Shannon." (Terima kasih kepada Per Vognsen.) AKHIR EDIT
Di sisi lain, jika kita hanya diperbolehkan menggunakan , maka tidak sulit untuk menunjukkan bahwa kita tidak dapat mencapai banyak karena beralih lemma. Rangkaian akan didekati secara eksponensial dengan baik oleh CNF dan tidak sulit untuk menunjukkan bahwa CNF tidak dapat menghitung jawaban dengan bias yang baik.AC0
(Jawaban ini mungkin mengandung kesalahan, saya belum memeriksa detailnya.)
sumber
Anda juga bisa mendapatkan banyak bit acak dari koin bias, lihat kertas Gabizon, algoritma derandomisasi di bawah Distribusi Produk (http://sites.google.com/site/arielgabizon1/)
sumber
Pertanyaan terkait, situs berbeda: memutihkan urutan bit acak
sumber
Jika Anda ingin jumlah lemparan koin genap tidak bias dengan koin bias, cara mudah untuk menghapus bias adalah membalikkan hasil dari setiap lemparan lainnya.
sumber