Alasan historis untuk adopsi Mesin Turing sebagai model utama perhitungan.

44

Ini pemahaman saya bahwa model Turing telah menjadi "standar" ketika menjelaskan perhitungan. Saya tertarik untuk mengetahui mengapa hal ini terjadi - yaitu, mengapa model TM menjadi lebih banyak digunakan daripada model lain yang setara secara teori (sepengetahuan saya), misalnya urs-Rekursi Kleene atau Kalkulus Lambda (saya mengerti bahwa yang pertama tidak muncul sampai nanti dan yang terakhir tidak pada awalnya dirancang khusus sebagai model perhitungan, tetapi itu menunjukkan bahwa alternatif telah ada sejak awal).

Yang bisa saya pikirkan adalah bahwa model TM lebih dekat mewakili komputer yang sebenarnya kita miliki daripada alternatifnya. Apakah ini satu-satunya alasan?

Evan
sumber
1
sementara mereka tidak secara langsung pada topik yang sama, pertanyaan-pertanyaan cstheory.stackexchange.com/questions/625/… dan cstheory.stackexchange.com/questions/1117/… mengeksplorasi hubungan antara TM dan -calculus, dan memiliki beberapa elemen sejarah. λ
Suresh Venkat
Ya, saya melihat itu. Saya cukup memahami sejarah harfiah dari berbagai teori, tetapi saya lebih tertarik pada perkembangan dari waktu ke waktu yang mengarah ke "preferensi" saat ini di lapangan, jika Anda mau.
Evan
2
Sebenarnya ada model yang (bisa dibilang) lebih dekat ke komputer nyata, lihat pertanyaan ini . Umumnya model terbaik tergantung pada kebutuhan dan mereka berbeda dari satu daerah ke daerah lain.
Kaveh

Jawaban:

46

Ini tampaknya benar dalam konteks (beberapa bidang) ilmu komputer tetapi tidak secara umum.

Salah satu alasan berkaitan dengan Tesis Gereja. Alasan utama adalah bahwa beberapa ahli seperti Godel tidak berpikir bahwa argumen bahwa model komputasi sebelumnya / lainnya menangkap konsep komputasi intuitif yang meyakinkan. Ada berbagai argumen, Gereja punya beberapa, tetapi mereka tidak meyakinkan Godel. Di sisi lain analisis Turing itu meyakinkan untuk Godel sehingga diterima sebagai yang model untuk perhitungan yang efektif. Kesetaraan antara model yang berbeda terbukti kemudian (saya pikir oleh Kleene).

Alasan kedua adalah teknis dan perkembangan selanjutnya terkait dengan studi teori kompleksitas. Menentukan ukuran kompleksitas seperti waktu, ruang, dan nondeterminisme tampaknya lebih mudah menggunakan mesin Turing daripada model lain seperti fungsi -calculus dan -recursive.μλμ

Di sisi lain, fungsi rekursif dulu dan masih digunakan sebagai cara utama untuk mendefinisikan komputabilitas dalam buku teori logika dan komputabilitas. Mereka lebih mudah untuk dikerjakan ketika seseorang hanya peduli tentang efektivitas dan bukan tentang kompleksitas. Buku Kleene "Metamathematics" sangat berpengaruh untuk perkembangan ini. Juga -calculus tampaknya lebih umum di CMU / ilmu komputer gaya Eropa seperti bahasa pemrograman dan tipe teori. Beberapa penulis lebih suka model RAM dan Mesin Register. (Sepertinya saya bahwa karena alasan tertentu orang Amerika mengadopsi model semantik Turing dan Eropa mengadopsi model sintaksis Gereja, Chruch adalah orang Amerika dan Turing adalah orang Inggris. Ini pendapat / pengamatan pribadi dan yang lain memiliki pandangan berbedaλμλ. Lihat juga makalah ini oleh Viggo Stoltenberg-Hansen dan John V. Tucker I , II .)

Beberapa sumber untuk bacaan lebih lanjut:

Robert I. Soare memiliki sejumlah artikel tentang sejarah perkembangan ini, saya pribadi suka yang ada di Buku Pegangan Teori Komputasi. Anda dapat menemukan lebih banyak dengan memeriksa referensi di makalah itu.

Sumber lain yang bagus adalah artikel komputabilitas Neil Immerman tentang SEP, lihat juga artikel Tesis Gereja-Turing oleh B. Jack Copeland.

Karya -karya yang dikumpulkan Godel berisi banyak informasi tentang pandangannya. Pengantar khusus untuk artikelnya ditulis dengan sangat baik.

" Metamathematics " karya Kleene adalah buku yang sangat bagus.

Terakhir, jika Anda masih belum puas, periksa arsip milis FOM , dan jika Anda tidak dapat menemukan jawaban di arsip, poskan email ke milis.

Kaveh
sumber
Tolong beri tahu saya jika ada yang salah.
Kaveh
1
Wow, ini info yang bagus. Terima kasih atas sumber dayanya, saya akan memeriksanya (saya berencana untuk membaca Metamathematics - saya akan membahasnya).
Evan
Sama-sama, semoga saya tidak salah. :)
Kaveh
Ada pembicaraan baru-baru ini oleh Robert Soare di INI. Seperti yang saya pahami, alasan utama untuk berubah ke model Turing dan komputabilitas dari fungsi rekursif dan teori rekursi untuknya adalah sebagai berikut: sulit untuk dipahami dan bekerja dalam teori rekursi ke titik di mana tidak ada yang memahami apa yang terjadi kecuali beberapa, perubahan kemampuan komputasi membuatnya lebih mudah untuk memahami dan menghidupkan kembali area tersebut.
Kaveh
19

