7. Magasiniga (magasinmäluga) automaadid

Seotud dokumendid
lvk04lah.dvi

Polünoomi juured Juure definitsioon ja Bézout teoreem Vaadelgem polünoomi kus K on mingi korpus. f = a 0 x n + a 1 x n a n 1 x

IMO 2000 Eesti võistkonna valikvõistlus Tartus, aprillil a. Ülesannete lahendused Esimene päev 1. Olgu vaadeldavad arvud a 1, a 2, a 3,

loeng7.key

Treeningvõistlus Balti tee 2014 võistkonnale Tartus, 4. novembril 2014 Vastused ja lahendused 1. Vastus: 15, 18, 45 ja kõik 0-ga lõppevad arvud. Olgu

+/- 7(chomsky???) Deduktiivne jama 1.Hulkade spetsifitseerimine. Hulk on samalaadsete objektide järjestamata kogum, mida käsitlet

vv05lah.dvi

Ruutvormid Denitsioon 1. P n Ütleme, et avaldis i;j=1 a ijx i x j ; kus a ij = a ji ; a ij 2 K ja K on korpus, on ruutvorm üle korpuse K muutujate x 1

prakt8.dvi

loeng2

Relatsiooniline andmebaaside teooria II. 6. Loeng

ITI Loogika arvutiteaduses

Matemaatiline analüüs IV 1 3. Mitme muutuja funktsioonide diferentseerimine 1. Mitme muutuja funktsiooni osatuletised Üleminekul ühe muutuja funktsioo

Tartu Ülikool Matemaatika-informaatikateaduskond Puhta Matemaatika Instituut Algebra õppetool Riivo Must Mõned katsed üldistada inversseid poolrühmi M

Matemaatiline analüüs III 1 4. Diferentseeruvad funktsioonid 1. Diferentseeruvus antud punktis. Olgu funktsiooni f : D R määramispiirkond D R selles p

Microsoft Word - Errata_Andmebaaside_projekteerimine_2013_06

Infix Operaatorid I Infix operaatorid (näiteks +) ja tüübid (näiteks ->) kirjutatakse argumentide vahele, mitte argumentide ette. Näiteks: 5 + 2, 2*pi

19. Marek Kolk, Kõrgem matemaatika, Tartu Ülikool, Arvridade koonduvustunnused Sisukord 19 Arvridade koonduvustunnused Vahelduvat

efo03v2pkl.dvi

Andmebaasid, MTAT loeng Normaalkujud

Microsoft Word - 56ylesanded1415_lõppvoor

Pintsli otsade juurde tegemine Esiteks Looge pilt suurusega 64x64 ja tema taustaks olgu läbipaistev kiht (Transparent). Teiseks Minge kihtide (Layers)

12. Marek Kolk, Kõrgem matemaatika, Tartu Ülikool, Algfunktsioon ja määramata integraal Sisukord 12 Algfunktsioon ja määramata integraal 1

Word Pro - diskmatTUND.lwp

lcs05-l3.dvi

Funktsionaalne Programmeerimine

Diskreetne matemaatika I Kevad 2019 Loengukonspekt Lektor: Valdis Laan 20. juuni a.

Antennide vastastikune takistus

Word Pro - digiTUNDkaug.lwp

7 KODEERIMISTEOORIA 7.1 Sissejuhatus Me vaatleme teadete edastamist läbi kanali, mis sisaldab müra ja võib seetõttu moonutada lähteteadet. Lähteteade

Microsoft PowerPoint - IRZ0020_praktikum4.pptx

Neurovõrgud. Praktikum aprill a. 1 Stohhastilised võrgud Selles praktikumis vaatleme põhilisi stohhastilisi võrke ning nende rakendust k

Programmeerimiskeel APL Raivo Laanemets 17. mai a.

Excel Valemite koostamine (HARJUTUS 3) Selles peatükis vaatame millistest osadest koosnevad valemid ning kuidas panna need Excelis kirja nii, et

3D mänguarenduse kursus (MTAT ) Loeng 3 Jaanus Uri 2013

loogikaYL_netis_2018_NAIDISED.indd

raamat5_2013.pdf

Võistlusülesanne Vastutuulelaev Finaal

Microsoft Word - TallinnLV_lihtsustatud_manual_asutuse_juhataja_ doc

Microsoft Word _se-et_ok_korr_C.doc

Makseterminali Ingenico iwl220 kasutusjuhend 1

