TIEA241 Automaatit ja kieliopit, kevät 2011 (IV) Antti-Juhani Kaijanaho TIETOTEKNIIKAN LAITOS 31. maaliskuuta 2011
Sisällys
Sisällys
Chomskyn hierarkia kieli säännöllinen kontekstiton kontekstinen rekursiivisesti lueteltava automaatti äärellinen pino lineaarirajoitettu Turingin kone
Minkälaisia ovat säännölliset kielet? 1 Säännöllinen kieli on määritelmän mukaan kieli, jonka jokin DFA tunnistaa. Merkitään jatkossa L(M):llä kieltä, jonka automaatti M tunnistaa. Jos A Σ on säännöllinen kieli, onko Σ A säännöllinen kieli? Jos A ja B ovat säännöllisiä kieliä, ovatko seuraavat kielet säännöllisiä? A B AB = { vw v A w B } ((kielten) yhdistäminen) A 0 = {ε} A n+1 = A n A A + = n=1 A n (Kleenen plus) A = n=0 A n (Kleenen tähti) 1 Tätä kalvoa on jälkikäteen korjattu. Korjaukset on merkitty näin.
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 kielellä on sen tunnistava äärellinen automaatti. Todistusstrategia on luonnollisimmin: esitetään menetelmä, jolla annetuista automaateista voidaan rakentaa halutunlainen koostettu automaatti.
Sisällys
Todistettava lause Oletukset 1. Σ on aakkosto 2. A, B Σ ovat säännöllisiä kieliä. Väite Σ 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) = 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) =. mutta nämä ovat tässä tapauksessa selkeitä, joten matemaatikon tarkkuudella ne jätetään lukijalle harjoitustehtäväksi. Tehdään taululla.
Sisällys
Eikö olisi helpompi...... yhdistää M A ja M B luomalla uusi alkutila, josta automaatti siirtyisi maagisesti oikeaan osa-automaattiin? Tällainen M ei ole DFA...... mutta se on eli epädeterministinen äärellinen automaatti. on kuin DFA kolmella erolla: samasta tilasta saa olla useampi kuin yksi siirtymä samalla merkillä tilasta ei tarvitse olla siirtymää kaikilla merkeillä tilasta voi olla ns. ε-siirtymä toiseen tilaan
matemaattisesti Määritelmä Viisikko (Q, Σ, δ, q 0, F) on epädeterministinen äärellinen automaatti (), jos Q on äärellinen (tilojen) joukko, Σ on äärellinen, epätyhjä joukko, joka ei sisällä tyhjän merkkijonon merkkinä käytettyä merkkiä ε (merkistö), δ : Q (Σ {ε}) P(Q) pätee (siirtymäfunktio), q 0 Q pätee (alkutila) ja F Q pätee (hyväksyvät tilat).
:n ε-sulkeuma 2 Määritelmä Olkoon M = (Q, Σ, δ, q 0, F). Määritellään kaikille n N funktiot E n : Q P(Q) seuraavasti: E 0 : q {q} E n+1 : q q E n (q) δ(q, ε) Määritellään nyt M:n ε-sulkeumafunktio E : Q P(Q) seuraavasti: E : q E i. i N E(q) sisältää q:n sekä kaikki tilat, joihin q:sta pääsee ε-siirtymiä seuraamalla. 2 Tämä kalvo on jälkikäteen lisätty.
:n toiminta formaalisti 3 Olkoon M = (Q, Σ, δ, q 0, F) epädeterministinen äärellinen automaatti. Se hyväksyy merkkijonon c 0 c n 1 Σ, jos on olemassa tilat q 1,..., q n 1 Q ja q n Q, joille pätee i {0,..., n 1} : q E(qi ) : q i+1 δ(q, c i ) ja q n F. Muuten se hylkää kyseisen merkkijonon. Niiden merkkijonojen, jotka hyväksyy, joukkoa sanotaan sen (tunnistamaksi) kieleksi, L(M). 3 Tätä kalvoa on jälkikäteen korjattu. Korjauksia ei ole merkitty.
Epädeterminismi Epädeterminismi tarkoittaa laskentaa, jossa mahdollisia etenemistapoja on useita, joista valitaan joku. :n epädeterminismi on hyväntahtoista, koska valitsee aina hyväksyntään johtavan tavan, jos sellainen on olemassa. Epädeterministinen laskenta voidaan kuvata päätöspuuna. Tarkastellaan taululla seuraavaa automaattia: a a 0 a 1 b 2 a 3 b b ja merkkijonoa aababa.
ja Olkoot M A = (Q A, Σ A, δ A, q A, F A ) M B = (Q B, Σ B, δ B, q B, F B ) :t, joille pätee L(M A ) = A ja L(M B ) = B. WLOG 4 oletetaan, että Q A Q B = ja 0 Q A Q B. Konstruoidaan M = (Q A Q B {0}, Σ A Σ B, δ, 0, F A F B ) δ : (Q A Q B ) (Σ A Σ B {ε}) P(Q A Q B ) {q A, q B } jos q = 0 ja c = ε δ A (q, c) jos q Q A ja c Σ A {ε} δ : (q, c) δ B (q, c) jos q Q B ja c Σ B {ε} muuten 4 Without Loss of Generality
Riittääkö? Edellisen kalvon konstruktiosta on helppo nähdä, että L(M) =. Todistaako tämä, että on säännöllinen kieli? Säännöllisen kielen määritelmässä puhutaan DFA:sta, ei :sta. Tarvitaan... Lause Jokaiselle :lle M on olemassa DFA M, jolle pätee L(M) = L( M). Todistus Taululla.
Sisällys
Tehdään taululla AB A +