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

Samankaltaiset tiedostot
Muita universaaleja laskennan malleja

Laskennan teoria

Laskennan teoria

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

Rajoittamattomat kieliopit

Laskennan teoria

Muunnelmia Turingin koneista sekä muita vaihtoehtoisia malleja

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

Chomskyn hierarkia ja yhteysherkät kieliopit

formalismeja TIEA241 Automaatit ja kieliopit, syksy 2015 Antti-Juhani Kaijanaho 15. joulukuuta 2015 TIETOTEKNIIKAN LAITOS

Täydentäviä muistiinpanoja Turingin koneiden vaihtoehdoista

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

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

1. Universaaleja laskennan malleja

Lisää pysähtymisaiheisia ongelmia

Rajoittamattomat kieliopit (Unrestricted Grammars)

on rekursiivisesti numeroituva, mutta ei rekursiivinen.

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]

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

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

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

Turingin koneen laajennuksia

Säännöllisen kielen tunnistavat Turingin koneet

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

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

1. Primitiivirekursiiviset funktiot muodostetaan kolmesta perusfunktiosta käyttäen. succ(n) = n + 1

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

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

ICS-C2000 Tietojenkäsittelyteoria Kevät 2016

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

1. Universaaleja laskennan malleja

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

Algoritmin määritelmä [Sipser luku 3.3]

2. Laskettavuusteoriaa

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

Pinoautomaatit. Pois kontekstittomuudesta

Muita vaativuusluokkia

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

2. Laskettavuusteoriaa

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

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

TKT20005 Laskennan mallit (syksy 2018) Kurssikoe, malliratkaisut

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

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


Täydentäviä muistiinpanoja laskennan rajoista

5.3 Ratkeavia ongelmia

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

TAMPEREEN YLIOPISTO Pro gradu-tutkielma. Juho Piirto. Laskettavuuden teorian perusteet ja Churchin teesi

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

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

S BAB ABA A aas bba B bbs c

Laskennan teoria

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

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.

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

1 Määrittelyjä ja aputuloksia

Ratkeavuus ja efektiivinen numeroituvuus

Pysähtymisongelman ratkeavuus [Sipser luku 4.2]

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

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

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

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

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

Laskettavuusteoria: produktiivisuus

Attribuuttikieliopit

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

r > y x z x = z y + y x z y + y x = r y x + y x = r

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

Laskennan teoria

3. Laskennan vaativuusteoriaa

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

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

ICS-C2000 Tietojenkäsittelyteoria

Laskettavuus ja Churchin teesi. Mika Haataja

TIEA241 Automaatit ja kieliopit, kevät Antti-Juhani Kaijanaho. 12. kesäkuuta 2013

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

SAT-ongelman rajoitetut muodot

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

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

MS-C1340 Lineaarialgebra ja

Funktiot. funktioita f : A R. Yleensä funktion määrittelyjoukko M f = A on jokin väli, muttei aina.

Kertausta 1. kurssikokeeseen

ICS-C2000 Tietojenkäsittelyteoria

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

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

Entscheidungsproblem

Reaalilukuvälit, leikkaus ja unioni (1/2)

Laskennan mallit (syksy 2009) Harjoitus 11, ratkaisuja

Output. Input Automaton

Injektio (1/3) Funktio f on injektio, joss. f (x 1 ) = f (x 2 ) x 1 = x 2 x 1, x 2 D(f )

Kuvauksista ja relaatioista. Jonna Makkonen Ilari Vallivaara

