JUSSA-PEKKA VIRTANEN DNA-LASKENTA

Koko: px
Aloita esitys sivulta:

Download "JUSSA-PEKKA VIRTANEN DNA-LASKENTA"

Transkriptio

1 JUSSA-PEKKA VIRTANEN DNA-LASKENTA Kandidaatintyö Tarkastaja: Hanna Silén Ohjaajat: Hanna Silén Olli Yli-Harja Työ jätetty tarkastettavaksi 15. joulukuuta 2013

2 I TIIVISTELMÄ TAMPEREEN TEKNILLINEN YLIOPISTO Biotekniikan koulutusohjelma VIRTANEN, JUSSA-PEKKA: DNA-laskenta Kandidaatintyö, 24 sivua Joulukuu 2013 Pääaine: Laskennallinen systeemibiologia Tarkastaja: Hanna Silén Avainsanat: DNA-laskenta, molekulaarinen laskenta, DNA-algoritmit, laskettavuuden teoria, tilakone, Turingin kone DNA-laskenta on perinteisen laskennan rinnalle noussut nuori ala, joka pohjaa DNA-molekyylien ominaisuuksiin: pieneen kokoon, energiatehokkuuteen sekä molekyylien määrästä johtuvaan laskennan massiiviseen rinnakkaisuuteen. Tässä kirjallisuusselvityksessä avataan alaan liittyvää tietojenkäsittelyn ja laskennan teoriaa sekä esitellään ja arvioidaan DNA-laskennan malleja ja sovelluksia. Selvityksen perusteella todetaan, että tällä hetkellä vaikeiden laskennallisten ongelmien ratkaiseminen DNA:lla on tehotonta laboratoriotyövaiheiden virhealttiuden ja työläyden sekä biokemiallisten reaktioiden ennalta-arvaamattomuuden takia. DNA:lla huomataan kuitenkin olevan lupaavia sovelluskohteita, kuten solunsisäinen automaatti ja DNA-massamuisti.

3 II ALKUSANAT Tämä opinnäytetyö kirjoitettiin osana Tampereen teknillisen yliopiston signaalinkäsittelyn laitoksen kandidaatintyöseminaaria syksyllä Kandidaatintyön kirjoittaminen omasta aiheesta piti mielenkiintoa yllä silloinkin, kun ajatus ei kulkenut eikä tekstiä tuntunut millään syntyvän. Haluan esittää kiitokseni ohjaajilleni, Hanna Silénille sekä professori Olli Yli-Harjalle arvokkaista ja hyödyllisistä kommenteista, jotka auttoivat ohjaamaan työtä oikeaan suuntaan. Haluan myös kiittää muita seminaarin osallistujia mielenkiintoisista esityksistä sekä ajatuksienvaihdosta seminaarin kuluessa. Tampereella, 15. joulukuuta 2013 Jussa-Pekka Virtanen

4 III SISÄLLYS 1 Johdanto Biologinen tausta DNA:n rakenne Molekyylibiologiset operaatiot Laboratoriomenetelmät Oligonukleotidisynteesi Polymeraasiketjureaktio (PCR) Elektroforeesi Sekvensointi Tietojenkäsittelyteoria Tilakone Turingin kone Abstrakti RAM-kone Laskennan vaativuus Aikakompleksisuus Tilakompleksisuus Massiivinen rinnakkaisuus DNA-laskenta Adleman: Hamiltonin polku Laskennan malleja DNA-automaatti biologisessa ympäristössä DNA tallennusmediana Yhteenveto Lähteet... 24

5 IV TERMIT JA NIIDEN MÄÄRITELMÄT DNA Sekvenssi Oligonukleotidi Hybridisaatio Denaturaatio Ligaatio Restriktio Kohesiivinen restriktio PCR Geelielektroforeesi Algoritmi Aikakompleksisuus Tilakompleksisuus O(g(n)) Polynomiaalinen aika Rinnakkaisuus Graafi Tritti Deoksiribonukleiinihappo on organismin geneettisen materiaalin sisältävä biopolymeeri, joka koostuu neljästä erilaisesta nukleotidista. DNA-molekyylin emäsjärjestys. Korkeintaan muutamia kymmeniä nukleotideja sisältävä sekvenssi. DNA-juosteen yhdistyminen vastinjuosteensa kanssa kaksoisjuosteeksi. DNA-kaksoisjuosteen purkautuminen esim. lämmön vaikutuksesta. DNA-molekyylien entsymaattinen liittäminen yhdeksi yhtenäiseksi ketjuksi. DNA-juosteen entsymaattinen katkaiseminen. Juosteet katkaistaan siten, että niiden päät ovat eripituiset. Menetelmä DNA:n monistamiseen eksponentiaalisesti. Menetelmä, joka erottelee DNA-ketjut niiden pituuden perusteella. Tehtävän suoritusohje. Algoritmin vaatima suoritusaika mitattuna alkeisoperaatioiden määränä. Algoritmin vaatima muisti. O-notaatio, jolla tarkoitetaan kompleksisuuden asymptoottisen ylärajan olevan syötteen koon n funktio g(n). Aikakompleksisuus on O(n k ), eli jokin syötteen koon n polynomi n k, missä k > 0. Jos k = 1, puhutaan lineaarisesta ajasta ja jos k = 0, puhutaan vakioajasta. Jotta algoritmi olisi tehokas, sen on ratkaistava ongelma polynomiaalisessa ajassa. Useamman operaation suorittaminen yhtä aikaa rinnakkaisten prosessoivien yksiköiden avulla. Järjestetty pari (V, E), missä V on graafin pisteiden ja E niitä yhdistävien viivojen joukko. Voi olla suunnattu tai suuntaamaton. Trinäärinumero, joka voi saada kolme erilaista arvoa.

6 1 1 JOHDANTO Perinteisen laskennan rinnalle on noussut uusia epätavanomaisia menetelmiä, joista yksi on fyysikko Feynmanin jo vuonna 1959 visioima molekulaarinen laskenta [1]. Tässä menetelmässä perinteisen koneen virkaa toimittaisivat biomolekyylit. Idea on suoraan kuin science fictionista, jossa ihminen ja tietokone toimivat symbioosissa, vaikka rajapinta onkin harvoin tarkemmin määritelty. Oikeassa maailmassa deoksiribonukleiinihappoa, DNA:ta, olisi helposti saatavissa valtavia määriä: sitä löytyy kymmenistä biljoonista soluistamme jok ikisesta miljardeja emäspareja ja sen syntetisoiminen on nykyaikana vaivatonta ja edullista. Tieteenalan isäksi tituleerattu Adleman etsi vuoden 1994 artikkelissaan seitsenpisteiselle suunnatulle graafille Hamiltonin polun käyttäen laskentakoneistona DNA:ta [2]. Graafin jokaisessa pisteessä vain kerran käyvän Hamiltonin polun toteaminen graafista on NP-täydellinen ongelma, jolle on olemassa vain epäkäytännöllisiä, eksponentiaalisen ajan vieviä algoritmeja. Valitettavasti dimensioiden kirouksesta ei päästä täysin eroon tälläkään tavalla: 200-pisteisen graafin Hamiltonin polun ongelman ratkaisuun tarvittaisiin DNA:ta yli planeettamme massan verran, mutta jo 20 pistettäkin tuottaa hankaluuksia [3, s. 115]. Tätä pienemmillä pistemäärillä algoritmi on tehokas. Adleman motivoi DNA-laskentaa vertaamalla sitä sen aikaisiin supertietokoneisiin. Hänen arvionsa mukaan hänen kokeessaan tapahtui noin ligaatiota eli kahden DNAmolekyylin yhdistymistä sekunnissa, mutta mahdollisuuksia olisi ollut jopa operaatioon [2]. Vastaavasti supertietokoneet pystyvät liukulukuoperaatioon sekunnissa. Jos laskennassa toistuva ligaatio rinnastetaan perinteiseen liukulukuoperaatioon, DNAlaskennan nopeus on samassa suuruusluokassa supertietokoneiden kanssa [4, s. 229]. Massiivinen rinnakkaisuus on kuitenkin yksi DNA-laskennan kiinnostavimpia piirteitä. Yksi tippa liuosta koeputkessa voi sisältää biljoonia DNA-molekyylejä. Kun koeputkeen lisätään esimerkiksi DNA-juosteita pilkkovaa restriktioentsyymiä, se pilkkoo jokaista molekyyliä yhtä aikaa, rinnakkaisesti [3]. Amos toteaa kuitenkin kirjassaan, että laboratorioassistentti ei voi yhdistää tai jakaa koeputkien sisältöjä massiivisen rinnakkaisesti [3, s. 75]. DNA kunnostautuu myös tallennusmediana: yksi bitti vie molekyylitasolla tilaa yhden kuutionanometrin, kun perinteisellä kiintolevyllä samainen bitti vie kertaisen tilavuuden [4, s. 229]. Goldman et al. arvioi tutkimuksessaan DNA:n olevan kustannustehokas ja pitkäikäinen vaihtoehto tiedon arkistoinnille, kun hakutoimien määrä on vähäinen [5]. Samaan kertaiseen etuun päästään myös energiatehokkuudessa: ligaatio saa tarvittavan energian yhden ATP-molekyylin hydrolyysista, joten yksi joule energiaa riittää noin ligaatioon [4, s. 229]. Tässä kandidaatintyössä arvioidaan DNA:n käytettävyyttä laskennassa niin laskennan kompleksisuuden kuin käytännöllisyyden kannalta, esitellään muutamia laskentamalleja ja vertaillaan DNA-laskentaa ja perinteistä laskentaa. Työn luvut 2 ja 3 ovat katsaus

7 DNA-laskennan biologiseen ja tietojenkäsittelyteoreettiseen taustaan ja luvussa 4 esitellään laskennan malleja ja algoritmeja erityisesti keskitytään Adlemanin käyttämään muistittomaan suodatusalgoritmiin. Luku 5 sisältää DNA-laskennan käyttökelpoisuuden arviointia yhteenvetona. 2

8 3 2 BIOLOGINEN TAUSTA 2.1 DNA:n rakenne DNA on yleensä kaksijuosteisena esiintyvä haarautumaton, ketjumainen molekyyli (ks. kuva 2.1), joka sisältää organismin geneettisen materiaalin. DNA:n selkärangan muodostavat vuorottelevat fosfoesterisidoksin toisiinsa liittyneet fosfaattiryhmät ja pentoosisokeriosat, deoksiriboosit. Sopimuksen mukaan DNA-juoste alkaa siitä päästä, jossa on vapaa sokeriosan 5 -hiilen hydroksyyliryhmä, ja päättyy siihen päähän, josta löytyy vapaa sokeriosan 3 -hiilen hydroksyyliryhmä. Juosteen päitä kutsutaan vastaavasti 5 - ja 3 - pääksi. DNA:n kolmas rakenneosa ovat sokeriosiin liittyneet puriiniemäkset adeniini (A) ja guaniini (G) sekä pyrimidiiniemäkset tymiini (T) ja sytosiini (C) [4, s. 14]. Juoste liittyy vastejuosteeseensa emäksien välille muodostuvien vetysidosten avulla: adeniini ja tymiini sitoutuvat kahdella vetysidoksella ja guaniini ja sytosiini kolmella [3, s. 6]. Emäksien kykyä liittyä vain vastinemäkseensä kutsutaan komplementaarisuudeksi ja juosteen emäsjärjestystä sekvenssiksi. DNA:n rakenne on nähtävissä kuvassa 2.1. Kuva 2.1. DNA:n rakenne. Kuva: Madeleine Price Ball (Public Domain).

