Turingov stroj Obrada podataka: svrsishodna djelatnost koja ima za ...
Transcript of Turingov stroj Obrada podataka: svrsishodna djelatnost koja ima za ...
Turingov stroj
Obrada podataka: svrsishodna djelatnost koja ima za ciljda se iz raspoloživih podataka dobije tražena informacijaKomponente:• podatak• algoritam• izvršitelj
• Podatak – objekt u obradi
• Algoritam – uputstvo (“recept”) koje opisuje transformacijuulaznih podataka u traženi razultat
• Izvršitelj ?
Algoritam – postupci transformacije grupirani u korakealgoritma
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čkumjeru.
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ženirezultat – obustavite postupak računanja. Ako brojevi nisu jednaki prijeđite na sljedeći korak;
4. korak: Ako je prvi promatrani broj manji od drugog, zamijeniteim mjesta. Prijeđite na sljedeći korak;
5. korak: Oduzmite drugi broj od prvog i promatrajte taj drugi broji ostatak. Prijeđite na korak 2.
Primjer:a = 28b = 124
1. korak 2. korak3. korak4. korak: a = 124; b = 285. korak: 124 – 28 = 96, promatrajte 28 i 962. korak3. korak4. korak: a = 96; b = 285. korak: 96 – 28 = 68, promatrajte 28 i 682. korak3. korak4. korak: a = 68, b = 285. korak: 68 – 28 = 40
2. korak 2. korak3. korak 3. korak4. korak: a = 40, b = 28 4. korak: a = 8, b = 45. korak: 40 – 28 = 12 5. korak: 8 – 4 = 42. korak 2. korak3. korak 3. korak: a = b = 4 ZAUSTAVI SE!4. korak a = 28, b = 12 rezultat: nzm = 45. korak: 28 – 12 = 162. korak3. korak4. korak: a = 16, b = 125. korak: 16 – 12 = 4 2. korak3. korak4. korak5. korak: 12 – 4 = 8
Određenost Euklidova algoritma:- osigurana je činjenicom da izvršitelj može izvoditi
operacije zadane u pojedinim koracima algoritmai 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 bilokoji par pozitivnih cijelih brojeva dolazi do njihovanajveć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 zadanuodređ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 wk i vrijednošću vk; k = 1, 2, ..., N;
Potrebno je naći udio Fk svakog predmeta tako da:a) ne prenatrpate naprtnjaču;b) maksimizirate vrijednost koju nosite
(Opaska: Predmeti se mogu rastaviti na dijelove čija jevrijednost proporcionalna njihovoj težini)
Parametri i varijable problema:C, N, w1, v1, F1, ..., wN, vN, FN
Primjer ulazne supstitucije:
C = 14 kg, N = 3, w1 = 4 kg, v1 = 30 $w2 = 6 kg, v2 = 48 $w3 = 7 kg, v3 = 50 $
Rješenje (izlazna supstitucija):U naprtnjaču stavljamo:• Cijeli predmet 1 i cijeli predmet 2• 4/7 predmeta 3Ukupna 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 omjeromvrijednost/težina i smjesti ga cijelog u naprtnjaču.
3. korak: Izvadi iz naprtnjače posljednji predmet i razdijeli ga takoda 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 razumijevanjeprirodnog 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, 2nd Series, 42:pp.230-265, 1936.)
A. Turing (1912 – 1954)
1912 (23 June): Birth, Paddington, London1926-31: Sherborne School1930: Death of friend Christopher Morcom1931-34: Undergraduate at King's College, Cambridge University1932-35: Quantum mechanics, probability, logic1935: Elected fellow of King's College, Cambridge1936: The Turing machine, computability, universal machine1936-38: Princeton University. Ph.D. Logic, algebra, number theory1938-39: Return to Cambridge. Introduced to German Enigma cipher machine1939-40: The Bombe, machine for Enigma decryption1939-42: Breaking of U-boat Enigma, saving battle of the Atlantic1943-45: Chief Anglo-American crypto consultant. Electronic work.1945: National Physical Laboratory, London1946: Computer and software design leading the world.1947-48: Programming, neural nets, and artificial intelligence1948: Manchester University1949: First serious mathematical use of a computer1950: The Turing Test for machine intelligence1951: Elected FRS. Non-linear theory of biological growth1952: Arrested as a homosexual, loss of security clearance1953-54: Unfinished work in biology and physics1954 (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, q0, qf, δ)
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):s1, s2, ... , sk koji oblikuju vanjsku abecedu stroja
S = {s1, s2, ... , sk }
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 = {t1, t2, ... t|T|} – skup simbola koji se pojavljuju na vrpcibez 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 umeđuinformaciju, itd.; na kraju svakog takta znaci zapisani navrpci 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 = {q0, q1, q2, ..., q|Q-1| } – skup unutarnjih stanja
q0 - početno stanje strojaqf - konačno stanje stroja
Sustav elementarnih operacija i naredbi:• u svakom taktu naredba propisuje samo zamjenu pojedinačnog znaka si, upisanog u promatranompolju, nekim drugim znakom sj:
- ako je j = i sadržaj se promatranog polja ne mijenja;- ako je sj = b sadržaj se promatranog polja briše.- ako je j ≠ i tada se si zamijenjuje sa sj;
Pri prijelazu s jednog takta na drugi adresa se promatranog poljamož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 desnosusjedno polje na vrpci (ili pak isto polje kao u prethodnom taktu).
Glava za čitanje ili pisanje može se u jednom taktu pomaknuti zanajviš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čkombloku L koji se može nalaziti u nekom od konačnog broja unutarnjih stanja Q = {q0, q1, q2, ..., q|Q-1| }.
L
si qn
sj N qlDili L
P = {N, D, L}
Ulazna dvojka: (si, qn)Izlazna trojka: (sj, p, ql)
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 senaziva funkcionalna shema TS
q1 q2 q3 ...
∧ q4 D ∧ q3 L | q1 D α ...
q2 N α q4 D ∧ q3 N β ...
α q1 D α q2 D α q4 N α ...
β ... ... ... ...
Unutarnja stanja
Vanjska abeceda
trojka
Funkcionalna shema stroja
trojka
TS = (Q, S, T, b, q0, qf, δ)
Q – skup unutarnjih stanja stroja;S – skup simbola vanjske abecede;T = S / b;b – pusti simbol; q0 – početno stanje stroja;qf – konačno stanje stroja;δ - logička funkcija stroja
Turingov stroj:
I I I I I I * I I IISi
q
qn
Sj N/D/L
Q PL
Shematski prikaz TS-a:
Glava za čitanje i pisanje
Vanjska memorija
Polje P
Prema mehanizmu za pomakglave
Polje za pohranu unutarnjeg stanja
Logički blok stroja
Primjer 1: Zbrajanje Turingovim strojem
*
Početno stanje:
q0
Konačno (željeno) stanje:
Zadatak: Napisati “program” za TS koji zbraja štapiće!
*
q0
Vanjska abeceda: S = {, *, b}Skup unutarnjih stanja: Q = {q0, q1, q2, qf = !}
Rješenje:
q0 q1 q2
b
*
q2Db q1L q2D
q0Db q0Db q1N
!Nb q1L* q2D *
b = ∧
Analiza rješenja:
*
Početno stanje:
q0
Prvi takt: Promatrani štapić se briše i glava se pomiče udesnote stroj prelazi u stanje q2
(, q0 ) → (q2, D, b)
*
q2
Drugi takt:(, q2 ) → (q2, D, )
*
q2
Treći takt:(, q2 ) → (q2, D, )
Četvrti takt:(, q2 ) → (q2, D, )
Peti takt:(, q2 ) → (q2, D, )...7. takt(*, q2 ) → (q2, D, *)...11.takt:(, q2 ) → (q2, D, )
12. takt:(b, q2) → (q1, N, )
13. takt:(, q1 ) → (q1, L, )
14.takt:(, q1 ) → (q1, L, )
15.takt:(, q1 ) → (q1, L, )...18. takt:(*, q1 ) → (q1, L, *)
...
Definicija k-te konfiguracije Turingovog stroja:
Slika vrpce s informacijom koja se na njoj nalazi u početkuk-tog takta, pri čemu je ispod promatranog polja zapisan znakstanja koji ulazi u logički blok L u početku k-tog takta.
Ilustracija k-tih konfiguracija:
*
q0
1. konfiguracija
*
q2
2. konfiguracija
*
q2
3. konfiguracija
*
q2
12. konfiguracija
*
q1
13. konfiguracija
*
q1
24. konfiguracija
*
q0
25. konfiguracija
Predzadnja konfiguracija:
*
q0
qf
Zadnja konfiguracija:
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, bUnutarnja stanja stroja: q0 (početno i ujedno radno stanje) i qf –konačno stanje stroja.
Rješenje: Funkcionalna shema stroja
???????
q0L09!N98!N87!N76!N65!N54!N43!N32!N21!N10
q0
93 2 9
03 2 9
03 2
q0
0
q0
q0
03 3 0
!!N1b
q0L09!N98!N87!N76!N65!N54!N43!N32!N21!N10
q0
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: