Bisakah mesin Turing probabilistik menyelesaikan masalah penghentian?

29

Komputer yang diberi aliran tak terbatas dari bit yang benar-benar acak lebih kuat daripada komputer tanpa itu. Pertanyaannya adalah: apakah ini cukup kuat untuk menyelesaikan masalah penghentian?

Artinya, dapatkah komputer probabilistik menentukan apakah suatu program deterministik berhenti atau tidak ?

Contoh komputer probabilistik yang melakukan sesuatu yang deterministik tidak dapat: Pertimbangkan program kecil (panjangnya kurang dari satu kilobyte) yang menghasilkan string dengan kompleksitas Kolmogorov lebih besar dari satu gigabyte. The kompleksitas Kolmogorovstring adalah panjang dari program deterministik terpendek yang menghasilkan string itu. Dengan demikian, menurut definisi, program deterministik tidak dapat menghasilkan string yang kompleksitasnya lebih besar daripada panjangnya sendiri. Namun, jika diberi aliran infinite bit yang benar-benar acak, sebuah program kecil mampu mencapai tugas dengan 99,99999 ...% sukses hanya dengan menggemakan, katakanlah, 10 miliar bit acak dan berharap kompleksitas Kolmogorov dari bit tersebut cukup tinggi . Oleh karena itu, menghasilkan serangkaian kompleksitas Kolmogorov superior berada dalam cakrawala kemungkinan program probabilistik, tetapi sama sekali tidak mungkin untuk program deterministik.

Yang mengatakan, saya bertanya-tanya apakah mungkin untuk menggunakan bit yang benar-benar acak untuk memotong gergaji di masalah penghentian. Sebagai contoh, suatu algoritma dapat secara acak menghasilkan teorema dan membuktikan / menolak / membuangnya sampai cukup tahu untuk membuktikan / membantah bahwa program deterministik tertentu berhenti.

Joey Adams
sumber
3
@ downvoter: Ini seharusnya tidak menerima down-vote tanpa komentar.
Dave Clarke
3
Apa yang mencegah TM deterministik menghitung semua kasus? Di sini, memeriksa tebakan adalah masalahnya, bukan menebak sendiri. Perhatikan juga bahwa Anda tidak dapat benar-benar mengatakan bahwa Anda benar-benar lebih kuat jika Anda membuat hasil yang diinginkan hanya dengan probabilitas . p<1
Raphael
1
"program deterministik tidak dapat menghasilkan string yang kompleksitasnya lebih besar dari panjangnya sendiri." Cukup bahwa beberapa mesin deterministik lainnya menghasilkan keluaran yang sama. Perhatikan bahwa TM deterministik dapat mensimulasikan tidak hanya yang probabilistik, tetapi bahkan TM non-deterministik (dengan jumlah alternatif yang berubah-ubah).
Kaveh
Kemarin saya akan mengatakan - melihat Kaveh et al - ini adalah pertanyaan yang terlalu mendasar untuk situs ini (pertanyaan yang sama untuk NTM adalah hasil dasar dalam setiap kursus teori pertama). Mengingat bahwa butuh upaya yang cukup untuk memformalkan "probabilistik TM", saya senang saya tidak melakukannya.
Raphael
1
Dan lihat jawaban klarifikasi untuk pertanyaan TCS saya sebelumnya yang terkait: cstheory.stackexchange.com/questions/1263/…
Joseph O'Rourke

Jawaban:

22

sunting: Saya baru menyadari beberapa hal yang saya tulis adalah omong kosong total, maaf untuk itu. Sekarang saya mengubah buktinya dan membuat definisi mesin probabilistik yang saya gunakan lebih tepat.

Saya tidak tahu apakah saya sudah benar definisi mesin Turing probabilistik: itu adalah mesin dengan rekaman tambahan yang dituliskan string tak terbatas yang tak terbatas, dan di samping itu berfungsi seperti mesin deterministik? Jika kita memperbaiki string yang tidak bisa dimampatkan, kelas yang kita dapatkan tampaknya tidak menarik.

Saya pikir kita dapat mendefinisikan mesin Turing probabilistik dalam beberapa cara. Saya akan menggunakan definisi yang tampaknya cukup alami (dan untuk mana bukti saya bekerja;) Mari kita mendefinisikan mesin probabilistik seperti itu: ia mendapatkan rekaman tambahan di mana beberapa string tak terbatas ditulis, kita mengatakan bahwa mesin ini memutuskan bahasa jika untuk setiap itu berhenti dan menerima dengan probabilitas , ketika probabilitas diambil alih string acak tambahan itu, dan untuk setiap itu berhenti dan menolak dengan probabilitas .x L > 1LxL xL>1>12xL>12