9 4 Koska DNA:n emäkset ovat niukkaliukoisia vetysidokset muodostettuaan ja fosfaattiranka hydrofiilinen eli vesihakuinen, DNA-molekyyli kiertyy stabiilimpaan muotoon, kaksoiskierteelle (engl. double helix) [6, s. 173]. 2.2 Molekyylibiologiset operaatiot Laskenta DNA:ta käyttäen perustuu molekyylitason operaatioille, jotka esitellään seuraavaksi tarkemmin. Yhdistymiseksi tai hybridisaatioksi (engl. myös annealing) kutsutaan juosteiden liittymistä komplementaarisiin vastinjuosteisiinsa, mikä tapahtuu spontaanisti biologisissa olosuhteissa. Hybridisaation vastaoperaatio on denaturaatio, kaksoisjuosteen jakaantuminen kahdeksi juosteeksi. Tämä saadaan aikaan laboratoriossa kasvattamalla lämpötilaa. Restriktioksi kutsutaan DNA-molekyylin katkaisua, jonka katalysoi restriktioendonukleaasientsyymi. Entsyymi tunnistaa molekyylistä spesifin, noin 4 8 emäksen pituisen sekvenssin ja leikkaa molekyylin kahtia entsyymistä riippuen joko tietystä tai satunnaisesta kohdasta tunnistetun kohdan läheisyydestä [6, s. 328]. Restriktiota esiintyy sekä tylppäpäisenä että kohesiivisena, jolloin juosteet katkaistaan eri kohdista (kuva 2.2 A). Restriktioentsyymejä on kaupallisesti saatavissa suuri määrä erilaisia ja ne leikkaavat molekyylin eri tavoin. A) B) tylppäpäinen restriktio T T A G C A T C A A T C G T A G kohesiivinen restriktio T T A G C A T C A A T C G T A G T T A G C A T C A A T C G T A G T T A G C A T C A A T C G T A G T T A G C A T C A A T C G T A G Kuva 2.2. A) Tylppäpäinen ja kohesiivinen restriktio. Tunnistettuaan spesifin alueensa entsyymi katkaisee kaksoisjuosteen sille ominaisella tavalla. B) Kahden oligonukleotidin liityttyä vastinjuosteeseensa ne eivät kuitenkaan ole kiinni toisissaan. Ligaasientsyymi korjaa katkon juosteen tukirangassa. Ligaatio on ligaasientsyymin katalysoima restriktion vastinoperaatio, jossa katkos juosteen fosfaattirangassa korjataan (kuva 2.2 B). Ligaasientsyymin käyttö on tarpeellista, sillä fosfaattirangan kovalenttinen sidos ei muodostu spontaanisti, kuten DNA-kaksoisjuoste. Ligaatio on tehokkaampi kohesiivisille päille.

10 5 2.3 Laboratoriomenetelmät Oligonukleotidisynteesi DNA:lla laskeminen vaatii koodaavien DNA-sekvenssien suunnittelemista huolella. On siis pystyttävä syntetisoimaan molekyylejä, joilla on tarkalleen haluttu emäsjärjestys. Laboratoriossa synteesi tehdään yleensä kiinteän kantajan fosforamidiittimenetelmällä, jossa syntetisoitava molekyyli kiinnitetään kovalenttisesti tukipintaan [7]. Menetelmässä käytetään vapaiden nukleotidien sijaan niiden reaktiivisempia ja selektiivisempiä fosforamidiittianalogeja, joiden hydroksyyliryhmät on sidottu suojaryhmillä [7]. Synteesin askeleella suojaryhmät poistetaan kemiallisesti ja fosforamidiittianalogit liittyvät yksitellen syntetisoitavan ketjun jatkoksi Polymeraasiketjureaktio (PCR) Massiivinen rinnakkaisuus DNA-laskennassa saavutetaan monistamalla DNA-molekyyliä eksponentiaalisesti. Tämä onnistuu laboratoriossa käyttämällä menetelmää nimeltä PCR eli polymeraasiketjureaktio (engl. polymerase chain reaction), joka käyttää hyväksi DNA:n replikoitumista eli kahdentumista. Polymeraasiketjureaktio on noin kolmivaiheisesta syklistä koostuva reaktioketju, jossa hyödynnetään lämpötilan vaihtelua sekä kuumissa lähteissä elävän arkkibakteerin DNA-polymeraasientsyymiä. Tutkijan on menetelmää käyttäessään tiedettävä monistettavan DNA:n alku- ja loppusekvenssit, joiden avulla syntetisoidaan reaktiosarjaa ohjaavat alukkeet (engl. primers) [6, s. 348]. PCR-syklin (ks. kuva 2.3) ensimmäinen vaihe on lämpötilan nostaminen niin korkeaksi (92 94 C), että monistettavan molekyylin juosteet irtoavat toisistaan, eli DNA denaturoituu. Kun lämpötilaa toisessa vaiheessa lasketaan C:seen, syntetisoidut alukkeet sitoutuvat toisistaan irronneiden kopioitavan DNA:n juosteiden vastakkaisiin päihin. Kolmannessa vaiheessa lämpötilaa jälleen nostettaessa C:seen DNA-polymeraasi aloittaa toimintansa ja jatkaa juosteiden alukkeet kokonaisiksi juosteiksi käyttäen liuokseen lisättyjä vapaita nukleotideja. Seuraavalla syklillä alukkeet tarttuvat sekä alkuperäiseen että monistettuun molekyyliin ja polymeraasi kopioi kummatkin. Käsittelyä toistettaessa kopioiden määrä kaksinkertaistuu joka syklillä. Prosessi on automatisoitu, eikä yksi sykli kestä kuin 5 minuuttia [6].

11 6 JUOSTEET ERKANEVAT ALUKKEET LIITTYVÄT ALUKETTA JATKETAAN Kuva 2.3. Kolme ensimmäistä PCR-sykliä. Ensimmäisessä vaiheessa juosteet irtaantuvat toisistaan. Toisessa vaiheessa suunnitellut alukkeet kiinnittyvät juosteiden vastakkaisiin päihin. Kolmannessa vaiheessa DNA-polymeraasi jatkaa alukkeet kokonaisiksi vastinjuosteiksi käyttäen vapaita nukleotideja. PCR ei ole virheetön prosessi. Kopioitavan molekyylin juosteet voivat irtaantumisen jälkeen liittyä takaisin yhteen, jolloin monistus ei voi jatkua. Kolme vetysidosta sisältävän G-C-parin irrottaminen vaatii suurempaa lämpötilaa, joten sekvenssin G-C-pitoisuus on huomioitava PCR-syklejä suunnitellessa [3, s. 11]. Alukkeiden sekvenssi voi olla suunniteltu väärin, jolloin ne eivät liity kohdejuosteeseen. Ne voivat liittyä myös väärään kohtaan tai jopa väärään molekyyliin. Kahta erilaista, kohdesekvenssiin lähekkäin sitoutuvaa alukeparia käytetään vuorotellen karsimaan tällaisia ei-toivottuja molekyylejä. Lisäksi käytettävä DNA-polymeraasi voi aiheuttaa mutaation eli yhden tai useamman emäksen vaihtumisen väärään. Tämä virhe kasaantuu monistussyklien aikana, koska PCR monistaa aina mallijuosteen avulla. Mutaatioita voi yrittää välttää käyttämällä DNA-polymeraasia, joka pystyy myös tarkastamaan juosteita ja korjaamaan virheitä Elektroforeesi Suurin osa erotteluvaiheista toteutetaan DNA-laskennassa geelielektroforeesilla, menetelmällä, jolla varautuneet molekyylit, kuten DNA, saadaan eroteltua niiden koon mukaan. Elektroforeesi toteutetaan laboratoriossa huokoiseen agaroosi- tai polyakryyliamidigeeliin kytketyllä sähkökentällä [6, s. 329]. Testattava näyte asetetaan geelialtaan toiseen päähän, jolloin fosfaattirangastaan negatiivisesti varautuneet DNA-molekyylit vaeltavat kohti positiivista elektrodia (ks. kuva 2.4). Vaellusnopeus riippuu DNA-molekyylin pituudesta: mitä useampi negatiivinen varaus (fosfaattiryhmä), sitä nopeampi kulku.

12 7 Näyte Geeli Puskuriliuos Kuva 2.4. Kaaviokuva geelielektroforeesista. Sähkökentän ollessa kytketty molekyylit vaeltavat liikettä vastustavan huokoisen geelin läpi ja asettuvat kokonsa mukaan diskreetteihin vyöhykkeisiin geelissä. Puskuriliuos kuljettaa elektroneja elektrodien välillä sekä pitää koejärjestelyn ph:n tasaisena. Jos DNA halutaan nähdä, se on ennen elektroforeesia leimattava. DNA voidaan värjätä fluoresoivalla etidiumbromidilla, joka saadaan näkyviin ultraviolettivalossa (ks. kuva ). Toinen tapa on leimata fosfaattiranka fosforin radioaktiivisella isotoopilla P [6]. Kuva valmiista geelistä voidaan tällöin ottaa röntgenfilmille, jossa DNA näkyy viivoina. Kuva 2.5. Etidiumbromidilla käsitellyt näytteet rinnakkaisilla linjoillaan UV-valossa geelielektroforeesin jälkeen. Vasemmassa reunassa on kalibrointilinja, jonka vyöhykkeiden edustamat molekyylien pituudet tunnetaan. Positiivinen elektrodi on kuvassa alhaalla, joten alempana olevat vyöhykkeet edustavat pienempiä molekyylejä. Vyöhykkeen intensiteetti on verrannollinen molekyylien konsentraatioon. Kuva: Mnolf (Creative Commons Attribution-Share Alike). Molekyylit, joilla on tietty pituus, voidaan erotella muista leikkaamalla pituutta vastaava vyöhyke elektroforeesilaitteen altaan geeliä esimerkiksi skalpellilla. Skalpellilla leikattu osa voidaan siirtää seuraavaan työvaiheeseen, kunhan geeli ensin pestään pois Sekvensointi Joissain laskentasovelluksissa on saatava tarkasti selvitettyä tutkittavan DNA-molekyylin emäsjärjestys erityisesti käytettäessä DNA:ta tallennusmediana. Emäsjärjestyksen selvitystä kutsutaan sekvensoinniksi ja eräs yleisesti käytetty laboratoriomenetelmä on Sangerin dideoksimenetelmä (kuva 2.6). Dideoksimenetelmässä käytetään DNA-polymeraasia sekä erityisiä dideoksiribonukleotideja ddatp, ddttp, ddctp ja ddgtp. Dideoksiribunukleotidit ovat kuin vastaavat nukleotidit, mutta niissä ei ole polymerisoinnin tarvitsemaa hydroksyyliryhmää [6]. DNA-polymeraasi voi siis liittää dideoksinukleotidin osaksi polymerisoimaansa DNA-

