Mengapa angka yang dapat dihitung (dalam arti Turing) dapat dihitung?

9

Mengapa angka yang dapat dihitung (dalam arti Turing) dapat dihitung? Pasti sangat jelas, tetapi saya saat ini tidak melihatnya.

Michiel Borkent
sumber
3
Bukankah itu hanya karena semua TM dapat dihitung?
yo '30
Pasti begitu.
2
Menjadi enumerable berarti (menurut definisi) bahwa ada mesin Turing yang berhenti dengan jawaban ya untuk setiap instance ya. Karena menjadi computable berarti ada mesin Turing yang berhenti dengan jawaban yang benar untuk setiap input, mudah untuk melihat bahwa menjadi computable berarti enumerable (ini adalah sub case).
Jonas G. Drange
Saya tidak berpikir ini adalah arti dari "computable" dalam kasus ini. Ini adalah masalah konstruksi, bukan masalah keputusan.
lvella

Jawaban:

5

Saya berasumsi bahwa definisi Anda tentang angka yang dapat dihitung adalah ini: ada mesin Turing yang pada input , berhenti dengan bit ke- n nomor tersebut.nn

Misalkan ada enumerasi rekursif mesin Turing yang menghasilkan angka yang dapat dihitung. Anda dapat menggunakan diagonalisasi untuk menghasilkan angka yang dapat dihitung yang bukan bagian dari penghitungan rekursif ini.

Sangat menggoda untuk menghitung angka yang dapat dihitung dengan menghitung mesin Turing, tetapi tidak semua mesin Turing sesuai dengan angka yang dapat dihitung, dan secara umum memutuskan apakah mesin Turing berhenti untuk semua input (apalagi output 0 atau 1) tidak dapat dihitung. Namun demikian, dimungkinkan untuk menghitung semua angka yang dapat dihitung secara efisien, katakanlah yang waktu operasinya polinomial, dengan menggunakan mesin Turing clock.

Yuval Filmus
sumber
Jadi meskipun kardinalitas suatu himpunan (dalam hal ini, himpunan angka yang dapat dihitung) tidak lebih besar dari kardinalitas himpunan lain yang dapat didaftarkan (himpunan semua TM), itu tidak berarti bahwa himpunan pertama dapat berupa terdaftar.
André Souza Lemos
2

Jika dengan enumerable, Anda berarti bahwa ada penambangan dengan bilangan asli (yaitu, dapat dihitung), maka tidak, bilangan yang dihitung tidak dapat dihitung.

Mari kita mendefinisikan masalahnya dengan lebih tepat: "Mesin Turing Pencetakan Angka (NPTM)" adalah Mesin Turing yang, untuk setiap transisi keadaan, tidak dapat mencetak apa pun, atau dapat mencetak angka desimal, tanda minus, atau periode. Ini cukup untuk mencetak representasi desimal dari bilangan real.

Mari kita mendefinisikan bilangan real yang dapat dihitung sebagai bilangan real mana pun yang dapat dicetak dengan representasi panjang yang sewenang-wenang, diberikan waktu yang cukup, oleh NPTM yang dimulai dari pita kosong. Mari kita juga mengatakan bahwa angka dihitung oleh NPTM yang diberikan jika ia berhenti setelah mencetak bilangan real yang terbentuk dengan baik (dalam hal ini, angka tersebut memiliki representasi desimal terbatas) atau akan, dalam jumlah waktu terbatas, mencetak angka yang terbentuk dengan baik dengan titik desimal, dan akan semakin meningkatkan ketepatan angka dengan mencetak lebih banyak digit, mengingat semakin banyak waktu.

Kondisi nanti ini diperlukan karena, jika kita memiliki mesin yang, misalnya, mencetak urutan tak terhingga dari beberapa digit, katakanlah 1111111111111111111..., ia tidak dapat dikatakan menghitung bilangan real apa pun, karena bilangan real hanya memiliki representasi tak terbatas di sebelah kanan. sisi periode desimal. Di sisi lain, jika mesin mencetak 3.14dan kemudian berhenti mencetak, tetapi tidak pernah berhenti, itu tidak dapat dikatakan menghitung bilangan real hanya karena ketepatan angkanya tidak meningkat, dengan demikian, mesin khusus ini tidak akan membangunnya lebih lanjut.

