Laskennan teoria

Samankaltaiset tiedostot
Laskennan teoria

Lisää pysähtymisaiheisia ongelmia

Output. Input Automaton

Muita vaativuusluokkia

2. Laskettavuusteoriaa

TKT20005 Laskennan mallit (syksy 2018) Kurssikoe, malliratkaisut

5.3 Ratkeavia ongelmia

Laskennan teoria

Pysähtymisongelman ratkeavuus [Sipser luku 4.2]

ICS-C2000 Tietojenkäsittelyteoria Kevät 2016

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

Rekursiiviset palautukset [HMU 9.3.1]

Laskennan mallit (syksy 2008) 2. kurssikoe , ratkaisuja

Rajoittamattomat kieliopit (Unrestricted Grammars)

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

Laskennan teoria

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

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

Laskennan teoria

2. Laskettavuusteoriaa

Täydentäviä muistiinpanoja laskennan rajoista

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

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

Laskennan mallit

Johdatus matematiikkaan

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

8. Kieliopit ja kielet

Chomskyn hierarkia ja yhteysherkät kieliopit

Esimerkkejä polynomisista ja ei-polynomisista ongelmista

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

Injektio. Funktiota sanotaan injektioksi, mikäli lähtöjoukon eri alkiot kuvautuvat maalijoukon eri alkioille. Esim.

on rekursiivisesti numeroituva, mutta ei rekursiivinen.

1 Kurssin asema opetuksessa

1. Universaaleja laskennan malleja

Kertausta 1. kurssikokeeseen

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

Algoritmit 1. Luento 1 Ti Timo Männikkö

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

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

Rajoittamattomat kieliopit

Algoritmit 2. Luento 13 Ti Timo Männikkö

Aloitus. TIEA241 Automaatit ja kieliopit, kevät 2011 (IV) Antti-Juhani Kaijanaho. 14. maaliskuuta 2011 TIETOTEKNIIKAN LAITOS. Aloitus.

MS-A0402 Diskreetin matematiikan perusteet

Laskennan vaativuus ja NP-täydelliset ongelmat

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

3. Laskennan vaativuusteoriaa

Algoritmin määritelmä [Sipser luku 3.3]

Ratkeavuus ja efektiivinen numeroituvuus

Myös opettajaksi aikova voi suorittaa LuK-tutkinnon, mutta sillä ei saa opettajan kelpoisuutta.

4.3. Matemaattinen induktio

Tietojenkäsittelyteorian alkeet, osa 2

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

Täydentäviä muistiinpanoja Turingin koneiden vaihtoehdoista

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

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

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

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

Säännöllisen kielen tunnistavat Turingin koneet

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

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

Muita universaaleja laskennan malleja

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

Laskennan mallit (syksy 2010) Harjoitus 4, ratkaisuja

811120P Diskreetit rakenteet

Automaattiteoria diskreetin signaalinkäsittelyn perusmallit ja -menetelmät ( diskreettien I/O-kuvausten yleinen teoria)

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

a) Mitkä seuraavista ovat samassa ekvivalenssiluokassa kuin (3, 8), eli kuuluvat joukkoon

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.

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

Laskennan mallit (syksy 2010) 2. kurssikoe, ratkaisuja

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

ICS-C2000 Tietojenkäsittelyteoria

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

Algoritmit 1. Luento 2 Ke Timo Männikkö

Johdatus matematiikkaan

58131 Tietorakenteet ja algoritmit (syksy 2015)

Laskennan perusmallit (LAP)

Miten osoitetaan joukot samoiksi?

Turingin koneen laajennuksia

Joukot. Georg Cantor ( )

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

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

Alityypitys. TIES542 Ohjelmointikielten periaatteet, kevät Antti-Juhani Kaijanaho. Jyväskylän yliopisto Tietotekniikan laitos

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

811120P Diskreetit rakenteet

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

Johdatus matemaattiseen päättelyyn

6. Ratkeamattomat ongelmat

Tietorakenteet (syksy 2013)

1. Universaaleja laskennan malleja

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

Algoritmitutkimus: helppoja, vaikeita ja mahdottomia ongelmia

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

Algoritmit 2. Luento 14 Ke Timo Männikkö

MS-A0401 Diskreetin matematiikan perusteet

JOHDATUS TEKOÄLYYN TEEMU ROOS

815338A Ohjelmointikielten periaatteet Harjoitus 2 vastaukset

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

Transkriptio:

581336-0 Laskennan teoria luennot syyslukukaudella 2004 Jyrki Kivinen tietojenkäsittelytieteen laudatur-kurssi, 3 ov pakollinen tietojenkäsittelytieteen suuntautumisvaihtoehdossa, opettajan suuntautumisvaihtoehdossa ja bioinformatiikan ja laskennallisen biologian suuntautumisvaihtoehdossa esitiedot käytännössä Tietorakenteet, Ohjelmoinnin ja laskennan perusmallit, joitain matematiikan opintoja kurssin voi hyvin aloittaa vaikka Ohj. lask. perusmallit olisi kesken 1

