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

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

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

Tietojenkäsittelyteorian alkeet, osa 2

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

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

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

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

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

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

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

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

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

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, kevät Antti-Juhani Kaijanaho. 8. maaliskuuta 2012

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

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

Todistusmenetelmiä Miksi pitää todistaa?

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

Matemaattisten työvälineiden täydentäviä muistiinpanoja

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

Täydentäviä muistiinpanoja laskennan rajoista

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

Laskennan mallit (syksy 2010) Harjoitus 4, ratkaisuja

Miten osoitetaan joukot samoiksi?

Säännöllisten kielten sulkeumaominaisuudet

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

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

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

Ensimmäinen induktioperiaate

Ensimmäinen induktioperiaate

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

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

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

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

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

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

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

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

Kertausta 1. kurssikokeeseen

Johdatus matemaattiseen päättelyyn

Automaatit. Muodolliset kielet

Vaihtoehtoinen tapa määritellä funktioita f : N R on

TIEA241 Automaatit ja kieliopit, kevät Antti-Juhani Kaijanaho. 2. helmikuuta 2012

Diskreetin matematiikan perusteet Laskuharjoitus 1 / vko 8

Täydentäviä muistiinpanoja Turingin koneiden vaihtoehdoista

Rekursio. Funktio f : N R määritellään yleensä antamalla lauseke funktion arvolle f (n). Vaihtoehtoinen tapa määritellä funktioita f : N R on

ICS-C2000 Tietojenkäsittelyteoria Kevät 2016

4.3. Matemaattinen induktio

Pysähtymisongelman ratkeavuus [Sipser luku 4.2]

TIEA341 Funktio-ohjelmointi 1, kevät 2008

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

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

b) Määritä myös seuraavat joukot ja anna kussakin tapauksessa lyhyt sanallinen perustelu.

Rajoittamattomat kieliopit

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

Esitetään tehtävälle kaksi hieman erilaista ratkaisua. Ratkaisutapa 1. Lähdetään sieventämään epäyhtälön vasenta puolta:

on rekursiivisesti numeroituva, mutta ei rekursiivinen.

Chomskyn hierarkia ja yhteysherkät kieliopit

Hahmon etsiminen syotteesta (johdatteleva esimerkki)

1. Universaaleja laskennan malleja

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

Vastaoletuksen muodostaminen

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

Algoritmin määritelmä [Sipser luku 3.3]

Luonnollisten lukujen ja kokonaislukujen määritteleminen

Diskreetin Matematiikan Paja Ratkaisuhahmotelmia viikko 1. ( ) Jeremias Berg

4 Matemaattinen induktio

Approbatur 3, demo 1, ratkaisut A sanoo: Vähintään yksi meistä on retku. Tehtävänä on päätellä, mitä tyyppiä A ja B ovat.

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

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

Johdatus matemaattiseen päättelyyn

Tehtävä 1. Päättele resoluutiolla seuraavista klausuulijoukoista. a. 1 {p 3 } oletus. 4 {p 1, p 2, p 3 } oletus. 5 { p 1 } (1, 2) 7 (4, 6)

5.3 Ratkeavia ongelmia

Jokaisen parittoman kokonaisluvun toinen potenssi on pariton.

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

TIEA241 Automaatit ja kieliopit, kesä Antti-Juhani Kaijanaho. 10. kesäkuuta 2013

Matematiikassa väitelauseet ovat usein muotoa: jos P on totta, niin Q on totta.

Yhteydettömän kieliopin jäsennysongelma

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

Predikaattilogiikan malli-teoreettinen semantiikka

Rekursiiviset palautukset [HMU 9.3.1]

a k+1 = 2a k + 1 = 2(2 k 1) + 1 = 2 k+1 1. xxxxxx xxxxxx xxxxxx xxxxxx

ICS-C2000 Tietojenkäsittelyteoria

2.1. Tehtävänä on osoittaa induktiolla, että kaikille n N pätee n = 1 n(n + 1). (1)

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

Output. Input Automaton