Kami sekarang akan menunjukkan bahwa jika ada mesin probabilistik yang memecahkan masalah berhenti untuk mesin deterministik, kita bisa menggunakannya untuk membangun mesin deterministik yang memecahkan masalah berhenti untuk mesin deterministik - dan kita tahu bahwa mesin seperti itu tidak bisa adaHPH

Asumsikan seperti itu ada. Kita dapat membangun mesin deterministik yang mengambil input mesin probabilistik dengan beberapa input , yangM R xPMRx

  • berhenti dan terima jika dan hanya jika menerima (yaitu berhenti dan menerima pada lebih dari setengah string acak).x R xRxRx
  • menghentikan dan menolak jika dan hanya jika menolak (yaitu menghentikan dan menolak pada lebih dari setengah string acak).x R xRxRx
  • loop sebaliknya

Pada dasarnya, akan untuk semua mensimulasikan pada input dan pada setiap string dari sebagai awalan dari string pada pita acakSekarang:i 1 , 2 , . . . R x 0 , 1 i RMi1,2,...Rx0,1iR

  • jika untuk awalan panjang dihentikan dan diterima tanpa mencoba membaca lebih dari bit dari pita acak, berhenti dan menerima iRiM>12i RiM
  • jika untuk awalan panjang dihentikan dan ditolak tanpa mencoba membaca lebih dari bit dari pita acak, berhenti dan ditolak iRiM>12i RiM
  • jika tidak, menjalankan simulasi dengan .i : = i + 1Mi:=i+1

Kita harus meyakinkan diri kita sendiri sekarang, bahwa jika menerima (menolak) dengan probabilitas , maka untuk beberapa itu akan menerima (menolak) untuk awalan dari panjang dari string acak tanpa mencoba membaca lebih dari bit dari rekaman acak. Ini teknis, tetapi cukup mudah - jika kita berasumsi sebaliknya maka kemungkinan menerima (menolak) mendekati ketika menuju infinity, maka untuk beberapa itu harus .x p > 1Rx i>1p>12i iip>1>12ii iip>1p>12iip>12

Sekarang kita hanya mendefinisikan mesin deterministik kita menyelesaikan masalah penghentian (yaitu memutuskan apakah mesin deterministik yang diberikan menerima kata yang diberikan ) a sebagai . Perhatikan bahwa selalu berhenti, karena menentukan bahasa oleh mesin probabilistik kami didefinisikan sedemikian rupa sehingga salah satu dari keduanya selalu terjadi:N x H ( N , x ) = M ( P ( N , x ) ) M ( P ( N , x ) )HNxH(N,x)=M(P(N,x))M(P(N,x))

  • mesin berhenti dan menerima lebih dari setengah string acak
  • mesin berhenti dan menolak untuk lebih dari setengah string acak.
Karolina Sołtys
sumber
Terima kasih telah menguraikan komentar "just enumerate" saya! ;) Dua komentar teknis: Pada poin pertama, maksud Anda ? Pada akhirnya, maksud Anda ? S ( Q )>2i1S(Q)
Raphael
1
Perhatikan bahwa jika Anda tidak mengharuskan P untuk selalu berhenti, itu sepele untuk membangun bahkan mesin Turing deterministik P yang menerima jika dan hanya jika mesin Turing deterministik yang diberikan berhenti.
Tsuyoshi Ito
Apa asumsi Anda? Anda tidak dapat meniadakan mesin Turing probabilistik kecuali dijamin pada akhirnya akan berhenti.
Tsuyoshi Ito
Probabilitas penghentian diambil dari string tambahan DAN kata-kata input, atau apa?
M. Alaggan
1
@Mohammad ALAGGAN: Tidak, bagian itu benar seperti yang tertulis: probabilitas diambil alih hanya string tambahan (menetapkan hasil membalik koin). Karena kita tidak mengasumsikan distribusi probabilitas pada string input, probabilitas atas string input tidak didefinisikan dengan baik. Bahkan jika distribusi probabilitas pada string input didefinisikan, probabilitas tinggi dari jawaban yang benar atas string input hanya menyiratkan bahwa algoritma tersebut benar untuk sebagian besar input, yang berbeda dari persyaratan biasa pada suatu algoritma.
Tsuyoshi Ito
14

Itu tergantung pada apa yang Anda maksud dengan algoritma probabilistik yang menentukan beberapa predikat.

