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

Samankaltaiset tiedostot
ICS-C2000 Tietojenkäsittelyteoria

Turingin koneen laajennuksia

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

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

1. Universaaleja laskennan malleja

Rajoittamattomat kieliopit

Lisää pysähtymisaiheisia ongelmia

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

1. Universaaleja laskennan malleja

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

on rekursiivisesti numeroituva, mutta ei rekursiivinen.

Muunnelmia Turingin koneista sekä muita vaihtoehtoisia malleja

ICS-C2000 Tietojenkäsittelyteoria Kevät 2016

Täydentäviä muistiinpanoja Turingin koneiden vaihtoehdoista

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

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

Rekursiiviset palautukset [HMU 9.3.1]

Laskennan mallit (syksy 2009) Harjoitus 11, ratkaisuja

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

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

Laskennan mallit (syksy 2010) Harjoitus 4, ratkaisuja

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

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

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. TIEA241 Automaatit ja kieliopit, syksy Antti-Juhani Kaijanaho. 7. joulukuuta 2015 TIETOTEKNIIKAN LAITOS.

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

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

5.3 Ratkeavia ongelmia

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

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

Automaatit. Muodolliset kielet

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

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

Täydentäviä muistiinpanoja laskennan rajoista

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

Säännöllisen kielen tunnistavat Turingin koneet

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

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

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:

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

Rajoittamattomat kieliopit (Unrestricted Grammars)

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

Hahmon etsiminen syotteesta (johdatteleva esimerkki)

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.

Algoritmin määritelmä [Sipser luku 3.3]

Pinoautomaatit. Pois kontekstittomuudesta

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

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

Yhteydettömän kieliopin jäsennysongelma

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

2. Laskettavuusteoriaa

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

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

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

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

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

6.1 Rekursiiviset palautukset

Kertausta 1. kurssikokeeseen

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

Laskennanteoria: Mitä voimmelaskea tietokoneella ja kuinkatehokkaasti?

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

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

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

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

S BAB ABA A aas bba B bbs c

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

ICS-C2000 Tietojenkäsittelyteoria

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

Chomskyn hierarkia ja yhteysherkät kieliopit

2. Laskettavuusteoriaa

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

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

Säännöllisten kielten sulkeumaominaisuudet

Muita universaaleja laskennan malleja

Kaikki kurssin laskuharjoitukset pidetään Exactumin salissa C123. Malliratkaisut tulevat nettiin kurssisivulle.

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

ICS-C2000 Tietojenkäsittelyteoria

4. Laskennan universaaleja malleja

Laskennan teoria

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

Turingin kone on kuin äärellinen automaatti, jolla on käytössään

Formalisoimme nyt edellä kuvatun laskennan.

3. Laskennan vaativuusteoriaa

Esimerkki 1: Kahviautomaatti.

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

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

Algoritmit 2. Luento 13 Ti Timo Männikkö

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

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

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

Output. Input Automaton

9. Matemaattisista koneista.

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

Esimerkkejä polynomisista ja ei-polynomisista ongelmista

Laskennan mallit (syksy 2007) Harjoitus 5, ratkaisuja

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

Bayesin pelit. Kalle Siukola. MS-E2142 Optimointiopin seminaari: Peliteoria ja tekoäly

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

Transkriptio:

42 Turingin koneiden laajennuksia 1 oniuraiset koneet Sallitaan, että Turingin koneen nauha koostuu k:sta rinnakkaisesta urasta, jotka kaikki kone lukee ja kirjoittaa yhdessä laskenta-askelessa: Koneen siirtymäfunktion arvot ovat tällöin muotoa: (q, (a 1,,a k )) = (q, (b 1,,b k ), ), missä a 1,,a k ovat urilta 1,,k luetut merkit, b 1,,b k niiden tilalle kirjoitettavat merkit, ja {L, R} on nauhapään siirtosuunta Laskennan aluksi tutkittava syöte sijoitetaan ykkösuran vasempaan laitaan; muille urille tulee sen kohdalle erityisiä tyhjämerkkejä Formaalisti k-urainen Turingin kone on seitsikko = (Q, Σ, Γ,,, q acc, q rej ), missä muut komponentit ovat kuten standardimallissa, paitsi siirtymäfunktio: : (Q {q acc, q rej }) (Γ k {, }) Q (Γ k {, }) {L, R} Seuraajatilannerelaation, alkutilan jne määritelmät ovat pieniä muutoksia lukuunottamatta samanlaiset kuin standardimallissa Lause 41 Jos formaali kieli L voidaan tunnistaa k-uraisella Turingin koneella, se voidaan tunnistaa myös standardimallisella Turingin koneella Todistus Olkoon = (Q, Σ, Γ,,, q acc, q rej ) k-urainen Turingin kone, joka tunnistaa kielen L Vastaava standardimallinen kone muodostetaan seuraavasti: = (ˆQ, Σ, ˆΓ, ˆ, ˆ, q acc, q rej ), missä ˆQ = Q {ˆ, ˆq 1, ˆq 2 }, ˆΓ = Σ Γ k ja kaikilla q Q on ] ] ˆ(q, [ a1 a k kun ) = (q, [ b1 b k, ), (q, (a 1,,a k )) = (q, (b 1,,b k ), ) Koneen laskennan aluksi täytyy syötejono nostaa ykkösuralle, so korvata nauhalla merkkijono a 1 a 2 a n merkkijonolla a 1 a 2 Tätä operaatiota varten liitetään :stä kopioidun siirtymäfunktion osan 2 alkuun 3 vielä2pieni 3 esiprosessori : 2 3 a a a a/, R 6 4 7 / 6 5 4 7 6 5 4, L 7 5 ˆ /, L a n ˆq 1 /, R

2 oninauhaiset koneet Tällaisen koneen siirtymäfunktion arvot ovat muotoa (q, a 1,,a k ) = (q, (b 1, 1 ),,(b k, k )), Sallitaan, että Turingin koneella on k toisistaan riippumatonta nauhaa, joilla on kullakin oma nauhapäänsä Kone lukee ja kirjoittaa kaikki nauhat yhdessä laskenta-askelessa Laskennan aluksi syöte sijoitetaan ykkösnauhan vasempaan laitaan ja kaikki nauhapäät nauhojensa alkuun missä a 1,,a k ovat nauhoilta 1,,k luetut merkit, b 1,,b k niiden tilalle kirjoitettavat merkit, ja 1,, k {L, R} nauhapäiden siirtosuunnat Formaalisti k-nauhainen Turingin kone on seitsikko = (Q, Σ, Γ,,, q acc, q rej ), missä muut komponentit ovat kuten standardimallissa, paitsi siirtymäfunktio: : (Q {q acc, q rej }) (Γ {, }) k Q ((Γ {, }) {L, R}) k Seuraajatilannerelaatio ym peruskäsitteet määritellään pienin muutoksin entiseen tapaan Lause 42 Jos formaali kieli L voidaan tunnistaa k-nauhaisella Turingin koneella, se voidaan tunnistaa myös standardimallisella Turingin koneella Todistus (idea) Olkoon = (Q, Σ, Γ,,, q acc, q rej ) k-nauhainen Turingin kone, joka tunnistaa kielen L Konetta voidaan simuloida 2k-uraisella koneella siten, että koneen parittomat urat 1, 3, 5,,2k 1 vastaavat :n nauhoja 1, 2,,k, ja kutakin paritonta uraa seuraavalla parillisella uralla on merkillä merkitty vastaavan nauhan nauhapään sijainti Simuloinnin aluksi syötemerkkijono sijoitetaan normaalisti koneen ykkösuralle Ensimmäisessä siirtymässään merkitsee nauhapääosoittimet parillisten urien ensimmäisiin merkkipaikkoihin Tämän jälkeen toimii pyyhkimällä nauhaa edestakaisin sen alku- ja loppumerkin välillä Vasemmalta oikealle pyyhkäisyllä kerää tiedot kunkin osoittimen kohdalla olevasta :n nauhamerkistä Kun kaikki merkit ovat selvillä, simuloi yhden :n siirtymän, ja takaisin oikealta vasemmalle suuntautuvalla pyyhkäisyllä kirjoittaa -osoittimien kohdalle asianmukaiset uudet merkit ja siirtää osoittimia

3 Epädeterministiset koneet Formaalisti epädeterministinen Turingin kone on seitsikko = (Q, Σ, Γ,,, q acc, q rej ), missä muut komponentit ovat kuten deterministisessä standardimallissa, paitsi siirtymäfunktio: : (Q {q acc, q rej }) (Γ {, }) P(Q (Γ {, }) {L, R}) Siirtymäfunktion arvon (q, a) = {(q 1, b 1, 1 ),,(q k, b k, k )} tulkinta on, että ollessaan tilassa q ja lukiessaan merkin a kone voi toimia jonkin kolmikon (q i, b i, i ) mukaisesti Epädeterministisen koneen tilanteet, tilannejohdot jne määritellään formaalisti samoin kuin deterministisenkin koneen tapauksessa, paitsi että ehdon (q, a) = (q, b, ) sijaan kirjoitetaan (q, b, ) (q, a) Tämän muutoksen takia seuraajatilannerelaatio ei ole enää yksiarvoinen: koneen tilanteella (q, w) voi nyt olla useita vaihtoehtoisia seuraajia, so tilanteita (q, w ), joilla (q, w) (q, w ) Koneen tunnistama kieli määritellään: L() = {x Σ (, x) (q acc, w) jollakin w Γ } Epädeterministisen koneen tapauksessa siis merkkijono x kuuluu :n tunnistamaan kieleen, jos jokin :n kelvollinen tilannejono johtaa alkutilanteesta syötteellä x hyväksyvään lopputilanteeseen Esimerkki Yhdistettyjen lukujen tunnistaminen epädeterministisillä Turingin koneilla Ei-negatiivinen kokonaisluku n on yhdistetty, jos sillä on kokonaislukutekijät p, q 2, joilla pq = n Luku, joka ei ole yhdistetty, on alkuluku Oletetaan, että on jo suunniteltu deterministinen kone CHECK_ULT, joka tunnistaa kielen L(CHECK_ULT) = {npq n, p, q binäärilukuja, n = pq} Olkoon lisäksi GO_START deterministinen Turingin kone, joka siirtää nauhapään osoittamaan nauhan ensimmäistä merkkiä Olkoon edelleen GEN_INT seuraava mielivaltaisen ykköstä suuremman binääriluvun nauhan loppuun tuottava epädeterministinen Turingin kone: 0/0, R 1/1, R /, R /0, R /0, R

Epädeterministinen Turingin kone TEST_COPOSITE, joka tunnistaa kielen L(TEST_COPOSITE) = {n n on binäärimuotoinen yhdistetty luku} Yhdistetty kone hyväksyy syötteenä annetun binääriluvun n, jos ja vain jos on olemassa binääriluvut p, q 2, joilla n = pq siis jos ja vain jos n on yhdistetty luku Huom Yleinen kaaviomerkintä Turingin koneiden yhdistämiselle: voidaan muodostaa näistä komponenteista yhdistämällä: 1 n np npq npq 0 2 Lause 43 Jos formaali kieli L voidaan tunnistaa epädeterministisellä Turingin koneella, se voidaan tunnistaa myös standardimallisella deterministisellä Turingin koneella Todistus (idea) Olkoon = (Q, Σ, Γ,,, q acc, q rej ) epädeterministinen Turingin kone, joka tunnistaa kielen L Konetta voidaan simuloida kolmenauhaisella deterministisellä koneella, joka käy systemaattisesti läpi :n mahdollisia laskentoja (tilannejonoja), kunnes löytää hyväksyvän jos sellainen on olemassa Kone voidaan edelleen muuntaa standardimalliseksi edellisten lauseiden konstruktioilla Yksityiskohtaisemmin: Nauhalla 1 säilyttää kopiota syötejonosta ja nauhalla 2 se simuloi koneen työnauhaa Kunkin simuloitavan laskennan aluksi kopioi syötteen nauhalta 1 nauhalle 2 ja pyyhkii pois nauhalle 2 edellisen laskennan jäljiltä mahdollisesti jääneet merkit Nauhalla 3 pitää kirjaa vuorossa olevan laskennan järjestysnumerosta

Tarkemmin sanoen, olkoon r suurin :n siirtymäfunktion arvojoukon koko Tällöin :lla on erityiset nauhamerkit D 1,,D r, joista koostuvia jonoja se generoi nauhalle 3 kanonisessa järjestyksessä: ε, D 1, D 2,, D r, D 1 D 1, D 1 D 2,, D 1 D r, D 2 D 1, Kutakin generoitua jonoa kohden simuloi yhden :n osittaisen laskennan, jossa epädeterministiset valinnat tehdään kolmosnauhan koodijonon ilmaisemalla tavalla Esimerkiksi jos kolmosnauhalla on jono D 1 D 3 D 2, niin ensimmäisessä siirtymässä valitaan vaihtoehto 1, toisessa vaihtoehto 3, kolmannessa vaihtoehto 2 Ellei tämä laskenta johtanut :n hyväksyvään lopputilaan, generoidaan seuraava koodijono D 1 D 3 D 3 ja aloitetaan alusta Jos koodijono on epäkelpo, so jos siinä jossakin kohden on tilanteeseen liian suuri koodi, simuloitu laskenta keskeytetään ja generoidaan seuraava jono Selvästi tämä systemaattinen koneen laskentojen läpikäynti johtaa koneen hyväksymään syötejonon, jos ja vain jos koneella on syötteen hyväksyvä laskenta Jos hyväksyvää laskentaa ei ole, kone ei pysähdy