Laskennan mallit (syksy 2010) 2. kurssikoe, ratkaisuja

Samankaltaiset tiedostot
Täydentäviä muistiinpanoja laskennan rajoista

TKT20005 Laskennan mallit (syksy 2018) Kurssikoe, malliratkaisut

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

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

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

Laskennan mallit (syksy 2008) 2. kurssikoe , ratkaisuja

Pysähtymisongelman ratkeavuus [Sipser luku 4.2]

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

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

Rajoittamattomat kieliopit (Unrestricted Grammars)

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

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

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

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

Lisää pysähtymisaiheisia ongelmia

5.3 Ratkeavia ongelmia

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

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

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

Yhteydettömän kieliopin jäsennysongelma

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

Hahmon etsiminen syotteesta (johdatteleva esimerkki)

on rekursiivisesti numeroituva, mutta ei rekursiivinen.

Rekursiiviset palautukset [HMU 9.3.1]

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

Miten osoitetaan joukot samoiksi?

Kertausta 1. kurssikokeeseen

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

Rajoittamattomat kieliopit

Todistusmenetelmiä Miksi pitää todistaa?

Täydentäviä muistiinpanoja Turingin koneiden vaihtoehdoista

Automaatit. Muodolliset kielet

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

Algoritmin määritelmä [Sipser luku 3.3]

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

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

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

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

Säännöllisen kielen tunnistavat Turingin koneet

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

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

Diskreetin Matematiikan Paja Ratkaisuhahmotelmia viikko 1. ( ) Jeremias Berg

ICS-C2000 Tietojenkäsittelyteoria Kevät 2016

1. Universaaleja laskennan malleja

Ensimmäinen induktioperiaate

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

Säännöllisten kielten sulkeumaominaisuudet

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

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

Ensimmäinen induktioperiaate

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

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

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

Matematiikan johdantokurssi, syksy 2016 Harjoitus 11, ratkaisuista

Chomskyn hierarkia ja yhteysherkät kieliopit

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

Laskennan mallit (syksy 2009) Harjoitus 11, ratkaisuja

Laskennan mallit (syksy 2010) Harjoitus 8, ratkaisuja

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

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

Johdatus matemaattiseen päättelyyn

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

Muita vaativuusluokkia

Turingin koneen laajennuksia

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

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

Pinoautomaatit. Pois kontekstittomuudesta

MS-A0402 Diskreetin matematiikan perusteet

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.

Laskennan teoria

6. Approksimointialgoritmit

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

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

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

1 sup- ja inf-esimerkkejä

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

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

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

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

1 sup- ja inf-esimerkkejä

Approbatur 3, demo 1, ratkaisut A sanoo: Vähintään yksi meistä on retku. Tehtävänä on päätellä, mitä tyyppiä A ja B ovat.

Tietojenkäsittelyteorian alkeet, osa 2

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

Jokaisen parittoman kokonaisluvun toinen potenssi on pariton.

-Matematiikka on aksiomaattinen järjestelmä. -uusi tieto voidaan perustella edellisten tietojen avulla, tätä kutsutaan todistamiseksi

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

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

S BAB ABA A aas bba B bbs c

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

Algoritmit 2. Luento 13 Ti Timo Männikkö

Yhteydettömät kieliopit [Sipser luku 2.1]

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

Laskennan mallit (syksy 2010) Harjoitus 4, ratkaisuja

Ominaisvektoreiden lineaarinen riippumattomuus

Matematiikassa väitelauseet ovat usein muotoa: jos P on totta, niin Q on totta.

b) Olkoon G vähintään kaksi solmua sisältävä puu. Sallitaan verkon G olevan

Muunnelmia Turingin koneista sekä muita vaihtoehtoisia malleja

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

Transkriptio:

582206 Laskennan mallit (syksy 2010) 2. kurssikoe, ratkaisuja Tehtävän 1 tarkasti Juha Kärkkäinen, tehtävän 2 Jyrki Kivinen ja tehtävän 3 Esa Junttila. 1. (a) (b) S 0S1 UV U 1U ε V 0V ε Tehtävässä on sallittu sekä tulkinta 0 N että 0 N. Välimuodosta, jossa esimerkiksi m voi olla nolla mutta k ja n eivät, on vähennetty puoli pistettä. Yleisesti pikkuvirheistä on vähennetty neljännespiste tai puoli pistettä ja isommasta virheestä piste. S S T T T T F F F U U U 0 1 (S) Tehtävänannossa mainittu pääteaakkosto ei sisällä merkkejä ja ε ja näitä merkkejä sisältäviä säännöllisiä lausekkeita ei siis pystytä tuottamaan. Niiden mukaan ottamisesta ei kuitenkaan rangaista. ε on tällöin ongelmallinen, koska se voidaan tulkita joko päätesymboliksi tai tyhjäksi merkkijonoksi. Arvostelussa on käytetty aina suotuisinta tulkintaa. Säännöllisiä lausekkeita voi kieltä muuttamatta muokata mm. lisäämällä sulkuja, monistamalla *-operaattoria tai jättämällä -operaattori merkitsemättä. Siis esimerkiksi 0 1 ja ((0)1 ) kuvaavat saman kielen. Tehtävässä ei ole edellytetty, että kielioppi tuottaa kaikki näin saatavat variaatiot. Epäyhtenäisyydestä tässä suhteessa vähennetään kuitenkin puoli pistettä. Monessa vastauksessa oli ongelmana, että ne eivät pysty tuottamaan mielivaltaisen syviä sisäkkäisiä lausekkeita. Tällaisesta vastauksesta on tyypillisesti saanut yhden pisteen. Vähemmän merkittävällä tavalla virheellisestä vastauksesta on tyypillisesti saanut kaksi pistettä. (c) Pinoautomaatti: start ε, ε $ ε, ε S ε, S c ε, ε S ε, ε a ε, T ε ε, S T a, a ε b, b ε c, c ε loop ε, $ ε ε, T T ε, ε b acc

Merkkijonon a vasen johto (muita johtoja ei olekaan): S asc aascc aat cc aabt cc a. Pinon sisällöt ja lukematta oleva syöte hyväksyvässä laskennassa: a $ a S$ a c$ a Sc$ a asc$ a Sc$ cc$ Scc$ ascc$ Scc$ b cc cc$ cc c$ c $ Pisteistä noin puolet tulee automaatista ja toinen puoli johdosta ja simulaatiosta. Pikkuvirheestä vähennetään neljännespiste. Tyypillisiä pikkuvirheitä ovat väärin merkityt siirtymät automaatissa ja puuttuvat välivaiheet johdossa tai simulaatiossa. Jos johdon sijasta on annettu jäsennyspuu, tästä on vähennetty puoli pistettä. Muulla tavalla kuin mainitulla menetelmällä tuotetusta automaatista on vähennetty piste. 2. Huom. tehtävässä oli virhe: kuvattu ongelma on nimeltään solmupeite (vertex cover), ei dominoiva joukko (dominating set). Tällä ei sinänsä ole vaikutusta ratkaisuun. Ratkaisu on tässä esitetty tehtävässä kuvatulle ongelmalle, jolle yleensä käytetään merkintää VC. (a) Kieli DS voidaan tunnistaa epädeterministisessä polynomisessa ajassa seuraavasti: i. Jos syöte ei ole muotoa G, k, missä G = (V, E) on verkko ja k on luonnollinen luku, niin hylkää. ii. Alusta V. iii. Jokaisella v V valitse epädeterministisesti: joko lisää v joukkoon V tai pidä V ennallaan. iv. Jos V k, niin hylkää. v. Toista kaikilla (u, v) E: jos u V ja v V, niin hylkää. vi. Hyväksy. Siis DS NP. 2

(b) Koska DS on NP-täydellinen, sille on olemassa polynomisessa ajassa toimiva (deterministinen) ratkaisualgoritmi, jos ja vain jos P = NP. Tämä koskee myös vastaavaa etsintäongelmaa, jossa on annettu verkko G ja halutaan löytää pienin kelvollinen solmujoukko V. Käytännössä yleensä halutaankin ratkaista nimenomaan tämä etsintäongelma. Mahdollisia lähestymistapoja ovat mm. ei-polynomiset algoritmit (riittävän pienillä verkoilla), approksimointialgoritmit (jotka löytävät solmujoukon, joka todistettavasti ei ole kovin paljon suurempi kuin optimaalinen) ja erilaiset heuristiikat, jotka toimivat nopeasti ja voivat tuottaa kelvollisia ratkaisuja mutta joiden toimivuudesta ei ole takuita. (c) Tällainen on esimerkiksi luennoilla käsitelty Turingin koneen hyväksymisongelma A TM = { M, w M on Turingin kone, joka hyväksyy syötteen w }. Koska kieli on tunnistettava, on olemassa Turingin kone, joka tunnistaa sen, ts. hyväksyy kieleen A TM kuuluvat merkkijonot, ja kieleen kuulumattomilla merkkijonoilla joko hylkää tai menee ikuiseen silmukkaan. Ei-ratkeavuudesta seuraa, että ikuinen silmukka -vaihtoehdosta ei päästä eroon: mikä tahansa kielen A TM tunnistava Turingin kone jää ikuiseen silmukkaan joillain syötteillä. On siis mahdotonta laatia sellaista algoritmia, joka pysähtyisi kaikilla syötteillä ja ratkaisisi, pysähtyykö annettu Turingin kone annetulla syötteellä. Kohdassa (a) oleellista on epädeterministisen laskennan perusajatus. Sen takia ratkaisut, joissa on yritetty kehittää ongelmaan determinististä algoritmia, ovat antaneet nolla pistettä. (Ehdotetut deterministiset algoritmit ovat luonnollisesti kaikki olleet ei-polynomisia tai virheellisen tuloksen tuottavia.) Kohtien (b) ja (c) muotoilu oli sellainen, että niihin ei ole mitään yksikäsitteistä oikeaa vastausta. Pisteitä on annettu melko avomielisesti vastauksista, jotka osoittavat opiskelijan ymmärtäneen peruskäsitteet. Esim. (b)-kohdasta on voinut saada täydet pisteet, jos on selittänyt (hyvin), miten ongelman ratkaiseminen liittyy P = NP? -ongelmaan. 3. (a) Väite: Yhteydettömien kielten luokka ei ole suljettu leikkauksen suhteen. Todistus: Yhteydettömien kielten luokka on suljettu leikkauksen suhteen, jos ja vain jos kaikkien yhteydettömien kielten leikkaukset ovat yhteydettömiä. Merkitään annettua eiyhteydellistä kieltä kieltä L = { 0 n 1 n 0 n 1 n n N } ja muodostetaan vastaesimerkki, jossa yhteydettömien kielten leikkaus on ei-yhteydetön kieli L. Määritellään seuraavat kielet A = {0 i 1 k 0 k 1 i i, k N} B = {0 i 1 j 0 k 1 k i, j, k N}. Kielet A ja B ovat yhteydettömiä, sillä ne voidaan muodostaa seuraavilla yhteydettömillä kieliopeilla (kieliä vastaavat lähtösymbolit ovat S A ja S B ) S A 0S1 T T 1T 0 ε S B 0S B U U 1U V V 0V 1 ε. Nyt A B = L. Yhteydellisten kielten leikkaus ei siis ole aina yhteydellinen, mikä todistaa väitteen. Arvostelijan EJ huomioita a)-kohdasta (3 pistettä): +1 piste: vastauksen rakenne on johdonmukainen, vastaukseen on kirjoitettu tarpeellinen +1 piste: vastaesimerkkiin soveltuvat yhteydettömät kielet keksitty. 3

+0,5 pistettä: valittujen kielten yhteydettömyys osoitettu (esim. antamalla yhteydettömät kieliopit) +0,5 pistettä: valittujen kielten leikkaus muodostettu oikein (annettuna valitut kielet) Vaihtoehtoisesti vastaesimerkin voi muodostaa myös kolmen yhteydellisen kielen leikkauksesta. Harmillisen yleinen virhe (joukko-opin alkeet) oli väittää, että seuraavien kielien A ja B leikkaus olisi L. A = { 0 m 1 m 0 n 1 n m, n N } ja B = { 0 n 1 n 0 m 1 m m, n N } A = { 0 n 1 n n N } ja B = { 0 n 1 n n N } A = { 0 n 1 n 0 i 1 k n, i, k N } ja B = { 0 i 1 k 0 n 1 n n, i, k N } Kahdessa ensimmäisessä tapauksessahan A = B = A B, joten vastaesimerkki ei toimi. Virheet: konkatenaatio ja leikkaus sekoitettu keskenään; joukoissa A ja B käytetyt muuttujat m ja n oletettu vakioarvoiksi tai muuten riippuvaisiksi toisistaan. Kolmannessa tapauksessa leikkauskieli on { 0 i 1 i 0 k 1 k i, k N }, koska joukkojen määrittelyissä käytetyt muuttujat n,i ja k ovat toisistaan riippumattomia. (b) Väite: Yhteydettömien kielten luokka ei ole suljettu komplementoinnin suhteen. Todistus: Tehdään vastaoletus, että yhteydettömien kielten luokka on suljettu komplementoinnin suhteen. Olkoot A ja B mielivaltaisia yhteydettömiä kieliä. De Morganin lain mukaan A B = A B. Tunnetusti yhteydettömien kielten yhdiste on yhteydetön, ja vastaoletuksen mukaan myös yhteydettömän kielen komplementti on yhteydetön, joten A B on yhteydetön. Yhteydettömien kielten luokka on siis suljettu leikkauksen suhteen, mikä on ristiriita a)-kohdan tuloksen kanssa. Siis vastaoletus on väärin ja väite tosi. Arvostelijan EJ huomioita b)-kohdasta (3 pistettä): +1 piste: vastauksen rakenne on johdonmukainen, vastaukseen on kirjoitettu tarpeellinen +1 piste: todettu ja käytetty yhteydettömien kielten sulkeumaominaisuutta yhdisteen suhteen +1 piste: havaittu A B = A B ja todistuksen yksityiskohdat kunnossa Vaihtoehtoinen vastaus: määritellään jokin kieli A, muodostetaan sen komplementti A eksplisiittisesti joukkonotaatiolla ja osoitetaan, että kielistä A ja A yksi on yhteydetön ja toinen ei-yhteydetön. Harmillisen yleinen virhe oli virheellinen komplementtikielen määrittely yleensä komplementtiin sisällytettiin vain osa siihen kuuluvista merkkijonoista. (c) Lause: Kieli D = { M M L(M) } ei ole Turing-tunnistettava. Todistus: Tehdään vastaoletus, että kieli D on Turing-tunnistettava. On siis olemassa jokin Turingin kone, jonka tunnistama kieli on D. Olkoon M D tämä kone ja L(M D ) = D sen tunnistama kieli. Tarkastellaan, hyväksyykö kone M D syötteen, joka on koneen oma merkkijonoesitys M D. M D L(M D ) M D D M D / L(M D ) Ensimmäinen ekvivalenssi seuraa Turingin koneen M D valintakriteeristä ja toinen ekvivalenssi kielen D määritelmästä. Seurauksena on ristiriita sille, kuuluuko M D koneen tunnistamaan kieleen L(M D ) vai ei. Kone M D ei siis tunnistakaan kieltä D, joten vastaoletus on väärin ja väite oikein. 4