Opetusmuodot luennot 11.10. 1.12. ma 10 12, ke 12 14 harjoitukset 18.10. 10.12. (ks. opetusohjelma) 8 harjoituskertaa, 5 tehtävää per kerta 40 tehtävää kurssikoe to 16.12. kello 16 20 (tarkista aikanaan) harjoitukset pakollisia: ratkaistava väh. 25% tehtävistä luennoijan vast.otot ma, to 12.30 13.00 huone B229a seuraava erilliskoe 21.1.2005 2

Kurssin suorittaminen maksimi 60 pistettä: koe 54 p., harjoitukset 6 p. hyväksymisraja noin 30 p., arvosanan 3/3 raja noin 51 p. harjoituspisteet tehty 0 9 10 13 14 17 18 21 22 25 26 29 30 33 34 40 pisteet hyl. 0 1 2 3 4 5 6 Hyväksymisrajaan suhtaudutaan vakavasti. Jos laskarien kertymisessä on ongelmia, selvitä ajoissa luennoijan kanssa. 3

Oppimateriaali Kurssikirja Hopcroft, Motwani, Ullman: Introduction to Automata Theory, Languages, and Computation (luvut 8 10; kurssikirjahyllyssä) Oheislukemisto Orponen: Laskennan teoria (luvut 4 7 kattavat kurssin asiat; myydään laitoksen monistemyynnissä) Muitakin kirjoja on paljon, esim. Sipser: Introduction to the Theory of Computation Luentomateriaali ilmestyy kurssin kotisivulle ja luentokansioon (C127) mutta ei ole täydellinen esitys kurssin asioista (eräs) suositeltava materiaali itseopiskeluun: kalvokopiot + kurssikirja merkinnällä ( ) varustetut luentojen kohdat eivät välttämättä löydy kurssikirjasta eivätkä kuulu koealueeseen 4

Motto Computational problems are not only things that have to be solved, they are also objects that can be worth studying. Christos Papadimitriou 5

Tavoitteet tutustua universaaleihin laskennan malleihin hallita Turingin koneiden peruskonstruktiot ymmärtää että laskennalliset ongelmat voivat olla ratkeamattomia tai työläitä ymmärtää NP-täydellisyyden merkitys (myös matemaattinen merkitys) tunnistaa tyypilliset ratkeamattomat ja NP-täydelliset ongelmat osata yksinkertaiset ratkeamattomuus- ja NP-täydellisyystodistukset 6

Miksi? (tehokkaan) laskennan perusolemuksen selvittämistä ratkeamattomia ongelmia esiintyy logiikassa ja siihen liittyen tekoälyssä, formaalissa verifioinnissa jne. työläitä ongelmia esiintyy kaikenlaisissa sovelluksissa (pakkaus, verkot,... ) nämä asiat ovat niin keskeisiä että ne pitää tuntea pintaa syvemmältä mistä tarkalleen on kysymys mihin väitteet perustuvat johdatusta teoreettisen tietojenkäsittelytieteen ajatteluun (ja esitystapaan) (Lyhyt vastaus: hauskaa ja hyödyllistä) 7

Sisältö 0. Johdanto: laskennalliset ongelmat, pysähtymisongelman ratkeamattomuus 1. Universaaleja laskennan malleja: Turingin koneet, rajoittamattomat kieliopit, Churchin-Turingin teesi 2. Laskettavuusteoriaa: rekursiiviset ja rekursiivisesti lueteltavat kielet, rekursiiviset funktiot ja palautukset, universaalit Turingin koneet, ratkeamattomuustuloksia 3. Vaativuusteoriaa: aika- ja tilavaativuus, epädeterministiset vaativuusluokat, polynomiset palautukset, NP-täydellisyys 8

0. Johdanto Merkintöjä ja konventioita [HMU luku 1.5]: Γ, Σ: äärellisiä aakkostoja; esim. Γ = { 0, 1 }, Σ = { a, b, c, d }. Σ : aakkoston koko; esim. Σ = 4. pienet kirjaimet a, b, c,...: akkosmerkkejä pienet kirjaimet x, y, z, u, v, w,...: merkkijonoja; esim. x = ab, y = bac. x : merkkijonon pituus; esim. x = 2. xy: merkkijonojen katenaatio; esim. xy = abbac. 9

Σ : aakkoston Σ (äärellisten) merkkijonojen joukko ε: tyhjä merkkijono (merkitään usein myös λ); siis ε = 0 esim. jos Σ = { 0, 1 } niin Σ = { ε, 0, 1, 00, 01, 10, 11, 000, 001,... } millä tahansa äärellisellä Σ joukko Σ on numeroituvasti ääretön; ts. on olemassa bijektio f: N Σ (intuitiivisesti aakkoston Σ merkkijonoja on yhtä paljon kuin luonnollisia lukuja) esim. f(0) = ε, f(1) = 0, f(2) = 1, f(3) = 00 jne.; leksikografinen järjestys kieli on mikä tahansa joukko merkkijonoja; esim. Primes = { x { 0, 1 } x on alkuluvun binääriesitys } siis Primes = { 10, 11, 101, 111, 1011,... } = { 2, 3, 5, 7, 11,... } (merkintä = tarkoittaa että joukot jossain mielessä esittävät samaa asiaa) 10

