Esimerkkejä vaativuusluokista

Samankaltaiset tiedostot
Tietorakenteet ja algoritmit - syksy

Laskuharjoitus 5. Mitkä ovat kuvan 1 kanavien kapasiteetit? Kuva 1: Kaksi kanavaa. p/(1 p) ) bittiä lähetystä kohti. Voidaan

Algoritmit 1. Luento 2 Ke Timo Männikkö

Algoritmit 1. Luento 1 Ti Timo Männikkö

7.4 Sormenjälkitekniikka

Tietorakenteet ja algoritmit Johdanto Lauri Malmi / Ari Korhonen

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

Algoritmit 2. Luento 14 Ke Timo Männikkö

3. Laskennan vaativuusteoriaa

Algoritmit 2. Luento 13 Ti Timo Männikkö

Algoritmit 2. Luento 13 Ti Timo Männikkö

Mat Lineaarinen ohjelmointi

Nopea kertolasku, Karatsuban algoritmi

811312A Tietorakenteet ja algoritmit, , Harjoitus 3, Ratkaisu

Määrittelydokumentti

Algoritmit 1. Luento 3 Ti Timo Männikkö

Tietorakenteet, laskuharjoitus 2,

Algoritmien suunnittelu ja analyysi (kevät 2004) 1. välikoe, ratkaisuja

Algoritmit lyhyiden sekvenssien rinnastamiseen referenssigenomia vasten. Krista Longi

Esimerkkejä polynomisista ja ei-polynomisista ongelmista

1.9 Harjoituksia. Frekvenssijakaumien harjoituksia. MAB5: Tilastotieteen lähtökohdat. a) Kaikki aakkoset b) Kirjaimet L, E, M, C, B, A ja i.

Sekvenssien segmentointi. Merkkijonoja. Sekvenssien segmentointi. ja dynaaminen ohjelmointi

Algoritmit 2. Luento 13 Ti Timo Männikkö

Sekvenssien segmentointi. Merkkijonoja. Sekvenssien segmentointi. ja dynaaminen ohjelmointi

1.4 Funktioiden kertaluokat

811312A Tietorakenteet ja algoritmit I Johdanto

Ohjelmoinnin perusteet, syksy 2006

58131 Tietorakenteet ja algoritmit (syksy 2015)

Algoritmit 2. Luento 10 To Timo Männikkö

Algoritmi on periaatteellisella tasolla seuraava:

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

Algoritmit 2. Luento 14 To Timo Männikkö

Algoritmit 1. Demot Timo Männikkö

TUTKIMUSAINEISTON ANALYYSI. LTKY012 Timo Törmäkangas

Hahmon etsiminen syotteesta (johdatteleva esimerkki)

Algoritmit 2. Luento 9 Ti Timo Männikkö

TUTKIMUSAINEISTON KVANTITATIIVINEN ANALYYSI LTKY012. Timo Törmäkangas

Algoritmit 2. Luento 1 Ti Timo Männikkö

Vuonohjaus: ikkunamekanismi

Algoritmit 1. Demot Timo Männikkö

Tarkennamme geneeristä painamiskorotusalgoritmia

TUTKIMUSAINEISTON ANALYYSI. LTKY012 Timo Törmäkangas

Harjoitus 3 ( )

Esimerkki 1: auringonkukan kasvun kuvailu

Algoritmit 2. Luento 12 To Timo Männikkö

Koe ma 1.3 klo salissa A111, koeaika kuten tavallista 2h 30min

58131 Tietorakenteet Erilliskoe , ratkaisuja (Jyrki Kivinen)

4.1. Olkoon X mielivaltainen positiivinen satunnaismuuttuja, jonka odotusarvo on

Luku 3. Listankäsittelyä. 3.1 Listat

30A02000 Tilastotieteen perusteet

Harjoitus 5. Esimerkki ohjelman toiminnasta: Lausekielinen ohjelmointi I Kesä 2018 Avoin yliopisto 1 / 5

Merkkijonotäsmäyksestä. Heikki Hyyrö

Algoritmit 1. Luento 14 Ke Timo Männikkö

Yhtälöryhmät 1/6 Sisältö ESITIEDOT: yhtälöt

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

Tietorakenteet, laskuharjoitus 3, ratkaisuja

Tehtävä 2: Tietoliikenneprotokolla

Talousmatematiikan perusteet: Luento 12. Lineaarinen optimointitehtävä Graafinen ratkaisu Ratkaisu Excel Solverilla

4 Tehokkuus ja algoritmien suunnittelu

