M =(K, Σ, Γ,, s, F ) Σ ={a, b} Γ ={c, d} = {( (s, a, e), (s, cd) ), ( (s, e, e), (f, e) ), (f, e, d), (f, e)

Samankaltaiset tiedostot
T Syksy 2002 Tietojenkäsittelyteorian perusteet Harjoitus 8 Demonstraatiotehtävien ratkaisut

S BAB ABA A aas bba B bbs c

Pinoautomaatit. Pois kontekstittomuudesta

Pinoautomaatit. TIEA241 Automaatit ja kieliopit, kesä Antti-Juhani Kaijanaho. 6. kesäkuuta 2013 TIETOTEKNIIKAN LAITOS. Pinoautomaatit.

Yhteydettömän kieliopin jäsennysongelma

Rajoittamattomat kieliopit

Testaa: Vertaa pinon merkkijono syötteeseen merkki kerrallaan. Jos löytyy ero, hylkää. Jos pino tyhjenee samaan aikaan, kun syöte loppuu, niin

Pinoautomaatit. TIEA241 Automaatit ja kieliopit, syksy Antti-Juhani Kaijanaho. 6. lokakuuta 2016 TIETOTEKNIIKAN LAITOS

Rekursiivinen Derives on periaatteessa aivan toimiva algoritmi, mutta erittäin tehoton. Jos tarkastellaan esim. kieliopinpätkää

uv n, v 1, ja uv i w A kaikilla

TIEA241 Automaatit ja kieliopit, syksy Antti-Juhani Kaijanaho. 12. marraskuuta 2015

4. Tehtävässä halutaan todistaa seuraava ongelma ratkeamattomaksi:

vaihtoehtoja TIEA241 Automaatit ja kieliopit, syksy 2016 Antti-Juhani Kaijanaho 13. lokakuuta 2016 TIETOTEKNIIKAN LAITOS

Täydentäviä muistiinpanoja Turingin koneiden vaihtoehdoista

Chomskyn hierarkia ja yhteysherkät kieliopit

TIEA241 Automaatit ja kieliopit, kevät 2011 (IV) Antti-Juhani Kaijanaho. 31. maaliskuuta 2011

Olkoon G = (V,Σ,P,S) yhteydetön kielioppi. Välike A V Σ on tyhjentyvä, jos A. NULL := {A V Σ A ε on G:n produktio};

1. Universaaleja laskennan malleja

T Syksy 2006 Tietojenkäsittelyteorian perusteet T Harjoitus 7 Demonstraatiotehtävien ratkaisut

δ : (Q {q acc, q rej }) (Γ k {, }) Q (Γ k {, }) {L, R}.

(0 1) 010(0 1) Koska kieli on yksinkertainen, muodostetaan sen tunnistava epädeterministinen q 0 q 1 q 2 q3

ICS-C2000 Tietojenkäsittelyteoria Kevät 2016

Laskennan mallit (syksy 2010) Harjoitus 4, ratkaisuja

Se mistä tilasta aloitetaan, merkitään tyhjästä tulevalla nuolella. Yllä olevassa esimerkissä aloitustila on A.

9.5. Turingin kone. Turingin koneen ohjeet. Turingin kone on järjestetty seitsikko

TIEA241 Automaatit ja kieliopit, syksy Antti-Juhani Kaijanaho. 19. syyskuuta 2016

Turingin koneet. Sisällys. Aluksi. Turingin koneet. Turingin teesi. Aluksi. Turingin koneet. Turingin teesi

Automaatit. Muodolliset kielet

Laskennan rajoja. Sisällys. Meta. Palataan torstaihin. Ratkeavuus. Meta. Universaalikoneet. Palataan torstaihin. Ratkeavuus.

Hahmon etsiminen syotteesta (johdatteleva esimerkki)

TIEA241 Automaatit ja kieliopit, kevät 2011 (IV) Antti-Juhani Kaijanaho. 19. tammikuuta 2012

Lisää pysähtymisaiheisia ongelmia

TIEA241 Automaatit ja kieliopit, kesä Antti-Juhani Kaijanaho. 29. toukokuuta 2013

TIEA241 Automaatit ja kieliopit, syksy Antti-Juhani Kaijanaho. 16. marraskuuta 2015

Esimerkki 2.28: Tarkastellaan edellisen sivun ehdot (1) (3) toteuttavaa pinoautomaattia, jossa päätemerkit ovat a, b ja c ja pinoaakkoset d, e ja $:

on rekursiivisesti numeroituva, mutta ei rekursiivinen.

Turingin koneen laajennuksia

815338A Ohjelmointikielten periaatteet Harjoitus 2 vastaukset

Laskennan rajoja. TIEA241 Automaatit ja kieliopit, kesä Antti-Juhani Kaijanaho. 20. kesäkuuta 2013 TIETOTEKNIIKAN LAITOS.

Rekursiiviset palautukset [HMU 9.3.1]

1. Universaaleja laskennan malleja

6.5 Turingin koneiden pysähtymisongelma Lause 6.9 Kieli. H = {c M w M pysähtyy syötteellä w}

Laskennan mallit (syksy 2009) Harjoitus 11, ratkaisuja

TIEA241 Automaatit ja kieliopit, kevät 2011 (IV) Antti-Juhani Kaijanaho. 16. toukokuuta 2011

Laskennan rajoja. TIEA241 Automaatit ja kieliopit, kevät Antti-Juhani Kaijanaho. 6. maaliskuuta 2012 TIETOTEKNIIKAN LAITOS.

TIEA241 Automaatit ja kieliopit, syksy Antti-Juhani Kaijanaho. 5. marraskuuta 2015

Rajoittamattomat kieliopit (Unrestricted Grammars)

Muunnelmia Turingin koneista sekä muita vaihtoehtoisia malleja

TIEA241 Automaatit ja kieliopit, syksy Antti-Juhani Kaijanaho. 12. lokakuuta 2016

ICS-C2000 Tietojenkäsittelyteoria Kevät 2016

Epädeterministisen Turingin koneen N laskentaa syötteellä x on usein hyödyllistä ajatella laskentapuuna

TIEA241 Automaatit ja kieliopit, kevät Antti-Juhani Kaijanaho. 12. tammikuuta 2012

Turingin koneet. TIEA241 Automaatit ja kieliopit, syksy Antti-Juhani Kaijanaho. 7. joulukuuta 2015 TIETOTEKNIIKAN LAITOS.

Tietotekniikan valintakoe

Kertausta 1. kurssikokeeseen

Äärellisten automaattien ja säännöllisten kielten ekvivalenssi

Ongelma(t): Mikä on Turingin kone? Miten Turingin kone liittyy funktioihin ja algoritmeihin? Miten Turingin kone liittyy tietokoneisiin?

11.4. Context-free kielet 1 / 17

Laskennan rajoja. TIEA241 Automaatit ja kieliopit, syksy Antti-Juhani Kaijanaho. 10. joulukuuta 2015 TIETOTEKNIIKAN LAITOS.

Laskennan teoria (kevät 2006) Harjoitus 3, ratkaisuja

Yllä osoitettiin, että säännöllisten kielten joukko on suljettu yhdisteen

Säännöllisten kielten sulkeumaominaisuudet

Tehtävä 2: Säännölliset lausekkeet

ICS-C2000 Tietojenkäsittelyteoria. Tähän mennessä: säännölliset kielet. Säännöllisten kielten pumppauslemma M :=

5.3 Ratkeavia ongelmia

8. Kieliopit ja kielet

Laskennan mallit (syksy 2010) Harjoitus 8, ratkaisuja

TIEA241 Automaatit ja kieliopit, kesä Antti-Juhani Kaijanaho. 22. toukokuuta 2013

Säännölliset kielet. Sisällys. Säännölliset kielet. Säännölliset operaattorit. Säännölliset kielet

M = (Q, Σ, Γ, δ, q 0, q acc, q rej )

Automaattiteoria diskreetin signaalinkäsittelyn perusmallit ja -menetelmät ( diskreettien I/O-kuvausten yleinen teoria)

Ei-yhteydettömät kielet [Sipser luku 2.3]

Täydentäviä muistiinpanoja laskennan rajoista

jäsentäminen TIEA241 Automaatit ja kieliopit, syksy 2015 Antti-Juhani Kaijanaho 26. marraskuuta 2015 TIETOTEKNIIKAN LAITOS

Tarkastelemme ensin konkreettista esimerkkiä ja johdamme sitten yleisen säännön, joilla voidaan tietyissä tapauksissa todeta kielen ei-säännöllisyys.

TIEA241 Automaatit ja kieliopit, syksy Antti-Juhani Kaijanaho. 9. lokakuuta 2016

TIEA241 Automaatit ja kieliopit, kevät Antti-Juhani Kaijanaho. 26. tammikuuta 2012

ongelma A voidaan ratkaista ongelman B avulla, joten jossain mielessä

ICS-C2000 Tietojenkäsittelyteoria

ICS-C2000 Tietojenkäsittelyteoria

9. Matemaattisista koneista.

Chomskyn hierarkia. tyyppi 0 on juuri esitelty (ja esitellään kohta lisää) tyypit 2 ja 3 kurssilla Ohjelmoinnin ja laskennan perusmallit

Osoitamme, että jotkut kielet eivät ole säännöllisiä eli niitä ei voi tunnistaa äärellisellä automaatilla.

Formalisoimme nyt edellä kuvatun laskennan.

Kaulaketju. Syöte. Tuloste. Esimerkki 1. Esimerkki 2

Muodolliset kieliopit

TIEA241 Automaatit ja kieliopit, kevät 2011 (IV) Antti-Juhani Kaijanaho. 31. maaliskuuta 2011

Säännöllisten operaattoreiden täydentäviä muistiinpanoja

FORMAALI SYSTEEMI (in Nutshell): aakkosto: alkeismerkkien joukko kieliopin määräämä syntaksi: sallittujen merkkijonojen rakenne, formaali kuvaus

Äärellisten automaattien ja säännöllisten lausekkeiden minimointi

Täydentäviä muistiinpanoja jäsennysalgoritmeista

Luonnolliset vs. muodolliset kielet

Todistus: Aiemmin esitetyn mukaan jos A ja A ovat rekursiivisesti lueteltavia, niin A on rekursiivinen.

Pysähtymisongelman ratkeavuus [Sipser luku 4.2]

Yhteydettömät kieliopit [Sipser luku 2.1]

Kirjoita oma versio funktioista strcpy ja strcat, jotka saavat parametrinaan kaksi merkkiosoitinta.

T Syksy 2002 Tietojenkäsittelyteorian perusteet Harjoitus 5 Demonstraatiotehtävien ratkaisut. ja kaikki a Σ ovat säännöllisiä lausekkeita.

Vasen johto S AB ab ab esittää jäsennyspuun kasvattamista vasemmalta alkaen:

Laskennan mallit (syksy 2010) 2. kurssikoe, ratkaisuja

Output. Input Automaton

Transkriptio:

Tik-79.148 Kevät 2001 Tietojenkäsittelyteorian perusteet Laskuharjoitus 7 Demonstraatiotehtävien ratkaisut 1. Pinoautomaatti M = K Σ Γ s F missä K Σ s ja F on määritelty samalla tavalla kuin tilakoneellekin. Γ on pinoaakkosto ja K Σ {e} Γ K Γ on äärellinen siirtymärelaatio. Pinoautomaatissa on epädeterministiseen tilakoneeseen lisätty ääretön pino jota käytetään laskennan aikana muistina. Ainoastaan pinon huippua voidaan käsitellä. Siirtymässä q 1 a α q 2 β siirrytään tilasta q 1 tilaan q 2 lukemalla a syötteestä ja α pinon päältä. Samalla laitetaan β pinoon. Epädeterministinen pinoautomaatti M hyväksyy sanan w eli w LM mikäli syötteelle on olemassa jokin jono siirtymiä jotka johtavat alkutilasta lopputilaan ja suorituksen lopuksi pino on tyhjä eli s w e M f e e jollekin f F. Tehtävässä: a M =K Σ Γ s F K ={s f} F ={f} Σ ={a b} Γ ={c d} = { s a e s cd s e e f e f b c f e f b d f e f e d f e } Suorituksen aluksi automaatti lukee kaikki a-kirjaimet ja tallettaa niiden määrän pinoon. Koska n saa olla mitä tahansa välillä m n 2m käytetään pinoaakkosissa kahdenlaisia symboleita. Jokaista pinoon talletettua c-kirjainta kohden täytyy syötteessä olla yksi b- kirjain mutta d-kirjaimet voi poistaa pinosta myös ilman syötteen lukemista. 1

b M =K Σ Γ s F K ={s f} F ={f} Σ ={a b} Γ ={a b} = { s a e s a s b e s b s a e f e s b e f e s e e f e f a a f e f b b f e } Automaatti toimii kahdessa vaiheessa: i. Ensin luetaan sisään sanan alkupuolisko ja talletetaan luetut kirjaimet pinoon. ii. Automaatti arvaa epädeterministisesti sanan keskikohdan minkä jälkeen se poistaa yksitellen merkkejä pinosta ja tarkistaa että syötteessä jäljellä olevat merkit ovat samat kuin pinosta poistetut merkit. 2. Mille tahansa pinoautomaatille M = K Σ Γ s F voidaan määritellä kieli: L f M = {w Σ s w e M f e α jollekin f F α Γ } Kieleen LM kuuluvat ne sanat joille on olemassa jokin pinoautomaatin suoritus joka päätyy lopputilaan siten että syöte on käyty loppuun ja pino on tyhjä. L f M lisää tähän ne sanat joille pino ei ole tyhjä suorituksen loppuessa. Tehtävän tavoitteena on osoittaa että LM ja L f M ovat ilmaisuvoimaltaan yhtä voimakkaita. a Aluksi on osoitettava että jokaiselle pinoautomaatille M on olemassa jokin automaatti M siten että LM = L f M. M voidaan muodostaa siten että lisätään M:ään uusi lopputila jota käytetään pinon tyhjentämiseen suorituksen lopuksi: M =K Σ Γ s F K =K {f } f / K F ={f } = { f e e f e f F } { f e α f e α Γ } Nyt jos w L f M niin s w e M f e α joillakin α Γ ja f F. Tällöin myös koska automaattien siirtymät ovat lisäyksiä lukuunottamatta samat s w e M f e α M f e α M f e e joten w LM. Toiseen suuntaan: jos w LM niin s w e M f e α M f e e. Tällöin s w e M f e α eli w L f M. 2

b Vielä täytyy osoittaa että on olemassa jokin pinoautomaatti M siten että L f M = LM. Eräs mahdollinen tapa konstruoida M on sijoittaa suorituksen aluksi pinon pohjalle jokin symboli γ joka ei kuulu Γ:aan ja muuten toimia kuten M. Nyt kaikille sanoille w LM päädytään konfiguraatioon f e γ joten w L f M. Formaalimmin: M =K Σ Γ s F K =K {f s } f s / K Γ =Γ {γ} γ / Γ F ={f } = { s e e s γ f e γ f γ f F } Jos w LM eli s w e M f e e jollakin f F niin myös s w e M s w γ M f e γ M f e γ joten w L f M. Toiseen suuntaan: Jos w L f M eli s w e M s w γ M f e γ M f e γ niin myös s w e M f e e eli w LM. Todistuksessa on oleellista huomata että γ / Γ. Tämän vuoksi sitä ei käytetä missään :n siirtymässä joten voidaan olla varmoja että pinossa on ainoastaan yksi γ joka sinne aluksi laitettiin. 3. Pinoautomaattia vastaavan yhteydettömän kieliopin selvittäminen on suhteellisen työlästä. Oppikirjan vanhemmassa painoksessa rajoitutaan käsittelemään yksinkertaisia pinoautomaatteja jotka täyttävät rajoitukset Jos q u β p γ on pinoautomaatin siirtymä niin β 1. Jos q u e p γ niin myös q u A p γa kaikille A Γ. Rajoitukset eivät kuitenkaan heikennä pinoautomaattien ilmaisuvoimaa sillä mikä tahansa pinoautomaatti voidaan muuttaa yksinkertaiseksi yksityiskohdat kirjassa. Uudemmassa painoksessa näitä rajoituksia ei erikseen esitetä vaan ne on sisällytetty kieliopin muodostamisalgoritmiin. Tämä ratkaisu on vanhemman painoksen mukainen. Kieliopin muodostamisen ajatuksena on ottaa kielen nonterminaaleiksi kolmikkoja q A p missä q p K ja A Γ {e}. Ajatuksena on että q A p generoi kaikki ne merkkijonot joita tutkiessaan automaatti siirtyisi tilasta q tilaan p poistaen samalla pinosta symbolin A. Kieliopin sääntöjä on neljänlaisia: 1. Kaikille f F asetetaan sääntö S s e f. 2. Kaikille siirtymille q u A r B 1... B n missä q r K u Σ n > 0 B 1... B n Γ ja A Γ {e} lisätään sääntö q A p u r B 1 q 1 q 1 B 2 q 2... q n 1 B n p kaikille p q 1... q n 1 K. 3

3. Kaikille siirtymille q u A r e missä q r K u Σ ja A Γ {e} lisätään sääntö q A p u r e p 4. Kaikille q K lisätään sääntö q e q e. Säännöistä ensimmäinen ilmaisee että tarkoituksena on päästä alkutilasta johonkin lopputilaan niin että pino jää lopuksi tyhjäksi. Viimeistä muotoa olevat säännöt kertovat että mitään laskentaa ei tarvita ellei siirrytä toiseen tilaan. Muotoa 2 olevat säännöt kuvaavat pitkää suoritusta jolla siirrytään tilasta q tilaan p ja samalla poistetaan A pinosta. Säännön oikea puoli konstruoi automaatin tilasiirtymien jonon siirtymä kerrallaan. Muotoa 3 olevat säännöt ovat analogisia muotoa 2 olevien sääntöjen kanssa. Tehtävän pinoautomaatti on M =K Σ Γ s F K ={s q f} Σ ={a b} Γ ={a b c} F ={f} = { s e e q c q a c q ac q a a q aa q a b q e q b c q bc q b b q bb q b a q e q e c f e } 4

Kielioppi G = V Σ R S V = Σ {S} { q A p q p K A Γ {e}} R ={S s e f 1. s e s e q e q e f e f e 4. s e s e q c s 2./tr.1 s e q e q c q 2./tr.1 s e f e q c f 2./tr.1 q c s a q a s s c s 2./tr.2 q c q a q a q q c q 2./tr.2 q c f a q a f f c f 2./tr.2 q a s a q a s s a s 2./tr.3 q a q a q a q q a q 2./tr.3 q a f a q a f f a f 2./tr.3 q b s a q e s 3./tr.4 q b q a q e q 3./tr.4 q b f a q e f 3./tr.4 q c s b q b s s c s 2./tr.5 q c q b q b q q c q 2./tr.5 q c f b q b f f c f 2./tr.5 q b s b q b s s b s 2./tr.6 q b s b q b q q b q 2./tr.6 q b s b q b f f b f 2./tr.6 q a s b q e s 3./tr.7 q a q b q e q 3./tr.7 q a f b q e f 3./tr.7 q c s e f e s 3./tr.8 q c q e f e q 3./tr.8 q c f e f e f 3./tr.8 Näistä säännöistä suuri osa on tarpeettomia. Tarvittavat saadaan selville lähtemällä liikkeelle säännöstä S s e f ja katsomalla mitä kaikkia 5

sääntöjä voidaan käyttää. Tuloksena syntyvät säännöt ovat R ={S s e f s e f e q c f q c f a q a q q c f q c f b q b q q c f q c f e f e f q a q a q a q q a q q a q b q e q q b q b q b q q b q q b q a q e q q e q e f e f e} Kielioppia voi vielä sieventää. Merkitään q c f = S q b q = B q a q = A ja tulokseksi saadaan R = {S aas S bbs S e A aaa A b B bbb B a} 6