Komposisi contoh mesin Turing. Komputasi fungsi yang tepat pada mesin Turing

Mesin Turing (MT) adalah pemain abstrak (abstract computing machine).

Kombinasi algoritma adalah nama yang ditetapkan untuk sejumlah metode spesifik untuk membangun algoritma baru dari beberapa algoritma tertentu.

Teorema kombinasi algoritma merupakan bagian penting dari teori umum algoritma. Setelah terbukti, mereka memungkinkan untuk memverifikasi kelayakan algoritma yang kompleks dan rumit di kemudian hari tanpa benar-benar menuliskan rangkaian yang mendefinisikannya.

Kombinasi algoritma untuk mesin Turing dijelaskan oleh operasi pada mesin Turing.

1. Operasi komposisi.

Misalkan M 1 dan M 2 adalah mesin Turing yang memiliki alfabet eksternal yang sama A« (a 0 ,a 1 ,...,ap ). Mari kita nyatakan himpunan keadaannya masing-masing sebagai Q1 "(q 0,q 1,...,q n) dan Q2 "(q 0",q 1",...,q m").

Definisi.

Susunan mesin M 1 dan M 2 adalah mesin yang dilambangkan M=M 1 ×M 2, yang programnya mempunyai alfabet A, himpunan keadaan Q« (q 0,q 1,...,q n,q n+1,... ,q n+m) dan diperoleh dari program mesin M 1 dan M 2 sebagai berikut: dimanapun pada program mesin M 1, dimana terdapat “triple” dengan simbol q 1 ( keadaan akhir mesin M 1), diganti dengan simbol q 0" (keadaan awal mesin M 2); semua simbol lain dalam program mesin M 1 dan M 2 tetap tidak berubah (pada akhirnya, semua itu yang tersisa adalah menomori ulang semua status mesin M: (q 0 ,q 1" ,q 2 ,...,q n ,q 0 " ,q 2" ,...,q m" )).

Komposisi mulai "bekerja" seperti mesin M 1, tetapi dalam kasus ketika mesin M 1 harus berhenti, ia beralih ke program mesin M 2, karena penggantian q 1 dengan q 0". Jelas, operasi komposisi bersifat asosiatif, tetapi tidak komutatif.

Pengoperasiannya setara dengan pengoperasian berurutan mesin T1 dan T2.

Gambar tersebut menunjukkan komposisi mesin Turing yang mengimplementasikan operator superposisi untuk n=1 dan m=1.

Gambar 1.

Definisi.

Iterasi dari mesin Turing M akan disebut mesin

2. Operasi percabangan.

Misalkan M 1, M 2 dan M 3 adalah mesin Turing yang memiliki alfabet eksternal yang sama A« (a 0,a 1,...,ai,...,a j,...,ap) dan, dengan demikian, himpunan menyatakan : Q1 " (q 0 ,q 1 ,...,q n ), Q2 " (q 0 " ,q 1 " ,...,q m " ), Q3 " (q 0 " , q 1 " ,.. .,ql" ).

Definisi.

Hasil operasi percabangan pada mesin Turing M 1, M 2 dan M3 disebut dengan mesin Turing M, yang programnya diperoleh dari program mesin M 1, M 2 dan M 3 sebagai berikut : program dari mesin M1 ditulis, kemudian program mesin M 2 dan M 3 ditugaskan. Jika pada keadaan akhir q 1 mesin M1 simbol a i diamati, maka kendali dialihkan ke mesin M 2, yaitu. simbol q 1 diganti dengan simbol q 0" dan mesin M 2 mulai bekerja. Jika pada keadaan akhir q 1 mesin M 1 simbol a j diamati, maka kendali dialihkan ke mesin M 3, yaitu simbol q 1 diganti dengan simbol q 0" dan mesin M 3 mulai bekerja. Semua simbol lain dalam program mesin M 1 dan M 2 tetap tidak berubah. Mesin M menyelesaikan pekerjaannya dalam keadaan akhir q 1 (sebagai kesimpulan, mesin M tetap melakukan penomoran ulang ujung ke ujung dari keadaan mesin M).

Hasil operasi cabang pada mesin Turing M 1, M 2 dan M3 dilambangkan sebagai berikut:

Untuk mesin Turing dua huruf (mesin Turing dengan alfabet dua huruf), operasi cabang pada mesin Turing sembarang M1, M2 dan M3 dilambangkan sebagai berikut:

itu. jika ketika mesin M1 beroperasi dalam keadaan q 1, simbol a 0 diamati, maka kendali dialihkan ke mesin M2, jika tidak - ke mesin M3.

3. Operasi perulangan.

Misalkan M adalah mesin Turing dengan alfabet A« (a 0 ,a 1 ,...,ap ) dan himpunan keadaan Q« (q 0 ,q 1 ,...,q n ).

Definisi.

Hasil operasi perulangan akan disebut mesin Turing, dilambangkan dengan (i=0,2,3,...,n; j=0,1,2,...,p; s=0,2, 3,...,n)

programnya diperoleh dari program mesin M dengan mengganti simbol q 1 sebagai akibat dari perintah q i a j ®q 1 pada t r, rО(L,R,L), t=0,1,2,.. .p, dengan simbol q s .

2.4 Varian mesin Turing

Model mesin Turing dapat diperluas. Seseorang dapat mempertimbangkan mesin Turing dengan jumlah kaset yang berubah-ubah dan kaset multidimensi dengan berbagai batasan. Namun, semua mesin ini merupakan mesin Turing lengkap dan dimodelkan oleh mesin Turing biasa.

Sebagai contoh kesetaraan tersebut, pertimbangkan pengurangan MT apa pun menjadi MT yang beroperasi pada pita semi-tak terbatas.

Dalil: Untuk mesin Turing mana pun, terdapat mesin Turing setara yang berjalan pada pita semi tak terbatas.

Bukti:

Mari kita perhatikan bukti Yu.G.Karpov. Bukti dari teorema ini bersifat konstruktif, yaitu, kami akan memberikan suatu algoritma yang dapat digunakan untuk membuat mesin Turing yang setara dengan properti yang dinyatakan untuk setiap mesin Turing. Pertama, kami memberi nomor secara acak pada sel-sel pita kerja MT, yaitu, kami menentukan lokasi informasi baru pada pita tersebut:

Gambar 1.

Kemudian kita memberi nomor ulang pada sel-sel tersebut, dan kita akan berasumsi bahwa simbol “*” tidak terdapat dalam kamus MT:

Gambar 1.

2.5 Komputabilitas dan decidabilitas Turing

Telah dibuktikan di atas bahwa kelas fungsi yang dapat dihitung menggunakan fungsi rekursif, mesin Turing, atau algoritma Markov normal adalah sama. Hal ini memungkinkan kita untuk mempertimbangkan konsep "algoritma komputasi" yang tidak berbeda dengan metode deskripsi. Perbedaan hanya terlihat pada penggunaan objek algoritmik. Jika untuk fungsi rekursif objeknya adalah angka dan fungsi numerik, dan proses perhitungannya ditentukan oleh operator superposisi, rekursi, minimisasi, dan iterasi, maka untuk mesin Turing objek tersebut adalah simbol alfabet memori eksternal dan internal, dan perhitungan proses ditentukan oleh protokol menggunakan keluar, transisi dan menggerakkan kepala. Untuk algoritma Markov normal, objek tersebut adalah kata-kata atau rangkaian simbol, dan proses perhitungannya ditentukan oleh aturan substitusi atau produk yang mengubah komposisi dan struktur rangkaian simbol asli ke hasil yang diinginkan.

Fungsi aritmatika (numerik) adalah fungsi yang rentang nilainya merupakan himpunan bagian dari himpunan N, dan domain definisinya adalah elemen dari himpunan N.

Untuk masalah algoritmik, situasi yang umum terjadi adalah ketika Anda perlu menemukan algoritma untuk menghitung fungsi numerik f(x 1, x 2, ..., x n), bergantung pada nilai integer dari argumen x 1, x 2 , ..., xn.

Kami menyebut suatu fungsi f:N n →N dapat dihitung jika ada algoritme yang memungkinkan himpunan nilai argumennya menghitung nilai fungsi (atau menunjukkan bahwa fungsi tersebut tidak ditentukan pada himpunan tertentu). Karena definisi fungsi yang dapat dihitung menggunakan konsep intuitif suatu algoritma, istilah “fungsi yang dapat dihitung secara intuitif” sering digunakan sebagai pengganti istilah “fungsi yang dapat dihitung”. Jadi, suatu permasalahan massa memiliki solusi jika fungsi aritmatika yang berhubungan dengan permasalahan tersebut dapat dihitung secara intuitif.

Suatu fungsi f(x 1 , x 2 , …, x n) disebut dapat dihitung secara efektif jika untuk nilai tertentu k 1 , k 2 , …, k n argumen seseorang dapat menemukan nilai fungsi f(k 1 , k 2 , …, k n) menggunakan beberapa prosedur mekanis (algoritma) yang ada.

Daripada memperjelas konsep suatu algoritma, kita dapat mempertimbangkan untuk memperjelas konsep “fungsi yang dapat dihitung”. Biasanya mereka melanjutkan sesuai dengan skema berikut:

1. Kelas fungsi yang didefinisikan secara tepat diperkenalkan.

2. Pastikan semua fungsi dari kelas ini dapat dihitung.

3. Menerima hipotesis (tesis) bahwa kelas fungsi yang dapat dihitung bertepatan dengan kelas fungsi yang diperkenalkan.

Suatu fungsi disebut dapat dihitung jika ada algoritma yang menghitungnya. “Komputabilitas” adalah salah satu konsep dasar teori algoritma, yang tidak berubah terhadap fungsi dan algoritma yang dihitung. Perbedaan antara fungsi yang dapat dihitung dan algoritme adalah perbedaan antara deskripsi fungsi dan cara fungsi tersebut menghitung nilainya dengan mempertimbangkan nilai argumen independen.

tesis Turing. Algoritme intuitif apa pun dapat diimplementasikan menggunakan beberapa mesin Turing.

Berdasarkan tesis Turing bahwa jika masalah algoritmik muncul, maka masalah tersebut harus diselesaikan berdasarkan konstruksi mesin Turing, yaitu konsep algoritma yang cukup formal. Selain itu, dalam masalah algoritmik kita sering berbicara bukan tentang membangun suatu algoritma, tetapi tentang kemampuan komputasi dari beberapa fungsi yang dibangun secara khusus.

Perlu dicatat bahwa dalam kasus ini cukup menggunakan alfabet (0,|), di mana 0 adalah karakter kosong. Misalnya, bilangan asli, termasuk 0, dikodekan dalam alfabet ini sebagai berikut: 0 - |; 1 - ||; 2 -

N - ||…| (n + 1 kali). Fungsi numerik parsial n-lokal f(x1, x2, ..., xn) disebut Turing computable jika ada mesin M yang menghitungnya dalam pengertian berikut: 1. Jika himpunan nilai argumen termasuk dalam domain definisi fungsi f, maka mesin M, mulai bekerja pada konfigurasi 0 |x1+1 0 |x2+1 ... 0 |xn q1 |, dimana |x = ||... | (x kali) , dan karakter paling kanan dirasakan, berhenti, berakhir pada konfigurasi 0|yq0 |, di mana y = f(x1, x2, …, xn). 2. Jika himpunan nilai argumen tidak termasuk dalam domain definisi fungsi f, maka mesin M, yang mulai bekerja pada konfigurasi awal, bekerja tanpa henti, yaitu tidak mencapai keadaan akhir. Mesin Turing adalah definisi formal yang tepat dari suatu algoritma. Dengan menggunakan konsep ini, seseorang dapat membuktikan solvabilitas atau tidak terpecahkannya masalah algoritmik. Jika suatu algoritma komputasi ditemukan untuk memecahkan suatu masalah yang termasuk dalam satu kelas masalah, maka masalah tersebut dikatakan sebagai masalah yang dapat dipecahkan secara algoritmik. Dengan kata lain, prasyarat untuk kemampuan komputasi atau efektivitas perhitungan adalah solvabilitas algoritmiknya. Dalam pengertian ini, konsep “decidability” juga merupakan konsep dasar dalam teori algoritma. Analisis terhadap tiga jenis model menunjukkan bahwa sifat dasar keleluasaan, determinisme, karakter massa, dan efektivitas tetap tidak berubah untuk berbagai metode deskripsi: Sifat keleluasaan: algoritme terdiri dari tindakan dasar individual yang dilakukan dalam langkah-langkah; kumpulan langkah-langkah dasar yang membentuk proses algoritmik terbatas dan dapat dihitung. Properti deterministik: setelah setiap langkah, instruksi yang tepat diberikan tentang bagaimana dan dalam urutan apa untuk melakukan langkah selanjutnya dari proses algoritmik. Properti massa: penggunaan suatu algoritma diperbolehkan untuk banyak objek algoritmik dari tipe tertentu dan kelas masalah tertentu. Properti efektivitas: menghentikan proses algoritmik adalah wajib setelah sejumlah langkah terbatas yang menunjukkan hasil yang diinginkan. Namun, tesis tersebut tidak dapat dibuktikan, karena konsep eksak komputasi Turing dihubungkan dengan konsep fungsi komputasi intuitif yang tidak presisi.

MASALAH PENERAPAN DIRI

Menurut definisi mesin Turing, ini adalah rangkap tiga T= , di mana A- alfabet, Q - keadaan internal mesin, Q- sebuah program yang membedakan satu mesin dari mesin lainnya. Dalam kasus umum (untuk semua mesin), programnya mungkin terlihat, misalnya, seperti ini:

P: q saya A sebuah j A ® q r A sebagai A S t A , a = 1, 2, …, k , Di mana S 1- R, S 2-L, S 3- C . (*)

Dalam hal ini, kita dapat berasumsi bahwa ada beberapa alfabet yang umum SEBUAH 0 Dan pertanyaan 0, di mana karakter ditulis A Dan Q untuk semua mesin Turing. Lalu simbol-simbolnya q saya A, sebuah j A, q r A, sebagai A, S t A adalah simbol huruf SEBUAH 0 Dan pertanyaan 0.

Pendekatan ini memungkinkan penomoran semua mesin Turing, yaitu, setiap mesin diberi nomor (kode) tertentu yang unik untuk mesin ini, yang dapat membedakannya dari mesin lain. Di sini kita akan mempertimbangkan salah satu metode penomoran.

Penomoran Godelian pada mesin Turing. Membiarkan hal 1 , hal 2 , hal 3 , ... - barisan bilangan prima yang disusun menaik, misalnya 2, 3, 5, 7, 11, 13, ...

Nomor mesin turing dengan program (*) nomor yang dipanggil

n(T) = .

Contoh

Mesin yang mengimplementasikan suatu fungsi S(X)= x + 1 , memiliki program dalam alfabet {0,  } . Jumlah program ini, dengan mempertimbangkan fakta itu sebuah 0 = 0 , sebuah 1= | akan ada nomor :.

n(T)= 2 1 3 1 5 1 7 1 11 1 13 1 17 0 19 0 23 1 29 3 .

Jelasnya, tidak semua bilangan asli merupakan bilangan mesin Turing. Di sisi lain, jika N – nomor mesin tertentu, dalam huruf umum, maka programnya dapat dipulihkan secara unik dari nomor ini.

Mobil T, berlaku untuk kata tersebut N(T)(yaitu, ke kode nomor Anda sendiri), disebut dapat diterapkan sendiri .

Dimungkinkan untuk membuat mesin yang dapat diterapkan sendiri dan mesin yang tidak dapat diterapkan sendiri. Misalnya, mesin dari contoh yang diberikan dapat diterapkan sendiri. Mobil T, yang tidak memiliki simbol berhenti di bagian kanan program (di badan tabel), tidak berlaku untuk kata apa pun, dan oleh karena itu, untuk kata tersebut N(T).

Masalah penerapan diri adalah sebagai berikut: untuk menunjukkan algoritma yang, dengan mesin Turing mana pun, akan menentukan apakah algoritma tersebut dapat diterapkan sendiri atau tidak.

Menurut Tesis Turing, algoritma seperti itu harus dicari dalam bentuk mesin Turing. Mesin ini harus dapat diterapkan pada kode nomor semua mesin Turing, dan bergantung pada hasil pemrosesan kode mesin yang diuji, mesin tersebut akan memiliki konfigurasi akhir yang berbeda.

Misalnya saja mobil ini T diterapkan pada kode N(T * ) . Jika mobil T * dapat diterapkan sendiri, lalu konfigurasi mesin akhir T seperti A" q 0 | B", dan jika mobil T * tidak dapat diterapkan sendiri, maka konfigurasi akhir mesin T seperti A" q 0 0 B ". Di Sini a", B", a", B"- kata-kata.

Dalil Masalah penerapan mandiri secara algoritmik tidak dapat diselesaikan, artinya, tidak ada mesin Turing yang dapat memecahkan masalah ini dalam pengertian di atas.

Berdasarkan teorema bahwa tidak ada algoritma umum yang memecahkan masalah penerapan diri. Dalam kasus-kasus khusus tertentu, algoritma seperti itu mungkin ada.

Mari kita gunakan hasil teorema ini untuk membuktikan ketidakpastian masalah penerapan pada kata awal.

Masalah penerapan pada kata awal adalah sebagai berikut: membuat algoritma yang sesuai dengan mesin T dan kata X akan menginstal, mesin yang berlaku T omong-omong X atau tidak (jika tidak maka akan terjadi masalah penghentian).

Dalam kaitannya dengan mesin Turing, serupa dengan rumusan masalah self-application, permasalahan ini dirumuskan sebagai berikut: apakah mungkin untuk membuat sebuah mesin yang dapat diterapkan pada semua kata dalam bentuk N(T)0 X , Di mana T mesin sewenang-wenang, X – kata arbitrer, dan jika mesin T berlaku untuk kata tersebut X A" q 0 |B" , dan jika mobil T tidak berlaku untuk kata tersebut X , akan mengarah ke konfigurasi akhir A" q 0 0B" . Di Sini sebuah" , B" Dan a", B"- kata-kata sewenang-wenang.

Dalil Masalah penerapan pada kata awal tidak dapat diselesaikan secara algoritmik, yaitu tidak ada mesin Turing yang memecahkan masalah ini dalam pengertian di atas.

Sebagaimana dikemukakan di atas untuk masalah penerapan diri, langkah awal yang pertama adalah penomoran. Oleh karena itu, di bawah ini masalah ini secara konsisten dipertimbangkan dan diselesaikan untuk algoritme dan tiga jenis model algoritme utamanya.


Penomoran algoritma

Penomoran algoritma memainkan peran penting dalam penelitian dan analisisnya. Karena algoritme apa pun dapat ditentukan sebagai kata berhingga (diwakili sebagai rangkaian simbol berhingga dari beberapa alfabet), dan himpunan semua kata berhingga dalam alfabet berhingga dapat dihitung, maka himpunan semua algoritme juga dapat dihitung. Artinya adanya pemetaan satu-satu antara himpunan bilangan asli dan himpunan algoritma, yaitu kemampuan untuk memberikan suatu bilangan pada setiap algoritma.

Penomoran algoritma juga merupakan penomoran semua fungsi yang dapat dihitung secara algoritmik, dan fungsi apa pun dapat memiliki jumlah bilangan yang tidak terbatas.

Adanya penomoran memungkinkan Anda bekerja dengan algoritma dengan cara yang sama seperti angka. Penomoran sangat berguna dalam mempelajari algoritma yang bekerja dengan algoritma lain.

Misalkan ada masalah massa tertentu dengan himpunan benda awal X dan himpunan benda Y yang diinginkan. Agar penyelesaian masalah massa ada, elemen-elemen dari himpunan X dan Y harus berupa benda konstruktif. Oleh karena itu, unsur-unsur himpunan ini dapat diberi nomor dengan bilangan asli. Misalkan x∈ X adalah suatu objek awal, mari kita nyatakan bilangannya dengan n(x). Jika dalam soal massa benda asal x diperlukan benda yang diinginkan y∈ Y dengan bilangan n(y), maka kita definisikan fungsi aritmatika f: Nn →N sehingga f(n(x))=n (kamu).

Sebagai contoh membangun fungsi aritmatika untuk soal massa, mari kita perhatikan soal massa.

1. Jika diberikan suatu array ] bilangan asli, maka array tersebut dapat diberi bilangan asli 2x1, 3x2,... p(n)xn, dimana p(n) adalah bilangan prima ke-n. Mari kita ambil contoh array dengan panjang 5:

] 2x13x25x37x411x5.

Penomoran ini mendefinisikan fungsi aritmatika f (misalnya, f(73500) = f(22315372110) = 20315272113 = 4891425).

2. Setiap bilangan rasional mempunyai bilangan asli. Penomoran himpunan objek masalah yang diperlukan adalah hal yang sepele:

(“ya”, “tidak”) a (1, 0). Untuk soal massa tertentu, Anda dapat membuat fungsi aritmatika dari satu argumen menggunakan teknik dari contoh sebelumnya, atau Anda dapat mempertimbangkan fungsi dari tiga argumen (tiga bilangan elemen dari rangkap tiga aslinya).

3. Penomoran teks program dapat dilakukan sebagai berikut: program apa pun dapat dianggap mencatat angka dalam sistem bilangan 256-ary (jika karakter tabel ASCII digunakan untuk mencatat program).

Transisi dari masalah massa ke fungsi aritmatika memungkinkan kita mereduksi pertanyaan tentang keberadaan solusi masalah massa menjadi pertanyaan tentang adanya cara efektif untuk menghitung nilai fungsi aritmatika dari argumennya ( argumen).

Kumpulan angka yang diberi nomor

Dalam teori algoritma, suatu teknik telah tersebar luas yang memungkinkan seseorang untuk mereduksi studi fungsi beberapa variabel menjadi studi fungsi satu variabel. Hal ini didasarkan pada penomoran himpunan bilangan sehingga terdapat korespondensi bijektif antara himpunan bilangan dan bilangannya, dan fungsi yang menentukan bilangannya dari himpunan bilangan dan himpunan bilangan itu sendiri dari bilangan tersebut umumnya bersifat rekursif. Misalnya, untuk fungsi yang memuat dua variabel bebas (x, y), pemetaan h(x, y) bisa seperti ini:

Gambar 1.

Misalkan pasangan (x, y) membentuk himpunan terurut sebagian N(2). Jika diberikan h(x, y) = n, maka terdapat pemetaan invers: x = h -1 1 (n) dan y= h -1 2 (n), yaitu h(h -1 1 (n), h -1 2 (n)) = n. Ini memungkinkan Anda menghitung bilangan n untuk pasangan apa pun (x, y) dan, sebaliknya, menggunakan bilangan n untuk menghitung nilai x dan y:

Dengan menggunakan aturan ini, Anda dapat menghitung penomoran tripel h 2 (x, y, z) = h(h(x, y), z) = n dan, sebaliknya, dengan banyaknya tripel - nilai dari x, kamu, z. Misalnya, jika h 2 (x, y, z) = n, maka z= h -1 2 (n), y= h -1 2 (h -1 1 (n)), x= h -1 1 ( h -1 1 (n)), h 2 (x, y, z) = h(h(h -1 1 (h -1 1 (n)), h -1 2 (h -1 1 (n)) ) , jam -1 2 (n)). Tripel (x, y, z) membentuk himpunan terurut sebagian N(3). Demikian pula, untuk sejumlah angka yang berubah-ubah, kita memiliki:

h n-1 (x1, x2,…, xn)=h(h…h(h(x1, x2), x3)… x n-1), xn). Jika h n-1 (x1, x2,…, xn)=m, maka xn = h -1 2 (m), x n-1 =h -1 2 (h -1 1 (m)), ... ..................................., x2 = h -1 2 (h -1 1 (. .. h -1 1 (m)...)), x1 = h -1 2 (h (...h (m)...)).

