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

Samankaltaiset tiedostot
on rekursiivisesti numeroituva, mutta ei rekursiivinen.

Rajoittamattomat kieliopit

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

ICS-C2000 Tietojenkäsittelyteoria

Säännöllisen kielen tunnistavat Turingin koneet

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

5.3 Ratkeavia ongelmia

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

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

Lisää pysähtymisaiheisia ongelmia

Chomskyn hierarkia ja yhteysherkät kieliopit

Rekursiiviset palautukset [HMU 9.3.1]

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

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

Rajoittamattomat kieliopit (Unrestricted Grammars)

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

Täydentäviä muistiinpanoja laskennan rajoista

Laskennan rajoja. TIEA241 Automaatit ja kieliopit, kesä Antti-Juhani Kaijanaho. 20. kesäkuuta 2013 TIETOTEKNIIKAN LAITOS.

Sisältö. ICS-C2000 Tietojenkäsittelyteoria. Kertausta edellisistä kerroista...

ICS-C2000 Tietojenkäsittelyteoria

Laskennan rajoja. TIEA241 Automaatit ja kieliopit, kevät Antti-Juhani Kaijanaho. 6. maaliskuuta 2012 TIETOTEKNIIKAN LAITOS.

ICS-C2000 Tietojenkäsittelyteoria Kevät 2016

Muita universaaleja laskennan malleja

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

2. Laskettavuusteoriaa

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

Täydentäviä muistiinpanoja Turingin koneiden vaihtoehdoista

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

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

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

2. Laskettavuusteoriaa

1. Universaaleja laskennan malleja

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

ICS-C2000 Tietojenkäsittelyteoria

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

Yhteydettömän kieliopin jäsennysongelma

Olkoon G = (V,Σ,P,S) yhteydetön kielioppi. Välike A V Σ on tyhjentyvä, jos A. NULL := {A V Σ A ε on G:n produktio};

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

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

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

Turingin koneen laajennuksia

Pysähtymisongelman ratkeavuus [Sipser luku 4.2]

Laskennan mallit (syksy 2010) Harjoitus 8, ratkaisuja

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

Pinoautomaatit. Pois kontekstittomuudesta

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

Laskennan mallit (syksy 2009) Harjoitus 11, ratkaisuja

Algoritmin määritelmä [Sipser luku 3.3]

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

S BAB ABA A aas bba B bbs c

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

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

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

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

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

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

Laskennan teoria

Laskennan mallit (syksy 2010) Harjoitus 4, ratkaisuja

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

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

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

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

Muunnelmia Turingin koneista sekä muita vaihtoehtoisia malleja

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

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

6.1 Rekursiiviset palautukset

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

Automaatit. Muodolliset kielet

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

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

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

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

Yhteydettömät kieliopit [Sipser luku 2.1]

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

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

1. Universaaleja laskennan malleja

Säännöllisten kielten sulkeumaominaisuudet

Kertausta 1. kurssikokeeseen

Output. Input Automaton

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

jäsennyksestä TIEA241 Automaatit ja kieliopit, syksy 2016 Antti-Juhani Kaijanaho 29. syyskuuta 2016 TIETOTEKNIIKAN LAITOS Kontekstittomien kielioppien

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

TKT20005 Laskennan mallit (syksy 2018) Kurssikoe, malliratkaisut

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

Laskennan teoria

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

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:

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

Ratkeavuus ja efektiivinen numeroituvuus


Luonnollisen päättelyn luotettavuus

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

Muita vaativuusluokkia

2. Yhteydettömät kielet

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

ICS-C2000 Tietojenkäsittelyteoria

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 2011 (IV) Antti-Juhani Kaijanaho. 31. maaliskuuta 2011

S uay uvaxy uv 2 Ax 2 y... uv i Ax i y uv i wx i y.

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

Transkriptio:

6.5 Turingin koneiden pysähtymisongelma Lause 6.9 Kieli H = {c w pysähtyy syötteellä w} on rekursiivisesti numeroituva, mutta ei rekursiivinen. Todistus. Todetaan ensin, että kieli H on rekursiivisesti numeroituva. Lauseen 6.6 todistuksessa esitetystä universaalikoneesta U on helppo muokata kone, joka syötteellä c w simuloi koneen laskentaa syötteellä w ja pysähtyy hyväksyvään lopputilaan, jos ja vain jos simuloitu laskenta ylipäätään pysähtyy. Osoitetaan sitten, että kieli H ei ole rekursiivinen. Oletetaan nimittäin, että olisi H = L( H ) jollakin totaalisella Turingin koneella H. Oletetaan lisäksi, että kone H pysähtyessään jättää nauhalle alkuperäisen syötteensä, mahdollisesti tyhjämerkeillä jatkettuna. Olkoon U lauseen 6.6 todistuksessa konstruoitu universaalikone. Kielelle U voitaisiin nyt muodostaa totaalinen tunnistaja yhdistämällä koneet H ja U seuraavasti: c w H U Lauseen 6.7 mukaan tällaista kielen U tunnistajakonetta ei kuitenkaan voi olla olemassa. Saatu ristiriita osoittaa, että H ei voi olla rekursiivinen. Seuraus 6.10 Kieli H = {c w ei pysähdy syötteellä x} ei ole rekursiivisesti numeroituva. 6.7 Ricen lause Ricen lauseen mukaan kaikki Turingin koneiden tunnistamia kieliä, t. niiden laskemia I/O-kuvauksia koskevat epätriviaalit kysymykset ovat ratkeamattomia. Johdantona lauseen todistukseen tarkastellaan ensin yhtä sen erikoistapausta, Turingin koneiden tunnistamien kielten epätyhjyysongelmaa: Hyväksyykö annettu Turingin kone yhtään syötemerkkijonoa? Ongelman esitys formaalina kielenä on NE = {c {0, 1} L( c ) }. Lause 6.11 Kieli NE on rekursiivisesti numeroituva, mutta ei rekursiivinen.

