200 likes | 415 Views
TEORIJA IZRAČUNLJIVOSTI -SEMINARSKI RAD-. -Tjuringova mašina sa više traka Boriša Biberdžić. Pretpostavimo da je Tjuringova mašina organizovana na sledeći način: za neko k >0, Tjuringova ma šina se sastoji od traka, koje su redom označene 1, 2, 3...k
E N D
TEORIJA IZRAČUNLJIVOSTI-SEMINARSKI RAD- -Tjuringova mašina sa više traka Boriša Biberdžić
Pretpostavimo da je Tjuringova mašina organizovana na sledeći način: za neko k>0, Tjuringova mašina se sastoji od traka, koje su redom označene 1, 2, 3...k Sve trake imaju kraj sa leve strane (prethodno je pokazano da to nije ograničenje). Nad svakom trakom se nalazi posebna glava. U svakom koraku se čita tekuća ćelija i preduzima odgovarajuća akcija, upisivanje simbola, kretanje glave levo ili desno. Ulazni podaci se smeštaju na 1. traku dok su ostale prazne. Rezultat se smešta u k-tu traku.
Palindrom primer: Na početku se reč iz prve trake iskopira u drugu traku, zatim se glava prve trake vrati levo, dok glava druge trake ostaje krajnje desno. Na kraju se glave pomeraju za po jedno mesto, prva u desno a druga u levo, i ispituje se jednokost sadržaja tekućih ćelija.
Tjuringova mašina sa jednom trakom trivijalno spada u Tjuringovu mašinu sa više traka. To znači da svaka funkcija izračunljiva mašinom sa jednom trakom je automatski izračunljiva mašinom sa više traka. Pretpostavimo da je M1 Tjuringova Mašina sa k traka koja izračunava funkciju f. Konstruisaćemo mašinu M2 sa jednom trakom koja će simulirati izvršavanje M1. Sadržaji k traka M1 će redom biti smešteni na jedinoj traci M2.
Unarni alfabet proširujemo na sledeći način: • Novi znak > označava početak trake sa leve strane, tako da se glava trake ne sme kretati levo od njega • Novi znak >’ označava početak svake od k traka M1 i glava mašine M2 sme prelaziti levo od njega. • Novi znak < služi kao oznaka desnog kraja trenutnog zauzeća svake od predstavljenih traka a dva uzastopna znaka << predstavljaju kraj sadržaja svih k traka M1 zapisanih na traci M2.
Novi znak <‘ kao privremena varijanta znaka < prilikom simuliranja nekih koraka izvršavanja M1 • Novi znaci 1,0 : označavaju da se neka od glava nalazi upravo iznad 1 ili 0. Polazni sadržaj M2 bi izgledao ovako > >’ w < {>’ <…>’ <} < {k-1} puta w predstavlja ulazne podatke sa M1 i prvi znak je podvučena verzija znaka jer se nad njim nalazi glava.
M2 simulira jedan korak izvršavanja M1 tako što dva puta prelazi sadržaj svoje trake s leva na desno i nazad. U prvom prolazu prikuplja informacije o k znaka koji se trenutno nalaze ispod glava mašine M1, to su podvučeni znaci na traci mašine M2. Da bi omogućili pamćenje uvodimo i nova stanja koja odgovaraju kombinacijama stanja mašine M1 i k-torki simbola, npr. ako se M1 nalazi u stanju q, a simboli u ćelijama iznad kojih su glave traka su redom o1, o2,...,ok, odgovarajuće stanje M2 možemo označiti sa q(o1, o2,...,ok). Nakon prvog prelaska, na osnovu ovog stanja M2 u drugom prelasku izvršava akciju koja simulira razmatrani korak M1.
To se izvodi tako što se prelazi preko ćelija trake M2 i eventualno menja sadržaj ćelija u koje su upisani podvučeni znaci. Promena se ogleda ili u prepisivanju tekućeg podvučenog znaka novim podvučenim znakom (ako je operacija pisanje) ili zamenom podvučene verzije znaka nepodvučenom i promenom jednog od susednihznaka u podvučenu verziju (ako je akcija pomeranje glave). Jedini problem nastajekada je trenutna pozicija upravo desni kraj zapisa neke od traka mašine M1, a glava treba da se pomakne na desno. To znači da se u ćeliji iznad koje je glava nalaziznak <.
Kod mašine M1 to ne bi predstavljalo problem, ali ovde desno od znaka < nema slobodnog prostora jer se tu nalaze zapisi sadržaja ostalih traka mašine M1.Zato se najpre znak < prepisuje znakom <‘, pa se pomere svi znaci počev od njegaza po jedno mesto u desno, zatim se glava vraća na levo do prvobitne pozicije znaka<‘ i prepisuje ga blanko znakom. Konačno, zbog kopiranja sadržaja u prvoj desnoj ćeliji je još jedan znak<‘ koji se prepisuje znakom <. Simulacija se nastavlja dok se mašina M2 ne zaustavi, nakon čega briše sve delove trake koji prikazuju sadržajetraka mašine M1, sem za k-tu traku koja predstavlja rezultat.
Pretpostavimo da |x| označava dužinu ulaznih podataka mašineM1, a f funkcijuza koju važi da je broj koraka izračunavanja mašine M1 za ulaz x najviše f(|x|)i primetimo da ni na jednoj od k traka mašine M1 ne može biti zauzeto više odf(|x|) ćelija. Prema tome, svakom koraku izvršavanja mašine M1 odgovara najvišec1·kf(|x|) koraka rada mašineM2 potrebnih za dvostruki prelazak trake i c2·kf(|x|)koraka rada mašine M2 potrebnih za eventualno pomeranje sadržaja u desno, zaneke konstante c1 i c2. Mašina M2 treba da na početku izvršavanja postavi polaznisadržaj trake pri čemu pomera ulazne podatke i dopisuje znake >’ i <,
kao i da na kraju obriše deo trake zauzet prikazom prve k − 1 trake mašine M1, za šta joj jepotrebno c3·f(|x|) koraka, za neku konstantu c3. Na osnovu ove analize je očiglednoda je ukupna dužina izvršavanja mašine M2 ograničena odozgo sa c4 · (f(|x|))2 zaneku konstantu c4, tako da simulacija radi samo polinomijalno duže od mašine M1.
Nedeterministička Tjuringova mašina determinističko ponašanjeTM predstavlja kombinaciju tekućegstanja i znaka bila je predviđena samo jedna akcija. Kod nedeterminističke Tjuringove Mašine ovaj zahtev ne postoji. Razlika je u sledećem, : (S \ {qz}) × A -> (A U {L,R}) × S : (S \ {qz}) × A -> P((A U {L,R}) × S) gde je P() oznaka partitivnog skupa,
odnosno za stanje q aaapripadaaaa S \ {qz} i znak s 2 A,(q, s) je proizvoljan konačan podskup skupa ((A u {L,R}) × S). Drugim rečima,za tekuću konfiguraciju mašine može postojati više različitih konfiguracija do kojihse dolazi izvršavanjem neke od naredbi programa. U izvršavanju nedeterminističke Tjuringove mašine postoji svojevrsna mogućnostizbora: u slučaju da za neko stanje q neki znak s postoji više mogućih naredbitreba izabrati neku od njih i nastaviti izvršavanje. Skica drvo Grananje u drvetu je konačno, što znači da usvakom koraku izvršavanja postoji samo konačno mnogo opcija za izbor, dok granepredstavljaju moguće redoslede izvršavanja programa.
Determinističkim Tjuringovim mašinama definisana je jedna klasa izračunljivihfunkcija. Kod nedeterminističkih mašina situacija je donekle izmenjena. One supre svega pogodne za davanje odgovora ’da’ ili ’ne’ na pitanja oblika ’da li za ulazne podatke važi . . . ?’ Imajući u vidu ideju o uvođenju novih stanja qda i qne zaustavljanjeu nekom od ovih stanja ima značenje pozitivnog, odnosno negativnog, odgovora. Snaga, odnosno na jeziku savremenih računara - brzina, nedeterminističkih Tjuringovih mašina je posledica sledeće asimetrične konvencije: mašinapotvrdno odgovara na pitanje ako se bar jedno od mogućih izračunavanja završavau stanju qda, dok jedino okončanje svih mogućih izračunavanja u stanju qne značida je odgovor ’ne’.
Na osnovu ovog dogovora, nedeterministička mašina se možezamisliti kao višeprocesorski sistem koji se ponaša na sledeći način. U svakomkoraku svaki od procesora kreira onoliko novih procesora koliko ima različitih konfiguracijau koje taj procesor može preći izvršavanjem tekuće naredbe. Ako mu unastavku izvršavanja bilo koji od njegovih potomaka vrati informaciju o potvrdnomodgovoru, procesor tu informaciju prosleđuje svom neposrednom pretku. Negativanodgovor se prosleđuje samo ako je dobijen od svih neposrednih potomaka. Zapravo,svaki procesor izračunava disjunkciju odgovora svojih potomaka. Primetimoda, ako ni jedno izračunavanje ne dovodi do stanja qda i bar jedno izračunavanjene dovodi ni do kog završnog stanja, nedeterministička mašina divergira.
Pretpostavimo da želimo ispitati da li je nekiprirodan broj n složen ili prost. Običnom Tjuringovom mašinom problem bi semogao rešiti na sledećinačin: delili bismo broj svim prirodnim brojevima između2 i n/2 i na osnovu toga dali odgovor. U slučaju nedeterminističke Tjuringove mašinena jednom mestu bismo imali mogućnost izbora broja kojim delimo broj n, pa akoje n složen, a izabrani broj delilac, mogli bismo dati odgovor u jednom koraku, štobi bio značajan dobitak u odnosu na deterministički postupak. Lako je uočiti daovaj postupak nije realan, u smislu da izbor delioca podrazumeva da mi već znamoda je n složen, tj. da nam je poznat bar jedan njegov činilac. Međutim, i poredtoga, nedeterministička Tjuringova mašina se može simulirati determinističkommašinom, tako da se izražajnost u smislu onoga šta mašina može odgovoriti nemenja.
Pretpostavimo da je M1 nedeterministička Tjuringova mašina. Odgovarajućadeterministička Tjuringova mašinaM2 će sistematski prelaziti sve moguće redosledeizvršavanja mašine M1, najpre dužine 1, pa dužine 2 itd. Ovo obezbeđuje da nijedno moguće konačno izvršavanje neće biti preskočeno. Zato, ako bi se mašina M1u nekom trenutku izvršavanja našla u stanju qda, to isto će pre ili posle biti slučaj isa mašinom M2. Ako svi mogući redosledi izvršavanja mašine M1 dovode do stanjaqne, i mašina M2 će se naći u tom stanju kada iscrpi sve mogućnosti. Konačno akomašina M1 divergira za date ulazne podatke x i mašina M2 se neće zaustaviti.
Deterministička mašina M2 će imati tri trake: prva traka uvek sadrži ulazni podataki nikada se ne menja, na drugoj traci će se simulirati izvršavanje mašine M1,a na trećoj će se, kao na nekom steku, pamtiti niz brojeva koji predstavljaju prikazizabranih pravaca u svim mogućim trenucima izbora naredbe koja se izvršava. Napočetku izvršavanja mašine M2 ulazni podatak se nalazi na prvoj traci, dok supreostale dve trake prazne. U osnovnom ciklusu rada mašina kopira sadržaj prvena drugu traku i koristećisadržaj treće trake, kao uputstvo za redosled koraka,simulira jedan deterministički redosled izvršavanja mašine M1.
Očigledno je da deterministička mašina M2 unajgorem slučaju bar jednomposećuje svaki čvordrveta koje prikazuje izvršavanje nedeterminističke mašine M1.Ovih čvorova može biti eksponencijalno više nego što je dužina najkraćeg mogućegizračunavanja mašine M1 koje dovodi do stanja qda, ako takvo uopšte postoji.Zato je izvršavanje determinističke mašine M2 u najgorem slučaju eksponencijalnoduže nego izvršavanjenedeterminističke mašine M1. Za sada nije poznato da li jesimulaciju moguće izvesti uz samo polinomijalni gubitak vremena. U vezi sa timje čuveni problem da li je P = NP .