Mensimulasikan dadu yang adil dengan dadu yang bias


18

Mengingat die-sisi bias N , bagaimana angka acak dalam kisaran [1,N] dapat dihasilkan secara seragam? Distribusi probabilitas dari wajah cetakan tidak diketahui, semua yang diketahui adalah bahwa setiap wajah memiliki probabilitas nol dan bahwa distribusi probabilitas adalah sama pada semua lemparan (khususnya, lemparan independen). Ini adalah generalisasi yang jelas dari hasil-hasil yang Adil dengan dadu yang tidak adil .

Menempatkan ini dalam istilah ilmu komputer, kami memiliki oracle yang mewakili die rolls: D:N[1,N] sehingga pi=P(D(k)=i) tidak nol dan tidak bergantung pada k . Kami sedang mencari algoritma deterministik A yang diparameterisasi oleh D (yaitu A dapat melakukan panggilan ke D ) sehingga P(A()=i)=1/N . Algoritma harus diakhiri dengan probabilitas 1, yaitu probabilitas bahwaA membuat lebih darin panggilan keD harus konvergen ke0 sebagain .

Untuk N=2 (mensimulasikan koin yang adil dari koin terbalik dengan koin bias), ada algoritma yang terkenal:

  • Ulangi "membalik dua kali" sampai dua lemparan muncul dengan hasil yang berbeda ((kepala, ekor) atau (ekor, kepala)). Dengan kata lain, loop untuk k=0.. hingga D(2k+1)D(2k)
  • Kembalikan 0 jika pasangan terakhir flips adalah (kepala, ekor) dan 1 jika itu (ekor, kepala). Dengan kata lain, kembalikan D(2k) mana k adalah indeks di mana loop dihentikan.

Cara sederhana untuk membuat die tidak bias dari bias adalah dengan menggunakan metode flip unbiasing koin untuk membangun koin adil, dan membangun die adil dengan sampel penolakan, seperti dalam Unbiasing dari urutan . Tetapi apakah ini optimal (untuk nilai generik dari distribusi probabilitas)?

Secara khusus, pertanyaan saya adalah: apa itu algoritma yang membutuhkan jumlah panggilan terkecil yang diharapkan ke oracle ? Jika himpunan nilai harapan yang dapat dicapai terbuka, apa batas bawah dan apa kelas algoritma yang menyatu ke arah batas bawah ini?

Jika keluarga algoritma yang berbeda optimal untuk distribusi probabilitas yang berbeda, mari fokus pada dadu yang hampir adil: Saya mencari algoritma atau keluarga algoritma yang optimal untuk distribusi sehingga i,|pi1/N|<ϵ untuk beberapa ϵ>0 .


Perhatikan bahwa penting untuk secara hati-hati menentukan yang optimal, karena misalnya Anda mungkin diberikan dadu yang sepenuhnya adil, atau dadu yang memiliki , p i = ϵ / ( N - 1 ) untuk i > 1 , atau yang lainnya jenis mati. Skema optimal untuk die adil hanya membutuhkan satu rol, sedangkan untuk contoh tidak adil skema optimal membutuhkan banyak roll. Lebih lanjut, supremum optimal atas semua kemungkinan mati bias mungkin tidak terikat. Jadi, Anda mungkin ingin memperkenalkan parameter, dan anggaplah bahwa maks i p i1 -p1=1ϵpi=ϵ/(N1)i>1 misalnya. maxipi1ϵ
usul

@ Usul Saya tidak mengerti komentar Anda. Ada beberapa algoritma yang lebih efisien untuk beberapa nilai (misalnya jika i , p i = 1 / N ), tetapi saya hanya meminta algoritma yang tidak bergantung pada ( p i ) . Apa gunanya ϵ ? pii,pi=1/N(pi)ϵ
Gilles 'SANGAT berhenti menjadi jahat'

