Pemahaman konkret tentang perbedaan antara definisi PP dan BPP

9

Saya bingung tentang bagaimana PP dan BPP didefinisikan. Mari kita asumsikan adalah fungsi karakteristik untuk bahasa . M menjadi Mesin Turing probabilistik. Apakah definisi berikut ini benar:χL
BPP={L:Pr[χ(x)M(x)]12+ϵxL, ϵ>0}
PP={L:Pr[χ(x)M(x)]>12}

Jika definisi salah, silakan coba lakukan perubahan minimal untuk membuatnya benar (yaitu jangan memberikan definisi setara lainnya yang menggunakan mesin hitung atau beberapa model yang dimodifikasi). Saya tidak dapat membedakan dengan benar kondisi pada probabilitas pada kedua definisi.

Beberapa contoh konkret dengan wawasan yang jelas tentang poin-poin halus akan sangat membantu.

DurgaDatta
sumber

Jawaban:

10

Itu terlihat benar bagi saya. Perbedaan antara BPP dan PP adalah bahwa untuk BPP probabilitas harus lebih besar dari1 / 2 + 1 / 2 n1/2 oleh konstanta , sedangkan untuk PP itu bisa . Jadi untuk masalah BPP Anda dapat melakukan amplifikasi probabilitas dengan sejumlah kecil pengulangan, sedangkan untuk masalah PP umum Anda tidak bisa.1/2+1/2n

adrianN
sumber
12

Jawaban Vor memberikan definisi standar. Biarkan saya mencoba menjelaskan perbedaannya sedikit lebih intuitif.

Misalkan adalah algoritma probabilistik polinomial-waktu kesalahan terbatas untuk bahasa L yang menjawab dengan benar dengan probabilitas setidaknya p 1ML. Biarkanxmenjadi input danp12+δx ukuran input.n

Apa yang membedakan sewenang-wenang algoritma dari algoritma adalah gap positif antara probabilitas untuk menerima dan probabilitas untuk menerima . PP x L x L BPPxLxLHal penting tentang adalah bahwa kesenjangannya setidaknya . Saya akan mencoba menjelaskan mengapa perbedaan ini penting dan memungkinkan kita untuk mempertimbangkan untuk dianggap sebagai algoritma yang efisien (bahkan diperkirakan sama dengan ) sedangkann - O ( 1 ) B P P P P P P P N PBPPnO(1)BPPPPP dianggap tidak efisien (sebenarnya berisiPPNP ). Semua ini berasal dari celah ini.

Mari kita mulai dengan melihat lebih hati-hati.PP

Perhatikan bahwa jika suatu algoritma menggunakan paling banyak bit acak selama eksekusi dan probabilitas kesalahan lebih kecil dari maka probabilitas kesalahan sebenarnya , tidak mungkin ada pilihan bit acak yang akan buat jawaban algoritma salah.2 - r ( n ) 0r(n)2r(n)0

Lebih jauh lagi, suatu algoritma dengan running time tidak dapat menggunakan lebih dari bit acak, jadi jika kesalahan algoritma probabilistik dengan case-run-time terburuk lebih baik daripadat ( n ) t ( n )t(n)t(n)t(n)

Dengan argumen yang sama kita dapat menunjukkan bahwa kasus di mana perbedaan antara probabilitas menerima dan probabilitas menerima terlalu kecil mirip dengan kasus di mana kita hampir tidak memiliki perbedaan. seperti dalam kasus .x L P PxLxLPP

Sekarang mari kita beralih ke .BPP

Dalam algoritma probabilistik, kita dapat meningkatkan probabilitas untuk menjawab dengan benar. Katakanlah kita ingin meningkatkan probabilitas kebenaran menjadi untuk mengatakan probabilitas kesalahanϵ = 2 - n1ϵϵ=2n (kesalahan kecil secara eksponensial).

Idenya sederhana: lari M beberapa kali dan ambil jawaban mayoritas.

Berapa kali kita menjalankan untuk mendapatkan probabilitas kesalahan paling banyak ?ϵ Θ ( δ - 1 lg ϵ )MϵΘ(δ1lgϵ) kali. Buktinya diberikan di bagian bawah jawaban ini.

Sekarang mari kita pertimbangkan bahwa algoritma yang kita diskusikan harus polinomial-waktu. Itu berarti bahwa kita tidak dapat menjalankan lebih dari berkali-kali secara polinomi. Dengan kata lain,Θ ( δ - 1 ln ϵ ) = n O ( 1 )MΘ(δ1lnϵ)=nO(1) , atau lebih sederhana

δ1lgϵ=nO(1)

Relasi ini mengkategorikan algoritma probabilitas kesalahan terbatas ke dalam kelas tergantung pada probabilitas kesalahan mereka. Tidak ada perbedaan antara probabilitas kesalahan menjadi atau konstanta positif (yaitu tidak berubah dengan ) atau2 - n n 1ϵ2nn12nO(1) . Kita dapat berpindah dari yang satu ini ke yang lainnya sambil tetap berada di dalam waktu polinomial.

Namun jika terlalu kecil, katakan , , atau bahkan maka kita tidak memiliki cara untuk meningkatkan probabilitas kebenaran dan mengurangi probabilitas kesalahan cukup untuk masuk ke0 2 - n n - ω ( 1 ) B P Pδ02nnω(1)BPP .