S: siirtää listan ensimmäisen luvun viimeiseksi V: vaihtaa keskenään listan kaksi ensimmäistä lukua

Algoritmit 1. Luento 13 Ti Timo Männikkö

Sovellettu todennäköisyyslaskenta B

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

SÄHKE-hanke. Abstrakti mallintaminen Tietomallin (graafi) lukuohje

GeoGebra tutkivan oppimisen välineenä: havainto-hypoteesi-testaus

TEEMU ROOS (KALVOT MUOKATTU PATRIK HOYERIN LUENTOMATERIAALISTA)

Tietorakenteet, laskuharjoitus 7, ratkaisuja

Laskennan vaativuus ja NP-täydelliset ongelmat

Kaksiluokkainen tapaus, lineaarinen päätöspinta, lineaarisesti erottuvat luokat

Tietorakenteet ja algoritmit

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

815338A Ohjelmointikielten periaatteet Harjoitus 3 vastaukset

Muita vaativuusluokkia

MS-C1340 Lineaarialgebra ja

Harjoitus 5 (viikko 41)

Helsingin yliopisto/tktl Kyselykielet, s 2006 Optimointi Harri Laine 1. Kyselyn optimointi. Kyselyn optimointi

Insinöörimatematiikka D

tään painetussa ja käsin kirjoitetussa materiaalissa usein pienillä kreikkalaisilla

Ohjelmoinnin perusteet Y Python

Abstraktiot ja analyysi algoritmit ja informaation esitykset

Algoritmit 1. Luento 12 Ke Timo Männikkö

Kombinatorinen optimointi

ALGORITMIT & OPPIMINEN

58131 Tietorakenteet ja algoritmit Uusinta- ja erilliskoe ratkaisuja (Jyrki Kivinen)

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

ELEC-C3240 Elektroniikka 2

(a) L on listan tunnussolmu, joten se ei voi olla null. Algoritmi lisäämiselle loppuun:

T Syksy 2004 Logiikka tietotekniikassa: perusteet Laskuharjoitus 7 (opetusmoniste, kappaleet )

Ohjeita fysiikan ylioppilaskirjoituksiin

Relevanttien sivujen etsintä verkosta: satunnaiskulut verkossa Linkkikeskukset ja auktoriteetit (hubs and authorities) -algoritmi

Ohjelmoinnin perusteet Y Python

T Datasta tietoon, syksy 2005 Laskuharjoitus 8.12., ratkaisuja Jouni Seppänen

Tehtävät 1/11. TAMPEREEN YLIOPISTO Informaatiotieteiden tiedekunta Valintakoe Matematiikka ja tilastotiede. Sukunimi (painokirjaimin)

Datatähti 2019 loppu

Harjoitus 3 ( )

Malliratkaisut Demot

Algoritmit 1. Luento 12 Ti Timo Männikkö

Ohjelmoinnin perusteet Y Python

A TIETORAKENTEET JA ALGORITMIT

Inversio-ongelmien laskennallinen peruskurssi Luento 2

Transkriptio:

Esimerkkejä vaativuusluokista Seuraaville kalvoille on poimittu joitain esimerkkejä havainnollistamaan algoritmien aikavaativuusluokkia. Esimerkit on valittu melko mielivaltaisesti laitoksella tehtävään tutkimukseen liittyen. Ne eivät pyri antamaan mitenkään tasapainoista kuvaa siitä, millaisia aikavaativuudet yleensä ovat (sikäli kuin tällainen tavoite olisi edes mielekäs). (Tämä materiaali täydentää luentokalvon 46 listaa.) 1

Assosiaatiosääntöjen louhiminen Tarkastellaan taulukkoa A[1.. m, 1.. n], missä sarakkeet 1 j n esittävät attribuutteja; esim. kaupassa myytävät tuotteet rivit 1 j m esittävät transaktioita; esim. kunkin asiakkaan ostoskori A[i, j] = 1 tarkoittaa, että transaktiolla i on attribuutti j; esim. asiakkaan i ostoskorissa oli tuote j Halutaan löytää assosiaatiosääntöjä, jotka kertovat, mitkä attribuuttiyhdistelmät tyypillisesti esiintyvät samoissa transaktioissa; esim. asiakkaat, jotka ostivat olutta ja sinappia, yleensä ostivat myös makkaraa. Kyseessä on tiedonlouhinnan perusongelma, joka voidaan ratkaista ajassa O(mn2 n ) soveltamalla tunnettua Apriori-algoritmia. 2

