Apa cara terbaik untuk mendapatkan lemparan koin yang hampir adil dari koin bias yang identik?

21

(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.nδ=P[Head]P[Tail]

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 .nBias(A)=|E[A=0]E[A=1]|nx1,,xnProb[xi=1]Prob[xi=0]=δ

Algoritme berjalan dalam waktu polinomial yang memiliki bias paling sedikit ?ABias(A)

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?AC0

Hrushikesh
sumber

Jawaban:

15

Melempar n koin bias dan mengambil paritas kepala secara eksponensial mendekati .12

[Sebagai buktinya, pertimbangkan variabel acak yaitu -1 saat kepala dan 1 saat ekor, maka probabilitas bahwa ada jumlah kepala ganjil hanyalah ]E[12+12iXi]=12+12δn

Mungkin ini juga optimal karena alasan berikut. Biarkan menjadi fungsi komposisi bit ini. Kemudian, dan terbaik tampaknya adalah fungsi paritas (bukan?).Bias ( f ) = Σ S f ( S ) delta | S | ffBias(f)=Sf^(S)δ|S|f

Jika Anda tertarik pada fungsi komposisi dengan kompleksitas yang lebih rendah, maka mungkin makalah Ryan O'Donnell tentang `Amplifikasi kekerasan dalam NP ' akan sangat relevan. Di sana ia menggunakan fungsi komposisi monoton untuk amplifikasi kekerasan dan fungsi yang berfungsi dicirikan oleh sensitivitas noise mereka.

Ramprasad
sumber
Bisakah Anda menjelaskan mengapa paritas menjadi fungsi terbaik? (Juga, bukan berarti itu banyak asimtotik, tetapi bukankah seharusnya itu dalam ekspansi Fourier sejak ?). Terima kasih atas pointer ke kertas! E [ x i ] = δdelta|S|E[xi]=δ
Hrushikesh
Oh, maaf, Anda benar. Ekspresi itu salah dan sekarang telah memperbaikinya. Saya tidak memiliki bukti optimalitas (mungkin tidak optimal) tetapi alasan saya menduga demikian adalah bahwa itu akan benar jika ungkapannya adalah karena ini kemudian merupakan kombinasi cembung. Sf^(S)2δ|S|
Ramprasad
Mungkin ini bisa menjelaskan. Oleh Cauchy-Schwarz, kita tahu bahwa . Salah satu cara untuk mengoptimalkan adalah meminimalkan batas atas sebanyak mungkin dan itu terjadi ketika fungsi adalah fungsi paritas dan dalam hal itu jumlah yang kami tertarik cocok dengan batas atas juga. Namun, itu mungkin kasus bahwa vektor koefisien empatier sepenuhnya ortogonal ke vektor di mana LHS hanya nol! Apakah ada nilai khusus yang kita ketahui contohnya? fδδSf^(S)S:f^(S)0δ2|S|fδδ
Ramprasad
Sebenarnya, jika seseorang mengambil fungsi monoton non-trivial , maka pada , ekspektasi probabilitas adalah 0 dan pada adalah . Karenanya, untuk perantara , ia harus menggunakan nilai . Oleh karena itu tidak adil untuk mengharapkan bahwa untuk setiap , fungsi paritas optimal. δ = - 1 f ( x 1 , , x n ) = 1 δ = 1 1 δ 1fδ=1f(x1,,xn)=1δ=11δ δ12δ
Ramprasad
Bisakah Anda menjelaskan komentar terakhir lebih terinci? Mengabaikan masalah kompleksitas f, bukankah kesimpulan Anda benar hanya jika untuk karena paritas mengambil bias dari ke ? delta 1E[f]=1/2 δδnδ121/nδδn
Hrushikesh
12

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.

Per Vognsen
sumber
1
Terpikir oleh saya bahwa mengoptimalkan waktu berjalan tanpa bias (apa yang dilakukan kertas) adalah Lagrange ganda untuk mengoptimalkan bias dengan waktu berjalan. Jadi, saya pikir makalah itu benar-benar menjawab pertanyaan Anda!
Per Vognsen
5

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 - ipq=1ppiqni

Seperti dicatat dalam jawaban lain, untuk sebagian besar tujuan pembajakan mengambil paritas bit adalah baik. Biasnya adalah .i(ni)parity(x)piqni=i(ni)(p)iqni=(qp)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.)

Kaveh
sumber
2
"Bisakah kita mempartisi daun menjadi dua set, jumlah angka yang mereka tutup?" Ini pada dasarnya adalah masalah pengkodean Shannon. Algoritma Shannon-Fano adalah top-down dan dimulai dengan serangkaian elemen berbobot probabilitas dan meminta bipartisi yang bahkan mungkin. Menerapkan ini secara rekursif memberikan kode bebas awalan yang tidak terpisahkan. Algoritma Huffman adalah bottom-up: dimulai dengan pohon tunggal dan berulang kali menggabungkan pasangan dengan probabilitas terdekat. Jika Anda tahu tentang pengkodean aritmatika, ini juga benar menunjukkan bahwa lebih baik untuk menghasilkan beberapa bit yang adil sekaligus daripada satu per satu.
Per Vognsen
4

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
1

Jika Anda ingin jumlah lemparan koin genap tidak bias dengan koin bias, cara mudah untuk menghapus bias adalah membalikkan hasil dari setiap lemparan lainnya.

Dean J
sumber
1
Tentu saja ini tidak akan menghasilkan urutan acak yang seragam. Bayangkan kasing pembatas ketika bias koin menuju ke 1 - Anda hanya mendapatkan deret bit deterministik bergantian.
Aaron Roth
Strategi apa pun yang secara objektif memetakan kembali hasil akan mempertahankan entropi, sehingga tidak dapat mengubah distribusi dari entropi non-maksimal (bias) menjadi entropi maksimal (tidak bias).
Per Vognsen