Interpretacija programa Potisni automat. Krunoslav Puljić 2015/2016

Σχετικά έγγραφα
ELEKTROTEHNIČKI ODJEL

Operacije s matricama

a M a A. Može se pokazati da je supremum (ako postoji) jedinstven pa uvodimo oznaku sup A.

M086 LA 1 M106 GRP. Tema: Baza vektorskog prostora. Koordinatni sustav. Norma. CSB nejednakost

DISKRETNA MATEMATIKA - PREDAVANJE 7 - Jovanka Pantović

Iskazna logika 3. Matematička logika u računarstvu. novembar 2012

3.1 Granična vrednost funkcije u tački

Osnovni primer. (Z, +,,, 0, 1) je komutativan prsten sa jedinicom: množenje je distributivno prema sabiranju

18. listopada listopada / 13

Teorijske osnove informatike 1

Matematička analiza 1 dodatni zadaci

(P.I.) PRETPOSTAVKA INDUKCIJE - pretpostavimo da tvrdnja vrijedi za n = k.

2 tg x ctg x 1 = =, cos 2x Zbog četvrtog kvadranta rješenje je: 2 ctg x

radni nerecenzirani materijal za predavanja R(f) = {f(x) x D}

Neka su A i B skupovi. Kažemo da je A podskup od B i pišemo A B ako je svaki element skupa A ujedno i element skupa B. Simbolima to zapisujemo:

INTEGRALNI RAČUN. Teorije, metodike i povijest infinitezimalnih računa. Lucija Mijić 17. veljače 2011.

Riješeni zadaci: Limes funkcije. Neprekidnost

TRIGONOMETRIJSKE FUNKCIJE I I.1.

PRAVA. Prava je u prostoru određena jednom svojom tačkom i vektorom paralelnim sa tom pravom ( vektor paralelnosti).

1.4 Tangenta i normala

1 Promjena baze vektora

Strukture podataka i algoritmi 1. kolokvij 16. studenog Zadatak 1

Sume kvadrata. mn = (ax + by) 2 + (ay bx) 2.

7 Algebarske jednadžbe

radni nerecenzirani materijal za predavanja

SISTEMI NELINEARNIH JEDNAČINA

IspitivaƬe funkcija: 1. Oblast definisanosti funkcije (ili domen funkcije) D f

Dijagonalizacija operatora

41. Jednačine koje se svode na kvadratne

Zadaci iz Osnova matematike

Zadaci sa prethodnih prijemnih ispita iz matematike na Beogradskom univerzitetu

Ispitivanje toka i skiciranje grafika funkcija

KONVEKSNI SKUPOVI. Definicije: potprostor, afin skup, konveksan skup, konveksan konus. 1/5. Back FullScr

RIJEŠENI ZADACI I TEORIJA IZ

Uvod u teoriju brojeva

numeričkih deskriptivnih mera.

Cauchyjev teorem. Postoji više dokaza ovog teorema, a najjednostvniji je uz pomoć Greenove formule: dxdy. int C i Cauchy Riemannovih uvjeta.

Riješeni zadaci: Nizovi realnih brojeva

IZVODI ZADACI ( IV deo) Rešenje: Najpre ćemo logaritmovati ovu jednakost sa ln ( to beše prirodni logaritam za osnovu e) a zatim ćemo

Linearna algebra 2 prvi kolokvij,

Dvanaesti praktikum iz Analize 1

5. Karakteristične funkcije

Linearna algebra 2 prvi kolokvij,

LINEARNA ALGEBRA 1, ZIMSKI SEMESTAR 2007/2008 PREDAVANJA: NENAD BAKIĆ, VJEŽBE: LUKA GRUBIŠIĆ I MAJA STARČEVIĆ

k a k = a. Kao i u slučaju dimenzije n = 1 samo je jedan mogući limes niza u R n :

Elementi spektralne teorije matrica

Matematičke metode u marketingumultidimenzionalno skaliranje. Lavoslav ČaklovićPMF-MO

21. ŠKOLSKO/OPĆINSKO/GRADSKO NATJECANJE IZ GEOGRAFIJE GODINE 8. RAZRED TOČNI ODGOVORI

PRIMJER 3. MATLAB filtdemo

KOMUTATIVNI I ASOCIJATIVNI GRUPOIDI. NEUTRALNI ELEMENT GRUPOIDA.

