Professional Documents
Culture Documents
Tjuringova Mašina
Tjuringova Mašina
1.1 Uvod
Digitalni racunar se na apstraktnom nivou obicno prikazuje kao cjelina sastavljena od
procesora, memorije i ulazno-izlaznih ureaja. Procesor iz memorije pribavlja naredbe
i podatke nad kojima se vri obrada u skladu sa znacenjem naredbi a dobijeni rezultati
se vracaju u memoriju. Podaci koji ce biti obraeni se, preko ulazno-izlaznih ureaja,
unose u memoriju odnosno iz memorije se preuzimaju rezultati obrade i prikazuju na
odgovarajuci nacin. Komunikacija djelova racunara se obavlja preko magistrala.
Tjuringova maina je preteca ovakvog modela racunara, pri cemu su neka svojstva ideali-
zovana. To se odnosi na memoriju za koju se pretpostavlja da je potencijalno beskonacna.
Preciznije, na pocetku izvravanja Tjuringove maine zauzet je samo konacan broj mem-
orijskih registara, a isto vazi i u svakom koraku izracunavanja. Ne postoji ogranicenje
koliki je taj konacan broj registara. U svakom koraku izracunavanja moguce je i zahti-
jevati novi, do tada neiskoriteni memorijski registar i svaki takav zahtjev se ispunjava.
Sa druge strane, Tjuringova maina je restrikcija koncepta savremenog racunara u smislu
operacija koje je u stanju izvravati a koje su elementarne. Zanimljivo je da su te op-
eracije ipak dovoljne za opisivanje proizvoljnih algoritama. Njihova prednost u odnosu
na bogatije programske jezike je upravo u jednostavnosti koja olakava analizu.
1.2 Alan Tjuring
Alan Mathison Turing je bio engleski matematicar, logicar, kriptoanaliticar i kompjuter-
ski naucnik. Ostvari je veliki uticaj na kompjutersku nauku time to je dao formal-
izaciju koncepata "algoritma" i "izracunavanja" putem Tjuringove maine, koja je odi-
grala znacajnu ulogu u kreiranju modernih kompjutera. Za Tjuringa se smatra da je
otac kompjuterske nauke i vjetacke inteligencije. U zickom smislu, imao je mnoge
karakteristike koje upucuju da je imao Aspergerov sindrom
1
.
Tokom drugog svjetskog rata Tjuring je radio za vladinu kolu za kriptograju (GCCS)
u Bletchley Park, Britanskom centru za deifrovanje. Vremenom je postao voa sekcije
koja je bila odgovorna za razbijanje ifara njemacke mornarice. Razvio je niz tehnika za
razbijanje njemackih ifara, ukljucujuci i metod Bombe, elektromehanicke maine koja je
mogla pronaci postavke maine Enigma.
Nakon rata je radio za National Physical Laboratory gdje je kreirao jedan od prvih diza-
jna racunara sa pohranjenim programom, ACE. Godine 1948 se doao u Max Newmans
Computing Laboratory na Manchester University gdje je pomagao u razvoju Manchester
kompjutera i gdje se zainteresovao za matematicku biologiju. Napisao je clanak o hemi-
jskoj osnovi morfogeneze i predvidio oscilatorne hemijske reakcije kao to su reakcija
Bjelousov-
F
k1
; q
k1
; e
k1
I
k
F
k
; q
k
; e
k
(F
m1
; q
m1
; e
m1
)
I
m
(F
m
; q
m
; e
m
), za q
m
= q
m
\k = 1; m1
q
k
,= q
z
e
0
= 0; (\i < 0) (F
0
(i) = 0)
(n > 0) (k
1
; :::; k
n
) (e
0
_ k
1
< k
2
< ::: < k
n
) tako da vazi
- (\i; e
0
_ i _ k
1
) (F
0
(i) = 1; F
0
(k
1
+ 1) = 0)
- (\i; k
1
+ 1 _ i _ k
2
) (F
0
(i) = 1; F
0
(k
2
+ 1) = 0)
- ...
- (\i; ) (k
n1
+ 1 _ i _ k
n
) (F
0
(i) = 1)
- (\i; k
n
< i) (F
0
(i) = 0)
F
m
(e
m
) = 1, i (\i < e
m
) (F
m
(i) = 0)
k _ e
m
:
- (\i; e
m
_ i _ k) (F
m
(i) = 1)
- (\j > k) (F
m
(j) = 0)
Varijante Tjuringove maine su :
TM sa bogatijim alfabetom
TM sa vie zavrnih stanja (u kojem svako od njih simbolizuje rezultat rjeavanja
problema)
TM sa lijevo ogranicenom trakom
TM sa vie traka i glavom za svaku od njih
TM sa jednom trakom i vie glava nad njima
5
TM sa 2D trakom koja je beskonacna po obje dimenzije
TM koje dozvoljavaju u istoj naredbi upis u celiju i pomjeranje glave
Nedeterministicke TM ( je relacija a ne funkcija tj. moze postojati vie naredbi
za isto stanje i sadrzaj celije)
Nijedna od ovih varijanti ne proiruje klasu Tjuring izracunljivih funkcija (mogu izracu-
nati samo ono to moze i osnovna verzija TM)
Izracunljiva funkcija je samo ona koja je Tjuring izracunljiva.
1.6 Zadaci
Zadatak. Neka je na traci data samo jedna rijec sastavljena od jedinica (a sve ostale celije
sadrze znak 0); glava je nad krajnjim lijevim znakom. Napisati program koji dopisuje
dva znaka 1 sa desne strane rijeci a zatim se glava vraca ulijevo na pocetak rijeci i maina
staje.
Rjeenje. Osnovni koncept rjeavanja je da se na svakom koraku ispituje tekuci znak.
Ako je to 1 glava se pomice udesno; ako je to 0 znak se mijenja u 1 i glava ponovo pomice
udesno, znak se mijenja u 1; zatim se vri pomjeranje ulijevo sve dok se ne naie na 0;
tada se glava pomjeri jedno mjesto udesno i program zavrava.
Naredba Akcija
q
0
1 R q
0
glava se pomjera udesno na kraj rijeci
q
0
0 1 q
1
na mjestu prve 0 se upisuje 1 i prelazi se u stanje q
1
q
1
1 R q
2
glava se pomjera udesno
q
2
0 1 q
3
na mjestu druge 0 se upisuje 1 i prelazi u stanje q
3
q
3
1 L q
3
glava se pomjera ulijevo sve dok ima znakova 1
q
3
0 R q
z
na prvoj 0 glava ide udesno i zaustavlja se
Table 1: Primjer Tjuringove masine
Niz koji opisuje izvravanje ovog programa je dat u nastavku.
q
0
: 011000:::
q
0
: 011000:::
q
0
: 011000:::
q
1
: 011100:::
q
2
: 011100:::
q
3
: 011110:::
q
3
: 011110:::
q
3
: 011110:::
q
3
: 011110:::
q
3
: 011110:::
q
z
: 011110:::
U svakom redu je navedeno stanje a podvucena je pozicija koja odgovara tom stanju.
Ovo se kompaktnije opisuje tabelom.
6
Stanje 1 0
q
0
q
0
1 R q
0
q
0
0 1 q
1
q
1
q
1
1 R q
2
q
2
q
2
0 1 q
3
q
3
q
3
1 L q
3
q
3
0 R q
z
Table 2: Tabelarni opis Tjuringove masine
Zadatak. Napraviti program za Tjuringovu mainu koja izracunava funkciju f (x) = 0.
Rjeenje. Zadatak se rjeava tako da se u svakom koraku znak 1 mijenja sa 0. Kraj se
detektuje tako da se ova zamjena izvrava u okviru jednog stanja i da se u okviru istog
stanja ispituje da li je tekuci znak 0.
Stanje 1 0
q
0
q
0
1 0 q
1
q
0
0 0 q
z
q
1
q
1
0 R q
0
Table 3: Racunanje f(x)
Zadatak. Napraviti program za Tjuringovu mainu koja racuna nasljednika prirodnog
broja n.
Rjeenje. Nasljednik prirodnog broja je broj koji je za 1 veci od datog broja. Zadatak se
rjeava tako da se glava pomakne jedno mjesto ulijevo, upie znak 1 i zavri posao.
Stanje 1 0
q
0
q
0
1 L q
1
q
1
q
1
0 1 q
z
Table 4: Nasljednik prirodnog broja
Zadatak. Napraviti program za Tjuringovu mainu koja racuna vrijednost funkcije
f (n) = 2n.
Rjeenje. Zadatak se rjeava tako da se tekuci znak 1 zamijeni sa 0, prou svi znaci 1 u
toj rijeci, proe i jedan znak 0 iza te rijeci, prou sve jedinice ako ih eventualno ima iza
te nule, dodaju dva znaka 1, glava vrati preko svih jedinica ulijevo, zatim pree preko
znaka 0 koji razdvaja dvije rijeci, prou sve jedinice pocetne rijeci i doe do prvog znaka
1 te rijeci. Kriterij zaustavljanja je da posljednje stanje, zaduzeno za detekciju jedinica
u prvoj rijeci, detektuje znak 0.
Svaka celija se ovdje cita po sljedecem redu : novi simbol na tekucoj lokaciji (0,1), akcija
(L, R) i novo stanje.
7
Stanje 1 0
q
0
0 R q
1
0 R q
z
q
1
1 R q
1
0 R q
2
q
2
1 R q
2
1 R q
3
q
3
1 L q
4
q
4
1 L q
4
0 L q
5
q
5
1 L q
5
0 R q
0
Table 5: Mnozenje sa 2
Ilustracija zadatka za mnozenje sa 2
U narednim primjerima Tjuringova maina je data estorkom Q; ; ; ; q
0
; F gdje je:
Q : konacan skup stanja
: skup ulaznih simbola (alfabet)
: skup simbola na traci ukljucujuci i simbol # za prazno
: tranzicijska funkcija : Q Q L; R
q
0
: inicijalno stanje
F : skup konacnih stanja
Zadatak. Zadata je Tjuringova maina
TM = (q
1
; q
2
; q
3
; 0; 1 ; 0; 1; # ; ; q
0
; q
z
)
Maina cita niz znakova i krajnji desni mijenja simbolom #.
Rjeenje. Dijagram za ovaj program je u nastavku.
8