1. Üliõpilased 1.1 Tõendid Vali menüüst: Üliõpilased tõendid tõendite trükkimine. Avaneb vorm Tõendite trükkimine, vali tõendi liik Tõend õppim

GRUPI-SMS Veebirakenduse kasutamise juhend Rakendus Elisa grupi-smsi rakendus Väljaandja Elisa Eesti AS Juhendi koostamise kuupäev Versioon

E-arvete juhend

EDL Liiga reeglid 1. ÜLDSÄTTED 1.1. EDL Liiga toimub individuaalse arvestuse alusel, kus mängijad on jagatud hooaja EDL Liiga tulemuste põhj

1 / loeng Tekstitöötlus Sisend/väljund Teksti lugemine Sõnad

ArcGIS Online Konto loomine Veebikaardi loomine Rakenduste tegemine - esitlus

DIGITAALTEHNIKA DIGITAALTEHNIKA Arvusüsteemid Kümnendsüsteem Kahendsüsteem Kaheksandsüsteem Kuueteistkü

1. AKE Ajalise keerukuse empiiriline hindamine

Diskreetne matemaatika I praktikumiülesannete kogu a. kevadsemester

Kom igang med Scratch

NR-2.CDR

(Estonian) DM-RBCS Edasimüüja juhend MAANTEE MTB Rändamine City Touring/ Comfort Bike URBAN SPORT E-BIKE Kasseti ketiratas CS-HG400-9 CS-HG50-8

8.klass 4 tundi nädalas, kokku 140 tundi Hulkliikmed ( 45 tundi) Õppesisu Hulkliige. Hulkliikmete liitmine ja lahutamine ning korrutamine ja jagamine

P9_10 estonian.cdr

Failiotsing: find paljude võimalustega otsingukäsk find kataloog tingimused kataloog - otsitakse sellest kataloogist ja tema alamkataloogidest tingimu

MS Word Sisukord Uue dokumendi loomine... 2 Dokumendi salvestamine... 3 Faili nimi... 4 Teksti sisestamine... 6 Klaviatuuril mitteleiduvat sümbolite l

VL1_praks6_2010k

Abiarstide tagasiside 2016 Küsimustikule vastas 137 tudengit, kellest 81 (60%) olid V kursuse ning 56 (40%) VI kursuse tudengid. Abiarstina olid vasta

I Generaatori mõiste (Java) 1. Variantide läbivaatamine Generaator (ehk generaator-klass) on klass, milles leidub (vähemalt) isendimeetod next(). Kons

PÄRNU TÄISKASVANUTE GÜMNAASIUM ESITLUSE KOOSTAMISE JUHEND Pärnu 2019

Mida räägivad logid programmeerimisülesande lahendamise kohta? Heidi Meier

Andmeturve

SQL

VKE definitsioon

Matemaatiline maailmapilt MTMM Terje Hõim Johann Langemets Kaido Lätt 2018/19 sügis

Microsoft Word - HOTSEC kasutusjuhend v1.900.docx

Hoia oma arvuti turvaline ja kiire 1.Leia start nupust alustades Juhtpaneel 2.Juhtpaneeli aadressiribalt leia Kõik juhtpaneeli üksused 3.Avanenud tööa

Pealkiri

Praks 1

Microsoft Word - Suure thermori pass2.doc

8. Lõpetamine 8.1 Lõpetamise eeldused Eelduseks, et üliõpilane saaks lõpetada, peab tema õppekava täidetud olema. Kui üliõpilane õpib õppekaval, mis l

Kaupmehed ja ehitusmeistrid Selle laiendusega mängimiseks on vajalik Carcassonne põhimäng. Laiendit võib mängus kasutada täielikult või osaliselt ning

Microsoft PowerPoint - Difraktsioon

Sügis 2018 Kõrgema matemaatika 2. kontrolltöö tagasiside Üle 20 punkti kogus tervelt viis üliõpilast: Robert Johannes Sarap, Enely Ernits, August Luur

Müük (Microsoft Dynamics AX (Axapta) tarkvara) Paigaldusjuhend bifree.ee qlik.com

ISS0050 Mõõtmine

Andmed arvuti mälus Bitid ja baidid