e int) dt = 1 ( 2π 1 ) (0 ein0 ein2π

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

2 Osittaisderivaattojen sovelluksia

Algoritmit 1. Luento 1 Ti Timo Männikkö

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

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

Transkriptio:

Chomskyn hierarkia Noam Chomskyn vuonna 1956 esittämä luokittelu kieliopeille niiden ilmaisuvoiman mukaan tyyppi kieli kielioppi tunnistaminen 0 rekurs. lueteltava rajoittamaton Turingin kone 1 kontekstinen kontekstinen lin. rajoitettu TM 2 kontekstiton kontekstiton pinoautomaatti 3 säännöllinen oikealle lin. äärellinen autom. tyyppi 0 on juuri esitelty (ja esitellään kohta lisää) tyypit 2 ja 3 kurssilla Ohjelmoinnin ja laskennan perusmallit kuvan täydentämiseksi käydään tässä lyhyesti läpi taso 1 57

Kontekstinen kielioppi: kuten rajoittamaton kielioppi mutta produktioiden muotoa rajoitetaan sallitaan produktiot α β missä β α lisäksi sallitaan produktio S ε olettaen että S ei esiinny minkään produktion oikealla puolella Nimi kontekstinen tulee siitä, että tällaiset kielet voidaan muuntaa muotoon jossa produktiot (pl. mahd. S ε) ovat tyyppiä αaβ αωβ missä A on välike ja ω ε. Siis intuitiivisesti produktiota A ω saadaan käyttää vain kontekstissa α β. 58

Lineaarisesti rajoitettu Turingin kone on epädeterministinen yksinauhainen Turingin kone joka ei koskaan kirjoita mitään muuta niiden tyhjämerkkien päälle jotka nauhalla on alkutilanteessa. Siis kone käyttää ainoastaan syötteen pituuden verran nauhatilaa. Lause Kieli voidaan tuottaa kontekstisella kieliopilla jos ja vain jos se voidaan tunnistaa lineaarisesti rajoitetulla Turingin koneella. (Todistus sivuutetaan.) Tämä on siis esimerkki laskennan mallista, jossa pelkästään syötteen koon perusteella saadaan yläraja sen vaatiman laskennan määrälle. Universaaleilla laskennan malleilla näin ei ole, vaan lyhytkin syöte voi johtaa pitkään laskentaan. 59

Rekursiiviset funktiot (Gödel ja Kleene 1936) Palautetaan mieliin: kieli A on rekursiivisesti lueteltava jos A = L(M) jollain Turingin koneella M A on rekursiivinen jos lisäksi M pysähtyy kaikilla syötteillä merk. π A (x) = 1 jos x A, π A (x) = 0 muuten Seuraavassa määritellään rekursiiviset funktiot f: N N joille osoittautuu pätevän A on rekursiivinen kieli jos ja vain jos π A on rekursiivinen funktio A on rekursiivisesti lueteltava jos ja vain jos jollain rekursiiviselle f pätee A = { f(x) x N } (Tässä on samaistettu kokonaisluvut ja niiden esitykset binääriaakkostossa.) 60

Rekursiivisten funktioiden määritelmän idea on seuraava: tietyt alkeisfunktiot pitäisi ilman muuta osata laskea jos on annettu joitain perusfunktioita jotka osataan laskea, niin niistä tietyillä yksinkertaisilla operaatioilla muodostetut funktiot pitäisi myös osata laskea Rekursiivisia funktioita ovat tasan ne jotka tämän logiikan mukaan pitäisi osata laskea. Tässä on siis tavallaan deklaratiivinen määritelmä laskettavuudella, itse laskentaprosessista ei puhuta mitään. Tietysti intuitio laskentaprosesseista on vahvasti taustalla kun valitaan sopivat alkeisfunktiot ja operaatiot. 61

Määritellään ensin yleisemmin osittaisrekursiiviset funktiot N k N. Alkeisfunktiot nollafunktio Z: N N, Z(x) = 0 kaikilla x seuraajafunktio S: N N, S(x) = x + 1 kaikilla x kaikilla n N ja 1 i n projektiofunktio U n i : Nn N, U n i (x 1,..., x n ) = x i kaikilla x 1,..., x n N Nämä ovat kaikki totaalisia funktioita eli määritelty kaikilla argumenttien arvoilla 62

Määritellään nyt operaatioita uusien funktioiden muodostamiseksi. Sijoitus: kun on annettu f: N n N ja g 1,..., g k jotka ovat funktioita N m N, sijoitus tuottaa funktion h: N m N, h(x) = f(g i (x),..., g k (x)) Rekursio: kun on annettu funktiot f: N k N ja g: N k+2 N, rekursio tuottaa sen funktion h: N k+1 N jolle h(x, 0) = f(x) h(x, y + 1) = g(x, y, h(x, y)) Jos jollain argumentilla x esim. jokin g i (x) ei ole määritelty, niin myöskään sijoittamalla saatu h(x) ei ole määritelty tällä x jne. Jos annetut funktiot ovat totaalisia, myös sijoittamalla ja rekursiolla syntyvät funktiot ovat. 63

Primitiivirekursiivisten funktioiden joukko PR on pienin joukko joka sisältää funktiot Z, S ja U n i kaikilla i, n ja on suljettu sijoittamisen ja rekursion suhteen (ts. jos funktiot f ja g i ovat joukossa PR, myös niistä sijoituksella tai rekursiolla saadut funktiot ovat) Siis PR koostuu tasan niistä funktioista, jotka voidaan muodostaa alkeisfunktioista Z, S ja Ui n sijoitusta ja rekursiota käyttäen. Tästä seuraa että kaikki primitiivirekursiiviset funktiot ovat totaalisia. 64

Esimerkkejä Identiteettifunktio f(x) = x on sama kuin projektio U 1 1. Muodostetaan g yhdistämällä S ja U3 3, siis g(x, y, z) = z + 1. Yhteenlaskufunktio p(x, y) = x + y toteuttaa p(x, 0) = x p(x, y + 1) = p(x, y) + 1 joten se saadaan rekursiolla ylläolevista f ja g. Kertolaskufunktio m(x, y) = xy puolestaan toteuttaa m(x, 0) = 0 m(x, y + 1) = m(x, y) + x joten se saadaan edelleen rekursiolla yhteenlaskufunktion avulla. 65

kaikki tavalliset aritmeettiset perusfunktiot nähdään helposti primitiivirekursiivisiksi yleisemmin primitiivirekursiivisia ovat täsmälleen ne funktiot, jotka voidaan laskea käyttäen vain for-silmukoita joissa iteraatioiden määrä pitää kiinnittää ennen silmukan suorituksen alkua on kuitenkin funktioita joiden laskemiseen tarvitaan yleisempää while-silmukkaa esim. voidaan osoittaa että Ackermannin funktio ψ(0, y) = y + 1 ψ(x + 1, 0) = ψ(x, 1) ψ(x + 1, y + 1) = ψ(x, ψ(x + 1, y)) kasvaa nopeammin kuin mikään primitiivirekursiivinen funktio universaaliin laskennan malliin tarvitaan jokin voimakkaampi mekanismi 66

Minimointi: kun on annettu funktio f: N k+1 N, minimointi tuottaa funktion g: N N jolle 1. jos jollain y kaikki arvot f(x, 0),..., f(x, y) ovat määriteltyjä ja f(x, y) = 0, niin g(x) on pienin tällainen y 2. muuten g(x) ei ole määritelty arvoa y = g(x) voi tietysti etsiä laskemalla järjestyksessä f(x, 0), f(x, 2), f(x, 3),... ja pysähtymällä kun tulee nolla etukäteen ei kuitenkaan ole mitään arviota, kuinka pitkälle joudutaan laskemaan 67

Osittaisrekursiivisten funktioiden joukko PR on pienin joukko joka sisältää funktiot Z, S ja U n i kaikilla i, n ja on suljettu sijoittamisen, rekursion ja minimoinnin suhteen Rekursiivisia ovat ne osittaisrekursiiviset funktiot jotka ovat totaaleja. Esim. Ackermannin funktio ja kaikki primitiivirekursiiviset funktiot ovat rekursiivisia. Kuten alussa todettiin, voidaan osoittaa että A on rekursiivinen kieli jos ja vain jos π A on rekursiivinen funktio A on rekursiivisesti lueteltava jos ja vain jos jollain rekursiiviselle f pätee A = { f(x) x N } lisäksi A on rekursiivisesti lueteltava jos ja vain jos π A on osittaisrekursiivinen 68

Random Access Machine (RAM) abstraktin tietokoneen konekieliohjelma koneessa rajoittamaton määrä rekistereitä jotka voivat sisältää mielivaltaisen suuren kokonaisluvun merkitään rekisterin j sisältöä r j, j = 0, 1, 2,... rekisteri 0 akku; lisäksi käskyosoitin κ syötteenä luvut i 1, i 2, i 3,... tuloste on rekisterin 0 sisältö laskennan pysähtymishetkellä 69

RAMin käskykanta käsky merkitys READ j r 0 := i j READ *j r 0 := i rj STORE j r j := r 0 STORE *j r rj := r 0 LOAD x r 0 := val(x) ADD x r 0 := r 0 + val(x) SUB x r 0 := r 0 val(x) käsky merkitys HALF r 0 := r 0 /2 JUMP j κ := j JPOS j jos r 0 > 0 niin κ := j JZERO j jos r 0 = 0 niin κ := j JNEG j jos r 0 < 0 niin κ := j HALT laskenta pysähtyy r j on rekisterin numero j sisältämä kokonaisluku x voi olla jokin vaihtoehdoista %j, j tai j missä j N. val(%j) = j, val(j) = r j ja val( j) = r rj 70

Samastetaan taas luonnolliset luvut binääriesitystensä kanssa ja tarkastellaan karakteristisia funktioita π A missä π A (x) = 1 jos x A ja π A (x) = 0 muuten. Lause: Kieli A on rekursiivinen jos ja vain jos funktio π A voidaan laskea RAMilla. Todistushahmotelma: Vain jos -suunta on helppo: pitää osata simuloita Turingin konetta RAMilla, mikä on suoraviivainen ohjelmointiharjoitus. Jos -suuntaa varten kontruoidaan annetulle RAMille sitä simuloiva 7-nauhainen Turingin kone. Seuraavassa esitetään vain nauhojen sisältö, yksityiskohdat sivuutetaan. 71

Nauha 1: syöteluvut sopivasti koodattuna Nauha 2: rekisterien sisältö koodattuna jonoiksi b(j) : b(r j ) missä b( ) tarkoittaa binääriesitystä; näiden jonojen välillä voi olla mielivaltainen määrä tyhjämerkkejä Nauha 3: käskyosoitin κ Nauha 4: se indeksi j jota vastaavaa r j ollaan etsimässä nauhalta 2 Nauhat 5 7: työnauhoja aritmetiikkaan jne. 72

Churchin-Turingin teesi intutiivista laskettavuuden käsitettä yritetty mallintaa useista eri lähtökohdista automaatit (Turing) kieliopit funktioluokkien sulkeumaominaisuudet (Gödel, Kleene) elektronisen tietokoneen idealisointi (RAM) lukuisia muita joita ei tässä ole mainittu. kaikki johtivat kuitenkin samaan laskettavuuden käsitteeseen. Teesi: Turing koneet (eli RAM, eli rekursiiviset funktiot,... ) on oikea matemaattinen malli sille, mitä on mahdollista laskea mekaanisesti ei matemaattinen väittämä periaatteessa falsifioitavissa esittelemällä laskulaite joka laskee ei-rekursiivisia funktioita 73