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

Samankaltaiset tiedostot
3. Laskennan vaativuusteoriaa

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:

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

Esimerkkejä polynomisista ja ei-polynomisista ongelmista

Turingin koneen laajennuksia

Muita vaativuusluokkia

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

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

3. Laskennan vaativuusteoriaa

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

Algoritmit 2. Luento 13 Ti Timo Männikkö

Rekursiiviset palautukset [HMU 9.3.1]

Lisää pysähtymisaiheisia ongelmia

on rekursiivisesti numeroituva, mutta ei rekursiivinen.

Induktiotodistus: Tapaus n = 0 selvä; ol. väite pätee kun n < m.

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

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

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

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

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

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

ICS-C2000 Tietojenkäsittelyteoria Kevät 2016

Laskennan mallit (syksy 2009) Harjoitus 11, ratkaisuja

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

Algoritmit 2. Luento 13 Ti Timo Männikkö

Rajoittamattomat kieliopit

Pysähtymisongelman ratkeavuus [Sipser luku 4.2]

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

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.

TKT20005 Laskennan mallit (syksy 2018) Kurssikoe, malliratkaisut

Täydentäviä muistiinpanoja Turingin koneiden vaihtoehdoista

Säännöllisen kielen tunnistavat Turingin koneet

SAT-ongelman rajoitetut muodot

Hahmon etsiminen syotteesta (johdatteleva esimerkki)

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

Polynomiset palautukset ja NP-täydellisyys

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

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

Algoritmit 2. Luento 14 To Timo Männikkö

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

5.3 Ratkeavia ongelmia

1. Universaaleja laskennan malleja

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

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

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

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

Algoritmit 2. Luento 14 Ke Timo Männikkö

Yhteydettömän kieliopin jäsennysongelma

Täydentäviä muistiinpanoja laskennan rajoista

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

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

1. Universaaleja laskennan malleja

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

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

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

Laskennan mallit (syksy 2010) Harjoitus 4, ratkaisuja

6.1 Rekursiiviset palautukset

Insinöörimatematiikka A

Chomskyn hierarkia ja yhteysherkät kieliopit

10. Satunnaisalgoritmit

Kertausta 1. kurssikokeeseen

2. Laskettavuusteoriaa

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

Muunnelmia Turingin koneista sekä muita vaihtoehtoisia malleja

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

Rajoittamattomat kieliopit (Unrestricted Grammars)

6. Approksimointialgoritmit

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

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

Säännöllisten kielten sulkeumaominaisuudet

Algoritmit 1. Luento 2 Ke Timo Männikkö

Vaihtoehtoinen tapa määritellä funktioita f : N R on

Algoritmin määritelmä [Sipser luku 3.3]

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

Rekursio. Funktio f : N R määritellään yleensä antamalla lauseke funktion arvolle f (n). Vaihtoehtoinen tapa määritellä funktioita f : N R on

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

P? = NP Kysymys ratkaisun keksimisestä ja sen tarkistamisesta

Laskennanteoria: Mitä voimmelaskea tietokoneella ja kuinkatehokkaasti?

Laskennan mallit (syksy 2008) 2. kurssikoe , ratkaisuja

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

IV. TASAINEN SUPPENEMINEN. f(x) = lim. jokaista ε > 0 ja x A kohti n ε,x N s.e. n n

Laskennan vaativuus ja NP-täydelliset ongelmat

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

V. V. Vazirani: Approximation Algorithms, luvut 3-4 Matti Kääriäinen

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

Entscheidungsproblem

Laskennan teoria

Yllä osoitettiin, että säännöllisten kielten joukko on suljettu yhdisteen

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

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

Onko algoritmiselle ongelmalle löydetty ratkaisualgoritmi riittävän hyvä?

Entscheidungsproblem

1. Primitiivirekursiiviset funktiot muodostetaan kolmesta perusfunktiosta käyttäen. succ(n) = n + 1

Se mistä tilasta aloitetaan, merkitään tyhjästä tulevalla nuolella. Yllä olevassa esimerkissä aloitustila on A.

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

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

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

2. Laskettavuusteoriaa

Automaatit. Muodolliset kielet

Transkriptio:

Epädeterministisen Turingin koneen N laskentaa syötteellä x on usein hyödyllistä ajatella laskentapuuna. q 0 x solmuina laskennan mahdolliset tilanteet juurena alkutilanne lehtinä tilanteet joista ei siirtymää, erityisesti hyväksyvät tilanteet... qyes...... qyes... solmun vqw jälkeläisiä ne v q w joilla vqw N v q w... qyes.... N hyväksyy syötteen x joss puussa ainakin yksi hyväksyvä lehti 174