Matemaatika ainekava 8.klass 4 tundi nädalas, kokku 140 tundi Kuu Õpitulemus Õppesisu Algebra (65 t.) Geomeetria (60 t.) Ajavaru kordamiseks (15 õppet

IFI6083_Algoritmid_ja_andmestruktuurid_IF_3

29 th International Physics Olympiad Reykjavik, Iceland Eksperimentaalne võistlus Esmaspäev, 6. juuli 1998 Kasutada olev aeg: 5 tundi Loe esmalt seda:

Microsoft Word - VOTA_dok_menetlemine_OIS_ doc

TARTU ÜLIKOOL Arvutiteaduse instituut Informaatika õppekava Mirjam Iher Nõrgima eeltingimuse staatiline analüüs pinukeeltele Bakalaureusetöö (9 EAP) J

Microsoft PowerPoint - loeng2.pptx

SQL

Microsoft Word - ref - Romet Piho - Tutorial D.doc

TT Electrolux integreeritava tehnika pakkumine

Eesti kõrgusmudel

Selgitused Väikeste põllumajandusettevõtete arendamise toetuse taotlemise protsessi kohta e- PRIAs. Taotlusi saab eeltäita ajavahemikul

Microsoft Word - Sobitusahelate_projekteerimine.doc

Operatsioonisüsteemide ehitus

Makseterminali VeriFone VX675 kasutusjuhend 1

KAARKASVUHOONE POLÜKARBONAADIGA 3X4M "KERTTU" 2,1m 3,0m min 4m Tehniline pass lk 2-9 Koostejuhend lk 10-31

1. klassi eesti keele tasemetöö Nimi: Kuupäev:. 1. Leia lause lõppu harjutuse alt veel üks sõna! Lõpeta lause! Lapsed mängivad... Polla närib... Õde r

VL1_praks2_2009s

Sissejuhatus mehhatroonikasse MHK0120

Väljavõte:

7. Magasiniga (magasinmäluga) automaadid Eelnevast teame, et iga regulaarne keel genereeritakse teatud regulaarse kontekstivaba grammatika poolt. Teame ka, et kõik mingis tähte c sisaldavas tähestikus olevad wcw R -kujulised palindroomid ei moodusta regulaarset keelt (st ei leidu seda keelt aktsepteerivat lõplikku automaati); küll aga on see keel kontekstivaba, st genereeritakse teatud kontekstivaba grammatika poolt. Seega on regulaarsete keelte hulk kontekstivabade keelte range osahulk. Käesolevas peatükis näitame, et mistahes kontekstivaba keel aktsepteeritakse mingi lõpliku automaadi poolt, kui lisada automaadile vaid üks magasinitüüpi mälupesa. Seega kehtivad seni käsitletud hulkade vahel järgmised seosed, kusjuures sisalduvused on ranged (lõplikku automati võib käsitleda kui triviaalse magasiniga (st millega mingeid operatsioone ei tehta) automaati: lõplikud automaadid magasinmäluga automaadid regulaarsed keeled kontekstivabad keeled regulaarsed grammatikad kontekstivabad grammatikad Näide 7.1 Konstrueerime järgnevas ühe nn. magasiniga täiendatud mittedeterministliku lõpliku automaadi M, mis aktsepteerib kõik wcw R -kujulised palindroomid tähestikus {, 1, c}, kus w on mistahes sõna tähestikus {, 1}. Olgu automaadi M seisundite hulk kahe-elemendiline, Q = {q, q 1 }, ja sisendsümbolite hulk kolme-elemendiline, Σ = {, 1, c}. Lisaks vaatleme nn. magasini (inglise keeles stack), mis võib sisaldada mistahes lõpliku hulga siniseid ja rohelisi kuulikesi, aga samuti ülimalt ühe punase kuulikese. Magasinist võetakse kuule põhimõttel viimasena sisse - esimesena välja. Automaat M töötab järgmiselt: 1) Töö alguses on M seisundis q ning magasinis on üks punane kuulike; 2) Kui seisundis q on sisendiks, siis lisatakse magasini sinine kuulike, kui sisendiks on 1, siis lisatakse magasini roheline kuulike. Nii ühel kui teisel juhul jääb M seisundisse q. Kui aga sisendiks on c, siis kuulikest ei lisata ning M läheb üle seisundisse q 1. 3) Kui seisundis q 1 on sisendiks (1) ning magasini ülemine kuulike on sinine (vastavalt roheline), siis see võetakse sealt ära ning seisundiks jääb q 1. Kui käigu tulemusena magasinis on ülemiseks punane kuulike, siis see eemaldatakse ning M lõpetab töö. Kõikidel muudel juhtudel M katkestab töö. M aktsepteerib kõik sõnad tähestikus Σ, mille korral töö lõpus on magasin tühi. Kerge on veenduda selles, et magasin tühjeneb parajasti siis, kui sisendsümbolite jada moodustab wcw R -kujulise sõna, kus w {, 1}. Definitsioon 7.2 Magasiniga (mittedeterministlikuks) automaadiks (pushdown automaton) nim. seitsmikut (Q, Σ, Γ, δ, q, Z, F ), milles 1) Q on lõplik seisundite hulk; 2) Σ on lõplik sisendsümbolite hulk; 3) Γ on lõplik magasinisümbolite hulk; 4) q Q on automaadi algusseisund; 5) Z Γ on magasini algussümbol: 6) F Q on lõpuseisundite hulk; 7) δ (nn. üleminekufunktsioon) on kujutus hulgast Q (Σ {ɛ}) Γ hulga Q Γ lõplike osahulkade hulka. 47

