Apakah ada upaya untuk menunjukkan bahwa keacakan Kolmogorov akan cukup untuk RP ? Apakah probabilitas yang digunakan dalam pernyataan "Jika jawaban yang benar adalah YA, maka (mesin Turing probabilistik) mengembalikan YA dengan probabilitas ..." selalu didefinisikan dengan baik dalam kasus itu? Atau akankah hanya ada batas atas dan bawah untuk probabilitas itu? Atau akankah selalu ada beberapa mesin Turing probabilistik, yang probabilitasnya akan didefinisikan dengan baik (atau setidaknya batas bawah yang seharusnya lebih besar dari 1/2)?
Kelas RP di sini relatif arbitrer, dan orang juga bisa mengajukan pertanyaan ini untuk gagasan lemah (pseudo-) keacakan daripada keacakan Kolmogorov. Tapi keacakan Kolmogorov tampaknya menjadi titik awal yang baik.
Memahami kata "probabilitas" akan menjadi bagian dari upaya untuk menunjukkan bahwa keacakan Kolmogorov bekerja untuk RP. Namun, izinkan saya mencoba menggambarkan satu pendekatan yang mungkin, untuk memperjelas apa artinya, dan mengapa saya berbicara tentang batas atas dan bawah:
Mari menjadi (Kolmogorov random) string. Biarkan menjadi mesin Turing probabilistik yang diberikan sesuai dengan bahasa dari RP. Jalankan dengan sebagai sumber untuk bit acak kali, terus mengkonsumsi bit yang sebelumnya tidak dikonsumsi dari satu demi satu.
Untuk p s - : = lim inf n → ∞ p s n p s + p s - s p s + = p s - s p s 1 - = p s 2 - s 1 s s - s p ≥ 1 / 2 p ≤ p
sumber
Jawaban:
Saya pikir pertanyaan yang diajukan di sini kira-kira " apakah ada perasaan di mana kita dapat mengganti urutan bit acak dalam suatu algoritma dengan bit yang diambil secara deterministik dari string acak Kolmogorov yang panjang? " Ini setidaknya pertanyaan yang akan saya coba untuk menjawab! (Jawaban singkatnya adalah "Ya, tetapi hanya jika Anda memperbesar probabilitas kesalahan terlebih dahulu")
Iya...
Kita tentu bisa mengatakan sesuatu di sini. Biarkan menjadi beberapa bahasa dan biarkan menjadi algoritma yang mengambil input dan string acak (distribusi seragam lebih dari ) st . Dengan kata lain, adalah algoritma yang keliru dengan probabilitas paling banyak .A x r ∈ U f ( | x | ) { 0 , 1 } f ( | x | ) Pr [ A ( x , r ) = L ( x ) ] > 1 - ϵ ( x ) A ϵ ( ⋅ )L. SEBUAH x r ∈ Uf( | x|) {0,1}f( | x | ) Pr [ A ( x , r ) = L ( x ) ] > 1 - ϵ (x) A ϵ (⋅)
Perhatikan sekarang bahwa jika memberikan jawaban yang salah pada yaitu, , ini memberi kita beberapa cara untuk menggambarkan , khususnya, kita dapat menggambarkannya sebagai -th string yang menyebabkan salah padaUntuk melakukan ini, kita cukup membuat mesin yang memiliki kode , , , dan sedikit , dan hanya menyebutkan pilihan dari sampai menemukan pilihan ke- dari sedemikian rupa sehingga .( x , r ) A ( x , r ) ≠ L ( x ) r i A x .A ( x , r) A ( x , r ) ≠ L ( x) r saya SEBUAH x. A i b = 1x SEBUAH saya r ′ { 0 , 1 } f ( | x | ) i r ′ A ( x , r ′ ) ≠ bb=1⟺x ∈ L r′ { 0 , 1 }f( | x | ) saya r′ A ( x , r′) ≠ b
Jadi sekarang kita tahu bahwa kita dapat memanfaatkan menjadi pilihan string acak yang buruk menjadi deskripsi, mari kita amati beberapa kondisi yang cukup untuk mengubah deskripsi menjadi kompresi. Untuk menggambarkan , kita memerlukan bit yang cukup untuk menggambarkan , , , dan kemudian kode untuk prosedur kita (kode untuk dan rutin yang kita uraikan), memberikan sebagai deskripsi panjang | x | + | saya | + O ( 1 ) = | x | + log 2 ( 2 fr x i b Ar r x saya b SEBUAH
Ingat bahwa adalah panjang f ( | x | ) , jadi ini adalah kompresi r if log ( 1 / ϵ ( x ) ) = | x | + ω ( 1 ) , misalnya, ketika .r f( | x | ) r
Akhirnya, amati bahwa jika adalah string acak Kolmogorov, maka kita tidak dapat memiliki kompresi seperti itu, sehingga selama probabilitas kesalahan cukup kecil, string acak Kolmogorov menggantikan urutan bit acak akan menyebabkan menjawab benar!A Ar SEBUAH SEBUAH
Perhatikan bahwa satu-satunya hal yang kami manfaatkan tentang adalah probabilitas kesalahannya kecil. Kami tidak peduli jika memiliki waktu yang sangat lama atau jika memiliki kesalahan satu atau dua sisi.A ASEBUAH SEBUAH SEBUAH
Membawa ini kembali ke pertanyaan (atau atau ), ini mengatakan bahwa selama kita memperbesar probabilitas kesalahan dari algoritma kita, kita dapat menggunakan string acak Kolmogorov sebagai ganti bit acak mereka.c o R P B P PR P coRP BPP
... Tetapi hanya jika kita memperkuat dulu.
Pertanyaan tindak lanjut mungkin adalah "bisakah saya melakukan ini tanpa memperbesar kemungkinan kesalahan?" Pertimbangkan algoritma berikut yang menentukan dan memiliki probabilitas kesalahan .{ 0 , 1 } * 1 / 2 nA {0,1}∗ 1/2n
Pada input :x
Catatan tentang sumber: Saya tidak yakin apakah ini novel, tapi saya memasukkan argumen pertama dalam langganan saya untuk ujian kualifikasi saya yang akhirnya akan tersedia online setelah saya selesai merevisinya.
sumber