Memiliki penomoran himpunan dari himpunan N (1) , N (2) ,..., N (i) ,..., N(n, dimana N (i) adalah himpunan dari himpunan (i) bilangan, adalah mungkin untuk membuat penomoran gabungan dari himpunan sembarang bilangan M = N (1) N (2) ... N (i) .. N(n) , di mana M N. Untuk sembarang n N kita mempunyai h(x1, x2,..., xn )= h(h n −1 (x1,x2,..., xn), n −1).

Jika h(x ,1x ,2..., x)n = m, maka h n−1 (x ,1x ,2..., x)n = h -1 1 (m), n= h -1 2 (m)+1. Dengan menggunakan rumus di atas, Anda dapat mengembalikan nilai x1, x2,…, xn.


Informasi terkait.


Definisi, pengoperasian dan metode penentuan mesin Turing

Mesin Turing dipahami sebagai mesin hipotetis (abstrak) tertentu yang terdiri dari bagian-bagian berikut (Gbr. 3.1.)

1) pita tak terbatas di kedua arah, dibagi menjadi sel-sel, yang masing-masing hanya dapat menulis satu karakter alfabet, serta karakter kosong l;

2) perangkat kontrol (kepala kerja), yang pada waktu tertentu dapat berada di salah satu keadaan dari himpunan. Di setiap negara bagian, kepala ditempatkan di seberang sel dan dapat membaca (meninjau) atau menulis huruf dari alfabet ke dalamnya A.