jos time N (x) = t, laskentapuussa kork. d t solmua missä d suurin määrä seuraajia millään yksittäisellä tilanteella triviaali yläraja d 2 Γ Q Edellinen lause: jos lyhimmän hyväksyvän polun pituudelle tunnetaan yläraja, laskennasta voidaan karsia kaikki tätä pitemmät haarat tunnistettu kieli pysyy samana karsinnan toteuttamisesta tulee korkeintaan neliöllinen lisäaikarasite 175

Joitain epädeterministisiä vaativuusluokkia Kieli A voidaan tunnistaa epädeterministisesti ajassa t (tilassa s) jos A = L(N) epädet. Turingin koneella N jolla time N (n) t(n) (vast. space N (n) s(n)) kaikilla n. Analogisesti deterministisen tapauksen kanssa määritellään ja NTIME(t) = { A Σ A voidaan tunnistaa epädet. ajassa t } NSPACE(t) = { A Σ A voidaan tunnistaa epädet. tilassa s } NP = { NTIME(t) t polynomi } NPSPACE = { NSPACE(s) s polynomi } { } NE = NTIME(2 nk ) k = 0, 1, 2,... { } NESPACE = NSPACE(2 nk ) k = 0, 1, 2,... Aiemmin esitettyyn tapaan myös epädet. koneilla moninauhaista konetta N voidaan simuloida yksinauhaisella ajassa O(time N (n) 2 ) ja tilassa O(space N (n)), joten näiden luokkien kannalta on sama käytetäänkö monivai yksinauhaisia koneita. 176

Osoitetaan esimerkkinä että HC NP, eli muodostetaan polynomisessa ajassa toimiva epädeterministinen Turingin kone N em. Hamiltonin kehä -ongelmalle. Olkoon syöte G = (V, E), missä V = { v 1,..., v n } ja G = { (v i1, v j1 ),..., (v im, v jm ) }. Konkreettisuuden vuoksi oletetaan tämä esitetyksi aakkoston { 0, 1, } merkkijonona ˆn î 1 ĵ 1 î 2 ĵ 2... ˆ i m ˆ j m missä î on luvut i binääriesitys. Tämä esitys on helppo muodostaa vieruslistasta tai -matriisista. Esim. jos V = { a, b, c, d } ja E = { (a, b), (a, c), (b, c), (c, d) } niin koodataan a 1, b 10, c 11 ja d 100 ja esitykseksi tulee 100 1 10 1 11 10 11 11 100 177

Kone N on kaksinauhainen ja toimii seuraavasti: 1. Kirjoita kakkosnauhalle epädeterministisesti jokin merkkijono v { 0, 1, }. 2. Olkoon v = w 1 w 2... w n missä w i { 0, 1 } ja n = V ; jos v ei ole tätä muotoa niin hylkää. 3. Jos jollain i = 1,..., n koodi î esiintyy merkkijonossa v kaksi kertaa tai ei esiinny lainkaan, hylkää. 4. Jos jollain i = 1,..., n 1 syöte ei sisällä merkkijonoa w i w i+1 eikä w i+1 w i niin hylkää (huom. suuntaamaton verkko, jompi kumpi suunta riittää) 5. Jos syöte ei sisällä merkkijonoa w 1 w n eikä w n w 1, niin hylkää. 6. Muuten hyväksy. Selvästi N toimii polynomisessa ajassa ja tunnistaa kielen HC, joten HC NP. 178

Jatkossa esitämme epädeterministiset Turingin koneet vähemmän yksityiskohtaisena pseudokoodina. Esim. Hamiltonin kehä -ongelman epädeterministinen ratkaisu polynomisessa ajassa: 1. Lue G = (V, E); olkoon n = V ja V = { v 1,..., v n }. 2. Arvaa epädeterministisesti jono (i 1,..., i n ) { 1,..., n } n. 3. Jos jokainen luku j = 1,..., n esiintyy jonossa (i 1,..., i n ) tasan kerran ja kaikilla j = 1,..., n pätee (v ij, v ij+1 ) E tai (v ij+1, v ij ) E ja (v i1, v in ) E tai (v in, v i1 ) E niin hyväksy. 4. Muuten hylkää. Käytännössä tämäkin on turhan yksityiskohtaista, kohta 3 voidaan vain sanoa Jos solmujono (v i1, v i2,..., v in ) on Hamiltonin kehä, niin hyväksy. 179

