Muodolliset kieliopit



Samankaltaiset tiedostot
Luonnolliset vs. muodolliset kielet

Automaatit. Muodolliset kielet

8. Kieliopit ja kielet 1 / 22

8. Kieliopit ja kielet

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

Hahmon etsiminen syotteesta (johdatteleva esimerkki)

FUNKTIONAALIANALYYSIN PERUSKURSSI Johdanto

Laskennan mallit (syksy 2010) Harjoitus 8, ratkaisuja

Pysähtymisongelman ratkeavuus [Sipser luku 4.2]

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

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

Chomskyn hierarkia ja yhteysherkät kieliopit

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

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

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

Säännöllisten kielten sulkeumaominaisuudet

on rekursiivisesti numeroituva, mutta ei rekursiivinen.

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

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

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. 3. joulukuuta 2015

MS-A0402 Diskreetin matematiikan perusteet Esimerkkejä, todistuksia ym., osa I

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

MS-A0402 Diskreetin matematiikan perusteet Esimerkkejä, todistuksia ym., osa I

Output. Input Automaton

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

MS-A0402 Diskreetin matematiikan perusteet

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

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

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

Yhteydettömät kieliopit [Sipser luku 2.1]

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

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

ICS-C2000 Tietojenkäsittelyteoria Kevät 2016

(1) refleksiivinen, (2) symmetrinen ja (3) transitiivinen.

Onko kuvaukset injektioita? Ovatko ne surjektioita? Bijektioita?

Matematiikassa ja muuallakin joudutaan usein tekemisiin sellaisten relaatioiden kanssa, joiden lakina on tietyn ominaisuuden samuus.

Johdatus lukuteoriaan Harjoitus 2 syksy 2008 Eemeli Blåsten. Ratkaisuehdotelma

Rajoittamattomat kieliopit

Miten osoitetaan joukot samoiksi?

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

LOGIIKKA johdantoa

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

Topologia Syksy 2010 Harjoitus 9

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

Kirjoita käyttäen propositiosymboleita, konnektiiveja ja sulkeita propositiologiikan lauseiksi:

11.4. Context-free kielet 1 / 17

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

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

815338A Ohjelmointikielten periaatteet Harjoitus 2 vastaukset

Ratkaisu: a) Kahden joukon yhdisteseen poimitaan kaikki alkiot jotka ovat jommassakummassa joukossa (eikä mitään muuta).

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

Tietojenkäsittelyteorian alkeet, osa 2

LUKU II HOMOLOGIA-ALGEBRAA. 1. Joukko-oppia

Johdatus matemaattiseen päättelyyn

Täydentäviä muistiinpanoja laskennan rajoista

5.3 Ratkeavia ongelmia

Jos d-kohdan vasemmalla puolella perusjoukkona on X, niin oikealla puolella

