Masalah dalam P dengan algoritma acak terbukti lebih cepat


20

Apakah ada masalah dalam P yang memiliki algoritma acak mengalahkan batas yang lebih rendah pada algoritma deterministik? Lebih konkretnya, apakah kita tahu ada k untuk mana DTIME(nk)PTIME(nk) ? Di sini PTIME(f(n)) berarti kumpulan bahasa yang dapat ditentukan oleh TM acak dengan kesalahan yang dibatasi konstan (satu atau dua sisi) dalam langkah f(n) .

Apakah keacakan memberi kita sesuatu di dalam P ?

Untuk lebih jelasnya, saya mencari sesuatu di mana perbedaannya adalah asimptotik (lebih disukai polinomial, tetapi saya akan puas dengan polylogaritmik), bukan hanya konstanta.

Saya mencari algoritma asymptotically lebih baik dalam kasus terburuk. Algoritma dengan kompleksitas yang diharapkan lebih baik bukan yang saya cari. Maksud saya algoritma acak seperti dalam RP atau BPP bukan ZPP.


Mungkin "teknik Yao" adalah yang Anda cari. Deskripsi singkat dapat ditemukan di cs.pitt.edu/~kirk/cs2150/yao/yao.html
Wu Yin

@WuYin jika saya mengerti benar yang mengarah ke arah algoritma acak yang lebih rendah dengan perilaku kasus rata-rata algoritma deterministik .. Saya akan melihat lebih dalam, tetapi cara saya melihatnya, ini hanya bisa mengarah pada pembuktian keacakan itu. tidak tidak membeli kita apa pun di dalam P .. Am aku benar?
aelguindy

1
Untuk menemukan elemen apa pun dalam urutan panjang n dengan peringkat di [ n4 , 3n4 ] kita bisa mengembalikan elemen acak apa saja dan itu akan benar dengan 12 probabilitas karenanya O (1)! Sedangkan algoritma Deterministic setidaknya akan memeriksa sebagian kecil dari input dan karenanya Ω(n) .
rizwanhudda

@rizwanhudda Mungkin ada beberapa masalah dengan itu. Pertama, saya mencari masalah keputusan. Kedua, dalam model Turing, mengembalikan elemen acak adalah , karena tidak ada akses acak. Mungkin, mesin selalu menampilkan elemen pertama? Meski begitu, masalah pertama lebih besar. Ω(n)
aelguindy

2
Paragraf terakhir tidak masuk akal karena setiap algoritma Las Vegas dapat dikonversi ke algoritma Monte Carlo.
Tsuyoshi Ito

Jawaban:


17

Pengujian identitas polinomial mengakui algoritma waktu polinomial acak (lihat lemma Schwartz-Zippel ), dan kami saat ini tidak memiliki waktu polinom deterministik atau bahkan algoritma waktu sub-eksponensial untuk itu.

Evaluasi pohon permainan Pertimbangkan pohon biner lengkap dengansimpul daun yang masing-masing menyimpan nilai 0/1. Node internal berisi gerbang OR / AND di level alternatif. Dapat dibuktikan menggunakan argumen musuh bahwa setiap algoritma deterministik harus memeriksanode leaf dalam kasus terburuk. Namun ada algoritma acak sederhana yang membutuhkan waktu yang diharapkan berjalan Lihat slide 14-27 dari pembicaraan.Ω ( n ) O ( n 0.793 )nΩ(n)O(n0.793)

