Anda di halaman 1dari 16

Mesin Turing

Mesin Turing, pertama kali dijelaskan oleh Alan Turing dalam (Turing 1937), adalah perangkat
komputasi abstrak sederhana dimaksudkan untuk membantu menyelidiki sampai sejauh mana
dan keterbatasan apa yang dapat dihitung.
Turing tertarik pada pertanyaan tentang apa artinya bagi tugas untuk dihitung, yang merupakan
salah satu pertanyaan mendasar dalam filsafat ilmu komputer. Secara intuitif tugas dapat dihitung
apakah mungkin untuk menentukan urutan instruksi yang akan menghasilkan penyelesaian tugas
ketika dilakukan oleh beberapa mesin. Seperti satu set instruksi yang disebut prosedur yang
efektif, atau algoritma, untuk tugas tersebut. Masalah dengan intuisi ini adalah bahwa apa yang
dianggap sebagai prosedur efektif mungkin tergantung pada kemampuan mesin yang digunakan
untuk melaksanakan instruksi. Pada prinsipnya, perangkat dengan kemampuan yang berbeda
mungkin dapat menyelesaikan set instruksi yang berbeda, dan karena itu dapat mengakibatkan
berbagai kelas tugas komputasi (lihat entri pada komputabilitas dan kompleksitas).
Turing mengusulkan kelas perangkat yang kemudian dikenal sebagai mesin Turing. Perangkat ini
menyebabkan gagasan formal perhitungan yang kita akan memanggil Turing-komputabilitas.
Sebuah tugas adalah Turing dihitung jika dapat dilakukan oleh beberapa mesin Turing.
Proposisi bahwa gagasan Turing menangkap persis ide intuitif prosedur yang efektif disebut
Gereja-Turing tesis. Proposisi ini tidak dapat dibuktikan, karena merupakan klaim tentang
hubungan antara konsep formal dan intuisi. Tesis ini akan dibantah oleh sebuah algoritma secara
intuitif diterima untuk tugas yang tidak Turing-dihitung, dan tidak ada-balik tersebut telah
ditemukan. Gagasan didefinisikan secara independen lain komputabilitas berdasarkan fondasi
alternatif, seperti fungsi rekursif dan mesin sempoa telah terbukti setara dengan Turingkomputabilitas. Kedua fakta menunjukkan bahwa ada setidaknya sesuatu yang alami tentang
gagasan ini komputabilitas.
Mesin Turing bukan obyek fisik tetapi yang matematika. Kami membutuhkan tidak solder atau
chip silikon untuk membangun satu. Arsitektur hanya dijelaskan, dan tindakan yang dapat
dilakukan oleh mesin sederhana dan jelas ditentukan. Turing mengakui bahwa tidak perlu untuk
berbicara tentang bagaimana mesin melakukan tindakannya, tetapi hanya untuk mengambil
seperti yang diberikan ide-ide kembar bahwa mesin dapat melakukan tindakan tertentu, dan
bahwa tindakan-tindakan dapat digambarkan unik.

1. Definisi Mesin Turing


Sebuah mesin Turing adalah semacam mesin negara. Setiap saat mesin berada dalam salah satu
dari jumlah terbatas negara. Petunjuk untuk mesin Turing terdiri dalam kondisi tertentu di mana
mesin akan transisi antara satu negara dan yang lain.
Literatur berisi sejumlah definisi yang berbeda dari mesin Turing. Sementara berbeda dalam
spesifik, mereka setara dalam arti bahwa tugas yang sama berubah menjadi Turing-dihitung
dalam setiap formulasi. Definisi di sini hanya salah satu definisi umum, dengan beberapa varian

dibahas di bagian 3 dari artikel ini.


Sebuah mesin Turing memiliki rekaman satu dimensi tak terbatas dibagi ke dalam sel. Secara
tradisional kita berpikir tentang rekaman sebagai horisontal dengan sel diatur dalam orientasi
kiri-kanan. Rekaman itu memiliki salah satu ujungnya, di sebelah kiri berkata, dan membentang
jauh jauh ke kanan. Setiap sel mampu berisi satu simbol, baik '0' atau '1'.
Mesin memiliki kepala baca-tulis yang memindai sebuah sel tunggal pada pita. Ini kepala bacatulis dapat bergerak ke kiri dan kanan sepanjang pita untuk memindai sel berturut-turut.
Tindakan mesin Turing ditentukan sepenuhnya oleh (1) keadaan saat ini mesin (2) simbol dalam
sel saat ini sedang dipindai oleh kepala dan (3) tabel aturan transisi, yang berfungsi sebagai
"program" untuk mesin.
Setiap aturan transisi adalah 4-tuple:
<Statecurrent, Simbol, Statenext, Action>
yang dapat dibaca mengatakan "jika mesin dalam keadaan Negara Lancar dan sel discan berisi
Simbol kemudian pindah ke stateStatenext mengambil Action". Sebagai tindakan, mesin Turing
dapat baik untuk menulis simbol pada pita dalam sel saat ini (yang kita akan menunjukkan
dengan simbol yang bersangkutan), atau untuk memindahkan kepala satu sel ke kiri atau kanan,
yang kami akan dilambangkan dengan simbol dan masing-masing.
Jika mesin mencapai situasi di mana tidak ada aturan transisi yang unik untuk dilaksanakan,
yaitu, tidak ada atau lebih dari satu, maka perhentian mesin.
Dalam istilah modern, rekaman itu berfungsi sebagai memori mesin, sedangkan kepala baca-tulis
adalah bus memori melalui data yang diakses (dan diperbarui) oleh mesin. Ada dua hal penting
untuk melihat tentang setup. Pertama, terkait dengan definisi mesin itu sendiri, yaitu bahwa
rekaman mesin tidak terbatas panjangnya.
Hal ini terkait dengan asumsi bahwa memori mesin tak terbatas. Kekhawatiran kedua definisi
Turing-dihitung, yaitu bahwa fungsi akan Turing-dihitung jika ada satu set instruksi yang akan
menghasilkan mesin Turing komputasi fungsi terlepas dari jumlah waktu yang diperlukan. Satu
dapat menganggap ini sebagai asumsi ketersediaan waktu yang tak terbatas untuk menyelesaikan
perhitungan.
Kedua asumsi dimaksudkan untuk memastikan bahwa definisi komputasi yang dihasilkan tidak
terlalu sempit. Hal ini, memastikan bahwa tidak ada fungsi dihitung akan gagal menjadi Turingdihitung semata-mata karena tidak ada cukup waktu atau memori untuk menyelesaikan
perhitungan. Oleh karena itu, mungkin ada beberapa fungsi Turing-dihitung yang mungkin tidak
dilakukan oleh setiap komputer yang ada, mungkin karena tidak ada mesin yang ada memiliki
memori yang cukup untuk melaksanakan tugas. Beberapa fungsi Turing-dihitung mungkin tidak
pernah bisa dihitung dalam praktek, karena mereka mungkin memerlukan memori lebih dapat
dibangun dengan menggunakan semua (jumlah terbatas) atom di alam semesta. Sebaliknya, hasil
yang menunjukkan bahwa fungsi tidak Turing-dihitung sangat kuat, karena tentu menyiratkan
bahwa tidak ada komputer yang bisa kita membangun dapat melakukan perhitungan. Bagian 5
menunjukkan bahwa beberapa fungsi tidak Turing-dihitung.