UNIVERZITET U NIŠU ELEKTRONSKI FAKULTET SIGNALI I SISTEMI. Zbirka zadataka

Funkcije dviju varjabli (zadaci za vježbu)

PID: Domen P je glavnoidealski [PID] akko svaki ideal u P je glavni (generisan jednim elementom; oblika ap := {ab b P }, za neko a P ).

Ĉetverokut - DOMAĆA ZADAĆA. Nakon odgledanih videa trebali biste biti u stanju samostalno riješiti sljedeće zadatke.

6 Polinomi Funkcija p : R R zadana formulom

Inženjerska grafika geometrijskih oblika (5. predavanje, tema1)

Apsolutno neprekidne raspodele Raspodele apsolutno neprekidnih sluqajnih promenljivih nazivaju se apsolutno neprekidnim raspodelama.

Pošto pretvaramo iz veće u manju mjernu jedinicu broj 2.5 množimo s 1000,

Kaskadna kompenzacija SAU

2. Ako je funkcija f(x) parna onda se Fourierov red funkcije f(x) reducira na Fourierov kosinusni red. f(x) cos

Veleučilište u Rijeci Stručni studij sigurnosti na radu Akad. god. 2011/2012. Matematika. Monotonost i ekstremi. Katica Jurasić. Rijeka, 2011.

Kazimir Majorinc. Povijest Lispa 12. Razmjena vještina Hacklab u mami 10. studeni 2012.

SKUPOVI I SKUPOVNE OPERACIJE