Routing yang tidak diketahui pada hypercube Pertimbangkan sebuah kubus dalam-dimensi yang mengandung simpul. Setiap dhuwur memiliki paket data dan tujuan yang pada akhirnya ingin dikirimi paket. Tujuan semua paket berbeda. Bahkan untuk ini, telah terbukti bahwa setiap strategi routing deterministik akan mengambil langkah-langkah. Namun, ada yang sederhana acak strategi yang akan selesai pada diharapkanlangkah dengan probabilitas tinggi .N = 2 n Ω (nN=2nO(n)Ω(Nn) O(n)

Perhatikan bahwa dalam algoritma acak, biaya yang diharapkan dengan probabilitas tinggi (seperti misalnya. ) setara dengan kasus terburuk dalam praktiknya.P r [ F ( n ) > 10 E ( F ( n ) ) ] < 1E(F(n)) Pr[F(n)>10E(F(n))]<1n2


Juga, pertimbangkan pengujian untuk matriks , dan jika . Kami saat ini tidak mengenal algoritma , kami tahu algoritma acak . Intinya adalah, adakah masalah yang bisa kita buktikan bahwa algoritma acak lebih baik? B C A B = C o ( 2 2.3 ) O ( n 2 )ABCAB=Co(22.3)O(n2)
aelguindy

@aelguindy saya mengerti maksud Anda. Tetapi, untuk PIT, algoritma determinstik yang paling dikenal adalah eksponensial. Dan, derandomisasi PIT adalah masalah terbuka yang penting dalam CS Teoritis.
rizwanhudda

Saya telah menambahkan evaluasi Tree Game dan perutean hypercube ke postingan, yang algoritma acaknya terbukti lebih baik daripada rekan-rekan determinstik.
rizwanhudda

OK, untuk evaluasi Game Tree, jika saya mengerti dengan benar, itu berjalan dalam diharapkan , kan? Maksud saya ada beberapa kasus di mana ia akan berjalan di . Apakah demikian halnya dengan contoh ketiga juga? Saya tidak mengizinkan waktu yang diharapkan lebih baik, saya mencari kompleksitas kasus terburuk yang lebih baik, memungkinkan kesalahan dalam output. Ω ( n )O(n0.793)Ω(n)
aelguindy

1
Jadi mereka tidak lebih baik dalam kasus terburuk. Meskipun saya menghargai contoh-contohnya, saya khawatir itu bukan yang saya cari. Contoh-contohnya sangat mencerahkan!
aelguindy

5

Investigasi kasus terburuk tidak ada artinya untuk algoritma acak. Tidak hanya runtime terburuk akan menjadi tak terbatas, tetapi juga mereka tidak dapat mengungguli algoritma deterministik dalam metrik itu.

Pertimbangkan setiap algoritma acak . Dapatkan algoritma deterministik dengan memperbaiki pita acak untuk hingga . Kemudian, untuk semua .B A 0 T B ( n ) T A ( n ) nABA0TB(n)TA(n)n


5

Ada banyak masalah di mana kita mengetahui algoritma acak yang efisien, dan kita tidak tahu algoritma deterministik apa pun yang dapat kita buktikan efisien. Namun, ini mungkin mencerminkan kekurangan dalam kemampuan kita untuk membuktikan hal-hal tentang kompleksitas daripada perbedaan mendasar.

Berdasarkan komentar Anda , tampaknya Anda bermaksud bertanya apakah ada masalah di mana ada algoritma acak yang efisien, dan kami dapat membuktikan tidak ada algoritma deterministik efisiensi yang sebanding. Saya tidak tahu masalah seperti itu.

Memang, ada alasan yang masuk akal untuk mencurigai bahwa masalah seperti itu mungkin tidak ada. Secara heuristik, keberadaan masalah seperti itu kemungkinan akan berarti bahwa kriptografi yang aman adalah tidak mungkin. Itu sepertinya hasil yang agak tidak masuk akal.

Apa hubungannya, Anda bertanya? Nah, pertimbangkan algoritma acak yang memecahkan beberapa masalah secara efisien. Itu bergantung pada koin acak: bit acak yang diperoleh dari sumber yang benar-benar acak. Sekarang anggaplah kita mengambil generator pseudorandom berkualitas kriptografi, dan mengganti sumber true-random dengan output dari generator pseudorandom. Panggil algoritma yang dihasilkan . Perhatikan bahwa adalah algoritma deterministik dan waktu yang berjalan kira-kira sama dengan .A A AAAAA

Juga, jika PRNG kriptografi aman, heuristik kita harus mengharapkan menjadi algoritma yang baik jika adalah: AAA

  • Misalnya, jika adalah algoritma Las Vegas (selalu menghasilkan jawaban yang benar, dan berakhir dengan cepat dengan probabilitas tinggi), maka akan menjadi algoritma deterministik yang cukup bagus (selalu menghasilkan jawaban yang benar, dan berakhir dengan cepat untuk sebagian besar input) .A AA

  • Sebagai contoh lain, jika adalah algoritma Monte Carlo (waktu berjalan deterministik, dan mengeluarkan jawaban yang benar dengan probabilitas setidaknya ), maka akan menjadi algoritma deterministik yang cukup bagus (waktu berjalan deterministik, dan mengeluarkan yang benar jawaban pada fraksi dari semua input). 1 - ε A 1 - εA1εA1ε

Oleh karena itu, jika PRNG kriptografi aman dan ada algoritma acak yang efisien, Anda mendapatkan algoritma deterministik yang cukup bagus. Sekarang ada banyak konstruksi PRNG kriptografi yang dijamin aman jika asumsi kriptografi tertentu berlaku. Dalam praktiknya, asumsi kriptografi tersebut diyakini secara luas: setidaknya, perdagangan aman dan transaksi bergantung pada anggapan mereka, jadi kami tampaknya bersedia bertaruh sejumlah besar uang dengan adanya kriptografi aman. Satu-satunya cara transformasi ini dapat gagal adalah jika PRNG kriptografi tidak ada, yang pada gilirannya menyiratkan kriptografi aman tidak mungkin. Meskipun kami tidak memiliki bukti bahwa ini bukan masalahnya, sepertinya ini hasil yang tidak mungkin.

Detail konstruksi: Inilah cara kerja . Pada input , berasal benih untuk PRNG kriptografi sebagai fungsi dari (misalnya, dengan hashing ), dan kemudian mensimulasikan , menggunakan output dari PRNG kriptografi sebagai koin untuk . Misalnya, instantiasi spesifik akan mengatur , kemudian gunakan sebagai seed untuk AES256 dalam mode penghitung, atau beberapa PRNG kriptografi lainnya. Kita dapat membuktikan pernyataan di atas dalam model oracle acak. x x x A ( x ) A k = SHA256 ( x ) kAxxxA(x)Ak=SHA256(x)k

Jika Anda tidak puas dengan gagasan bahwa mungkin menampilkan hasil yang salah pada sebagian kecil input, yang dapat diatasi. Jika Anda mengulangi beberapa kali dan mengambil suara mayoritas, probabilitas kesalahan menurun secara eksponensial dalam jumlah iterasi. Jadi, dengan mengulangi jumlah yang konstan, Anda bisa mendapatkan probabilitas kesalahan bawah , yang berarti kemungkinan Anda menjalankan input mana algoritma menghasilkan jawaban yang salah semakin kecil (kurang dari kemungkinan tersambar petir beberapa kali berturut-turut). Selain itu, dengan konstruksi yang saya berikan di atas, kemungkinan bahwa musuh bahkan dapat menemukan inputA ' ε 1 / 2 256 x x A ' AAAε1/2256xx mana memberikan jawaban yang salah dapat dibuat sangat kecil, karena itu akan membutuhkan melanggar keamanan hash SHA256. (Secara teknis, ini membutuhkan model oracle acak untuk membenarkan, jadi itu berarti bahwa harus dipilih untuk menjadi "independen" dari SHA256 dan bukan perhitungan hardcode di dalamnya yang terkait dengan SHA256, tetapi hampir semua algoritma dunia nyata akan memenuhi persyaratan itu) .)AA

