3. Laskennan vaativuusteoriaa

Samankaltaiset tiedostot
6.1 Rekursiiviset palautukset

Muita vaativuusluokkia

7. Aikavaativuus. Ohjelmistotekniikan laitos OHJ-2300 Johdatus tietojenkäsittelyteoriaan, syksy

1.4 Funktioiden kertaluokat

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

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:

Esimerkkejä polynomisista ja ei-polynomisista ongelmista

3. Laskennan vaativuusteoriaa

Lause (Cook-Levin) Kieli SAT = { on toteutuva lausekalkyylin kaava } on NP-täydellinen.

Algoritmit 1. Luento 2 Ke Timo Männikkö

Turingin koneen laajennuksia

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

Algoritmit 2. Luento 1 Ti Timo Männikkö

Algoritmit 2. Luento 13 Ti Timo Männikkö

f(n) = Ω(g(n)) jos ja vain jos g(n) = O(f(n))

Lisää pysähtymisaiheisia ongelmia

Pysähtymisongelman ratkeavuus [Sipser luku 4.2]

1. Universaaleja laskennan malleja

Algoritmit 2. Luento 14 To Timo Männikkö

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

Algoritmit 2. Luento 13 Ti Timo Männikkö

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

Laskennanteoria: Mitä voimmelaskea tietokoneella ja kuinkatehokkaasti?

Laskennan mallit (syksy 2009) Harjoitus 11, ratkaisuja

10. Satunnaisalgoritmit

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

Satunnaisalgoritmit. Topi Paavilainen. Laskennan teorian opintopiiri HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos

Tutkimusmenetelmät-kurssi, s-2004

Algoritmit 2. Luento 14 Ke Timo Männikkö

1. Universaaleja laskennan malleja

Säännöllisen kielen tunnistavat Turingin koneet

A TIETORAKENTEET JA ALGORITMIT

Miten osoitetaan joukot samoiksi?

Rekursiiviset palautukset [HMU 9.3.1]

ICS-C2000 Tietojenkäsittelyteoria Kevät 2016

5.3 Ratkeavia ongelmia

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

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

2.2.1 Ratkaiseminen arvausta sovittamalla

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

TKT20005 Laskennan mallit (syksy 2018) Kurssikoe, malliratkaisut

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

Muunnelmia Turingin koneista sekä muita vaihtoehtoisia malleja

Olkoon S(n) kutsun merge-sort(a, p, q) tilavaativuus kun p q + 1 = n. Oletetaan merge toteutetuksi vakiotyötilassa (ei-triviaalia mutta mahdollista).