Võrdus δ(q, a, Z) = {(p 1, γ 1 ),..., (p m, γ m )} tähendab, et seisundis q olles ning omades tähte Z magasini ülemise tähena, läheb automaat sisendi a Σ toimel ühesse seisunditest p i, kusjuures magasinis asendataks kõige pealmine sümbol Z Γ sõnaga γ i (jadana magasini sisu kirjutades selle jada kõige vasakpoolne sümbol on kõige pealmine ). NB! Paneme tähele, et sisendsümbolina käsitletakse ka tühja sõna, st tegemist on ɛ-üleminekuga automaadiga. Definitsioon 7.3 Juhul, kui δ(q, a, Z) 1 iga q Q, a Σ {ɛ} ja Z Γ korral, kusjuures δ(q, ɛ, Z) = 1 korral δ(q, a, Z) =, a Σ, siis nimetatakse magasiniga automaati M deterministlikuks. Magasiniga (kasutatakse ka terminit magasinmäluga) automaadi tööd (nii eelnenut kui eesseisvat) kirjeldab kolmik (q, w, α), kus q on automaadi momendi seisund, w (veel sisestamata) sisendsümbolite jada ja α on magasinis olevate sümbolite jada. Kui järgmisena sisestamisele tulev sümbol on a ning magasini ülemine sümbol on Z, s.t. magasiniga automaadi momendi olukord kirjeldav kolmik on kujul (q, aw, Zα), siis (p, γ) δ(q, a, Z) puhul kirjutame (q, aw, Zα) (p, w, γα) või (q, aw, Zα) M (p, w, γα), kui on vaja osutada vastavale magasiniga automaadile. Deterministliku automaadi korral on mistahes kolmiku korral järgmisena rakendatav ülimalt vaid üks üleminek. Edaspidi vaatleme seosena eelpooldefineeritud seose refleksiivset ja transitiivset katet, st et kui w = w 1 w 2 ning peale w 1 sisestamist on automaat seisundis p ning magasinis on β, siis kirjutame (q, w, α) (p, w 2, β). Hulka L(M) = {w (q, w, Z ) (p, ɛ, α), p F, α Γ } nimetatakse magasiniga automaadi M lõpuseisundite läbi aktsepteeritavaks keeleks. Hulka N(M) = {w (q, w, Z ) (p, ɛ, ɛ), p Q} nimetatakse magasiniga automaadi M poolt tühja magasini läbi aktsepteeritavaks keeleks. Kuna viimasel juhul lõpuseisundid tähtsust ei oma, siis võetakse selleks tühi hulk. NB! Erinevalt lõplikest automaatidest defineerivad mittedeterministlikud magasiniga automaadid laiema keelte klassi kui deterministlikud magasiniga automaadid: näiteks keelt {ww R w ( + 1) } ei ole võimalik aktsepteerida ühegi deterministliku magasiniga automaadi poolt. Definitsioon?? esitab mittedeterministliku magasiniga automaadi; deterministlikke magasiniga automaate käesolevas kursuses ei käsitleta. Näide 7.4 Järgnev (deterministlik) magasiniga automaat aktsepteerib (tühja magasini kaudu) keele {wcw R w {, 1} }: M = ({q, q 1 }, {, 1, c}, {P, S, R}, δ, q, P, ) δ(q,, P ) = {(q, SP )} δ(q,, S) = {(q, SS)} δ(q,, R) = {(q, SR)} δ(q, 1, P ) = {(q, RP )} δ(q, 1, S) = {(q, RS)} δ(q, 1, R) = {(q, RR)} δ(q, c, P ) = {(q 1, P )} δ(q, c, S) = {(q 1, S)} δ(q, c, R) = {(q 1, R)} δ(q 1,, S) = {(q 1, ɛ)} δ(q 1, ɛ, P ) = {(q 1, ɛ)} δ(q 1, 1, R) = {(q 1, ɛ)} Analoogiliselt lõplike automaatidega võib ka magasiniga automaadid esitada tabeli kujul. Viimase näite korral näeks vastav tabel välja järgmine: (q, P ) (q, S) (q, R) (q 1, P ) (q 1, S) (q 1, R) (q, SP ) (q, SS) (q, SR) (q 1, ɛ) 1 (q, RP ) (q, RS) (q, RR) (q 1, ɛ) c (q 1, P ) (q 1, S) (q 1, R) ɛ (q 1, ɛ) Nii nagu see oli lõplike automaatide puhul, saab ka magasiniga automaatide tööd kujutada märgistatud graafi abil. Kui (p, β) δ(q, a, Z), siis graafil kujutatakse seda tipust q tippu p suunduva noole abil, mis on märgistatud avaldisega a, Z β. 48

