TKT20005 Laskennan mallit (syksy 2018) Kurssikoe, malliratkaisut

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

Pysähtymisongelman ratkeavuus [Sipser luku 4.2]

Laskennan mallit (syksy 2008) 2. kurssikoe , ratkaisuja

Lisää pysähtymisaiheisia ongelmia

Täydentäviä muistiinpanoja laskennan rajoista

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

Rekursiiviset palautukset [HMU 9.3.1]

5.3 Ratkeavia ongelmia

Laskennan mallit (syksy 2010) 2. kurssikoe, ratkaisuja

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

Chomskyn hierarkia ja yhteysherkät kieliopit

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

Kertausta 1. kurssikokeeseen

Algoritmin määritelmä [Sipser luku 3.3]

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

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

ICS-C2000 Tietojenkäsittelyteoria Kevät 2016

Säännöllisten kielten sulkeumaominaisuudet

Säännöllisen kielen tunnistavat Turingin koneet

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

Muita vaativuusluokkia

on rekursiivisesti numeroituva, mutta ei rekursiivinen.

Ratkeavuus ja efektiivinen numeroituvuus

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

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

Laskennan mallit (syksy 2009) Harjoitus 11, ratkaisuja

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

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

Laskennan teoria

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

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

Rajoittamattomat kieliopit

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

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

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

Hahmon etsiminen syotteesta (johdatteleva esimerkki)

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

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

Johdatus matemaattiseen päättelyyn

Täydentäviä muistiinpanoja Turingin koneiden vaihtoehdoista

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

Miten osoitetaan joukot samoiksi?

Laskennan teoria

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

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

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

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

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

2. Laskettavuusteoriaa

Rajoittamattomat kieliopit (Unrestricted Grammars)

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

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

2. Laskettavuusteoriaa

Automaatit. Muodolliset kielet

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

kaikki kielet tunnistettavat A TM HALT TM { a n } { a n b n } { a n b n c n } TOTAL TM EQ TM

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

Algoritmit 2. Luento 13 Ti Timo Männikkö

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

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

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

Tehtäväsarja I Seuraavissa tehtävissä harjoitellaan erilaisia todistustekniikoita. Luentokalvoista 11, sekä voi olla apua.

Lineaarialgebra ja matriisilaskenta I, HY Kurssikoe Ratkaisuehdotus. 1. (35 pistettä)

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, syksy Antti-Juhani Kaijanaho. 20. lokakuuta 2016

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

Output. Input Automaton

1. Universaaleja laskennan malleja

(2n 1) = n 2

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

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

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

Turingin koneen laajennuksia

b) Määritä myös seuraavat joukot ja anna kussakin tapauksessa lyhyt sanallinen perustelu.

Johdatus lukuteoriaan Harjoitus 2 syksy 2008 Eemeli Blåsten. Ratkaisuehdotelma

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

3. Laskennan vaativuusteoriaa

Laskennan mallit (syksy 2010) Harjoitus 4, ratkaisuja

Diskreetin matematiikan perusteet Laskuharjoitus 1 / vko 8

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

Yhteydettömän kieliopin jäsennysongelma

Laskennan mallit (syksy 2010) Harjoitus 8, ratkaisuja

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

(iv) Ratkaisu 1. Sovelletaan Eukleideen algoritmia osoittajaan ja nimittäjään. (i) 7 = , 7 6 = = =

Muodolliset kieliopit

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

Topologia Syksy 2010 Harjoitus 11

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

Esitetään tehtävälle kaksi hieman erilaista ratkaisua. Ratkaisutapa 1. Lähdetään sieventämään epäyhtälön vasenta puolta:

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

1 Lukujen jaollisuudesta

Yhtälönratkaisusta. Johanna Rämö, Helsingin yliopisto. 22. syyskuuta 2014

Analyysi III. Jari Taskinen. 28. syyskuuta Luku 1

Algoritmit 1. Luento 2 Ke Timo Männikkö