1.1. Definisi formal


Bicara dari "rekaman" dan "membaca-menulis kepala" dimaksudkan untuk membantu intution
(dan mengungkapkan sesuatu dari waktu di mana Turing menulis) tetapi tidak memainkan peran
penting dalam definisi mesin Turing. Dalam situasi di mana analisis formal mesin Turing
diperlukan, adalah tepat untuk menguraikan definisi dari mesin dan program yang dalam istilah
yang lebih matematis. Murni secara resmi mesin mungkin didefinisikan terdiri dari:
Satu set terbatas negara Q dengan negara mulai dibedakan,
Satu set terbatas simbol .
Sebuah negara perhitungan menjelaskan segala sesuatu yang perlu diketahui tentang mesin pada
saat tertentu dalam pelaksanaannya. Pada setiap langkah yang diberikan eksekusi s
Qs anggota Q adalah negara yang mesin Turing adalah,
s fungsi dari bilangan bulat ke menjelaskan isi dari masing-masing sel rekaman itu,
Sejumlah alami hs adalah indeks sel yang dipindai
Fungsi transisi untuk mesin adalah fungsi dari negara perhitungan untuk negara komputasi,
sehingga jika (S) = T
T setuju dengan S mana-mana kecuali di hS (dan mungkin ada juga).
Jika S (hS) T (hS) maka hT = hS sebaliknya, | hT - hS | 1
Fungsi transisi menentukan konten baru dari rekaman itu dengan mengembalikan fungsi baru
tapi fungsi baru ini dibatasi menjadi sangat mirip dengan yang lama. Kendala pertama di atas
mengatakan bahwa isi sel rekaman itu adalah bahwa sama di mana-mana kecuali mungkin pada
sel yang sedang dipindai. Karena mesin Turing dapat juga mengubah isi sel atau memindahkan
kepala, maka jika sel tersebut dimodifikasi, maka kepala tidak boleh dipindahkan dalam transisi,
dan jika tidak diubah, maka kepala dibatasi untuk bergerak paling satu sel di kedua arah. Ini
adalah arti dari kendala kedua di atas.
Definisi ini sangat mirip dengan yang diberikan dalam entri pada komputabilitas dan
kompleksitas, dengan perbedaan yang signifikan yang dalam definisi alternatif mesin dapat
menulis simbol baru serta bergerak selama masa transisi apapun. Perubahan ini tidak mengubah
set fungsi Turing-dihitung, dan menyederhanakan definisi formal dengan menghapus kondisi
kedua pada fungsi transisi dalam definisi kami. Kedua definisi formal memungkinkan abjad
simbol pada pita akan ada himpunan berhingga, sementara definisi asli bersikeras = {0,1}
perubahan ini juga tidak berdampak definisi himpunan fungsi Turing-dihitung.

2. Menggambarkan Mesin Turing


Setiap mesin Turing memiliki mesin yang sama. Apa yang membuat satu mesin Turing
melakukan satu tugas dan lain tugas yang berbeda adalah tabel aturan transisi yang membentuk
program mesin, dan keadaan awal yang ditetapkan untuk mesin. Kami akan menganggap seluruh
bahwa mesin dimulai di bernomor terendah dari negara-negara tersebut.
Kita bisa menggambarkan mesin Turing, karena itu, dengan menentukan hanya 4-tupel yang

membentuk program. Berikut adalah tupel menggambarkan mesin sederhana.


<S0, 1, s0, >
<S0, 0, s1, 1>
<S1, 1, s1, >
<S1, 0, s2, >
Mesin ini memiliki tiga negara, s0 nomor, s1 dan s2. Dua instruksi pertama menjelaskan apa
yang terjadi di negara s0. Ada dua kemungkinan, baik mesin pemindaian '1', dalam hal ini kepala
bergerak ke kanan dan tetap dalam s0 negara. Mesin meninggalkan s0 negara dan masuk s1 jika
memindai '0'. Ini menulis '1' pada transisi itu. Kedua dua instruksi menggambarkan apa yang
terjadi di negara s1, yaitu jika memindai '1' mesin bergerak kepala di sebelah kiri tinggal di s1
negara. Jika memindai '0', kepala bergerak ke kanan dan mesin bergerak ke s2 negara. Karena
tidak ada instruksi untuk s2 negara, mesin perhentian jika mencapai negara itu.
Ketika kita tertarik untuk meneliti perilaku mesin Turing, itu adalah umum dan mungkin lebih
mudah dipahami untuk mewakili mesin menggunakan diagram negara. Berikut adalah mesin
diwakili dalam format ini.