Todistamisessa on tärkeää erottaa tapaukset, kun sääntö pätee joillakin tai kun sääntö pätee kaikilla. Esim. On olemassa reaaliluku x, jolle x = 5.

(2n 1) = n 2

Johdatus matematiikkaan

Johdatus matematiikkaan

Matematiikan johdantokurssi, syksy 2016 Harjoitus 11, ratkaisuista

Induktiota käyttäen voidaan todistaa luonnollisia lukuja koskevia väitteitä, jotka ovat muotoa. väite P(n) on totta kaikille n = 0,1,2,...

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

MS-A0402 Diskreetin matematiikan perusteet

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

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

Lisää pysähtymisaiheisia ongelmia

Ratkaisu: Käytetään induktiota propositiolauseen A rakenteen suhteen. Alkuaskel. A = p i jollain i N. Koska v(p i ) = 1 kaikilla i N, saadaan

HY / Matematiikan ja tilastotieteen laitos Johdatus logiikkaan I, syksy 2018 Harjoitus 5 Ratkaisuehdotukset

Transkriptio:

säännölliset kielet TIEA241 Automaatit ja kieliopit, syksy 2015 Antti-Juhani Kaijanaho TIETOTEKNIIKAN LAITOS 9. marraskuuta 2015

Sisällys

toiminta formaalisti Olkoon M = (Q, Σ, δ, q 0, F) deterministinen äärellinen automaatti. Jokaiselle epätyhjälle merkkijonolle w = c 0 c n 1 Σ \ {ε} on olemassa samanpituinen tilajono 1 q 1,..., q n, jolle pätee q k+1 = δ(q k, c k ) kaikilla k = 0,..., n 1. Tämän jonon viimeinen tila q n on merkkijonon w päätöstila automaatissa M. Tyhjän merkkijonon päätöstila automaatissa M on q 0 M hyväksyy (engl. accept) merkkijonon w Σ, jos sen päätöstila M:ssä kuuluu F:ään; muuten se hylkää (engl. reject) sen. 1 Huomaa indeksoinnin ero!

Vaihtoehtoinen formalisointi Määritelmä Olkoon M = (Q, Σ, δ, q 0, F) deterministinen äärellinen automaatti. Sen yleistetty siirtymäfunktio δ : Q Σ Q määritellään rekursiivisesti: δ (q, ε) = q δ (q, wc) = δ(δ (q, w), c) Lause Olkoon M = (Q, Σ, δ, q 0, F) deterministinen äärellinen automaatti ja olkoon w Σ jokin merkkijono. Tällöin w:n päätöstila M:ssä on δ (q 0, w). Todistus...?

Todistamisesta 1. Tunnista todistettavan lauseen oletukset ja väite. Usein: Olkoon oletukset. Tällöin väite. Oletuksina voi aina käyttää myös kaikkea, mikä on aiemmin todistettu. 2. Koeta johtaa aukoton päättelyketju oletuksista väitteeseen. Päättelyn tulee olla deduktiivinen: johtopäätöksen tulee päteä aina kuin oletukset pätevät. 3. Esitä päättelyketju selkeällä suomen kielellä niin, että päättelyn looginen rakenne on esityksestä helposti luettavissa.

Suoria päättelystrategioita oletukseen vetoaminen: voit aina vedota oletuksiin ja aiemmin todistettuihin teoreemoihin lemmaan vetoaminen: muotoile hankala todistusaskel apulauseeksi eli lemmaksi, jonka todistat erikseen tapauksittainen päättely Jaa väite useaan eri tapaukseen, jotka yhdessä kattavat koko väitteen. Todista jokainen tapaus erikseen. väitteen yleistys Valitse jokin todistettavaa väitettä P yleisempi väite Q Riittää osoittaa, että Q. Tarvittaessa on osoitettava, että Q todella on P:tä yleisempi. Osoita, että Q seuraa oletuksista.