laskennallinen ongelma on mikä tahansa kuvaus π: Σ Γ millä tahansa Σ, Γ päätösongelma on laskennallinen ongelma jonka arvojoukko on { 0, 1 } ( = { ei, kyllä }); päätösongelma π samastetaan usein kielen { x π(x) = 1 } kanssa intuitiivisesti algoritmi ratkaisee ongelman π, jos millä tahansa syötteellä x Σ se tulostaa funktion arvon π(x) Γ (määritellään pian täsmällisemmin) olkoon P(X) joukon X osajoukkojen joukko; siis esim. P({ a, b }) = {, { a }, { b }, { a, b } } siis yllämainittu samaistus huomioonottaen P(Σ ) on aakkoston Σ päätösongelmien joukko yksinkertainen argumentti osoittaa, että päätösongelmia on enemmän kuin algoritmeja kaikilla (päätös)ongelmilla ei mitenkään voi olla ratkaisualgoritmia 11

Lukumääräargumentti hieman tarkemmin ( ): Java-ohjelmat ovat merkkijonoja, joten mahdollisia Java-ohjelmia on numeroituva määrä (eli korkeintaan yhtä paljon kuin luonnollisia lukuja) Tunnetuista joukko-opin tuloksista seuraa, että jos X on numeroituvasti ääretön niin P(X) on ylinumeroituva (eli ei ole surjektiota N P(X)) Intuitiivisesti, jos joukon X alkioita on yhtä paljon kuin luonnollisia lukuja, niin joukon X osajoukkoja on enemmän kuin luonnollisia lukuja Tämä perustuu oleellisesti samaan Cantorin kuuluisaan diagonalisointiargumenttiin kuin tulos, että reaalilukuja on enemmän kuin luonnollisia lukuja. Erityisesti jos valitaan Σ = ASCII merkit niin nähdään, että aakkoston Σ päätösongelmia on enemmän kuin Java-ohjelmia. Koska määritelmän mukaan mikään ohjelma ei voi ratkaista kuin yhden päätösongelman, niin on olemassa ASCII-aakkoston päätösongelmia joille ei riitä ne ratkaisevaa Java-ohjelmaa 12

Onko em. lukumääräargumentti relevantti: kenties kaikki ratkeamattomat ongelmat ovat keinotekoisia ja mielenkiinnottomia, tai kenties jokainen ongelma voidaan ratkaista jollain ohjelmointikielellä? Osoittautuu kuitenkin, että monet luonnostaan esiintyvät ongelmat ovat ratkeamattomia, ja ratkeamattomuuden käsite on suunnilleen sama kaikilla riittävän voimakkailla laskentaformalismeilla ( ohjelmointikielillä) Johtopäätöksellä on siis vakavasti otettavia seuraamuksia. 13

Pysähtymisongelman ratkeamattomuus ( ) (Epämuodollinen johdatteleva esimerkki; yksityiskohtiin palataan.) Väite: ei ole olemassa C-funktiota halts(p, x) joka saa syötteenä mielivaltaisen C-funktion tekstin p ja tälle sopivan syötteen x, palauttaa 1 jos laskenta p(x) pysähtyy ja palauttaa 0 muuten. Huom. 1: halts ei siis saa millään parametreilla joutua ikuiseen silmukkaan. Huom. 2: syntaksivirheet p:n tekstissä jne. kohtaan muuten. 14

Todistus (hieman C:n syntaksia muokaten): Tehdään vastaoletus että tällainen halts on olemassa. Olkoon c seuraavan ohjelman confuse tekstiesitys: void confuse(char *p); int halts(char *p, char *x){... /* funktion "halts" runko */ } if (halts(p, p)==1) while (1); } Nyt sovelletaan funktion halts spesifikaatiota: ristiriita. confuse(c) pysähtyy halts(c, c)==1 confuse(c) jää silmukkaan; 15

Johtopäätös: hyvinkin perustavanlaatuiset ohjelmointiin liittyvät kysymykset ovat ratkeamattomia. Seuraavaksi tarkastellaan tämäntyyppisiä ilmiöitä ohjelmointikielten sijaan formaaleilla laskennan malleilla, erityisesti Turingin koneilla. Formaalien mallien etuja: semantiikka helppo määritellä formaalisti vältetään ohjelmointikielten hankalat erikoispiirteet vältetään tulosten riippuvuus ohjelmointikielestä saadaan yleinen matemaattinen teoria joka on täysin riippumaton käytettävissä olevista laskentalaitteista 16