Säännöllisen kielen tunnistavat Turingin koneet

Samankaltaiset tiedostot
on rekursiivisesti numeroituva, mutta ei rekursiivinen.

5.3 Ratkeavia ongelmia

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

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

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

6.1 Rekursiiviset palautukset

Lisää pysähtymisaiheisia ongelmia

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

Rekursiiviset palautukset [HMU 9.3.1]

Pysähtymisongelman ratkeavuus [Sipser luku 4.2]

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

Täydentäviä muistiinpanoja laskennan rajoista

ICS-C2000 Tietojenkäsittelyteoria Kevät 2016

2. Laskettavuusteoriaa

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

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

2. Laskettavuusteoriaa

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

1. Universaaleja laskennan malleja

Laskennan rajoja. TIEA241 Automaatit ja kieliopit, syksy Antti-Juhani Kaijanaho. 10. joulukuuta 2015 TIETOTEKNIIKAN LAITOS.

Laskennan mallit (syksy 2009) Harjoitus 11, ratkaisuja

Algoritmin määritelmä [Sipser luku 3.3]

Laskennan rajoja. TIEA241 Automaatit ja kieliopit, kesä Antti-Juhani Kaijanaho. 20. kesäkuuta 2013 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.

ICS-C2000 Tietojenkäsittelyteoria

= k 0 NTIME(n k + k) Siis polynomisessa ajassa epädeterministisellä Turingin koneella tunnistettavien kielten joukko

Turingin koneen laajennuksia

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

Rajoittamattomat kieliopit (Unrestricted Grammars)

Chomskyn hierarkia ja yhteysherkät kieliopit

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

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

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

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

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

TKT20005 Laskennan mallit (syksy 2018) Kurssikoe, malliratkaisut

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

Muita vaativuusluokkia

Lause (Cook-Levin) Kieli SAT = { on toteutuva lausekalkyylin kaava } on NP-täydellinen.

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

Täydentäviä muistiinpanoja Turingin koneiden vaihtoehdoista

Kertausta 1. kurssikokeeseen

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

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, syksy Antti-Juhani Kaijanaho. 12. marraskuuta 2015

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

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

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

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

3SAT-ongelman NP-täydellisyys [HMU ]

Muunnelmia Turingin koneista sekä muita vaihtoehtoisia malleja

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

Hahmon etsiminen syotteesta (johdatteleva esimerkki)

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

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

C C. x 2. x 3 x 3. Lause 3SAT p m VC Todistus. Olk. φ = C 1 C 2 C m 3-cnf-kaava, jossa esiintyvät muuttujat. φ toteutuva:

Laskennan mallit (syksy 2010) Harjoitus 4, ratkaisuja

7. Aikavaativuus. Ohjelmistotekniikan laitos OHJ-2300 Johdatus tietojenkäsittelyteoriaan, syksy

ongelma A voidaan ratkaista ongelman B avulla, joten jossain mielessä

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

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

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

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

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

1. Universaaleja laskennan malleja

Automaatit. Muodolliset kielet

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

Output. Input Automaton

ICS-C2000 Tietojenkäsittelyteoria

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

Rajoittamattomat kieliopit

Yhteydettömän kieliopin jäsennysongelma

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

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

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

Ratkeavuus ja efektiivinen numeroituvuus

Säännöllisten kielten sulkeumaominaisuudet

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

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

10. Satunnaisalgoritmit

3. Turingin koneet. osaa esittää yksinkertaisia algoritmeja täsmällisesti käyttäen Turingin konetta ja sen muunnelmia

8. Kieliopit ja kielet

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

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

Ongelma(t): Mikä on Turingin kone? Miten Turingin kone liittyy funktioihin ja algoritmeihin? Miten Turingin kone liittyy tietokoneisiin?

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

Laskennan teoria


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

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

Formalisoimme nyt edellä kuvatun laskennan.

Laskennan mallit (syksy 2010) 2. kurssikoe, ratkaisuja

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

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

Laskennan mallit (syksy 2008) 2. kurssikoe , ratkaisuja

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

3. Laskennan vaativuusteoriaa

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

Pinoautomaatit. Pois kontekstittomuudesta

Transkriptio:

186 Säännöllisen kielen tunnistavat Turingin koneet Myös säännöllisen kielen hyväksyvien Turingin koneiden tunnistaminen voidaan osoittaa ratkeamattomaksi palauttamalla universaalikielen tunnistaminen tähän ongelmaan Päätösongelma on: ''Hyväksyykö annettu Turingin kone säännöllisen kielen?'' REG = { M M on Turingin kone ja L(M) on säännöllinen } Lause (5.3) REG ei ole rekursiivinen Todistus. Oletetaan, että REG:lla olisi totaalinen tunnistajakone M T REG 187 Tämän avulla voitaisiin muodostaa totaalinen tunnistajakone kielelle U Olkoon M mv. Turingin kone, jonka toimintaa syötteellä w tarkastellaan Tasapainoisten sulkuparien kieltä vastaava { 0 n 1 n n 0 } tunnetusti ei ole säännöllinen, mutta helposti tunnistettavissa Turingin koneella Olkoon M sulut ko. kielen totaalinen tunnistaja Olkoon M ENC nyt kone joka syötteestä M, w muodostaa koodin Turingin koneelle M w, joka syötteellä x ensin toimii kuten M sulut syötteellä x. Jos M sulut hylkää x:n, M w toimii kuten M syötteellä w. Muuten M w hyväksyy x:n 1

188 x M sulut start w M Säännöllisten kielten tunnistaminen: kone M w 189 Kone M w siis joko hyväksyy säännöllisen kielen { 0, 1 }* tai eisäännöllisen { 0 n 1 n n 0 } Merkkijonon w hyväksyminen/hylkääminen koneella M palautuu koneen M w hyväksymän kielen säännöllisyyteen/eisäännöllisyyteen w 0,1 L( M ) * n n 0 1 n 0 jos w L( M ) jos w L( M ) Olkoon M ENC kone, joka saa syötteenään Turingin koneen M koodin M sekä binäärijonon w katenaation, M, w, ja jättää tuloksena nauhalle koneen M w koodin M w Nyt koneet M ENC ja M T REG yhdistämällä saataisiin seuraavan kuvan esittämä Turingin kone M T U 2

190 M, w M w M T REG M ENC Universaalikielen U tunnistava totaalinen Turingin kone M U T 191 M UT on totaalinen jos M T REG on, ja L(M U T ) = U, koska M, w L(M UT ) M w L(M T REG ) = REG L(M w ) on säännöllinen w L(M) M, w U Lauseen 5.7 perusteella U ei kuitenkaan ole rekursiivinen, joten koneen M UT olemassaolo on ristiriita Näin ollen kielellä REG ei voi olla totaalista tunnistajakonetta M T REG Olemme siis todistaneet, että kieli REG ei ole rekursiivinen 3

192 Ricen lause Turingin koneen semanttiseksi ominaisuudeksi sanotaan mitä tahansa ominaisuutta, joka riippuu vain koneen tunnistamasta kielestä, ei sen syntaktisesta rakenteesta Esim. ''M hyväksyy tyhjän syötejonon'', ''M hyväksyy jonkin syötejonon'' (NE), ''M hyväksyy äärettömän monta merkkijonoa'', ''M:n tunnistama kieli on säännöllinen (REG)'' jne. Jos koneilla M 1 ja M 2 on L(M 1 ) = L(M 2 ), niin niillä on täsmälleen samat semanttiset ominaisuudet 193 Abstraktimmin: semanttinen ominaisuus S on mikä tahansa kokoelma aakkoston { 0, 1 } RE-kieliä Koneella M on ominaisuus S jos L(M) S. Triviaalit ominaisuudet ovat S = ja S = RE Ominaisuus S on ratkeava, jos kieli codes(s) = { M L(M) S } on rekursiivinen. Ricen lause Kaikki Turingin koneiden epätriviaalit semanttiset ominaisuudet ovat ratkeamattomia 4