Trigonometrija 2. Adicijske formule. Formule dvostrukog kuta Formule polovičnog kuta Pretvaranje sume(razlike u produkt i obrnuto

IZVODI ZADACI (I deo)

Interpretacija programa Semantička analiza. Krunoslav Puljić 2013/2014

APROKSIMACIJA FUNKCIJA

Sortiranje prebrajanjem (Counting sort) i Radix Sort

Četrnaesto predavanje iz Teorije skupova

REKURZIVNE FUNKCIJE PRIRODOSLOVNO MATEMATIČKI FAKULTET MATEMATIČKI ODSJEK. Diplomski rad. Voditelj rada: Doc.dr.sc.

MATEMATIKA 1 8. domaća zadaća: RADIJVEKTORI. ALGEBARSKE OPERACIJE S RADIJVEKTORIMA. LINEARNA (NE)ZAVISNOST SKUPA RADIJVEKTORA.

Matematiqki fakultet. Univerzitet u Beogradu. Domai zadatak

PRAVAC. riješeni zadaci 1 od 8 1. Nađite parametarski i kanonski oblik jednadžbe pravca koji prolazi točkama. i kroz A :

XI dvoqas veжbi dr Vladimir Balti. 4. Stabla

Determinante. a11 a. a 21 a 22. Definicija 1. (Determinanta prvog reda) Determinanta matrice A = [a] je broj a.

M086 LA 1 M106 GRP Tema: Uvod. Operacije s vektorima.

Linearna algebra I, zimski semestar 2007/2008

4. poglavlje (korigirano) LIMESI FUNKCIJA

TURINGOVI STROJEVI = 4... Tablica 1. Traka Turingovog stroja

2log. se zove numerus (logaritmand), je osnova (baza) log. log. log =

Klasifikacija blizu Kelerovih mnogostrukosti. konstantne holomorfne sekcione krivine. Kelerove. mnogostrukosti. blizu Kelerove.

Pismeni ispit iz matematike Riješiti sistem jednačina i diskutovati rješenja sistema u zavisnosti od parametra: ( ) + 1.

Numerička matematika 2. kolokvij (1. srpnja 2009.)

1. zadatak , 3 Dakle, sva kompleksna re{ewa date jedna~ine su x 1 = x 2 = 1 (dvostruko re{ewe), x 3 = 1 + i

Neka je a 3 x 3 + a 2 x 2 + a 1 x + a 0 = 0 algebarska jednadžba trećeg stupnja. Rješavanje ove jednadžbe sastoji se od nekoliko koraka.

1 Aksiomatska definicija skupa realnih brojeva

Zadaci iz trigonometrije za seminar

MATRICE I DETERMINANTE - formule i zadaci - (Matrice i determinante) 1 / 15

PARCIJALNI IZVODI I DIFERENCIJALI. Sama definicija parcijalnog izvoda i diferencijala je malo teža, mi se njome ovde nećemo baviti a vi ćete je,

DRUGI KOLOKVIJUM IZ MATEMATIKE 9x + 6y + z = 1 4x 2y + z = 1 x + 2y + 3z = 2. je neprekidna za a =

SEMINAR IZ KOLEGIJA ANALITIČKA KEMIJA I. Studij Primijenjena kemija

TRIGONOMETRIJA TROKUTA

OSNOVNI PRINCIPI PREBROJAVANJA. () 6. studenog / 18

IZRAČUNAVANJE POKAZATELJA NAČINA RADA NAČINA RADA (ISKORIŠĆENOSTI KAPACITETA, STEPENA OTVORENOSTI RADNIH MESTA I NIVOA ORGANIZOVANOSTI)

Neka su A i B proizvoljni neprazni skupovi. Korespondencija iz skupa A u skup B definiše se kao proizvoljan podskup f Dekartovog proizvoda A B.

( ) ( ) 2 UNIVERZITET U ZENICI POLITEHNIČKI FAKULTET. Zadaci za pripremu polaganja kvalifikacionog ispita iz Matematike. 1. Riješiti jednačine: 4

ELEMENTARNA MATEMATIKA 1

POTPUNO RIJEŠENIH ZADATAKA PRIRUČNIK ZA SAMOSTALNO UČENJE

Zavrxni ispit iz Matematiqke analize 1

NOMENKLATURA ORGANSKIH SPOJEVA. Imenovanje aromatskih ugljikovodika

Transcript:

Interpretacija programa Potisni automat Krunoslav Puljić 2015/2016

Potisni automat Potisni automat (PA) je proširenje konačnih automata (NKA) Upravljačkoj jedinici, glavi za čitanje i ulaznoj traci dodaje se potisni stog (LIFO) Koristi se za potrebe prihvaćanja konteksno neovisnih jezika

Model potisnog automata Osim čitanja znakova ulazne trake, upravljačka jedinica čita i jedan znak s vrha potisnog stoga Nakon čitanja znaka, s vrha stoga se skida pročitani znak, te se na vrh stoga vraća niz znakova Znakovi ulazne trake nazivaju se ulazni znakovi Znakovi na stogu nazivaju se znakovi stoga Ostalo je isto kao i kod NKA Upravljačka jedinica je u jednom od konačnog broja stanja Stanja su podijeljena na prihvatljiva i neprihvatljiva

Model potisnog automata a 1... a i... a n-1 Ulazna traka X m X m-1 Glava za čitanje X m-2... X 1 Upravljačka jedinica Stanje X 0 Potisni stog

Model potisnog automata Upravljačka jedinica donosi odluke: O promjeni sadržaja stoga O pomaku glave za čitanje O promjeni stanja Odluka se donosi na temelju: Stanja upravljačke jedinice Znaka na vrhu stoga Znaka na ulaznoj traci Odluku je moguće donijeti i bez čitanja znaka ulazne trake

Model potisnog automata Upravljačka jedinica odlučuje koji niz znakova se stavlja na vrh stoga: Prazni niz Budući da se čitanjem skida znak s vrha stoga, stavljanje praznog niza jednako je uzimanju jednog znaka s vrha stoga Niz od jednog znaka Na vrh stoga moguće je staviti isti znak koji je i pročitan, ili neki drugi znak Niz od više znakova...

Model potisnog automata Upravljačka jedinica odlučuje koji niz znakova se stavlja na vrh stoga:... Niz od više znakova Stog potisnog automata koristi se za čuvanje dijela generiranog međuniza Simulira produkciju u kojoj se nezavršni znak lijeve strane produkcije na vrhu stoga zamijeni s nizom znakova desne strane produkcije

Model potisnog automata Stanje upravljačke jedinice q Čita se znak a s ulazne trake Znak Z je na vrhu stoga Tijekom rada upravljačka jedinica primjeni jedan od dva prijelaza: Na temelju trojke (q,a,z) upravljačka jedinka mijenja stanje u novo stanje p i zamijeni znak na vrhu stoga nizom znakova Na temelju trojke (q,,z) upravljačka jedinka mijenja stanje u novo stanje p i zamijeni znak na vrhu stoga nizom znakova Odluka se donosi bez pročitanog znaka s ulazne trake

Model potisnog automata Odluka o prihvaćanju niza donosi se na isključivo jedan od dva moguća načina: Potisni automat M koji prihvaća prihvatljivim stanjem Ako upravljačka jedinica uđe u prihvatljivo stanje nakon što pročita sve znakove s ulazne trake, niz se prihvaća Ovakav jezik označava se s L(M) Potisni automat M koji prihvaća praznim stogom Isprazni li se stog čitanjem svih znakova niza, niz se prihvaća Ovakav jezik označava se s N(M)

Model potisnog automata Nije nužno da isti potisni automat prihvaća iste jezike prihvatljivim stanjem i praznim stogom Većinom je L(M) N(M)

Primjer potisnog automata Potisni automat za jezik N(M)={( n a) n n 1} Znak a je okružen jednakim brojem otvorenih i zatvorenih zagrada Ulazni znakovi potisnog automata su (, ) i a PA ima dva stanja: q 0 i q 1 Početno stanje je q 0, na vrhu stoga je znak K PA u stanju q 0 čita redom znakove sve do znaka a i stavlja jedan znak A na vrh stoga za svaku pročitanu otvorenu zagradu

Primjer potisnog automata Nakon što pročita znak a, PA prelazi u stanje q 1 u kojem uzima jedan znak A s vrha stoga za svaku pročitanu zatvorenu zagradu Ako je na kraju niza stog prazan, niz se prihvaća, tj. imamo jednak broj otvorenih i zatvorenih zagrada Skup znakova stoga je {A,K}

Primjer potisnog automata Prijelazi potisnog automata su određeni ovako: Prijelaz Stanje Ulaz Stog Novo stanje Novi vrh stoga Glava za čitanje 1. q 0 ( K q 0 AK Desno 2. q 0 ( A q 0 AA Desno 3. q 0 a A q 1 A Desno 4. q 1 ) A q 1 Desno 5. q 1 K q 1 Nema pomaka

Primjer potisnog automata Rad potisnog automata za niz (((a))) Navedeni niz se prihvaća jer se čitanjem znakova ispraznio stog Ako u nizu postoji veći broj otvorenih zagrada nego zatvorenih, stog se ne isprazni nakon pročitanih svih znakova niza Budući da stog nije prazan, niz se ne prihvaća Ako u nizu postoji veći broj zatvorenih zagrada nego otvorenih, stog ostaje prazan prije nego što su pročitani svi znakovi ulazne trake Daljnji prijelazi PA nisu definirani i nije moguće nastaviti s čitanjem Budući da nisu pročitani svi znakovi, niz se ne prihvaća

Primjer potisnog automata Neka se PA M definira slično kao M, osim što je stanje q1 prihvatljivo, a q0 neprihvatljivo M prihvaća jezik {( n a) m n 1, m 0, n m} Jezik L(M ) nije jednak jeziku N(M) Primjer: niz ((((a se prihvaća, jer nakon pročitanog niza automat ostaje u prihvatljivom stanju

Definicija potisnog automata Potisni automat je uređena sedmorka PA = (Q,,,, q 0, Z 0, F) Q konačan skup stanja konačni skup ulaznih znakova (abeceda) konačni skup znakova stoga (abeceda stoga) funkcija prijelaza sa Q ( { }) u 2 Q * q 0 Q početno stanje Z 0 početni znak stoga F Q skup prihvatljivih stanja

Definicija potisnog automata Funkcija prijelaza potisnog automata pridružuje trojci (q,a,z) konačni skup parova (p i, i ) Ako je PA u stanju q, i na ulazu čitamo znak a, i na vrhu stoga je znak Z, onda PA prelazi u jedno od stanja p i, vrh stoga se zamijeni odgovarajućim nizom i Niz i stavlja se na stog tako da se najprije spremi krajnje desni znak u nizu i Funkcija je nedeterministička isto kao i funkcija prijelaza NKA

Definicija potisnog automata Postoji li funkcija prijelaza (q,,z) = {(p 1, 1 ), (p 2, 2 ),... (p m, m )} prijelaz je definiran samo stanjem PA i znakom na vrhu stoga Ulazni znak nema utjecaj na prijelaz i glava za čitanje se ne miče na idući znak Prijelaz (q,,z) se naziva -prijelaz Kao kod -NKA Samo ovaj puta imamo i akciju na stogu

Primjer M1 = ({q 1,q 2,q 3 }, {0,1,2}, {N,J,K},, q 1, K, {q 3 }) (q 1,0,K) = {(q 1,NK)} (q 1,0,N) = {(q 1,NN)} (q 1,0,J) = {(q 1,NJ)} (q 1,2,K) = {(q 2,K)} (q 1,2,N) = {(q 2,N)} (q 1,2,J) = {(q 2,J)} (q 2,0,N) = {(q 2, )} (q 2,,K) = {(q 3, )} (q 1,1,K) = {(q 1,JK)} (q 1,1,N) = {(q 1,JN)} (q 1,1,J) = {(q 1,JJ)} (q 2,1,J) = {(q 2, )} M1 prihvaća jezik L(M1) = {w2w R w (0+1)*} M1 je deterministički potisni automat jer su svi skupovi kod funkcije prijelaza jednočlani

Konfiguracija potisnog automata Konfiguracija PA se zadaje stanjem q, nepročitanim dijelom ulaznog niza w i znakovima koji se nalaze na stogu Konfiguracija je uređena trojka (q,w, ) Neka je zadan PA M=(Q,,,, q 0, Z 0, F) Konfiguracija PA M mijenja se iz (q,aw,z ) u (p,w, ) akko skup (q,a,z) sadrži (p, ) a { } Promjena konfiguracije formalno se zapisuje pomoću relacije > M (q,aw,z ) > M (p,w, ) akko skup (q,a,z) sadrži (p, )

Konfiguracija potisnog automata M1 = ({q 1,q 2,q 3 }, {0,1,2}, {N,J,K},, q 1, K, {q 3 }) (q 1, 0012100, K) > M1 (q 1, 012100, NK) > M1 (q 1, 12100, NNK) > M1 (q 1, 2100, JNNK) > M1 (q 2, 100, JNNK) > M1 (q 2, 00, NNK) > M1 (q 2, 0, NK) > M1 (q 2,, K) > M1 (q 3,, )

Konfiguracija potisnog automata Znakom >* označava se refleksivno i tranzitivno okruženje relacije > (q 1, 0012100, K) >* (q 3,, ) Znakom > i označava se relacije > koje koristi i koraka (q 1, 0012100, K) > 8 (q 3,, )

Prihvaćanje jezika zadanim PA Prihvaćanje jezika potisnim automatom M=(Q,,,, q 0, Z 0, F) zadaje se na jedan od dva načina: Prihvaćanje prihvatljivim stanjem L(M) = {w (q 0,w,Z 0 ) >* (p,, ), za neki p F i *} p mora biti prihvatljivo stanje, stog ne mora biti prazan Prihvaćanje praznim stogom N(M) = {w (q 0,w,Z 0 ) >* (p,, ), za neki p Q} p ne mora biti prihvatljivo stanje, ali stog mora ostati prazan

Primjer M2 = ({q 1,q 2 }, {0,1}, {N,J,K},, q 1, K, ) (1) (q 1,0,K) = {(q 1,NK)} (7) (q 1,1,K) = {(q 1,JK)} (2) (q 1,0,N) = {(q 1,NN), (q 2, )} (8) (q 1,1,N) = {(q 1,JN)} (3) (q 1,0,J) = {(q 1,NJ)} (9) (q 1,1,J) = {(q 1,JJ), (q 2, )} (4) (q 2,0,N) = {(q 2, )} (10) (q 2,1,J) = {(q 2, )} (5) (q 1,,K) = {(q 2, )} (6) (q 2,,K) = {(q 2, )} Za razliku od M1, M2 nije deterministički potisni automat Npr. u prijelazu (q 1,0,N) = {(q 1,NN), (q 2, )} postoje dvije opcije Nedeterminizam postoji i za prijelaze 1, 2 i 9 Npr. za stanje q1 i ulazne znakove 0 i 1, te vrh stoga K M2 prihvaća jezik L(M2) = {ww R w (0+1)*}

Primjer Niz iz jezika N(M2) nema u sredini znak 2, kao što to ima niz jezika N(M1) Znak 2 u nizu w2w R omogućuje donošenje odluke o prekidu stavljanja znakova N i J na stog i o pokretanju usporedbe ostatka niza sa sadržajem stoga Budući da N(M2) nema u sredini znak 2, M2 ne može jednoznačno donijeti prethodnu odluku Zato funkcija prijelaza daje više mogućnosti za prijelaze (2) i (9) Isprazni li se stog barem za jedan od prijelaza, niz se prihvaća

Primjer M2 = ({q 1,q 2 }, {0,1}, {N,J,K},, q 1, K, ) Početak (q 1, 001100, K) (q 1, 01100, NK) (q 2, 001100, ) (q 1, 1100, NNK) (q 2, 1100, K) (q 1, 100, JNNK) (q 2, 1100, ) (q 1, 00, JJNNK) (q 2, 00, NNK) (q 1, 0, NJJNNK) (q 2, 0, NK) (q 1,, NNJJNNK) (q 2,, JJNNK) (q 2,, K) (q 2,, K) prihvati niz

Primjer 001100 je oblika ww R, gdje je w=001, pa se niz prihvaća Nedeterminizam PA sličan je nedeterminizmu NKA Postoji li mogućnost izbora više prijelaza, istodobno započinje s radom više determinističkih PA Uspije li barem jedan deterministički PA isprazniti stog čitanjem svih znakova ulaznog niza, niz se prihvaća

Deterministički PA Potisni automat M=(Q,,,, q 0, Z 0, F) je deterministički potisni automat (DPA) akko vrijede oba uvjeta: Ako je (q,,z) neprazni skup, onda za bilo koje stanje q Q, znak stoga Z i ulazni znak a mora vrijediti (q,a,z)= Skup (q,a,z) može imati najviše jedan element, za bilo koje stanje q Q, znak stoga Z i ulazni znak a { }

Deterministički PA Prvi uvjet ne dozvoljava mogućnost izbora između -prijelaza i prijelaza koji koristi ulazni znak Npr. takvi su prijelazi (2) i (9) u automatu M2: Iz (q 1, 001100, K) možemo u: (q 1, 01100, NK) ili (q 2, 001100, ) Drugi uvjet ne dopušta da u skupu (q,a,z) bude više od jednog elementa Npr. u M2 nedeterministički prijelazi su (2) i (9)

DPA i NPA Analogno definiramo nedeterministički PA Za razliku od NKA koji prihvaća istu klasu jezika kao i DKA, NPA prihvaća širu klasu jezika od DPA Npr. NPA M2 prihvaća jezik N(M2)={ww R }, ali za N(M2) nije moguće izgraditi DPA koji ga prihvaća NPA se često označava i samo s PA N se podrazumjeva, a D se navodi samo ako je potrebno

PA i KNG Dva PA su istovjetna akko prihvaćaju isti jezik PA M koji prihvaća praznim stogom istovjetan je nekom PA M koji prihvaća prihvatljivim stanjem PA prihvaćaju klasu konteksno neovisnih jezika

PA stog iz PA stanje Neka M2=(Q,,,, q 0, Z 0, F) prihvaća jezik L(M2) prihvatljivim stanjem Želimo izgraditi istovjetni PA M1 koji prihvaća praznim stogom Ideja: ako M2 uđe u jedno od prihvatljivih stanja, M1 isprazni svoj stog Za to se uvodi dodatni znak stoga X 0 Na početku rada M1 stavi X 0 na dno stoga M2 svojim prijelazima ne može skinuti X 0 sa stoga Ako M2 isprazni stog, a ne uđe u jedno od prihvatljivih stanja, na dnu stoga ostaje X 0 koji onemogućava da M1 prihvati niz

PA stog iz PA stanje Neka je M2=(Q,,,, q 0, Z 0, F) i neka M2 prihvaća jezik L(M2) prihvatljivim stanjem PA M1 koji prihvaća praznim stogom definira se ovako: M1=(Q {q 0,q e },, {X 0 },, q 0, X 0, ) Dokazuje se da je M1 istovjetan M2

PA stog iz PA stanje Neka je M2=(Q,,,, q 0, Z 0, F) i neka Funkcija prijelaza gradi se ovako: 1. (q 0,,X 0 ) = {(q 0,Z 0 X 0 )} M1 prelazi iz svoje početne konfiguracije u početnu konfiguraciju od M2 i ostavlja X 0 na dnu stoga 2. U skup (q,a,z) stavi se sve iz skupa (q,a,z) Za sve q Q, a { }, Z Tako sa M1 simuliramo rad M2

PA stog iz PA stanje Neka je M2=(Q,,,, q 0, Z 0, F) i neka Funkcija prijelaza gradi se ovako: 3. U skup (q,,z) dodajemo -prijelaz (q e, ) -prijelazi dodaju se za sva stanja iz skupa prihvatljivih stanja F i za sve znakove stoga Z iz {X 0 } Ako M2 uđe u jedno od prihvatljivih stanja, skup prijelaza proširuje se -prijelazom u stanje q e, a sa vrha stoga se uzme jedan znak

PA stog iz PA stanje Neka je M2=(Q,,,, q 0, Z 0, F) i neka Funkcija prijelaza gradi se ovako: 4. U skup (q e,,z) dodajemo -prijelaz (q e, ) -prijelazi dodaju se za sve znakove stoga Z iz {X 0 } -prijelazi u stanju q e prazne čitav stog, uključujući i znak X 0

PA stanje iz PA stog Analogno prethodnom Kada M1 isprazni stog, u M2 konstruiramo -prijelaz u jedino prihvatljivo stanje q f

KNG = PA stog Nedeterministički PA prepoznaje klasu konteksno neovisnih jezika Nije potrebno navoditi način prihvaćanja nizova, jer je pokazano da su oba načina istovjetna Naravno, ne u istom potisnom automatu Za bilo koji konteksno neovisni jezik L postoji NPA M, koji prihvaća jezik praznim stogom, takav da je N(M)=L

KNG = PA stog Neka je KNJ zadan gramatikom G=(V,T,P,S) koja ima sve produkcije u Greibachovom normalnom obliku: A a A V, a T, V* a je završni znak, je niz nezavršnih znakova Svaka KNG se može svesti u istovjetnu gramatiku u Greibachovom normalnom obliku

Konstrukcija PA stog iz KNG Za gramatiku G=(V,T,P,S) konstruiramo potisni automat M={Q,,,, q 0, Z, F)} Skup stanja PA M je skup od samo jednog stanja q Skup ulaznih znakova jednak je skupu završnih znakova gramatike Skup znakova stoga jednak je skupu nezavršnih znakova gramatike V Početno stanje q 0 jednako je jedinom stanju q

Konstrukcija PA stog iz KNG Za gramatiku G=(V,T,P,S) konstruiramo potisni automat M={Q,,,, q 0, Z, F)} Početni znak stoga Z 0 je početni nezavršni znak gramatike S Skup prihvatljivih stanja F je prazan skup PA M prihvaća praznim stogom Funkcija prijelaza zadaje se ovako: (q,a,a) sadrži (q, ) akko postoji produkcija A a

Konstrukcija KNG iz PA stog Analogno se može za dani PA koji prihvaća praznim stogom konstruirati KNG

Konteksno neovisni jezici KNJ Nedeterministički potisni automat NPA Deterministički konteksno neovisni jezici DKNJ Regularni jezici RJ Deterministički potisni automat DPA Konačni automati KA

Svojstva kontekstno neovisnih jezika Na koje operacije je klasa KNJ zatvorena a na koje nije? Kojim jezicima dokazujemo nezatvorenost na presjek? Potražite lemu o pumpanju za KNJ Potražite primjene leme o pumpanju za KNJ (npr. na a n b n c n ) Može li se postići više ako imamo više stogova na raspolaganju?

Svojstva zatvorenosti KNJ-a Jezik je konteksno neovisan akko postoji: konteksno neovisna gramatika, ili potisni automat...koji ga generira

Svojstva zatvorenosti KNJ-a Klasa KNJ zatvorena je na operacije: Unije Nadovezivanja Kleenovog operatora Supstitucije Klasa KNJ nije zatvorena na operacije: Presjeka Komplementa Presjek KNJ i RJ je KNJ

Svojstva zatvorenosti KNJ-a Klasa KNJ zatvorena je na uniju: Neka su G 1 =(V 1,T 1,P 1,S 1 ) i G 2 =(V 2,T 2,P 2,S 2 ) KNG koje generiraju zadane KNJ L 1 i L 2 Definiramo G 3 =(V 3,T 3,P 3,S 3 ) za L 1 U L 2 kao: V 3 =V 1 UV 2 U{S 3 } S 3... T 3 =T 1 UT 2 P 3 =P 1 UP 2 U{S 3 S 1 S 2 }

Svojstva zatvorenosti KNJ-a Klasa KNJ zatvorena je na nadovezivanje: Neka su G 1 =(V 1,T 1,P 1,S 1 ) i G 2 =(V 2,T 2,P 2,S 2 ) KNG koje generiraju zadane KNJ L 1 i L 2 Definiramo G 4 =(V 4,T 4,P 4,S 4 ) za L 1 L 2 kao: V 4 =V 1 UV 2 U{S 4 } S 4... T 4 =T 1 UT 2 P 4 =P 1 UP 2 U{S 4 S 1 S 2 }

Svojstva zatvorenosti KNJ-a Klasa KNJ zatvorena je na Kleenov operator: Neka je G 1 =(V 1,T 1,P 1,S 1 ) KNG koja generira zadani KNJ L 1 Definiramo G 5 =(V 5,T 5,P 5,S 5 ) za L 1 * kao: V 5 =V 1 U{S 5 } S 5... T 5 =T 1 P 5 =P 1 U{S 5 S 1 S 5 ε}

Svojstva zatvorenosti KNJ-a Klasa KNJ zatvorena je na supstituciju: Supstitucija sve završne znakove a i, i=1,...,k jezika G zamijenimo nizovima znakova nekog KNJ G i

Svojstva zatvorenosti KNJ-a Klasa KNJ zatvorena je na supstituciju: Neka je G=(V,T,P,S) KNG koja generira zadani KNJ L Definiramo G =(V,T,P,S ) za L sups kao: V =VUV 1 U V 2 U... UV k V... T =T 1 U T 2 U... UT k S =S P =P 1 U P 2 U... UP k U produkcijama od G svaki završni znak od a i zamijenimo s početnim nezavršnim znakom S i gramatike G i

Svojstva nezatvorenosti KNJ-a Klasa KNJ nije zatvorena je na presjek: Kasnije ćemo dokazati da jezik L={a i b i c i : i>0} nije konteksno neovisan Pomoću leme o pumpanju za KNJ S druge strane, jezici L 1 ={a i b i c j : i,j>0} i L 2 ={a j b i c i : i,j>0} jesu konteksno neovisni Lako konstruiramo PA koji ih prepoznaje Vrijedi da je L=L 1 L 2 Dakle, presjek dva KNJ ne mora biti KNJ

Svojstva nezatvorenosti KNJ-a Klasa KNJ nije zatvorena je na komplement: Pretpostavimo da je komplement KNJ opet KNJ Vrijedi da je L 1 L 2 = (L C 1 U L 2C ) C Ispada da je presjek dva KNJ opet KNJ Kontradikcija s prethodnim

Svojstva nezatvorenosti KNJ-a Presjek KNJ i RJ je KNJ: Preko kartezijevog produkta dva automata Neka je zadan PA M1=(Q 1,Σ,Γ,δ 1,q 0,Z 1,F 1 ) Neka je zadan DKA M2=(Q 2,Σ,δ 2,p 0,F 2 ) Gradimo PA M =(Q,Σ,Γ,δ,q 0,Z 0,F ) koji prihvatljivim stanjem prihvaća (konteksno neovisan) jezik L=L 1 L 2 Q = Q 1 Q 2 q 0 =(p 0,q 0 ) F = F 1 F 2

Svojstva nezatvorenosti KNJ-a Presjek KNJ i RJ je KNJ: Gradimo PA M koji prihvatljivim stanjem prihvaća (konteksno neovisan) jezik L=L 1 L 2 Funkcija prijelaza δ ((p,q),a,x) sadrži ((p,q ),γ) akko δ 2 (p,a)=p, i (q, γ) iz δ 1 (q,a,x)

Svojstvo napuhavanja Lema o pumpanju za KNJ

Primjer Svojstvo napuhavanja

PA s više stogova

Literatura Siniša Srbljić: Jezični procesori 1 [JP1] Siniša Srbljić: Jezični procesori 2 [JP2]