Bagaimana penggunaan mesin oruring Turing tidak menimbulkan kontradiksi?


9

Bagaimana kami dapat memastikan bahwa kami terus membuat pernyataan yang kuat dan valid tentang kelas kompleksitas ketika menggunakan Mesin Turing oracle? Menurut pemahaman saya (berdasarkan definisi yang diberikan dalam buku teks pengantar tentang subjek) mesin oruring Turing dapat menentukan status keanggotaan string sehubungan dengan bahasa oracle dalam satu langkah perhitungan. Namun bahasa oracle yang sering digunakan terbukti mustahil untuk diselesaikan dalam waktu yang konstan (ambil oracle EXPTIM-complete, misalnya). Bagi saya ini sepertinya "membuka pintu" untuk kontradiksi dan setelah semua, apapun mengikuti dari sebuah kontradiksi.


2
Jika oracle "really" membutuhkan waktu maka itu hanya faktor runtime dari total mesin. Dengan asumsi biaya konstan (yaitu menghitung seberapa sering Anda membutuhkan oracle) membuatnya lebih mudah untuk membandingkan algoritma yang menggunakan oracle. (Pertanyaan jika hasil yang diperoleh memiliki relevansi dalam kenyataan adalah pertanyaan yang selalu Anda hadapi dan / atau abaikan di TCS.)T
Raphael

@Raphael Dengan "Anda" dalam komentar kurung apakah maksud Anda teori kompleksitas pada umumnya atau saya pada khususnya?
Ari

Mantan. Yah, keduanya, sedikit banyak.
Raphael

topik lanjutan. coba mulai dengan Fortnow yang setuju bahwa mereka kadang-kadang "disalahgunakan" & survei area. cara yang konsisten untuk melihat hasil-hasil ini adalah semacam pernyataan "kondisional". mirip dengan cara bahwa banyak hasil dibuktikan secara kondisional dalam matematika berdasarkan pada hipotesis Riemann dll.
vzn

Jawaban:


8

Ada beberapa cara untuk melihatnya.

Salah satunya adalah bahwa dalam pembuktian, implikasinya adalah semacam fungsi, yang mengambil sebagai input bukti dari sesuatu, dan menghasilkan bukti dari sesuatu yang lain.

Kita dapat menulis fungsi yang beroperasi pada nilai yang tidak kita miliki.

Sebagai contoh, mari kita perhatikan angka berhenti , yang tidak dapat dihitung. Saya bisa menulis fungsinyah

haltingPlusOne:{h}N

haltingPlusOne(x)=x+1 .

Fungsi ini berfungsi sebagai input nomor penghentian, dan mengembalikan nomor penghentian ditambah satu. Jelas ini adalah fungsi yang terdefinisi dengan baik: jika kita memberikan input yang tepat, itu memberikan output yang tepat. Fakta bahwa kami tidak dapat menemukan input yang tepat tidak membuatnya kurang valid terhadap transformasi.

Saya melihat bukti dengan nubuat serupa. Mereka pada dasarnya fungsi yang mengatakan, beri saya mesin Turing yang memecahkan masalah , dan saya akan memberikan sebagai bukti bukti beberapa teorema.X

Penting juga untuk menyadari bahwa ketika kita mengatakan sesuatu seperti "Tidak ada Mesin Turing yang dapat memutuskan masalah penghentian," yang mengatakan bahwa, tidak ada TM yang cocok dengan definisi standar TM yang memutuskan masalah penghentian.

Sebuah oracle pada dasarnya mengatakan "Asumsikan kita memiliki TM yang cocok dengan definisi normal kecuali juga dengan asumsi kita dapat menyelesaikan beberapa masalah". Jadi tidak ada kontradiksi, karena kami tidak menganggap ada TM normal yang menerima masalah, kami menganggap ada TM khusus yang menerima masalah.

Dalam analogi yang sangat informal, pikirkan seperti ini. Jika saya bisa membuktikan kepada Anda bahwa tidak ada manusia tanpa kekuatan super yang bisa terbang, tidak ada kontradiksi yang mengatakan bahwa ada superhero yang bisa terbang.

Nubuat ini adalah objek yang sepenuhnya logis. Kami tidak tahu bagaimana membangun mesin fisik yang meniru mereka, seperti yang kami bisa dengan mesin Turing, tetapi sejauh yang kami tahu, tidak ada kontradiksi antara definisi dan aksioma dasar kami. Sebagai objek logis, nubuat ini memang ada. Kita tahu itu bukan mesin Turing standar atau istilah Lambda-Calculus atau fungsi rekursif sebagian. Tesis Church-Turing mengatakan bahwa tidak ada model yang lebih kuat, tetapi itu bukan teorema, itu hanya dugaan, dan terlalu informal untuk benar-benar dibuktikan.


Saya setuju dengan / memahami jawaban Anda, tetapi hanya sampai pada titik tertentu: Misalnya, saya melihat bahwa fungsi haltingPlusOne Anda terdefinisi dengan baik, tetapi tidak melihat bagaimana kami dapat menarik kesimpulan yang berarti dari nubuat, karena kami dapat membuat "jika" pernyataan pernyataan palsu dan mencapai kesimpulan apa pun, yaitu "Jika untuk semua bilangan asli maka hanya ada satu bilangan alami." n 1n+1=nn1
Ari

1
Masalahnya, pernyataan itu tidak salah, kita tidak bisa membangunnya. Kuncinya adalah bahwa oracle bukanlah mesin Turing, itu tidak berarti mereka tidak ada.
jmite

"menemukan input yang tepat" "menemukan output yang tepat"?

2

Yah, saya akan mengatakan bahwa itu adalah fitur penting dari oracle TM bahwa mereka memiliki akses ke oracle yang sulit dipecahkan. Jika Anda dapat memutuskan oracle dalam waktu yang konstan, maka untuk setiap kelas Anda akan memiliki . Jadi mengapa memiliki oracle sama sekali dalam kasus ini?B B = B AABB=BA

Jadi apa gunanya menggunakan TM oracle? Saya akan mengatakan itu memungkinkan kita terutama pertimbangan teoritis tentang (tingkat) kekerasan masalah. Peramal itu bahkan bisa diputuskan. Dalam hal ini, Anda dapat menentukan seluruh hierarki masalah yang tidak dapat ditentukan (Turing degree). Tentu saja, jika oracle Anda adalah masalah yang terjadi, Anda tidak dapat mengubah TM oracle Anda menjadi TM tradisional.

Konsep TM oracle juga penting untuk mendefinisikan bentuk reduksi yang kuat (pengurangan Turing).

Perhatikan bahwa motivasi yang lebih teoretis dari oracle TM dapat memiliki implikasi di luar dunia oracle . Anda mungkin tahu yang terkenal vs hasil merelatifkan.N PPNP

Sebagai catatan ucapan terakhir bahwa dalam rangka untuk query oracle Anda harus menulis string pertama pada pita oracle. Dengan demikian, Anda tidak dapat memutuskan keanggotaan dalam waktu konstan, tetapi dalam waktu.| w |w|w|

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.