Väikese seisundite arvu ja suure arvu üleminekute korral võivad noolte märgised olla üsna kohmakad. Näiteks viimases näites oleva magasiniga automaadi puhul oleks seisundist q iseendasse viiva noole märgistuseks, P SP, S SS, R SR 1, P RP 1, S RS 1, R RR Näitame järgnevas, et magasiniga automaatide poolt lõpuseisundite kaudu aktsepteeritavate keelte klass langeb kokku tühja magasini kaudu aktsepteeritavate keelte klassiga. Teoreem 7.5 Mistahes keele L korral L = L(M 1 ), kus M 1 on mingi magasiniga automaat, parajasti siis, kui L = N(M 2 ) mingi magasiniga automaadi M 2 korral. Tõestus. Tarvilikkus. Olgu L = L(M 1 ), kus M 1 = (Q, Σ, Γ, δ, q, Z, F ). Konstrueerime magasiniga automaadi M 2, mille magasin tühjeneb täpselt siis, kui M 1 jõuab mingisse lõpuseisundisse. Olgu M 2 = (Q {q, q e }, Σ, Γ {X }, δ, q, X, ), kus δ on defineeritud järgmiselt: 1) δ (q, ɛ, X ) = {(q, Z X )}; 2) δ (q, a, Z) = δ(q, a, Z) iga q Q, a Σ {ɛ}, Z Γ korral; 3) δ (q, ɛ, Z) = {(q e, Z)} iga q F ja Z Γ {X } korral; 4) δ (q e, ɛ, Z) = {(q e, ɛ)} iga Z Γ {X } korral. Magasini lõputähis X on võetud kasutusele selleks, et vältida magasini enneaegset tühjendamist (M 1 korral võib magasin tühjeneda ka automaadi mitte lõpuseisundis olles!). Automaadi M 2 konstrueerimist kujutab järgmine joonis: M 2 M 1 q ɛ q F Z ɛ X q e Olgu nüüd x L(M 1 ). Siis (q, x, Z ) M1 (q, ɛ, γ) mingi q F korral. Reeglite 1) ja 2) põhjal saame (q, x, X ) M2 (q, x, Z X ) M2 (q, ɛ, γx ) M2 (q e, ɛ, ɛ), s.t. x N(M 2 ). Kui x N(M 2 ), siis vastavalt M 2 konstruktsioonile peab üleminekute jada algama reeglist 1), misjärel reegli 2) korduva rakendamisega (et lõpus saaks käivituda magasini tühjendamine vastavalt reeglitele 3) ja 4)) peab automaat M 2 jõudma seisundisse q F. Seega x L(M 1 ). Piisavus. Olgu L = N(M 2 ), kus M 2 = (Q, Σ, Γ, δ, q, Z, ). Peame konstrueerima magasiniga automaadi M 1, mis jõuaks mingisse lõpuseisundisse parajasti siis, kui M 2 magasin saab tühjaks. Olgu M 1 = (Q {q, q f }, Σ, Γ {X }, δ, q, X, {q f }), kus: 1) δ (q, ɛ, X ) = {(q, Z X )}; 2) δ (q, a, Z) = δ(q, a, Z) iga q Q, a Σ {ɛ}, Z Γ korral; 3) δ (q, ɛ, X ) = {(q f, ɛ)} iga q Q korral. 49

