Luonnolliset vs. muodolliset kielet



Samankaltaiset tiedostot
Muodolliset kieliopit

Säännöllisten kielten sulkeumaominaisuudet

8. Kieliopit ja kielet 1 / 22

8. Kieliopit ja kielet

Automaatit. Muodolliset kielet

Hahmon etsiminen syotteesta (johdatteleva esimerkki)

Talousmatematiikan perusteet, L2

815338A Ohjelmointikielten periaatteet Harjoitus 2 vastaukset

11.4. Context-free kielet 1 / 17

Talousmatematiikan perusteet, L2 Kertaus Aiheet

Talousmatematiikan perusteet, L2 Kertaus Aiheet

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

LAUSEKKEET JA NIIDEN MUUNTAMINEN

Lineaarialgebra ja matriisilaskenta I

Yhteydettömät kieliopit [Sipser luku 2.1]

Äärettömät sanat. Aleksi Saarela. Matematiikan ja tilastotieteen laitos ja FUNDIM-keskus, Turun yliopisto. A. Saarela (TY) Äärettömät sanat 1 / 28

Lukion matematiikkakilpailun alkukilpailu 2015

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

KESKI-SUOMEN MAAKUNNAN JA LÄHIKUNTIEN LUKIOIDEN TIETOTEKNIIKAN II KILPAILU

Lukumäärän laskeminen 1/7 Sisältö ESITIEDOT:

Tehtävä 2: Säännölliset lausekkeet

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

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

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

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

Matriisit ja vektorit Matriisin käsite Matriisialgebra. Olkoon A = , B = Laske A + B, , 1 3 3

Jaollisuus kymmenjärjestelmässä

Diskreetin matematiikan perusteet Laskuharjoitus 1 / vko 8

a b c d

Syyskuu Jo vuodesta Julkaisijat: Lions Club Lavia ry. ja Lavian Yrittäjät ry.

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

TKT20005 Laskennan mallit (syksy 2018) Kurssikoe, malliratkaisut

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,

Rajoittamattomat kieliopit

3. Kirjoita seuraavat joukot luettelemalla niiden alkiot, jos mahdollista. Onko jokin joukoista tyhjä joukko?

FUNKTIONAALIANALYYSIN PERUSKURSSI Johdanto

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

Pythagoraan polku

LOGIIKKA johdantoa

Mikäli huomaat virheen tai on kysyttävää liittyen malleihin, lähetä viesti osoitteeseen

Predikaattilogiikan malli-teoreettinen semantiikka

Matematiikan tukikurssi

Matematiikan olympiavalmennus

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

203 Asetetaan neliöt tasoon niin, että niiden keskipisteet yhtyvät ja eräiden sivujen välille muodostuu 45 kulma.

Tietojenkäsittelyteorian alkeet, osa 2

Algebra I Matematiikan ja tilastotieteen laitos Ratkaisuehdotuksia harjoituksiin 3 (9 sivua) OT

1. Esitä rekursiivinen määritelmä lukujonolle

3. Kongruenssit. 3.1 Jakojäännös ja kongruenssi

Kurssikoe on maanantaina Muista ilmoittautua kokeeseen viimeistään 10 päivää ennen koetta! Ilmoittautumisohjeet löytyvät kurssin kotisivuilla.

811120P Diskreetit rakenteet

1 Logiikkaa. 1.1 Logiikan symbolit

Laskennan mallit (syksy 2010) Harjoitus 8, ratkaisuja

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

1. Kuinka monella tavalla joukon kaikki alkiot voidaan järjestää jonoksi? Tähän antaa vastauksen: tuloperiaate ja permutaatio

811120P Diskreetit rakenteet


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

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

Output. Input Automaton

Matriisit. Määritelmä 1 Reaaliluvuista a ij, missä i = 1,..., k ja j = 1,..., n, muodostettua kaaviota a 11 a 12 a 1n a 21 a 22 a 2n A =

Pinoautomaatit. Pois kontekstittomuudesta

joissa on 0 4 oikeata vastausta. Laskimet eivät ole sallittuja.

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

Kuvaus eli funktio f joukolta X joukkoon Y tarkoittaa havainnollisesti vastaavuutta, joka liittää joukon X jokaiseen alkioon joukon Y tietyn alkion.

Formalisoimme nyt edellä kuvatun laskennan.

Chomskyn hierarkia ja yhteysherkät kieliopit

Tehtävä 1. Arvioi mitkä seuraavista väitteistä pitävät paikkansa. Vihje: voit aloittaa kokeilemalla sopivia lukuarvoja.

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

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

Kuvaus eli funktio f joukolta X joukkoon Y tarkoittaa havainnollisesti vastaavuutta, joka liittää joukon X jokaiseen alkioon joukon Y tietyn alkion.