Bagaimana Anda mengukur efisiensi suatu algoritma yang tidak bergantung pada ? Mungkin untuk algoritma semacam itu, tidak ada batas atas pada jumlah panggilan yang diharapkan diperlukan, dengan mengambil contoh saya mati bias dengan ϵ 0 . Inilah yang saya maksud dengan "supremum yang optimal ... mungkin tidak terbatas". Jadi, jika semua algoritme dapat secara sewenang-wenang meminta banyak gulungan, bagaimana kita memutuskan mana yang terbaik? (pi)ϵ0
usul

@ Usul Tidak ada batas atas pada jumlah lemparan, tentu saja, tapi saya bertanya tentang nilai yang diharapkan (yaitu jumlah rata-rata lemparan). Untuk distribusi tertentu , nilai yang diharapkan untuk algoritma yang menciptakan koin yang adil dan menggunakannya untuk sampel penolakan adalah terbatas, bukan? Memang benar bahwa ekspektasi tergantung pada distribusi, sehingga algoritma (keluarga) yang berbeda dapat optimal untuk distribusi yang berbeda. Jika itu masalahnya, katakanlah saya tertarik pada dadu yang hampir adil. (pi)
Gilles 'SO- stop being evil'

Tidak persis persis pertanyaan, tapi apakah Anda bersedia untuk hanya mencari hasil yang dekat dengan seragam (dalam / total variasi jarak)? Jika demikian, tergantung pada jaminan yang Anda minta dari distribusi asli, ini dipelajari dalam sebuah makalah baru-baru ini (dalam pengiriman), dengan nama "sampling improver for uniformity" - yang menunjukkan secara khusus Anda bisa mendapatkan jumlah undian yang independen dari N untuk meningkatkan dari 1 jarak ε ke jarak ε . 1N1εε
Clement C.

Jawaban:


3

Makalah berikut menjawab varian dekat dari pertanyaan ini: Konstruksi Efisien dari Urutan Acak yang Tidak Cocok, Elias 1972 .

Pertanyaannya sepertinya ini: Diberikan akses ke sumber independen yang bias ini, menampilkan urutan angka acak dalam (perhatikan perbedaan dari pertanyaan Anda di mana hanya satu simbol output yang diminta). Ketika panjang output yang diinginkan mencapai tak terhingga, "efisiensi" skema dalam makalah (yang tampaknya seperti generalisasi alami von Neumann) menjadi 1 , artinya, saya percaya, bahwa input dengan entropi h dikonversi menjadi sebuah output dari entropi yang mendekati h .[1,N]1hh

Pertanyaannya kelihatannya berperilaku jauh lebih baik ketika diutarakan dengan cara ini, daripada meminta satu digit output tunggal, karena, misalnya, jika kita menggambar sampel dan berakhir dengan output dengan banyak informasi (misalnya, semua simbol input N berbeda) , maka kita dapat menggunakan semua informasi itu untuk menghasilkan banyak simbol output, sedangkan dengan pertanyaan seperti yang diungkapkan di sini, setiap informasi di luar yang digunakan untuk menghasilkan satu simbol output akan sia-sia.NN

Saya percaya bahwa skema berulang kali mengambil menarik, melihat urutannya, dan memetakannya beberapa output atau string kosong. Mungkin ada cara untuk meningkatkan skema untuk pertanyaan Anda dengan melihat awalan dan berhenti jika kami memiliki informasi "cukup" untuk menghasilkan simbol? Saya tidak tahuN


Saya belum mencari pekerjaan berikutnya atau bekerja mengutip kertas, jadi saya tidak tahu tapi mungkin seseorang telah memperbaiki skema, menawarkan yang lain, menjawab pertanyaan Anda, dll.
usul

2

Metode yang Anda gambarkan untuk generalisasi. Kami menggunakan bahwa semua permutasi [ 1 .. N ] memiliki kemungkinan yang sama bahkan dengan die bias (karena gulungannya independen). Oleh karena itu, kita dapat terus bergulir sampai kita melihat permutasi seperti gulungan N terakhir dan menghasilkan gulungan terakhir.N=2[1..N]N