Automaadi M 1 konstrueerimist kujutab järgmine joonis: M 1 M 2 q ɛ q Z X ɛ... q f Selle tõestus, et L = L(M 1 ), on analoogiline teoreemi tarvilikkuse tõestamisega. Teoreem 7.6 L on kontekstivaba keel parajasti siis, kui L = N(M) mingi magasiniga automaadi M korral. Tõestus**. Tarvilikkus. Olgu ɛ L ja G = (V, T, P, S) keele L genereeriv Greibachi normaalkujul olev grammatika ning olgu M = ({q}, T, V, δ, q, S, ), kus (q, γ) δ(q, a, A), kui A aγ kuulub hulka P. Vaatleme edaspidi vaid vasaktuletusi. Siis igas tuletuskäigus on kõikidel sõnadel vaid terminalidest koosnev prefix, millele järgneb muutujatest koosnev sufiks, kusjuures sufiksit võib vaadelda kui magasinis olevate sümbolite jada. Näitame induktsiooniga tuletusjada i pikkuse järgi, et S = xα, x T +, α V parajasti siis, kui (q, x, S) M (q, ɛ, α). Olgu kõigepealt (q, x, S) i (q, ɛ, α). Kui i = 1, siis x T ja (q, α) δ(q, x, S), s.t. S xα P ja järelikult ka S xα. Olgu x = ya ning olgu (q, ya, S) i 1 (q, a, β) (q, ɛ, α). Kui viimases üleminekujadas kõikides üleminekutes v.a. viimane sümboli a eemaldame, siis saame (q, y, S) (q, ɛ, β), millest induktsiooni eelduse tõttu S = yβ. Viimasest üleminekust (q, a, β) (q, ɛ, α) järeldub, et β = Aγ mingi A V korral, A aη P ja α = ηγ. Seega S = yβ = yaγ yaηγ = xα. Olgu S = xα mingi vasaktuletuse kaudu. i = 1 korral ilmselt (vastavalt M definitsioonile) (q, x, S) (q, ɛ, α). Olgu S = yaγ yaηγ, kusjuures x = ya ja α = ηγ (s.t. viimasel i-1 üleminekul on rakendatud tuletusreeglit A aη). Induktsiooni eelduse tõttu kehtib (q, y, S) (q, ɛ, Aγ), mistõttu (q, ya, S) (q, a, Aγ). Et A aη P, siis (q, η) δ(q, a, A). Seega kehtib (q, x, S) (q, a, Aγ) (q, ɛ, α). Võttes α = ɛ, saame, et S = x parajasti siis, kui (q, x, S) (q, ɛ, ɛ). Kui ɛ L, siis rakendame eelnevat keelele L\{ɛ} ning lisame ülemineku (q, ɛ) δ(q, ɛ, S). Piisavus. Olgu M = (Q, Σ, Γ, δ, q, Z, ). Olgu G = (V, Σ, P, S) KVG, milles V = {[q, A, p] q, p Q, A Γ} {S} ning hulgaks P on võetud järgmine tuletusreeglite hulk: 1) S [q, Z, q] iga q Q korral; 2) Kui (q 1, B 1... B m ) δ(q, a, A), siis lisame hulka P reeglid [q, A, q m+1 ] a[q 1, B 1, q 2 ][q 2, B 2, q 3 ]... [q m, B m, q m+1 ], q, q 1,..., q m+1 Q, a Σ {ɛ}, A, B 1,..., B m Γ. m = korral on tuletusreegliks [q, A, q 1 ] a. Induktsiooniga sammude arvu järgi G tuletusjadas tõestame, et [q, A, p] = x parajasti siis, kui (q, x, A) M (p, ɛ, ɛ). Olgu (q, x, A) (p, ɛ, ɛ). Kui i = 1, siis (p, ɛ) δ(q, x, A), x {ɛ} Σ. Seega [q, A, p] x P. Olgu x = ay ja (q, ay, A) (q 1, y, B 1... B n ) (p, ɛ, ɛ) ning avaldugu y kujul y = y 1... y n, kus y j rakendamisel teegist eemaldatakse esmakordselt B j. Leiduvad seisundid q 2,..., q n+1 = p, nii et (q j, y j, B j ) (q j+1, ɛ, ɛ) vähema kui i üleminekuga. Seega induktsiooni eelduse tõttu [q j, B j, q j+1 ] = y i, 1 j n. Et (q 1, B 1... B n ) δ(q, a, A), siis [q, A, p] a[q 1, B 1, q 2 ]... [q n, B n, q n+1 ], ning järelikult [q, A, p] = ay 1... y n = x. Olgu nüüd [q, A, p] = x. Tuleb näidata, et (q, x, A) (p, ɛ, ɛ). Et i = 1 korral [q, A, p] x P, siis (p, ɛ) δ(q, x, A) ning induktsiooni eeldus on täidetud (x Σ {ɛ}). Eel- 5