13 8 juostetta, mutta ei voi enää jatkaa sen liittämisen jälkeen. Tutkittava molekyyli monistetaan ja denaturoidaan merkittyjen alukkeiden ollessa läsnä. Näin saadaan DNA-polymeraasille sopivia molekyylejä, joissa on sekä mallijuoste että aluke. Näyte jaetaan neljään koeputkeen. Kun jokaiseen koeputkeen lisätään eri dideoksinukleotidia, saadaan muiden nukleotidien läsnä ollessa eripituisia molekyylejä, joiden päätenukleotidi tiedetään. Molekyylit erotellaan elektroforeesilla, jolloin saadaan selville tutkittavan juosteen sekvenssi T T A G C A T GT 3 5 T T A G 3 3 A A T C G T A C A 5 3 A A T C G T A C A ddatp T T A G C A A T C G 3 T +ddttp T T A G CA T G T T A G C A T G T T +ddctp +ddgtp T T A G C T T A G C A T G + A C 5 Kuva 2.6. Dideoksimenetelmä. 1) Tutkittava molekyyli monistetaan ja denaturoidaan nostamalla lämpötilaa. 2) Lisätään merkittyjä alukkeita PCR-vahvistusta varten. Syntyy alukkeiden ja sekvensoitavan juosteen vastinjuosteiden komplekseja. 3) Näyte jaetaan neljään osaan, joista jokaiseen lisätään erilaista dideoksiribonukleotidia (ddatp, ddttp, ddctp, ddgtp) ja DNA-polymeraasia sekä vapaita nukleotideja (pl. dideoksiribonukleotidia vastaavaa). Dideoksinukleotidi toimii muuten kuin tavallinen nukleotidi, mutta DNApolymeraasi ei voi jatkaa juostetta enää sen lisäämisen jälkeen. 4) Syntyneet juosteet ajetaan geelielektroforeesin läpi jokainen päätenukleotidijoukko omalla linjallaan, jolloin saadaan luettua nukleotidien järjestys. Perusmenetelmän erotuskyky on vain joitain satoja nukleotideja, mutta luettavia nukleotideja voi olla kymmeniä miljoonia [5; 6]. Uudemmissa menetelmissä tutkittava juoste pilkotaan palasiksi ja palaset kiinnitetään kiinteään pintaan [8]. Jokaisesta palasesta monistetaan klusteri ja kaikki klusterit sekvensoidaan massiivisen rinnakkaisesti. Sekvensoinnissa vapaisiin nukleotideihin kiinnitetyt fluoresoivat tunnisteet pystytään havaitsemaan nukleotidi kerrallaan [8]. Merkityn nukleotidin liittyessä ketjun jatkeeksi, sen väriaine havaitaan, kirjataan ja irrotetaan, jolloin seuraava voi liittyä.

14 9 3 TIETOJENKÄSITTELYTEORIA DNA-laskenta pohjautuu biologian lisäksi tietojenkäsittelytieteeseen. DNA-molekyylissä geneettinen informaatio on talletettu juosteen emäsjärjestykseen, mitä käytetään hyväksi DNA-laskennassa. Sekvenssiä voidaan kutsua äärelliseksi, tyhjästä eroavaksi, suunnatuksi sanaksi tai merkkijonoksi aakkostossa Σ DNA = {A, G, T, C} [9, s. 13]. Suunnatulla tarkoitetaan sitä, että AAT on eri sekvenssi kuin TAA. Kaikkien mahdollisten sekvenssien sekä tyhjän sanan muodostama unionijoukko on formaali kieli aakkostossa Σ DNA [9, s. 14]. 3.1 Tilakone Tilakone on muistiton prosessoiva yksikkö, automaatti, joka lukee merkkijonon ja joko hyväksyy tai hylkää sen [10, s. 18]. Äärellinen tilakone koostuu äärellisestä joukosta tiloja q 1, q 2,, q n, joista yksi on koneen aloitustila (kuva 3.1). Tilojen välillä voi olla siirtymiä ja kone siirtyy tilasta toiseen siirtymäfunktionsa perusteella. Esimerkiksi siirtymäfunktio δ(q i, a) = q j siirtää tilassa q i olevan koneen tilaan q j jos luettu merkki on a. Tiloista yksi tai useampi on hyväksyvä tila, johon pysähtyessä kone hyväksyy syötteenä saamansa merkkijonon. Jos koneessa ei ole tilaa vastaavaa siirtymäfunktiota tai hyväksyvää tilaa ollenkaan, niin kone hylkää syötteen. 1, 2 q 1 muut kolikot q 2 kaikki kolikot Kuva 3.1. Yksinkertaisen virvoitusjuoma-automaatin tilakaavio. Tyhjästä tuleva nuoli merkitsee koneen alkutilaa ja kaksinkertainen ympyrä hyväksyvää tilaa q 1. Jos koneeseen laitetaan mikä tahansa muu kuin yhden tai kahden euron kolikko, kone siirtyy hylkäävään tilaan q 2. Tässä tilassa kaikki kolikot siirtävät koneen vain samaan hylkäävään tilaan eli kone jumiutuu. Koneen tunnistama aakkosto Σ on kaikkien eurokolikoiden muodostama joukko. Tilakone ei rajallisuudestaan johtuen pysty ratkaisemaan kaikkia ongelmia, mutta sitä voi tästä huolimatta käyttää yksinkertaisen laskennan mallina. Kattavampi laskennan malli on seuraavaksi esiteltävä Turingin kone. 3.2 Turingin kone Turingin kone on rajoittamattomalla muistilla varustettu teoreettinen malli ideaalisen tietokoneen toiminnalle. Mallin tarkoitus on tutkia ongelman ratkeavuutta ottamatta kantaa

15 10 algoritmin toteutukseen, mutta Turingin koneen ohjelmointi on tarpeettoman työlästä. Kone koostuu ohjainyksiköstä, yhdistetystä luku- ja kirjoituspäästä ja vasemmalta rajoitetusta, oikealta äärettömästä symbolinauhasta, jonka vasemmassa reunassa on koneen syöte (kuva 3.2) [9]. Symbolinauha koostuu soluista, joissa voi olla jokin symboli tai sitten ne voivat olla tyhjiä. Toiminta-askeleessaan koneen lukupää tarkastaa tilansa sekä lukee symbolin ja näiden kahden tiedon perusteella kirjoittaa symbolin, siirtyy nauhalla vasemmalle tai oikealle ja vaihtaa tilaansa kaikki tämä ohjainyksikön sisältämän siirtymäfunktion mukaan. Siirtymäfunktion palauttaessa vain yhden arvon Turingin kone on deterministinen, mutta jos siirtymäfunktio voi palauttaa useita arvoja, kutsutaan konetta epädeterministiseksi [9]. Epädeterministisen koneen säännöissä voi siis olla jokaista tilannetta varten useampi kuin yksi toimintatapa, joista kone valitsee aina parhaaseen lopputulokseen johtavan. On selvää, että tällainen kone on täysin kuvitteellinen. Jos tilaa ja luettua symbolia vastaavaa sääntöä ei ole, kone pysähtyy [3, s. 27]. OHJAIN Luku- ja kirjoituspää Oikealta rajoittamaton nauha (muisti), Kuva 3.2. Kaaviokuva Turingin koneesta. Kone koostuu ohjainyksiköstä, joka sisältää tiedon koneen tilasta sekä ohjeet tilasta toiseen siirtymiselle, luku- ja kirjoituspäästä, joka voi liikkua vasemmalle tai oikealle koneen kolmatta komponenttia, ääretöntä muistinauhaa pitkin. Churchin-Turingin teesin mukaan mikä tahansa mekaanisesti ratkeava ongelma voidaan ratkaista Turingin koneella [9]. Turing-täydellisellä ohjelmointikielellä voidaan ratkaista kaikki Turingin koneella ratkaistavissa olevat ongelmat. 3.3 Abstrakti RAM-kone Turingin koneen on n. soluun käsiksi päästäkseen luettava kaikki sitä edeltävät solut, minkä voi sanoa olevan turhaa työtä. Esitellään toinen malli, abstrakti RAM-kone (Random Access Memory), joka pystyy lukemaan mielivaltaisesti valitun muistipaikan tiedot toiminta-askeleessaan. Abstrakti RAM-kone on mallina myös lähempänä varsinaista tietokonetta. Kone koostuu kahdesta erillisestä nauhasta lukua ja kirjoitusta varten, suoritettavasta ohjelmasta sekä muistista, jonka ensimmäinen paikka on varattu varsinaisen laskennan tekevälle akkumulaattorille (kuva 3.3) [3, s. 30].

16 11 kirjoitusnauha PC OHJAIN operaatiot ohjelma kirjoituspää Muisti M[0] akkumulaattori M[1] M[2] M[0] lukunauha lukupää Kuva 3.3. Kaaviokuva abstraktista RAM-koneesta. Ohjainyksikkö sisältää koneelle sallitut operaatiot sekä niistä koostuvan ohjelman. Ohjelmalaskuri (PC, program counter) on rekisteri, joka pitää kirjaa ohjelman suorituksen tilasta. Tarramalli on esimerkki RAM-koneesta DNA-laskennassa. Tarramallissa DNA-muistijuosteeseen liittyy lyhempiä yksijuosteisia tarroja. Syntyvä osittain kaksijuosteinen muistikompleksi voi kuvata esimerkiksi binäärilukua, jossa tarttunut tarra tarkoittaa ykköstä. 3.4 Laskennan vaativuus Laskennan resurssitarvetta kutsutaan kompleksisuudeksi, vaativuudeksi. Laskenta vaatii tietokoneelta muistia, aikaa sekä laitteistoa, joista usein tärkein resurssi on aika. Suoritusaikaa ei kuitenkaan mitata ajan yksiköissä, koska kulutettu aika riippuu käytetystä laitteistosta. Sen sijaan aikakompleksisuus on syötteen koon n funktio T(n), jonka yksikkö on alkeisoperaatioiden määrä [10, s. 49] ja tässä luvussa ajalla tarkoitetaan juuri suoritusaikaa. Esimerkiksi algoritmin aikakompleksisuuden ollessa lineaarinen, alkeisoperaatioiden määrä kasvaa lineaarisesti syötteen koon n funktiona. Polynomiaalinen aika tarkoittaa sitä, että operaatioiden määrä on jokin syötteen koon n polynomi. Yleensä kompleksisuudesta käytetään O-notaatiota, jossa vain dominoiva termi on merkittävä ja vakiot jätetään huomiotta. Suoritusajalle f merkintä f(n) = O(g(n)) tarkoittaa, että f(n) cg(n), missä c on jokin positiivinen kokonaisluku [9, s. 253]. Funktio g(n) on suoritusajan dominoiva termi ja sen asymptoottinen yläraja Aikakompleksisuus Päätösongelmat, joihin voi vastata joko kyllä tai ei, voidaan jakaa luokkiin niiden aikakompleksisuuden ja käytetyn laskennan mallin perusteella. Luokka P sisältää deterministisellä Turingin koneella polynomiaalisessa ajassa ratkeavat ongelmat eli vaativuus on O(n k ) jollekin vakiolle k 0 [10, s. 50]. Jotta ongelman ratkaisuun käytetty algoritmi olisi käytännöllinen, sen ratkaisuaika voi olla korkeintaan polynomiaalinen. Luokan P voikin sanoa olevan luokka realistisesti tietokoneella ratkaistaville ongelmille [9, s. 262].