Arvostelijan EJ huomioita c)-kohdasta (3 pistettä): Kyseinen kieli D on luennoillakin esitelty laskennallisesti hankala diagonaalikieli. Yleistä diagonaalimenetelmää käytetään tuottamaan vastaesimerkkejä tilanteisiin, joissa erilaisia ongelmia on enemmän kuin ratkaisuja. Esimerkiksi reaalilukujen ylinumeroituvuus voidaan osoittaa olettamalla numeroituvuus ja muodostamalla sitten vastaesimerkki (reaaliluku) diagonaalimenetelmällä. Tässä diagonaalikieli osoittaa, ettei kaikkia kieliä voida tunnistaa Turingin koneilla, millä on merkittäviä seurauksia laskennallisten ongelmien ratkaisulle tietokoneilla. +1 piste: vastauksen rakenne on johdonmukainen, vastaukseen on kirjoitettu tarpeellinen +1 piste: Turingin koneen M D merkkijonoesitystä M D käytetty syötteenä +1 piste: todistuksen viimeistelyn yksityiskohdat ja ristiriidan osoittaminen Arvostelijan EJ yleisiä huomioita tehtävästä 3 Tällä kertaa lyhimmät todistukset perustuivat vastaoletusten kumoamiseen ja vastaesimerkkien keksimiseen. Joskus tämä on ainoa vaihtoehto, mutta tavallisesti suositaan ns. konstruktiivista todistusta, jossa oletukset ja tunnetut tulokset todistavat väitteen suoraan ilman ristiriitoja. Konstruktiiviset todistukset ovat tavallisesti helpompia seurata ja vähemmän virhealttiita. Todistusyritysten heikko kirjallinen taso yllätti. Todistus on vakuuttava perustelu väitteen paikkansapitävyydestä ja tarkoitettu luettavaksi kelle vain, jolla on riittävät ennakkotiedot. Jos todistusta näytetään kanssaopiskelijalle, hänen tulisi uskoa väite ehdoitta, eikä mitään epäselvyyksiä tulisi ilmetä. Jotta tähän päästäisiin, todistus vaatii seurakseen johdattelevaa tekstiä, joka kertoo lukijalle todistuksen kulun. Muuten todistus jää irrallisten matemaattisten merkintöjen sekamelskaksi, jonka sisällön vain kirjoittaja itse voi tulkita (eikä siis kelpaa todistukseksi). Periaate on sama kuin suomen kielen puhumisessa tai kirjoittamisessa: viestin välittäminen lukijalle niin selkeästi kuin mahdollista. Sanojen selvästi ja triviaali käyttöä tulisi välttää, sillä kirjoittaja voi muuten vaikuttaa ylimieliseltä. Romanian kielen kurssista ei pääse läpi ilman kielen huolellista opettelua. Vastaavasti puutteet matematiikan kielitaidossa vaikeuttavat läpipääsyä matemaattisilla kursseilla, joihin Laskennan mallitkin osittain kuuluu. 5