dame, et [q, A, p] a[q 1, B 1, q 2 ]... [q n, B n, q n+1 ] = x, q n+1 = p. Siis x = ax 1... x n, kus [q j, B j, q j+1 ] = x j, 1 j n. Induktsiooni eelduse tõttu (q j, x j, B j ) (q j+1, ɛ, ɛ), 1 j n, millest (q j, x j, B j... B n ) (q j+1, ɛ, B j+1... B n ). Et (q, x, A) (q 1, x 1... x n, B 1... B n ), siis (q, x, A) (p, ɛ, ɛ). Võttes q = q, A = Z, saame, et [q, Z, p] = x parajasti siis, kui (q, x, Z ) (p, ɛ, ɛ). Seega S = x parajasti siis, kui (q, x, Z ) (p, ɛ, ɛ), s.t. x L(G) parajasti siis, kui x N(M). Viimase teoreemi põhjal leidub mistahes kontekstivaba grammatika G jaoks magasiniga automaat, mis aktsepteerib täpselt grammatika G poolt genereeritud keele. Seega, kui esitada näiteks mingi programmeerimiskeele L spetsifikatsioon (Greibachi normaalkujulise) kontekstivaba grammatikana, siis leidub selline magasinmäluga automaat, mis on võimeline kontrollima, kas selles keeles L kirjutatud programm vastab spetsifikatsioonile, s.t. on süntaktiliselt korrektne. Näide 7.7 Konstrueerime magasiniga automaadi, mis aktsepteerib kõik sõnad tähestikus {a, b}, milles esinevad tähed a ja b võrdsel arvul, st L = {w; w a = w b }. Keele L genereerib grammatika, mille tuletusreegliteks on P = {S asbs bsas ɛ, A a, B b}. Vastava magasiniga automaadi üleminekureegliteks on δ(q, a, S) = (q, SBS), δ(q, b, S) = (q, SAS), δ(q, ɛ, S) = (q, ɛ), δ(q, a, A) = (q, ɛ), δ(q, b, B) = (q, ɛ). Sõna abba aktsepteerivaks üleminekujadaks on (q, abba, S) (q, bba, SBS) (q, bba, BS) (q, ba, S) (q, a, SAS) (q, a, AS) (q, ɛ, S) (q, ɛ, ɛ). Märkus. Viimases näites tuletusreegli S ɛ ärajätmisel tekkiv grammatika genereerib tühja keele. Ülesanne 7.1 Konstrueerida magasiniga automaat, mis aktsepteerib järgmistest tuletusreeglitest koosneva grammatika poolt genereeritava keele: S aaa, A as bs a. Ülesanne 7.2 Konstrueerida magasiniga automaat, mis aktsepteerib keele L = {w {a, b} ; w a = w b, w 2}. Ülesanne 7.3 Konstrueerida järgmised keeled aktsepteerivad magasiniga automaadid: 1. {a n b n n 1} 2. {a n b n c m m, n 1} 3. {ww R w ( + 1) } 4. { n 1 n n 1} { n 1 2n n 1}. Ülesanne 7.4** Leida keele N(M) jaoks kontekstivaba grammatika, kus M = ({q ; q 1 }, {; 1}, {Z ; X}, δ, q, Z, ) ning δ on defineeritud järgmiselt: δ(q, 1, Z ) = {(q, XZ )}, δ(q, ɛ, Z ) = {(q, ɛ)}, δ(q, 1, X) = {(q, XX)}, δ(q 1, 1, X) = {(q 1, ɛ)}, δ(q,, X) = {(q 1, X)}, δ(q 1,, Z ) = {(q, Z )}. Kas viimane automaat on deterministlik või mittedeterministlik? 51