Propositiologiikan toteutuvuusongelma (Satisfiability, SAT) Otetaan vielä esimerkkinä yksi tärkeä luokan NP ongelma. Propositiologiikan kaava muodostuu loogisista konnektiiveista, ja, sulkumerkeistä ( ja ), vakiosymboleista 0 ja 1 sekä muuttujasymboleista x i, i = 1, 2, 3,..., tuttuun tapaan; esim. x 4 (x 7 x 1 ). Kaavat voidaan ilmeisellä tavalla esittää aakkoston {,,, (, ), 0, 1, x } merkkijonoina; esim. x100 (x111 x1). Kaavan totuus määritellään tuttuun tapaan; 0 = epätosi ja 1 = tosi. Jos φ(x 1,..., x n ) on muuttujia x 1,..., x n sisältävä kaava ja (v 1,..., v n ) { 0, 1 } n, niin φ(v 1,..., v n ) on kaavan arvo kun muuttujille sijoitetaaan arvot x i := v i ; esim. kun φ(x 1, x 2, x 3 ) = (x 3 x 1 ) x 2 niin φ(0, 1, 0) = (0 0) 1 = 0. Kaava φ(x 1,..., x n ) on toteutuva jos φ(v 1,..., v n ) = 1 jollain (v 1,..., v n ) { 0, 1 } n. 180

Määritellään nyt propositiologiikan toteutuvuusongelma SAT = { φ φ on toteutuva }. Toteutuvuusongelma voidaan helposti ratkaista epädeterministisesti polynomisessa ajassa: 1. Lue φ(x 1,..., x n ). 2. Arvaa epädeterministisesti (v 1,..., v n ) { 0, 1 } n. 3. Jos φ(v 1,..., v n ) = 1 niin hyväksy; muuten hylkää. Siis SAT NP. 181

Luokan NP ongelmien yleinen luonne Edelliset esimerkit luokan NP ongelmista ratkesivat epädeterministisesti tyyliin 1. Lue syöte x. 2. Arvaa y, jonka pituus riippuu syötteen x koosta. 3. Jos R(x, y) niin hyväksy; muuten hylkää. Tässä R(x, y) on jokin ominaisuus joka voidaan ratkaista deterministisesti polynomisesssa ajassa. Siis kaikki epädeterminismi on alun arvausvaiheessa. Itse asiassa muunlaista epädeterminismiä ei tarvita luokan NP kielten tunnistamiseen. 182

Lause: Kieli A kuuluu luokkaan NP jos ja vain jos on olemassa polynomi q ja R P joille x A y Σ : y q(n) x, y R. Todistus: Helppo, mutta sivuutetaan. Tulkinta: Olkoon A NP ja merkinnät kuten yllä. jos x A, on olemassa polynomisen kokoinen y joka on todiste tälle asianhaaralla on olemassa polynomisessa ajassa toimiva tarkistaja (nim. kielen R hyväksyvä kone), joka annetulla syötteellä x ja väitetyllä todisteella y tarkistaa, onko todiste kelvollinen esim. SAT-ongelman tapauksessa kaavaa φ(x 1,..., x n ) vastaava todiste on mikä tahansa (v 1,..., v n ) { 0, 1 } n jolla φ(v 1,..., v n ) = 1; tarkistaja sijoittaa annetut arvot annettuun kaavaan ja tarkistaa, tuliko tosi ongelman x A? tekee vaikeaksi se, että potentiaalisia todistajia on eksponentiaalinen määrä 183

P = NP -ongelma laskettavuusteoria: mikä voidaan tunnistaa epädeterministisellä Turingin koneella, voidaan tunnistaa myös deterministisellä Turingin koneella vaativuusteoria: koskeeko sama tunnistamista polynomisessa ajassa; ts. päteekö P = NP? Kysymys formuloitu 1971 (Cook), yhä avoin! intuitiivisesti P = NP olisi hyvin yllättävä tulos, koska em. tulkinnan mukaan se tarkoittaisi, että todistaja voidaan löytää eksponentiaalisesta etsintäavaruudesta polynomisessa ajassa P = NP pätee jos ja vain jos jokin NP-täydellinen ongelma (esim. HC, SAT) ratkeaa polynomisessa ajassa; siirrytään tarkastelemaan näitä. 184

Polynomiset palautukset ja NP-täydellisyys Polynomisen palautuksen idea on sama kuin rekursiivisen palautuksen, paitsi että liikutaan polynomisen aikavaativuuden maailmassa. Funktio f voidaan laskea polynomisessa ajassa, jos jokin Turingin kone M laskee sen ja time M (n) = O(n k ) jollain k. Funktio f: Σ Γ palauttaa polynomisesti kielen A Σ kieleen B Γ, merkitään f: A p m B, jos f on laskettavissa polynomisessa ajassa ja x A f(x) B kaikilla x Σ. Jos tällainen f on olemassa, sanotaan että kieli A palautuu kieleen B ja merkitään A p m B. Lemma: Olkoon S jokin vaativuusluokista P, NP, PSPACE, E, NE. Jos A p m B ja B S, niin A S. Todistus: Helppo. 185