Singkatnya : Mesin Turing dapat melakukan perhitungan tak terbatas (terbatas) pada data tak terbatas (terbatas) dan menghasilkan hasil tak terbatas (terbatas). Gagasan dasarnya adalah bahwa infinitas tersebut dapat didefinisikan sebagai batas entitas hingga, yang didefinisikan dengan cara yang sesuai secara matematis. Ini adalah dasar dari perhitungan matematika semantik. Jika Anda mempertimbangkan program daripada Mesin Turing, program ini juga dapat berisi struktur data tak terbatas (terbatas). Kasus fungsi yang ditabulasi fact
sebagai algoritma yang mungkin dianalisis pada akhirnya, sebagai program, atau sebagai model TM, dengan petunjuk mengenai hubungan dengan evaluasi malas terhadap objek tak terbatas.
Dengan lebih banyak detail
Mengenai pertanyaan terakhir Anda, TM tidak menghitung pada angka yang berubah-ubah, tetapi pada representasi simbolik dari angka-angka ini sebagai serangkaian panjang simbol yang mewakili mereka. Modulo encoding yang tepat, memang benar bahwa mereka dapat membandingkan atau melakukan aritmatika dengan angka-angka tersebut melalui representasi ini.
Tetapi pertanyaan aslinya adalah tentang peran tak terhingga dalam Mesin Turing pada umumnya.
Jawaban umum untuk pertanyaan ini adalah bahwa Mesin Turing tidak pernah berurusan dengan tak terhingga. Mereka didefinisikan secara terbatas, dan apa pun yang mereka hitung dihitung dalam waktu yang terbatas pada bagian terbatas dari pita (karenanya pita terbatas yang lebih besar akan cukup). Yang benar adalah bahwa waktu kebutuhan ruang TM tidak terikat, yang tidak sama dengan tak terbatas.
Oleh karena itu, setiap jawaban yang dihitung oleh TM dapat dihitung juga oleh finite-state automaton (FSA), yang "sampai batas tertentu" adalah satu cara untuk melihat tabulasi. Kesulitannya adalah bahwa beberapa ukuran input (hampir selalu seperti itu, jika hanya membaca input) akan melebihi ukuran otomat. Tapi kemudian, kita bisa menggunakan yang lebih besar. Jadi jika kita ingin mempertimbangkan ukuran input tanpa batas, kita memerlukan urutan FSA yang tak terbatas yang dapat melakukan perhitungan. Sebenarnya kita mungkin memerlukan mesin negara-terbatas sedikit lebih kompleks daripada FSA tradisional karena mungkin ada output yang akan dihitung (daripada jawaban ya-tidak), tetapi transduser keadaan terbatas mungkin harus dilakukan.
Jadi, jika kita melihat masalah yang memiliki serangkaian instance yang tak terbatas, seperti menghitung GCD, atau hanya menggunakan aritmatika pada bilangan bulat ukuran acak, kita melihat bahwa infinity kembali kepada kita melalui pintu belakang, karena infinite ini mengatur FSA.
π
Kemudian lagi, kita dapat menggantinya dengan urutan tak terbatas dari perhitungan terbatas dengan mesin hingga. Tapi apakah kita curang.
Dari sudut pandang fisik, itu yang terbaik yang bisa kita lakukan. Kami hanya tahu bagaimana membangun mesin hingga, setidaknya sesuai dengan keadaan terkini dalam bidang fisika, yang diperkirakan tidak akan banyak berubah pada masalah itu dalam waktu dekat.
Tetapi bagaimana kita dapat menangani ketidakterbatasan itu dengan cara yang konsisten dan dapat ditelusuri dari sudut pandang matematika.
Ketika Anda mempertimbangkan serangkaian FSA yang tak terbatas yang dapat semacam bekerja sama untuk menghitung serangkaian jawaban yang tak terbatas, Anda tidak dapat melakukannya secara sewenang-wenang. Anda memerlukan beberapa perlindungan untuk memastikan bahwa apa yang Anda lakukan masuk akal. Diketahui secara umum bahwa Anda dapat dengan sepele membangun set apa pun dengan penyatuan tak terbatas set reguler, sebenarnya dengan penyatuan tak terbatas set singleton. Jadi, mempertimbangkan serikat pekerja tak terbatas dari automata tanpa batasan apa pun akan membawa Anda ke mana-mana. Anda bahkan mempertimbangkan dalam set automata yang sama yang memberi Anda jawaban yang tidak konsisten.
Yang benar-benar Anda inginkan adalah mendefinisikan gagasan tentang konsistensi. Tapi itu membutuhkan beberapa tindakan pencegahan. Mari kita asumsikan Anda menggunakan urutan automata yang tak terbatas untuk mensimulasikan TM yang menjawab ya atau tidak, atau tidak berhenti. Masalahnya adalah bahwa FSA akan selalu berhenti dengan jawaban, seperti ya atau tidak. Tetapi jika Anda menggunakan FSA yang sebenarnya tidak berukuran cukup besar untuk input yang dipilih, apa yang harus dijawab. Baik ya dan tidak dicadangkan untuk kasus-kasus ketika FSA benar-benar mengakhiri perhitungan TM, dan menggunakan salah satu dari jawaban ini dengan perhitungan yang belum selesai hanya akan menimbulkan kebingungan. Apa yang Anda inginkan adalah jawaban yang mengatakan: " maaf, saya terlalu kecil dan saya tidak tahu. Silakan coba dengan pria yang lebih besar dalam keluarga ". Dengan kata lain Anda menginginkan jawaban seperti
meluap , atau tidak tahu⊥
Jadi, Anda memerlukan automata yang memiliki 3 jenis status: menerima, tidak menerima, dan tidak ditentukan. Status tidak terdefinisi dapat dipandang sebagai status berdiri untuk bagian yang hilang dari otomat yang memaksa komputasi untuk berhenti. Jadi, ketika perhitungan berhenti, tergantung pada keadaan berhenti itu, Anda mendapatkan jawabannya ya , tidak , atau tidak ditentukan .
Sekarang, Anda melihat bahwa yang Anda inginkan adalah urutan automata yang tak terbatas yang konsisten . Baik ya dan tidak konsisten dengan
tidak terdefinisi , tetapi ya tidak konsisten dengan tidak . Kemudian dua automata konsisten ketika mereka memberikan jawaban yang konsisten pada input yang sama.
π3.14 ⊥ ⊥ ⊥ ⊥ . . .3.1415 ⊥ ⊥ ⊥ ⊥ . . .⊥ . ⊥ 5159 ⊥ ⊥ ⊥ ⊥ . . .3.1416 ⊥ ⊥ ⊥ ⊥ . . .3.1416 ⊥ ⊥ ⊥ ⊥ . . .π
Saya tidak akan mengembangkan lebih lanjut aspek-aspek teoretis ini, yang agak canggung ketika didasarkan pada Mesin Turing. Intinya adalah bahwa konsep-konsep ini mengarah pada gagasan bahwa domain perhitungan (apakah data atau mesin), membentuk struktur matematika seperti kisi, di mana objek tak terbatas dapat didefinisikan secara memadai sebagai batas urutan peningkatan tak terbatas (yaitu, lebih baik dan lebih baik) dari benda yang terbatas. Mendefinisikan urutan yang tak terbatas membutuhkan beberapa peralatan lebih banyak, dan gagasan tentang kontinuitas. Inilah yang secara mendasar adalah teori semantik Dana Scott, dan ia memberikan pandangan yang agak berbeda tentang konsep komputabilitas.
Kemudian, mesin Turing, atau perangkat formal lainnya yang dapat melakukan "perhitungan tak terbatas" dapat didefinisikan sebagai batas urutan sekuensial pendekatan terbatas mesin, yang lebih baik dan lebih baik didefinisikan. Hal yang sama berlaku untuk data apa pun yang dikomputasi dengan mesin, baik input maupun output.
Dokumen paling sederhana yang pernah saya baca tentang ini adalah satu set catatan kuliah tulisan tangan oleh Dana Scott, sering disebut sebagai catatan kuliah Amsterdam. Tetapi saya tidak dapat menemukannya di web. Setiap penunjuk ke salinan (bahkan tidak lengkap, karena saya memiliki bagian dari itu) akan diterima. Tetapi Anda dapat melihat publikasi awal lainnya oleh Scott seperti
Garis Besar Teori Matematika Komputasi .
Kembali ke contoh awal pertanyaan
Konsep pendekatan ini berlaku untuk data serta program. Fungsi fact
ini didefinisikan secara rekursif, yang berarti bahwa itu adalah titik paling tidak tetap dari fungsional yang dapat digunakan untuk menghitung urutan perkiraan konvergensi hingga fact
. Urutan fungsi terbatas yang semakin didefinisikan ini menyatu dengan entitas tak terbatas yang disebut fungsi fact
.
fact
⊥
Memang benar bahwa, jika Anda mempertimbangkan model komputasi TM elementer, susunan tak terbatas seperti itu tidak dapat diekspresikan dalam formalisme itu. Itu tidak berarti bahwa itu tidak masuk akal. Mesin Turing dapat memiliki pita kedua yang seharusnya diinisialisasi dengan nilai tabulasi dari beberapa fungsi seperti fact
. Itu tidak mengubah kekuatan komputasi TM, selama fungsi itu adalah yang dapat dihitung, yaitu selama tabel dapat diinisialisasi dengan perhitungan tak terbatas dari TM lain yang dapat menghitung semua pasangan nilai-argumen untuk fungsi yang relevan.
Namun dalam praktiknya, Anda tidak dapat menyelesaikan perhitungan tanpa batas. Oleh karena itu cara yang tepat untuk melakukannya adalah dengan menghitung tabel dengan malas, yaitu untuk mengisi entri hanya saat diperlukan. Itulah tepatnya yang dilakukan dengan memoisasi, yang merupakan jawaban yang saya berikan kepada Anda, dengan berbagai pembenaran, untuk pertanyaan Anda sebelumnya.