Laskennan mallit

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:

Todistusmenetelmiä Miksi pitää todistaa?

Malliratkaisut Demot

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

Transkriptio:

TKT20005 Laskennan mallit (syksy 2018) Kurssikoe, malliratkaisut Pisteytys on ilmoitettu välikoevaihtoehdon mukaan (joko tehtävät 1, 2 ja 3 välikokeen 1 uusintana tai tehtävät 4, 5 ja 6 välikokeen 2 uusintana). Kurssikoevaihtoehdossa (tehtävät 1, 3, 4 ja 6 koko kurssialueen suorituksena) pisteet kerrotaan kertoimella 1,5. Jyrki Kivinen tarkasti tehtävät 5 ja 6, Hannu Kärnä tehtävät 1 ja 3 ja Tapio Saarinen tehtävä 2 ja 4. 1. (4 + 4 pistettä) Aakkoston { a, b, c } kieli A koostuu niistä merkkijonoista, joissa ei esiinny osamerkkijonoa ab. (a) Esitä (kuvana) deterministinen äärellinen automaatti, joka tunnistaa kielen A. b, c a a, b, c c b a 4 pistettä: oikean kielen tunnistava automaatti. 3 pistettä: yksittäinen virhe, useimmiten väärä tilasiirtymä silloin, kun luetaan a:n jälkeen a. 2 pistettä: isompi virhe. 1 piste: oikean suuntaista yritystä. (b) Anna säännöllinen lauseke, joka esittää kieltä A. (b c) (a( c(b c) )) 4 pistettä: oikea säännöllinen lauseke 3 pistettä: pienehkö virhe, kuten merkkijono ei voinut loppua a:han, mutta muuten kaikki oikeat merkkijonot oli mahdollista muodostaa, eikä lauseke missään tilanteessa hyväksynyt merkkijonoa, joka sisältää osamerkkijonon ab 2 pistettä: runsaasti oikean suuntaista yritystä. Joko osajono ab syntyi jotenkin, tai tämä oli estetty rajoittamalla oleellisesti tehtävänannon mukaista kieltä 1 piste: oikean suuntaista yritystä.

2. (8 pistettä) Muunna säännöllinen lauseke (01 0 0) epädeterministiseksi äärelliseksi automaatiksi soveltaen kurssilla esitettyä menetelmää. 0 0 1 0 8 pistettä: täysin oikein 7 pistettä: 1 virhe (puuttuva tila), muuten oikein 6 pistettä: 2 3 virhettä, oikea rakenne 4 pistettä: oikean suuntainen rakenne 2 pistettä: oikean suuntaista yritystä 2

3. (4 + 4 pistettä) Merkitään N + = { 1, 2, 3,... }. (a) Olkoon B = { 0 a 1 b 0 c 1 d a, b, c, d N +, a = c tai b = d }. Osoita, että kieli B ei ole säännöllinen. Tehdään vastaoletus, että kieli B on säännöllinen. Siis sillä on jokin pumppauspituus p N. Tarkastellaan merkkijonoa s = 0 p+1 10 p+1 11. Nyt s p ja s B. Siis pumppauspituuden perusteella s voidaan kirjoittaa muodossa s = xyz, missä i. xy i z B kaikilla i N ii. y > 0 ja iii. xy p. Ehtojen (ii) ja (iii) perusteella x = 0 a, y = 0 b ja z = 0 p+1 a b 10 p+1 11, missä a + b p ja b > 0. Siis xyyz = 0 b+p+1 10 p+1 11, joten xyyz B vastoin ehtoa (i); ristiriita. 4 pistettä: korrekti todistus 3 pistettä: pieni virhe, kuten oli valittu pumpattava merkkijono niin, että ehto a = c saatiin rikki, mutta b = d jäi voimaan, ja silti väitettiin, että tällainen merkkijono ei kuulu kieleen B 2 pistettä: isompi virhe pumppauslemman soveltamisessa 1 pistettä: oikean suuntaista yritystä. (b) Olkoon C = { 0 a 1 b 0 c 1 d a, b, c, d N +, a c ja b d }. Osoita, että kieli C ei ole säännöllinen. Olkoon D = { 0 a 1 b 0 c 1 d a, b, c, d N + }. Kieli D on säännöllinen, koska sillä on säännöllinen lauseke 0 + 1 + 0 + 1 +. Lisäksi D = B C. Koska B C =, voidaan kirjoittaa B = D C. Tehdään nyt vastaoletus, että C on säännöllinen. Koska säännöllisten kielten luokka on suljettu komplementin ja leikkauksen suhteen, myös kieli D C on säännöllinen. Mutta D C = B, ja kieli B todettiin edellä ei-säännölliseksi; ristiriita.. 4 pistettä: korrekti todistus, yleensä säännöllisten kielten sulkeumaominaisuuksien avulla (yksi opiskelija oli esittänyt oikean todistuksen käyttäen pumppauslemmaa) 3 pistettä: pieni virhe 2 pistettä: runsaasti oikean suuntaista yritystä 1 pistettä: oikean suuntaista yritystä. Useimmiten oli väitetty, että kieli C on B:n komplementti ja perusteltu asia säännöllisten kielten sulkeumaominaisuuksien avulla. Väite ei kuitenkaan pidä paikkaansa, ja oikea todistus on oleellisesti vaativampi. 3

4. (2 + 2 + 2 pistettä) Esitä yhteydetön kielioppi kullekin seuraavista aakkoston { a, b } kielistä: (a) { a i b j a k i, j, k N, j = i + k } S XY X axb Y by a (b) merkkijonot, joilla on osamerkkijonona sekä ab että ba Vaihtoehtoinen ratkaisu: S XabXbaX XbaXabX XbabX XabaX X ax bx S axbxax bxaxbx X ax bx (c) merkkijonot, joiden pituus on pariton ja joissa on tasan kaksi b-merkkiä. S XbY by Y bxby Y by bx XbXbX X aax a Y aay Vaihtoehtoinen ratkaisu: kohdissa (a) (c) kaikissa 2 pistettä: oikein 1 pistettä: oikean suuntaista yritystä. S abb BaB BBa B aab aba Baa b Tyypillinen yhden pisteen virhe oli esim. (b)-kohdassa, että aba ja bab jäivät puuttumaan, ja (c)-kohdassa, että että tuotettavissa merkkijonoissa on 2 b:tä ja pituutta on jotenkin yritetty rajoittaa. 4