Suoria päättelystrategioita päättely mielivaltaisella alkiolla Toimii, jos väite on muotoa x S: P(x) Aloita todistus sanomalla Olkoon x S mielivaltainen. Päättele niin kuin parhaaksi näet, että P(x) pätee tällä mielivaltaisella alkiolla. Voit käyttää x:ää kuten mitä tahansa S:n alkiota. Päättelysi pitää olla pätevä, jos x korvataan millä vain S:n alkiolla! konstruktiivinen päättely Toimii jos väite on muotoa x S: P(x). Anna konkreettinen esimerkki S:n alkiosta, jolle P pätee.

Ristiriitatodistus 1. Tee vastaoletus, että väite on epätosi. 2. Johda vastaoletuksesta ristiriita. Voit monessa tapauksessa johtaa konstruktiivisella päättelyllä vastaesimerkin. 3. Päättele tästä, että väite on tosi.

(Matemaattinen) induktio Toimii, kun väite on (tai voidaan tulkita olevan) muotoa n N: P(n) Esim. väite joka koskee kaikkia merkkijonoja voidaan tulkita koskemaan kaikkia merkkijonojen pituuksia (induktio merkkijonon pituuden suhteen) 1. Perusaskel: Osoita, että väite on tosi nollan tapauksessa, P(0). 2. Induktioaskel: Tee induktio-oletus, että väite pätee mielivaltaisella luvulla n. Johda siitä, että väite pätee luvulla n + 1. Toisin sanoen, osoita n N: P(n) P(n + 1). Voit myös tehdä induktio-oletuksen, että väite pätee n:n lisäksi kaikilla n:ää pienemmillä luvuilla. 3. Johtopäätös: Päättele tästä, että väite pätee kaikilla kokonaisluvuilla.

Yleisiä (deduktiivisen) päättelyn virheitä Todennäköisyyteen vetoaminen: Ei riitä osoittaa, että väite on todennäköisesti tai melkein aina tosi. Virheellinen käänteinen päättely: Osoitetaan, että väitteestä seuraa oletukset. Käsittelemättä jäänyt tapaus: Tapauksittaisessa todistuksessa jokin mahdollinen tapaus jää käsittelemättä. Kehäpäätelmä: Otetaan oletuksiin mukaan se, mitä ollaan todistamassa. Huom! Matemaattinen induktio ei ole kehäpäätelmä. Virheellinen (matemaattinen) induktio: Unohdetaan todistaa perustapaus. Induktioaskel ei ulotu perustapaukseen asti.

Todistuksen tarkkuustasot Täsmällinen (formaali) Todistus kirjoitetaan niin, että se voidaan antaa tietokoneen tarkastettavaksi (ks. esim Isabelle tai Coq) Matemaatikon tarkkuus Todistus esitetään siten, että sen vakuuttaa (ihmis)lukijansa. Vaadittu tarkkuustaso vaihtelee sen mukaan, kuinka kokeneeksi lukija oletetaan. Tarvittaessa todistusta tarkennetaan tai korjataan. 2 Idea Esitetään todistuksen keskeinen oivallus, mutta niin paljon jätetään sanomatta, että vakuuttavaksi (matemaatikon tarkkuuden) todistukseksi sitä ei voi vielä laskea. 2 Ks. esim. Imre Lakatos: Proofs and Refutations: The Logic of Mathematical Discovery. Cambridge University Press, 1976.

Kokeillaas tällä Määritelmä Olkoon M = (Q, Σ, δ, q 0, F) deterministinen äärellinen automaatti. Sen yleistetty siirtymäfunktio δ : Q Σ Q määritellään rekursiivisesti: δ (q, ε) = q δ (q, wc) = δ(δ (q, w), c) Lause Olkoon M = (Q, Σ, δ, q 0, F) deterministinen äärellinen automaatti ja olkoon w Σ jokin merkkijono. Tällöin w:n päätöstila M:ssä on δ (q 0, w). Todistus Taululla.