17 12 Luokka NP sisältää kuvitteellisella epädeterministisellä Turingin koneella polynomiaalisessa ajassa ratkeavat ongelmat. Niiden ratkaisuaika deterministisellä koneella on vähintään eksponentiaalinen O(c n ), missä c > 1, eikä nopeaa algoritmia ole löydetty. Toisaalta NP-ongelman ratkaisu voidaan varmistaa deterministisellä Turingin koneella polynomiaalisessa ajassa, mutta vain vastauksen ollessa kyllä [3]. Toisin sanoen, jos NP-ongelma saadaan ratkaistua jollakin tavalla, niin tämän ratkaisun oikeellisuus voidaan varmistaa polynomiaalisessa ajassa. Luokka P sisältyy luokkaan NP eli jokainen luokan P ongelma on myös luokan NP ongelma, mutta ei päinvastoin (kuva 3.4). Onko P = NP on kuuluisa ongelma, jonka ratkaisusta on luvattu palkkio, mutta tässä työssä oletetaan, että P NP. EXPTIME NP-täydelliset P NP Kuva 3.4. Aikakompleksisuusluokkien suhteet, kun oletetaan P NP. EXPTIME on luokka ongelmille, jotka voidaan ratkaista deterministisellä Turingin koneella eksponentiaalisessa ajassa. Nämä ongelmat ovat epäkäytännöllisiä ratkaista tietokoneella. NP-luokan vaikeimpia ongelmia ovat kuitenkin NP-täydelliset ongelmat, joita ovat esimerkiksi Hamiltonin polun toteaminen ja toteutuvuusongelma (x-sat, x:n muuttujan lauseille). Ongelma on NP-täydellinen, jos se kuuluu NP-luokkaan ja jos kaikki NP-luokan ongelmat voidaan muuntaa täksi ongelmaksi polynomiaalisessa ajassa. Jos yhdellekin NP-täydelliselle ongelmalle löytyy polynomiaalinen algoritmi, niin kaikille luokan NP ongelmille löytyy sellainen ja tämän lisäksi vielä P = NP Tilakompleksisuus Muisti tai yleisemmin tila on toinen tärkeä resurssi suoritusajan lisäksi. Ongelmat voidaan jakaa luokkiin myös niiden tilakompleksisuuden perusteella. Luokat PSPACE ja NPSPACE sisältävät vastaavasti deterministisellä ja epädeterministisellä Turingin koneella polynomiaalisessa tilassa ratkeavat ongelmat [9, s. 312]. Tilakompleksisuudelle pätee kuitenkin Savitchin teoreema, jonka mukaan PSPACE = NPSPACE [9, s. 312]. Tilakompleksisuusluokilla on seuraava yhteys aikakompleksisuusluokkiin: P NP PSPACE = NPSPACE EXPTIME, (3.1)

18 13 missä merkintä P NP tarkoittaa, että joukko P sisältyy joukkoon NP [9]. Oikeanpuolimmainen joukko EXPTIME on deterministisellä Turingin koneella eksponentiaalisessa ajassa ratkeavien ongelmien joukko. Suhteet on esitetty myös kuvassa 3.5. EXPTIME PSPACE NP P Kuva 3.5. Aika- ja tilakompleksisuusluokkien suhteet. Laskennallisuudessa tila-aikavaihtokaupalla tarkoitetaan, että joko tilakompleksisuus tai aikakompleksisuus minimoidaan toisen kustannuksella. DNA-laskennassa kompleksisuutta ajassa vähennetään juuri siirtämällä sitä tilantarpeeksi. 3.5 Massiivinen rinnakkaisuus Laskennallisen ongelman ratkaisussa käytetään algoritmia, jolla on jokin aikakompleksisuus, vaadittu alkeisoperaatioiden määrä. Rinnakkaislaskennassa useamman operaation voi suorittaa yhtä aikaa ja massiivisesta rinnakkaisuudesta puhuttaessa tällä tarkoitetaan miljardeja operaatioita yhtä aikaa. SIMD (Single instruction, multiple data) on rinnakkaislaskentatekniikka, jossa sama operaatio tehdään yhtä aikaa useille käsiteltävän datan alkioille [4, s. 237]. Jotta rinnakkaislaskentaa hyödyntävä algoritmi olisi käytännöllinen, sen on pystyttävä ratkaisemaan ongelma mahdollisimman vähillä rinnakkaisilla operaatioilla, mutta myös mahdollisimman vähillä rinnakkaisprosessoreilla [11]. DNA-molekyylit ovat DNA-laskennan rinnakkaisprosessoreita ja PCR:llä niitä voidaan luoda miljardeja. Vaikka molekyylit ovat pieniä, käytännön tilanteessa niiden massa rajoittaa mahdollista määrää.

19 14 4 DNA-LASKENTA Laskeminen DNA:lla perustuu biokemiallisten reaktioiden kinetiikkaan. Nämä reaktiot ovat diskreettejä ja stokastisia (kuva 4.1): molekyylejä on aina kokonaislukumäärä ja lopputilan tarkka ennustaminen on mahdotonta, sillä muuttujia on niin paljon. Se, että vastinjuosteet edes löytävät toisensa liuoksessa, perustuu satunnaiseen lämpöliikkeeseen. Lopputila 1 Alkutila Biokemialliset reaktiot Lopputila 2 Lopputila n Kuva 4.1. Biokemiallinen kinetiikka on diskreettiä ja stokastista. Molekyylejä on aina jonkin ei-negatiivisen kokonaisluvun verran ja alkutilasta voi kehittyä monta erilaista lopputilaa. DNA-laskennassa mallien perusta on usein tarkka sekvenssisuunnittelu sekä DNAmolekyylien itsejärjestyminen sopivissa oloissa. Laskennassa käytettävillä sekvensseillä pitää olla suunnilleen sama denaturoitumislämpötila T m, jota nostaa erityisesti emästen C ja G määrä [10, s. 100]. Jos T m -arvot eroavat paljon, hybridisaatio ja denaturaatio eivät tapahdu rinnakkaisesti [10, s. 100]. Pahimmassa tapauksessa oikeanlainen molekyyli jää syntymättä. Sekvenssit eivät voi olla myöskään kovin pitkiä, sillä pitkä ketju on hauras. Sekvenssien on oltava myös riittävän erilaisia, jolloin ne eivät hybridisoidu väärin. 4.1 Adleman: Hamiltonin polku Tässä luvussa käydään läpi alan ensimmäinen kokeellinen tutkimus: Hamiltonin polun toteaminen graafista DNA-laskennalla [2]. Graafi G on järjestetty pari G = (V, E), jossa V on joukko pisteitä ja E joukko pisteitä yhdistäviä viivoja, joita suunnatussa graafissa voi kulkea vain määrättyyn suuntaan. Hamiltonin polku on kahden pisteen välinen polku, joka kulkee graafin jokaisen pisteen kautta vain kerran. Sellaisen olemassaolon toteaminen graafista on laskennallisesti NP-täydellinen ongelma. Adlemanin tutkimuksessa käytettiin kuvan 4.2 mukaista seitsenpisteistä graafia.

20 15 v 5 v 4 v 2 v 1 v 7 v 3 v 6 Kuva 4.2. Adlemanin käyttämä graafi. Graafissa on yksi kuvaan punaisella katkoviivalla merkitty Hamiltonin polku: v 1, v 2, v 3, v 4, v 5, v 6, v 7. Tutkimuksessa jokaista graafin pistettä v i koodasi erilainen 20 nukleotidin pituinen sekvenssi O i. Päätepisteitä lukuun ottamatta pisteestä v i pisteeseen v j suunnattua viivaa (v i, v j ) koodasi myös 20 nukleotidin pituinen sekvenssi, josta ensimmäiset 10 olivat komplementaarisia pisteen v i sekvenssin loppupuoliskolle ja jälkimmäiset kymmenen pisteen v j sekvenssin alkupuoliskolle (katso kuva 4.3) [2]. Alkupisteestä lähteviä viivoja kuvasi 30 nukleotidin pituinen sekvenssi, jonka alkuosa käsitti koko alkupisteen. Loppupisteeseen päättyviä viivoja kuvasi vastaava sekvenssi, jonka loppuosa käsitti koko loppupisteen. Näin valmiissa Hamiltonin polussa DNA oli kokonaan kaksijuosteinen. O 1 O 2 O 2 O 3 O 3 O 4 O 4 O 5 O 5 O 6 O 6 O 7 O 1 O 2 O 3 O 4 O 5 O 6 O 7 Kuva 4.3. Hamiltonin polun koodaus Adlemanin tutkimuksessa. Polun viivat ovat ylärivissä ja pisteet alarivissä. Merkintä O i tarkoittaa sekvenssille O i komplementaarista sekvenssiä. Oligonukleotidit monistettiin PCR:llä niin, että jokaista oli Hamiltonin polun valittuja päätepisteitä lukuun ottamatta 50 pmol eli noin kappaletta [2]. Kun ne sekoitettiin koeputkessa ligaasientsyymin kanssa, juosteet järjestyivät kaksijuosteisiksi molekyyleiksi, jotka kuvasivat erilaisia mahdollisia polkuja graafissa. Oletettiin, että Hamiltonin polkua koodaava molekyyli olisi mukana suurella todennäköisyydellä [3, s. 113]. Seuraavaksi monistettiin kaikki valitusta alkupisteestä v 1 valittuun loppupisteeseen v 7 päättyvät DNA-molekyylit käyttämällä alukkeina päätepisteille komplementaarisia DNA-pätkiä [2]. Geelielektroforeesilla eroteltiin molekyylien koon perusteella polut, joiden pituus on tasan 140 nukleotidia. Vielä piti kuitenkin tarkastaa, että polussa jokainen piste esiintyisi vain kerran. Adleman teki tämän magneettisiin helmiin kiinnitetyillä koetinjuosteilla, jotka olivat komplementaarisia pistettä v i koodaavalle juosteelle [2]. Viidessä peräkkäisessä erotteluvaiheessa pystyttiin testaamaan jokainen piste v 2, v 3, v 4, v 5 ja v 6, jolloin jäljelle jäi vain kaikki pisteet läpikäyviä polkuja, joita Adlemanin esimerkkigraafissa oli vain yksi [2].

21 16 Jäljellejääneen DNA-molekyylin emäsjärjestys pystyttiin määrittämään sarjalla PCR-reaktioita, joissa alukkeina käytettiin alkupistesekvenssiä sekä vuorotellen jokaista muuta pistettä päätepistettä lukuun ottamatta. Kun elektroforeesilla määritettiin syntyneiden molekyylien koko, suuruusjärjestyksestä pystyttiin lukemaan pisteiden järjestys polussa. Kokeeseen meni laboratoriossa noin seitsemän päivää [2]. Adleman osoitti kokeellaan, että DNA:ta voi käyttää kombinatoristen ongelmien ratkaisuun. Kaikkien mahdollisten ratkaisujen generoiminen vaatii kuitenkin eksponentiaalisen määrän DNA-molekyyleja: 200 pisteen graafin tapauksessa DNA:n massa olisi jo suurempi kuin Maa-planeetan [3, s. 115]. Graafin kasvaessa myös tarvittavien erotusvaiheiden määrä kasvaa (luku 4.2, algoritmi 4.1, for-silmukka), mikä tekee laboratoriotyöstä työlästä ja pitkäkestoista. Laskennan pitäisikin kaikkien mahdollisten vaihtoehtojen läpikäymisen sijaan keskittyä löytämään oikea ratkaisu jollain muulla tavalla. Adleman oli lisäksi valinnut graafin sopivasti siten, että siitä löytyisi yksi Hamiltonin polku, eikä tutkimuksessa käytetty polutonta kontrolligraafia [3, s. 114]. Kokeessa myös oletetaan, ettei laskennassa tapahdu virheitä. Komplementaarisuudesta huolimatta myös yhteensopimattomat juosteet voivat hybridisoitua luonnosta löytyvän virheenkorjauskoneiston puuttuessa [4, s. 228]. Juosteiden ei tarvitse olla kokonaan toistensa vastinjuosteet, vaan ne voivat yhdistyä myös osittain [4, s. 228]. Mahdollista on myös juosteen komplementaarisuus itsensä kanssa, mikä johtaa niin kutsuttujen hiusneularakenteiden syntymiseen. Nämä seikat mahdollistavat sen, että Hamiltonin polkua koodaavaa molekyyliä ei korkeasta todennäköisyydestä huolimatta muodostu. PCR työmenetelmänä ei myöskään ole täysin virheetön, kuten luvussa todettiin. 4.2 Laskennan malleja Tässä alaluvussa käsitellään muutamia laskennan malleja, joista ensimmäisenä ovat suodatusmallit. Suodatusmalleissa aluksi luodaan ongelman kaikki mahdolliset ratkaisut, joista pyritään suodattamaan oikeat. Malleissa käytettävä koeputki T on abstraktina käsitteenä DNA-sekvenssien äärellinen multijoukko eli joukko, joka voi sisältää saman alkion useamman kerran. Algoritmi alkaa yhdestä koeputkesta ja päättyy yhteen tai useampaan vastauskoeputkeen. Seuraavaksi esiteltävä Adlemanin algoritmi Hamiltonin polun etsimiseksi oli muistiton suodatusalgoritmi, koska juosteet eivät muuttuneet laskennan aikana [10, s. 127]. Operaatio poimi(t, w) poimii koeputkesta T toiseen koeputkeen kaikki ne molekyylit, joiden osasekvenssi on äärellinen sekvenssi w [11]. Operaatiot poimi alku (T, w) ja poimi loppu (T, w) poimivat koeputkesta T kaikki ne sekvenssit, jotka vastaavasti alkavat tai loppuvat osasekvenssillä w [10, s. 125]. Adleman poimi tutkimuksessaan tietynlaiset sekvenssit magneettisiin helmiin kiinnitetyillä koetinjuosteilla. Menetelmää kutsutaan affiniteettipuhdistukseksi. Operaatio erottele(t, m) erottelee koeputkesta T omaan koeputkeensa kaikki ne molekyylit, joiden pituus on positiivinen kokonaisluku m. Laboratoriossa geelielektroforeesilla voidaan erotella molekyylit niiden pituuksien perusteella (luku 2.3.3). Operaatio