Analisis umum rumit; jelas, bagaimanapun, bahwa jumlah gulungan yang diharapkan tumbuh dengan cepat dalam karena probabilitas melihat permutasi pada setiap langkah yang diberikan kecil (dan tidak terlepas dari langkah-langkah sebelum dan sesudah, karenanya rumit). Hal ini lebih besar dari 0 untuk tetap N , bagaimanapun, jadi prosedur berakhir hampir pasti (yaitu dengan probabilitas 1 ).N0N1

Untuk fixed kita dapat membangun rantai Markov pada himpunan Parikh-vektor yang berjumlah N , merangkum hasil dari gulungan N terakhir , dan menentukan jumlah langkah yang diharapkan sampai kita mencapai ( 1 , , 1 ) untuk pertama kali . Ini cukup karena semua permutasi yang memiliki vektor Parikh sama-sama memungkinkan; rantai dan perhitungannya lebih sederhana dengan cara ini.NNN(1,,1)

Asumsikan kita berada dalam keadaan dengan Σ n i = 1 v iN . Kemudian, probabilitas mendapatkan elemen i (yaitu roll berikutnya adalah i ) selalu diberikan olehv=(v1,,vN)i=1nviNii

.Pr[gain i]=pi

Di sisi lain, kemungkinan menjatuhkan elemen dari sejarah diberikan olehi

Prv[drop i]=viN

setiap kali (dan 0 sebaliknya) justru karena semua permutasi dengan Parikh-vektor v memiliki kemungkinan yang sama. Probabilitas ini independen (karena gulungan independen), sehingga kami dapat menghitung probabilitas transisi sebagai berikut:i=1nvi=N0v