Beras. 3.1. Mesin turing

Fungsi MT terdiri dari rangkaian langkah-langkah dasar (siklus). Setiap langkah melakukan tindakan berikut:

1. kepala pekerja membaca (mengulas) simbol;

2. tergantung pada keadaannya dan simbol yang dipantau, kepala menghasilkan simbol dan menuliskannya ke sel yang dipantau (mungkin =) ;

3. kepala bergerak satu sel ke kanan (R), kiri (kiri) atau tetap diam (E);

4. Kepala masuk ke keadaan internal yang lain. (mungkin =).

Keadaan tersebut disebut awal dan akhir. Saat memasuki keadaan akhir, mesin berhenti.

Keadaan lengkap MT disebut konfigurasi . Ini adalah distribusi huruf di antara sel-sel pita, keadaan kepala yang bekerja dan sel yang dipantau. Konfigurasi bijaksana T ditulis dalam bentuk: , dimana subword di sebelah kiri sel yang dipantau, apakah huruf pada sel yang dipantau, adalah subword di sebelah kanan.

Konfigurasi awal dan konfigurasi akhir disebut standar.

Ada 3 cara untuk menggambarkan pengoperasian MT:

Sistem komando formulir

Tabel fungsional;

Grafik (diagram) transisi.

Mari kita lihat dengan contoh.