Pinoautomaatit. Pois kontekstittomuudesta

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

} {{ } kertaa jotain

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

Rajoittamattomat kieliopit (Unrestricted Grammars)

Matematiikan johdantokurssi, syksy 2016 Harjoitus 11, ratkaisuista

Äärettömistä joukoista

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

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

Logiikan kertausta. TIE303 Formaalit menetelmät, kevät Antti-Juhani Kaijanaho. Jyväskylän yliopisto Tietotekniikan laitos.

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

5.1 Semanttisten puiden muodostaminen

TKT20005 Laskennan mallit (syksy 2018) Kurssikoe, malliratkaisut

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

Laskennan mallit (syksy 2009) Harjoitus 11, ratkaisuja

Diskreetin Matematiikan Paja Ratkaisuhahmotelmia viikko 1. ( ) Jeremias Berg

Matematiikan mestariluokka, syksy

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

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

Lineaarialgebra ja matriisilaskenta I

MS-A0402 Diskreetin matematiikan perusteet Esimerkkejä ym., osa I

S BAB ABA A aas bba B bbs c

MS-A0402 Diskreetin matematiikan perusteet Esimerkkejä ym., osa I

ICS-C2000 Tietojenkäsittelyteoria

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

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

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

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

811120P Diskreetit rakenteet

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

Lukion matematiikkakilpailun alkukilpailu 2015

a b c d

Luonnollisen päättelyn luotettavuus

1. Universaaleja laskennan malleja

7 Vapaus. 7.1 Vapauden määritelmä

Calkinin-Wiln jono 1/2 2/2 3/2 4/2 5/2 6/2... 1/3 2/3 3/3 4/3 5/3 6/3... 1/4 2/4 3/4 4/4 5/4 6/4... 1/5 2/5 3/5 4/5 5/5 6/5...

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

Vastauksia. Topologia Syksy 2010 Harjoitus 1

Matematiikan tukikurssi

Kannan vektorit siis virittävät aliavaruuden, ja lisäksi kanta on vapaa. Lauseesta 7.6 saadaan seuraava hyvin käyttökelpoinen tulos:

Insinöörimatematiikka D

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

Transkriptio:

Muodolliset kieliopit Luonnollisen kielen lauseenmuodostuksessa esiintyy luonnollisia säännönmukaisuuksia. Esimerkiksi, on jokseenkin mielekästä väittää, että luonnollisen kielen lauseet koostuvat nk. subjektiosasta (esim. "vanha kissa") ja nk. predikaattiosasta ("nukkuu sikeästi"), jotka liitetään peräkkäin. Toisin sanoen, sääntö LAUSE := SUBJEKTIOSA PREDIKAATTIOSA on voimassa. Muodolliset kieliopit abstrahoivat tällaiseen säännönmukaisuuteen liittyviä ilmiöitä. Muodollinen kielioppi on oleellisesti kokoelma abstrakteja lauseenmuodostussääntöjä. Muodollisilla kieliopeilla on erittäin huomattavia sovelluksia esim. tietojenkäsittelytieteessä.

Muodolliset kieliopit Muodolliset kieliopit ovat systeemejä, joita käytettäessä muodostetaan askel kerrallaan piteneviä symbolijonoja. Muodostettua symbolijonoa (esim. ADx) pidennetään korvaamalla symboleja (esim. D) symbolijonoilla (esim. yt ). Näin saadaan uusi, kieliopin sallima symbolijono (AyTx). Tämä edellyttää, että kyseiseen kielioppiin kuuluu sääntö D := yt. Myös symbolijonoja voi korvata symbolijonoilla. Käsittelemme kuitenkin lähes yksinomaan kielioppeja, joissa yksittäisiä symboleja korvataan symbolijonoilla.

Muodolliset kieliopit Olkoon käytössä seuraavat säännöt. 1. A := Ai 2. A := Fs 3. F := Fu 4. F := u Aloitetaan nk. aloitussymbolista, joka tässä on A. Alussa meillä on siis symbolijono A. Korvataan sitten symboli A sääntöä A := Ai käyttäen. Näin saamme symbolijonon Ai. Korvataan tässä uudessa symbolijonossa symboli A symbolijonolla Fs, käyttäen sääntöä A := Fs. Saamme symbolijonon Fsi. Korvataan sitten symboli F käyttäen sääntöä F := Fu. Saamme symbolijonon Fusi. Lopuksi, käytetään sääntöä F := u. Saamme symbolijonon uusi.

Muodolliset kieliopit Käytimme seuraavia sääntöjä. 1. A := Ai 2. A := Fs 3. F := Fu 4. F := u Aloitimme aloitussymbolista A ja päädyimme symbolijonoon uusi. Muodollinen kielioppi sisältää täsmälleen yhden aloitussymbolin. Lisäksi, säännöissä esiintyvät symbolit voidaan jakaa kahteen luokkaan, terminaalisymboleihin ja nonterminaalisymboleihin. Terminaalisymbolit ovat pieniä kirjaimia (tässä i,s,u) ja nonterminaalisymbolit isoja kirjaimia (tässä A,F). Vain nonterminaalisymboleja voi korvata symbolijonoilla.

Muodolliset kieliopit Käytimme seuraavia sääntöjä ja päädyimme symbolijonoon uusi. 1. A := Ai 2. A := Fs 3. F := Fu 4. F := u Jonon (tai sanan) uusi voi siis johtaa käyttämällä yllä olevia sääntöjä. Päättynyttä korvausprosessia eli johtamista kutsutaan terminoiduksi jos ja vain jos johtamisen tuloksena syntynyt symbolijono ei sisällä lainkaan nonterminaalisymboleja. Johdimme sanan uusi, joka sisältää ainoastaan terminaalisymboleja. Kyseessä oli siis terminoitunut johtaminen.

Muodolliset kieliopit Sääntöjä merkittäessä käytetään usein symbolin := sijasta symbolia. Esim. edellä esiintynyt sääntö F := u voidaan kirjoittaa myös käyttämällä merkintää F u. Tästä eteenpäin käytämme symbolia hyödyntävää merkintätapaa. Tämä merkintätapa on käytössä myös kirjassa. 1 1 Merikoski et al: Johdatus diskreettiin matematiikkaan

Muodolliset kieliopit Käytä alla olevaa kielioppia ja johda alkusymbolista LAUSE aloittaen jono vanha kissa nukkuu. LAUSE SUBJ.OSA VERBI SUBJ.OSA ADJ. SUBJ.OSA SUBJ.OSA SUBJ. SUBJ. kissa SUBJ. koira VERBI nukkuu ADJ. vanha

Säännölliset kielet vs. muodolliset kieliopit Olemme aiemmin todenneet, että muodollinen kieli L on säännöllinen jos ja vain jos jokin deterministinen automaatti tunnistaa kielen L. Säännöllisiin kieliin kuuluu varsin monimutkaisia kieliä. On kuitenkin olemassa muodollisia kieliä, jotka eivät ole säännöllisiä. Tämä on yksi syy, miksi muodolliset kieliopit ovat hyödyllisiä.

Säännölliset kielet vs. muodolliset kieliopit Lause. Olkoon Σ aakkosto. On olemassa kieli L Σ, joka ei ole säännöllinen. Todistus (Hahmotelma). Joukko P(Σ ) on kaikkien muodollisten kielien M Σ joukko. Koska Σ on äärellinen ja epätyhjä joukko, on helppo osoittaa, että Σ ja N ovat yhtämahtavat. Täten muodollisia kieliä L Σ on yhtä monta kuin joukossa P(N) alkioita, eli ylinumeroituvasti ääretön määrä. On lisäksi helppo osoittaa, että säännöllisiä lausekkeita on numeroituvasti ääretön määrä, joten säännöllisiä kieliä on numeroituvasti ääretön määrä. Täten muodollisia kieliä ja säännöllisiä lausekkeita ei voida asettaa yksi-yhteen suhteeseen.

Säännölliset kielet vs. muodolliset kieliopit Kieli L = {a n b n n N } ei ole säännöllinen. Todistus. Oletetaan että L on säännöllinen. Tällöin on olemassa deterministinen automaatti M joka hyväksyy kielen L. Automaatin tilajoukko on äärellinen. Täten on oltava sellaiset i N ja k N, i k, että M päätyy samaan tilaan q sekä luettuaan prefiksin a i että luettuaan prefiksin a k. Täten, koska M hyväksyy sanat a i b i ja a k b k, hyväksyy M myös sanan a i b k. Koska i k, tämä on ristiriita.

Muodollisen kieliopin määritelmä Määrittelemme nyt muodollisen kieliopin formaalisti. Muodollinen kielioppi on yhdelmä (Σ, V, R, S). 1. Σ on äärellinen terminaalisymbolien joukko. 2. V on äärellinen nonterminaalisymbolien joukko. V Σ =. 3. R on äärellinen joukko sääntöjä. Formaalisti, R (W V W ) (W {ε}), missä W = Σ V ja ε W on nk. tyhjä merkki. 4. S V on alkusymboli. R on siis äärellinen joukko sääntöjä (α, β) R. Merkitsemme sääntöä (α, β) käyttäen merkintää α β, ja yleensä listaamme tätä merkintää käyttäen joukon R säännöt kirjoittaen ne allekain.

Muodollisen kieliopin määrittelemä kieli Muodollisen kielioppin M = (Σ, V, R, S) mukainen johtaminen aloitetaan alkusymbolista S. Johtamisaskeleessa korvataan nonterminaalisymboli (tai jopa kokonainen symbolijono) symbolijonolla, noudattaen sääntökokoelman R sääntöjä. Esim. jos αaβ αaa on sääntö jossa A on terminaalisymboli ja α ja β symbolijonoja, ja olemme johtaneet jonon αaβ, voimme yhdellä johtamisaskeleella johtaa jonon αaa. Samaan tapaan, jos βa β on sääntö, ja olemme johtaneet jonon αβa, saamme nyt johdettua lyhyemmän jonon αβ korvaamalla jonossa αβa jono βa jonolla β.

Muodollisen kieliopin määrittelemä kieli Kieliopin M määrittelemä kieli koostuu täsmälleen niistä joukon Σ sanoista α, joille voidaan esittää johtaminen joka alkaa alkusymbolista S, noudattaa joukon R sääntöjä ja lopulta päättyy sanaan α. Huomaa, että α sisältää pelkästään terminalisymboleja. (Myös tyhjän symbolin ε esiintymät ovat mahdollisia).

Muodolliset kieliopit Olkoon Σ = {a, b}. Määritellään kielioppi, jossa alkusymboli on S ja käytössä on seuraavat säännöt. 1. S asb 2. S ε. Voimme nyt johtaa sanan aabb seuraavasti. 1. S (Alkusymboli) 2. asb (Sääntö 1.) 3. aasbb (Sääntö 1.) 4. aaεbb (Sääntö 2.) Näin olemme johtaneet sanan a a ε b b = aabb. Huomaa, että tämä kielioppi tuottaa kielen {a i b i i N }. Osoitimme aiemmin, että tätä kieltä ei vastaa mikään automaatti.

Chomskyn kielityypit Määrittelemme nyt neljä eri luokkaa kielioppeja. Näitä luokkia kutsutaan Chomskyn kielityypeiksi. Merkitsemme merkkijonoja kreikkalaisilla kirjaimilla. Tyypin 0 kieliopin säännöille α β ei aseteta mitään rajoituksia. Tyypin 1 kieliopin säännöt ovat muotoa αaβ αγβ (γ ε) tai A ε. Näitä kielioppeja kutsutaan kontekstiriippuviksi kieliopeiksi. Huomaa että A:n "ympäristö" (α ja β) tai "konteksti" säilyy, kun A muuttuu γ:ksi käytettäessä sääntöä αaβ αγβ. jatkuu...

Chomskyn kielityypit Tyypin 2 kieliopin säännöt ovat muotoa A γ. Tällaisia kielioppeja kutsutaan kontekstiriippumattomiksi kieliopeiksi. Tyypin 3 kieliopin säännöt ovat muotoa A ab, A a, A ε. On mahdollista todistaa, että kieli on säännöllinen jos ja vain jos sen tuottaa jokin tyypin 3 kielioppi. (Sivuutamme todistuksen)

Chomskyn kielioppityypit Määrittelemämme kielioppityypit muodostavat nk. Chomskyn kielioppihierarkian. On mahdollista todistaa, että kielioppityypit muodostavat aidon hierarkian järjestyksessä 3 2 1 0, millä tässä tarkoitetaan sitä, että seuraavat kaksi ehtoa toteutuvat. 1. Jokainen kieli joka voidaan tunnistaa tyypin i kieliopilla, voidaan tuottaa myös tyypin i 1 kieliopilla. 2. On olemassa kieli, joka voidaan tunnistaa tyypin i i kieliopilla, mutta sitä ei voida tunnistaa tyypin i kieliopilla.

Muodolliset kieliopit Harjoitustehtävä. Muodosta kielioppi, joka tuottaa saman kielen kuin säännöllinen lauseke a b. Vastaus. Kielioppi sisältää seuraavat säännöt. 1. A aa, 2. A Ab 3. A ε. Aloitussymbolina on A.