Gambar 1: Diagram Negara


Dalam gambar ini, negara yang diwakili oleh lingkaran, dengan lingkaran ganda yang unik
menjadi keadaan awal. Transisi ini direpresentasikan sebagai panah yang berasal dari satu
lingkaran dan mendarat di lain (mungkin sama) lingkaran. Panah diberi label oleh sepasang
terdiri pertama simbol yang harus dipindai untuk panah yang harus diikuti, dan kedua tindakan
yang akan diambil sebagai transisi dibuat. Tindakan baik akan simbol yang akan ditulis, atau
atau menunjukkan pindah ke kiri atau kanan.
Dalam apa yang berikut kita akan menjelaskan mesin Turing dalam format mesin negara.

2.1 Contoh
Dalam rangka untuk berbicara tentang mesin Turing yang melakukan sesuatu yang berguna, kita
harus memberikan penafsiran simbol direkam pada pita. Sebagai contoh, jika kita ingin
merancang sebuah mesin yang akan melakukan beberapa fungsi matematika, selain mengatakan,
maka kita perlu menjelaskan bagaimana menginterpretasikan satu dan nol muncul pada tape

sebagai angka.
Dalam contoh berikut kita akan merupakan jumlah n sebagai blok n + 1 salinan simbol '1' pada
pita. Dengan demikian kita akan mewakili angka 0 sebagai single '1' dan nomor 3 sebagai blok
empat '1 ini.
Kami juga harus membuat beberapa asumsi tentang konfigurasi pita ketika mesin dimulai, dan
ketika selesai, untuk menafsirkan perhitungan. Kami akan berasumsi bahwa jika fungsi yang
akan dihitung membutuhkan n argumen, maka mesin Turing akan mulai dengan kepalanya
memindai paling kiri '1' dari urutan n blok '1 ini. blok '1 yang mewakili argumen harus
dipisahkan oleh suatu kejadian dari simbol' 0 '. Misalnya, untuk menghitung jumlah 3 + 4, mesin
Turing akan dimulai dalam konfigurasi berikut, di mana elips menunjukkan bahwa rekaman itu
hanya memiliki angka nol pada sel-sel yang kita tidak dapat melihat, dan panah ke atas
menunjukkan sel yang saat dipindai.
Di sini mesin penambahan seharusnya membutuhkan dua argumen yang mewakili angka yang
akan ditambahkan, dimulai pada 1 paling kiri dari argumen pertama. Argumen dipisahkan oleh
satu 0 seperti yang diperlukan, dan blok pertama berisi 4 '1, yang mewakili angka 3, dan yang
kedua berisi 5' 1, yang mewakili nomor 4.
Sebuah mesin harus menyelesaikan dalam konfigurasi standar juga. Harus ada satu blok '1 di
rekaman itu, dan mesin harus memindai paling kiri seperti' 1 '. Jika mesin dengan benar
menghitung fungsi maka blok ini harus mewakili jawaban yang benar. Jadi mesin tambahan
dimulai pada konfigurasi di atas harus selesai pada pita yang terlihat seperti ini:
Mengadopsi konvensi ini untuk konfigurasi akhir dari sebuah mesin Turing berarti bahwa kita
dapat membuat mesin dengan mengidentifikasi keadaan akhir dari satu mesin dengan keadaan
awal berikutnya.
Dalam konvensi ini, diagram negara pada Gambar 1 menggambarkan sebuah mesin yang
menghitung penerus (add-satu) fungsi. Itu adalah ketika dimulai pada konfigurasi standar pada
tape mewakili nomor n akan menghentikan dalam konfigurasi standar mewakili jumlah n + 1.
Hal ini dilakukan dengan menggunakan s0 negara untuk memindai dengan yang pertama '0' di
sebelah kanan (single) blok '1 ini. Kemudian menggantikan bahwa '0' oleh '1', dan scan yang
tersisa di s1 negara sampai '0' ditemukan (ini adalah pertama nol di sebelah kiri blok '1' s). Ini
kemudian bergerak kembali untuk memindai pertama '1' dan menghentikan di s2 negara.

Di atas, kita melihat keadaan awal. Klik pada gambar untuk melihat film dari pelaksanaan mesin.
(Klik lagi untuk berhenti dan me-reset.)
Sebagai contoh lain, pertimbangkan mesin pada Gambar 2 yang menghitung fungsi tambahan.
Artinya, ketika mulai pada pita standar mewakili angka n dan m, mesin perhentian pada pita
mewakili n + m.

Gambar 2: Sebuah Mesin untuk Komputasi n + m


Perhatikan bahwa mesin ini adalah seperti menambah satu mesin di yang menyatakan s0 melalui
s2 menyebabkan mesin untuk menulis '1' di sebelah kanan blok pertama dari '1 ini, dan
mengembalikan kepala ke paling kiri' 1 '. Dalam konfigurasi standar untuk Selain itu, ini
bergabung dengan dua blok dari '1 ke dalam satu blok, yang mengandung (n + 1) +1+ (m + 1)
salinan simbol' 1 ', sehingga memasuki keadaan s2 rekaman itu merupakan yang numbern + m +
2. Untuk memperbaiki hal ini, kita perlu untuk menghapus dua salinan dari simbol '1', yang
dicapai oleh negara-negara s2 dan s3, yang masing-masing menggantikan '1' dengan '0' dan
kemudian bergerak ke kanan.
Karena rekaman itu awalnya berisi setidaknya dua '1 dan kita menulis satu lagi, penghapusan
dua' 1 akan meninggalkan setidaknya satu di pita pada akhir perhitungan, dan kami akan
memindai paling kiri dari mereka.

2.2 Deskripsi Sesaat Perhitungan


