Automaatit. Muodolliset kielet



Samankaltaiset tiedostot
Säännöllisten kielten sulkeumaominaisuudet

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

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

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

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

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

Muodolliset kieliopit

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

Hahmon etsiminen syotteesta (johdatteleva esimerkki)

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

Kertausta 1. kurssikokeeseen

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

Laskennan mallit (syksy 2010) Harjoitus 4, ratkaisuja

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

Jos sekaannuksen vaaraa ei ole, samastamme säännöllisen lausekkeen ja sen esittämän kielen (eli kirjoitamme R vaikka tarkoitammekin L(R)).

Pinoautomaatit. Pois kontekstittomuudesta

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

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

Täydentäviä muistiinpanoja Turingin koneiden vaihtoehdoista

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

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

Turingin koneen laajennuksia

Rajoittamattomat kieliopit

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

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

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

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

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

Yhteydettömän kieliopin jäsennysongelma

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

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

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

9. Matemaattisista koneista.

DFA:n käyttäytyminen ja säännölliset kielet

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

Luonnolliset vs. muodolliset kielet

1. Universaaleja laskennan malleja

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

8. Kieliopit ja kielet

ICS-C2000 Tietojenkäsittelyteoria Kevät 2016

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

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

ICS-C2000 Tietojenkäsittelyteoria

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

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

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

Chomskyn hierarkia ja yhteysherkät kieliopit

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

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

5.3 Ratkeavia ongelmia

Kielenä ilmaisten Hilbertin kymmenes ongelma on D = { p p on polynomi, jolla on kokonaislukujuuri }

Muunnelmia Turingin koneista sekä muita vaihtoehtoisia malleja

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

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

Formalisoimme nyt edellä kuvatun laskennan.

Täydentäviä muistiinpanoja laskennan rajoista

Pysähtymisongelman ratkeavuus [Sipser luku 4.2]

Rekursiiviset palautukset [HMU 9.3.1]

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

on rekursiivisesti numeroituva, mutta ei rekursiivinen.

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

Laskennan mallit

TKT20005 Laskennan mallit (syksy 2018) Kurssikoe, malliratkaisut

Säännöllisen kielen tunnistavat Turingin koneet

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

Laskennan mallit (syksy 2009) Harjoitus 11, ratkaisuja

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

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

ICS-C2000 Tietojenkäsittelyteoria Kevät 2016

Esimerkki 1: Kahviautomaatti.

1. Universaaleja laskennan malleja

2.6 SÄÄNNÖLLISET LAUSEKKEET Automaattimalleista poikkeava tapa kuvata yksinkertaisia kieliä. Olkoot A ja B aakkoston Σ kieliä. Perusoperaatioita:

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

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

Algoritmin määritelmä [Sipser luku 3.3]

TIEA241 Automaatit ja kieliopit, kevät Antti-Juhani Kaijanaho. 8. maaliskuuta 2012

Ongelma 1: Ovatko kaikki tehtävät/ongelmat deterministisiä?

ÄÄRELLISTEN AUTOMAATTIEN MINIMOINTI. 1. Äärelliset automaatit Äärellinen automaatti (DFA = deterministic finite automaton) on

8. Kieliopit ja kielet 1 / 22

Kaikki mitä olet aina halunnut tietää pumppauslemmoista, mutta mitä et ole kehdannut kysyä

3 Suorat ja tasot. 3.1 Suora. Tässä luvussa käsitellään avaruuksien R 2 ja R 3 suoria ja tasoja vektoreiden näkökulmasta.

Lisää pysähtymisaiheisia ongelmia

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

Onko kuvaukset injektioita? Ovatko ne surjektioita? Bijektioita?

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

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

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

Laskennan mallit (syksy 2010) 2. kurssikoe, ratkaisuja

Rekursiolause. Laskennan teorian opintopiiri. Sebastian Björkqvist. 23. helmikuuta Tiivistelmä

Topologia Syksy 2010 Harjoitus 4. (1) Keksi funktio f ja suljetut välit A i R 1, i = 1, 2,... siten, että f : R 1 R 1, f Ai on jatkuva jokaisella i N,

Datatähti 2019 alku. task type time limit memory limit. A Kolikot standard 1.00 s 512 MB. B Leimasin standard 1.00 s 512 MB

Ongelma 1: Ovatko kaikki tehtävät/ongelmat deterministisiä?

Vastaus 1. Lasketaan joukkojen alkiot, ja todetaan, että niitä on 3 molemmissa.

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

Tietotekniikan valintakoe

Miten perustella, että joukossa A = {a, b, c} on yhtä monta alkiota kuin joukossa B = {d, e, f }?

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

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

ICS-C2000 Tietojenkäsittelyteoria Kevät 2016

811120P Diskreetit rakenteet

Transkriptio:

Automaatit Automaatit ovat teoreettisia koneita, jotka käsittelevät muodollisia sanoja. Automaatti lukee muodollisen sanan kirjain kerrallaan, vasemmalta oikealle, ja joko hyväksyy tai hylkää sanan. Täten jokaista automaattia vastaa muodollinen kieli, joka on täsmälleen niiden sanojen joukko, jotka automaatti hyväksyy.

Automaatit Esimerkki. (Vertaa kirjan 1 esimerkki 153.) Olkoon aakkosto Σ suomen kielen aakkosten joukko. Olkoon L Σ kieli, johon kuuluu täsmälleen kirjaimella a alkavat ja kirjaimeen ö päättyvät Σ-sanat. Muodostetaan abstrakti kone, joka hyväksyy kielen L. Alussa kone on alkutilassa q 0, jossa se lukee sanan ensimmäisen kirjaimen. Jos tämä kirjain ei ole a, kone M siirtyy hylkäystilaan q 1. Jos taas ensimmäinen kirjain on a, kone siirtyy tilaan q 2, jossa se lukee seuraavan kirjaimen. Aina ollessaan tilassa q 2, kone joko siiryy tilaan q 3 tai pysyy tilassa q 2. Jos luettu kirjain on ö, siirtyy kone hyväksymistilaan q 3. Muulloin kone pysyy tilassa q 2. Ollessaan tilassa q 3, kone joko pysyy tilassa q 3 tai siirtyy takaisin tilaan q 2 sen mukaan, onko seuraava luettu kirjain ö vai ei. Havainnollistamme konetta M tiladiagrammilla (ks. kirja). 1 Merikoski et. al. "Johdatus diskreettiin matematiikkaan"

Automaatin formaali määritelmä Muodollisesti, äärellinen automaatti on yhdelmä (Q, Σ, δ, q 0, F ). 1. Q on epätyhjä ja äärellinen joukko tiloja. 2. Σ on epätyhjä ja äärellinen aakkosto. 3. δ : Q Σ Q on siirtymäfunktio, joka määrittelee automaatin toiminnan. 4. q 0 Q on automaatin aloitustila. 5. F Q on joukko hyväksyviä lopputiloja. Jos a Σ ja q Q, niin δ(q, a) on tila, johon automaatti siirtyy luettuaan tilassa q kirjaimen a.

Automaatin formaali määritelmä Automaatti siis aloittaa lukemaan sanaa kirjain kerrallaa vasemmalta oikealle. Alussa automaatti on alkutilassa q 0. Automaatti muuttaa tilaa lukiessaan sanaa siirtymäfunktion δ kuvaamalla tavalla. Jos a Σ ja q Q, niin δ(q, a) on tila, johon automaatti siirtyy luettuaan tilassa q kirjaimen a. Lopuksi, luettuaan kaikki sanan kirjaimet, automaatti hyväksyy jos ja vain jos se on jossakin hyväksyvässä lopputilassa q F. Automaatteja on kätevää havainnollistaa tiladiagrammilla. Tiladiagrammissa alkutila merkitään vinoviivoittamalla se. Hyväksyvät lopputilat ympyröidään kahdesti. (vrt. kirja)

Automaatit Määritellään yllä kuvailtu kone M = (Q, Σ, δ, q 0, F ) formaalisti. 1. Q = {q 0, q 1, q 2, q 3 } 2. Σ on suomen kielen aakkosto. 3. δ(q 0, a) = q 2 ; δ(q 0, ϕ) = q 1 kun ϕ a; δ(q 1, ϕ) = q 1 kaikilla ϕ Σ; δ(q 2,ö) = q 3 ; δ(q 2, ϕ) = q 2 kun ϕ ö; δ(q 3,ö) = q 3 ; δ(q 3, ϕ) = q 2 kun ϕ ö; 4. F = {q 3 }.

Automaatit Harjoitustehtävä.(vrt. kirja, esimerkki 154.) Piirrä sellaisen automaatin tiladiagrammi, joka hyväksyy täsmälleen ne bittijonot (eli sanat α {0, 1} ), jotka päättyvät vähintään kahteen peräkkäiseen nollaan tai kahteen peräkkäiseen ykköseen. Kirjoita säännöllinen lauseke, joka määrittelee kyseisen automaatin hyväksymän kielen. Tiladiagrammeja piirrettäessä ei välttämättä tarvitse piirtää roskatilaan johtavia nuolia. Sovimme, että ne nuolet joita ei ole piirretty johtavat roskatilaan.

Automaatit. Harjoitustehtävä. Piirrä sellaisen automaatin tiladiagrammi, joka hyväksyy kielen 11 00. Harjoitustehtävä. Piirrä sellaisen automaatin tiladiagrammi, joka hyväksyy kielen (1 1) (0 0). Yllä olevista kielistä ensimmäinen on äärellinen ja toinen ääretön.