194 Laskentahistoriat Turingin koneen laskentahistoria on niiden tilanteiden jono, joihin kone joutuu syötettä käsitellessään Koneen M hyväksyvä laskentahistoria syötteellä w on tilanteiden jono C 1, C 2,, C l, missä C 1 on alkutilanne q 0 w, C l on hyväksyvä tilanne ja kukin C i-1 johtaa suoraan C i :hin Vastaavasti määritellään hylkäävä laskentahistoria Laskentahistoriat ovat äärellisiä jonoja jos M ei pysähdy syötteellä w, niin hyväksyvää tai hylkäävää historiaa ei ole 195 Lineaarisesti rajoitetut automaatit Lineaarisesti rajoitettu automaatti (LRA) on Turingin kone, joka ei voi ottaa lisää työtilaa käyttöönsä Kone voi käyttää vain syötemerkkijonon pituuden verran työtilaa Koska nauha-aakkosto kuitenkin voi olla syöteaakkostoa laajempi, voi LRA käyttää vakiokertoimella korotetun muistimäärän Kontekstisten kielten ratkaisijoita Jos LRA:n tilojen määrä on q, nauha-aakkoston merkkien määrä g ja syötteen pituus n, niin sen mahdollisten tilanteiden lukumäärä on q n g n 5

196 Lause (5.9) Lineaarisesti rajoitettujen automaattien hyväksymisongelma A LRA = { M, w M on LRA ja hyväksyy merkkijonon w } on ratkeava Todistus. Jos LRA laskentansa kuluessa päätyy uudelleen samaan tilanteeseen kuin missä se jo kerran oli, niin laskennan jatkuessa näin tulee käymään yhä uudelleen. Eli tällöin LRA:n laskenta on silmukassa eikä tule pysähtymään. Koska LRA:lla on q n g n mahdollista tilannetta, niin jos laskenta ei ole päättynyt yhtä monen askelen kuluessa, on se silmukassa. A LRA :n ratkaisemiseksi riittää siis simuloida syötteellä w koneen M toimintaa q n g n askelta tai kunnes laskenta pysähtyy. 197 Lause 5.10 Lineaarisesti rajoitettujen automaattien tyhjyysongelma E LRA = { M M on LRA ja L(M) = } on ratkeamaton Todistus. Palautus ratkeamattomasta Turingin koneiden hyväksymisongelmasta (universaalikielestä). Vastaoletus: E LRA on ratkeava, eli on olemassa totaalinen Turingin kone M ET sen tunnistamiseksi. Olkoon M mv. Turingin kone, jonka toimintaa syötteellä w tarkastellaan. Muodostetaan LRA B, joka tunnistaa kaikki M:n hyväksyvät laskennat merkkijonolla w. 6

198 Tällöin saamme palautettua Turingin koneiden hyväksymisongelman LRA:iden tyhjyysongelmaan: L( B) L( B) jos w L( M ) jos w L( M ) Koneen B tulee siis hyväksyä syöte x mikäli se on M:n hyväksyvä laskentahistoria syötteellä w. Olkoon syötteen koodaus x = C 1 #C 2 ##C l. 199 B tarkastaa, että x täyttää hyväksyvän laskentahistorian ehdot: C 1 = q 0 w, C l on hyväksyvä tilanne, s.o.accept on tilanteen C l sisältämä tila ja C i-1 M C i : tilanteiden C i-1 ja C i tulee olla muilta osin ekvivalentit, paitsi aiemman nauhapään position kohdalta ja viereisissä muistipaikoissa sekä tehtyjen muutosten tulee noudattaa M:n siirtymäfunktiota. Annettuna M ja w on mahdollista muodostaa B automaattisesti. 7

200 Nyt yhdistämällä koneet B ja M ET seuraavan kuvan osoittamalla tavalla, saadaan totaalinen tunnistaja Turingin koneiden hyväksymisongelmaan (universaalikielelle). M, wl(m UT ) BL(M ET ) L(B) w L(M) M, wu Tämä on ristiriita, joten kieli E LRA ei voi olla ratkeava. 201 M, w B B M E T Universaalikielen U tunnistava totaalinen Turingin kone M U T 8

