Laskennan teoria

Samankaltaiset tiedostot
Laskennan teoria

Lisää pysähtymisaiheisia ongelmia

Muita vaativuusluokkia

Output. Input Automaton

2. Laskettavuusteoriaa

5.3 Ratkeavia ongelmia

Laskennan teoria

TKT20005 Laskennan mallit (syksy 2018) Kurssikoe, malliratkaisut

Rajoittamattomat kieliopit (Unrestricted Grammars)

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

Laskennan teoria

ICS-C2000 Tietojenkäsittelyteoria Kevät 2016

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

Laskennan mallit (syksy 2008) 2. kurssikoe , ratkaisuja

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

Laskennan teoria

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

Pysähtymisongelman ratkeavuus [Sipser luku 4.2]

Rekursiiviset palautukset [HMU 9.3.1]

2. Laskettavuusteoriaa

on rekursiivisesti numeroituva, mutta ei rekursiivinen.

Chomskyn hierarkia ja yhteysherkät kieliopit

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

8. Kieliopit ja kielet

Rajoittamattomat kieliopit

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

1 Kurssin asema opetuksessa

Täydentäviä muistiinpanoja laskennan rajoista

1. Universaaleja laskennan malleja

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

Säännöllisen kielen tunnistavat Turingin koneet

Laskennan mallit

3. Laskennan vaativuusteoriaa

Kertausta 1. kurssikokeeseen

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

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

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

Algoritmin määritelmä [Sipser luku 3.3]

Esimerkkejä polynomisista ja ei-polynomisista ongelmista

Algoritmit 2. Luento 13 Ti Timo Männikkö

Laskennan vaativuus ja NP-täydelliset ongelmat

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

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

Ratkeavuus ja efektiivinen numeroituvuus

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

Tietojenkäsittelyteorian alkeet, osa 2

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

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

Yhteydettömän kieliopin jäsennysongelma

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

ICS-C2000 Tietojenkäsittelyteoria

Algoritmit 1. Luento 1 Ti Timo Männikkö

Täydentäviä muistiinpanoja Turingin koneiden vaihtoehdoista

Johdatus matematiikkaan

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

8. Kieliopit ja kielet 1 / 22

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

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

MS-A0402 Diskreetin matematiikan perusteet

Muita universaaleja laskennan malleja

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.

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

Turingin koneen laajennuksia

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

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

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

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

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

Säännöllisten kielten sulkeumaominaisuudet

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

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

Algoritmit 1. Luento 2 Ke Timo Männikkö

JOHDATUS TEKOÄLYYN TEEMU ROOS

Laskennan mallit (syksy 2010) 2. kurssikoe, ratkaisuja

6. Ratkeamattomat ongelmat

Laskennan mallit (syksy 2010) Harjoitus 4, ratkaisuja

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


ICS-C2000 Tietojenkäsittelyteoria

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

Laskennan perusmallit (LAP)

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

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:


815338A Ohjelmointikielten periaatteet Harjoitus 2 vastaukset

Algoritmitutkimus: helppoja, vaikeita ja mahdottomia ongelmia

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

Miten osoitetaan joukot samoiksi?

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

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

1. Universaaleja laskennan malleja

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

58131 Tietorakenteet ja algoritmit (syksy 2015)

Muodolliset kieliopit

ICS-C2000 Tietojenkäsittelyteoria

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

Algoritmit 2. Luento 14 Ke Timo Männikkö

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

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

Transkriptio:

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

Opetusmuodot luennot 14.10. 3.12. ti 12-14, ke 10-12 luennoijan vast.otot ti 11.30 12.00, ke 12.00 12.30 harjoitukset ks. opetusohjelma kurssikoe pe 12.12. kello 9-13 Auditorio (huom. RIO) harjoitukset pakollisia: ratkaistava väh. 25% tehtävistä 2

Kurssin suorittaminen maksimi 60 pistettä: koe 50 p., harjoitukset 10 p. hyväksymisraja n. 30 p., arvosanan 3/3 raja n. 54 p. harjoituspisteet kun ratkaistu p % laskuharjoitustehtävistä: p < 25: hylätty 25 p 50: 0 pistettä 50 p 90: 10 (p 50)/40 pistettä 90 p 100: 10 pistettä jos laskarien kertymisessä on ongelmia, selvitä ajoissa luennoijan kanssa 3

Oppimateriaali Luentomateriaali ilmestyy kurssin kotisivulle ja luentokansioon (A412) mutta ei ole täydellinen esitys kurssin asioista 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 (kurssikirjahyllyssä) 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,... ) johdatusta teoreettisen tietojenkäsittelytieteen käsitteistöön ja ajatteluun nämä asiat ovat niin keskeisiä että ne pitää tuntea pintaa syvemmältä (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: Γ, Σ: ää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 Σ 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,... } 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 ohjelmat ovat merkkijonoja, joten missä tahansa ohjelmointikielessä on vain numeroituva määrä mahdollisia ohjelmia kieliä (ja päätösongelmia) on ylinumeroituvasti Johtopäätös: on olemassa ratkeamattomia ongelmia, joita ei voi ratkaista (esim.) Java-kielellä 11

Mutta kenties kaikki ratkeamattomat ongelmat ovat keinotekoisia ja mielenkiinnottomia, tai kenties jokainen ongelma voidaan ratkaista jollain kielellä? Osoittautuu kuitenkin, että monet luonnostaan esiintyvät ongelmat ovat ratkeamattomia, ja ratkeamattomuuden käsite on suunnilleen sama kaikilla riittävän voimakkailla laskentaformalismeilla ( ohjelmointikielillä) 12

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. 13

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; 14

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 15