Johdatus matemaattiseen päättelyyn

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

} {{ } kertaa jotain

811120P Diskreetit rakenteet

-Matematiikka on aksiomaattinen järjestelmä. -uusi tieto voidaan perustella edellisten tietojen avulla, tätä kutsutaan todistamiseksi

1 Lukujen jaollisuudesta

Matematiikan johdantokurssi, syksy 2016 Harjoitus 11, ratkaisuista

MAT Program Verification (Ohjelmien todistaminen) merkintöjen selityksiä

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

Lineaarialgebra ja matriisilaskenta I

Diskreetin Matematiikan Paja Ratkaisuhahmotelmia viikko 1. ( ) Jeremias Berg

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

(2n 1) = n 2

Algebran perusteet. 44 ϕ(105) = (105). Näin ollen

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

33. pohjoismainen matematiikkakilpailu 2019 Ratkaisut

ICS-C2000 Tietojenkäsittelyteoria

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

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

Osa 1: Todennäköisyys ja sen laskusäännöt. Klassinen todennäköisyys ja kombinatoriikka

Alkioiden x ja y muodostama järjestetty pari on jono (x, y), jossa x on ensimmäisenä ja y toisena jäsenenä.

Äärellisten mallien teoria

Matematiikan mestariluokka, syksy

Insinöörimatematiikka D

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

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

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

815338A Ohjelmointikielten periaatteet Harjoitus 4 vastaukset

Transkriptio:

Luonnolliset vs. muodolliset kielet Luonnollisia kieliä ovat esim. 1. englanti, 2. suomi, 3. ranska. Muodollisia kieliä ovat esim. 1. lauselogiikan kieli (ilmaisut p, p q jne.), 2. C++, FORTRAN, 3. bittijonokokoelma {0, 1, 10, 11, 100, 101, 110, 111, 1000,...}.

Aakkosto Σ Olkoon Σ epätyhjä ja äärellinen joukko. Joukon Σ alkioita kutsumme aakkosiksi, kirjaimiksi tai merkeiksi. Joukko Σ on kaikkien niiden äärellisten kirjainjonojen joukko, joka saadaan kirjoittamalla joukon Σ aakkosia peräkkäin. Myös tyhjä jono ε on äärellinen kirjainjono. Esimerkki. Olkoon Σ = {a}. Nyt Σ = {ε, a, aa, aaa, aaaa,...}. Huomaa, että Σ {a, aa, aaa, aaaa,...}. Esimerkki. Olkoon Σ = {a, b}. Nyt Σ = {ε, a, b, aa, ab, ba, bb, aaa, aab...}.

Muodollisen kielen määritelmä Olkoon Σ aakkosto. Kutsumme joukon Σ osajoukkoja muodollisiksi kieliksi. Esimerkki. Olkoon Σ = {a}. Nyt esim. L = {a, aaaaa, aaaaaaaaaaaaa} on muodollinen kieli, sillä L Σ. Kieli L sisältää kolme alkiota. Kielen alkioita kutsumme sanoiksi. Kieli L sisältää sanat 1. a, 2. aaaaa, 3. aaaaaaaaaaaaa. Myös tyhjä kieli on, muodollinen kieli, kuten myös joukko {ε}. Huomaa, että ja {ε} ovat eri kielet.

Muodollisen kielen määritelmä Esimerkki. Olkoon Σ = {a, b}. Nyt esim. L = {a, abbb, bbbb, aaaaa} on muodollinen kieli. Myös K = {a, ab, abb, abbb, abbbb, abbbbb, abbbbbb, abbbbbbbb,...} on muodollinen kieli. Kieli L sisältää neljä sanaa. Kieli K sisältää ääretön sanaa. Se on siis ääretön kieli. Esimerkki. Olkoon Σ = {a, b, c}. Nyt esim. M = {ε, abc, abcc} on muodollinen kieli, kuten myös N = {abc, abcc}. Nämä ovat eri kielet. Kieli L sisältää kolme sanaa ja kieli N kaksi. Kuinka monta sanaa sisältää kieli {aaa, aaa, aaa, aaa}? Miksi?

Sanojen konkatenaatio Olkoon Σ aakkosto. Olkoon α ja β kaksi Σ-sanaa, eli aakkoston Σ kirjaimista muodostettua sanaa. Sanojen α ja β ketju eli konkatenaatio α β saadaan kirjoittamalla α ja β peräkkäin. Esimerkki. Olkoon α = aa ja β = bb. Tällöin α β = aabb ja β α = bbaa. Esimerkki. Olkoon α = ε ja β = ab. Tällöin α β = ab = β α. Tällöin lisäksi α α = ε ε = ε. Selvästi konkatenaatiolle on voimassa liitäntälaki: α (β γ) = (α β) γ. Voimmekin jättää sulut kirjoittamatta ja merkitä α (β γ) = (α β) γ = α β γ.

Kielten konkatenaatio Olkoon Σ aakkosto. Olkoon L ja K kaksi Σ-kieltä, eli L Σ ja K Σ. Määrittelemme L K = { α β α L, β K }. L K on kielten L ja K konkatenaatio. L K on Σ-kieli. On tärkeää ymmärtää, että kielten konkatenaatio ja sanojen konkatenaatio ovat eri käsitteitä. Esimerkki. Olkoot L = {a, ab} ja K = {aaa, bb}. Nyt L K = {aaaa, abb, abaaa, abbb}. Esimerkki. Olkoot L = {ε, a} ja K = {aaa, bb}. Nyt L K = {aaa, bb, aaaa, abb}. Esimerkki. Olkoot L = ja K = {aaa, bb}. Nyt L K =.

Konkatenaatio Esimerkki. Olkoot L = {ε, a} ja K = {ε, bb}. Nyt L K = {ε, bb, a, abb}. Miten kielet L ja K olisi määriteltävä, että olisi voimassa L K = {ε}? Olkoon {a} aakkosto. Määrittele jokin kieli L siten että a L ja L L = L. Myös kielien konkatenaatiolle on voimassa liitäntälaki: L (K H) = (L K) H. Voimmekin merkitä L (K H) = (L K) H = L K H. Olkoot α ja β sanoja sekä L ja K kieliä. Merkinnän α β sijaan voimme käytää lyhyempää merkintää αβ. Samaan tapaan kielien L ja K konkatenaatioon voidaan viitata merkinnällä LK.

Sanojen potenssi Olkoon α sana. Määrittelemme sanan α potenssin seuraavalla tavalla. 1. α 0 = ε. 2. α 1 = α. 3. Kaikille kokonaisluvuille n 2 pätee α n = α... α, eli α n on sanan α n-kertainen konkatenaatio itsensä kanssa. Esimerkki. Olkoon α = ab. Tällöin α 3 = α α α = ababab. Esimerkki. Olkoon β = ε. Tällöin β 19 = ε.

Kielten potenssi Olkoon L kieli. Määrittelemme kielen L potenssin seuraavalla tavalla. 1. L 0 = {ε}. 2. L 1 = L. 3. Kaikille kokonaisluvuille n 2 pätee L n = L... L, eli L n on kielen L n-kertainen konkatenaatio itsensä kanssa. Esimerkki. Olkoon L = {ab}. Tällöin L 3 = {ababab}. Esimerkki. Olkoon L = {a, aa, aaa, aaaa,...}. Tällöin L 3 = {aaa, aaaa, aaaaa, aaaaaa,...}.

Kleenen sulkeuma Olkoon L kieli. Kielen L Kleenen sulkeuma L on L:n kaikkien potenssien yhdiste, eli L = L 0 L 1 L 2 L 3.... Esimerkki. Olkoon L = {aa}. Tällöin L = {ε, aa, aaaa, aaaaaa, aaaaaaaa,... }. Esimerkki. {a, b} = {ε, a, b, a 2, ab, ba, b 2, a 3, a 2 b, aba, ab 2, ba 2, bab, b 2 a, b 3, a 4,... }. Esimerkki. = {ε}. Esimerkki. {ε} = {ε}. Olkoot L kieli. Päteekö välttämättä, että (L ) = L?

Säännölliset lausekkeet Säännölliset lausekkeet muodostavat täsmällisen tavan määritellä muodollisia kieliä. Olkoon Σ aakkosto. 1. on säännöllinen lauseke. 2. ε on säännöllinen lauseke. 3. Jos a Σ, niin a on säännöllinen lauseke. 4. Jos ξ ja η ovat säännöllisiä lausekkeita, niin (ξ η) on säännöllinen lauseke. 5. Jos ξ ja η ovat säännöllisiä lausekkeita, niin (ξ η) on säännöllinen lauseke. 6. Jos ξ on säännöllinen lauseke, niin ξ on säännöllinen lauseke. 7. Muita säännöllisiä lausekkeita ei ole. Säännölliset lausekkeetkin ovat siis muodollisia sanoja. Tässä säännöllisiin lausekkeisiin liittyvä aakkosto on joukko Σ {, ε, (, ),,, }.

Säännölliset lausekkeet Määrittelimme säännöllisten lausekkeiden syntaksin. Määrittelemme nyt tulkinnan eli semantiikan säännöllisille lausekkeille. Tarkoitamme lyhennyksellä s.l. säännöllistä lauseketta. 1. S.l. tarkoittaa joukkoa 2. S.l. ε tarkoittaa joukkoa {ε}. 3. S.l. a, missä a Σ, tarkoittaa joukkoa {a}. 4. Jos s.l. ξ tarkoittaa joukkoa X ja s.l. η tarkoittaa joukkoa Y, niin s.l. (ξ η) tarkoittaa joukkoa X Y. 5. Jos s.l. ξ tarkoittaa joukkoa X ja s.l. η tarkoittaa joukkoa Y, niin s.l. (ξ η) tarkoittaa joukkoa X Y. 6. Jos s.l. ξ tarkoittaa joukkoa X, niin ξ tarkoittaa joukkoa X. Jokainen säännöllinen lauseke siis tarkoittaa jotakin muodollista kieltä.

Säännölliset lausekkeet Esimerkki. S.l. (a (b c)) tarkoittaa joukkoa {a} ({b} {c}) = {a, b, c}. Esimerkki. S.l. (a c ) tarkoittaa joukkoa {a} ({c} ) = {a} {ε, c, cc, ccc, cccc,...} = {a, ac, acc, accc, acccc,...}. Esimerkki. S.l. (a ) tarkoittaa joukkoa {a}, mutta s.l. (ε a) tarkoittaa joukkoa {ε, a}.

Säännölliset lausekkeet Esimerkki. S.l. (a b ) tarkoittaa joukkoa {a} {b} = {ε, a, aa, aaa,...} {ε, b, bb, bbb,...} = {ε, a, b, aa, ab, bb, aaa, aab, abb, bbb, aaaa, aaab, aabb,...}. Esimerkki. S.l. ( (a a)) tarkoittaa joukkoa {ε} ({a} {a}) = {ε} {aa} = {aa}. Esimerkki. S.l. (a b) tarkoittaa joukkoa ({a} {b}) = {a, b} = {ε, a, b, aa, ab, ba, bb,...}.

Säännölliset lausekkeet Liitäntälakien nojalla voimme viitata säännölliseen lausekkeeseen (ξ (η ζ)) ilmaisulla ξ η ζ. Tässä myös uloimmat sulut on jätetty kirjoittamatta. Vastaavia lyhennyksiä voidaan käyttää myös operaation tapauksessa. Esimerkki. Ilmaisu (a b c) d e f viittaa niiden sanojen joukkoon, joilla on ensimmäisenä kirjaimena a, b tai c, tämän jälkeen on jono (mahdollisesti tyhjä) d-kirjaimia, jonka jälkeen sana päättyy kahden kirjaimen muodostamaan jonoon ef.

Säännölliset kielet Olkoon Σ aakkosto. Säännölliset kielet ovat muodollisia kieliä L Σ. Aakkoston ollessa Σ, määrittelemme säännölliset kielet seuraavasti. 1. on säännöllinen kieli. 2. {ε} on säännöllinen kieli. 3. Jos a Σ, niin {a} on säännöllinen kieli. 4. Jos X ja Y ovat säännöllisiä kieliä, niin X Y on säännöllinen kieli. 5. Jos X ja Y ovat säännöllisiä kieliä, niin X Y on säännöllinen kieli. 6. Jos X on säännöllinen kieli, niin X on säännöllinen kieli. 7. Muita säännöllisiä kieliä ei ole.

Säännölliset kielet Lause. Kieli L on säännöllinen kieli jos ja vain jos on olemassa säännöllinen lauseke, joka määrittelee kielen L. Sivuutamme todistuksen. Esimerkki. Kieli L = {ε, a, aa, aaa, aaaa,...} on yllä olevan lauseen nojalla säännöllinen kieli, sillä L voidaan määritellä säännöllisellä lausekkeella a.

Harjoitustehtäviä Harjoitustehtävä. Olkoon Σ = {0, 1} aakkosto. Muodosta säännöllinen ilmaus joka määrittelee kielen L, johon kuuluvat täsmälleen kaksi kirjainta pitkät sanat. Vastaus. 00 01 10 11. Harjoitustehtävä. Olkoon Σ = {0, 1} aakkosto. Muodosta säännöllinen ilmaus joka määrittelee kielen L, johon kuuluvat parillista pituutta olevat sanat. Tyhjä sana ε on pituudeltaan parillinen. Vastaus. (00 01 10 11).

Harjoitustehtäviä Harjoitustehtävä. Onko säännöllisille lausekkeille yleisesti voimassa (ξ η) (ξ η )? Tässä symboli tarkoittaa, että lausekkeet määrittelevät täsmälleen saman kielen. Perustele vastauksesi lyhyesti. Vastaus. Ehto ei ole voimassa, sillä (a b) a b. Esimerkiksi ba kuuluu ilmauksen (a b) määrittelemään kieleen, mutta on helppo nähdä että ba ei kuulu ilmauksen a b määrittelemään kieleen. Harjoitustehtävä Vastaa perustelematta, onko säännöllisille lausekkeille voimassa ehto ξ ξ. Vastaus. On.