5. (4 + 4 pistettä) Toteutuvuusongelma SAT on tunnettu NP-täydellinen ongelma. (a) Oletetaan, että joku löytää polynomisessa ajassa toimivan ratkaisualgoritmin toteutuvuusongelmalle. Mitä tästä seuraa P vs. NP -ongelmalle? Jos SAT-ongelmalle on olemassa polynomisessa ajassa toimiva ratkaisualgoritmi, niin P = NP. Tämän todistamiseksi oletetaan, että jokin polynomisessa ajassa toimiva algoritmi M ratkaisee ongelman SAT. Osoitetaan, että NP P. Koska selvästi P NP, väite seuraa tästä. Olkoon A NP. Koska SAT on tunnetusti NP-täydellinen, on olemassa polynominen palautus f kielestä A kieleen SAT. Siis x A, jos ja vain jos f(x) SAT, ja funktio f on laskettavissa polynomisessa ajassa. Kieli A voidaan nyt tunnistaa polynomisessa ajassa algoritmilla, joka syötteellä x toimii seuraavasti: i. Laske y = f(x). ii. Ratkaise algoritmilla M, päteekö y SAT. Jos pätee, niin hyväksy; muuten hylkää. Siis A P. (b) Entä jos joku todistaa, että toteutuvuusongelmaa ei ole mahdollista ratkaista polynomisessa ajassa? Mitä tästä seuraa P vs. NP -ongelmalle? Jos toteutuvuusongelmalla ei ole polynomisessa ajassa toimivaa ratkaisualgoritmia, niin SAT P. Toisaalta tunnetusti SAT on NP-täydellinen, mistä määritelmän mukaan seuraa SAT NP. Siis SAT NP P, mistä seuraa P NP. Kumpikin kohta pisteytetty erikseen seuraavasti: 4 pistettä: Oikea ratkaisu, jossa tehtävänannon mukaisesti on lähdetty liikkeelle perusmääritelmistä. Kohdassa (a) on vähennetty 0,5 pistettä, jos ratkaisussa on esitetty ajatus palautuksesta mutta yksityiskohdat ovat puutteelliset. 3 pistettä: Sinänsä oikea ja täsmällisesti esitetty todistus, jossa kuitenkin on tehtävänannon vastaisesti käytetty apuna kurssilla todistettuja lauseita. 2 pistettä: Järkevä ja perusajatukseltaan oikea perustelu, jossa kuitenkaan ei ole tuotu selkeästi esiin, mitä tunnettuja tuloksia tms. käytetään. 1 pistettä: Oikea vastaus esitettyyn kysymykseen ja jonkinlainen ajatus perusteluista. 5

6. (4 + 6 pistettä) (a) Mitä tarkoitetaan Churchin-Turingin teesillä? Mitä perusteluja sen puolesta voidaan esittää? Churchin-Turingin teesi on väittämä, että ongelmalla on ratkaisualgoritmi, jos ja vain jos jokin Turingin kone ratkaisee sen. Toisin sanoen Turingin kone on oikea matemaattinen malli sille, mitä tarkoitamme algoritmilla. Turingin koneessa yhden laskenta-askelen aikana voi käsitellä vain äärellisen määrän informaatiota. Toisaalta laskennan välitulosten ym. tallentamiseen on rajoittamattomasti muistitilaa. Tämä vastaa sitä, millainen intuitio meillä on algoritmin toiminnasta. Ehdotetut vaihtoehtoiset tavat formuloida algoritmin käsite täsmällisesti, kuten λ-kalkyyli ja rekursiiviset funktiot, tuottavat matemaattisesti yhtäpitävän tuloksen. Myös kaikissa tarkastelluissa esimerkkitapauksissa teesi näyttää pätevän: kaikki millekään ongelmalle esitetyt ratkaisualgoritmit on ainakin periaatteessa mahdollista esittää Turingin koneella. Pelkästä Churchin-Turingin teesin esittämisestä ilman perusteluja on saanut 2 pistettä, jos se sinänsä on esitetty oikein ja täsmällisesti. Perusteluksi ei ole laskettu selityksiä pysähtymisongelman ratkeamattomuudesta tms. seikoista, jotka ovat vain Turingin koneeseen liittyviä matemaattisia tuloksia. Yksi piste on vähennetty, jos teesin muodostavasta jos ja vain jos -väitteestä on esitetty vain toinen suunta. Yksi piste on vähennetty, jos on vain todettu Turingin koneen vastaavan nykyaikaista tietokonetta; teesissä puhutaan yleisemmin esim. sellaisistakin laskentalaitteista, joita ei vielä ole keksitty. 6

