.. TIEA241 Automaatit ja kieliopit, syksy 2016 Antti-Juhani Kaijanaho TIETOTEKNIIKAN LAITOS 6. lokakuuta 2016
Sisällys.
Harjoitustehtävätilastoja Tilanne 6.10.2016 klo 8:28 passed potential redo submitters h1 331 332 32 100 h2 168 168 28 67 h3 123 127 25 57 h4 168 171 15 54 h5 54 57 5 23 h6 39 40 2 18 h7 35 35 1 19 h8 14 14 2 9 h9 4 6 1 4 h10 11 14 1 7 h11 5 5 2 3 h12 2 2 0 1.
Harjoitustehtävätilastoja Tilanne 6.10.2016 klo 8:28. Tehty vähintään Opiskelijoita 20 % 48 40 % 10 60 % 4 80 % 2 Viikko Palauttaneita opiskelijoita 2016 2015 1 5. 11.9. 79 59 12. 18.9. 61 53 19. 25.9. 52 48 26.9. 2.10. 48 41 3. 9.10. 2 31 30
. Chomskyn loi lausekerakennekieliopit (mm. CFG) alun perin luonnollisia kieliä (mm. englanti) varten kieliopit tyypillisesti erittäin moniselitteisiä Earley yleistetty LR (GLR) formaali kielioppi ei koskaan voi kuvata todellista luonnollista kieltä aina jonkinlainen approksimaatio colorless green ideas sleep furiously (Chomsky) 3 3 Googlaa tämä!
Keskeisiä välikesymboleita. S sentence, lause (monet kielet) NP noun phrase, substantiivilauseke (monet kielet) VP verb phrase (englannin kieli) AP adjektiivilauseke (suomen kieli) PP prepositional phrase (englannin kieli) AdvP adverbilauseke
Esimerkki Englannin kielen fragmentti 4. S NP VP NP Det N Det N PP I PP P NP VP V NP VP PP Det an my N elephant pajamas V shot P in 3 http: //www.nltk.org/book/ch08.html#ubiquitous-ambiguity
Lisätietoa. http://blogs.helsinki.fi/ language-technology/ http://www.nltk.org/book/ http: //scripta.kotus.fi/visk/etusivu.php
Pinoautomaatti NFA:n yleistys automaatilla on käytössään LIFO-muisti 5 eli pino Pino alustetaan ennen ensimmäistä siirtymää erityisellä alustusmerkillä, usein merkitään aloitustilan osoittavaan nuoleen siirtymässä q 1 c,d γ q 2. q 1 on tila, josta lähdetään c on syötemerkki, jonka tulee olla kohdalla, jotta siirtymä saadaan tehdä, taikka ε d on pinomerkki, jonka tulee olla pinon päällimmäisenä, jotta siirtymä saadan tehdä, ja joka otetaan pinosta pois siirtymää tehtäessä γ on pinomerkkijono, joka laitetaan pinoon päällimmäiseksi q 2 on tila, johon siirrytään 5 LIFO = last in, first out
Esimerkki. A (, 1 B (,1 11 D ε, ε C ),1 ε ),1 ε
JFLAP. Valitse pushdown automaton ja multiple character input Pinon alustusmerkki on aina iso Z-kirjain. JFLAP sallii automaatteja, jotka eivät mahdu tämän kurssin määritelmään.
Rakenne formaalisti. Kuusikko M = (Q, Σ, Γ, δ, q 0,, F) on (epädeterministinen) pinoautomaatti () (engl. push-down automaton), jos seuraavat pätevät: Q on äärellinen joukko (tilat) Σ on äärellinen, epätyhjä joukko (syötemerkistö) Γ on äärellinen, epätyhjä joukko (pinomerkistö) δ : Q Σ ε Γ P(Q Γ ) (siirtymäfunktio) { (q, w, γ, q, γ ) (q, γ ) δ(q, w, γ) } on äärellinen q 0 Q (alkutila) Γ (alustussymboli) F Q (hyväksyvät tilat)
Tilanteet. Äärellisen automaatin toiminnan seuraamiseen riittää tietää kulloinenkin tila ja jäljellä oleva syöte. Pinoautomaateilla tarvitaan lisäksi pinon kulloinenkin sisältö. Pinoautomaatin tilanne 6 on kolmikko (q, w, γ), missä q Q on kulloinenkin tila w Σ on jäljellä oleva syöte γ Γ on kulloinenkin pinon sisältö Käytetään tarvittaessa kirjaimia I, J, K viittaamaan mielivaltaisiin tilanteisiin. 6 engl. configuration, instantaneous description
Tilasiirtymät. Olkoon M = (Q, Σ, Γ, δ, q 0,, F). Määritellään kahden tilanteen välinen relaatio M seuraavasti: kaikilla q, q Q, c Σ ε, w Σ, d Γ ja γ, γ Γ, jos (q, γ ) δ(q, c, d) pätee, niin (q, cw, dγ) M (q, w, γ γ) pätee Määritellään lisäksi seuraavasti: I M I I M J J M K I M K kaikilla I, J, K Q Σ Γ
Esimerkki taululla. w = (( v = () A (, 1 B D ε, ε C (,1 11 ),1 ε ),1 ε
:n eri kielet. Olkoon M = (Q, Σ, Γ, δ, q 0,, F). M voi tunnistaa kielen usealla eri tavalla. M tunnistaa hyväksyvällä tilalla kielen L(M) = { w Σ q F F; γ Γ : (q 0, w, ) M (q F, ε, γ) } M tunnistaa tyhjentämällä pinonsa kielen 7 N(M) = { w Σ q Q: (q 0, w, ) M (q, ε, ε) } Jokaiselle :lle M on olemassa M, jolle pätee L(M) = N(M ). Jokaiselle :lle M on olemassa M, jolle pätee N(M) = L(M ). 7 N tulee sanasta null eli tyhjä.
vs CFG. Lause Kaikki kontekstittomat kielet voidaan tunnistaa pinoautomaatilla. Lause Kaikki pinoautomaatilla tunnistettavissa olevat kielet ovat kontekstittomia kieliä.
Kontekstiton kielioppi :ksi. Olkoon annettuna kontekstiton kielioppi G = (V, Σ, P, S). Rakennetaan M = ({q}, Σ, V Σ, δ, q, S, ) seuraavasti: {(q, ε)} jos c = d δ : (q, c, d) { (q, ω) (A ω) P } jos c = ε ja d = A muuten Tällöin L(G) = N(M).
Esimerkki talululla. E c E + E E E (E)
kontekstittomaksi kieliopiksi. Olkoon M = (Q, Σ, Γ, δ, q 0,, F). Rakennetaan kontekstiton kielioppi G = (V, Σ, P, S) seuraavasti: V = {S} { A pdq p, q Q d Γ } P = { (S A q0 q) q Q } (A pdq c) (q, ε) δ(p, c, d) } { } (r 0, d 1... d k ) δ(p, c, d) (A pdrk ca r0 d 1 r 1... A rk 1 d k r k ) r 1,..., r k Q Tällöin L(G) = N(M). 8 8 Huomaa, että A pdq tuottaa ne merkkijonot, jotka lukemalla automaatti päätyy tilasta p tilaan q (netto)poistamalla pinosta merkin d.
Esimerkki taululla. i, e, ε A
pinoautomaatti. Pinoautomaatti, jolle pätevät q Q; c Σ ε ; d Γ : δ(q, c, d) 1 q Q; d Γ : ( c Σ : δ(q, c, d) = ) δ(q, ε, d) = on deterministinen. pinoautomaatti ei kykene tunnistamaan mm. kieltä { ww R w Σ } (todistus on teknisesti hankala joten se sivuutetaan). pinoautomaatti ei kykene tunnistamaan tyhjentämällä pinonsa edes kaikkia säännöllisiä kieliä!