Pr[v(v1,,vj+1,,vN)]={Pr[gain j],v<N0, lain,Pr[v(v1,...,vsaya-1,...vj+1,...,vN)]={0,v<Nvsaya=0vj=NPrv[penurunan saya]Pr[mendapatkan j], else andPr[vv]={0,v<Nvi0Prv[drop i]Pr[gain i], else;

semua probabilitas transisi lainnya adalah nol. Keadaan menyerap tunggal adalah , vektor Parikh dari semua permutasi [ 1 .. N ] .(1,,1)[1..N]

Untuk rantai Markov yang dihasilkan adalahN=2

Rantai Markov untuk N = 2
[ sumber ]

dengan jumlah langkah yang diharapkan hingga penyerapan

Esteps=2p0p12+i3(p0i1p1+p1i1p0)i=1p0+p02p0p02,

gunakan untuk penyederhanaan bahwa . Jika sekarang, seperti yang disarankan, p 0 = 1p1=1p0untuk beberapaϵ[0,1p0=12±ϵ, laluϵ[0,12)

.Esteps=3+4ϵ214ϵ2

Untuk dan distribusi seragam (kasus terbaik) saya telah melakukan perhitungan dengan komputer aljabar²; karena ruang keadaan meledak dengan cepat, nilai yang lebih besar sulit untuk dievaluasi. Hasilnya (dibulatkan ke atas)N6

Tempat normal LogPlot
Plot menunjukkan - langkah sebagai fungsi N ; ke kiri biasa dan di sebelah kanan plot logaritmik.EstepsN

Pertumbuhan tampaknya eksponensial tetapi nilainya terlalu kecil untuk memberikan perkiraan yang baik.

Adapun stabilitas terhadap gangguan kita dapat melihat situasi untuk N = 3 :piN=3

Jumlah langkah yang diharapkan untuk N = 3 dan berbagai pilihan
Plot menunjukkan sebagai fungsi dari p 0 dan p 1 ; secara alami, p 2 = 1 - p 0 - p 1 .ELangkahhal0hal1hal2=1-hal0-hal1

Dengan asumsi gambar yang sama untuk lebih besar (kernel crash komputasi hasil simbolik bahkan untuk N = 4 ), jumlah langkah yang diharapkan tampaknya cukup stabil untuk semua tetapi pilihan yang paling ekstrem (hampir semua atau tidak ada massa di beberapa p i ).NN=4halsaya

Sebagai perbandingan, simulasi sebuah koin -biased (misalnya dengan menetapkan hasil die ke 0 dan 1 secara merata mungkin), menggunakan ini untuk mensimulasikan sebuah koin dan akhirnya melakukan bit-bijaksana penolakan pengambilan sampel memerlukan palingε01

2catatanN3+4ε21-4ε2

gulungan mati dalam harapan - Anda mungkin harus tetap dengan itu.


  1. Karena rantai menyerap dalam tepi yang ditunjukkan dalam warna abu-abu tidak pernah dilalui dan tidak mempengaruhi perhitungan. Saya memasukkannya hanya untuk tujuan kelengkapan dan ilustrasi.(11)
  2. Implementasi dalam Mathematica 10 ( Notebook , Bare Source ); maaf, itu yang saya tahu untuk masalah seperti ini.

1

Hanya komentar singkat tentang kasus . Ambil sejumlah besar m , dan sampel m lemparan dadu. Jika Anda mendapat k kepala maka Anda dapat mengekstrak log ( mN=2mmk bit. Dengan asumsi die yangpbias, jumlah rata-rata informasi m Σ k=0pk(1-p)m-k ( mcatatan(mk)hal Untuk mendapatkan perkiraan ini, menggunakan fakta bahwa variabel binomial terkonsentrasi di sekitark=pmbersama-sama dengan estimasilog ( m

k=0mhalk(1-hal)m-k(mk)catatan(mk)mh(hal).
k=halm. Ketikamsemakin besar, kami memperoleh tingkat optimalh(p)per lemparan koin (ini optimal untuk alasan informasi-teoretis, misalnya properti ekuipartisi asimptotik).catatan(mk)mh(k/m)mh(hal)

Anda dapat menggunakan metode yang sama untuk umum , dan Anda mungkin akan mendapatkan H yang sama ( p ) . Algoritma ini hanya optimal dalam batas, dan mungkin ada algoritma yang mencapai batas lebih cepat dari ini. Bahkan, saya lalai menghitung kecepatan konvergensi - ini mungkin latihan yang menarik.NH(hal)


1

Saya akan membahayakan jawaban berikut.

Kasus spesifik 2 yang Anda sebutkan di atas adalah kasus spesifik ekspansi (di mana p adalah prob kepala dan q prob ekor) yang memberi Anda istilah 2 p q Ini berarti Anda bisa mendapatkan p q untuk satu kasus dan q p untuk kasus lain. Anda perlu mengulangi pengambilan sampel sampai Anda melihat p q atau q p (head-tail atau tail-head) Menggunakannya sebagai simulasi, Anda akan memberikan probabilitas yang sama.(hal+q)2halq2halqhalqqhalhalqqhal

N=3(hal+q+r)3halqrqhalr

N=3halqr

.

Tambahan:

Ini membuat saya berpikir tentang ide sampel sederhana banyak untuk memperkirakan probabilitas setiap hasil dadu. Dalam kasus paling sederhana dari model satu lapisan tanpa lapisan tersembunyi (model yang diketahui), kita dapat menentukan batas untuk menyimpulkan bahwa estimasi tersebut menyatu dengan cepat. Sebenarnya Chernoff terikat menunjukkan kepada kita bahwa kesalahan turun secara eksponensial karena pengambilan sampel meningkat (linear).

saya=1saya=nhalsaya

Namun demikian, pendekatan ini merupakan jawaban untuk cita rasa yang berbeda. Pertanyaannya meminta jaminan ketidakberpihakan yang sempurna dengan biaya pengambilan sampel yang berpotensi besar (meskipun masalah rendah). Pendekatan ini hanya menggunakan sampling terbatas dengan parameter kepercayaan terbatas. Jadi saya tidak berpikir pendekatan ini cocok untuk pertanyaan ini meskipun sangat menarik.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.