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

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

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

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

on rekursiivisesti numeroituva, mutta ei rekursiivinen.

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

Chomskyn hierarkia ja yhteysherkät kieliopit

5.3 Ratkeavia ongelmia

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

Säännöllisen kielen tunnistavat Turingin koneet

ICS-C2000 Tietojenkäsittelyteoria Kevät 2016

Pysähtymisongelman ratkeavuus [Sipser luku 4.2]

Kaikki mitä olet aina halunnut tietää pumppauslemmoista, mutta mitä et ole kehdannut kysyä

Laskennan teoria (kevät 2006) Harjoitus 3, ratkaisuja

1. Universaaleja laskennan malleja

Automaatit. Muodolliset kielet

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

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

Täydentäviä muistiinpanoja Turingin koneiden vaihtoehdoista

Lisää pysähtymisaiheisia ongelmia

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

TKT20005 Laskennan mallit (syksy 2018) Kurssikoe, malliratkaisut

Kertausta 1. kurssikokeeseen

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

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

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.

S BAB ABA A aas bba B bbs c

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

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

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

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

ICS-C2000 Tietojenkäsittelyteoria

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

Täydentäviä muistiinpanoja laskennan rajoista

Säännöllisten kielten sulkeumaominaisuudet

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

6.5 Turingin koneiden pysähtymisongelma Lause 6.9 Kieli. H = {c M w M pysähtyy syötteellä w}

Tarkastelemme ensin konkreettista esimerkkiä ja johdamme sitten yleisen säännön, joilla voidaan tietyissä tapauksissa todeta kielen ei-säännöllisyys.

Laskennan mallit (syksy 2010) Harjoitus 4, ratkaisuja

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. 31. maaliskuuta 2011

Rajoittamattomat kieliopit

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

Rekursiiviset palautukset [HMU 9.3.1]

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

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

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

Esimerkki 2.28: Tarkastellaan edellisen sivun ehdot (1) (3) toteuttavaa pinoautomaattia, jossa päätemerkit ovat a, b ja c ja pinoaakkoset d, e ja $:

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

Pinoautomaatit. Pois kontekstittomuudesta

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

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

Hahmon etsiminen syotteesta (johdatteleva esimerkki)

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

Laskennan mallit (syksy 2009) Harjoitus 11, ratkaisuja

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

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

Laskennan mallit (syksy 2010) 2. kurssikoe, ratkaisuja

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

Rajoittamattomat kieliopit (Unrestricted Grammars)

Muunnelmia Turingin koneista sekä muita vaihtoehtoisia malleja

ICS-C2000 Tietojenkäsittelyteoria

2. Laskettavuusteoriaa

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

Algoritmin määritelmä [Sipser luku 3.3]

Laskennan mallit (syksy 2010) Harjoitus 8, ratkaisuja

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

Turingin koneet. TIEA241 Automaatit ja kieliopit, syksy Antti-Juhani Kaijanaho. 7. joulukuuta 2015 TIETOTEKNIIKAN LAITOS.

Turingin koneen laajennuksia

2. Laskettavuusteoriaa

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

Yhteydettömän kieliopin jäsennysongelma

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

δ : (Q {q acc, q rej }) (Γ k {, }) Q (Γ k {, }) {L, R}.

Chomskyn hierarkia. tyyppi 0 on juuri esitelty (ja esitellään kohta lisää) tyypit 2 ja 3 kurssilla Ohjelmoinnin ja laskennan perusmallit

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

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

6.1 Rekursiiviset palautukset

Epädeterministisen Turingin koneen N laskentaa syötteellä x on usein hyödyllistä ajatella laskentapuuna

Muita vaativuusluokkia

ICS-C2000 Tietojenkäsittelyteoria Kevät 2016

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

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

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

1. Universaaleja laskennan malleja

ÄÄRELLISTEN AUTOMAATTIEN MINIMOINTI. 1. Äärelliset automaatit Äärellinen automaatti (DFA = deterministic finite automaton) on

ICS-C2000 Tietojenkäsittelyteoria Kevät 2016


Muodolliset kieliopit

Rekursiivinen Derives on periaatteessa aivan toimiva algoritmi, mutta erittäin tehoton. Jos tarkastellaan esim. kieliopinpätkää

