Exemple de mașini Turing - studopediya

Luați în considerare mașina Turing, pune în aplicare și să asigure formarea funcțiilor recursive.

Exemplul 1. Construct mașină Turing care calculează caracteristica.

Lăsați alfabetul unei mașini Turing este format din două caractere, în cazul în care 0 - un caracter nul și 1 - un simbol al celulelor ocupate. In acest alfabet orice întreg k nenegativ este reprezentat k + 1 simboluri 1, celule adiacente înregistrate în bandă. În acest caz, numărul 0 este scris atât de ... 010 ...

Definim procedura de calcul a valorilor acestei funcții mașină Turing. Având în vedere că rezultatul ar trebui să reprezinte o serie de celule ocupate, în cazul în care - numărul de celule ocupate de argumentul x. atunci calculul se va organiza după cum urmează. Celula ocupată de argumentul x. simbol în loc de o singură înregistrare simbol gol 0. In fiecare caz, simbolul 1 este înregistrat în două celule care reprezintă rezultatul. Aceasta are ca rezultat formarea unei matrice de celule dispuse spre dreapta argumentului x celule matrice ocupate. printr-o celulă goală. Când în loc de toate celulele ocupate de argumentul x. va fi doar celule goale, noua matrice de celule ocupate îndepărtate o celulă cu simbolul 1.

Programul de lucru al unei mașini Turing care calculează funcția. Acesta este după cum urmează:

- a îndepărtat un argument celulă ocupată.

- citește celula ocupată de un argument.

- Găsit împărțirea celulă goală.

- citiți rezultatul celulei ocupate.

- umplut cu un rezultat de celule goale.

- a doua celulă umplut rezultat.

- văzute în ordinea inversă a celulei ocupate de rezultat.

- găsit celula goală divide.

- S-au găsit a doua celulă goală.

- citește celula de separare din nou goală.

- eliminat un caracter ocupat. Sfârșit.

- S-au găsit argumentul de celule ocupat.

- văzute în celula revers ocupat de un argument.

- S-au găsit o celulă goală înainte de celula ocupată de argumentul.

Exemplul 2. construi o mașină Turing care poate fi aplicată tuturor cuvintelor din alfabet a, b> și transformându-le în cuvinte. Verificați funcționarea mașinii de construit peste câteva cuvinte.

Decizie. Vom descrie algoritmul care rezolvă această problemă. În primul rând, folosind comenzi. să treacă înainte de sfârșitul unui cuvânt, fără a schimba caracterul său. Un semn de la sfârșitul discursului va citi caracterul în stat.

Cu echipe. . Ne mutăm la stânga, fără a schimba ultimul caracter.

Dacă sunteți în măsură să citească un simbol al unei. Înseamnă. este necesar pentru a șterge toate cuvintele caractere. cu excepția ultima. Acest lucru se poate face folosind comenzile. . .

În cazul în care caracterul este citit în stat. Prin urmare, toate lucrările efectuate, și este timpul să se oprească cu comanda.

Dacă sunteți în măsură să citească simbolul b. Înseamnă. este necesar ca toate simbolurile, cu excepția. înlocui literele b. Acest lucru se face folosind comanda. . .

Dacă sunteți în măsură să citească simbolul. Prin urmare, toate caracterele cuvântului originale sunt trecute, puteți trece la o stare cu comanda.

Verificați funcționarea unei mașini Turing construit pe cuvântul avva:

Cuvântul bbaaa simbol penultimul - o. și toate literele cuvântului originale, cu excepția ultimei, înlocuite cu simboluri goale.

Astfel, verificarea se face, rezultatul unei mașini Turing îndeplinește cerințele care au fost stabilite în problema.

În exemplele prezentate în realizability Turing mașini de bază proprietăți algoritm: determinismul discretă, de masă și de impact.

Pentru a putea construi mașini complexe Turing, defini conceptul de compoziție mașini Turing.

Compoziție mașini Turing M1 și M2 se numește o mașină Turing M, care inițial funcționează ca o mașină Turing M1. în cazul în care starea finală Q0 este schimbat la starea inițială a mașinii M2 Turing. Și, mai departe, mașina M funcționează ca o mașină Turing M2.

mașini Turing compoziție semnifica: M = M1 M2 °.

Deci, dacă doriți să construiască o mașină Turing care calculează funcția ƒ (x, y) = x + y + 1, este suficient pentru a executa compoziția mașini Turing. Lăsați mașină M1 calculează funcția ƒ (x) = x + 1, iar aparatul M2 calculează o funcție ƒ (x + y). Apoi, mașina M = M1 M2 ° se va calcula, în mod evident, ƒ funcția (x, y) = x + y + 1. Pentru a face acest lucru, programul care descrie aparatul M1. conectați comenzile mașinii M2. M1 starea mașinii va menționa, de asemenea, aparatul M. starea finală Mașini q0 M1 q2 ar trebui să fie înlocuită cu o condiție care corespunde cu starea inițială a mașinii M2. apoi renumerota stările mașinii M2. modificările la stat la stat q1 q2 mașini q2 M. își schimbă starea la q3 de stat, și așa mai departe.

Există mai multe versiuni de mașini Turing, printre care sunt mașini universale și multiple. Pentru mașinile versatile caracterizate prin utilizarea simultană a dreapta și stânga polulent, una dintre care toate comenzile sunt scrise pentru a calcula o funcție dată, iar pe de altă parte toată configurația actuală.

Pentru mașinile Multitape caracterizate prin prezența mai multor benzi și mai multe capete, care vă permite să organizați funcționarea simultană a protocolului pe toate benzile, făcându-l ușor de a organiza de calcul paralel complexe.

Funcții recursive și mașini Turing dau determinare indirectă a conceptului de algoritm: dacă este posibil, pentru a dovedi că o funcție este recursivă primitivă, sau poate construi o mașină Turing pentru a rezolva o anumită problemă, atunci această problemă poate fi rezolvată.

Pe de altă parte, în cazul în care se dovedește că soluția unei probleme nu poate fi obținută prin calcularea funcțiilor recursive primitive, și a demonstrat că nu poate fi construit de o mașină Turing pentru a rezolva această problemă, o astfel de problemă se numește algoritmic de nerezolvat.

Importanța dovada faptului că unele probleme este algoritmic nerezolvat, este faptul că cercetătorul nu va petrece timp și efort pentru a dezvolta un algoritm pentru rezolvarea acestei probleme într-un mod general.

articole similare