Turingov stroj Obrada podataka: svrsishodna djelatnost koja ima za cilj da se iz raspoloživih podataka dobije tražena informacija Komponente: podatak algoritam izvršitelj
Podatak objekt u obradi Algoritam uputstvo ( recept ) koje opisuje transformaciju ulaznih podataka u traženi razultat Izvršitelj?
Algoritam postupci transformacije grupirani u korake algoritma Svojstva algoritma: Određenost Konačnost Širina primjene (područje uporabe)
Primjer: Euklidov algoritam rješava zadatke tipa: Za dana dva prirodna broja a, b trba naći njihovu najveću zajedničku mjeru. 1. korak: Promatrajte dva broja: a i b. Prijeđite na sljedeći korak; 2. korak: Usporedite brojeve a i b. Prijeđite na sljedeći korak; 3. korak: Ako su promatrani brojevi jednaki, svaki daje traženi rezultat obustavite postupak računanja. Ako brojevi nisu jednaki prijeđite na sljedeći korak; 4. korak: Ako je prvi promatrani broj manji od drugog, zamijenite im mjesta. Prijeđite na sljedeći korak; 5. korak: Oduzmite drugi broj od prvog i promatrajte taj drugi broj i ostatak. Prijeđite na korak 2.
Primjer: a = 28 b = 124 1. korak 2. korak 3. korak 4. korak: a = 124; b = 28 5. korak: 124 28 = 96, promatrajte 28 i 96 2. korak 3. korak 4. korak: a = 96; b = 28 5. korak: 96 28 = 68, promatrajte 28 i 68 2. korak 3. korak 4. korak: a = 68, b = 28 5. korak: 68 28 = 40
2. korak 2. korak 3. korak 3. korak 4. korak: a = 40, b = 28 4. korak: a = 8, b = 4 5. korak: 40 28 = 12 5. korak: 8 4 = 4 2. korak 2. korak 3. korak 3. korak: a = b = 4 ZAUSTAVI SE! 4. korak a = 28, b = 12 rezultat: nzm = 4 5. korak: 28 12 = 16 2. korak 3. korak 4. korak: a = 16, b = 12 5. korak: 16 12 = 4 2. korak 3. korak 4. korak 5. korak: 12 4 = 8
Određenost Euklidova algoritma: - osigurana je činjenicom da izvršitelj može izvoditi operacije zadane u pojedinim koracima algoritma i jednoznačno razaznavati koje od operacija treba izvesti u kojem koraku te kojim korakom mora započeti; Širina primjene: - proizvoljan par pozitivnih cijelih brojeva; Konačnost: - Euklidov algoritam definira postupak kojim se za bilo koji par pozitivnih cijelih brojeva dolazi do njihova najvećeg zajedničkog djelitelja;
Euklidov algoritam namijenjen izvršitelju - čovjeku Kako bi izgledao algoritam namijenjen stroju (računalu)?
Drugi pristup: Računanje Računanje je proces određivanja izlazne supstitucije, za zadanu određenu ulaznu supstituciju, koja se pokorava svim specifičnim svojstvima problema. (Garey & Johnson, 1979) izlazna supstitucija? ulazna supstitucija? specifična svojstva problema?
Primjer: Problem naprtnjače Zadano: i) Naprtnjača nosivosti (kapaciteta) C [kg]; ii) N objekata (predmeta) koje bi trebalo ponijeti; Svaki je predmet određen svojom težinom w k i vrijednošću v k ; k = 1, 2,..., N; Potrebno je naći udio F k svakog predmeta tako da: a) ne prenatrpate naprtnjaču; b) maksimizirate vrijednost koju nosite (Opaska: Predmeti se mogu rastaviti na dijelove čija je vrijednost proporcionalna njihovoj težini)
Parametri i varijable problema: C, N, w 1, v 1, F 1,..., w N, v N, F N Primjer ulazne supstitucije: C = 14 kg, N = 3, w 1 = 4 kg, v 1 = 30 $ w 2 = 6 kg, v 2 = 48 $ w 3 = 7 kg, v 3 = 50 $ Rješenje (izlazna supstitucija): U naprtnjaču stavljamo: Cijeli predmet 1 i cijeli predmet 2 4/7 predmeta 3 Ukupna vrijednost u naprtnjači: 106,57 $
Algoritam: 1. korak: Razvrstaj objekte na temelju omjera vrijednosti i težine (predmet 2 = 48/6 = 8 $/kg; predmet 1= 30/4 =7,5 $/kg; predmet 3 = 50/7 = 7,14 $/kg) 2. korak: Ponavljaj sve dok se naprtnjača ne prenatrpa: Iz skupa predmeta uzmi predmet s najvećim omjerom vrijednost/težina i smjesti ga cijelog u naprtnjaču. 3. korak: Izvadi iz naprtnjače posljednji predmet i razdijeli ga tako da upravo njegovi dijelovi popune naprtnajču.
Algoritam namijenjen čovjeku; Kako bi izgledao algoritam namijenjen stroju? -Računalo; - Inteligentni stroj s vidnom percepcijom i drugim senzorima (npr. težine, pritiska) opremljen mehaničkim hvataljkama, bazom znanja, strojem za zaključivanje i sučeljem za razumijevanje prirodnog jezika;
Specijalan slučaj: Izvršitelj Turingov stroj (A. M. Turing, On Computable Numbers, with an Application to the Entscheidungsproblem, Proc. of the London Math. Society, 2 nd Series, 42:pp.230-265, 1936.)
1912 (23 June): Birth, Paddington, London 1926-31: Sherborne School 1930: Death of friend Christopher Morcom 1931-34: Undergraduate at King's College, Cambridge University 1932-35: Quantum mechanics, probability, logic 1935: Elected fellow of King's College, Cambridge 1936: The Turing machine, computability, universal machine 1936-38: Princeton University. Ph.D. Logic, algebra, number theory 1938-39: Return to Cambridge. Introduced to German Enigma cipher machine 1939-40: The Bombe, machine for Enigma decryption 1939-42: Breaking of U-boat Enigma, saving battle of the Atlantic 1943-45: Chief Anglo-American crypto consultant. Electronic work. 1945: National Physical Laboratory, London 1946: Computer and software design leading the world. 1947-48: Programming, neural nets, and artificial intelligence 1948: Manchester University A. Turing (1912 1954) 1949: First serious mathematical use of a computer 1950: The Turing Test for machine intelligence 1951: Elected FRS. Non-linear theory of biological growth 1952: Arrested as a homosexual, loss of security clearance 1953-54: Unfinished work in biology and physics 1954 (7 June): Death (suicide) by cyanide poisoning, Wilmslow, Cheshire
Raščlanjivanje računskog postupka kod Turingovog stroja (TS) svedeno je do graničnih mogućnosti na jednostavne, elementarne operacije; Definicija TS iz teorije automata: TS = (Q, S, T, b, q 0, q f, δ)
Komponente Turingovog stroja: Vanjska memorija TS je s obje strane neograničena vrpca (traka) podijeljena na polja svako polje može sadržavati samo jedan znak. TS barata konačnim brojem znakova (simbola): s 1, s 2,..., s k koji oblikuju vanjsku abecedu stroja S = {s 1, s 2,..., s k } U skupu S nalazi se i prazni (pusti) simbol b: - upisivanjem praznog znaka u bilo koje polje vrpce briše se znak koji se tamo nalazio - izraz zapisan na vrpci predstavljen je konačnim nizom znakova vanjske abecede (različitih od praznog znaka)
Skup T = {t 1, t 2,... t T } skup simbola koji se pojavljuju na vrpci bez praznih simbola Rad Turingovog stroja: Na početku rada stroja na vrpci se nalazi zapisan početni izraz (početna, ulazna informacija); Rad stroja se odvija u taktovima (Odvijanjem taktova stroj početnu informaciju preoblikuje u međuinformaciju, itd.; na kraju svakog takta znaci zapisani na vrpci stroja oblikuju odgovarajuću međuinformaciju)
A početna informacija zapisana na vrpci na početku rada stroja Dva slučaja: 1. Nakon konačnog broja taktova stroj se zaustavlja dajući Stop-signal i pri tomu je na vrpci zapisana informacija B. Stroj je primjenjiv za početnu informaciju A i prerađuje je u informaciju ili rezultat B.
2. Stroj nikad ne staje i nikad ne daje Stop-signal. Stroj nije primjenjiv za početnu informaciju A.
Q = {q 0, q1, q 2,..., q Q-1 } skup unutarnjih stanja q 0 -početno stanje stroja q f -konačno stanje stroja Sustav elementarnih operacija i naredbi: u svakom taktu naredba propisuje samo zamjenu pojedinačnog znaka s i, upisanog u promatranom polju, nekim drugim znakom s j : - ako je j = i sadržaj se promatranog polja ne mijenja; - ako je s j = b sadržaj se promatranog polja briše. - ako je j i tada se s i zamijenjuje sa s j ;
Pri prijelazu s jednog takta na drugi adresa se promatranog polja može promijeniti najviše za jedinicu; Turingov stroj ima glavu za čitanje i pisanje (R/W head) njome stroj može promatrati ili lijevo susjedno polje ili desno susjedno polje na vrpci (ili pak isto polje kao u prethodnom taktu). Glava za čitanje ili pisanje može se u jednom taktu pomaknuti za najviše jedno polje (ulijevo ili udesno) u odnosu na trenutni položaj Tri standardne adresne naredbe: - D promatraj desno susjedno polje; - L promatraj lijevo susjedno polje; - ili N ostani na istom polju.
Obrada informacije u Turingovom stroju odvija se u logičkom bloku L koji se može nalaziti u nekom od konačnog broja unutarnjih stanja Q = {q 0, q 1, q 2,..., q Q-1 }. s i q n L s j N q l D ili L P = {N, D, L}
Ulazna dvojka: (s i, q n ) Izlazna trojka: (s j, p, q l ) p P Logički blok L ostvaruje funkciju koja svakoj dvojci na ulazu pridružuje izlaznu trojku. δ - logička funkcija stroja δ: S Q S P Q
Logička se funkcija stroja može prikazati tablicom koja se naziva funkcionalna shema TS q 1 q 2 q 3... q 4 D q 3 L q 1 D α... q 2 N α q 4 D q 3 N β... α q 1 D α q 2 D α q 4 N α... β............
Vanjska abeceda Unutarnja stanja trojka trojka Funkcionalna shema stroja
Turingov stroj: TS = (Q, S, T, b, q 0, q f, δ) Q skup unutarnjih stanja stroja; S skup simbola vanjske abecede; T = S / b; b pusti simbol; q 0 početno stanje stroja; q f konačno stanje stroja; δ - logička funkcija stroja
Shematski prikaz TS-a: Vanjska memorija I I I I I I * I I I I Glava za čitanje i pisanje S j S i L q n Q q N/D/L P Prema mehanizmu za pomak glave Polje P Logički blok stroja Polje za pohranu unutarnjeg stanja
Primjer 1: Zbrajanje Turingovim strojem Početno stanje: * q 0 Konačno (željeno) stanje: Zadatak: Napisati program za TS koji zbraja štapiće!
* q 0 Vanjska abeceda: S = {, *, b} Skup unutarnjih stanja: Q = {q 0, q 1, q 2, q f =!}
Rješenje: q 0 q 1 q 2 b q 2 Db q 1 L q 0 Db q 0 Db q 2 D q 1 N *!Nb q 1 L* q 2 D * b =
Analiza rješenja: Početno stanje: * q 0 Prvi takt: Promatrani štapić se briše i glava se pomiče udesno te stroj prelazi u stanje q 2 (, q 0 ) (q 2, D, b)
* q 2 Drugi takt: (, q 2 ) (q 2, D, ) * q 2
Treći takt: (, q 2 ) (q 2, D, ) Četvrti takt: (, q 2 ) (q 2, D, ) Peti takt: (, q 2 ) (q 2, D, )... 7. takt (*, q 2 ) (q 2, D, *)... 11.takt: (, q 2 ) (q 2, D, )
12. takt: (b, q 2 ) (q 1, N, ) 13. takt: (, q 1 ) (q 1, L, ) 14.takt: (, q 1 ) (q 1, L, ) 15.takt: (, q 1 ) (q 1, L, )... 18. takt: (*, q 1 ) (q 1, L, *)...
Definicija k-te konfiguracije Turingovog stroja: Slika vrpce s informacijom koja se na njoj nalazi u početku k-tog takta, pri čemu je ispod promatranog polja zapisan znak stanja koji ulazi u logički blok L u početku k-tog takta.
Ilustracija k-tih konfiguracija: * 1. konfiguracija q 0 * 2. konfiguracija q 2 * 3. konfiguracija q 2
* 12. konfiguracija q 2 * 13. konfiguracija q 1 * 24. konfiguracija q 1 * 25. konfiguracija q 0
Predzadnja konfiguracija: * q 0 Zadnja konfiguracija: q f
2. Primjer: Inkrementiranje broja predočenog u dekadskom brojevnom sustavu /n n + 1/: Zadan je dekadski zapisan broj n, treba naći dakadski zapis broja n+1 Vanjska abeceda: 0, 1, 2,..., 9, b Unutarnja stanja stroja: q 0 (početno i ujedno radno stanje) i q f konačno stanje stroja.
Rješenje: Funkcionalna shema stroja q 0 0 1 2 3 4 5 6 7 8 9???!N1!N2!N3!N4!N5!N6!N7!N8!N9 q 0 L0????
3 2 9 9 q 0 0!N1 q 0 1!N2 2!N3 3 2 9 0 3!N4 4!N5 q 0 5!N6 3 2 0 0 6!N7 7!N8 q 0 8!N9 3 3 0 0 9 q 0 L0! b!n1
Fizička izvedba Turingovog stroja (Diplomski rad D. Krleža, FER, 2000.)
Glava za čitanje i pisanje: kombinacija robotske ruke i TV kamere; Vanjska memorija: Papirna vrpca s označenim poljima; Umjesto pomaka glave za čitanje i pisanje pomiče se vrpca; Simboli vanjske abecede su pločice s geometrijskim likovima u boji; Logički blok ostvaren osobnim računalom; Postojanje poola simbola vanjske abecede;
Izgled korisničkog sučelja za programiranje TS-a: