Documente Academic
Documente Profesional
Documente Cultură
Descriere informală
La origine, conceptul de mașină Turing reprezenta o persoană virtuală executând o procedură bine
definită, schimbând conținutul căsuțelor unui tablou infinit (vizualizat sub forma unei "benzi"
infinite), plasând în aceste căsuțe simboluri luate dintr-un ansamblu finit de simboluri. Pe de altă
parte, această persoană trebuie să memoreze "starea" în care se află sistemul (sistemul "persoană"
poate ocupa un număr finit de "stări"). Procedura poate fi exemplificată de o manieră foarte simplă
printr-o listă de instrucțiuni, de genul : dacă sunteți în starea 42 și dacă simbolul din căsuța pe care
o priviți este '0', atunci înlocuiți acest simbol printr-un '1', treceți în starea 17, și priviți căsuța
alăturată (dreapta sau stânga) .
O mașină Turing este echivalentă cu un automat cu stivă modificat prin relaxarea constrângerii de
last-in-first-out a stivei acestuia. (Interesant este că această relaxare aparent minoră permite
mașinii Turing să execute o largă varietate de calcule, astfel încât ea poate servi ca model pentru
capabilitățile computaționale ale tuturor software-urilor moderne.)
Mai exact, o mașină Turing constă din:
O bandă împărțită în celule aflate una lângă cealaltă. Fiecare celulă conține un simbol dintr-un
alfabet finit. Alfabetul conține un simbol special vid (notat aici cu '0') și unul sau mai multe alte
simboluri. Banda se presupune ca fiind extensibilă arbitrar la stânga și la dreapta, adică mașina
Turing are întotdeauna suficientă bandă pentru a-și efectua calculele. Celulele care nu au fost
scrise anterior se presupune că sunt ocupate cu simbolul vid.
Un cap care poate scrie și citi simboluri pe sau de pe bandă, și care se poate deplasa la stânga sau
la dreapta
Un registru de stare care stochează starea mașinii Turing. Numărul stărilor diferite este
întotdeauna finit și există o stare inițială cu care este inițializat registrul de stare.
O tabelă de acțiuni (sau funcție de tranziție) care spune mașinii ce simbol să scrie, cum să
deplaseze capul ('L' pentru stânga, și 'R' pentru dreapta) și care va fi noua sa stare, date fiind
simbolul citit de pe bandă și starea curentă. Dacă nu există intrare în tabela de acțiuni pentru
combinația curentă de simbol citit și stare a sistemului, atunci mașina se oprește.
De notat că toate componentele mașinii sunt finite; doar cantitatea nelimitată de bandă îi dă
acesteia un volum nelimitat de spațiu.
Definiție formală
Mașină Turing cu o singură bandă
O mașină Turing este de obicei definită ca un 6-tuplu M = (Q,Γ,s,b,F,δ), unde
{\displaystyle b\in \Gamma } este simbolul vid (singurul simbol care are voie să existe pe
bandă în număr nelimitat și singurul care poate fi pe bandă în orice moment)
{\displaystyle \delta :Q\times \Gamma \rightarrow Q\times \Gamma \times \{L,R\}} este o
funcție parțială numită funcția de tranziție, unde L este deplasarea la stânga și R este deplasarea la
dreapta.
Definițiile din literatura de specialitate diferă uneori, pentru a face demonstrațiile mai ușoare sau
mai clare, dar aceasta se face întotdeauna de așa natură încât mașina să-și păstreze puterea
computațională. De exemplu, schimbarea mulțimii {L,R} în {L,R,S}, unde S permite mașinii să stea
pe aceeași celulă a benzii în loc să se deplaseze la stânga sau la dreapta, nu mărește puterea
computațională a mașinii.
Mașină Turing cu k benzi
O mașină Turing cu k benzi poate fi și ea descrisă ca un 6-tuplu M = (Q,Γ,s,b,F,δ), unde
{\displaystyle Q} este o mulțime finită de stări
este o funcție parțială numită funcția de tranziție, unde L este deplasarea la stânga, R este
deplasarea la dreapta, iar S înseamnă nici o deplasare.
De notat că o mașină Turing cu k benzi nu este mai puternică decât o mașină Turing standard.