815338A Ohjelmointikielten periaatteet Harjoitus 2 vastaukset

Laskennan mallit

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

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

Yhteydettömät kieliopit [Sipser luku 2.1]

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

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

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

2.6 SÄÄNNÖLLISET LAUSEKKEET Automaattimalleista poikkeava tapa kuvata yksinkertaisia kieliä. Olkoot A ja B aakkoston Σ kieliä. Perusoperaatioita:

ICS-C2000 Tietojenkäsittelyteoria

Transkriptio:

T-79.48 Tietojenkäsittelyteorian perusteet Tentti 25..23 mallivastaukset. Tehtävä: Kuvaa seuraavat kielet sekä säännölisten lausekkeiden että determinististen äärellisten automaattien avulla: (a) L = {w {, } w sisältää osajonon }; () L = {w {, } w ei sisällä osajonoa } (a) Muodostetaan suoraan kieltä vastaavasäännöllinen lauseke: ( ) ( ) Koska kieli on yksinkertainen, muodostetaan sen tunnistava epädeterministinen äärellinen automaatti suoraan käyttämättä apuna säännöllistä lauseketta:,, q q q 2 q3 Automaatin tilansiirtotaulukko on: Tila q {q,q } {q } q {q 2 } q 2 {q 3 } q 3 {q 3 } {q 3 } Determinisoidaan automaatti: Tila Nimi {q } {q,q } {q } q A {q,q } {q,q } {q,q 2 } q {q,q 2 } {q,q,q 3 } {q } q C {q,q,q 3 } {q,q,q 3 } {q,q 2,q 3 } q D {q,q 2,q 3 } {q,q,q 3 } {q,q 3 } q E {q,q 3 } {q,q,q 3 } {q,q 3 } q F Taulukossa ristillä merkityt tilat ovat hyväksyviä lopputiloja. Tilakaaviona determinisoitu kone on: q A q q C qd q E q F Automaattia ei ole minimoitu, minimointi yhdistäisi kaikki kolme hyväksyvää lopputilaa.

() Koska tehtävän kieli on (a)-kohdan komplementtikieli, saadaan sitä vastaava automaatti vaihtamalla edellisestä automaatista hyväksyvät ja hylkäävät tilat keskenään:, q A q q C q D Rakennetaan kieltä vastaavasäännöllinen lauseke ylläolevan automaatin avulla:, q A q q q D C ( ) 2. Tehtävä: Viimeisestä lausekeautomaatista nähdään, että haluttu säännöllinen lauseke on: ( ) ( ( )). (a) Laadi yhteydetön kielioppi, joka tuottaa kielen: S = {a m n m+n m, n }. Anna kielioppisi mukaiset jäsennyspuut lauseille a ja. () Osoita (täsmällisesti!), että (a)-kohdan kieltä eivoikuvatasäännöl- lisellä lausekkeella. (a) Kielen tuottaa kielioppi: Halutut jäsennyspuut ovat: S as 2

S S a S () Käytetään säännöllisten kielten pumppauslemmaa: Jos L on säännöllinen kieli, niin on olemassa jokin p siten, että kaikille lauseille x L pätee: jos x p, niin x voidaan esittää muodossa x = uvw, missä: i. uv p; ii. v > ; ja iii. uv k w L kaikilla k N. Tarkastellaan lausetta x = a p p 2p L ja yritetään osittaa se lemman ehtojen mukaisesti. Kaikille ehdon i. toteuttaville osituksille pätee: u = a i v = a j w = a p (i+j) p 2p, missä i + j < p. Ehdosta ii. seuraa, että j >. Asettamalla tällöin k =, saadaan lause: uv w = uw = a i a p (i+j) p 2p = a p j p 2p / L Koska lauseen x kaikki ositukset rikkovat ainakin yhtä pumppauslemman ehtoa, ei kieli L ole säännöllinen. 3. Tehtävä: Suunnittele standardimallinen, so. deterministinen yksinauhainen Turingin kone, joka korvaa nauhalla annetun merkkijonon a i j,i j merkkijonolla A i j C k,missäk = i j. Syötteen oikeellisuutta ei tarvitse tarkistaa, so. saat olettaa, että nauhan sisältö koneen toiminnan alussa on edellä esitettyä muotoa. Kuvaa suunnittelemasi kone tilakaaviona ja esitä sen laskennat syötteillä aa, a ja a. Annettu funktio voidaan laskea Turingin koneella, joka toimii seuraavalla periaatteella: Luetaan syötteen alusta merkki a ja muutetaan se merkiksi A. Siirretään lukupäätä oikealle, kunnes löytyy merkki, muutetaan se :ksi ja palataan alkuun. Mikäli yhtään -merkkiäeilöydetä, kirjoitetaan syötteen loppuun merkki C ja palataan alkuun. 3