Ingat bahwa kita mengatakan bahwa keadaan eksekusi mesin Turing dapat dijelaskan dengan
nama negara yang mesin berada dalam Qs, simbol pada pita, s, dan sel yang sedang dipindai hs.
Kami akan mewakili deskripsi seperti menggunakan tokoh seperti itu di Gambar 3, di mana
panah merupakan sel saat dipindai dan nama keadaan saat yang tertulis di bawah panah.

Gambar 3: Deskripsi Sesaat Mesin Turing Komputasi


Hal ini menunjukkan bahwa dari mesin Turing di S4 negara, memindai sel ditunjukkan rekaman
itu. Rekaman diasumsikan berisi '0 di mana-mana yang tidak terlihat.

3. Varietas Mesin Turing


Kami telah disajikan di sini salah satu formulasi paling umum ide dasar Turing. Ada sejumlah
variasi untuk formulasi yang berubah menjadi setara dengan yang satu ini, dan penulis yang
berbeda mesin Turing ini menggunakan semua ini. Karena mereka semua provably setara dengan
satu kami lain dapat mempertimbangkan salah satu formulasi sebagai definisi mesin Turing
karena kami menemukan nyaman.
Formulasi F1 dan F2 formulasi yang setara jika untuk setiap mesin yang dijelaskan dalam
formulasi F1 ada mesin inF2 dijelaskan yang memiliki perilaku input-output yang sama, dan
sebaliknya, yaitu, ketika dimulai pada pita yang sama pada sel yang sama, akan berakhir dengan
pita yang sama pada sel yang sama.
Dua arah kaset tak terbatas
Dalam formulasi asli kami ditentukan bahwa rekaman telah berakhir, di sebelah kiri berkata, dan
membentang jauh jauh ke kanan. Bersantai ketentuan ini untuk memungkinkan rekaman untuk
meregangkan jauh memperkecil hasil kanan dan kiri dalam formulasi baru mesin Turing. Anda
mungkin berharap bahwa fleksibilitas tambahan memiliki dua arah pita tak terbatas akan
meningkatkan jumlah fungsi yang dapat dihitung, tapi tidak. Jika ada sebuah mesin dengan dua
arah pita tak terbatas untuk menghitung beberapa fungsi, ada ada mesin dengan satu arah pita tak
terbatas yang akan menghitung bahwa fungsi yang sama.
Nomor sewenang-wenang baca-tulis kepala
Memodifikasi definisi mesin Turing sehingga mesin memiliki beberapa baca-tulis kepala tidak
mengubah gagasan Turing-computability.
Beberapa kaset
Alih-alih rekaman tak terbatas tunggal, kita bisa mempertimbangkan mesin memiliki banyak
kaset tersebut. Perumusan mesin tersebut harus memungkinkan tupel untuk menentukan tape

yang akan dipindai, di mana simbol baru yang akan ditulis, dan yang pita kepala untuk bergerak.
Sekali lagi formulasi ini setara dengan aslinya.
Kaset dua dimensi
Alih-alih rekaman tak terbatas satu dimensi, kita bisa mempertimbangkan dua dimensi "pita",
yang membentang jauh jauh ke atas dan bawah serta kiri dan kanan. Kami akan menambah
formulasi yang transisi mesin dapat menyebabkan kepala baca-tulis untuk bergerak ke atas atau
ke bawah satu sel selain bisa bergerak ke kiri dan kanan. Sekali lagi formulasi ini setara dengan
aslinya.
Gerakan Sewenang-wenang kepala
Memodifikasi definisi mesin Turing sehingga kepala baca-tulis dapat memindahkan jumlah
sewenang-wenang sel pada setiap transisi yang diberikan tidak mengubah gagasan Turingcomputability.
Sewenang-wenang alfabet terbatas
Dalam formulasi asli kami memungkinkan penggunaan hanya dua simbol pada pita. Bahkan kita
tidak meningkatkan kekuatan mesin Turing dengan memungkinkan penggunaan setiap alfabet
terbatas simbol.
Formulasi 5-tuple
Sebuah cara yang umum untuk menggambarkan mesin Turing adalah untuk memungkinkan
mesin untuk kedua menulis dan memindahkan pusat di transisi yang sama. Formulasi ini
membutuhkan 4-tupel dari formulasi asli untuk digantikan oleh 5-tupel
<State0, Simbol, Statenew, Symbolnew, Pindah>
mana Symbolnew adalah simbol tertulis, dan Move adalah salah satu dan.
Sekali lagi, kebebasan tambahan ini tidak menghasilkan definisi baru dari Turing-dihitung.
Untuk setiap salah satu mesin baru di sana adalah salah satu mesin lama dengan sifat yang sama.
Mesin Turing Non-deterministik
Sebuah reformulasi tampaknya lebih radikal gagasan mesin Turing memungkinkan mesin untuk
mengeksplorasi alternatif perhitungan secara paralel. Dalam formulasi asli kita mengatakan
bahwa jika mesin ditentukan beberapa transisi untuk suatu pasangan negara / simbol, dan mesin
itu dalam keadaan seperti itu maka akan berhenti. Dalam reformulasi ini, semua transisi yang
diambil, dan semua perhitungan yang dihasilkan terus secara paralel. Salah satu cara untuk
memvisualisasikan ini adalah bahwa mesin memunculkan salinan dari dirinya sendiri dan pita
untuk setiap transisi alternatif yang tersedia, dan setiap mesin terus perhitungan. Jika salah satu
mesin berakhir dengan sukses, maka seluruh perhitungan berakhir dan mewarisi kaset yang
dihasilkan mesin. Perhatikan kata berhasil dalam kalimat sebelumnya. Dalam formulasi ini,
beberapa negara yang ditunjuk sebagai penerima negara dan ketika mesin berakhir di salah satu
negara tersebut, maka perhitungan berhasil, jika perhitungan tidak berhasil dan mesin lain
melanjutkan pencarian mereka untuk hasil yang sukses.
Penambahan non-determinisme untuk mesin Turing tidak mengubah definisi Turing-dihitung.
Formulasi asli Turing Mesin Turing menggunakan representasi 5-tuple dari mesin. Posting
memperkenalkan representasi 4-tupel, dan penggunaan dua arah pita tak terbatas.
Sebuah mesin yang lebih kompleks