Assosiosääntöjen louhimisen aikavaativuudesta O(mn2 n ) huomattavaa: Riippuvuus transaktioiden lukumäärästä m on lineaarinen, joten ratkaisu skaalautuu hyvin suurellekin joukolle transaktioita. Riippuvuus attribuuttien lukumäärästä n on eksponentiaalinen, joten attribuuttien lisääminen johtaa nopeasti tehokkuusongelmiin. Mutta: kerroin 2 n on hyvin pessimistinen yläraja, todellinen suoritusaika vaihtelee paljon sen mukaan, millaista data todella on. Käytännössä esim. m voi olla joitakin miljoonia ja n 1000, jolloin suoritusaika voi olla minuutteja tai tunteja. Sivuutamme tässä O-merkinnän täsmällisen määrittelyn kun muuttujia on useita, esim. tässä m ja n. 3

Likimääräinen hahmonsovitus On annettu kaksi merkkijonoa: pitkä teksti; esim. ihmisen koko DNA n. 3 gigatavua lyhyempi hahmo; esim. n. 100 tavun mittainen DNA-pätkä Halutaan tietää, esiintyykö hahmo osamerkkijonona tekstissä, kun sallitaan vähäinen määrä virheitä. Esim. tekstissä KAALILAATIKKO hahmolla AALI on yksi virheetön esiintymä: KAALILAATIKKO yksi esiintymä, jossa yksi virhe: KAALILAATIKKO 4

Likimääräinen hahmonsovitus ratkeaa dynaaminen ohjelmointi -nimisellä perustekniikalla ajassa O(mn), missä m on hahmon ja n tekstin pituus. Aikavaativuus O(mn) on periaatteessa neliöllinen syötteen koon m + n suhteen, mutta tämä on hieman harhaanjohtava ilmaus, koska yleensä n m. Esimerkissä m = 3 10 9 ja n = 100 ajoaika voisi olla suunnilleen 5 tuntia. Pelkkä ihmisen täyden DNA:n lukeminen levyltä vie pari minuuttia. Jos halutaan vain virheettömät esiintymät, tehokkaammilla algoritmeilla päästään aikavaativuuteen O(m), jolloin aikaa ei käytännössä kulu juuri enempää kuin pelkkään syötteen lukemiseen levyltä. 5

Parhaan todennäköisyysmallin etsiminen Leikkikaluesimerkki: Henkilön luottotiedot kuvataan muuttujilla Ikä, Sukupuoli, Koulutus, Palkka ja Maksuhäiriö. Kun valitaan satunnainen henkilö populaatiosta ja annetaan häntä koskevat muuttujien arvot, saadaan esimerkki. Muuttujien tilastollisia riippuvuuksia voidaan kuvata graafisilla malleilla eli Bayes-verkoilla. Esim. graafinen malli Ikä Palkka Sukupuoli Häiriö Koulutus esittää tilannetta, jossa Maksuhäiriö riippuu suoraan muutujista Palkka ja Koulutus, mutta vain välillisesti muuttujista Ikä ja Sukupuoli. Tavoitteena on löytää jossain mielessä parhaiten esimerkkijoukon jakaumaa kuvaava graafinen malli; ts. mitkä nuolet kaaviossa pitäisi olla. 6

Jos muuttujia on n, niin erilaisten mallien lukumäärälle saadaan yläraja O(2 n2 ), mikä kasvaa todella nopeasti muuttujan n funktiona. Tekemällä pieniä lisäoletuksia ja suunnittelemalla algoritmi hyvin saadaan aikavaativuus kuitenkin luokkaan O(n2 n ). Tämä on edelleen iso, mutta ei aivan mahdoton. (Lisäksi aikavaativuus skaalautuu lineaarisesti esimerkkien lukumäärän suhteen, samaan tapaan kuin assosiaatiosääntöjen louhinnassa.) Tyypillisillä esimerkkijoukoilla voidaan optimoida esim. 30 muuttujan malli 10 tunnissa käyttäen 8 prosessoria. Algoritmin laskennallisesti vaativin osa rinnakkaistuu helposti. Käytännössä muuttujia on usein paljon enemmän kuin 30 ja käytetään heuristisia menetelmiä, jotka eivät takaa parhaan ratkaisun löytymistä. Kun Mooren lain mukaan tietokoneiden nopeus kaksinkertaistuu 18 kuukaudessa, voidaan tehokkaampia koneita ostamalla kasvattaa optimoitavien mallien kokoa vajaan yhden muuttujan verran vuodessa. 7