Contoh 1. Buatlah MT yang mengimplementasikan penggabungan dua kata dalam alfabet. Kata-kata pada rekaman itu dipisahkan dengan tanda *. Konfigurasi awal adalah standar.

Sistem perintah MT terlihat seperti:

Dalam keadaan tersebut, kepala bergerak ke kanan hingga simbol kosong.

Karakter paling kanan terhapus.

Tanda bintang akan terhapus jika kata pertama kosong.

Kata sebelah kanan digeser karakter demi karakter ke kiri sebanyak satu posisi.

Transisi ke konfigurasi akhir standar.

Tabel fungsi

A B * aku
-
-
-
-

Tanda hubung pada tabel berarti simbol l tidak dapat ditemukan di negara bagian.



a/aL b/bL
Diagram transisi terlihat seperti:
a/aR b/bR */*R

Konfigurasi akhir standar.

Perhitungan fungsi kamus pada MT akan kita pahami sebagai berikut. Biarkan kata a ditulis pada kaset pada konfigurasi awal. Jika nilainya ditentukan, maka sejumlah langkah (siklus) yang terbatas, mesin harus menuju ke konfigurasi akhir, di mana kata tersebut ditulis pada pita. Jika tidak, MT akan bekerja tanpa batas waktu.

Dengan menggunakan MT, Anda dapat mendeskripsikan kinerja operasi aritmatika pada bilangan. Dalam hal ini, angka-angka disajikan pada pita sebagai kata-kata dalam alfabet yang terdiri dari angka-angka dari beberapa sistem angka, dan dipisahkan oleh tanda khusus yang tidak termasuk dalam alfabet ini, misalnya *. Sistem yang paling umum digunakan adalah unary, terdiri dari satu simbol –1. Angka X pada pita itu ditulis dengan kata (atau disingkat) sesuai abjad SEBUAH=(1).

Fungsi numerik dapat dihitung dengan benar (atau hanya dapat dihitung Turing) jika terdapat MT yang memetakan konfigurasi ke konfigurasi ketika = kamu, atau berjalan tanpa batas waktu jika tidak ditentukan.

Contoh 2. Operasi penjumlahan dua angka dalam kode unary.

Konfigurasi awal:

Konfigurasi akhir: mis. penjumlahan sebenarnya bertujuan untuk menetapkan nomor B ke nomor tersebut A. Untuk melakukan ini, angka 1 pertama dihapus dan * diganti dengan 1.

Berikut gambaran MT dalam bentuk tabel fungsional:

* aku
-
-
-

Metode deskripsi MT di atas secara praktis hanya dapat digunakan untuk algoritma sederhana, karena untuk yang rumit, uraiannya menjadi terlalu rumit. Demikian pula, mendeskripsikan fungsi rekursif hanya menggunakan fungsi paling sederhana dan operator superposisi, rekursi primitif, dan minimalisasi akan sangat rumit. Oleh karena itu, rekursif primitif atau parsial suatu fungsi dibuktikan dengan menggunakan fungsi lain yang telah dibuktikan rekursif primitif atau parsialnya.

Demikian pula, mesin Turing untuk algoritma kompleks dapat dibangun menggunakan MTs yang ada. Konstruksi ini disebut komposisi MT.

Mari kita uraikan 4 metode utama komposisi MT:

Komposisi berurutan (superposisi);

komposisi paralel;

Percabangan

Komposisi berurutan mesin dan fungsi kamus komputasi dan dalam alfabet A, disebut mobil T, yang menghitung fungsinya. Komposisi berurutannya digambarkan sebagai berikut:


dan ditunjuk.

Komposisi sekuensial biasanya digunakan untuk menggambarkan bagian linear dari suatu algoritma.

Bukti teorema tentang kemungkinan membuat mesin T, yang merupakan komposisi berurutan dari dua mesin sembarang dan dilakukan dengan mengidentifikasi keadaan akhir dengan keadaan awal.

Contoh 3. Buatlah algoritma perkalian 2*X dalam kode unary menggunakan mesin fotokopi yang menerjemahkan kata a menjadi kata a*a dan mesin penjumlahan. MT yang diperlukan terlihat seperti ini:


Komposisi paralel mesin dan fungsi kamus komputasi dan alfabet A Dan DI DALAM karenanya, mesin itu dipanggil T, yang mengevaluasi fungsi kamus. Di sini tanda digunakan untuk memisahkan kata-kata dalam susunan MT paralel.


dan ditunjuk: .

Faktanya, susunan paralel dua MTs menerima masukan sebuah kata yang terdiri dari 2 kata dengan huruf berbeda dan keluaran sebuah kata yang terdiri dari 2 kata, yaitu. mewakili dua mesin yang bekerja secara bersamaan dan independen.

Untuk menerapkan komposisi paralel, digunakan mesin dengan sabuk dua lantai. Perlunya hal ini karena perhitungan dan waktu terjadi secara berurutan, dan perhitungan, misalnya pertama, mungkin memerlukan lebih banyak ruang daripada a dan merusak kata b. Mesin pita dua lantai bekerja seperti ini: kata b ditulis ke lantai dua dan dihapus di lantai pertama, dihitung di lantai pertama, dihitung di lantai dua, dan kemudian ditulis ulang ke lantai pertama, mungkin dengan pergeseran .

Untuk menerapkan komposisi paralel N mesin yang digunakan N- pita lantai.

Perintah MT dengan pita dua lantai ditulis sebagai berikut :, dimana huruf masing-masing ditulis pada lantai satu dan dua.

Contoh 4. Menerapkan komposisi paralel mesin dan fungsi penghitungan dalam sistem bilangan biner dan a+b dalam sistem unary.

Kata masukannya berbentuk: .

Mari kita uraikan pengoperasian MT dengan sistem perintah:

Pindah ke kanan ke kata b

Menulis ulang kata b ke lantai dua

Pindah ke kiri ke kata a

Menambahkan 1 ke angka X.

Pindah ke kanan ke kata b.

Sensus b ke lantai 1 dengan penambahan angka secara bersamaan A Dan B.T sesuai. Perintah dalam kurung kurawal ditambahkan ke sistem perintah

Keadaan akhir dari keseluruhan MT.

Perlu dicatat bahwa dalam semua kasus, di awal algoritme, perlu untuk memasukkan pemeriksaan data sumber untuk nilai khusus (paling sering 0); kegagalan untuk memenuhi persyaratan ini dapat menyebabkan perulangan.

Komposisi MT dapat digunakan untuk membangun algoritma yang kompleks. Timbul pertanyaan: apakah suatu algoritma dapat diimplementasikan sebagai komposisi MT? Jawaban atas pertanyaan ini diberikan oleh tesis Turing , analog dengan tesis Church: setiap algoritma dapat diimplementasikan menggunakan mesin Turing dan sebaliknya, setiap proses yang diimplementasikan oleh mesin Turing adalah sebuah algoritma.

Tesis Turing bukanlah teorema, karena tidak mungkin dibuktikan itu mengandung konsep informal " algoritma" Namun, praktik matematika bertahun-tahun merupakan konfirmasi yang dapat diandalkan untuk tesis ini: selama 50 tahun, tidak ada algoritma yang ditemukan dalam pengertian intuitif yang tidak dapat diimplementasikan menggunakan mesin Turing.

Tujuan pekerjaan: memperoleh keterampilan praktis dalam menulis algoritma menggunakan komposisi mesin Turing.

Informasi teoritis

Metode deskripsi MT di atas secara praktis hanya dapat digunakan untuk algoritma sederhana, jika tidak, deskripsinya menjadi terlalu rumit. Mesin turing untuk algoritma kompleks dapat dibangun menggunakan MTs dasar yang sudah ada, dan konstruksi ini disebut komposisi MT.

Mari kita uraikan 4 metode utama komposisi MT:

Komposisi berurutan (superposisi);

komposisi paralel;

Percabangan

1. Komposisi berurutan mesin Turing

Komposisi berurutan atau superposisi Mesin Turing dan

Dan
dalam alfabet A, itu disebut mobil M, menghitung fungsinya
.

Komposisi berurutannya digambarkan sebagai berikut:

dan ditunjuk
atau
.

2. Komposisi paralel mesin Turing

Komposisi paralel mobil
Dan
, menghitung fungsi kamus
Dan
dalam huruf A Dan DI DALAM, karenanya, mesin itu dipanggil M, yang mengevaluasi fungsi kamus. Ini tandanya digunakan untuk memisahkan kata-kata dalam komposisi MT paralel.

Komposisi paralel MT
Dan
digambarkan sebagai berikut:

dan ditunjuk:
.

Faktanya, susunan paralel dua MTs menerima input sebuah kata yang terdiri dari 2 kata dengan huruf berbeda, dan mengeluarkan sebuah kata yang juga terdiri dari 2 kata, yaitu. mewakili dua mesin yang bekerja secara bersamaan dan independen. Untuk menerapkan komposisi paralel, digunakan mesin dengan sabuk dua lantai.

Mesin sabuk bertingkat bekerja sebagai berikut:

1) kata ditulis ulang di lantai dua rekaman itu dan dihapus di lantai pertama,

2) dihitung
di lantai pertama,

3) dihitung
Di lantai dua

4)
ditulis ulang ke lantai pertama, mungkin dengan shift.

Perintah MT dengan double-decker tape ditulis sebagai berikut:

,

Di mana
– surat yang ditulis masing-masing di lantai satu dan dua. Mari kita tunjukkan panjang kata
, masing-masing,
.

Mari kita tunjukkan pengoperasian mesin Turing dengan pita dua lantai. Secara umum, panjang kata
Dan
tidak bertepatan satu sama lain, tetapi untuk kesederhanaan gambaran kami berasumsi bahwa keduanya sama. Kemudian pelaksanaan poin 1)-4) pada MT dengan pita dua lantai dilakukan dengan cara sebagai berikut:

Untuk menerapkan komposisi paralel N Mesin turing digunakan N pita lantai.

3. Percabangan atau transisi bersyarat dalam komposisi mesin Turing

Jika mesin Turing diberikan
Dan
, menghitung fungsi kamus
Dan
, dan mobil
, yang mengevaluasi beberapa predikat P() dengan restorasi (yaitu tanpa menghapus kata ), kemudian mesin Turing dapat dibangun untuk mengimplementasikan percabangan
, menghitung fungsinya:

Percabangan mesin Turing pada diagram komposisi digambarkan sebagai berikut:

dan ditunjuk
, Di Sini
- hasil pengoperasian mesin
, mengambil nilai “1” jika predikatnya P()= BENAR dan “0” jika predikatnya P()= PALSU,
– mesin Turing yang mengimplementasikan penyalinan kata masukan
.

4 . Siklus dalam komposisi mesin Turing

Siklus secara komposisi, MT dilaksanakan dengan prinsip yang sama seperti percabangan.

" Selamat tinggal P()= BENAR, memenuhi
»,

Di mana – berita dalam rekaman sebelum eksekusi pertama
dan setelah eksekusi berikutnya .

Untuk menggambarkan siklus tersebut, kami memperkenalkan beberapa notasi, misalkan:

– mesin Turing yang mengimplementasikan penghitungan predikat P() ;

–MT, yang mengimplementasikan penyalinan kata masukan
;

–MT, dieksekusi dalam satu lingkaran dan implementasi
;

–MT, dieksekusi saat keluar dari loop dan mengimplementasikan
.

Kemudian, komposisi siklik atau siklus mesin Turing dapat digambarkan sebagai berikut:

Pemrograman dengan Komposisi Mesin Turing :

1) konstruksi diagram blok algoritma kompleks dengan tingkat detail sedemikian rupa sehingga bloknya sesuai dengan MTs dasar;

2) pembangunan MTs dasar yang menerapkan balok sederhana;

3) menggabungkan MTs SD menjadi suatu komposisi MT.

Contoh. Membangun komposisi MT yang mengimplementasikan
.

–Mesin Turing, yang mengimplementasikan penyalinan kata masukan;

–MT, yang mengimplementasikan fungsi pengaturan konstanta nol;

–MT, predikat komputasi dengan restorasi
;

– MT yang mengimplementasikan fungsi seleksi -argumen itu dari argumen;

–MT, mengimplementasikan fungsi reduksi argumen dengan 1 dalam kode unary (menghapus karakter paling kiri);

– MT, yang melakukan penjumlahan dua angka dalam kode unary.

Perlu dicatat bahwa bagaimanapun juga, perlu untuk memeriksa kebenaran data masukan pada awal eksekusi algoritma (misalnya, persamaan argumen dengan 0 selama pembagian).

Gambar 1.6

Notasi berikut digunakan pada Gambar 1.6:

T 1, T 2 - Mesin Turing;

ST 1, ST 2 - sistem perintah mesin T 1 dan T 2, masing-masing;

x - informasi awal untuk mesin T 1;

T 1 (x) - hasil pengoperasian mesin T 1;

T 2 (T 1 (x)) - hasil pengoperasian mesin T 2.

Sebagai contoh, perhatikan komposisi dua mesin, yang pertama melakukan operasi penyalinan, dan yang kedua melakukan operasi penambahan angka dalam kode unary. Diagram kombinasi mesin dan contoh pita beserta hasil yang diperoleh ditunjukkan pada Gambar 1.7.


Gambar 1.7

Komposisi yang ditunjukkan pada Gambar 1.7 memungkinkan Anda melakukan operasi penggandaan suatu bilangan menggunakan mesin penyalin dan penjumlahan yang sudah dikenal. Jadi, setelah menyusun algoritma untuk mesin Turing untuk menyelesaikan serangkaian operasi tertentu (misalnya, operasi aritmatika), komposisi mesin Turing kemudian dapat disusun untuk memecahkan masalah yang lebih kompleks. Dalam hal ini, pengembangan algoritma umum direduksi menjadi kompilasi dari operasi-operasi yang algoritma eksekusinya pada mesin Turing sudah diketahui. Pendekatan ini mirip dengan penggunaan prosedur dan fungsi dalam pemrograman.

Namun, penggunaan komposisi mesin mengandaikan bahwa algoritma untuk melakukan operasi dasar diketahui, dari mana algoritma umum disusun. Oleh karena itu, ketika memecahkan masalah yang sewenang-wenang, pendekatan ini tidak mengecualikan kebutuhan untuk menyusun algoritma baru dan, karenanya, mengembangkan mesin Turing dengan unit kontrol yang berbeda. Dimungkinkan untuk mengimplementasikan algoritma apa pun tanpa mengubah struktur unit kontrol menggunakan mesin Turing universal.



1.2.2.Mesin Turing Universal

Jika beberapa mesin Turing diberikan (yaitu, abjad masukan, sinyal keluaran, dan status, posisi awal kepala dan status awal mesin diketahui, serta tabel pengoperasian mesin dan pita dengan informasi awal ), maka semua transformasi informasi dapat dilakukan secara manual selangkah demi selangkah, sesuai dengan tujuan mesin ini. Faktanya, dalam hal ini dilakukan simulasi mesin Turing.

Saat menganalisis operasi yang dilakukan saat memodelkan mesin Turing, dapat ditentukan bahwa pemodelan dilakukan dengan mengulangi tindakan berikut pada setiap langkah:

ÄMembaca karakter dari sel tape dimana kepala berada.

ÄCari perintah di tabel operasi mesin. Pencarian dilakukan berdasarkan keadaan mesin saat ini dan nilai simbol yang dibaca.

ÄMemilih simbol dari perintah yang harus ditulis ke kaset dan merekamnya.

ÄPilih simbol gerakan kepala dari perintah dan gerakkan.

ÄMemilih status mesin baru dari perintah dan mengubah status saat ini ke status baru. Ini diikuti dengan melanjutkan ke langkah berikutnya dan mengulangi langkah-langkah ini.

ST
S.U.

Gambar 1.8

Sifat dari tindakan dasar ini sedemikian rupa sehingga semuanya dapat dilakukan dengan menggunakan mesin Turing lain, yang akan mensimulasikan pengoperasian mesin aslinya. Intisari pemodelan dijelaskan pada Gambar 1.8.

Jika mesin T memiliki sistem perintah ST dan memproses rekaman informasi X, maka operasinya dapat disimulasikan oleh mesin U lain yang memiliki sistem perintah SU sendiri. Untuk mensimulasikan input mesin U, Anda tidak hanya perlu mengirimkan rekaman dengan informasi X , tetapi juga sistem komando (meja kerja) ST. Sistem perintah ini dapat direkam pada kaset yang sama dengan informasi aslinya.



Gambar 1.9

Fitur penting dari mesin simulasi adalah bahwa sistem perintahnya SU (dan, karenanya, struktur unit kontrol) tidak bergantung pada algoritma operasi mesin simulasi T. Mesin Turing yang dapat mensimulasikan pengoperasian mesin Turing lainnya mesin disebut universal. Varian struktur mesin Turing universal (UMT) ditunjukkan pada Gambar 1.9.

Rekaman UMT dibagi menjadi tiga zona: zona data, zona mode, dan zona perintah.

Zona data berisi informasi awal yang harus diproses oleh mesin Turing yang disimulasikan. Di zona yang sama, hasil operasi UMT dicatat.

Zona mode mencatat keadaan saat ini Q t dan simbol input saat ini X t, yang dibaca dari sel zona data dalam siklus tertentu.

Zona perintah berisi sistem perintah dari mesin yang disimulasikan. Perintah-perintah tersebut disusun menjadi beberapa kelompok. Kelompok pertama mencakup perintah yang dimulai dengan simbol Q 0, kelompok kedua - dengan simbol Q 1, dst. Dalam setiap grup, perintah diurutkan berdasarkan nilai simbol X t . Dengan demikian, perintah-perintah pada rekaman itu ditempatkan sebagaimana adanya di tabel operasi mesin yang disimulasikan.

Membaca informasi dari rekaman dan menulis ke rekaman itu dilakukan dengan menggunakan tiga kepala: G d - kepala data, G r - kepala mode, G k - kepala perintah. Setiap kepala dapat bergerak di sepanjang zona sabuknya sendiri.

Sebelum UMT mulai beroperasi, informasi yang relevan harus dicatat di setiap zona rekaman. Kepala harus dipasang di atas simbol kiri di setiap zona.

Pengoperasian UMT terjadi dalam siklus, di setiap siklus eksekusi satu perintah dari mesin yang disimulasikan disimulasikan. Grafik operasi UMT ditunjukkan pada Gambar 1.10.


Gambar 1.10

Notasi berikut digunakan pada Gambar 1.10:

Q G ke P (G ke L, G r P, G r L, G d P, G d L) - menggerakkan salah satu kepala

kanan atau kiri;

Q (G k), (G d), (G r) - informasi yang dibaca oleh salah satu kepala;

Q (G k) à (G r) - membaca data dengan perintah kepala dan menulis data ini

ditransfer menggunakan mode kepala ke zona mode rekaman;

Q a adalah variabel bantu yang mengambil nilai 1, es-

apakah karakter yang dibaca oleh kepala Гк dan Гр bertepatan;

Q in adalah variabel bantu yang mengambil nilai 1, es-

apakah simbol keadaan saat ini (Q t) dan akhir (Q z).

Q p - sinyal yang mengambil nilai 1 jika perintah mengarah kapan

gerakan ke kiri melampaui batas zona komando;

Dalam setiap siklus pengoperasian UMT dilakukan langkah-langkah sebagai berikut:

kamu mencari zona perintah;

kamu mencari tim di zona tersebut;

u simulasi eksekusi perintah.

Pencarian zona perintah dimulai dengan membandingkan keadaan saat ini Q t dari zona mode dengan keadaan Q i yang tercatat pada awal perintah pertama di zona perintah. Jika keadaan ini tidak sama, maka kepala perintah berpindah ke awal perintah berikutnya, yang mana lima langkah kepala dilakukan ke kanan (status U 0 - U 4). Jika simbol Q t dan Q i cocok, kepala perintah berada di awal perintah pertama dari zona yang diinginkan. Selanjutnya, pencarian dimulai untuk perintah yang sesuai dengan simbol Q t dan X t dari zona mode. Untuk melakukan ini, kepala mode ditempatkan di atas simbol X t dari zona mode, dan kepala perintah ditempatkan di atas simbol X i pada perintah saat ini.

Mencari perintah di suatu zona mirip dengan mencari zona perintah. Dalam hal ini, kepala perintah berpindah ke kanan lima langkah (menyatakan U 5 - U 9) hingga karakter X t dan X i dibandingkan.

Eksekusi perintah (status U 10 - U 17) dimulai dengan memindahkan kepala perintah satu langkah ke kanan, setelah itu simbol Y t ​​​​yang dibaca dari perintah yang ditemukan ditulis ke zona data menggunakan kepala data alih-alih simbol yang dibaca sebelumnya X t . Setelah langkah selanjutnya dari perintah head ke kanan, simbol pergerakan data head (Y d) dibaca dari perintah yang ditemukan dan head data dipindahkan sesuai dengan simbol tersebut (R, L). Di bawahnya adalah simbol yang diproses selanjutnya (X t +1), yang menggunakan kepala mode, ditulis ke zona mode untuk mempersiapkan siklus berikutnya. Selanjutnya, kepala perintah dan mode dipasang sehingga status berikutnya Q t +1 (menyatakan

kamu 14, kamu 15). Di negara bagian U 16, kondisi untuk mengakhiri solusi dicentang. Jika simbol keadaan selanjutnya tidak sesuai dengan simbol keadaan akhir mesin yang dimodelkan (Q z), maka penyelesaian masalah tidak selesai, dan pada keadaan U 17 kepala perintah berpindah ke posisi semula ( ke awal perintah pertama dari zona pertama). Dalam hal ini UMT siap untuk melakukan siklus berikutnya yaitu untuk mensimulasikan eksekusi perintah berikutnya.

Ketika simbol Q t dan Q z bertepatan, penyelesaian masalah berakhir dan UMT memasuki keadaan akhir U z .

Ketika menganalisis proses pengoperasian UMT, kita dapat menarik kesimpulan penting bahwa algoritma pengoperasian UMT tidak bergantung pada masalah spesifik apa yang dipecahkan oleh mesin Turing yang disimulasikan. Oleh karena itu, struktur unit kendali UMT tidak berubah ketika memodelkan mesin yang berbeda, mis. tidak tergantung pada tugas yang diselesaikan. Itulah sebabnya UMT benar-benar mesin universal yang dengannya Anda dapat menjalankan algoritma apa pun tanpa mengubah strukturnya.

Karena proses pemilihan perintah UMT berikutnya dan pelaksanaannya dikaitkan dengan enumerasi sel pita secara berurutan, penyelesaian masalah pada UMT memerlukan terlalu banyak waktu. Oleh karena itu, mesin Turing, termasuk mesin universal, tidak pernah dibuat, tetapi tidak sulit untuk melihat analoginya dengan komputer modern. Dengan demikian, sistem perintah di zona perintah UMT mirip dengan program mesin, dengan sepasang simbol Q t dan X t berperan sebagai alamat perintah mesin.

Namun, mesin Turing adalah sarana yang cukup mudah untuk mendeskripsikan algoritma dan banyak digunakan dalam teori algoritma.

Pertanyaan kontrol

ü1.Apa komposisi mesin Turing?

ü2.Untuk apa komposisi mesin Turing digunakan?

ü3.Dapatkah satu mesin Turing mensimulasikan pengoperasian mesin lain?

Turing?

ü4. Tindakan apa yang dilakukan pada kasus ini?

ü5.Jelaskan struktur mesin Turing universal?

ü6.Informasi apa yang terekam di area pita UMT?

ü7.Apa sistem perintah mesin Turing?

ü8.Langkah-langkah apa saja yang terdapat dalam siklus kerja UMT?

ü9.Jelaskan isi langkah “mencari zona perintah”.

ü10.Jelaskan isi langkah “eksekusi perintah”.

ü11.Fitur apa yang digunakan dalam proses pemrosesan informasi

Diagramnya terlihat seperti grafik:

Nilai tabel mesin

Tabel 1

  1. Beberapa operasi pada mesin Turing

Pengoperasian mesin Turing sepenuhnya ditentukan oleh data masukan dan sistem perintah. Namun, untuk memahami bagaimana mesin tertentu memecahkan suatu masalah, biasanya diperlukan penjelasan yang bermakna tentang jenis yang diberikan untuk mesin tersebut. . Penjelasan ini seringkali dapat dibuat lebih formal dan tepat dengan menggunakan diagram blok dan beberapa operasi mesin Turing. Ingatlah bahwa komposisi fungsi
Dan
disebut fungsi
, yang diperoleh saat menggunakan ke hasil perhitungan . Untuk
ditentukan dalam hal ini , itu perlu dan cukup untuk ditentukan pada
, A ditentukan pada .

Teorema 1. Jika
Dan
Jika Turing dapat dihitung, maka komposisinya
juga dapat dihitung oleh Turing.

Membiarkan - mesin yang menghitung , A - mesin yang menghitung , dan himpunan negara bagiannya masing-masing
Dan
.

Mari kita membuat diagram transisi mobil dari diagram Dan sebagai berikut: kami mengidentifikasi titik awal
diagram mesin dengan simpul terminal
diagram mesin (untuk sistem perintah ini setara dengan fakta bahwa sistem perintah ditugaskan ke sistem komando dan untuk ini
dalam tim ubah dengan
). Kami mendapatkan diagram dengan (
) menyatakan. Keadaan awal kami akan mengumumkan
dan terakhir
. Untuk kesederhanaan notasi kita akan berasumsi Dan fungsi numerik dari satu variabel.

Membiarkan
bertekad. Kemudian
Dan

. Mobil akan melalui urutan konfigurasi yang sama dengan perbedaan yang bukan
itu akan berlangsung di
. Konfigurasi ini merupakan konfigurasi awal standar untuk mesin , Itu sebabnya
. Tapi karena semua tim terkandung di dalamnya , Itu

dan maka dari itu
. Jika
tidak didefinisikan, kalau begitu atau tidak berhenti dan karena itu mobil tidak mau berhenti. Jadi mobilnya menghitung
.

Mesin itu dibuat kita akan menyebutnya komposisi mesin Dan dan menunjuk
(atau ()), dan juga digambarkan dalam diagram blok:

  1. Komposisi mesin Turing

Membiarkan ,,- tiga mesin Turing dengan alfabet eksternal yang sama
, dengan abjad status internal
,
,
dan program ,
,
masing-masing.

Komposisi
mobil Dan ditelepon mobilT , yang programnya merupakan gabungan dari himpunan
Dan

, Di mana
menunjukkan serangkaian perintah yang diterima dari menggantikan semua pada .

  1. Bercabang dari mesin Turing

Mesin percabangan,,Oleh
, secara simbolis

ditelepon mobilT , program yang diperoleh sebagai berikut: dari tim dikecualikan
Dan
Untuk
, himpunan yang dihasilkan akan dipanggil ; Kemudian.

  1. Mesin Turing Universal

Sistem perintah mesin Turing dapat diartikan sebagai deskripsi pengoperasian perangkat tertentu dan sebagai program, yaitu. serangkaian instruksi yang jelas-jelas mengarah pada suatu hasil. Saat menganalisis contoh, interpretasi kedua diterima secara tidak sengaja, yaitu. kami bertindak sebagai mekanisme yang dapat mereproduksi kerja mesin Turing mana pun. Keyakinan bahwa setiap orang akan melakukan ini dengan cara yang sama (jika mereka tidak membuat kesalahan, yang juga diasumsikan ketika mesin Turing beroperasi) pada dasarnya adalah keyakinan akan adanya algoritma untuk mereproduksi operasi Turing. mesin sesuai dengan program yang diberikan, mis. sistem komando. Memang tidak sulit untuk memberikan gambaran verbal tentang algoritma semacam itu. Tindakan utamanya diulangi secara siklis dan terdiri dari yang berikut: "Untuk konfigurasi saat ini
temukan perintah dengan sisi kiri di sistem perintah
. Jika sisi kanan perintah ini berbentuk
, lalu ganti pada konfigurasi saat ini
pada
(ternyata konfigurasinya
); jika sisi kanan memiliki bentuk
, lalu ganti
pada
. Deskripsi verbal dari algoritma mungkin tidak akurat dan perlu diformalkan. Karena mesin Turing saat ini sedang dibahas sebagai formalisasi konsep suatu algoritma, wajar jika menimbulkan masalah dalam membangun mesin Turing yang mengimplementasikan algoritma reproduksi yang dijelaskan. Untuk mesin Turing yang menghitung fungsi satu variabel, rumusan masalahnya adalah sebagai berikut: membangun mesin Turing , menghitung fungsi dua variabel dan sedemikian rupa untuk mesin apa pun dengan sistem komando
, Jika
ditentukan (yaitu jika mesin berhenti pada data awal ) Dan
tidak berhenti jika
tidak berhenti. Kami akan memanggil mesin mana pun yang memiliki properti ini mesin Turing universal. Tidak sulit untuk menggeneralisasi rumusan ini pada sejumlah variabel.

Masalah pertama yang muncul ketika membangun mesin universal , disebabkan oleh fakta bahwa seperti mesin Turing lainnya, harus memiliki alfabet tetap
dan sekumpulan negara bagian yang tetap
. Oleh karena itu, sistem komando
dan data awal mesin arbitrer Anda tidak bisa begitu saja memindahkannya ke sabuk mesin (selalu ada mobil , huruf
Dan
yang lebih unggul dalam hal kekuasaan
Dan
atau tidak bertepatan dengan itu).

Solusinya adalah dengan memiliki karakter dari
Dan
dikodekan oleh simbol-simbol dalam alfabet
. Membiarkan
,
. Kami akan selalu berasumsi demikian
Dan
(kedua simbol ini selalu ada dalam alfabet mesin apa pun yang bekerja dengan angka). Mari kita tunjukkan kodenya Dan melalui
Dan
dan mendefinisikannya sebagai
; untuk orang lain
; untuk keadaan akhir


, Jika

. Kode
untuk mobil ini selalu memiliki panjang (format)
, dan kodenya
- memformat . Simbol ,
ayo masuk
, yaitu.
,
,
. Kode karakter , dibentuk oleh kode karakter yang membentuk kata ini, kami tunjukkan
. Demikianlah penyempurnaan akhir dari rumusan masalah mesin universal intinya adalah untuk mobil apa pun dan kata-kata alfabet
.

Keberadaan mesin Turing universal berarti sistem instruksi
mobil apa pun dapat diartikan dalam dua cara: baik sebagai deskripsi pengoperasian perangkat asli , atau sebagai program untuk mesin universal . Bagi seorang insinyur modern yang merancang sistem kendali, keadaan ini wajar. Dia tahu betul bahwa algoritma kontrol apa pun dapat diimplementasikan baik dalam perangkat keras - dengan membangun sirkuit yang sesuai, atau dalam perangkat lunak - dengan menulis program komputer kontrol universal.

Namun, penting untuk disadari bahwa gagasan perangkat algoritmik universal sama sekali tidak terkait dengan pengembangan sarana teknis modern untuk implementasinya (elektronik, fisika benda padat, dll.) dan bukan merupakan fakta teknis, melainkan fakta matematis. , dijelaskan dalam istilah matematika abstrak yang tidak bergantung pada sarana teknis, dan, terlebih lagi, didasarkan pada sejumlah kecil konsep awal yang sangat dasar. Merupakan ciri khas bahwa karya-karya mendasar tentang teori algoritma (khususnya karya Turing) muncul pada tahun 30-an, sebelum terciptanya komputer modern.

Penafsiran ganda ini pada tingkat abstrak mempertahankan pro dan kontra utama dari dua opsi implementasi teknik. Mobil tertentu bekerja lebih cepat; selain itu, perangkat kontrol mesin cukup rumit (yaitu jumlah negara bagian dan perintahnya banyak). Namun, nilainya konstan dan, setelah dibuat, cocok untuk mengimplementasikan algoritma berukuran besar. Yang diperlukan hanyalah pita perekat dalam jumlah besar, yang tentu saja dianggap lebih murah dan lebih sederhana daripada perangkat kontrol. Selain itu, saat mengubah algoritme, Anda tidak perlu membuat perangkat baru, Anda hanya perlu menulis program baru.