3. Laskennan vaativuusteoriaa
|
|
- Markus Uotila
- 7 vuotta sitten
- Katselukertoja:
Transkriptio
1 3. Laskennan vaativuusteoriaa Siirrymme tarkastelemaan, mitä laskennallisia ongelmia voidaan ratkaista tehokkaalla algoritmilla [HMU luku 10]. Tämän luvun jälkeen opiskelija tuntee laskennallisen vaativuuden peruskäsitteet ja osaa soveltaa niitä tuttuihin algoritmeihin tuntee NP-täydellisyyden teknisen määritelmän ja käytännön merkityksen tunnistaa tyypilliset NP-täydelliset ongelmat osaa laatia yksinkertaisia NP-täydellisyystodistuksia 164
2 Tähän asti on puhuttu siitä, mitä on mahdollista laskea äärellisessä ajassa. Nyt siirrymme tarkastelemaan laskemista kohtuullisessa ajassa. Määrittelemme pian peruskäsitteet täsmällisesti. Sovellettaessa teoreettisia tuloksia käytännön tilanteisiin on syytä miettiä tarkasti, onko tämä teoreettinen määritelmä hyvä formalisointi sille, mitä sovelluksessa oikeasti voidaan pitää kohtuullisena. Kaikki tässä luvussa käsiteltävät ongelmat (kuten kursseilla Tietorakenteet jne. kohdatutkin) ovat selvästi ratkeavia. Ne ovat siis laskettavuuden teorian kannalta ekvivalentteja (ja helppoja ). Laskennan vaativuusteoriassa pyrimme tavallaan löytämään luokan REC ( helpot ongelmat) sisällä hienorakennetta : jotkin ratkeavat ongelmat ovat kuitenkin jossain mielessä helpompia, jotkin vaikeampia. Laskennan vaativuusteoria on tutkimuksen kannalta jossain mielessä vaikeampaa kuin laskettavuuden teoria: monet perustavanlaatuiset kysymykset ovat vielä avoinna. 165
3 Keskeinen kysymyksenasettelu Laskennan vaativuusteorian peruskysymykset ovat intuitiivisesti seuraavan tyyppisiä (ajan sijaan voidaan puhua muistista tms.): Annettu laskennallinen ongelma A ja aikaraja T. Voiko ongelman A ratkaista ajassa T (tai alle)? (yläraja aikavaativuudelle) Annettu laskennallinen ongelma A ja aikaraja T. Viekö ongelman A ratkaiseminen välttämättä vähintään ajan T? (alaraja aikavaativuudelle) Ylärajoja todistetaan tyypillisesti laatimalla tehokas algoritmi ja analysoimalla sen aikavaativuus. Tietojenkäsittelytieteilijät ovat hyviä tässä. Alarajojen todistaminen on vaikeaa. Tyypillisesti se onnistuu vain jos ongelma A on sopiva keinotekoinen ongelma (esim. diagonalisoimalla saatu) tai tehdään lisärajoituksia sille, millaiset algoritmit ovat sallittuja (esim. O(n log n)-alaraja järjestämiselle). Ideaalitapauksessa ylä- ja alaraja yhtyvät, jolloin on löydetty optimaalinen algoritmi. 166
4 Deterministinen aikavaativuus Sovellamme Tietorakenteista yms. tuttua algoritmin aikavaativuuskäsitettä Turingin koneisiin [HMU , ]. Olkoon M deterministinen (mutta mahdollisesti moninauhainen) Turingin kone. Jos syötteellä x Σ kone M tekee tasan k laskenta-askelta ja pysähtyy, merkitsemme steps M (x) = k. Jos laskenta ei pysähdy, niin steps M (x) =. Koneen M aikavaativuus on funktio time M : N N { }, jolla time M (n) = max { steps M (x) x = n }. Siis koneen aikavaativuus on T, jos millään pituutta n olevalla syötteellä kone kone ei laske yli T (n) askelta, ja T on pienin mahdollinen jolle tämä pätee. Koneen M aikavaativuus on polynominen, jos jollakin polynomilla p pätee time M (n) p(n) kaikilla n. 167
5 Huomioita aikavaativuuden määritelmästä Aikavaativuuden polynomisuus voitaisiin yhtäpitävästi ilmaista vaatimalla, että jollakin k N pätee tai että jollakin l pätee time M (n) n k + k time M (n) = O(n l ). kaikilla n Yleensä ei tarkastellakaan tarkkaa aikavaativuutta time M, vaan jotain ylärajaa T jolla time M (n) = O(T (n)). [O-notaatio: ks. Tietorakenteet] Käytämme tässä pahimman tapauksen aikavaativuutta eli kullakin n tarkastelemme vaikeinta syötettä, jonka pituus on n. On mahdollista tarkastella myös keskimääräisen tapauksen aikavaativuutta, mutta tämä on teknisesti vaikeaa ja edellyttää usein epärealistisia oletuksia syötteen jakaumasta. Voimme vastaavasti määritellä koneen M tilavaativuuden space M (n), joka on suurin koneen käyttämä nauhapaikkojen lukumäärä kun syötteen pituus on n. 168
6 Tärkeitä deterministisiä vaativuusluokkia Ryhmittelemme päätösongelmia niiden vaatimien laskentaresurssien mukaan. Päätösongelma A kuuluu luokkaan P, jos se voidaan tunnistaa polynomisessa ajassa, eli A = L(M) jollain deterministisellä M jonka aikavaativuus on polynominen. Formaalisti P = { L(M) M deterministinen, time M (n) = O(n k ) jollain k }. Päätösongelma A kuuluu luokkaan E, jos A = L(M) jollain M jonka aikavaativuus on korkeintaan eksponenttifunktio. Formaalisti E = { L(M) M deterministinen, time M (n) = O(2 nk ) jollain k }. Päätösongelma A kuuluu luokkaan PSPACE, jos se voidaan tunnistaa polynomisessa tilassa, eli A = L(M) jollain M jonka tilavaativuus on polynominen. Formaalisti PSPACE = { L(M) M deterministinen, space M (n) = O(n k ) jollain k }. 169
7 Huomautuksia vaativuusluokista Kaikki vaativuusluokat ovat triviaalisti rekursiivisten kielten luokan REC aitoja osajoukkoja. Selvästi P E. On mahdollista osoittaa, että P E, mutta tämä ei ole mitenkään ilmeistä. On melko helppo osoittaa, että P PSPACE ja PSPACE E. Ei tiedetä, päteekö P = PSPACE tai PSPACE = E. (Arvellaan, että kumpikaan ei päde.) Kun sanotaan, että ongelman aikavaativuus on eksponentiaalinen, tarkoitetaan yleensä, että aikavaativuus on vähintään 2 cn jollain c > 0, eikä kuulumista luokkaan E. Määrittelemme jatkossa myös epädeterministisiin Turingin koneisiin perustuvat vaativuusluokat NP jne. jotka ovat myös tärkeitä. Kirjallisuudesta löytyy runsaasti muitakin vaativuusluokkia ( structural complexity theory ). 170
8 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)) (s ). 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 aika- ja 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 vakiolla k (joka riippuu käytetyistä malleista, mutta ei ongelmasta). Johtopäätös: luokat P, E ja PSPACE eivät ole kovin herkkiä sille, mitä laskennan mallia käytetään. 171
9 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 172
10 Esimerkkejä polynomisista ja ei-polynomisista ongelmista Ennen yleisempiä teoriatarkasteluja katsotaan joitain tyypillisiä esimerkkejä ongelmista ja niiden vaativuudesta kaikki nämä ongelmat ratkeavia (nähdään helposti) pääkysymys: mitkä niistä ratkeavat polynomisessa ajassa osoittautuu, että tämä on yllättävän vaikea kysymys Kuten ratkeavuustarkasteluissa, meidän pitää tehdä joitain teknisiä esitysmuoto-oletuksia. luokat P, PSPACE ja E määritelty luokkina formaaleja kieliä ts. formaalisti ongelmien syötteet ovat merkkijonoja käytännön ongelmissa syötteet ovat verkkoja, loogisia kaavoja, joukkoja jne. täytyy sopia syötteiden esittämisestä merkkijonoina 173
11 Esimerkki: suunnattu verkko Kurssilla Tietorakenteet opittuun tapaan suunnattu verkko G = (V, E) voidaan esittää esim. vierusmatriisina tai vieruslistana. a b V = { a, b, c } E = { (a, b), (a, c), (c, a) } c Vierusmatriisi A a = v 1, b = v 2, c = v 3 A(i, j) = 1 joss (v i, v j ) E Vieruslista ((2, 3), (), (1)) Alilista i sisätää ne j joilla (v i, v j ) E Vierusmatriisi tai vieruslista voidaan esittää merkkijonona sillä tavalla kuin tällaisia rakenteita koodataan esim. ASCII-jonoiksi normaalisssa ohjelmoinnissa. 174
12 Kun sanomme että jokin esim. verkkoja koskeva päätösongelma ratkeaa polynomisessa ajassa, tarkoitamme että vastaava merkkijonoesityksistä koostuva formaali kieli kuuluu luokkaan P. Jatkossa ei kiinnitetä huomiota esitystavan yksityiskohtiin, vaan oletetaan se tehdyksi jollain järkevällä tavalla. Lopputulos on, että muodollinen määritelmä on sama kuin esim. kurssilta Tietorakenteet tuttu polynominen aikavaativuus Pitää kuitenkin muistaa, että aikavaativuus määritellään syötteen pituuden suhteen. Siis järkevä pitää sisällään sen, että syötteen koko ei kasva liikaa Huom. tärkeä erikoistapaus: luonnollisen luvun n koodin pituus on O(log n) (esim. binääriesitys log 2 n + 1 bittiä) 175
13 Esimerkkejä verkko-ongelmista vierusmatriisiesityksen koko on O(n 2 ), vieruslistaesityksen koko O(n + m) = O(n 2 ) missä n = V ja m = E (huom. m = O(n 2 )) verkon tapauksessa oletetaan, että syötteen pituus on polynominen verkon solmujen lukumäärän n suhteen siis ongelmaa vastaavan formaalin kielen kuuluminen luokkaan P tarkoittaa samaa kuin että ongelma ratkeaa solmujen lukumäärän n suhteen polynomisessa ajassa Kurssilla Tietorakenteet opitun perustella esim. seuraavat ongelmat ratkeavat polynomisessa ajassa: onko suunnatussa (tai suuntaamattomassa) verkossa G polku solmusta u solmuun v (syvyyssuuntainen etsintä O(n + m)) onko painotetussa verkossa G solmusta u solmuun v polku, jonka kustannus on korkeintaan c (Dijkstran algoritmi O(n log n + m)) Huom. nämä on tässä muotoiltu päätösongelmina; palaamme pian kysymykseen etsintä- ja optimointiongelmista 176
14 Eulerin kehä (Euler tour) Verkko Eräs Eulerin kehä Eulerin kehä on polku, joka käyttää verkon jokaista kaarta tasan kerran ja palaa lähtöpisteeseensä Kysymys Onko annetussa suuntaamattomassa verkossa Eulerin kehä? ratkeaa polynomisessa ajassa Ratkaisu perustuu havaintoon, että Eulerin kehä on olemassa, jos ja vain jos verkko on yhtenäinen ja jokaisen solmun aste on parillinen (Euler 1736). 177
15 Hamiltonin kehä (Hamiltonian Circuit, HC) Verkko Eräs Hamiltonin kehä Hamiltonin kehä on polku, joka käy jokaisessa solmussa tasan kerran ja palaa lähtöpisteeseensä. Ongelmalle Onko annetussa suuntaamattomassa verkossa Hamiltonin kehä? ei tunneta polynomisessa ajassa toimivaa algoritmia. Pidetään luultavana, ettei tällaista algoritmia ole olemassa, eli että HC P. 178
16 Hamiltonin kehä -ongelmalle on seuraava (erittäin) naiivi ratkaisualgoritmi: Olkoon G = (V, E) missä V = { v 1,..., v n }. Toista kaikilla jonon (v 1, v 2, v 3,..., v n ) permutaatioilla (u 1, u 2, u 3,..., u n ): Jos (u j, u j+1 ) E kun j = 1,..., n 1 ja (u n, u 1 ) E niin palauta kyllä Palauta ei. Algoritmi toimii selvästi polynomisessa tilassa; siis HC PSPACE Tarkistettavia permutaatioita on n! kappaletta, yhden tarkistus sujuu selvästi polynomisessa ajassa. Koska (n/2) n/2 n! n n, niin HC E, mutta tämän algoritmin aikavaativuus ei ole polynominen. Itse asiassa HC on NP-täydellinen ongelma, mistä lisää pian. 179
17 Päätösongelmaan HC liittyy myös ilmeinen etsintäongelma: Syöte: suuntaamaton verkko G = (V, E) Tuloste: jokin verkon G Hamiltonin kehä H E jos olemassa; ei ole muuten Oletetaan nyt, että funktio DecideHC(G) ratkaisee päätösongelman HC, ts. palauttaa tosi joss verkossa G on Hamiltonin kehä. Tällöin seuraava algoritmi FindHC ratkaisee yo. etsintäongelman: FindHC(V, E): /* Olkoon E = { e 1,..., e m }. */ H := E; for i := 1 to m do if DecideHC(V, H { e i }) then H := H { e i }; return polku joka koostuu joukon H kaarista; Erityisesti jos olisi HC P, niin myös etsintäongelma ratkeaisi polynomisessa ajassa. Toisaalta jos HC P kuten luullaan, niin etsintäongelma ei tietenkään ratkea polynomisessa ajassa. 180
18 Alkulukutestaus Luonnollinen luku n 2 on alkuluku jos luvun n ainoat tekijät ovat 1 ja n. Määritellään päätösongelma PRIMES = { n N n alkuluku }. Ongelmalle PRIMES on äskettäin löydetty polynomisessa ajassa toimiva ratkaisualgoritmi ( PRIMES is in P, M. Agrawal, N. Kayal ja N. Saxena, 2002). Aikavaativuuspolynomi on korkeaa astetta, käytännössä aiemmat satunnaisuuteen perustuvat algoritmit saattavat olla parempia. Huom. Ongelma on testata luku n sen pituuden O(log n) suhteen polynomisessa ajassa. Itse luvun n suhteen polynominen aika saavutetaan triviaalisti. Tämä ei kuitenkaan auta jos n on esim bittinen, siis n Tässä tapauksessa etsintäongelma näyttäisi olevan vaikeampi kuin päätösongelma. Edelleenkään ei osata tehokkaasti jakaa lukua alkutekijöihin. Tehokas algoritmi tekijöihin jaolle murtaisi monet salausmenetelmät. 181
19 Yleistettyjä lautapelejä Yleistetty tammi: Annettu: mielivaltainen pelitilanne n n tammilaudalla Kysymys: voiko musta pelaaja pakottaa voiton itselleen Yleistetty go: Annettu: mielivaltainen pelitilanne n n go-laudalla Kysymys: voiko musta pelaaja pakottaa voiton itselleen Kumpikin ongelma ratkeaa eksponentiaalisessa mutta ei polynomisessa ajassa; ratkeavuus polynomisessa tilassa avoin. (Kumpaankin tapaukseen liittyy epätriviaaleja oletuksia sääntöjen yksityiskohdista.) 182
20 Epädeterministiset vaativuusluokat [HMU , ] Määrittelemme nyt epädeterministisen Turingin koneen aika- ja tilavaativuuden. Tämä on hyödyllinen käsite ongelmien analysoimisessa; ei realistinen mitta ongelman ratkaisuajalle oikeilla tietokoneilla. Annetun yksittäisen laskennan aika- ja tilavaativuus voidaan määritellä kuten deterministisessä tapauksessa. Epädeterministisellä koneella N voi syötteellä x olla useita mahdollisia laskentoja, joten määritellään steps N (x) = koneen N pisimmän laskennan pituus syötteellä x. Aikavaativuusfunktio on kuten ennenkin time N (n) = max { steps N (x) x = n }. Vastaavasti space N (n) on suurin tila, joka voidaan käyttää pituutta n olevalla syötteellä. 183
21 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 184
22 Jos time N (x) = t, laskentapuussa kork. d t solmua missä d suurin määrä seuraajia millään yksittäisellä tilanteella. Haarautumisasteelle d saadaan triviaali yläraja d 2 Γ Q, joka riippuu koneen N rakenteesta mutta ei syötteestä x. Määritelmän mukaan aikavaativuus määräytyy puun pisimmän haaran mukaan. Tämä voi tuntua ei-intuitiiviselta, mutta itse asiassa ei ole oleellista. Seuraava lause näet osoittaa, että jos lyhimmän hyväksyvän polun pituudelle tunnetaan yläraja, laskennasta voidaan karsia kaikki tätä pitemmät haarat. Tunnistettu kieli pysyy samana, ja karsinnan toteuttamisesta tulee korkeintaan neliöllinen lisäaikarasite. 185
23 Lause 3.1: Jos A = L(N) missä N on yksinauhainen epädeterministinen Turingin kone ja jokaisella x A koneen N lyhimmän hyväksyvän laskennan pituus on O( x k ), niin A = L(N ) missä N on yksinauhainen epädeterministinen Turingin kone ja time N (x) = O( x 2k ). Todistushahmotelma Muodostetaan ensin kaksinauhainen N, joka aluksi kirjoittaa kakkosnauhalle O( x k ) nollaa ja sen jälkeen simuloi konetta N käyttäen kakkosnauhaa käskylaskurina (vrt. harj. 3. teht. 5.) Tämä kaksinauhainen kone toimii ajassa O(n k ), joten sitä voidaan simuloida yksinauhaisella ajassa O(n 2k ). 186
24 Tärkeitä epädeterministisiä vaativuusluokkia Päätösongelma A kuuluu luokkaan NP (nondeterministic polynomial time), jos se voidaan tunnistaa epädeterministisellä Turingin koneella. jonka aikavaativuus on polynominen. Formaalisti NP = { L(N) N epädeterministinen, time N (n) = O(n k ) jollain k }. Kuten deterministisessä tapauksessa, voidaan määritellä myös NE = { L(N) N epädeterministinen, time N (n) = O(2 nk ) jollain k } NPSPACE = { L(N) N epädeterministinen, space N (n) = O(n k ) jollain k }. Koska deterministiset koneet ovat epädeterminististen erikoistapaus, on triviaalisti P NP jne. Itse asiassa voidaan osoittaa PSPACE = NPSPACE, joten epädeterministinen tilavaativuus ei yleensä ole kiinnostavaa. Sen sijaan kysymys, päteekö P NP, on avoin. 187
25 Sivulla 47 esitetystä laskelmasta seuraa, että jos A NP, niin A voidaan tunnistaa deterministisellä Turingin koneella ajassa O(2 p(n) ) jollakin polynomilla p. Tämä laskelma perustuu oleellisesti edelläesitetyn laskentapuun läpikäymiseen leveyssuuntaisesti. Periaatteessa on mahdollista, että on jokin tehokkaampikin tapa simuloida epädeterministisiä laskentoja. Oleellisesti tehokkaampaa tapaa ei kuitenkaan tunneta, eikä sellaisen löytymistä pidetä todennäköisenä. Toisin sanoen arvellaan, että luokan NP vaikeimmat ongelmat todella vaativat eksponentiaalisen laskenta-ajan (realistisissa laskennan malleissa). Ennen tämän ajatuksen tarkempaa tutkimista tarkastellaan, millaisia ongelmia luokassa NP on. 188
26 Esimerkki: Hamiltonin kehä Osoitetaan, että HC NP. Tehdään ensin pseudokoodiesitys epädeterministiselle algoritmille, joka toimii polynomisessa ajassa ja ratkaisee ongelman HC. Määritellään ensin normaali deterministinen apuproseduuri CheckHC(V, E, Q), joka tarkistaa onko annettu solmujono Q Hamiltonin kehä verkossa (V, E): CheckHC(V, E, Q): /* Olkoon Q = (u 1,..., u m ). */ if m V or { u 1,..., u m } = V then return false; if (u m, u 1 ) E then return false; for i := 1 to m 1 do if (u i, u i+1 ) E then return false; return true Selvästi CheckHC toimii polynomisessa ajassa. 189
27 Hamiltonin kehä -ongelmalle saadaan nyt seuraava epädeterministinen algoritmi: HC(G): 1. Olkoon G = (V, E) ja V = n. 2. Arvaa epädeterministisesti solmujono Q = (u 1,..., u n ) V n. 3. Jos CheckHC(V, E, Q) = true niin hyväksy, muuten hylkää. Tämä toimii polynomisessa ajassa, ja on epädeterministinen algoritmi ongelmalle HC koska 1. jos G HC niin jokin arvaus Q johtaa hyväksymiseen ja 2. jos G HC niin kaikki arvaukset Q johtavat hylkäämiseen. 190
28 Määritelmien konkretisoimiseksi käännetään vielä tämä pseudokoodi Turingin koneeksi. Koodataan syöte G = (V, E), missä V = { v 1,..., v n } ja E = { (v i1, v j1 ),..., (v im, v jm ) }, aakkoston { 0, 1, } merkkijonona ˆn î 1 ĵ 1 î 2 ĵ 2... ˆ i m ˆ j m missä î on luvun 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
29 Kielen HC tunnistava kone N on kaksinauhainen ja toimii seuraavasti: 1. Kirjoita kakkosnauhalle epädeterministisesti jokin merkkijono v { 0, 1, }, jonka pituus on korkeintaan n 2 + n 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 syöte ei sisällä merkkijonoa w 1 w n eikä w n w 1, niin hylkää. 5. 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ää) 6. Muuten hyväksy. 192
30 Askelten perusteella kone N hyväksyy syötteen, jos ja vain jos nauhalle 2 generoitu merkkijono v esittää jotain Hamiltonin polkua verkossa G. Triviaalisti tällainen merkkijono v on olemassa, jos ja vain jos G HC. Toisin sanoen koneella N on hyväksyviä laskentoja, jos ja vain jos G HC. Kone N toimii selvästi polynomisessa ajassa: Askel 1 vie ajan O(n 2 ). Askelet 2 ja 3 menevät samoin ajassa O(n 2 ). Askelissa 4 ja 5 pitää oleellisesti käydä läpi syötteeseen koodattu verkon G vieruslista n kertaa, mikä vie karkeasti ajan O(n 3 ). Siis N on polynomisessa ajassa toimiva epädeterministinen Turingin kone, joka ratkaisee Hamiltonin kehä -ongelman, joten HC NP. Käytännössä ongelman kuuluminen luokkaan NP voidaan tehdä korkean tason pseudokoodilla, kunhan ymmärretään mitä epädeterministinen arvaaminen tarkoittaa. 193
31 Propositiologiikan toteutuvuusongelma (Satisfiability, SAT) Otetaan vielä esimerkkinä yksi tärkeä luokan NP ongelma. [HMU , ] 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. 194
32 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. 195
33 Luokan NP ongelmien yleinen luonne ( ) Edellisiä esimerkkejä yleistäen voidaan osoittaa, että mikä tahansa luokan NP ongelma A voidaan ratkaista seuraavan tyyppisellä proseduurilla: A(x): 1. Olkoon n = x. 2. Arvaa epädeterminisesti y, missä y = p(n) jollain polynomilla p. 3. Jos CheckA(x, y) = true niin hyväksy, muuten hylkää. Tässä CheckA(x, y) on jokin deterministinen, polynomisessa ajassa toimiva proseduuri. Emme tässä todista, miksi kaikki epädeterminismi voidaan tällä tavoin rajoittaa alussa tapahtuvaan arvausvaiheeseen, mutta tarkastelemme hieman asian tulkintaa. 196
34 Jos x ja y ovat sellaisia, että edellisen sivun merkinnöillä CheckA(x, y) = true, niin sanomme että y on todiste sille, että x A. Esim. SAT-ongelman tapauksessa jos φ(x 1,..., x n ) SAT, niin tämän seikan todisteita ovat sellaiset (v 1,..., v n ) { 0, 1 } n joilla φ(v 1,..., v n ) = 1. Jotta edellisen sivun konstruktio todella osoittaisi A NP, seuraavien ehtojen on oltava voimassa: 1. jos x A, niin tälle on jokin polynomisen kokoinen todiste, 2. jos x A, niin mikään y ei todista x A ja 3. kysymys todistaako y, että x A voidaan annetuilla x ja y ratkaista deterministisesti polynomisessa ajassa. Intuitiivisesti luokan NP ongelmat siis ovat sellaisia, että niiden kyllä -tapauksille on suhteellisen pienet todisteet, ja annettu todiste on helppo tarkastaa. Ongelma on siinä, että potentiaalisia todisteita on 2 p(n) kappaletta. 197
35 Epädeterminismi vs. satunnaislaskenta ( ) Miten sivulla 196 esitetyn tyyppinen algoritmi voidaan suorittaa oikealla tietokoneella? Oletetaan y { 0, 1 }. Ilmeisimmät vaihtoehdot: Vaihtoehto 1: Käydään läpi kaikki y { 0, 1 } p(n). saadaan varmasti oikea vastaus pitää käydä läpi 2 p(n) mahdollisuutta (paljon!) Vaihtoehto 2: Valitaan y { 0, 1 } p(n) satunnaisesti tasaisesta jakaumasta aikavaativuus sama kuin epädeterministisen algoritmin aikavaativuus jos x A, vastaa aina oikein jos x A, vastaa oikein ainakin todennäköisyydellä 1/2 p(n) (pieni!) jos halutaan aina oikea vastaus ainakin todennäköisyydellä 1/2, pitää suorittaa 2 p(n) 1 riippumatonta toistoa (monta!) 198
36 P = NP -ongelma Pääsemme nyt vihdoin kysymykseen, mitä (jos mitään) tieto A NP kertoo ongelman A deterministisestä aikavaativuudesta. 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 ollut kiivaan tutkimuksen kohteena vuodesta 1971 (Stephen Cook, The complexity of theorem-proving procedures ), yhä avoin intuitiivisesti P = NP olisi hyvin yllättävä tulos, koska em. tulkinnan mukaan se tarkoittaisi, että todiste 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ä. 199
Esimerkkejä polynomisista ja ei-polynomisista ongelmista
Esimerkkejä polynomisista ja ei-polynomisista ongelmista Ennen yleisempiä teoriatarkasteluja katsotaan joitain tyypillisiä esimerkkejä ongelmista ja niiden vaativuudesta kaikki nämä ongelmat ratkeavia
LisätiedotEpädeterministisen Turingin koneen N laskentaa syötteellä x on usein hyödyllistä ajatella laskentapuuna
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ää,
Lisätiedot3. Laskennan vaativuusteoriaa
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
LisätiedotTuringin koneen laajennuksia
Turingin koneen laajennuksia Turingin koneen määritelmään voidaan tehdä erilaisia muutoksia siten että edelleen voidaan tunnistaa tasan sama luokka kieliä. Moniuraiset Turingin koneet: nauha jakautuu k
LisätiedotAlgoritmit 2. Luento 13 Ti Timo Männikkö
Algoritmit 2 Luento 13 Ti 2.5.2017 Timo Männikkö Luento 13 Merkkijonon sovitus Horspoolin algoritmi Laskennallinen vaativuus Päätösongelmat Epädeterministinen algoritmi Vaativuusluokat NP-täydellisyys
LisätiedotC 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:
Lause 3SAT p m VC Todistus. Olk. φ = C 1 C C m 3-cnf-kaava, jossa esiintyvät muuttujat x 1,..., x n. Vastaava solmupeiteongelman tapaus G, k muodostetaan seuraavasti. G:ssä on solmu kutakin literaalia
LisätiedotMuita vaativuusluokkia
Muita vaativuusluokkia Käydään lyhyesti läpi tärkeimpiä vaativuusluokkiin liittyviä tuloksia. Monet tunnetuista tuloksista ovat vaikeita todistaa, ja monet kysymykset ovat vielä auki. Lause (Ladner 1975):
Lisätiedot3SAT-ongelman NP-täydellisyys [HMU ]
3SAT-ongelman NP-täydellisyys [HMU 10.3.4] erotukseksi yleisestä CNF-esityksestä, kaikilla kaavoilla ei ole 3-CNF-esitystä; esim. x 1 x 2 x 3 x 4 esitämme muunnoksen, jolla polynomisessa ajassa mielivaltaisesta
Lisätiedotkaikki kielet tunnistettavat A TM HALT TM { a n } { a n b n } { a n b n c n } TOTAL TM EQ TM
Kurssi tähän asti: säännölliset yhteydettömät ratkeavat { a n } { a n b n } { a n b n c n } tunnistettavat A TM HALT TM kaikki kielet A TM HALT TM TOTAL TM TOTAL TM EQ TM EQ TM 277 5. Laskennan vaativuus
Lisätiedot7. Aikavaativuus. Ohjelmistotekniikan laitos OHJ-2300 Johdatus tietojenkäsittelyteoriaan, syksy
212 7. Aikavaativuus Edellä tarkasteltiin ongelmien ratkeavuutta kiinnittämättä huomiota ongelman ratkaisun vaatimaan aikaan Nyt siirrytään tarkastelemaan ratkeavien ongelmien aikavaativuutta Periaatteessa
LisätiedotRekursiiviset palautukset [HMU 9.3.1]
Rekursiiviset palautukset [HMU 9.3.1] Yleisesti sanomme, että ongelma P voidaan palauttaa ongelmaan Q, jos mistä tahansa ongelmalle Q annetusta ratkaisualgoritmista voidaan jotenkin muodostaa ongelmalle
LisätiedotLause (Cook-Levin) Kieli SAT = { on toteutuva lausekalkyylin kaava } on NP-täydellinen.
261 Lause (Cook-Levin) Kieli SAT = { on toteutuva lausekalkyylin kaava } on NP-täydellinen. Pitää osoittaa siis, että A mp SAT mielivaltaisella A NP Ainoa, mitä A:sta tiedetään on, että sillä on polynomisessa
LisätiedotTodistus: Aiemmin esitetyn mukaan jos A ja A ovat rekursiivisesti lueteltavia, niin A on rekursiivinen.
Lause: Tyhjyysongelma ei ole osittain ratkeava; ts. kieli ei ole rekursiivisesti lueteltava. L e = { w { 0, 1 } L(M w ) = } Todistus: Aiemmin esitetyn mukaan jos A ja A ovat rekursiivisesti lueteltavia,
LisätiedotICS-C2000 Tietojenkäsittelyteoria Kevät 2016
ICS-C2000 Tietojenkäsittelyteoria Kevät 206 Kierros 0, 2. 24. maaliskuuta Huom! Perjantaina 25. maaliskuuta ei ole laskareita (pitkäperjantai), käykää vapaasti valitsemassanne ryhmässä aiemmin viikolla.
Lisätiedot= k 0 NTIME(n k + k) Siis polynomisessa ajassa epädeterministisellä Turingin koneella tunnistettavien kielten joukko
238 7.2 Luokka NP Luokka NP on: NP = { NTIME(t) t on polynomi } = k 0 NTIME(n k + k) Siis polynomisessa ajassa epädeterministisellä Turingin koneella tunnistettavien kielten joukko P NP Luokan NP ongelmista
Lisätiedoton rekursiivisesti numeroituva, mutta ei rekursiivinen.
6.5 Turingin koneiden pysähtymisongelma Lause 6.9 Kieli H = { M pysähtyy syötteellä w} on rekursiivisesti numeroituva, mutta ei rekursiivinen. Todistus. Todetaan ensin, että kieli H on rekursiivisesti
LisätiedotLisää pysähtymisaiheisia ongelmia
Lisää pysähtymisaiheisia ongelmia Lause: Pysähtymättömyysongelma H missä H = { w111x w validi koodi, M w ei pysähdy syötteellä x } ei ole rekursiivisesti lueteltava. Todistus: Pysähtymisongelman komplementti
LisätiedotAlgoritmit 2. Luento 13 Ti Timo Männikkö
Algoritmit 2 Luento 13 Ti 8.5.2018 Timo Männikkö Luento 13 Laskennallinen vaativuus Päätösongelmat Epädeterministinen algoritmi Vaativuusluokat NP-täydellisyys Kertaus ja tenttivinkit Algoritmit 2 Kevät
LisätiedotÄärellisten automaattien ja säännöllisten kielten ekvivalenssi
Äärellisten automaattien ja säännöllisten kielten ekvivalenssi Osoitamme seuraavan keskeisen tuloksen: Lause 1.8: [Sipser Thm. 1.54] Kieli on säännöllinen, jos ja vain jos jokin säännöllinen lauseke esittää
LisätiedotSatunnaisalgoritmit. Topi Paavilainen. Laskennan teorian opintopiiri HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos
Satunnaisalgoritmit Topi Paavilainen Laskennan teorian opintopiiri HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos Helsinki, 23. helmikuuta 2014 1 Johdanto Satunnaisalgoritmit ovat algoritmeja, joiden
LisätiedotAlgoritmi on periaatteellisella tasolla seuraava:
Algoritmi on periaatteellisella tasolla seuraava: Dijkstra(V, E, l, v 0 ): S := { v 0 } D[v 0 ] := 0 for v V S do D[v] := l(v 0, v) end for while S V do valitse v V S jolle D[v] on minimaalinen S := S
LisätiedotM = (Q, Σ, Γ, δ, q 0, q acc, q rej )
6. LASKETTAVUUSTEORIAA Churchin Turingin teesi: Mielivaltainen (riittävän vahva) laskulaite Turingin kone. Laskettavuusteoria: Tarkastellaan mitä Turingin koneilla voi ja erityisesti mitä ei voi laskea.
LisätiedotAlgoritmit 2. Luento 14 To Timo Männikkö
Algoritmit 2 Luento 14 To 2.5.2019 Timo Männikkö Luento 14 Laskennallinen vaativuus Päätösongelmat Epädeterministinen algoritmi Vaativuusluokat NP-täydelliset ongelmat Kertaus ja tenttivinkit Algoritmit
LisätiedotLaskennan mallit (syksy 2009) Harjoitus 11, ratkaisuja
582206 Laskennan mallit (syksy 2009) Harjoitus 11, ratkaisuja 1. Seuraavissa laskennoissa tilat on numeroitu sarakkeittain ylhäältä alas jättäen kuitenkin hyväksyvä tila välistä. Turingin koneen laskenta
LisätiedotAlgoritmit 1. Luento 1 Ti Timo Männikkö
Algoritmit 1 Luento 1 Ti 10.1.2017 Timo Männikkö Luento 1 Algoritmi Algoritmin toteutus Ongelman ratkaiseminen Algoritmin tehokkuus Algoritmin suoritusaika Algoritmin analysointi Algoritmit 1 Kevät 2017
LisätiedotSAT-ongelman rajoitetut muodot
SAT-ongelman rajoitetut muodot olemme juuri osoittaneet että SAT on NP-täydellinen perusidea on nyt osoittaa joukolle kiinnostavia ongelmia A NP että SAT p m A, jolloin kyseiset A myös ovat NP-täydellisiä
Lisätiedotδ : (Q {q acc, q rej }) (Γ k {, }) Q (Γ k {, }) {L, R}.
42 Turingin koneiden laajennuksia 1 oniuraiset koneet Sallitaan, että Turingin koneen nauha koostuu k:sta rinnakkaisesta urasta, jotka kaikki kone lukee ja kirjoittaa yhdessä laskenta-askelessa: Koneen
LisätiedotLaskennan rajoja. TIEA241 Automaatit ja kieliopit, syksy Antti-Juhani Kaijanaho. 10. joulukuuta 2015 TIETOTEKNIIKAN LAITOS.
TIEA241 Automaatit ja kieliopit, syksy 2015 Antti-Juhani Kaijanaho TIETOTEKNIIKAN LAITOS 10. joulukuuta 2015 Sisällys TM vs yleiset kieliopit Lause Jokaiselle kielelle A seuraavat ovat yhtäpitävät: 1.
LisätiedotAlgoritmit 1. Luento 2 Ke Timo Männikkö
Algoritmit 1 Luento 2 Ke 11.1.2017 Timo Männikkö Luento 2 Algoritmin esitys Algoritmien analysointi Suoritusaika Asymptoottinen kertaluokka Peruskertaluokkia NP-täydelliset ongelmat Algoritmit 1 Kevät
LisätiedotInduktiotodistus: Tapaus n = 0 selvä; ol. väite pätee kun n < m.
Väite: T (n) (a + b)n 2 + a. Induktiotodistus: Tapaus n = 0 selvä; ol. väite pätee kun n < m. Huomaa että funktion x x 2 + (m 1 x) 2 kuvaaja on ylöspäin aukeava paraabeli, joten funktio saavuttaa suurimman
LisätiedotLaskennan mallit (syksy 2008) 2. kurssikoe , ratkaisuja
582206 Laskennan mallit (syksy 2008) 2. kurssikoe 11.12., ratkaisuja Tehtävän 1 tarkasti Harri Forsgren, tehtävän 2 Joel Kaasinen ja tehtävän 3 Jyrki Kivinen. Palautetilaisuuden 19.12. jälkeen arvosteluun
LisätiedotLaskennan teoria (kevät 2006) Harjoitus 3, ratkaisuja
581336 Laskennan teoria (kevät 2006) Harjoitus 3, ratkaisuja 1. S! axc X! axc X! by c Y! by c Y! " 2. (a) Tehtävänä on konstruoida rajoittamaton kielioppi, joka tuottaa kielen f0 n 1 n jn 1g. Vaihe1: alkutilanteen
Lisätiedot1. Universaaleja laskennan malleja
1. Universaaleja laskennan malleja Esimerkkinä universaalista laskennan mallista tarkastellaan Turingin konetta muunnelmineen. Lyhyesti esitellään myös muita malleja. Tämän luvun jälkeen opiskelija tuntee
LisätiedotLaskennan mallit (syksy 2010) Harjoitus 4, ratkaisuja
582206 Laskennan mallit (syksy 2010) Harjoitus 4, ratkaisuja 1. Esitä tilakaaviona NFA N = (Q, Σ, δ, q 0, F ), missä Q = { q 0, q 1, q 2, q 3, q 4, q 5, q 6, q 7 }, Σ = { a, b, c }, F = { q 4 } ja δ on
LisätiedotTIEA241 Automaatit ja kieliopit, kevät 2011 (IV) Antti-Juhani Kaijanaho. 31. maaliskuuta 2011
TIEA241 Automaatit ja kieliopit, kevät 2011 (IV) Antti-Juhani Kaijanaho TIETOTEKNIIKAN LAITOS 31. maaliskuuta 2011 Sisällys Sisällys Chomskyn hierarkia kieli säännöllinen kontekstiton kontekstinen rekursiivisesti
LisätiedotPysähtymisongelman ratkeavuus [Sipser luku 4.2]
Pysähtymisongelman ratkeavuus [Sipser luku 4.2] Osoitamme nyt vihdoin, että jotkin Turing-tunnistettavat kielet ovat ratkeamattomia ja jotkin kielet eivät ole edes Turing-tunnistettavia. Lisäksi toteamme,
Lisätiedot6. Approksimointialgoritmit
6. Approksimointialgoritmit Tässä luvussa käsitellään lyhyesti approksimointiin liittyvät peruskäsitteet ja joitain keskeisiä approksimoituvuustuloksia. Tavoitteena on, että opiskelija näkee approksimointialgoritmien
Lisätiedot5.3 Ratkeavia ongelmia
153 5.3 Ratkeavia ongelmia Deterministisen äärellisten automaattien (DFA) hyväksymisongelma: hyväksyykö annettu automaatti B merkkijonon w? Ongelmaa vastaava formaali kieli on A DFA = { B, w B on DFA,
LisätiedotKielenä ilmaisten Hilbertin kymmenes ongelma on D = { p p on polynomi, jolla on kokonaislukujuuri }
135 4.3 Algoritmeista Churchin ja Turingin formuloinnit laskennalle syntyivät Hilbertin vuonna 1900 esittämän kymmenennen ongelman seurauksena Oleellisesti Hilbert pyysi algoritmia polynomin kokonaislukujuuren
Lisätiedot6.1 Rekursiiviset palautukset
6.1 Rekursiiviset palautukset Olk. = (Q, Σ, Γ, δ, q 0, q acc, q rej ) mv. standardimallinen Turingin kone ääritellään koneen laskema osittaisfunktio f : Σ Γ seur. u, jos q 0 w u q av, f (w) = q { q acc,
LisätiedotTarkastelemme ensin konkreettista esimerkkiä ja johdamme sitten yleisen säännön, joilla voidaan tietyissä tapauksissa todeta kielen ei-säännöllisyys.
Ei-säännöllisiä kieliä [Sipser luku 1.4] Osoitamme, että joitain kieliä ei voi tunnistaa äärellisellä automaatilla. Tulos ei sinänsä ole erityisen yllättävä, koska äärellinen automaatti on äärimmäisen
LisätiedotLaskennan rajoja. Sisällys. Meta. Palataan torstaihin. Ratkeavuus. Meta. Universaalikoneet. Palataan torstaihin. Ratkeavuus.
TIEA241 Automaatit ja kieliopit, syksy 2016 Antti-Juhani Kaijanaho TIETOTEKNIIKAN LAITOS 17. lokakuuta 2016 Sisällys Harjoitustehtävätilastoa Tilanne 17.10.2016 klo 15:07 passed waiting redo submitters
LisätiedotHahmon etsiminen syotteesta (johdatteleva esimerkki)
Hahmon etsiminen syotteesta (johdatteleva esimerkki) Unix-komennolla grep hahmo [ tiedosto ] voidaan etsia hahmon esiintymia tiedostosta (tai syotevirrasta): $ grep Kisaveikot SM-tulokset.txt $ ps aux
Lisätiedot1. Universaaleja laskennan malleja
1. Universaaleja laskennan malleja Laskenta datan käsittely annettuja sääntöjä täsmällisesti seuraamalla kahden kokonaisluvun kertolasku tietokoneella, tai kynällä ja paperilla: selvästi laskentaa entä
LisätiedotLaskennan vaativuus ja NP-täydelliset ongelmat
Laskennan vaativuus ja NP-täydelliset ongelmat TRAK-vierailuluento 13.4.2010 Petteri Kaski Tietojenkäsittelytieteen laitos Tietojenkäsittelytiede Tietojenkäsittelytiede tutkii 1. mitä tehtäviä voidaan
LisätiedotAlgoritmit 2. Luento 14 Ke Timo Männikkö
Algoritmit 2 Luento 14 Ke 3.5.2017 Timo Männikkö Luento 14 Ositus ja rekursio Rekursion toteutus Kertaus ja tenttivinkit Algoritmit 2 Kevät 2017 Luento 14 Ke 3.5.2017 2/30 Ositus Tehtävän esiintymä ositetaan
LisätiedotRajoittamattomat kieliopit (Unrestricted Grammars)
Rajoittamattomat kieliopit (Unrestricted Grammars) Laura Pesola Laskennanteorian opintopiiri 13.2.2013 Formaalit kieliopit Sisältävät aina Säännöt (esim. A -> B C abc) Muuttujat (A, B, C, S) Aloitussymboli
Lisätiedot10. Satunnaisalgoritmit
316 10. Satunnaisalgoritmit Probabilistic algorithms, randomized algorithms Toinen tapa liiallisen laskennallisen vaativuuden kanssa toimeen tulemiseksi ovat satunnaisalgoritmit Jotkin ongelmat, joissa
LisätiedotChomskyn hierarkia ja yhteysherkät kieliopit
Chomskyn hierarkia ja yhteysherkät kieliopit Laskennan teorian opintopiiri Tuomas Hakoniemi 21. helmikuuta 2014 Käsittelen tässä laskennan teorian opintopiirin harjoitustyössäni muodollisten kielioppien
LisätiedotYhteydettömän kieliopin jäsennysongelma
Yhteydettömän kieliopin jäsennysongelma Yhteydettömän kieliopin jäsennysongelmalla tarkoitetaan laskentaongelmaa Annettu: yhteydetön kielioppi G, merkkijono w Kysymys: päteekö w L(G). Ongelma voidaan periaatteessa
LisätiedotLaskennan rajoja. TIEA241 Automaatit ja kieliopit, kevät Antti-Juhani Kaijanaho. 6. maaliskuuta 2012 TIETOTEKNIIKAN LAITOS.
TIEA241 Automaatit ja kieliopit, kevät 2012 Antti-Juhani Kaijanaho TIETOTEKNIIKAN LAITOS 6. maaliskuuta 2012 Sisällys Sisällys Päätösongelmat Ongelma on päätösongelma (engl. decision problem), jos se on
LisätiedotLaskennan rajoja. TIEA241 Automaatit ja kieliopit, kesä Antti-Juhani Kaijanaho. 20. kesäkuuta 2013 TIETOTEKNIIKAN LAITOS.
TIEA241 Automaatit ja kieliopit, kesä 2013 Antti-Juhani Kaijanaho TIETOTEKNIIKAN LAITOS 20. kesäkuuta 2013 Sisällys Päätösongelmat Ongelma on päätösongelma (engl. decision problem), jos se on muotoa Onko
Lisätiedot9.5. Turingin kone. Turingin koneen ohjeet. Turingin kone on järjestetty seitsikko
9.5. Turingin kone Turingin kone on järjestetty seitsikko TM = (S, I, Γ, O, B, s 0, H), missä S on tilojen joukko, I on syöttöaakkosto, Γ on nauha-aakkosto, I Γ, O on äärellinen ohjeiden joukko, O S Γ
LisätiedotTIEA241 Automaatit ja kieliopit, syksy Antti-Juhani Kaijanaho. 19. syyskuuta 2016
TIEA241 Automaatit ja kieliopit, syksy 2016 Antti-Juhani Kaijanaho TIETOTEKNIIKAN LAITOS 19. syyskuuta 2016 Sisällys Neuvoja opintoihin tee joka päivä ainakin vähän uskalla mennä epämukavuusalueelle en
LisätiedotTäydentäviä muistiinpanoja laskennan rajoista
Täydentäviä muistiinpanoja laskennan rajoista Antti-Juhani Kaijanaho 10. joulukuuta 2015 1 Diagonaalikieli Diagonaalikieli on D = { k {0, 1} k L(M k ) }. Lause 1. Päätösongelma Onko k {0, 1} sellaisen
LisätiedotA ja B pelaavat sarjan pelejä. Sarjan voittaja on se, joka ensin voittaa n peliä.
Esimerkki otteluvoiton todennäköisyys A ja B pelaavat sarjan pelejä. Sarjan voittaja on se, joka ensin voittaa n peliä. Yksittäisessä pelissä A voittaa todennäköisyydellä p ja B todennäköisyydellä q =
LisätiedotRekursiolause. Laskennan teorian opintopiiri. Sebastian Björkqvist. 23. helmikuuta Tiivistelmä
Rekursiolause Laskennan teorian opintopiiri Sebastian Björkqvist 23. helmikuuta 2014 Tiivistelmä Työssä käydään läpi itsereplikoituvien ohjelmien toimintaa sekä esitetään ja todistetaan rekursiolause,
LisätiedotSäännöllisen kielen tunnistavat Turingin koneet
186 Säännöllisen kielen tunnistavat Turingin koneet Myös säännöllisen kielen hyväksyvien Turingin koneiden tunnistaminen voidaan osoittaa ratkeamattomaksi palauttamalla universaalikielen tunnistaminen
Lisätiedotvaihtoehtoja TIEA241 Automaatit ja kieliopit, syksy 2016 Antti-Juhani Kaijanaho 13. lokakuuta 2016 TIETOTEKNIIKAN LAITOS
TIEA241 Automaatit ja kieliopit, syksy 2016 Antti-Juhani Kaijanaho TIETOTEKNIIKAN LAITOS 13. lokakuuta 2016 Sisällys Harjoitustehtävätilastoa Tilanne 13.10.2016 klo 9:42 passed waiting redo submitters
Lisätiedot4. Tehtävässä halutaan todistaa seuraava ongelma ratkeamattomaksi:
T-79.148 Kevät 2004 Tietojenkäsittelyteorian perusteet Harjoitus 12 Demonstraatiotehtävien ratkaisut 4. Tehtävässä halutaan todistaa seuraava ongelma ratkeamattomaksi: Hyväksyykö annettu Turingin kone
LisätiedotTKT20005 Laskennan mallit (syksy 2018) Kurssikoe, malliratkaisut
TKT20005 Laskennan mallit (syksy 2018) Kurssikoe, malliratkaisut Pisteytys on ilmoitettu välikoevaihtoehdon mukaan (joko tehtävät 1, 2 ja 3 välikokeen 1 uusintana tai tehtävät 4, 5 ja 6 välikokeen 2 uusintana).
LisätiedotSäännölliset kielet. Sisällys. Säännölliset kielet. Säännölliset operaattorit. Säännölliset kielet
TIEA241 Automaatit ja kieliopit, kesä 2013 Antti-Juhani Kaijanaho TIETOTEKNIIKAN LAITOS 24. toukokuuta 2013 Sisällys Formaalit kielet On tapana sanoa, että merkkijonojen joukko on (formaali) kieli. Hieman
Lisätiedot2. Laskettavuusteoriaa
2. Laskettavuusteoriaa Käymme läpi ratkeamattomuuteen liittyviä ja perustuloksia ja -tekniikoita [HMU luku 9]. Tämän luvun jälkeen opiskelija tuntee joukon keskeisiä ratkeamattomuustuloksia osaa esittää
Lisätiedot7.4 Sormenjälkitekniikka
7.4 Sormenjälkitekniikka Tarkastellaan ensimmäisenä esimerkkinä pitkien merkkijonojen vertailua. Ongelma: Ajatellaan, että kaksi n-bittistä (n 1) tiedostoa x ja y sijaitsee eri tietokoneilla. Halutaan
LisätiedotSatunnaisalgoritmit. Antti Tanhuanpää. 25. maaliskuuta 2013
Satunnaisalgoritmit Antti Tanhuanpää 25. maaliskuuta 2013 Johdanto Satunnaisalgoritmit ovat algoritmeja, jotka hyödyntävät satunnaisuutta osana laskentaansa. Ensimmäisen tällaisen algoritmin kehitti Michael
LisätiedotKonsensusongelma hajautetuissa järjestelmissä. Niko Välimäki Hajautetut algoritmit -seminaari
Konsensusongelma hajautetuissa järjestelmissä Niko Välimäki 30.11.2007 Hajautetut algoritmit -seminaari Konsensusongelma Päätöksen muodostaminen hajautetussa järjestelmässä Prosessien välinen viestintä
LisätiedotPolynomiset palautukset ja NP-täydellisyys
Polynomiset palautukset ja NP-täydellisyys [HMU 10.1.5, 10.1.6] Polynomisen palautuksen idea on sama kuin rekursiivisen palautuksen, paitsi että liikutaan polynomisen aikavaativuuden maailmassa. Funktio
Lisätiedot1.4 Funktioiden kertaluokat
1.4 Funktioiden kertaluokat 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 g, merk. f = Θ(g), jos joillain a, b > 0, m N pätee
LisätiedotRajoittamattomat kieliopit
Rajoittamattomat kieliopit Ohjelmoinnin ja laskennan perusmalleista muistetaan, että kieli voidaan kuvata (esim.) kieliopilla joka tuottaa sen, tai automaatilla joka tunnistaa sen. säännölliset lausekkeet
LisätiedotAlgoritmin määritelmä [Sipser luku 3.3]
Algoritmin määritelmä [Sipser luku 3.3] Mitä algoritmilla yleensä tarkoitetaan periaatteessa: yksiselitteisesti kuvattu jono (tietojenkäsittely)operaatioita, jotka voidaan toteuttaa mekaanisesti käytännössä:
Lisätiedot2. Laskettavuusteoriaa
2. Laskettavuusteoriaa Kaymme lapi ratkeamattomuuteen liittyvia ja perustuloksia ja -tekniikoita [HMU luku 9]. Taman luvun jalkeen opiskelija tuntee joukon keskeisia ratkeamattomuustuloksia osaa esittaa
LisätiedotAlgoritmit 1. Luento 13 Ti 23.2.2016. Timo Männikkö
Algoritmit 1 Luento 13 Ti 23.2.2016 Timo Männikkö Luento 13 Suunnittelumenetelmät Taulukointi Kapsäkkiongelma Ahne menetelmä Verkon lyhimmät polut Dijkstran menetelmä Verkon lyhin virittävä puu Kruskalin
LisätiedotTestaa: Vertaa pinon merkkijono syötteeseen merkki kerrallaan. Jos löytyy ero, hylkää. Jos pino tyhjenee samaan aikaan, kun syöte loppuu, niin
Yhteydettömien kielioppien ja pinoautomaattien yhteys [Sipser s. 117 124] Todistamme, että yhteydettömien kielioppien tuottamat kielet ovat tasan samat kuin ne, jotka voidaan tunnistaa pinoautomaatilla.
LisätiedotLaskennan teoria
581336-0 Laskennan teoria luennot syyslukukaudella 2003 Jyrki Kivinen tietojenkäsittelytieteen laudatur-kurssi, 3 ov pakollinen tietojenkäsittelytieteen suuntautumisvaihtoehdossa esitiedot käytännössä
Lisätiedot58131 Tietorakenteet ja algoritmit (kevät 2014) Uusinta- ja erilliskoe, , vastauksia
58131 Tietorakenteet ja algoritmit (kevät 2014) Uusinta- ja erilliskoe, 10..2014, vastauksia 1. [9 pistettä] (a) Todistetaan 2n 2 + n + 5 = O(n 2 ): Kun n 1 on 2n 2 + n + 5 2n 2 + n 2 +5n 2 = 8n 2. Eli
LisätiedotAutomaatit. Muodolliset kielet
Automaatit Automaatit ovat teoreettisia koneita, jotka käsittelevät muodollisia sanoja. Automaatti lukee muodollisen sanan kirjain kerrallaan, vasemmalta oikealle, ja joko hyväksyy tai hylkää sanan. Täten
Lisätiedot58131 Tietorakenteet ja algoritmit (kevät 2016) Ensimmäinen välikoe, malliratkaisut
58131 Tietorakenteet ja algoritmit (kevät 2016) Ensimmäinen välikoe, malliratkaisut 1. Palautetaan vielä mieleen O-notaation määritelmä. Olkoon f ja g funktioita luonnollisilta luvuilta positiivisille
LisätiedotLaskennan teoria
581336-0 Laskennan teoria luennot syyslukukaudella 2004 Jyrki Kivinen tietojenkäsittelytieteen laudatur-kurssi, 3 ov pakollinen tietojenkäsittelytieteen suuntautumisvaihtoehdossa, opettajan suuntautumisvaihtoehdossa
LisätiedotTäydentäviä muistiinpanoja Turingin koneiden vaihtoehdoista
Täydentäviä muistiinpanoja Turingin koneiden vaihtoehdoista Antti-Juhani Kaijanaho 15. maaliskuuta 2012 1 Apumääritelmä Määritelmä 1. Olkoon Σ merkistö, jolla on olemassa täydellinen järjestys ( ) Σ 2.
LisätiedotKertausta 1. kurssikokeeseen
Kertausta. kurssikokeeseen. kurssikoe on to 22.0. klo 9 2 salissa A (tai CK2). Koealueena johdanto ja säännölliset kielet luentokalvot 3 ja nämä kertauskalvot harjoitukset 6 Sipser, luvut 0 ja Edellisvuosien.
LisätiedotAVL-puut. eräs tapa tasapainottaa binäärihakupuu siten, että korkeus on O(log n) kun puussa on n avainta
AVL-puut eräs tapa tasapainottaa binäärihakupuu siten, että korkeus on O(log n) kun puussa on n avainta pohjana jo esitetyt binäärihakupuiden operaatiot tasapainotus vie pahimmillaan lisäajan lisäys- ja
Lisätiedot(0 1) 010(0 1) Koska kieli on yksinkertainen, muodostetaan sen tunnistava epädeterministinen q 0 q 1 q 2 q3
T-79.48 Tietojenkäsittelyteorian perusteet Tentti 25..23 mallivastaukset. Tehtävä: Kuvaa seuraavat kielet sekä säännölisten lausekkeiden että determinististen äärellisten automaattien avulla: (a) L = {w
LisätiedotTIEA241 Automaatit ja kieliopit, kesä Antti-Juhani Kaijanaho. 29. toukokuuta 2013
TIEA241 Automaatit ja kieliopit, kesä 2013 Antti-Juhani Kaijanaho TIETOTEKNIIKAN LAITOS 29. toukokuuta 2013 Sisällys Chomskyn hierarkia (ja muutakin) kieli LL(k) LR(1) kontekstiton kontekstinen rekursiivisesti
LisätiedotYllä osoitettiin, että säännöllisten kielten joukko on suljettu yhdisteen
Yllä osoitettiin, että säännöllisten kielten joukko on suljettu yhdisteen suhteen, eli jos kielet A ja B ovat säännöllisiä, niin myös A B on. Tätä voi havainnollistaa seuraavalla kuvalla: P(Σ ) Säännölliset
LisätiedotTietorakenteet ja algoritmit - syksy 2015 1
Tietorakenteet ja algoritmit - syksy 2015 1 Tietorakenteet ja algoritmit - syksy 2015 2 Tietorakenteet ja algoritmit Johdanto Ari Korhonen Tietorakenteet ja algoritmit - syksy 2015 1. JOHDANTO 1.1 Määritelmiä
LisätiedotSe mistä tilasta aloitetaan, merkitään tyhjästä tulevalla nuolella. Yllä olevassa esimerkissä aloitustila on A.
Tehtävä. Tämä tehtävä on aineistotehtävä, jossa esitetään ensin tehtävän teoria. Sen jälkeen esitetään neljä kysymystä, joissa tätä teoriaa pitää soveltaa. Mitään aikaisempaa tehtävän aihepiirin tuntemusta
LisätiedotValitaan alkio x 1 A B ja merkitään A 1 = A { x 1 }. Perinnöllisyyden nojalla A 1 I.
Vaihto-ominaisuudella on seuraava intuition kannalta keskeinen seuraus: Olkoot A I ja B I samankokoisia riippumattomia joukkoja: A = B = m jollain m > 0. Olkoon vielä n = m A B, jolloin A B = B A = n.
LisätiedotVasen johto S AB ab ab esittää jäsennyspuun kasvattamista vasemmalta alkaen:
Vasen johto S AB ab ab esittää jäsennyspuun kasvattamista vasemmalta alkaen: S A S B Samaan jäsennyspuuhun päästään myös johdolla S AB Ab ab: S A S B Yhteen jäsennyspuuhun liittyy aina tasan yksi vasen
LisätiedotP? = NP Kysymys ratkaisun keksimisestä ja sen tarkistamisesta
P? = NP Kysymys ratkaisun keksimisestä ja sen tarkistamisesta Juha Nurmonen Matematiikan laitos Helsingin yliopisto Ajatellaanpa esimerkiksi kauppamatkustajan jokapäiväistä ongelmaa: Kauppamatkustajan
Lisätiedotf(n) = Ω(g(n)) jos ja vain jos g(n) = O(f(n))
Määritelmä: on O(g(n)), jos on olemassa vakioarvot n 0 > 0 ja c > 0 siten, että c g(n) kun n > n 0 O eli iso-o tai ordo ilmaisee asymptoottisen ylärajan resurssivaatimusten kasvun suuruusluokalle Samankaltaisia
LisätiedotTIEA241 Automaatit ja kieliopit, syksy Antti-Juhani Kaijanaho. 12. marraskuuta 2015
TIEA241 Automaatit ja kieliopit, syksy 2015 Antti-Juhani Kaijanaho TIETOTEKNIIKAN LAITOS 12. marraskuuta 2015 Sisällys Muistathan A B -konstruktion 0 k 1 i 2 s 3 s 4 a 5 0 k 1 o 2 i 3 r 4 a 5 00 k 11 i
LisätiedotLaskennanteoria: Mitä voimmelaskea tietokoneella ja kuinkatehokkaasti?
Laskennanteoria: Mitä voimmelaskea tietokoneella ja kuinkatehokkaasti? Wilhelmiina Hämäläinen Johdatus tietojenkäsittelytieteeseen 1.-2.12. 2003 Tietojenkäsittelytieteen laitos Joensuun yliopisto 1 Johdanto
LisätiedotTietorakenteet ja algoritmit Johdanto Lauri Malmi / Ari Korhonen
Tietorakenteet ja algoritmit Johdanto Lauri Malmi / Ari 1 1. JOHDANTO 1.1 Määritelmiä 1.2 Tietorakenteen ja algoritmin valinta 1.3 Algoritmit ja tiedon määrä 1.4 Tietorakenteet ja toiminnot 1.5 Esimerkki:
LisätiedotMuunnelmia Turingin koneista sekä muita vaihtoehtoisia malleja
sekä muita TIEA241 Automaatit ja kieliopit, kesä 2013 Antti-Juhani Kaijanaho TIETOTEKNIIKAN LAITOS 19. kesäkuuta 2013 Sisällys Chomskyn hierarkia (ja vähän muutakin) kieli säännöllinen LL(k) LR(1) kontekstiton
LisätiedotTietotekniikan valintakoe
Jyväskylän yliopisto Tietotekniikan laitos Tietotekniikan valintakoe 2..22 Vastaa kahteen seuraavista kolmesta tehtävästä. Kukin tehtävä arvostellaan kokonaislukuasteikolla - 25. Jos vastaat useampaan
LisätiedotTIEA241 Automaatit ja kieliopit, syksy Antti-Juhani Kaijanaho. 16. marraskuuta 2015
ja ja TIEA241 Automaatit ja kieliopit, syksy 2015 Antti-Juhani Kaijanaho NFA:ksi TIETOTEKNIIKAN LAITOS 16. marraskuuta 2015 Sisällys ja NFA:ksi NFA:ksi Kohti säännöllisiä lausekkeita ja Nämä tiedetään:
LisätiedotAlgoritmit 2. Luento 1 Ti Timo Männikkö
Algoritmit 2 Luento 1 Ti 14.3.2017 Timo Männikkö Luento 1 Algoritmi Algoritmin valinta Algoritmin analysointi Algoritmin suoritusaika Peruskertaluokkia Kertaluokkamerkinnät Kertaluokkien ominaisuuksia
LisätiedotJos sekaannuksen vaaraa ei ole, samastamme säännöllisen lausekkeen ja sen esittämän kielen (eli kirjoitamme R vaikka tarkoitammekin L(R)).
Jos sekaannuksen vaaraa ei ole, samastamme säännöllisen lausekkeen ja sen esittämän kielen (eli kirjoitamme R vaikka tarkoitammekin L(R)). Esimerkkejä: Σ koostuu kaikista aakkoston Σ merkkijonoista ja
LisätiedotOnko algoritmiselle ongelmalle löydetty ratkaisualgoritmi riittävän hyvä?
Ongelman vaativuuden rajat Onko algoritmiselle ongelmalle löydetty ratkaisualgoritmi riittävän hyvä? Olisiko mahdollista löytää asymptoottisesti tehokkaampi ratkaisu, vai onko algoritmi optimaalinen? Kysymyksiin
Lisätiedot(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ä.
Loppu seuraa suoralla laskulla: n n Tave TR = p j (1 + b (i, j)) j=1 = 1 + 1 i
Lisätiedot