Jika Anda menginginkan dasar teoritis yang lebih kuat, Anda dapat mengulangi kali, dan mendapatkan probabilitas kesalahan di bawah , di mana adalah panjang input . Sekarang fraksi input bit di mana memberikan jawaban yang salah benar-benar kurang dari . Tetapi hanya ada input bit yang mungkin , dan pada masing-masing benar atau salah, sehingga tidak ada input di mana salah: benar pada semua input, dan ini berlaku tanpa syarat . JikaΘ ( n ) 1 / 2 n n x n A ' 1 / 2 n 2 n n A A ' A ' A t ( n ) A ' Θ ( n t ( n ) ) A ' AA Θ(n)1/2nnxnA1/2n2nnAAAAberjalan dalam waktu , lalu berjalan dalam waktu , jadi sedikit lebih lambat dari tetapi tidak terlalu banyak lebih lambat. Ini adalah isi dari bukti Adleman bahwa BPP terkandung dalam P / poly. Untuk tujuan praktis ini mungkin berlebihan, tetapi jika Anda menyukai bukti bersih yang menghindari asumsi kriptografi atau jika Anda mendekati ini dari sudut pandang ahli teori maka Anda mungkin lebih menyukai versi ini.t(n)AΘ(nt(n))AA

Untuk detail lebih lanjut tentang pertimbangan teoretis terakhir dan masalah tambahan di mana kami mengetahui algoritma acak yang efisien tetapi kami tidak tahu algoritma deterministik apa pun yang dapat kami buktikan efisien, lihat /cstheory//q/31195 / 5038

Singkatnya: Untuk masalah di mana kita tahu algoritma acak yang efisien, kita juga tahu algoritma deterministik yang tampaknya cenderung efisien dalam praktiknya - tetapi saat ini kita tidak tahu bagaimana membuktikan bahwa itu efisien. Salah satu interpretasi yang mungkin adalah bahwa kita hanya tidak pandai membuktikan hal-hal tentang algoritma.

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.