22 17 havaitse(t) toteaa, onko koeputkessa T molekyylejä vai ei [10, s. 125], mihin voidaan käyttää useaakin eri menetelmää, kuten elektoforeesia, DNA:han sitoutuvia värjäysaineita tai spektrofotometriaa. Näiden operaatioiden avulla Zimmermann et al. muodostavat Adlemanin käyttämän suodatusalgoritmin: Input: Koeputki T, graafi G = (V, E), missä V = {v 1,, v n } T poimi alku (T, v 1 ) T poimi loppu (T, v n ) T erottele(t, m n) for i 2 (n 1) do T poimi(t, v i ) end for return havaitse(t) Algoritmi 4.1. Adlemanin käyttämä muistiton suodatusalgoritmi. Amos määrittelee Adlemanin kokeen perusteella rinnakkaissuodatusmallin, jonka tarkoitus on olla universaali ja käyttökelpoinen merkitse-ja-tuhoa-tyyppinen laskentamalli. Operaatio poista(t, {S i }) poistaa koeputkesta T rinnakkaisesti kaikki molekyylit, joiden osasekvenssi on mikä tahansa S i :n osasekvenssi [3]. Laboratoriossa tämä tehdään affiniteettipuhdistuksella. Operaatio unioni({t i }, T) on koeputkien T i unioni eli yhdiste T [3]. Operaatio kopioi(t, {T i }) kopioi koeputken T koeputkiksi T i [3], mikä onnistuu PCR:llä. Operaatio valitse(t) valitsee koeputkesta T satunnaisen molekyylin ja putken ollessa tyhjä palauttaa arvon tyhjä [3]. Laboratorioassistentti ei voi kuitenkaan yhdistää koeputkia massiivisen rinnakkaisesti. Tämän operaation viemä kokonaisaika on verrannollinen syötteen kokoon, joten sitä ei voida jättää huomiotta. Amos esittää, että aikaisempaan malliin lisätään kaato-operaatio kaada(t, T ), joka yhdistää koeputkeen T putkien T ja T sisällöt [3, s. 75]. Kaatooperaation kanssa malli vastaa paremmin reaalimaailmaa ja Amos kutsuukin aikaisempaa heikoksi ja uutta vahvaksi DNA-laskennan malliksi. Taulukossa 4.1 on vertailtu heikon ja vahvan mallin aikakompleksisuuksia. Taulukosta huomataan, että esimerkiksi Hamilton-algoritmi vie vahvallakin mallilla vain lineaarisen ajan. Juosteita tarvitaan kuitenkin epäkäytännöllinen eksponentiaalinen määrä. Tilassa siis hävitään, mikä ajassa voitetaan.

23 18 Taulukko 4.1. DNA-laskennan heikon ja vahvan mallin aikakompleksisuuksien vertailu [3]. Algoritmi Heikko malli Vahva malli Graafin 3-värittyvyys O(n) O(n 2 ) Hamiltonin polku O(1) O(n) Aligraafin isomorfismi O(n) O(n 2 ) Suurin klikki O(n) O(n 2 ) Suurin riippumaton joukko O(n) O(n 2 ) Pintamalleissa juosteet suodatetaan pintaan, kuten lasiin, kultaan tai piihin, kiinnitetyillä koetinjuosteilla. Kiinnittymättömät juosteet tuhotaan entsymaattisesti ja kiinnittyneet voidaan irrottaa koetinjuosteista uutta käsittelyä varten. Tällainen malli vastaa DNAmikrosirua, joka on usein käytetty menetelmä geeniekspression tutkimiseen. Mallin etuna onkin se, että DNA-mikrosiruja vapaavalintaisilla koetinjuosteilla on kaupallisesti saatavissa. Tarramalli (engl. sticker model) on muistillinen malli, jossa voidaan viitata mihin tahansa muistipaikkaan. Tarramallissa muisti ei ole yhtenäistä, vaan koostuu monista erillisistä, osittain kaksijuosteisista DNA-molekyyleistä, joita kutsutaan muistikomplekseiksi (kuva 4.4) [10, s. 138]. Muistikompleksi koostuu muistijuosteesta, joka on jaettu tietynpituisiin osasekvensseihin, muistipaikkoihin. Kun muistipaikalle komplementaarinen lyhyt tarrajuoste tarttuu siihen kiinni, muistipaikan voi ajatella olevan kytketty päälle. Tarramallissa muistijuosteita ei tarvitse muokata TGATGA TTTTTT GCACCC AATTAA 3 3 ACTACT 5 3 TTAATT 5 Kuva 4.4. Esimerkki tarramallin muistikompleksista. Ylärivi on muistijuoste, johon komplementaariset tarrajuosteet kiinnittyvät. Kuvassa olevalla muistikompleksilla voidaan esittää esimerkiksi binäärilukua 1001, kun sovitaan kiinnittyneen tarrajuosteen merkitsevän ykköstä. Kuvassa 4.4 olevan esimerkkikompleksin voisi suodattaa esimerkiksi keskimmäisten palikoiden komplementaarisilla tarrajuosteilla. Tällöin operaatio poimisi kaikki kompleksit, joissa muistipaikat 2 ja 3 koodaavat nollaa eli ovat pois päältä. 4.3 DNA-automaatti biologisessa ympäristössä Tähän mennessä esitellyt mallit vaativat manuaalisia työvaiheita, laboratorioassistentin työtunteja ja automaattistenkin työvaiheiden valvontaa. Yhtenä tavoitteena on kuitenkin järjestelmä, joka pystyy toimimaan autonomisesti ilman koeolosuhteiden vaihtelua. Tällaisen järjestelmän käyttökohde voisi olla esimerkiksi ihmiskehon sisällä biologisessa ympäristössä toimiva diagnostiikkakone, joka pystyisi suorittamaan yksinkertaista laskentaa. Kone voisi tunnistaa jonkin biologisen signaalin ja vapauttaisi lääkettä tai antaisi muuta hoitoa.

24 19 Benenson et al. rakensivat in vitro äärellisen DNA-automaatin (kuva 4.5), joka ottaa syötteenä mrna-molekyylin ja jonka ulostulo on yksijuosteinen DNA-molekyyli, joka pystyy vaikuttamaan esimerkiksi geenin ilmentymiseen [12]. Modulaarinen automaatti koostuu syötteen havaitsevasta kompleksista, entsyymikoneistosta (restriktio- ja ligaasientsyymit) ja ohjelmistosta, siirtymäsääntöjä koodaavista molekyyleistä. Kone käynnistetään kaatamalla osat yhteen koeputkeen. alku Syöte tunnistettu Y Syötettä ei tunnistettu N vapauta lääke inhiboi lääke Kuva 4.5. DNA-automaatin tilakaavio. Varsinaisessa toteutuksessa lääkkeen ja sen inhibiittorin vapauttavat automaatit ovat kaksi erillistä konetta, mutta niiden yhteistoiminta muistuttaa äärellistä automaattia. Jos kaikki symbolit hyväksytään, kone pysähtyy hyväksyvään tilaan (Y) ja vapauttaa lääkkeen. Jos yksikin symboli (mrna) siirtää koneen hylkäävään tilaan (N), kone jättää huomiotta seuraavat symbolit (oikeanpuolimmaisin siirtymä tilaan itseensä) ja vapauttaa lääkettä inhiboivan molekyylin. Automaatin koneistona toimii FokI-restriktioentsyymi, joka tunnistuskohdan löydettyään leikkaa kaksijuosteisen DNA-molekyylin kohesiivisesti: syntyvän molekyylin juosteet ovat siis eripituiset. Koneen syöte voi olla jokin sairaudelle ominainen mrna-molekyyli, joka erottaa alkutilanteen huonosti toisiinsa liittyneet juosteet B ja C (kuva 4.6, kohta 1 ja 2). Vapautuneen juosteen B liittyessä komplementaariseen juosteeseen A syntyy koneen aloitustilaa koodaava molekyyli A-B (kuva 4.6, kohta 2).

25 A B B A FokI Lääke C mrna C mrna 3 B A Lääke Kuva 4.6. Sairaudelle ominainen mrna syötteenä. Samalla värillä väritetyt juosteet ovat komplementaarisia. Violetilla ja punaisella väritetty juoste on hiusneularakenne, eli se on osittain itsensä kanssa komplementaarinen. 1) A on osa viimeistä siirtymämolekyyliä, mutta sen affiniteetti komplementaariseen B:hen on pieni. B-C-kompleksi on vain osittain komplementaarinen. 2) C:n affiniteetti komplementaariseen mrna:han on suurempi kuin B:hen, joten mrna ryöstää sen B-C kompleksilta. Tällöin vapautunut B pystyy sitoutumaan A:n kanssa ja B-A kompleksi edelleen lääkekompleksin kanssa. Todellisuudessa tässä välissä on useita vastaavia restriktioentsyymin katalysoimia tilanvaihteluita, mutta kuvassa on esitetty vain yksi selkeyden vuoksi. 3) FokI vapauttaa lääkkeen lääkekompleksista. Entsyymi vapauttaa syntyneestä kompleksista A-B seuraavaa tilaa koodaavan sekvenssin ja sopiva siirtymäsääntömolekyyli liittyy juosteiden eripituisiin päihin. Tämä molekyyli koostuu FokI-tunnistuskohdasta, automaatin tilaa koodaavasta sekvenssistä sekä välikesekvenssistä, joka määrittää seuraavan tilan [4]. Välikkeen takia FokI:in seuraavaksi vapauttama molekyyli on vähän eripituinen kuin edellinen, mikä mahdollistaa tilojen ja siirtymien koodaamisen DNA-sekvenssiin. Etsityn mrna:n konsentraatio vaikuttaa koneen toimintaan siten, että jokainen tilakoneen tilanmuutos koostuu aikaisemmin kuvatuista vaiheista, joissa mrna vapauttaa seuraavaa tilaa koodaavan palasen. Automaatin pysähtyessä hyväksyvään tilaan FokI vapauttaa leikkaamalla päätetilaa koodaavan molekyylin, jonka päihin liittyy viimeinen osa automaattia, lääkkeen kantaja, josta FokI vapauttaa lääkkeen (kuva 4.6, kohta 3). Kahden koneen avulla voidaan hienosäätää biologista vastetta [10, s. 265]. Jos jossakin vaiheessa kone ei havaitse etsittyä mrna:ta, se siirtyy hylkäävään tilaan ja lopulta vapauttaa lääkkeen inhibiittorin. Biologisessa ympäristössä useamman automaatin vaste ärsykkeen konsentraatioon lopulta päättää, miten ärsykkeen kanssa menetellään vapauttaako koneiden joukko enemmän lääkettä vai inhibiittoria [10, s. 265]. Automaatti on siis stokastinen. Biologisessa ympäristössä on otettava huomioon automaatin modulaaristen osien ja tuotteiden toksisuus sekä FokI-entsyymin sivuvaikutukset: entsyymi leikkaa niin automaatin osia kuin solun omia molekyylejäkin [10, s. 269]. Automaatin suurin ongelma on kuitenkin sen kompleksisuus [10, s. 197]. Tutkimuksessa käytetyn FokI-entsyymin kohesiivisten päiden tunnistettava kohta on vain neljä nukleotidia pitkä. Tällaisella koneella