(p j b (i, j) + p i b (j, i)) (p j b (i, j) + p i (1 b (i, j)) p i. tähän. Palaamme sanakirjaongelmaan vielä tasoitetun analyysin yhteydessä.

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

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.

58131 Tietorakenteet ja algoritmit (syksy 2015)

Diskreetin matematiikan perusteet Laskuharjoitus 2 / vko 9

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

Laskennan teoria

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

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

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

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

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

on rekursiivisesti numeroituva, mutta ei rekursiivinen.

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

Rajoittamattomat kieliopit

Nopea kertolasku, Karatsuban algoritmi

Formalisoidaan hieman täsmällisemmin, millaisia suoritustakuita satunnaisalgoritmeilta voidaan vaatia.

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.

Johdatus matematiikkaan

Esimerkkejä vaativuusluokista

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

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

Rajoittamattomat kieliopit (Unrestricted Grammars)

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

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

Algoritmit 1. Luento 1 Ti Timo Männikkö

Tietorakenteet, laskuharjoitus 2,

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

4 Tehokkuus ja algoritmien suunnittelu

1 Määrittelyjä ja aputuloksia

811312A Tietorakenteet ja algoritmit I Johdanto

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

A ja B pelaavat sarjan pelejä. Sarjan voittaja on se, joka ensin voittaa n peliä.

MS-C1340 Lineaarialgebra ja

Yhteydettömän kieliopin jäsennysongelma

Satunnaisalgoritmit. Antti Tanhuanpää. 25. maaliskuuta 2013

Tietorakenteet, laskuharjoitus 3, ratkaisuja

Kokonaislukuoptimointi

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

Hahmon etsiminen syotteesta (johdatteleva esimerkki)

Laskennan vaativuus ja NP-täydelliset ongelmat

3. Turingin koneet. osaa esittää yksinkertaisia algoritmeja täsmällisesti käyttäen Turingin konetta ja sen muunnelmia

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

Turingin koneet. TIEA241 Automaatit ja kieliopit, syksy Antti-Juhani Kaijanaho. 7. joulukuuta 2015 TIETOTEKNIIKAN LAITOS.

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

Algoritmit 1. Demot Timo Männikkö

Tietojenkäsittelyteorian alkeet, osa 2

Laskennan teoria

4. Algoritmien tehokkuus

58131 Tietorakenteet ja algoritmit (kevät 2016) Ensimmäinen välikoe, malliratkaisut

Ellipsoidimenetelmä. Samuli Leppänen Kokonaislukuoptimointi. S ysteemianalyysin Laboratorio

Algoritmin määritelmä [Sipser luku 3.3]

Automaatit. Muodolliset kielet

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

Transkriptio:

3. Laskennan vaativuusteoriaa tähän asti puhuttu siitä, mitä on mahdollista laskea äärellisessä ajassa siirrytään tarkastelemaan laskemista kohtuullisessa ajassa vaihtoehtoisesti voidaan laskenta-ajan sijaan tarkastella tarvittavan työmuistin määrää yleisesti ottaen teoreettiset tarkastelut muuttuvat teknisesti vaativammiksi tulosten intuitiivisen tulkinnan kanssa syytä olla varovainen (mikä annetussa sovelluksessa on kohtuullista ; kuinka yleinen ongelma oikeasti halutaan ratkaista jne.) 151

Tarkastellaan standardimallisen (yksinauhaisen, deterministisen) Turingin koneen M syötteellä x alkutilanteesta q 0 x alkavaa laskentaa q 0 x M v 1 q 1 w 1 M... M v n q n w n M... laskenta pysähtyy jos jollain k tilanteesta v k q k w k ei ole siirtymää; tällöin laskennan pituus on k mitä merkitään time M (x) = k. jos laskenta ei pysähdy, merkitään time M (x) = vastaavasti määritellään space M (x) = max { v k + w k k = 1, 2, 3,... } time M : Σ N { } ja space M : Σ N { } ovat koneen M aika- ja tilavaativuusfunktio 152

Intuitiivinen vastaavuus tietokoneohjelmiin aikavaativuus: kuinka monta konekielikäskyä ajon aikana suoritetaan tilavaativuus: kuinka monta tavua muistia ajon aikana varataan Liian yksityiskohtaisia mittareita ollakseen hyödyllisiä: vaikea saada selville tarkasti vaikka tunnettaisiin tarkasti, lausekkeet tyypillisesti liian monimutkaisia ollakseen valaisevia saman ongelman ratkaisujen M ja N vertaileminen vaikeaa, koska yleensä aina joillain x, y on time M (x) < time N (x) ja time M (y) > time N (y) Tämän takia tarkastellaan pahimman tapauksen aika- ja tila vaativuutta tarkastellaan vaativuusfunktioita kertaluokan tarkkuudella 153

Pahimman tapauksen aika- ja tilavaativuus Kun n N, määritellään time M (n) = max { time M (x) x = n } space M (n) = max { space M (x) x = n } yleensä kuvaa kohtuullisesti toimintaa realistisilla syötteillä (varmasti paremmin kuin parhaan tapauksen vaativuus) Voidaan tarkastella myös keskimääräistä tapausta, esim. time avg M (n) = p n (x)time M (x) x Σ n missä p n, n N, on jokin todennäköisyysjakauma joukossa Σ n. yleensä vaikea analysoida edes helpoilla p n helpot p n usein epärealistisia usein vaikea edes tietää millainen p n olisi realistinen 154

Funtioden kertaluokat Olkoon f, g: N R + funktioita. f on kertaluokkaa O(g), merk. f = O(g), jos joillain c > 0, m N pätee f(n) cg(n) aina kun n m f on samaa kertaluokkaa kuin b, merk. f = Θ(g), jos joillain a, b > 0, m N pätee ag(n) f(n) bg(n) aina kun n m f on alempaa kertaluokkaa kuin g, merk. f = o(g), jos kaikilla c N on olemassa m N jolle f(n) < cg(n) aina kun n m g on alaraja funktiolle f, merk. f = Ω(g), jos jollain c > 0 pätee f(n) cg(n) äärettömän monella n 155

Motivaatio: miksi vaativuusfunktioiden kertaluokkia rajataan tarkastelusta pois pienillä syötteillä mahdollisesti esiintyvät epäsäännöllisyydet ei välitetä vakiokertoimista (cf(n) samaa suuruusluokkaa kuin f(n) kaikilla c > 0) koska ne kuitenkin täysin riippuvat mallin yksityiskohdista (koneen käskykanta ) Yleensä käytetään epätäsmällisiä ilmauksia, kuten esim. f(n) = O(n 2 ) tai f on kertaluokkaa n 2 merkityksessä f = O(g) missä g(n) = n 2 kaikilla n 156

Kertaluokkien perusominaisuuksia log a (n) = Θ(log b (n)) kaikilla a, b > 1 (joten kertaluokista puhuttaessa merkitään usein vain log n missä kantaluvun valinta on yhdentekevä) n a = o(n b ) jos a < b log n = o(n a ) kaikilla a > 0 n a = o(2 bn ) kaikilla a, b > 0 cf(n) = Θ(f(n)) kaikilla c > 0 f(n) + g(n) = Θ(max { f(n), g(n) }) jos p on asteen k polynomi niin p(n) = Θ(n k ) (Todistus: HT; oleellisesti kurssilla Diff. int. I.1 tms.) 157

Vaativuusluokat Kieli A voidaan tunnistaa ajassa t (tilassa s) jos A = L(M) missä time M (n) t(n) (vast. space M (n) s(n)) kaikilla n. Funktioiden t ja s määräämät (deterministiset) aika- ja tilavaativuusluokat ovat DTIME(t) = { A Σ A voidaan tunnistaa ajassa t } DSPACE(t) = { A Σ A voidaan tunnistaa tilassa s } yksinkertaisuuden vuoksi sallitaan moninauhainen M; (aika- ja tilavaativuus määritellään moninauhaiselle koneelle ilmeisellä tavalla) kuitenkin oleellista että M deterministinen (mistä kirjain D ) epädeterministisiin vaativuusluokkiin palataan kohta 158

Tärkeitä vaativuusluokkia Määritellään polynominen ja eksponentiaalinen aika- ja tilavaativusluokka: P = { DTIME(t) t polynomi } P SP ACE = { DSPACE(s) s polynomi } { } E = DTIME(2 nk ) k = 0, 1, 2,... { } ESP ACE = DSPACE(2 nk ) k = 0, 1, 2,... Siis erityisesti P = { L(M) time M (n) = O(n k ) jollain k }. 159

Tila- ja aikavaativuus eri laskennan malleissa jos A = L(M) moninauhaisella Turingin koneella M, niin A = L(N) missä N on yksinauhainen, time N (n) = O(time M (n) 2 ) ja space N (n) = O(space M (n)) (vrt. aiemmin esitetty simulaatio) jos kieli voidaan tunnistaa RAM-mallissa (tai jossain muussa nykyaikaisen tietokoneen abstraktissa mallissa) ajassa t ja tilassa s, niin se voidaan tunnistaa Turingin koneella ajassa O(t(n) 2 ) ja tilassa O(s(n)). yleisemmin aiemmin esitetyissä universaaleissa laskennan malleissa aikaja tilavaativuudet (kun ne määritellään järkevästi) ovat polynomisesssa suhteessa ts. jos jokin ongelma ratkeaa jossain mallissa ajassa t(n) niin missä tahansa toisessa mallissa se ratkeaa ajassa O(t(n) k ) jollain k siis erityisesti luokat P, E, PSPACE ja ESPACE ovat riippumattomia valitusta laskennan mallista 160

Usein ajatellaan, että polynomisessa ajassa ratkeavat ongelmat ovat käytännössä ratkeavia. Mahdollista kritiikkiä: Jos vaativuus on esim. luokkaa n 100 niin ongelma ei varmaan ole käytännössä ratkeava. Kommentti: harvoja poikkeuksia lukuunottamatta ei tunneta käytännön esimerkkejä joissa aikavaativuus olisi polynominen mutta korkeaa astetta Käytännössä syötteen koolla on jokin äärellinen yläraja, joten ei-polynomisuus ei ole ongelma Kommentti: näin voi olla jos yläraja on riittävän pieni; tyypilliset ei-polynomiset aikavaativuusfunktiot kuitenkin kasvat nopeasti jo melko pienillä n. Pahin tapaus ei kerro koko totuutta. Kommentti: voi hyvin pitää paikkansa, mutta esim. keskimääräisen tapauksen analyysi vaikeaa ja usein edellyttää kyseenalaisia oletuksia. Johtopäätös: yleensä polynomisuus = tehokkuus mutta mallin rajoituksia pitää harkita tapauskohtaisesti 161