Poin utama di sini adalah bahwa dalam kita dapat secara efisien mengurangi probabilitas kesalahan secara eksponensial sehingga kita hampir pasti tentang jawabannya dan itulah yang membuat kita menganggap kelas algoritma ini sebagai algoritma yang efisien. Probabilitas kesalahan dapat dikurangi sedemikian rupa sehingga kegagalan perangkat keras lebih mungkin atau bahkan meteor yang jatuh pada komputer lebih mungkin daripada membuat kesalahan dengan algoritma probabilistik.BPP

Itu tidak benar untuk , kita tidak tahu cara mengurangi kemungkinan kesalahan dan kita dibiarkan hampir seolah-olah kita menjawab dengan melempar koin untuk mendapatkan jawaban (kita tidak sepenuhnya, probabilitasnya adalah bukan setengah dan setengah, tetapi sangat dekat dengan situasi itu).PP


Bagian ini memberikan bukti bahwa untuk mendapatkan probabilitas kesalahan ketika kita mulai dengan algoritma dengan gap kita harus menjalankan( 1ϵMΘ(δ-1lgϵ)(12δ,12+δ)M Θ(δ1lgϵ) kali.

Biarkan menjadi algoritma yang menjalankan untuk kali dan kemudian menjawab sesuai dengan jawaban mayoritas. Untuk kesederhanaan, mari kita asumsikan bahwa M k kNkMkk itu aneh sehingga kita tidak memiliki ikatan.

Pertimbangkan kasus yang . Kasus ini mirip. Kemudian Untuk menganalisis probabilitas kebenaran kita perlu memperkirakan probabilitas bahwa mayoritas yang berjalan menerima.x L P r { M ( x )  menerima } = p 1xLxLNkk

Pr{M(x) accepts}=p12+δ
Nkk

Mari menjadi 1 jika run th menerima dan menjadi jika menolak. Perhatikan bahwa setiap proses independen dari yang lain karena mereka menggunakan bit acak independen. Dengan demikian adalah variabel acak Boolean independen di mana i 0 X i E [ X i ] = P r { X i = 1 } = P r { M ( x )  menerima } = p 1Xii0Xi

E[Xi]=Pr{Xi=1}=Pr{M(x) accepts}=p12+δ

Biarkan . Kita perlu memperkirakan probabilitas yang diterima mayoritas, yaitu probabilitas bahwa . Y kY=Σi=1kXiYk2

Pr{Nk(x) accepts}=Pr{Yk2}

Bagaimana cara melakukannya? Kita dapat menggunakan batas Chernoff yang memberi tahu kita konsentrasi probabilitas di dekat nilai yang diharapkan. Untuk setiap variabel acak dengan nilai yang diharapkan , kami milikiμZμ

Pr{|Zμ|>αμ}<eα24μ

yang mengatakan bahwa probabilitas adalah jauh dari nilai yang diharapkan menurun secara eksponensial ketika meningkat. Kami akan menggunakannya untuk mengikat probabilitasα μ μ α Y < kZαμμαY<k2 .

Perhatikan bahwa dengan linearitas harapan kita memiliki

E[Y]=E[Σi=1kXi]=Σi=1kE[Xi]=kpk2+kδ

Sekarang kita bisa menerapkan ikatan Chernoff. Kami ingin batas atas pada probabilitas . Batas Chernoff akan memberikan batas atas pada probabilitas yang cukup. Kita punya | Y-(kY<k2|Y(k2+kδ)|>kδ

Pr{|Ykp|>αkp}<eα24kp

dan jika kita memilih sehingga kita selesai, jadi kita memiliha k p = k δ a = δααkp=kδα=δp2δ2δ+1 .

Karena itu kami punya

Pr{Y<k2}Pr{|Y(k2+kδ)|>kδ}Pr{|Ykp|>αkp}<eα24kp

dan jika Anda melakukan perhitungan Anda akan melihat itu

α24kpδ24δ+2k=Θ(kδ)

kita punya

Pr{Y<k2}<eΘ(kδ)

Kami ingin kesalahan paling banyak , jadi kami mauϵ

eΘ(kδ)ϵ

atau dengan kata lain

Θ(δ1lgϵ)k

Satu poin penting di sini adalah bahwa dalam proses ini kita akan menggunakan lebih banyak bit acak dan juga waktu berjalan akan meningkat, yaitu waktu berjalan terburuk dari akan kira-kira kali waktu berjalanNkkM .

Di sini titik tengah jeda adalah . Tetapi secara umum hal ini tidak perlu terjadi. Kita dapat mengadopsi metode serupa untuk nilai-nilai lain dengan mengambil pecahan lain menggantikan mayoritas untuk menerima.12

Kaveh
sumber
7

Menggunakan notasi Anda:

BPP={L: mesin Turing polinomial-waktu probabilistik dan Costant sedemikian rupa sehinggaM,0<c1/2xPr[χL(x)=M(x)]12+c}

PP={L: sebuah probabilistik polinomial-waktu Turing Machine sehinggaMxPr[χL(x)=M(x)]>12}

Perbedaannya telah ditunjukkan oleh adrianN, dan Anda juga dapat melihat Wikipedia PP vs BPP

Vor
sumber