26 21 ei voida ratkaista kovin monimutkaisia ongelmia. Tilakoneen laskennallista voimaa voitaisiin kasvattaa löytämällä tai syntetisoimalla uusia restriktioentsyymejä, jotka katkaisevat molekyylit eri kohdista [10, s. 198]. 4.4 DNA tallennusmediana Goldman et al. osoittivat DNA:n sopivan myös tallennusmediaksi. Heidän tutkimuksensa mukaan DNA sopii erityisesti pitkäaikaiseen ( vuotta) tiedon arkistointiin, kun tallennettua tietoa ei tarvitse tutkia usein [5]. Syntetisointikustannuksien laskiessa DNA:sta arvellaan tulevan kustannustehokas ratkaisu myös lyhytaikaisempaan arkistointiin. DNA:lla voi olla myös steganografista arvoa, sillä piilotettua tietoa ei välttämättä osata etsiä harmittoman oloisesta DNA-molekyylistä. Tutkimusryhmä tallensi DNA:han 739 kilotavua tietoa: kaikki Shakespearen 154 sonaattia yhtenä ASCII-tekstitiedostona, Watsonin ja Crickin vuoden 1953 artikkelin Molecular structure of nucleic acids PDF-formaatissa, värivalokuvan Euroopan bioinformatiikkainstituutista JPEG formaatissa, 26 sekunnin otteen Martin Luther Kingin kuuluisasta vuoden 1963 puheesta MP3-formaatissa sekä käytetyn Huffman-koodauksen AS- CII-tekstitiedostona [5]. DNA-kirjasto sisälsi DNA-sekvenssiä, joista jokaisen pituus oli 117 nukleotidia [5]. Goldman et al. myös osoittivat, että näiden sekvenssien määrä kasvaa lineaarisesti tallennettavan tiedon kanssa. Tutkimuksessa tiedoston bittiesitys, tavujen merkkijono S 0, käännettiin Huffmankoodauksella kantaluvun 3 järjestelmään, merkkijonoksi S 1 aakkostossa {0, 1, 2}, jonka merkkejä kutsutaan triteiksi [5]. Merkkijonon S 1 pituus merkkeinä, S 1, käännettin myös triteiksi ja näin syntyneen merkkijonon S 2 eteen lisättiin nollia, kunnes sen pituus oli 20 [5]. Lopullinen koodattu trittijono S 4 saatiin katenaationa S 4 = S 1 S 3 S 2, jossa S 3 on merkkijono nollia siten, että pituus S 4 on jokin luvun 25 moninkerta [5]. Katenaatiossa merkkijonot kirjoitetaan peräkkäin määritellyssä järjestyksessä. Seuraavaksi S 4 käännettiin aakkoston Σ DNA = {A, G, T, C} merkkijonoksi S 5 vastaavuustaulukon 4.2 mukaisesti. Taulukko 4.2. Toistuvat nukleotidit estävä koodaus triteistä nukleotideiksi. Ensimmäisen tritin kohdalla oletetaan edellisen nukleotidin olleen A. Edellinen nukleotidi Koodattava tritti A C G T C G T A G T A C T A C G Tämä N-pituinen sekvenssi jaettiin N 3 osittain päällekkäiseksi osasekvenssiksi siten, 25 että jokaisen osan pituus on 100 nukleotidia ja uusi osa alkaa 25 nukleotidia edellisen

27 22 jälkeen (kuva 4.7). Jokaisen osasekvenssin alkuun lisättiin DNA:ksi koodattuna 15 tritin katenoitu indeksi IX = ID i P, missä ID on tiedoston tunniste, i osan indeksi ja P tarkastustritti (pariteetti). Lopuksi osasekvenssiin lisättiin vielä yksi nukleotidi kumpaankin päähän koodaamaan lukusuuntaa. [5]. Näin saatiin 117 nukleotidin pituisia molekyylejä, joissa sama tieto esiintyi useamman kerran virheenkorjauksen helpottamiseksi. S 5 S 5 = 175 F 0 F 1 F 2 F 3 Kuva 4.7. Esimerkki tiedostoa koodaavan sekvenssin jaosta 100 nukleotidin pituisiksi osasekvensseiksi. Jokainen väritetty palkki kuvaa 25 nukleotidin ketjua. Tutkimuksessa todetaan, että syntetisoinnissa tapahtuu noin yksi virhe jokaista 500 nukleotidia kohti [5]. Lisäksi on huomioitava PCR:n, sekvensoinnin ja varastoinnin aiheuttamat virheet. Tutkimusryhmän metodissa tiedon redundanssi on kuitenkin niin suuri, että näiden virheiden aiheuttama tietojen katoaminen on epätodennäköistä.

28 23 5 YHTEENVETO Idea DNA-laskennan taustalla on kiehtova: universaalille tietokoneelle uskottuja tehtäviä voi suorittaa myös yhdellä rakennuspalikoistamme, jota on ylimäärin saatavilla. Onko se todella tehokkaampaa? Amos puhuu kirjassaan DNA-laskennan tappajasovelluksista, ongelmista, jotka DNA-laskenta ratkaisisi tehokkaammin kuin sen kilpailijat [3, s. 71]. Kirjassa jopa vihjataan, että alan tulevaisuus on vaakalaudalla, jos tällaista sovellusta ei löydy. Tässäkin työssä on kuitenkin käsitelty lupaavia sovelluskohteita, joista mainittakoon DNA-kone biologisessa ympäristössä. Universaalin ja käytännöllisen DNA-tietokoneen haikailu voi olla toiveajattelua vielä nykyisillä laboratoriolaitteilla. DNA-laskennan kompastuskivi ovat laboratoriotyövaiheiden virhealttius ja hitaus sekä yleisen joustavuuden puute. Syötteen koon kasvu tarkoittaa prosessoivien yksiköiden, DNA-molekyylien määrän kasvua. DNA:n pienestä koosta huolimatta ei ole kannattavaa ratkaista ongelmia, joiden ratkaisemiseksi tarvitaan eksponentiaalinen määrä juosteita varsinkin jos syötteen koko on suuri. DNA-laskenta ei ole myöskään determinististä. Biologinen ympäristö ja reaktiokinetiikka koostuvat kumpikin stokastisista prosesseista. Vastinjuosteet eivät ehkä koskaan kohtaa, eivät kohtaa oikein tai niitä ei ole saatu valmistettua ollenkaan. Suodatusmalleissa oikean ratkaisun suodattuminen ja löytyminen perustuu siihen, että suurella todennäköisyydellä jokaista mahdollista ratkaisua vastaava molekyyli on syntynyt koeputkessa. Jos näin ei ole käynyt, oikean vastauksen hakeminen on turhaa työtä. Molekulaaristen algoritmien kehittäminen on monimutkaista ja vaikeaa. Algoritmeja suunnitellessa on otettava huomioon sekä sekvenssien kemialliset rajoitukset, kuten G-Cpitoisuus, että kombinatoriset rajoitukset, kuten similaarisuus. Kombinatoriset rajoitukset ovat matemaattisuudestaan johtuen sivuutettu tässä työssä, mutta koodisanoina toimivien sekvenssien automaattista suunnittelua on myös tutkittu tiedeyhteisössä. Työtä tehdessä on kuitenkin tullut selväksi, että laskennalle on valmiita malleja, joita on myös testattu ainakin in vitro. Molekyylibiologian kehittyessä voidaan odottaa uudenlaisten mallien ja lähestymistapojen syntymistä. Tämä kehitys tuskin myöskään pysähtyy, koska molekyylibiologia on elämällemmekin välttämätöntä. Molekyylibiologiaa kiinteästi seuraa laboratoriovälineiden kehitys. Uudet laitteet johtavat tehokkaampaan ja käytännöllisempään algoritmien suunnitteluun sekä työvaiheiden hinnan alenemiseen. Vaikka johdannossa mainittuun tieteiskirjallisuuden maailmaan on vielä pitkä matka, ensimmäiset askeleet on otettu.

ICS-C2000 Tietojenkäsittelyteoria Kevät 2016

ICS-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

Bioteknologian perustyökaluja

Bioteknologian perustyökaluja Bioteknologian perustyökaluja DNAn ja RNAn eristäminen helppoa. Puhdistaminen työlästä (DNA pestään lukuisilla liuottimilla). Myös lähetti-rnat voidaan eristää ja muuntaa virusten käänteiskopioijaentsyymin

Lisätiedot

PCR - tekniikka elintarvikeanalytiikassa

PCR - tekniikka elintarvikeanalytiikassa PCR - tekniikka elintarvikeanalytiikassa Listerian, Salmonellan ja kampylobakteerien tunnistus elintarvikkeista ja rehuista 29.11.2012 Eva Fredriksson-Lidsle Listeria monocytogenes Salmonella (spp) Campylobacter

Lisätiedot

1. Universaaleja laskennan malleja

1. 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ätiedot

Turingin koneen laajennuksia

Turingin 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ätiedot

Algoritmit 1. Luento 1 Ti Timo Männikkö

Algoritmit 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ätiedot

Epä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 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ätiedot

Algoritmit 2. Luento 13 Ti Timo Männikkö

Algoritmit 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ätiedot

Algoritmit 2. Luento 1 Ti Timo Männikkö

Algoritmit 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ätiedot

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

Laskennan 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ätiedot

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