Automaatit Harjoitustehtävä. Piirrä sellaisen automaatin tiladiagrammi, joka hyväksyy kielen (1 0 1).

Automaattien ja säännöllisten kielten yhteys Olkoon Σ = {a, b} aakkosto. Piirrä jokaista seuraavaa yksinkertaista säännöllistä lauseketta vastaava automaatti (vrt. kirja, sivu 170). 1. 2. ε 3. a 4. a b 5. a b 6. a

Automaattien ja säännöllisten kielten yhteys Lause. Kieli on säännöllinen jos ja vain jos se voidaan tunnistaa automaatilla. Sivuutamme lauseen todistuksen.

Epsilon-siirrot ja epädeterministiset automaatit Epädeterministinen epsilon-automaatti on yhdelmä (Q, Σ, δ, q 0, F ). Tässä Q, δ, q 0 ja F ovat kuten tavallisen (deterministisen) automaatin tapauksessa. Olio δ on nyt funktio δ : Q (Σ {ε}) P(Q). Intuitio on, että ollessaan tilassa q, automaatti voi luettuaan symbolin a siirtyä mihin hyvänsä tilaan q δ(q, a). Nyt siis parilla (q, a) on (mahdollisesti) useampi kuin yksi seuraajatila. Lisäksi, automaatti voi siirtyä lukematta symbolia a mihin tahansa tilaan q δ(q, ε). Tällaista tilanvaihtoa, jossa luettavana oleva symboli ei lainkaan vaihdu, kutsutaan epsilon-siirroksi.

Deterministinen epsilon-automaatti Myös deterministisen automaatin siirtymäfunktiota δ voi laajentaa epsilon-siirroilla. Tällöin saadaan deterministinen epsilon-automaatti.

Epsilon-siirrot ja epädeterministiset automaatit Epädeterministinen epsilon-automaatti hyväksyy sanan α jos ja vain jos on ainakin yksi tapa lukea sana α siten että kun sana on luettu, automaatti on hyväksyvässä lopputilassa. Periaate epädeterministä epsilon-automaattia vastaavan tiladiagrammin piirtämisessä on se, että tila q yhdistetään nuolella ϕ Σ {ε} jokaiseen tilaan q δ(q, ϕ). (Katso myös kirja, sivu 171.)

Epsilon-siirrot ja epädeterministiset automaatit Esimerkki. (Vrt. kirjan Esimerkki 155.) Määritellään epädeterministinen epsilon-automaatti M = (Q, Σ, δ, q 0, F ), missä 1. Q = {q 0, q 1, q 2, q 3 }, Σ = {a, b, c}, F = {q 3 }. 2. δ(q 0, a) = {q 1 }; δ(q 0, ε) = {q 0, q 2 }; δ(q 1, b) = {q 2, q 3 }; δ(q 2, c) = {q 3 }; Määritellään tavallinen deterministinen automaatti M = (P, Σ, δ, p 0, F ), missä 1. Q = {p 0, p 1, p 2, p 3 }, Σ = {a, b, c}, F = {p 2, p 3 }. 2. δ (p 0, a) = p 1 ; δ(p 1, b) = p 2 ; δ (p 0, c) = δ (p 2, c) = p 3 ; Automaatit M ja M tunnistavat saman kielen {ab, abc, c}.

Determinististen automaattien ja epädeterministiten epsilon-automaattien suhde Lause. Kieli L voidaan tunnistaa epädeterministisellä epsilon-automaatilla jos ja vain jos se voidaan tunnistaa tavallisella deterministisellä automaatilla. Sivuutamme lauseen todistuksen. Yllä olevan lauseen avulla on helppo todistaa, että jos kieli on säännöllinen, se voidaan tunnistaa tavallisella deterministisellä automaatilla. On nimittäin helpohko nähdä, että jokaista säännöllisen kielen muotoilussa käytettävää operaattoria (, ε,,,, a Σ) kohden on olemassa vastaava automaattikonstruktio. Esim. konkatenaatiota vastaa kahden automaatin kytkeminen sarjaan epsilon siirtojen avulla. Yhdistettä vastaa kahden automaatin kytkeminen rinnan epsilon siirtojen avulla. Emme kuitenkaan käy näitä konstruktioita läpi tässä esitettyä täsmällisemmin.

Harjoitustehtävä. Olkoon Σ aakkosto. Olkoon M (tavallinen deterministinen) automaatti, joka tunnistaa kielen L Σ. Miten muodostetaan automaatti, joka tunnistaa kielen L komplementin L = Σ \ L. Vastaus. Olkoon M = (Q, Σ, δ, q 0, F ). Automaatti M = (Q, Σ, δ, q 0, F ), missä F = Q \ F, tunnistaa kielen L.