(b) Tehtävänä on ratkaista, tulostaako annettu Java-ohjelma annetulla syötteellä näytölle mitään. Jos ohjelmasta ja sen syötteestä ei tehdä mitään lisäoletuksia, niin mitä voidaan sanoa ratkaisualgoritmeista tähän ongelmaan? Perustele täsmällisesti käyttäen kurssilla esitettyjä tuloksia. Tällaista algoritmia ei ole mahdollista laatia. Tämän näkemiseksi tehdään vastaoletus, että jokin algoritmi A ratkaisee ongelman. Nyt Java-ohjelmien pysähtymisongelma voitaisiin ratkaista seuraavalla algoritmilla: i. Lue syötteenä Java-ohjelma P ja sille tarkoitettu syöte x. ii. Poista ohjelmasta kaikki näytölle tapahtuva tulostaminen. Käytetään näin saadusta ohjelmasta merkintää P. (Jos tulostuslauseissa on esim. sivuvaikutuksellisia funktiokutsuja, ne voidaan korvata tulostuksella johonkin ylimääräiseen tiedostoon.) iii. Lisää ohjelmaan P jokin näytölle kohdistuva tulostuslause juuri ennen jokaista kohtaa, joissa ohjelman P suoritus päättyisi. Käytetään muunnetusta ohjelmasta merkintää P. iv. Tarkista algoritmilla A, tulostaako ohjelma P syötteellä x koskaan mitään näytölle. Jos tulostaa, vastaa kyllä, muuten vastaa ei. Muunnokset P P ja P P voidaan suorittaa sellaisilla algoritmisilla tekniikoilla, joilla Java-ohjelmia muutenkin käsitellään esim. kääntämisen yhteydessä. Tämä algoritmi siis on mahdollista toteuttaa ja pysähtyy kaikilla syötteillä, kun algoritmi A oletetaan annetuksi. Ohjelma P toimii kaikilla syötteillä muuten samoin kuin P, paitsi että se ei koskaan tulosta näytölle. Erityisesti P pysähtyy, jos ja vain jos P pysähtyy. Ohjelma P toimii muuten samoin kuin kuin P, paitsi että se tulostaa näytölle juuri ennen pysähtymistään. Siis erityisesti P pysähtyy, jos ja vain jos P pysähtyy, mikä on sama kuin että P pysähtyy. Koska P ei tulosta, niin P tulostaa, jos ja vain jos P pysähtyy eli jos ja vain jos P pysähtyy. Siis algoritmi antaa aina oikean ratkaisun. Siis annettu algoritmi ratkaisee oikein Java-ohjelmien pysähtymisongelman. Tämä on ristiriita, sillä ongelma on ratkeamaton. Siten oletettua algoritmia A ei voi olla olemassa. Vaihtoehtoinen ratkaisu: Tehtävää ei ole mahdollista ratkaista. Tehdään vastaoletus, että jokin algoritmi A ratkaisee ongelman. Nyt Turingin koneen pysähtymisongelma HALT TM voidaan ratkaista seuraavalla algoritmilla: i. Jos syöte ei ole muotoa M, w, missä M on Turingin kone ja w sen mahdollinen syöte, niin hylkää. ii. Käyttäen Turingin koneen M kuvausta ja merkkijonoa w muodosta (mutta älä suorita!) Java-ohjelma P, joka ensin simuloi koneen M laskentaa syötteellä w, ja jos laskenta pysähtyy niin lisäksi tulostaa näytölle Pysähtyi!. Ohjelmaan P ei tule muita tulostuslauseita. iii. Tarkasta algoritmilla A, tulostaako edellä muodostettu P näytölle mitään. Jos tulostaa, niin hyväksy; muuten hylkää. Pysähtymisongelma on kuitenkin ratkeamaton, joten algoritmia A ei voi olla olemassa. Kuusi pistettä on saanut täsmällisestä todistuksesta malliratkaisun tyyliin. Neljä pistettä on saanut todistusyrityksestä, jossa on hyvää yritystä myös teknisen toteutuksen osalta, mutta logiikassa jokin selvä virhe (esim. tehty palautus väärään suuntaan). Kaksi pistettä on saanut hyvästä intuitiivisesta selityksestä sille, miksi ongelman ratkaiseminen näyttäisi vaativan pysähtymisongelman ratkaisemista. Pienestä epätarkkuudesta on vähennetty yksi piste. Hyvin sekavasta esityksestä, epätosista väitteistä jne. on voitu vähentää enemmänkin pisteitä. 7