202 6.1 Rekursiiviset palautukset Olkoon M =(Q,,,, q 0,accept,reject) mv. standardimallinen Turingin kone Määritellään koneen laskema osittaisfunktio f M : * * seur. f M u, ( w) määrittelemätön, jos q 0 w M u q av, q {accept, reject}, av * muuten Kone M siis kuvaa merkkijonon w * koneen nauhapään vasemmalla puolella sijaitsevalle merkkijonolle u, jos laskenta pysähtyy syötteellä w Jos laskenta ei pysähdy, funktion arvoa pisteessä w ei ole määritelty 203 Osittaisfunktio f: * A on osittaisrekursiivinen, jos M: f = f M, A * Osittaisrekursiivifunktio f on rekursiivinen, jos se voidaan laskea totaalisella Turingin koneella. Ts. jos sen arvo f(w) on määritelty kaikilla w Formalisoidaan ajatus, että ongelma A on ''enintään yhtä vaikea'' kuin ongelma B seuraavasti Olkoot A *, B * formaaleja kieliä A voidaan palauttaa rekursiivisesti B:hen, merkitään A m B, jos on olemassa rekursiivinen funktio f: * * s.e. w A f(w) B w * 9

204 Tällöin A:n tapaus w voidaan muuttaa rekursiivisesti B:n tapaukseksi f(w) ja ''onko w:llä ominaisuus A?'' ''onko f(w):llä ominaisuus B?'' * f A f B * 205 Lemma 5.22 Kaikilla kielillä A, B, C pätee i. A m A, (refleksiivisyys) ii. jos A m B ja B m C, niin A m C, (transitiivisuus) iii. jos A m B ja B on RE-kieli, niin A on RE-kieli ja iv. jos A m B ja B on rekursiivinen, niin A on rekursiivinen Todistus. i. Valitaan palautusfunktioksi f(x) = x. ii. Olk. f palautusfunktio A:sta B:hen ja gb:stä C:hen. Merk. f: A m B, g: B m C. Osoitetaan, että yhdistetty funktio h, h(x) = g(f(x)) on palautus h: A m C. 10

206 1. hon rekursiivinen: Olkoot M f ja M g f:n ja g:n laskevat totaaliset Turingin koneet. M REW korvaa kaikki nauhapään oikealla puolella olevat merkit :lla ja vie nauhapään nauhan alkuun. Seuraavan kuvan totaalinen kone laskee funktion h. 2. hon palautus: x A f(x) B g(f(x)) = h(x) C, joten h: A m C. iii. (ja iv.) Olk. f: A m B, M B kielen B tunnistajakone ja M f funktion f laskeva kone. Seuraavan kuvan kone tunnistaa kielen A ja on totaalinen jos M B on. 207 x f(x)v f(x) g(f(x))v M M f M REW g h(x) Yhdistetyn kuvauksen laskeva Turingin kone 11

208 x f(x) M f M REW M B Kielen A tunnistava Turingin kone 209 Aiemmin jo käytimme lauseen 5.22 seurausta ratkeamattomuuden todistamiseen Seuraus 5.23 Jos A m B ja A on ratkeamaton, niin myös B on ratkeamaton. Kieli B { 0, 1 }* on RE-täydellinen, jos 1. B RE ja 2. A m B kaikilla A RE Lause Kieli U on RE-täydellinen Todistus. Tiedämme, että U RE. Olkoon B mv. RE-kieli. Olkoon edelleen B = L(M B ). Nyt B voidaan palauttaa U:hun funktiolla f(x) = M B, x. Funktio on selvästi rekursiivinen, ja sille pätee x B = L(M B ) f(x) = M B, xu. 12

210 Lause 6.1 Olkoon A RE-täydellinen kieli, B RE ja A m B. Tällöin myös B on RE-täydellinen. Kaikki ''luonnolliset'' luokan RE \ REC kielet ovat RE-täydellisiä, mutta kuitenkin siinä on muitakin kieliä Luokka RE ei ole suljettu komplementoinnin suhteen, joten sillä on duaaliluokka co-re = { A RE } RE co-re = REC (Lause 5.3) B { 0, 1 }* on co-re-täydellinen, jos B co-re ja A m B kaikilla A co-re Kieli A on co-re-täydellinen, jos ja vain jos kieli on RE-täydell. i Kieli TOT = { M M pysähtyy kaikilla syötteillä } ei kuulu luokkaan RE eikä co-re 211 RE-täydelliset co-re-täydelliset U NE TOT RE REC co-re 13