Ada algoritma probabilistik trivial P sehingga, untuk mesin Turing deterministik M ,

  • P ( M ) menerima dengan probabilitas nol jika M berhenti,
  • P ( M ) tidak pernah menerima jika M tidak berhenti, dan
  • P ( M ) pemberhentian dengan probabilitas 1 untuk setiap M .

Oleh karena itu, algoritma probabilistik P memecahkan masalah penghentian untuk mesin Turing deterministik dalam pengertian ini. (Di sini " M berhenti" berarti " M berhenti di input kosong.")

Namun, jika Anda memperkuat persyaratan dengan cara apa pun yang masuk akal, tidak mungkin Anda dapat menyelesaikan masalah penghentian untuk mesin Turing deterministik lagi. Sebagai contoh,

  • Jika Anda memerlukan P ( M ) untuk berhenti selalu bukan hanya dengan probabilitas 1 , maka jelas bahwa P dapat disimulasikan oleh algoritma deterministik. (Lihat Wikipedia untuk penjelasan tentang perbedaan antara "selalu" dan "dengan probabilitas 1.")
  • Jika Anda membuat kesalahan batas ketat dengan mengharuskan P ( M ) untuk berhenti dan memberikan jawaban yang benar dengan probabilitas lebih dari 1/2 untuk setiap M (yaitu, Anda tidak peduli jika P ( M ) tidak berhenti atau berhenti dan berikan jawaban yang salah di sisa kasus), maka P dapat disimulasikan oleh algoritma deterministik dengan menggunakan argumen yang dinyatakan dalam jawaban Karolina Sołtys .

Oleh karena itu, algoritma probabilistik tidak dapat menyelesaikan masalah penghentian untuk mesin Turing deterministik dalam pengertian ini.

Tsuyoshi Ito
sumber
Maafkan ketidaktahuan saya, tetapi apa perbedaan antara berhenti '' selalu '' dan berhenti '' dengan probabilitas 1 ''?
Rob Simmons
1
@Rob: Saya pikir itu adalah hal yang sulit. Pertimbangkan mesin Turing probabilistik sederhana yang hanya melemparkan koin berulang kali sampai hasilnya adalah kepala. Mesin Turing ini berhenti kecuali ketika semua lemparan koin menghasilkan ekor. Oleh karena itu, ia berhenti dengan probabilitas 1, tetapi tidak selalu berhenti.
Tsuyoshi Ito
Saya menemukan penjelasan tentang perbedaan antara "selalu" dan "dengan probabilitas 1" di Wikipedia , dan saya menambahkan tautan yang sama dalam jawabannya.
Tsuyoshi Ito
Jika Anda membiarkan P (M) gagal dengan tidak berhenti, maka saya tidak tahu bagaimana Anda dapat melakukan simulasi deterministik. Misalnya, Anda menjalankan simulasi deterministik Anda pada serangkaian string awalan-N panjang, dan setelah beberapa waktu, <50% dari awalan telah berhenti dan memberikan jawaban. Bagaimana Anda tahu apakah string awalan yang tersisa hanya perlu lebih banyak waktu untuk mengembalikan jawaban, atau jika semuanya terjebak dalam loop tak terbatas sebagai bagian dari kondisi kegagalan? Jika yang pertama, Anda terus menunggu. Jika yang terakhir, Anda mengakhiri putaran saat ini dan menjalankan lagi pada semua awalan panjang-N +1.
Mike Battaglia
Tetapi ini tidak mungkin untuk ditentukan, karena ini adalah masalah yang terhenti! Kami tidak memiliki cara untuk mengetahui apakah mesin Turing akan berhenti pada input tersebut atau tidak.
Mike Battaglia
12

Secara umum, jika Anda memiliki mesin Turing probabilistik memecahkan beberapa masalah keputusan, Anda selalu dapat mensimulasikan deterministik dengan menjalankan untuk setiap nilai yang mungkin dari keacakan dan keluaran jawaban mayoritas . Oleh karena itu, tidak ada mesin Turing probabilistik yang dapat menyelesaikan masalah keputusan yang tidak dapat dipastikan.P PPPP

Saya pikir ini adalah makna dari komentar Raphael.

Marc
sumber
7

ANA

de Leeuw, K., Moore, EF, Shannon, CE, dan Shapiro, N. Computability oleh mesin probabilistik, studi Automata, hlm. 183–212. Sejarah studi matematika, no. 34. Princeton University Press, Princeton, NJ, 1956.

G. Karung, Derajat Ketidakpastian, Princeton University Press, 1963.

Bjørn Kjos-Hanssen
sumber