Selain melakukan fungsi numerik menggunakan representasi unary untuk nomor, kita dapat
melakukan tugas-tugas seperti menyalin blok simbol, menghapus blok simbol dan sebagainya.
Berikut adalah contoh dari mesin Turing yang bila diaktifkan dalam konfigurasi standar pada pita
yang berisi satu blok '1 ini, menghentikan pada pita yang berisi dua salinan dari blok dari' 1,
dengan blok yang dipisahkan oleh satu '0'. Ini menggunakan alfabet yang terdiri dari simbol '0',
'1' dan 'A'.

Gambar 4: Sebuah Mesin untuk Menyalin Blok 1s


Tindakan mesin ini adalah untuk berulang kali mengubah salah satu asli '1 ke dalam A, dan
kemudian menulis baru' 1 'di sebelah kanan semua sisa' 1 'pada pita, setelah meninggalkan nol
antara balok asli dan copy. Ketika kita kehabisan asli '1, kami mengubah Seperti kembali ke' 1
ini.
Keadaan awal, s0, digunakan untuk mengubah '1' menjadi 'A', dan bergerak ke kanan dan ke s1
negara. Dalam s1 negara kita lewati sisa blok '1 sampai kita menemukan' 0 '(blok pemisah) dan
s2 kita lewati setiap' 1 ini di sebelah kanan itu '0' (ini adalah salinan dari blok '1 yang kita
membuat). Ketika kita mencapai ujung blok itu, kami menemukan '0', yang kita berubah menjadi

'1' dan kembali ke kiri, dan masuk ke s3 negara. Serikat s3 dan S4 melewatkan ke kiri atas '1 dan
memisahkan' 0 'pada pita sampai' A 'ditemukan. Ketika ini terjadi, kita kembali ke s0 negara, dan
bergerak ke kanan.
Pada titik ini, kita baik memindai berikutnya '1' dari blok asli, atau blok asli semua telah berubah
menjadi 'A, dan kami memindai pemisah' 0 '. Dalam kasus yang pertama, kita membuat
perjalanan lain melalui negara s1-S4, tetapi dalam kedua, kami pindah ke S5 negara, bergerak ke
kiri. Dalam keadaan ini kita berulang kali akan menemukan 'A, yang kita ganti dengan' 1 ini, dan
bergerak ke kiri. Jika kita menemukan '0', maka semua 'A ini telah dipilih kembali menjadi' 1 ini.
Kami akan memindai '0' di sebelah kiri sel asli, dan jadi kita bergerak ke kanan, dan ke S6
keadaan akhir.
Mesin fotokopi ini dapat digunakan bersama dengan mesin penambahan Gambar 2 untuk
membangun mesin dua kali lipat, yaitu sebuah mesin yang, ketika dimulai pada pita mewakili
nomor n menghentikan pada pita mewakili 2n. Kita bisa melakukan ini dengan terlebih dahulu
menggunakan mesin fotokopi untuk menghasilkan rekaman dengan dua salinan n dalam
rekaman, dan kemudian menggunakan mesin tambahan untuk menghitung n + n (= 2n). Kami
akan melakukan hal ini dengan mengidentifikasi negara menghentikan mesin fotokopi ini (S6)
dengan keadaan awal mesin menambahkan ini (s0).
Pembangunan hanya disarankan bergantung pada kenyataan bahwa mesin fotokopi berakhir
dalam posisi standar, yang diperlukan untuk mesin menambahkan untuk benar menghitung
hasilnya. Dengan merancang mesin Turing yang mulai dan berakhir dalam konfigurasi standar,
kita dapat memastikan bahwa mereka dapat terdiri dengan cara ini. Dalam contoh, mesin
fotokopi memiliki keadaan mengakhiri unik, tapi ini tidak diperlukan. Kita mungkin membangun
sebuah mesin Turing yang menunjukkan hasil perhitungan sebesar berakhir pada salah satu dari
banyak negara, dan kita dapat menggabungkan mesin yang dengan lebih dari satu mesin, dengan
identitas mesin yang mengikuti bergantung pada mesin switching. Hal ini akan memungkinkan
kami untuk menciptakan mesin yang menambahkan satu ke input jika input yang bahkan, dan
ganda jika aneh, misalnya (harus kita ingin untuk beberapa alasan).

4. Apa yang Bisa Dihitung


Mesin Turing sangat kuat. Untuk jumlah yang sangat besar dari masalah komputasi, adalah
mungkin untuk membangun sebuah mesin Turing yang akan mampu melakukan perhitungan itu.
Kita telah melihat bahwa adalah mungkin untuk merancang mesin Turing untuk aritmatika pada
bilangan asli, misalnya.
Computable Numbers
Kertas asli Turing bersangkutan bilangan yang dapat dihitung. Sejumlah adalah Turing-dihitung
jika ada mesin Turing yang dimulai dari kaset kosong menghitung perkiraan sewenang-wenang
tepat ke nomor tersebut. Semua nomor aljabar (akar polinomial dengan koefisien aljabar) dan
banyak konstanta matematika transendental, seperti e dan adalah Turing-dihitung.

