Sunteți pe pagina 1din 8

UNIVERSITATEA IOAN SLAVICI TIMIOARA Specializarea Inginerie

ISTORIE Maina Turing fundamentele inteligenei artificiale -

Sir Alan Mathison Turing, OBE (Order of the Britsh Empire), FRS (Fellow of the Royal Society) (n. 23 iunie 1912, Londra, Regatul Unit d. 7 iunie 1954, Wilmslow, Cheshire, Regatul Unit) a fost un matematician, logician, criptanalist i informatician britanic. Turing este adesea considerat a fi printele informaticii moderne. Cu maina Turing, el a adus o formalizare a conceptului de algoritm i calcul. n 1999, Time Magazine l-a numit pe Turing unul dintre cei mai importani 100 de oameni din secolul XX pentru rolul su n crearea calculatorului modern, afirmnd: Rmne faptul c oricine tasteaz la un calculator, oricine deschide o foaie de calcul sau un program de procesare a textului lucreaz pe o form de main Turing. n timpul celui de-al Doilea Razboi Mondial, Turing a lucrat pentru GC&CS (Government Code and Cypher Schoool) la Bletchley park, centrul britanic de criptanaliz i a condus pentru o perioad Hut 8, seciunea responsabil cu criptanaliza comunicaiilor navale germane. El a conceput i dezvoltat o serie de tehnici pentru spargerea codurilor germane, printre care i Bomba, o main electro-mecanic ce putea gsi combinaiile mainii de criptat germane, Enigma. ntre timp, cu testul Turing, a adus o contribuie semnificativ la dezbaterea privind inteligena artificial: dac va fi vreodat posibil s spunem c o main este contient i poate gndi. Ulterior, el a lucrat la Laboratorul Naional de Fizic, crend unul dintre primele proiecte de calculator cu program stocat, ACE, dei acesta nu a fost niciodat implementat ntr-o form complet. n 1948, s-a mutat la Universitatea Manchester unde a lucrat la Manchester Mark 1, unul dintre primele calculatoare adevrate din lume. Mainile Turing sunt nite mecanisme extrem de elementare de dispozitive de prelucrare a simbolurilor care n ciuda simplitii lor pot fi adaptate pentru a simula logica oricrui calculator ce poate fi construit. Modelele au fost descrise n 1936

Pagina 2 din 8

de ctre Alan Turing. Dei modelele erau proiectate iniial pentru a fi fezabile din punct de vedere tehnic, mainile Turing nu au fost gndite pentru a fi tehnologii practice de calcul, ci un experiment mental despre limitele calculului mecanic; astfel, ele nu a fost niciodat construite. Studiul proprietilor lor abstracte este util n informatic i teoria complexitii. Conjectura Church-Turing postuleaz c orice problem de calcul bazat pe o procedur algoritmic poate fi rezolvat de ctre o main Turing. Aceast "conjectur" nu are o formulare matematic, deoarece nu se bazeaz pe o definiie precis a conceptului de procedur algoritmic. n schimb, este posibil de a se defini o noiune de "sistem acceptabil de programare" i de a se demonstra c "puterea de calcul" a unui asemenea sistem este echivalent cu cea a unei maini Turing (se vorbete n acest caz de un limbaj de programare Turing-complet). O main Turing capabil de a simula orice alt main Turing se numete main Turing universal - utm (sau main universal). O definiie mai orientat matematic a fost introdus de Alonzo Church, ale crui lucrri din domeniul calculului lambda s-au mpletit cu cele ale lui Turing ntr-o teorie formal a calculului cunoscut sub numele de Conjectura Church-Turing. Aceasta postuleaz c orice problem de calcul bazat pe o procedur algoritmic poate fi rezolvat de ctre o main Turing.

Descriere informal
La origine, conceptul de main Turing reprezenta o persoan virtual executnd o procedur bine definit, schimbnd coninutul csuelor unui tablou infinit (vizualizat sub forma unei "benzi" infinite), plasnd n aceste csue 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 numr finit de "stri"). Procedura poate fi exemplificat de o manier foarte simpl printr-o list de instruciuni, de genul : dac suntei n starea 42 i dac simbolul din csua pe care o privii este '0', atunci nlocuii acest simbol printr-un '1', trecei n starea 17, i privii csua alturat (dreapta sau stnga) . O main Turing este echivalent cu un automat cu stiv modificat prin relaxarea constrngerii de last-in-first-out a stivei acestuia. (Interesant este c aceast relaxare aparent minor permite mainii Turing s execute o larg varietate de calcule, astfel nct ea poate servi ca model pentru capabilitile computaionale ale tuturor software-urilor moderne.)

Pagina 3 din 8