Yllä olevia kolmea vaihetta toistetaan niin pitkään, että koko syöte on käsitelty ja lopuksi palautetaan lukupää nauhan alkuun. Mikäli syöte on tyhjä, lopetetaan laskenta välittömästi. A/A, L q 3 >/>, R q a /,L C/C,L </<, L a/a, R a/a, R /,R C/C,R /, L a/a, L /,L C/C,L q q </C, L q 2 A/A, R Koneen laskennat annetuilla syötteillä ovat: aa: a: a: (q,aa) (q,aa) (q,aa) (q 2,Aa) (q 2,Aa) (q,aa) (q, AA) (q, AA) (q 2, AAC) (q 2,AAC) (q, AAC) (q 3,AAC) (q 3,AAC) (q 3,AAC) (q a,aac) (q,a) (q,a) (q 2,A) (q,a) (q 3,A) (q 3,A) (q a,a) (q,a) (q,a) (q 2,AC) (q,ac) (q 3,AC) (q 3,AC) (q a,ac) 4. Tehtävä: (a) Määrittele käsitteet rekursiivinen ja rekursiivisesti numeroituva kieli. Mikä onnäiden kahden käsitteen tärkein ero? () Anna jokin esimerkki kielestä, joka on rekursiivisesti numeroituva mutta ei rekursiivinen. (Kielen määrittelyn tulee olla täsmällinen, mutta sen ominaisuuksia ei tarvitse todistaa.) () Osoita, että joskielil Σ on rekursiivisesti numeroituva mutta ei rekursiivinen, niin sen komplementtikieli L =Σ L ei ole rekursiivisesti numeroituva. (Saat käyttää väitteen todistuksessa hyväksesi mitä tahansa luennolla tai luentomonisteessa esitettyjä aputuloksia.) (a) Kieli L on rekursiivisesti numeroituva, mikäli se voidaan tunnistaa jollakin Turingin koneella, eli mikäli on olemassa Turingin kone M siten, että: w Σ : w L w L(M). 4

Kieli L on rekursiivinen, mikäli se voidaan tunnistaa jollakin totaalisella Turingin koneella, eli koneella, joka pysähtyy aina lopulta kaikilla syötteillä. Jos kieli on rekursiivinen, voidaan tarkistaa kuuluko lause kieleen vai ei, sillä totaalinen Turingin kone antaa aina lopulta oikean vastauksen. Mikäli kieli on rekursiivisesti numeroituva, mutta ei rekursiivinen, voi kielen tunnistava Turingin kone joutua ikuiseen silmukkaan kieleen kuulumattomalla syötteellä, jolloin hylkäävää vastausta ei koskaan saada. () Määritellään aakkoston Σ = {, } kieli: U = { M w w L(M)}, missä M on Turingin koneen M koodaus ittijonoksi opetusmonisteen kohdassa 6.3 esitetyllä tavalla. KieleenU kuuluvat kaikki ne merkkijonot, joiden alussa on jonkin Turingin koneen kuvaus ja lopussa koneen tunnistamaan kieleen kuuluva sana. Kieli U on todistettu rekursiivisesti numeroituvaksi opetusmonisteen lauseessa 6.6 ja ei-rekursiiviseksi lauseessa 6.7. () Opetusmonisteen lauseen 6.3 perusteella kieli A on rekursiivinen, jos ja vain jos kielet A ja A ovat rekursiivisesti numeroituvia. Jos kielen L komplementti L olisi rekursiivisesti numeroituva, niin L olisi lauseen perusteella rekursiivinen. Koska L on määritelty ei-rekursiiviseksi, ei sen komplementti voi olla rekursiivisesti numeroituva. Siis: L RE ja L RE L REC, joten L/ REC L/ RE tai L/ RE Koska L/ REC ja L RE, niin L/ RE. 5