Formaalit kielet On tapana sanoa, että merkkijonojen joukko on (formaali) kieli. Hieman hölmöä kyllä, sillä kieleen liittyy oikeasti myös sen tulkinta mitä sen merkkijonot tarkoittavat. Tällä kurssilla (ja ylipäätään formaalien kielten teoriassa) kuitenkin jätetään merkitysoppi pääosin huomiotta! luonnollisten kielten (suomi, englanti) osalta kielitieteen puolella ohjelmointikielten osalta TIES542 Ohjelmointikielten periaatteet

kieli Olkoon M = (Q, Σ, δ, q 0, F) jokin DFA. Muistathan päätöstilan käsitteen! Päätöstila on se tila, johon merkkijonon käsittely päätyy eli δ (q 0, w). Muistatko, milloin M hyväksyy merkkijonon? Niiden merkkijonojen, jotka M hyväksyy, joukkoa sanotaan sen (tunnistamaksi) kieleksi L(M) = { w Σ δ (q 0, w) F }

Esimerkki Väite Olkoon M seuraava DFA: a a,b 0 b 1 Nyt L(M) = { a k bu k N u {a, b} }. Todistus Tehdään taululla.

Määritelmä: Merkkijonojen joukko on säännöllinen kieli (engl. regular language) eli rationaalinen kieli (engl. rational language), jos on olemassa deterministinen äärellinen automaatti, joka tunnistaa sen.

Säännöllisiä kieliä 1. 2. { 0 k 1 l k, l N } 3. { kissa, koira } 4. Kaikki sellaiset merkeistä 0 ja 1 koostuvat merkkijonot, joissa on parillinen määrä sekä 0:ia että 1:iä.

Minkälaisia ovat? Säännöllinen kieli on määritelmän mukaan kieli, jonka jokin DFA tunnistaa. Jos A Σ on säännöllinen kieli, onko Σ A säännöllinen kieli? Jos A, B Σ ovat säännöllisiä kieliä, ovatko seuraavat kielet säännöllisiä? A B A B AB = { vw v A w B } ((kielten) yhdistäminen) A + = A n (Kleenen plus) A = n=1 A 0 = {ε} A n+1 = A n A kaikilla n N n=0 A n (Kleenen tähti) Jos A B on säännöllinen kun A ja B ovat säännöllisiä, niin on säännöllinen operaattori (engl. regular operator).

Todistustekniikka Kaikille edellisen kalvon kysymyksille on yhteistä muoto jos jotkin kielet ovat säännöllisiä, niin eräs kieli on säännöllinen. Määritelmällisesti tämä on sama kuin jos joillekin kielille on kunkin tunnistava äärellinen automaatti, niin eräälle kielelle on sen tunnistava äärellinen automaatti. Todistusstrategia on luonnollisimmin: esitetään menetelmä, jolla annetuista automaateista voidaan rakentaa halutunlainen koostettu automaatti. Tehdään A B luennolla, loput joko demoissa tai myöhemmin.

Todistettava lause Oletukset 1. Σ on aakkosto 2. A, B Σ ovat säännöllisiä kieliä. Väite A B Σ on säännöllinen kieli.

Todistuksen idea On olemassa DFA:t M A ja M B, joille pätee L(M A ) = A ja L(M B ) = B. Rakennetaan DFA M, jolle pätee L(M) = A B käyttäen hyväksi koneita M A ja M B. M simuloi M A :ta ja M B :tä rinnakkain. M hyväksyy, jos jompi kumpi hyväksyy. Pohdittavaksi: miksi rinnakkain, miksi ei peräkkäin? M:llä on tila kutakin paria (a, b) kohti, missä a on M A :n tila ja b on M B :n tila.

Matemaatikon tarkkuudella? Annetaan tarkka konstruktio M:lle. Tarkkaan todistukseen kuuluu myös Osoitetaan, että M:n konstruktio täyttää deterministisen äärellisen automaatin vaatimukset. Osoitetaan, että L(M) = A B. mutta nämä ovat tässä tapauksessa selkeitä, joten matemaatikon tarkkuudella ne jätetään lukijalle harjoitustehtäväksi. Tehdään taululla.