Mai exact, o main Turing const din: 1. O band mprit n celule aflate una lng cealalt. Fiecare celul conine un simbol dintr-un alfabet finit. Alfabetul conine un simbol special vid (notat aici cu '0') i unul sau mai multe alte simboluri. Banda se presupune ca fiind extensibil arbitrar la stnga i la dreapta, adic maina 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. 2. Un cap care poate scrie i citi simboluri pe sau de pe band, i care se poate deplasa la stnga sau la dreapta 3. Un registru de stare care stocheaz starea mainii Turing. Numrul strilor diferite este ntotdeauna finit i exist o stare iniial cu care este iniializat registrul de stare. 4. O tabel de aciuni (sau funcie de tranziie) care spune mainii ce simbol s scrie, cum s deplaseze capul ('L' pentru stnga, 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 aciuni pentru combinaia curent de simbol citit i stare a sistemului, atunci maina se oprete. De notat c toate componentele mainii sunt finite; doar cantitatea nelimitat de band i d acesteia un volum nelimitat de spaiu.

Definiie formal
Main Turing cu o singur band

O main Turing este de obicei definit ca un 6-tuplu M = (Q,,s,b,F,), unde


Pagina 4 din 8

este o mulime finit de stri este alfabetul finit al simbolurilor de pe band

este starea iniial este simbolul vid (singurul simbol care are voie s existe pe band n numr nelimitat i singurul care poate fi pe band n orice moment)

este mulimea strilor finale (sau acceptante)

este o funcie parial numit funcia de tranziie, unde L este deplasarea la stnga i R este deplasarea la dreapta. Definiiile din literatura de specialitate difer uneori, pentru a face demonstraiile mai uoare sau mai clare, dar aceasta se face ntotdeauna de aa natur nct maina s-i pstreze puterea computaional. De exemplu, schimbarea mulimii {L,R} n {L,R,S}, unde S permite mainii s stea pe aceeai celul a benzii n loc s se deplaseze la stnga sau la dreapta, nu mrete puterea computaional a mainii. Main Turing cu k benzi O main Turing cu k benzi poate fi i ea descris ca un 6-tuplu M = (Q,,s,b,F,), unde

este o mulime finit de stri este alfabetul finit al simbolurilor de pe band este starea iniial este simbolul vid este mulimea strilor finale (sau acceptante)

este o funcie parial numit funcia de tranziie, unde L este deplasarea la stnga, R este deplasarea la dreapta, iar S nseamn nici o deplasare. De notat c o main Turing cu k benzi nu este mai puternic dect o main Turing standard.

Maini Turing deterministe i nedeterministe


Dac tabela de aciuni are cel mult o intrare pentru fiecare combinaie simbolstare atunci maina este o main Turing determinist (MTD). Dac tabela de aciuni

Pagina 5 din 8

conine mai multe intrri pentru cel puin o combinaie simbol-stare atunci maina este o main Turing nedeterminist (MTND sau MTN). Cele dou sunt computaional echivalente, adic orice MTND se poate transforma ntr-o MTD (i invers).

Maini Turing universale


Fiecare main Turing calculeaz o funcie parial calculabil din irurile de intrare peste alfabetul ei. Din acest punct de vedere, se comport exact ca un calculator cu un program fixat. Totui, putem codifica tabela de aciuni a oricrei maini Turing ntr-un ir. Astfel, putem construi o main Turing care ateapt pe banda ei un ir care descrie o tabel de aciuni urmat de un ir care descrie banda de intrare, i apoi calculeaz banda pe care maina Turing astfel codificat ar calcula-o. Turing a descris o astfel de construcie n lucrarea sa din 1936. n 1947, Turing a spus: Se poate arta c o singur main special de acest tip poate fi fcut s efectueze lucrul tuturor celorlalte. De fapt ar putea fi fcut s funcioneze ca model al oricrei alte maini. Maina special poate fi numit main universal. Cu aceast codificare a tabelei de aciuni ca ir de simboluri, devine n principiu posibil ca mainile Turing s rspund la ntrebri despre comportamentul altor maini Turing. Majoritatea acestor ntrebri, ns, sunt nedecidabile, adic funcia n chestiune nu poate fi calculat mecanic. De exemplu, problema determinrii dac o anume main Turing se oprete sau nu la o anumit intrare, sau la orice intrare, problem cunoscut i sub numele de problema opririi, s-a demonstrat c este, n general, nedecidabil n lucrarea original a lui Turing. Teorema lui Rice arat c orice ntrebare netrivial despre comportamentul sau ieirea unei maini Turing este nedecidabil. Dac n definiia "mainii Turing universale" includem orice main Turing care simuleaz un model computaional Turing-complet, i nu doar mainile Turing care simuleaz direct alte maini Turing, o main Turing universal poate fi relativ simpl, folosind doar cteva stri i cteva simboluri. De exemplu, e nevoie doar 2 stri, deoarece se cunoate o main Turing universal de 218 (adic 2 stri, 18 simboluri). De ceva timp, cele mai mici maini Turing universale cunoscute, care simulau un model computaional numit sistem de etichetare, avea urmtoarele numere de stri i simboluri : 218, 310, 46, 55, 74, 103, 222. (De exemplu, vezi Minsky Cap 14.8.1 p. 277 pentru o descriere detaliat a unei maini 47 bazate pe sistemul de etichetare.)

Pagina 6 din 8

Wolfram descrie n cartea sa, A New Kind of Science, o main Turing universal cu 2 states i doar 5 simboluri, care emuleaz un automat celular de asemenea considerat universal, fcnd aceasta cea mai simpl main Turing universal cunoscut. O main Turing universal este Turing-complet. Poate calcula orice funcie recursiv, decide orice limbaj recursiv, i accepta orice limbaj recursiv enumerabil. Conform conjecturii Church-Turing, problemele rezolvabile de o main Turing universal sunt exact acele probleme rezolvabile de un algoritm sau de o metod efectiv de calcul, pentru orice definiie rezonabil a acestor termeni. O versiune abstract a mainii Turing universale este funcia universal, o funcie calculabil care poate fi utilizat pentru a calcula orice alt funcie calculabil. Teorema utm demonstreaz existena acestei funcii.

Pagina 7 din 8

Bibliografie
http://www-groups.dcs.st-and.ac.uk/history/Biographies/Turing.html http://en.wikipedia.org/wiki/Alan_Turing http://en.wikipedia.org/wiki/Turing_machine http://mathworld.wolfram.com/TuringMachine.html http://aturingmachine.com/ http://www.alanturing.net/turing_archive/pages/reference%20articles/what%20is%2 0a%20turing%20machine.html

Pagina 8 din 8