Ini adalah contoh NPTM yang menghitung beberapa angka. NPTM yang:

  • mencetak 1, lalu berhenti. Itu menghitung nomor 1.
  • mencetak 1.0, lalu berhenti. Ini juga menghitung angka 1.
  • mencetak 1.0000000, dan terus mencetak nol selamanya. Yang ini juga menghitung angka 1.
  • mencetak 3.14, lalu berhenti. Itu menghitung angka 3.14.
  • 3.14159ππ
  • mencetak -42., lalu berhenti. Itu menghitung angka -42.

Dan ini adalah contoh NPTM yang tidak menghitung angka apa pun. NPTM yang:

  • mencetak 123123123dan kemudian melanjutkan pencetakan urutan 123selamanya. Bukan menghitung angka karena urutan yang tak terbatas ini tidak mewakili angka sebenarnya.
  • mencetak 1.0.0dan kemudian berhenti. Bukan karena urutan yang terbatas ini tidak terbentuk dengan baik.
  • mencetak ....-..---dan kemudian berhenti. Bukan karena ini bukan bilangan real yang terbentuk dengan baik juga.
  • tidak pernah mencetak apapun, tetapi tidak pernah berhenti juga. Tidak ada angka yang sedang dibangun.
  • tidak pernah mencetak apa pun dan segera berhenti. Tidak ada nomor yang dibangun.
  • cetakan 3.14, tidak berhenti, tetapi tidak pernah mencetak yang lain juga. Bukan menghitung angka karena ketepatannya tidak meningkat seiring waktu.

Anda punya ide. Kemudian kita memiliki dua kelas NPTM: yang menghitung bilangan real, dan yang tidak.

Masalah dengan menemukan beberapa enumerasi untuk angka yang dapat dihitung adalah bahwa, bahkan jika NPTM sendiri dapat dihitung, kami tidak dapat memiliki prosedur yang memisahkan satu jenis NPTM dari yang lain.

SF:NS

Untuk "membuktikan" bahwa angka yang dihitung dapat dihitung, orang mungkin tergoda untuk mendefinisikan fungsi seperti itu dari penghitungan NPTM (dan inilah yang sering dilakukan orang, ketika mereka percaya angka yang dihitung dapat dihitung). Sesuatu seperti ini:

ENPTM:N->NPTMEComputabe:NComputable

Yah, kita tidak tahu. Pertimbangkan mesin yang segera mencetak 1.0, dan kemudian berhenti mencetak dan melanjutkan untuk mencoba memecahkan contoh masalah korespondensi Post . Jika itu memecahkan masalah, itu berhenti, maka mesin hanya menghitung nomor satu. Tetapi masalah itu tidak dapat dipastikan, sehingga mungkin tidak pernah berhenti, dan jika tidak pernah berhenti, itu tidak pernah menghitung bilangan real. Tapi kita tidak bisa tahu apakah itu akan berhenti, karena masalah Hentikan juga tidak dapat diputuskan! Jadi, karena tidak ada cara untuk mengetahui apakah mesin ini, dan banyak mesin lainnya, menghitung atau tidak bilangan real, kami tidak dapat membangun / mendefinisikan fungsi bijective kami dengan cara ini.

Cara naif untuk mendefinisikan penambangan gagal, dan tidak terlalu sulit untuk membuktikan bahwa tidak ada cara melakukannya, apa pun. Seperti yang disarankan Yuval Filmus, diagonalisasi dapat digunakan.

lvella
sumber
Anda mungkin ingin mengatakan "angka yang dihitung tidak dapat dihitung" alih-alih "angka yang dihitung tidak dapat dihitung".
IllidanS4 ingin Monica kembali