TIEA241 Automaatit ja kieliopit, kevät 2012 Antti-Juhani Kaijanaho TIETOTEKNIIKAN LAITOS 8. maaliskuuta 2012
Sisällys Ongelma-analyysiä
Sisällys Ongelma-analyysiä
Hypoteettinen ongelma The Elite Bugbusters Oyj on kansainvälisesti tunnettu debuggausvälineiden toimittaja. Uusi toimitusjohtaja, joka osaa ohjelmoida mutta ei ole opiskellut alaa sen pidemälle, julistaa johtajapalaverissa, että yrityksen pitäisi rakentaa ja lanseerata uusi tuote, joka automaattisesti keskeyttää ohjelman, jos ja vain jos se on jäänyt jumiin 1. Yrityksen teknologiajohtajana vastuu projektista kuuluu luonnollisesti sinulle. Miten reagoit ilmoitukseen ja miksi? 1 Jumiin jääminen tarkoittaa tässä mitä tahansa tilannetta, jossa ohjelma ei enää koskaan tulosta mitään eikä sammu omin voimin.
Sisällys Ongelma-analyysiä
Tyhjyys- ja epätyhjyysongelma Lause Päätösongelma Onko standardimallisen TM:n tunnistama kieli epätyhjä? on puoliratkeava mutta ei ratkeava. Lause Päätösongelma Onko standardimallisen TM:n tunnistama kieli tyhjä? ei ole puoliratkeava.
Kääntäjänkirjoittajien täystyöllisyys Lause Sellaista Turingin konetta ei ole, joka minimoisi sille binäärikoodattuna annetun Turingin koneen. Huomaa Sama pätee myös TM:n optimoinnille. Sama argumentti toimii myös esimerkiksi while-kielelle ja siten yleisesti ohjelmointikielille. Tulosta sanotaankin usein kääntäjänkirjoittajien täystyöllisyyslauseeksi (engl. the full employment theorem for compiler writers)
Sisällys Ongelma-analyysiä
Ominaisuuden triviaalius Määritelmä Joukon S alkioiden ominaisuus P( ) on triviaali, jos pätee x S: P(x) tai x S: P(x).
Lause Kaikki rekursiivisesti lueteltavien kielten epätriviaalit ominaisuudet ovat ratkeamattomia.
Huomioita Rekursiivisesti lueteltavalla kielellä A on ominaisuus P(M), jos ja vain jos kaikilla TM:illä M pätee L(M) = A P(L(M)). Vastaavasti: Turingin koneen M ominaisuus P(M), joka on kaikilla ja vain niillä TM:illä jotka tunnistavat saman kielen kuin M, on rekursiivisesti lueteltavan kielen ominaisuus. Esimerkkejä: Onko annetun TM:n tunnistama kieli tyhjä? Onko annetun TM:n tunnistama kieli äärellinen? Onko annetun TM:n tunnistama kieli säännöllinen? Jotta tta voi soveltaa, ominaisuus täytyy olla jollakin mutta ei kaikilla rekursiivisesti lueteltavilla kielillä. Riittää osoittaa: On olemassa TM, joka tunnistaa kielen, jolla on kyseinen ominaisuus. On olemassa TM, joka tunnistaa kielen, jolla ei ole kyseistä ominaisuutta.
Sovellusesimerkki Lause Päätösongelma Onko standardimallisen TM:n tunnistama kieli epätyhjä? ei ole ratkeava. Todistus Ongelma voidaan esittää myös seuraavassa muodossa: Onko annetulla rekursiivisesti lueteltavalla kielellä A ominaisuus P(A) A =? Ominaisuus P on epätriviaali: P( ) ja P({0}) pätevät, ja molemmat kielet ovat rekursiivisesti lueteltavia. Näin ollen väite seuraa esta.
Todistuksen hahmotelma, osa 1 Kielten ominaisuus on päätösongelma: onko annetulla kielellä tämä ominaisuus? Rekursiivisesti lueteltava kieli voidaan esittää äärellisenä merkkijonona ottamalla jokin sen tunnistava Turingin kone ja laatimalla sen binäärijonokoodaus. väittää siis, että mikään Turingin kone, joka hyväksyy täsmälleen ne merkkijonot, jotka koodaavat ne Turingin koneet, jotka tunnistavat ne kielet, joilla on kyseinen ominaisuus, ei voi pysähtyä joka syötteellä. Voidaan olettaa, että tyhjällä kielellä ei ole kyseistä ominaisuutta. (Jos on, tehdään todistus ominaisuuden komplementille.)
Todistuksen hahmotelma, osa 2 Oletetaan, että ominaisuus P( ) on ratkeava, eli on olemassa aina pysähtyvä Turingin kone M P, jolle kaikilla Turingin koneilla M pätee P(L(M)) w M L(M P ). Koska ominaisuus P( ) on epätriviaali, on olemassa Turingin kone M A, jolle pätee P(L(M A )). Rakennetaan Turingin kone M E, joka muuttaa merkkijonon w M v merkkijonoksi w Mv, missä M v hylkää syötteen jos v L(M) ja muuten käyttäytyy kuten M A ; siis pätee { L(M A ) jos v L(M) L(M v ) = jos v L(M) eli pätee P(L(M v )) v L(M).
Todistuksen hahmotelma, osa 3 Rakennetaan uusi kone M U, joka toimii seuraavasti: ensiksi käyttäydytään kuin M E, ja jos se hyväksyy, käyttäydytään kuten M P syötteenään M E :n tuloste. M U on universaalikone! Koska M P oli oletettu aina pysähtyväksi, myös M U aina pysähtyy. Ristiriita!
Sisällys Ongelma-analyysiä
Kurssin loppuaikataulu Viimeiset luennot 13. ja 15. maaliskuuta Viimeinen luento sisältää kertausta mieti etukäteen, mitä sinulle on jäänyt epäselväksi. Viimeiset demot 14. maaliskuuta Ensimmäinen tenttitilaisuus 16. maaliskuuta, ilmoittautumisaika päättyy ma 12.3. klo 16:00 Muista perua ilmoittautumisesi, jos et ole tulossa paikalle. Ilmoita minulle tai kansliaan, jos perut ilmoittautumisen maanantain jälkeen. Tenttiä ei tarvita, jos teet harjoitustyön. Suosittelen sopimaan mahdollisesta harjoitustyöstä ensi viikon aikana. Harjoitustyön ohjeellinen deadline on 16.4.2012.