Fungsi Computable
Sebagaimana telah kita lihat, mesin Turing dapat melakukan lebih dari menuliskan angka. Antara
lain mereka dapat menghitung fungsi numerik, seperti mesin untuk penambahan (disajikan pada
Gambar 2) perkalian, pengurangan yang tepat, eksponensial, faktorial dan sebagainya.
Fungsi karakteristik predikat adalah fungsi yang memiliki nilai TRUE atau FALSE jika diberikan
argumen yang tepat. Sebuah contoh akan menjadi predikat 'isPrime', yang fungsi karakteristik
adalah TRUE ketika diberi bilangan prima, 2, 3, 5 dll dan SALAH jika tidak, misalnya ketika
argumen adalah 4, 9, atau 12 Dengan mengadopsi konvensi untuk mewakili TRUE dan FALSE,
mungkin itu BENAR diwakili sebagai urutan dua '1 dan sALAH sebagai salah satu' 1 ', kita
dapat merancang Turing-mesin untuk menghitung fungsi karakteristik predikat dihitung. Sebagai
contoh, kita dapat merancang mesin Turing yang bila diaktifkan pada pita mewakili nomor
berakhir dengan BENAR pada pita jika dan hanya jika argumen adalah bilangan prima. Hasil
fungsi tersebut dapat digabungkan dengan menggunakan menggunakan fungsi boolean: AND,
NOT, OR, IF-THEN-ELSE, yang masing-masing Turing-dihitung.
Bahkan fungsi Turing-dihitung hanya fungsi rekursif, dijelaskan di bawah ini.
Universal Turing Machines
Hasil positif yang paling mencolok mengenai kemampuan mesin Turing adalah adanya Universal
Mesin Turing (UTM). Ketika memulai sebuah rekaman yang berisi pengkodean mesin Turing
lain, sebut saja T, diikuti oleh input ke T, UTM yang menghasilkan hasil yang sama seperti T
akan dimulai pada saat masukan itu. Pada dasarnya UTM dapat mensimulasikan perilaku setiap
mesin Turing (termasuk dirinya).
Salah satu cara untuk memikirkan UTM adalah sebagai komputer diprogram. Ketika UTM yang
diberikan program (deskripsi komputer lain), itu membuat dirinya bersikap seolah-olah mesin itu
saat memproses input.
Perhatikan lagi, identifikasi kami input-output kesetaraan dengan "berperilaku identik". Sebuah T
mesin bekerja pada masukan t kemungkinan untuk mengeksekusi transisi jauh lebih sedikit yang
UTM yang simulasi T bekerja pada t, tetapi untuk tujuan kita fakta ini tidak relevan.
Dalam rangka untuk merancang mesin seperti itu, pertama-tama perlu untuk menentukan cara
untuk mewakili mesin Turing pada tape untuk UTM untuk memproses. Untuk melakukan ini kita
akan ingat bahwa mesin Turing secara formal direpresentasikan sebagai koleksi 4-tupel. Pertama,
kita akan merancang sebuah pengkodean untuk tupel individu, dan kemudian untuk urutan tuple.
Encoding Mesin Turing
Setiap 4-tupel dalam spesifikasi mesin akan dikodekan sebagai urutan empat blok dari '1 ini,
dipisahkan oleh satu' 0 '
1. Blok pertama yang akan mengkodekan nomor kondisi saat ini, dengan menggunakan unary
nomor konvensi di atas (n + 1 yang merupakan angka n).
2. Blok kedua yang akan mengkodekan simbol saat ini, menggunakan salah '1' untuk mewakili
simbol nol, dan dua untuk mewakili simbol '1' (lagi karena kita tidak dapat menggunakan nol
yang mewakili '0').
3. Unsur ketiga dari tupel akan merupakan jumlah negara baru di unary notasi angka.
4. Unsur keempat merupakan tindakan, dan ada empat kemungkinan: simbol akan dikodekan

seperti di atas, dengan blok tiga '1 yang mewakili langkah ke kiri () dan blok dari empat' 1 yang
mewakili pindah ke kanan ().
Menggunakan konvensi ini tupel <0, '1', 0, > akan diwakili seperti pada Gambar 5.

Gambar 5: Encoding dari Tuple <0, '1', 0, >


Untuk menyandikan mesin lengkap, kita hanya perlu menuliskan tupel dalam rekaman, dalam
urutan apapun, tetapi dipisahkan satu sama lain oleh dua sel kosong sehingga kita dapat
mengatakan di mana setiap tupe berakhir. Add-satu mesin dari Gambar 1, akan diwakili oleh
string agak menakutkan ditunjukkan pada Gambar 6.
010110101111 ... 00 101011011 00 110110110111 00 11010111011110 ...
Gambar 6: The Encoding Mesin pada Gambar 1
Konstruksi ini menunjukkan bahwa adalah mungkin untuk menyandikan tupes dari mesin Turing
pada tape mesin Turing (pada kenyataannya kita telah melakukan ini hanya menggunakan alfabet
{0,1}, sementara kita tahu dari hasil sebelumnya yang kita bisa menggunakan alfabet diperluas
yang bisa menghasilkan representasi yang lebih mudah dipahami). Kami ingin UTM kami harus
dimulai pada rekaman yang berisi deskripsi mesin Turing dalam pengkodean ini, diikuti oleh
argumen ini dijelaskan mesin Turing. Kami akan mengadopsi konvensi bahwa deskripsi dari
mesin Turing akan dipisahkan dari argumen dengan blok tiga '0, sehingga UTM dapat
mengatakan di mana tupel akhir dan argumen dimulai. Add-satu mesin membutuhkan argumen
tunggal, sehingga kita bisa mulai UTM pada pita seperti di atas diikuti oleh tiga '0 dan,
katakanlah, lima' 1 ini. The UTM harus berakhir pada rekaman yang berisi satu blok dari enam
'1, setelah dihitung persis apa add-satu mesin akan dilakukan jika dimulai pada blok lima' 1 ini.

5.Apa Tidak Dapat Dihitung