δ : (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ätiedot

Automaatit. Muodolliset kielet

Automaatit. 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ätiedot

3. Laskennan vaativuusteoriaa

3. 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ätiedot

Säännöllisen kielen tunnistavat Turingin koneet

Sää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ätiedot

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

M = (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ätiedot

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

Ongelma(t): Mikä on Turingin kone? Miten Turingin kone liittyy funktioihin ja algoritmeihin? Miten Turingin kone liittyy tietokoneisiin? Ongelma(t): Mikä on Turingin kone? Miten Turingin kone liittyy funktioihin ja algoritmeihin? Miten Turingin kone liittyy tietokoneisiin? 2013-2014 Lasse Lensu 2 Algoritmit ovat deterministisiä toimintaohjeita

Lisätiedot

Tietotekniikan valintakoe

Tietotekniikan 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ätiedot

Algoritmit 1. Luento 2 Ke Timo Männikkö

Algoritmit 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ätiedot

Yhteydettömän kieliopin jäsennysongelma

Yhteydettö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ätiedot

Laskennan mallit (syksy 2009) Harjoitus 11, ratkaisuja

Laskennan 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ätiedot

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

Rekursiolause. 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ätiedot

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

TIEA241 Automaatit ja kieliopit, syksy Antti-Juhani Kaijanaho. 5. marraskuuta 2015 TIEA24 Automaatit ja kieliopit, syksy 205 Antti-Juhani Kaijanaho TIETOTEKNIIKAN LAITOS 5. marraskuuta 205 Sisällys Käsiteanalyysiä Tarkastellaan koodilukkoa äärellisenä automaattina. Deterministinen äärellinen

Lisätiedot

Rajoittamattomat kieliopit (Unrestricted Grammars)

Rajoittamattomat 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ätiedot

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

Kielenä 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ätiedot

TIEA241 Automaatit ja kieliopit, kevät Antti-Juhani Kaijanaho. 12. tammikuuta 2012

TIEA241 Automaatit ja kieliopit, kevät Antti-Juhani Kaijanaho. 12. tammikuuta 2012 TIEA241 Automaatit ja kieliopit, kevät 2012 Antti-Juhani Kaijanaho TIETOTEKNIIKAN LAITOS 12. tammikuuta 2012 Sisällys Sisällys Äärellisiä automaatteja PUSH ON PUSH OFF Q T Q J C C H S C,Q C,Q 0 50s 1e

Lisätiedot

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

M =(K, Σ, Γ,, s, F ) Σ ={a, b} Γ ={c, d} = {( (s, a, e), (s, cd) ), ( (s, e, e), (f, e) ), (f, e, d), (f, e) Tik-79.148 Kevät 2001 Tietojenkäsittelyteorian perusteet Laskuharjoitus 7 Demonstraatiotehtävien ratkaisut 1. Pinoautomaatti M = K Σ Γ s F missä K Σ s ja F on määritelty samalla tavalla kuin tilakoneellekin.

Lisätiedot

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

9.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ätiedot

v 8 v 9 v 5 C v 3 v 4

v 8 v 9 v 5 C v 3 v 4 Verkot Verkko on (äärellinen) matemaattinen malli, joka koostuu pisteistä ja pisteitä toisiinsa yhdistävistä viivoista. Jokainen viiva yhdistää kaksi pistettä, jotka ovat viivan päätepisteitä. Esimerkiksi

Lisätiedot

Täydentäviä muistiinpanoja Turingin koneiden vaihtoehdoista

Tä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ätiedot

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:

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: 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ätiedot

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

vaihtoehtoja 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ätiedot

Lisää pysähtymisaiheisia ongelmia

Lisää 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ätiedot

Datatähti 2019 loppu

Datatähti 2019 loppu Datatähti 2019 loppu task type time limit memory limit A Summa standard 1.00 s 512 MB B Bittijono standard 1.00 s 512 MB C Auringonlasku standard 1.00 s 512 MB D Binääripuu standard 1.00 s 512 MB E Funktio

Lisätiedot

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

Lause (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ätiedot

Laskennan mallit (syksy 2010) Harjoitus 4, ratkaisuja

Laskennan 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ätiedot

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

Laskennan 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ätiedot

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

f(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ätiedot

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

Se 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ätiedot

Täydentäviä muistiinpanoja laskennan rajoista

Tä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ätiedot

Kombinatorinen optimointi

Kombinatorinen optimointi Kombinatorinen optimointi Sallittujen pisteiden lukumäärä on äärellinen Periaatteessa ratkaisu löydetään käymällä läpi kaikki pisteet Käytännössä lukumäärä on niin suuri, että tämä on mahdotonta Usein

Lisätiedot

GEENITEKNIIKAN PERUSASIOITA

GEENITEKNIIKAN PERUSASIOITA GEENITEKNIIKAN PERUSASIOITA GEENITEKNIIKKKA ON BIOTEKNIIKAN OSA-ALUE! Biotekniikka tutkii ja kehittää elävien solujen, solun osien, biokemiallisten menetelmien sekä molekyylibiologian uusimpien menetelmien

Lisätiedot

9. Matemaattisista koneista.

9. Matemaattisista koneista. 9. Matemaattisista koneista. Monia tietojenkäsittelytehtäviä, digitaalisia komponetteja, ohjelmia jne. voidaan mallintaa äärellistilaisella matemaattisella koneella. Matemaattinen kone on myös tietojenkäsittelijän

Lisätiedot

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

Testaa: 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ätiedot

Laskennan rajoja. TIEA241 Automaatit ja kieliopit, kesä Antti-Juhani Kaijanaho. 20. kesäkuuta 2013 TIETOTEKNIIKAN LAITOS.

Laskennan 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ätiedot

Algoritmit 1. Luento 3 Ti Timo Männikkö

Algoritmit 1. Luento 3 Ti Timo Männikkö Algoritmit 1 Luento 3 Ti 17.1.2017 Timo Männikkö Luento 3 Algoritmin analysointi Rekursio Lomituslajittelu Aikavaativuus Tietorakenteet Pino Algoritmit 1 Kevät 2017 Luento 3 Ti 17.1.2017 2/27 Algoritmien

Lisätiedot

Tietorakenteet ja algoritmit - syksy 2015 1

Tietorakenteet 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ätiedot

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

Turingin koneet. Sisällys. Aluksi. Turingin koneet. Turingin teesi. Aluksi. Turingin koneet. Turingin teesi TIEA241 Automaatit ja kieliopit, kevät 2012 Antti-Juhani Kaijanaho TIETOTEKNIIKAN LAITOS 17. kesäkuuta 2013 Sisällys Chomskyn hierarkia (ja vähän muutakin) kieli säännöllinen LL(k) LR(1) kontekstiton kontekstinen

Lisätiedot

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

Satunnaisalgoritmit. 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ätiedot

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

(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ätiedot

on rekursiivisesti numeroituva, mutta ei rekursiivinen.

on 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ätiedot

Hahmon etsiminen syotteesta (johdatteleva esimerkki)

Hahmon 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ätiedot

Pysähtymisongelman ratkeavuus [Sipser luku 4.2]

Pysä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ätiedot

811312A Tietorakenteet ja algoritmit Kertausta kurssin alkuosasta

811312A Tietorakenteet ja algoritmit Kertausta kurssin alkuosasta 811312A Tietorakenteet ja algoritmit 2016-2017 Kertausta kurssin alkuosasta II Algoritmien analyysi: oikeellisuus Algoritmin täydellinen oikeellisuus = Algoritmi päättyy ja tuottaa määritellyn tuloksen

Lisätiedot

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

Laskennan 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ätiedot

Esimerkkejä vaativuusluokista

Esimerkkejä vaativuusluokista Esimerkkejä vaativuusluokista Seuraaville kalvoille on poimittu joitain esimerkkejä havainnollistamaan algoritmien aikavaativuusluokkia. Esimerkit on valittu melko mielivaltaisesti laitoksella tehtävään

Lisätiedot

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

4. 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ätiedot

Tietorakenteet ja algoritmit Johdanto Lauri Malmi / Ari Korhonen

Tietorakenteet 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ätiedot

811312A Tietorakenteet ja algoritmit Kertausta kurssin alkuosasta

811312A Tietorakenteet ja algoritmit Kertausta kurssin alkuosasta 811312A Tietorakenteet ja algoritmit 2017-2018 Kertausta kurssin alkuosasta II Perustietorakenteet Pino, jono ja listat tunnettava Osattava soveltaa rakenteita algoritmeissa Osattava päätellä operaatioiden

Lisätiedot

Perinnöllisyystieteen perusteita III Perinnöllisyystieteen perusteita

Perinnöllisyystieteen perusteita III Perinnöllisyystieteen perusteita Perinnöllisyystieteen perusteita III Perinnöllisyystieteen perusteita 10. Valkuaisaineiden valmistaminen solussa 1. Avainsanat 2. Perinnöllinen tieto on dna:n emäsjärjestyksessä 3. Proteiinit koostuvat

Lisätiedot

Algoritmit 1. Demot Timo Männikkö

Algoritmit 1. Demot Timo Männikkö Algoritmit 1 Demot 1 31.1.-1.2.2018 Timo Männikkö Tehtävä 1 (a) Algoritmi, joka tutkii onko kokonaisluku tasan jaollinen jollain toisella kokonaisluvulla siten, että ei käytetä lainkaan jakolaskuja Jaettava

Lisätiedot

Ongelma(t): Miten merkkijonoja voidaan hakea tehokkaasti? Millaisia hakuongelmia liittyy bioinformatiikkaan?

Ongelma(t): Miten merkkijonoja voidaan hakea tehokkaasti? Millaisia hakuongelmia liittyy bioinformatiikkaan? Ongelma(t): Miten merkkijonoja voidaan hakea tehokkaasti? Millaisia hakuongelmia liittyy bioinformatiikkaan? 2012-2013 Lasse Lensu 2 Ihmisen, eläinten ja kasvien hyvinvoinnin kannalta nykyaikaiset mittaus-,

Lisätiedot

5.3 Ratkeavia ongelmia

5.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ätiedot

Laskennan rajoja. TIEA241 Automaatit ja kieliopit, kevät Antti-Juhani Kaijanaho. 6. maaliskuuta 2012 TIETOTEKNIIKAN LAITOS.

Laskennan 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ätiedot

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

TIEA241 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ätiedot

811120P Diskreetit rakenteet

811120P Diskreetit rakenteet 811120P Diskreetit rakenteet 2018-2019 1. Algoritmeista 1.1 Algoritmin käsite Algoritmi keskeinen laskennassa Määrittelee prosessin, joka suorittaa annetun tehtävän Esimerkiksi Nimien järjestäminen aakkosjärjestykseen

Lisätiedot

Ongelma 1: Onko datassa tai informaatiossa päällekkäisyyttä?

Ongelma 1: Onko datassa tai informaatiossa päällekkäisyyttä? Ongelma 1: Onko datassa tai informaatiossa päällekkäisyyttä? 2012-2013 Lasse Lensu 2 Ongelma 2: Voidaanko dataa tai informaatiota tallettaa tiiviimpään tilaan koodaamalla se uudelleen? 2012-2013 Lasse

Lisätiedot

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

TIEA241 Automaatit ja kieliopit, kesä Antti-Juhani Kaijanaho. 22. toukokuuta 2013 TIEA24 Automaatit ja kieliopit, kesä 3 Antti-Juhani Kaijanaho TIETOTEKNIIKAN LAITOS 22. toukokuuta 3 Sisällys Äärellisiä automaatteja ON PUSH PUSH OFF Q T J Q C C H S C,Q C,Q 0 40 60 80 00, 70 90 Deterministinen

Lisätiedot

811120P Diskreetit rakenteet

811120P Diskreetit rakenteet 811120P Diskreetit rakenteet 2016-2017 1. Algoritmeista 1.1 Algoritmin käsite Algoritmi keskeinen laskennassa Määrittelee prosessin, joka suorittaa annetun tehtävän Esimerkiksi Nimien järjestäminen aakkosjärjestykseen

Lisätiedot

Graafit ja verkot. Joukko solmuja ja joukko järjestämättömiä solmupareja. eli haaroja. Joukko solmuja ja joukko järjestettyjä solmupareja eli kaaria

Graafit ja verkot. Joukko solmuja ja joukko järjestämättömiä solmupareja. eli haaroja. Joukko solmuja ja joukko järjestettyjä solmupareja eli kaaria Graafit ja verkot Suuntamaton graafi: eli haaroja Joukko solmuja ja joukko järjestämättömiä solmupareja Suunnattu graafi: Joukko solmuja ja joukko järjestettyjä solmupareja eli kaaria Haaran päätesolmut:

Lisätiedot

811312A Tietorakenteet ja algoritmit 2015-2016. I Johdanto

811312A Tietorakenteet ja algoritmit 2015-2016. I Johdanto 811312A Tietorakenteet ja algoritmit 2015-2016 I Johdanto Sisältö 1. Algoritmeista ja tietorakenteista 2. Algoritmien analyysistä 811312A TRA, Johdanto 2 I.1. Algoritmeista ja tietorakenteista I.1.1. Algoritmien

Lisätiedot

Rajoittamattomat kieliopit

Rajoittamattomat 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ätiedot

Algoritmit 1. Demot Timo Männikkö

Algoritmit 1. Demot Timo Männikkö Algoritmit 1 Demot 1 25.-26.1.2017 Timo Männikkö Tehtävä 1 (a) Algoritmi, joka laskee kahden kokonaisluvun välisen jakojäännöksen käyttämättä lainkaan jakolaskuja Jaettava m, jakaja n Vähennetään luku

Lisätiedot

Bayesin pelit. Kalle Siukola. MS-E2142 Optimointiopin seminaari: Peliteoria ja tekoäly

Bayesin pelit. Kalle Siukola. MS-E2142 Optimointiopin seminaari: Peliteoria ja tekoäly Bayesin pelit Kalle Siukola MS-E2142 Optimointiopin seminaari: Peliteoria ja tekoäly 12.10.2016 Toistetun pelin esittäminen automaatin avulla Ekstensiivisen muodon puu on tehoton esitystapa, jos peliä

Lisätiedot

6 GEENIT OHJAAVAT SOLUN TOIMINTAA nukleiinihapot DNA ja RNA Geenin rakenne Geneettinen informaatio Proteiinisynteesi

6 GEENIT OHJAAVAT SOLUN TOIMINTAA nukleiinihapot DNA ja RNA Geenin rakenne Geneettinen informaatio Proteiinisynteesi 6 GEENIT OHJAAVAT SOLUN TOIMINTAA nukleiinihapot DNA ja RNA Geenin rakenne Geneettinen informaatio Proteiinisynteesi GENEETTINEN INFORMAATIO Geeneihin pakattu informaatio ohjaa solun toimintaa ja siirtyy

Lisätiedot

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

7. 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ätiedot

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

TIEA241 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ätiedot

Diskreetin matematiikan perusteet Laskuharjoitus 2 / vko 9

Diskreetin matematiikan perusteet Laskuharjoitus 2 / vko 9 Diskreetin matematiikan perusteet Laskuharjoitus 2 / vko 9 Tuntitehtävät 9-10 lasketaan alkuviikon harjoituksissa ja tuntitehtävät 13-14 loppuviikon harjoituksissa. Kotitehtävät 11-12 tarkastetaan loppuviikon

Lisätiedot

ja λ 2 = 2x 1r 0 x 2 + 2x 1r 0 x 2

ja λ 2 = 2x 1r 0 x 2 + 2x 1r 0 x 2 Johdatus diskreettiin matematiikkaan Harjoitus 4, 7.10.2015 1. Olkoot c 0, c 1 R siten, että polynomilla r 2 c 1 r c 0 on kaksinkertainen juuri. Määritä rekursioyhtälön x n+2 = c 1 x n+1 + c 0 x n, n N,

Lisätiedot

Säännöllisten kielten sulkeumaominaisuudet

Säännöllisten kielten sulkeumaominaisuudet Säännöllisten kielten sulkeumaominaisuudet Osoitamme nyt, että säännöllisten kielten joukko on suljettu yhdisteen, konkatenaation ja tähtioperaation suhteen. Toisin sanoen jos A ja B ovat säännöllisiä,

Lisätiedot

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

= 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ätiedot

Syötteen ainoalla rivillä on yksi positiivinen kokonaisluku, joka on alle 1000000000000 = 10 12. Luvussa ei esiinny missään kohtaa numeroa 0.

Syötteen ainoalla rivillä on yksi positiivinen kokonaisluku, joka on alle 1000000000000 = 10 12. Luvussa ei esiinny missään kohtaa numeroa 0. A Alkulukuosat Tehtävänä on laskea annetusta kokonaisluvusta niiden osajonojen määrä, joita vastaavat luvut ovat alkulukuja. Esimerkiksi luvun 123 kaikki osajonot ovat 1, 2, 3, 12, 23 ja 123. Näistä alkulukuja

Lisätiedot

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

TIEA241 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ätiedot

Laskentaa DNA- ja RNA-molekyyleillä. Olli Niemitalo, 7.12.2011

Laskentaa DNA- ja RNA-molekyyleillä. Olli Niemitalo, 7.12.2011 Laskentaa DNA- ja RNA-molekyyleillä Olli Niemitalo, 7.12.2011 1 Sisällys 1 Johdanto... 2 1.1 DNA ja RNA... 2 1.2 Boolen algebra... 3 1.3 Binääriluvut... 4 1.4 Turingin kone... 4 1.5 Tilakone... 5 1.6 Laskettavuusteoria...

Lisätiedot

Algoritmit 2. Luento 9 Ti Timo Männikkö

Algoritmit 2. Luento 9 Ti Timo Männikkö Algoritmit 2 Luento 9 Ti 17.4.2018 Timo Männikkö Luento 9 Merkkitiedon tiivistäminen Huffmanin koodi LZW-menetelmä Taulukointi Editointietäisyys Algoritmit 2 Kevät 2018 Luento 9 Ti 17.4.2018 2/29 Merkkitiedon

Lisätiedot

Algoritmin määritelmä [Sipser luku 3.3]

Algoritmin 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ätiedot

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

TIEA241 Automaatit ja kieliopit, kevät 2011 (IV) Antti-Juhani Kaijanaho. 19. tammikuuta 2012 TIEA241 Automaatit ja kieliopit, kevät 2011 (IV) Antti-Juhani Kaijanaho TIETOTEKNIIKAN LAITOS 19. tammikuuta 2012 Sisällys 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

Lisätiedot

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

TIEA241 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ätiedot

Muunnelmia Turingin koneista sekä muita vaihtoehtoisia malleja

Muunnelmia 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ätiedot

Tarkennamme geneeristä painamiskorotusalgoritmia

Tarkennamme geneeristä painamiskorotusalgoritmia Korotus-eteen-algoritmi (relabel-to-front) Tarkennamme geneeristä painamiskorotusalgoritmia kiinnittämällä tarkasti, missä järjestyksessä Push- ja Raise-operaatioita suoritetaan. Algoritmin peruskomponentiksi

Lisätiedot

Concurrency - Rinnakkaisuus. Group: 9 Joni Laine Juho Vähätalo

Concurrency - Rinnakkaisuus. Group: 9 Joni Laine Juho Vähätalo Concurrency - Rinnakkaisuus Group: 9 Joni Laine Juho Vähätalo Sisällysluettelo 1. Johdanto... 3 2. C++ thread... 4 3. Python multiprocessing... 6 4. Java ExecutorService... 8 5. Yhteenveto... 9 6. Lähteet...

Lisätiedot

1. (a) Seuraava algoritmi tutkii, onko jokin luku taulukossa monta kertaa:

1. (a) Seuraava algoritmi tutkii, onko jokin luku taulukossa monta kertaa: Tietorakenteet, laskuharjoitus 10, ratkaisuja 1. (a) Seuraava algoritmi tutkii, onko jokin luku taulukossa monta kertaa: SamaLuku(T ) 2 for i = 1 to T.length 1 3 if T [i] == T [i + 1] 4 return True 5 return

Lisätiedot

Algoritmit 2. Luento 10 To Timo Männikkö

Algoritmit 2. Luento 10 To Timo Männikkö Algoritmit 2 Luento 10 To 11.4.2019 Timo Männikkö Luento 10 Merkkitiedon tiivistäminen LZW-menetelmä Taulukointi Editointietäisyys Peruutusmenetelmä Osajoukon summa Algoritmit 2 Kevät 2019 Luento 10 To

Lisätiedot

Algoritmit 2. Luento 14 Ke Timo Männikkö

Algoritmit 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ätiedot

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

uv n, v 1, ja uv i w A kaikilla 2.8 Säännöllisten kielten rajoituksista Kardinaliteettisyistä on oltava olemassa (paljon) ei-säännöllisiä kieliä: kieliä on ylinumeroituva määrä, säännöllisiä lausekkeita vain numeroituvasti. Voidaanko

Lisätiedot

Kaulaketju. Syöte. Tuloste. Esimerkki 1. Esimerkki 2

Kaulaketju. Syöte. Tuloste. Esimerkki 1. Esimerkki 2 A Kaulaketju Kaulaketjussa on sinisiä ja punaisia helmiä tietyssä järjestyksessä. Helmien järjestys voidaan esittää merkkijonona, jossa S vastaa sinistä helmeä ja P punaista helmeä. Esimerkiksi ketjussa

Lisätiedot

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

Pinoautomaatit. TIEA241 Automaatit ja kieliopit, kesä Antti-Juhani Kaijanaho. 6. kesäkuuta 2013 TIETOTEKNIIKAN LAITOS. Pinoautomaatit. TIEA241 Automaatit ja kieliopit, kesä 2013 Antti-Juhani Kaijanaho TIETOTEKNIIKAN LAITOS 6. kesäkuuta 2013 Sisällys Aikataulumuutos Tämänpäiväinen demotilaisuus on siirretty maanantaille klo 14:15 (Ag Delta).

Lisätiedot

Tehtävä 2: Tietoliikenneprotokolla

Tehtävä 2: Tietoliikenneprotokolla Tehtävä 2: Tietoliikenneprotokolla Johdanto Tarkastellaan tilannetta, jossa tietokone A lähettää datapaketteja tietokoneelle tiedonsiirtovirheille alttiin kanavan kautta. Datapaketit ovat biteistä eli

Lisätiedot

Integrointialgoritmit molekyylidynamiikassa

Integrointialgoritmit molekyylidynamiikassa Integrointialgoritmit molekyylidynamiikassa Markus Ovaska 28.11.2008 Esitelmän kulku MD-simulaatiot yleisesti Integrointialgoritmit: mitä integroidaan ja miten? Esimerkkejä eri algoritmeista Hyvän algoritmin

Lisätiedot

Algoritmit 2. Luento 13 Ti Timo Männikkö

Algoritmit 2. Luento 13 Ti Timo Männikkö Algoritmit 2 Luento 13 Ti 30.4.2019 Timo Männikkö Luento 13 Simuloitu jäähdytys Merkkijonon sovitus Horspoolin algoritmi Ositus ja rekursio Rekursion toteutus Algoritmit 2 Kevät 2019 Luento 13 Ti 30.4.2019

Lisätiedot

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

TIEA241 Automaatit ja kieliopit, kevät 2011 (IV) Antti-Juhani Kaijanaho. 16. toukokuuta 2011 TIEA241 Automaatit ja kieliopit, kevät 2011 (IV) Antti-Juhani Kaijanaho TIETOTEKNIIKAN LAITOS 16. toukokuuta 2011 Sisällys engl. random-access machines, RAM yksinkertaistettu nykyaikaisen (ei-rinnakkaisen)

Lisätiedot