Todistus. Todetaan ensin, että kieli NE on rekursiivisesti numeroituva muodostamalla sille tunnistajakone NE. Kone NE on helpointa suunnitella epädeterministisenä. Olkoon OK Turingin kone, joka testaa onko annettu syöte kelvollinen Turingin koneen koodi, ja olkoon G epädeterministinen Turingin kone, joka kirjoittaa nauhalla jo olevan merkkijonon perään mielivaltaisen binäärijonon w. Kone NE voidaan muodostaa yhdistämällä koneet OK, G ja universaalikone U seuraavasti: c G cw U c Selvästi on: G c L( NE ) c on kelvollinen Tk-koodi ja w s.e. cw U c on kelvollinen Tk-koodi ja w s.e. w L( c ) L( c ). cw U Osoitetaan, ettei kieli NE ole rekursiivinen. Oletetaan, että kielellä NE olisi totaalinen tunnistajakone NE T, ja muodostetaan sitä käyttäen totaalinen tunnistajakone U T kielelle U. (Ristiriita.) Konstruktio perustuu syötteiden koodaamiseen Turingin koneiden ohjelmavakioiksi. Olkoon mielivaltainen Turingin kone, jonka toimintaa syötteellä w = a 1 a 2... a k halutaan tutkia. erkitään w :llä konetta, joka aina korvaa todellisen syötteensä merkkijonolla w ja toimii sitten kuten : Olkoon sitten ENCODE Turingin kone, joka saa syötteenään mielivaltaisen Turingin koneen koodista c ja binäärijonosta w muodostuvan jonon c w ja jättää tuloksenaan nauhalle edellä kuvatun koneen w koodin c w : cw c w a/a,l a/a 1,R a/a 2,R a/a k,r a/,l /,R Koneen w toiminta ei siis riipu lainkaan sen todellisesta syötteestä, vaan se joko hyväksyy tai hylkää kaikki merkkijonot, sen mukaan miten suhtautuu w:hen: { L( w {0, 1} ) =, jos w L();, jos w / L(). (Jos syöte ei ole muotoa cw, missä c on kelvollinen Turingin koneen koodi, kone ENCODE päätyy hylkäävään lopputilaan.) Kone ENCODE operoi siis Turingin koneiden koodeilla. Annetun koneen koodiin se lisää siirtymäviisikoita ( konekäskyjä ) ja muuttaa tilojen numerointia siten, että koodi tulee koneen sijaan esittämään konetta w.

Universaalikielelle U voitaisiin nyt koneet ENCODE ja hypoteettinen NE T seuraavalla tavalla yhdistämällä muodostaa totaalinen tunnistajakone U T : cw Kone U T on totaalinen, jos T NE on, ja L(T U ) = U, koska: c w L( T U ) c w c w T L(T NE ) = NE L(w ) w L(). utta kieli U ei ole rekursiivinen, joten tällainen totaalinen tunnistajakone U T ei ole mahdollinen. Saadusta ristiriidasta päätellään, että myöskään kielellä NE ei voi olla totaalista tunnistajaa NE T. Ricen lause Turingin koneiden semanttinen ominaisuus S on mikä tahansa kokoelma rekursiivisesti numeroituvia aakkoston {0, 1} kieliä; koneella on ominaisuus S, jos L() S. Triviaalit ominaisuudet ovat S = (ominaisuus, jota ei ole millään koneella) ja S = RE (ominaisuus, joka on kaikilla koneilla). Ominaisuus S on ratkeava, jos joukko codes(s) = {c L( c ) S} on rekursiivinen. Toisin sanoen: ominaisuus on ratkeava, jos annetusta Turingin koneen koodista voidaan algoritmisesti päätellä, onko koneella kysytty semanttinen ominaisuus. Lause 6.12 [Rice 1953] Kaikki Turingin koneiden epätriviaalit semanttiset ominaisuudet ovat ratkeamattomia. Todistus. Olkoon S mielivaltainen epätriviaali semanttinen ominaisuus. Voidaan olettaa, että / S: toisin sanoen, että tyhjän joukon tunnistavilla Turingin koneilla ei ole tarkasteltavaa ominaisuutta. Jos nimittäin S, voidaan ensin osoittaa, että ominaisuus S = RE S on ratkeamaton, ja päätellä edelleen tästä että myös ominaisuus S on ratkeamaton. (Koska codes( S) = codes(s).) Koska S on epätriviaali, on olemassa jokin Turingin kone A, jolla on ominaisuus S jolla siis L( A ) S. Olkoon nyt ENCODE Turingin kone, joka muodostaa syötteenä annetusta merkkijonosta c w seuraavanlaisen Turingin koneen w x koodin. w Jos syöte ei ole vaadittua muotoa, ENCODE päätyy hylkäävään lopputilaan. Syötteellä x kone w toimii ensin kuten syötteellä w. Jos hyväksyy w:n, w toimii kuten kone A syötteellä x. Jos hylkää w:n, myös w hylkää x:n. Kone w tunnistaa siis kielen A L( w ) = { L(A ), jos w L();, jos w / L(). Koska oletuksen mukaan L( A ) S ja / S, on koneella w ominaisuus S, jos ja vain jos w L().

Oletetaan sitten, että ominaisuus S olisi ratkeava, so. että kielellä codes(s) olisi totaalinen tunnistajakone T S. Tällöin saataisiin edellisen todistuksen tapaan totaalinen tunnistajakone kielelle U yhdistämällä koneet ENCODE ja T S seuraavasti: cw c w Selvästi kone T U on totaalinen, jos T S c w L( T U ) c w T S on, ja L(T S ) = codes(s) L(w ) S w L(). Koska kieli U ei ole rekursiivinen, tämä on mahdotonta, mistä päätellään, ettei ominaisuus S voi olla ratkeava. 6.8 uita ratkeamattomuustuloksia Lause 6.13 (Predikaattikalkyylin ratkeamattomuus; Church/Turing 1936) Ei ole olemassa algoritmia, joka ratkaisisi, onko annettu ensimmäisen kertaluvun predikaattikalkyylin kaava φ validi ( loogisesti tosi, todistuva predikaattikalkyylin aksioomista). Lause 6.14 ( Hilbertin 10. ongelma ; atijasevitsh/davis/robinson/putnam 1953 70) Ei ole olemassa algoritmia, joka ratkaisisi, onko annetulla kokonaislukukertoimisella polynomilla P(x 1,...,x n ) kokonaislukunollakohtia (so. jonoja (m 1,...,m n ) Z n, joilla P(m 1,...,m n ) = 0). Ongelma on ratkematon jo, kun n = 15 tai deg(p) = 4. Eräiden kielioppiongelmien ratkeavuus, kun annettuna on kieliopit G ja G Chomskyn hierarkian tietyltä tasolta i ja merkkijono w. Taulukossa R ratkeava, E ei ratkeava, T aina totta. Taso i: Ongelma: onko 3 2 1 0 w L(G)? R R R E L(G) =? R R E E L(G) = Σ? R E E E L(G) = L(G )? R E E E L(G) L(G )? R E E E L(G) L(G ) =? R E E E L(G) säännollinen? T E E E L(G) L(G ) tyyppiä i? T E T T L(G) tyyppiä i? T E T E 6.9 Rekursiiviset funktiot Turingin koneen = (Q, Σ, Γ, δ, q 0, q acc, q rej ) laskema osittaiskuvaus (t. -funktio) f : Σ Γ määritellään: { u, jos (q0, x) (q, uav) jollakin q {q acc, q rej }, av Γ ; f (x) = määrittelemätön, muuten. Osittaisfunktio f : Σ A on osittaisrekursiivinen jos se voidaan laskea jollakin Turingin koneella ja (kokonais-)rekursiivinen, jos se voidaan laskea jollakin totaalisella Turingin koneella. Ekvivalentisti voitaisiin määritellä, että osittaisrekursiivifunktio f on rekursiivinen, jos sen arvo f(x) on määritelty kaikilla x.

Lause 6.15 (i) Kieli A Σ on rekursiivinen, jos ja vain jos sen karakteristinen funktio { 1, jos x A; χ A : Σ {0, 1}, χ A (x) = 0, jos x / A on rekursiivinen funktio. (ii) Kieli A Σ on rekursiivisesti numeroituva, jos ja vain jos on A = tai on olemassa rekursiivinen funktio g : {0, 1} Σ, jolla A = {g(x) x {0, 1} }. Todistus. HT. 5. RAJOITTAATTOAT KIELIOPIT ääritelmä 5.1 Rajoittamaton kielioppi t. yleinen merkkijonomuunnossysteemi on nelikko missä V on kieliopin aakkosto; G = (V, Σ, P, S), Σ V on kieliopin päätemerkkien joukko; N = V Σ on välikemerkkien t. -symbolien joukko; P V + V on kieliopin sääntöjen t. produktioiden joukko (V + = V {ε}); S N on kieliopin lähtösymboli. Produktiota (ω, ω ) P merkitään tavallisesti ω ω. erkkijono γ V tuottaa t. johtaa suoraan merkkijonon γ V kieliopissa G, merkitään γ G γ jos voidaan kirjoittaa γ = αωβ, γ = αω β (α, β, ω V, ω V + ), ja kieliopissa on produktio ω ω. Jos kielioppi G on yhteydestä selvä, merkitään γ γ. erkkijono γ V tuottaa t. johtaa merkkijonon γ V kieliopissa G, merkitään γ γ G jos on olemassa jono V :n merkkijonoja γ 0, γ 1,...,γ n (n 0), siten että γ = γ 0 γ 1... γ n = γ. G G G Jälleen, jos G on yhteydestä selvä, merkitään γ γ. erkkijono γ V on kieliopin G lausejohdos, jos on S γ. Pelkästään päätemerkeistä koostuva G:n lausejohdos x Σ on G:n lause. Kieliopin G tuottama t. kuvaama kieli L(G) koostuu G:n lauseista, s.o.: L(G) = {x Σ S x}. G G

Esimerkki. Rajoittamaton kielioppi ei-yhteydettömälle kielelle {a k b k c k k 0}. S LT ε T ABCT ABC BA AB CB BC CA AC LA a Esimerkiksi lauseen aabbcc johto: aa aa ab ab bb bb bc bc cc cc. S LT LABCT LABCABC LABACBC LAABCBC LAABBCC aabbcc aabbcc aabbcc aabbcc aabbcc aabbcc. Lause 5.1 Jos formaali kieli L voidaan tuottaa rajoittamattomalla kieliopilla, se voidaan tunnistaa Turingin koneella. Todistus. Olkoon G = (V, Σ, P, S) kielen L tuottava rajoittamaton kielioppi. uodostetaan kielen L tunnistava kaksinauhainen epädeterministinen Turingin kone G seuraavasti: q 1 q 2 q 0 δ Nauhalla 1 kone säilyttää kopiota syötejonosta. Nauhalla 2 on kullakin hetkellä jokin G:n lausejohdos, jota kone pyrkii muuntamaan syötejonon muotoiseksi. Toimintansa aluksi G kirjoittaa kakkosnauhalle kieliopin lähtösymbolin S. Koneen G laskenta koostuu vaiheista. Kussakin vaiheessa kone: (i) vie kakkosnauhan nauhapään epädeterministisesti johonkin kohtaan nauhalla; (ii) valitsee epädeterministisesti jonkin G:n produktion, jota yrittää soveltaa valittuun nauhankohtaan (produktiot on koodattu G :n siirtymäfunktioon; (iii) jos produktion vasen puoli sopii yhteen nauhalla olevien merkkien kanssa, G korvaa ao. merkit produktion oikean puolen merkeillä; (iv) vaiheen lopuksi G vertaa ykkös- ja kakkosnauhan merkkijonoja toisiinsa: jos jonot ovat samat, kone siirtyy hyväksyvään lopputilaan ja pysähtyy, muuten aloittaa uuden vaiheen (kohta (i)). Lause 5.2 Jos formaali kieli L voidaan tunnistaa Turingin koneella, se voidaan tuottaa rajoittamattomalla kieliopilla. Todistus. Olkoon = (Q, Σ, Γ, δ, q 0, q acc, q rej ) kielen L tunnistava standardimallinen Turingin kone. uodostetaan kielen L tuottava rajoittamaton kielioppi G seuraavasti. Idea: Kieliopin G välikkeiksi otetaan (muiden muassa) kaikkia :n tiloja q Q edustavat symbolit. Koneen tilanne (q, uav) esitetään merkkijonona [uqav]. :n siirtymäfunktion perusteella G :ään muodostetaan produktiot, joiden ansiosta [uqav] [u q a v ] joss (q, uav) (q, u a v ). G Siten hyväksyy syötteen x, jos ja vain jos [q 0 x] G [uq acc v] joillakin u, v Σ.

Kaikkiaan kielioppiin G tulee kolme ryhmää produktioita: 1. Produktiot, joilla lähtösymbolista S voidaan tuottaa mikä tahansa merkkijono muotoa x[q 0 x], missä x Σ ja [, q 0 ja ] ovat G :n välikkeitä. 2. Produktiot, joilla merkkijonosta [q 0 x] voidaan tuottaa merkkijono [uq acc v], jos ja vain jos hyväksyy x:n. 3. Produktiot, joilla muotoa [uq acc v] oleva merkkijono muutetaan tyhjäksi merkkijonoksi. Kieleen L() kuuluvan merkkijonon x tuottaminen tapahtuu tällöin seuraavasti: S (1) x[q 0 x] (2) x[uq acc v] (3) x. ääritellään siis G = (V, Σ, P, S), missä V = Γ Q {S, T, [, ], E L, E R } {A a a Σ}, ja produktiot P muodostuvat seuraavista kolmesta ryhmästä: 1. Alkutilanteen tuottaminen: S T[q 0 ] T ε T ata a (a Σ) A a [q 0 [q 0 A a (a Σ) A a b ba a (a, b Σ) A a ] a] (a Σ) 2. :n siirtymien simulointi (a, b Γ, c Γ {[}) : Siirtymät: Produktiot: δ(q, a) = (q, b, R) qa bq δ(q, a) = (q, b, L) cqa q cb δ(q, ) = (q,, R) q[ [q δ(q, ) = (q, b, R) q] bq ] δ(q, ) = (q, b, L) cq] q cb] δ(q, ) = (q,, L) cq] q c] 3. Lopputilanteen siivous: q acc E L E R q acc [ E R ae L E L (a Γ) [E L ε E R a E R (a Γ) E R ] ε

Yhteysherkät kieliopit Rajoittamaton kielioppi on yhteysherkkä, jos sen kaikki produktiot ovat muotoa ω ω, missä ω ω, tai mahdollisesti S ε, missä S on lähtösymboli. Lisäksi vaaditaan, että jos kieliopissa on produktio S ε, niin lähtösymboli S ei esiinny minkään produktion oikealla puolella. Formaali kieli L on yhteysherkkä, jos se voidaan tuottaa jollakin yhteysherkällä kieliopilla. Normaalimuoto: Jokainen yhteysherkkä kieli voidaan tuottaa kieliopilla, jonka produktiot ovat muotoa S ε ja αaβ αωβ, missä A on välike ja ω ε. (Säännön A ω sovellus kontekstissa α _ β.) Lause 5.3 Formaali kieli L on yhteysherkkä, jos ja vain jos se voidaan tunnistaa epädeterministisellä Turingin koneella, joka ei tarvitse enempää työtilaa kuin syötejonon pituuden verran siis koneella, jolla ei ole muotoa δ(q, ) = (q, b, ) olevia siirtymiä, missä b. Lauseen 5.3 koneita sanotaan lineaarisesti rajoitetuiksi automaateiksi. Avoin ongelma ( LBA?= DLBA ): onko epädeterminismi lauseessa 5.3 välttämätöntä? Chomskyn hierarkia Kielioppien, niillä tuotettavien kielten ja vastaavien tunnistusautomaattien ryhmittely: Luokka 0: rajoittamattomat kieliopit / rekursiivisesti numeroituvat kielet / Turingin koneet. Luokka 1: yhteysherkät kieliopit / yhteysherkät kielet / lineaarisesti rajoitetut automaatit. Luokka 2: yhteydettömät kieliopit / yhteydettömät kielet / pinoautomaatit. Luokka 3: oikealle ja vasemmalle lineaariset (säännölliset) kieliopit / säännölliset kielet / äärelliset automaatit. Ū U {a k b k c k k 0} {a k b k k 0} {a k k 0}