Pada bagian sebelumnya kita menjelaskan cara pengkodean mesin Turing untuk masukan ke
Mesin Universal Turing. Pengkodean mesin Turing adalah urutan '0 dan' 1 'dan setiap urutan
tersebut dapat diartikan sebagai nomor alami. Kita bisa memikirkan pengkodean mesin Turing
sebagai nomor alam yang merupakan nomor seri mesin itu. Karena cara pengkodean bekerja,
setiap mesin Turing akan memiliki nomor seri yang berbeda. Karena semua nomor seri adalah
angka alami, jumlah mesin Turing yang berbeda adalah countably tak terbatas.
Di sisi lain, jumlah fungsi pada bilangan asli adalah tak terhitung. Ada (uncountably) lebih
fungsi pada bilangan asli daripada ada mesin Turing, yang menunjukkan bahwa ada fungsi
uncomputable, fungsi yang hasilnya tidak dapat dihitung oleh mesin Turing, karena ada hanya
tidak mesin Turing cukup untuk menghitung fungsi.

Bukti ini dengan menghitung agak tidak memuaskan, karena memberitahu kita bahwa ada fungsi
uncomputable, tetapi memberikan kita dengan tidak ada contoh. Di sini kami memberikan dua
contoh dari fungsi uncomputable.

5.1 Sibuk Beaver


Bayangkan sebuah mesin Turing yang dimulai pada pita benar-benar kosong, dan akhirnya
menghentikan. Jika mesin daun yang n pada tape ketika berhenti, kita akan mengatakan bahwa
produktivitas mesin ini adalah n. Kami akan mengatakan bahwa produktivitas mesin yang tidak
menghentikan 0 Produktivitas merupakan fungsi dari deskripsi mesin Turing (bilangan) ke alam
nomor. Kami akan menulis p (T) = nto menunjukkan bahwa produktivitas mesin T adalah n.
Di antara mesin Turing yang memiliki nomor tertentu negara, ada produktivitas maksimum yang
mesin Turing dengan sejumlah negara dapat memiliki. Ini juga merupakan fungsi dari bilangan
asli (jumlah negara) ke bilangan asli (produktivitas maksimum mesin dengan sejumlah negara).
Kami akan menulis fungsi ini sebagai BB (k) = n untuk menunjukkan produktivitas maksimum
dari negara-k mesin Turing adalah n. Mungkin ada beberapa mesin k negara yang berbeda
dengan n produktivitas maksimum. Kami menyebut mesin ini sebuah Beaver Sibuk untuk k.
Tidak ada mesin Turing yang akan menghitung fungsi BB (k), yaitu, yang ketika dimulai dalam
konfigurasi standar pada tape dengan k '1 akan menghentikan dalam konfigurasi standar pada
tape dengan BB (k)' 1 ini. Contoh ini adalah karena Tibor Rado (Rado 1962).
Bukti bahwa tidak ada hasil fungsi tersebut dengan asumsi bahwa ada mesin seperti itu, yaitu
bahwa ada mesin yang dimulai dalam konfigurasi standar dengan k '1 di rekaman itu, dan
perhentian dalam konfigurasi standar dengan BB (k)' 1 di rekaman. Kami akan memanggil mesin
B dan menganggap bahwa ia memiliki k negara.
Ada mesin n-negara yang menulis n '1 di rekaman awalnya kosong (latihan bagi pembaca). Kita
bisa membangun mesin baru yang menghubungkan negara penghentian mesin ini ke keadaan
awal dari B dan kemudian menghubungkan negara penghentian B ke keadaan awal salinan lain
dari B. Jadi mesin pertama menulis n '1' dan kemudian copy pertama B menghitung BB (n), tapi
kemudian copy kedua Btakes atas dan menghitung BB (BB (n)). Jumlah negara bagian di mesin
kami adalah n + 2k. Mesin kami mungkin Beaver forn Sibuk + 2k, tapi pasti tidak lebih produktif
daripada mesin tersebut. Jadi (jika mesin Beaver Sibuk ada)
BB (n + 2k) BB (BB (n)), untuk setiap n.
Sangat mudah untuk menunjukkan bahwa produktivitas mesin Turing meningkat sebagai negara
ditambahkan, yaitu,
jika i <j, maka BB (i) <BB (j)
(latihan lain). Akibatnya (jika mesin Beaver Sibuk ada)

n + 2k BB (n), untuk setiap n.


Karena ini adalah benar untuk setiap n, memang benar untuk n + 11, menghasilkan:
n + 11 + 2k BB (n + 11), untuk setiap n.
Tapi itu mudah untuk menunjukkan bahwa BB (n + 11) 2n (latihan lain, tetapi menunjukkan
bahwa ada mesin sebelas negara untuk menggandakan jumlah '1' pada pita, dan menulis seperti
mesin dengan n-negara mesin untuk menulis n '1' s). Menggabungkan fakta ini dengan
ketidaksetaraan sebelumnya kita memiliki:
n + 11 + 2k BB (n + 11) 2n, untuk setiap n.
yang dengan mengurangkan n dari kedua belah pihak kita memiliki 11 + 2k n, untuk setiap n,
jika Sibuk Beaver ada, yang merupakan kontradiksi.
Meskipun fungsi produktivitas uncomputable, ada minat yang cukup besar dalam pencarian
Sibuk mesin Beaver Turing (mesin paling produktif dengan sejumlah tertentu negara). Beberapa
kandidat dapat ditemukan dengan mengikuti link di bagian sumber daya Internet lain artikel ini.

5.2 Menghentikan Masalah