Saya ingin melemahkan klaim bahwa TM adalah model utama perhitungan, atau setidaknya mengarah ke dimensi lain dari pertanyaan. Jelas bahwa TM dominan dalam bagian ilmu komputer yang lebih kompleks dan berorientasi algoritme, tetapi dalam teori dan praktik bahasa pemrograman, mereka tidak terlalu dominan. Ada berbagai alasan untuk ini, tetapi mungkin yang paling penting adalah bahwa TMs atau program yang berjalan pada TMs (tidak seperti misalnya lambda-calculi atau proses-calculi) tidak dibangun dengan cara aljabar. Ini membuatnya sulit untuk mengembangkan teori tipe, yang telah menjadi andalan teori bahasa pemrograman.

Martin Berger
sumber
2
Juga, program TM alias tabel transisi tidak dapat dibaca oleh manusia.
Raphael
13

Salah satu hal yang menyenangkan tentang mesin Turing adalah mereka bekerja pada string, bukan bilangan alami atau istilah lambda, karena input dan output dari banyak masalah dapat dirumuskan secara alami sebagai string. Saya tidak tahu apakah ini dianggap sebagai alasan "historis" atau tidak.

Tsuyoshi Ito
sumber
13

Selain fakta bahwa mesin Turing adalah model komputasi pena-dan-kertas yang meyakinkan (“gagasan intuitif tentang komputasi”), saya pikir mereka memiliki serangkaian fitur yang sering berguna, terutama ketika membuktikan teorema tentang mereka:

  • mereka mudah dijelaskan secara formal dan memiliki semantik operasional yang sederhana;
  • mudah untuk memberikan definisi konkret tentang kompleksitas waktu dan ruang mereka;
  • model komputer elektronik yang lebih realistis (dan kompleks), seperti mesin akses acak, dapat disimulasikan oleh TM dengan overhead polinomial, dan sebaliknya.
Antonio E. Porreca
sumber
Kadang-kadang fasilitas deskripsi tampaknya menghambat kegunaan TMs, karena deskripsi dapat dengan cepat berubah menjadi penjelasan bahasa Inggris sederhana jika Anda tidak berhati-hati (setidaknya, jika saya tidak hati-hati ... Harus diakui saya seorang pemula).
Evan
Alasan Anda tidak mengecualikan mesin register, misalnya.
Raphael
Yah, itu tergantung pada gagasan yang tepat tentang "mesin register" yang Anda pertimbangkan. Sebagai contoh, mereka yang hanya memiliki operasi kenaikan, penurunan dan lompatan tidak dapat mensimulasikan TMs dalam waktu polinomial.
Antonio E. Porreca
1
Saya menduga bahwa TM lebih intuitif hanya karena mereka disajikan sebagai mesin, bukan sebagai operasi matematika abstrak. Jika -calculus disajikan sebagai mesin "term rewriting", maka itu akan (lebih) intuitif. Catatan permainan anak-anak Alligator Telur untuk mengajar mereka kalkulus worrydream.com/AlligatorEggsλλλ
Rob
Saya di pihak PL, tetapi lambda-calculus murni bukanlah model perhitungan aritmatika yang jelas (pikirkan fungsi pendahulunya). Dalam lambda-calculus, Anda memiliki lebih sedikit definisi, tetapi perlu lebih banyak upaya untuk memahami implikasi definisi tersebut.
Blaisorblade
0

Itu adalah yang pertama memiliki dampak dan dengan demikian telah ditetapkan, terutama dalam teori kompleksitas. Ini adalah alasan yang lemah, tetapi orang bekerja seperti itu. Kami mengerjakan masalah lama yang terbuka terlebih dahulu alih-alih mendeklarasikan yang baru.

Raphael
sumber
8
"Kami mengerjakan masalah lama yang terbuka terlebih dahulu alih-alih mendeklarasikan yang baru." <- Saya pikir, jika ada, yang sebaliknya adalah benar, terutama di bidang di mana pertanyaan lama sangat sulit. Ada relatif sedikit orang yang bekerja dalam kompleksitas sirkuit misalnya (meskipun mungkin akan ada lebih banyak sekarang!). Orang-orang perlu mengatasi masalah yang dapat mereka pecahkan untuk dipublikasikan; ini menghasilkan aliran konstan dari masalah yang baru dipecahkan yang dinyatakan.
Aaron Sterling
Saya agak tergesa-gesa dalam kata-kata saya di sana. Saya merasa bahwa seringkali orang lebih suka berpegang pada model yang sudah mapan daripada membangun yang baru (dan membuktikan sifat dasarnya) jika tidak ada alasan kuat untuk itu. Perasaan itu mungkin tidak aktif, jelas. Secara khusus, tentu saja ada orang yang berburu model di tempat pertama.
Raphael
Nah, kalkulus lambda diutamakan. Tapi Turing menunjukkan bahwa model mesin Turing akurat dasar-dasar manusia melakukan perhitungan; ini hanya dilakukan untuk kalkulus lambda ketika membuktikan kesetaraan. Selain itu, kesetaraan ini hanya berlaku untuk perhitungan tingkat pertama: cstheory.stackexchange.com/q/1117/989 - data tingkat tinggi tidak benar-benar ada di atas kertas. Bahkan tidak ada dalam memori komputer, tetapi dapat disimulasikan dengan sempurna.
Blaisorblade