Ini akan sangat berguna untuk dapat memeriksa deskripsi mesin Turing dan menentukan apakah
menghentikan pada masukan yang diberikan. Masalah ini disebut masalah terputus-putus dan,
sayangnya, uncomputable. Artinya, tidak ada mesin Turing ada yang menghitung fungsi h (t, n)
yang didefinisikan sebagai TRUE jika mesin t menghentikan masukan n dan SALAH sebaliknya.
Untuk melihat uncomputability fungsi terputus-putus, bayangkan bahwa seperti mesin H ada,
dan mempertimbangkan mesin baru yang dibangun dengan menyusun mesin menyalin Gambar 4
dengan H dengan bergabung keadaan penghentian mesin fotokopi ke kondisi awal H. Seperti
mesin, ketika dimulai pada tape dengan n '1 ini menentukan apakah mesin yang kode n
menghentikan ketika diberi masukan n, yaitu, menghitung M (n) = h (n, n).
Sekarang mari kita menambahkan mesin kecil lain untuk negara penghentian H. Mesin ini masuk
ke urutan tak terbatas transisi jika rekaman itu berisi BENAR ketika mulai, dan perhentian jika
rekaman itu berisi SALAH (yang latihan bagi pembaca untuk membangun mesin ini,
menganggap bahwa BENAR diwakili oleh '11', dan SALAH oleh '1').
Mesin ini tersusun, sebut saja M, menghentikan jika mesin dengan kode masukan n tidak
menghentikan pada rekaman awal yang mengandung n (karena jika mesin n tidak menghentikan
pada n, mesin tersendat-sendat akan meninggalkan BENAR dalam rekaman, dan M akan
kemudian masuk ke urutan yang tak terbatas), dan sebaliknya.
Untuk melihat bahwa hal ini tidak mungkin, pertimbangkan kode untuk M sendiri. Apa yang
terjadi ketika M dimulai pada pita yang berisi kode Ms? Asumsikan bahwa M menghentikan

pada M, maka dengan definisi M mesin itu tidak menghentikan. Tapi sama, jika tidak
menghentikan M definisi M mengatakan bahwa itu harus berhenti.
Ini adalah suatu kontradiksi, dan mesin terputus-putus tidak bisa eksis. Fakta bahwa masalah
terputus-putus tidak Turing-dihitung pertama kali dibuktikan oleh Turing di (Turing 1937). Tentu
saja hasil ini berlaku untuk program-program nyata. Tidak ada program komputer yang dapat
memeriksa kode untuk sebuah program dan menentukan apakah program yang menghentikan.

6. Formulasi Alternatif komputabilitas


6.1 Fungsi Rekursif
Teori fungsi rekursif adalah studi tentang fungsi yang dapat didefinisikan dengan menggunakan
teknik rekursif (lihat entri pada fungsi rekursif). Secara singkat, fungsi rekursif primitif adalah
mereka yang dapat dibentuk dari fungsi dasar:
nol fungsi :

z (x)

= 0, untuk semua x

fungsi pengganti :

s (x)

= x + 1, untuk semua x

proyeksi engan lebih dari argumen j: pi, j (x0, ... xj) = xi, untuk semua xi, i, j
dengan menggunakan operasi komposisi dan rekursi primitif:
komposisi:
f (x1, ..., xn) = g (h1 (x1, ..., xn), ..., hm (x1, ..., xn)), untuk semua g, h1, ..., hm
Primitif Rekursi:
f (x, 0) = g (x), untuk setiap g
f (x, s (y)) = h (x, y, f (x, y)), untuk setiap h
Fungsi rekursif dibentuk oleh penambahan operator minimisasi, yang membutuhkan fungsi f dan
h kembali didefinisikan sebagai berikut:
Meminimalkan:
h (x1, ..., xn) = y, jika f (x1, ..., xn, y) = 0 dan t <y (f (x1, ..., xn, t) didefinisikan dan positif)
= Terdefinisi sebaliknya.
Hal ini diketahui bahwa fungsi komputasi Turing persis fungsi rekursif.

6.2 Mesin Abacus

Mesin abstrak dari arsitektur lebih akrab komputer digital modern (arsitektur von Neumann)
Abacus. Dalam bentuk yang paling sederhana komputer dengan arsitektur seperti itu memiliki
sejumlah register dialamatkan masing-masing dapat mengadakan datum tunggal, dan prosesor
yang dapat membaca dan menulis ke register ini.
Mesin ini dapat melakukan dua operasi dasar, yaitu: menambahkan satu dengan isi register
bernama (yang akan kita melambangkan sebagai n +, di mana n adalah nama dari register) dan
(berusaha) mengurangi satu dari daftar nama, dengan dua hasil yang mungkin: cabang sukses
jika register awalnya bukan nol, dan cabang kegagalan jika register awalnya nol (kita akan
melambangkan operasi sebagai n).
Ini disebut sempoa komputer dengan Lambek (Lambek 1961), dan diketahui setara dengan
mesin Turing.
Komputer digital modern tunduk pada kendala keterbatasan yang kami disarikan pergi dalam
definisi mesin sempoa, seperti yang kita lakukan dalam kasus mesin Turing. Komputer fisik
terbatas dalam jumlah lokasi memori yang mereka miliki, dan dalam kapasitas penyimpanan
masing-masing lokasi, sementara mesin sempoa tidak tunduk pada batasan tersebut. Jadi
beberapa fungsi sempoa-dihitung tidak akan dihitung oleh mesin fisik. (Kami tidak akan
mempertimbangkan apakah mesin Turing dan komputer digital modern tetap setara ketika
keduanya diberikan input eksternal, karena itu akan mengharuskan kita untuk mengubah definisi
dari mesin Turing.)

7. Dibatasi Turing Machines


Salah satu cara untuk memodifikasi definisi mesin Turing adalah dengan menghapus
kemampuan mereka untuk menulis ke tape. Mesin-mesin yang dihasilkan disebut mesin negara
yang terbatas. Mereka provably kurang kuat dibandingkan mesin Turing, karena mereka tidak
dapat menggunakan rekaman untuk mengingat keadaan perhitungan. Misalnya, mesin negara
yang terbatas tidak dapat menentukan apakah sebuah input string terdiri dari beberapa Seperti
diikuti dengan nomor yang sama B. Alasannya adalah bahwa mesin tidak ingat berapa banyak
Seperti telah melihat begitu jauh, kecuali dengan berada di sebuah negara yang mewakili fakta
ini, dan menentukan apakah jumlah As dan B pertandingan dalam semua kasus akan
memerlukan mesin untuk memiliki tak terhingga banyaknya negara (satu untuk diingat bahwa
mereka telah melihat satu A, satu untuk diingat bahwa ia telah melihat 2, dan seterusnya).

Anda mungkin juga menyukai