7. Satunnaisalgoritmit (randomized algorithms)

Koko: px
Aloita esitys sivulta:

Download "7. Satunnaisalgoritmit (randomized algorithms)"

Transkriptio

1 7. Satunnaisalgoritmit (randomized algorithms) Satunnaisuudella on laskentaongelmien ratkaisemisessa moninaisia käyttötapoja. Tässä tarkastellaan lähinnä perinteisten algoritmien nopeuttamista, ja sitäkin suhteellisen pinnallisesti. Tämän luvun jälkeen opiskelija omaa yleiskuvan satunnaisuuden käyttötavoista, osaa luokitella satunnaisalgoritmeja niiden laatukriteerien mukaan (esim. Monte Carlo vs. Las Vegas), tuntee edustavan joukon esimerkkejä satunnaisalgoritmien suunnittelutekniikoista (Sherwood-algoritmit, otanta, sormenjälkitekniikka) osaa soveltaa odotusarvojen ja virherajojen arvioimisen perustekniikoita (odotusarvon lineaarisuus, binomijakauma), Aiheesta on luennoitu erikoiskurssi viimeksi keväällä Hyvä oppikirja on Motwani ja Raghavan: Randomized algorithms. 344

2 7.1 Peruskäsitteitä Satunnaisuutta voidaan käyttää useisiin eri tarkoituksiin, kuten symmetrian rikkominen (hajautetut järjestelmät) vastustajan hämääminen (pelit, salaus) otanta tavallisten laskentaongelmien nopea ratkaiseminen arvaamalla monimutkaisten algoritmien yksinkertaistaminen (esim. aiemmin esitetty mediaanialgoritmi) yleiskäyttöiset optimointimenetelmät (simuloitu jäähdytys, geneettiset algoritmit) uudet laskentaparadigmat (kvanttilaskenta jne.) 345

3 Mielenkiintoinen periaatteellinen kysymys: mitä satunnaisuudella todella voidaan voittaa? Toisinaan satunnaisalgoritmeja saadaan derandomisoiduksi. Ehkä kuitenkin joissain tilanteissa satunnaisuudesta on aidosti hyötyä? Jos näin on, mitä on ajateltava pseudosatunnaislukugeneraattoreista, joihin käytännön sovellukset yleensä perustuvat? Yleisesti uskotaan, että perinteinen satunnaisuus ei riitä NP-kovien ongelmien ratkaisemiseen polynomisessa ajassa. Kvanttilaskennan asema on epäselvempi. 346

4 Ensimmäisenä johdattelevana esimerkkinä tarkastellaan seuraavaa satunnaistettua pikajärjestämisalgoritmia: RandQS(A): if A > 1 then p := random(1.. A ) pivot := A[p] Vertaa alkiota pivot kaikkiin taulukon A alkioihin. Muodosta taulukko A 1 alkiota pivot pienemmistä ja A 2 alkiota pivot suuremmista alkioista. RandQS(A 1 ) RandQS(A 2 ) return A 1 [pivot] A 2 else return A Kutsu RandQS(A) järjestää taulukon A. (Oletamme yksinkertaisuuden vuoksi, että taulukon luvut ovat erisuuria.) Funktio random(i..j) palauttaa satunnaisen luvun joukosta { i, i + 1,..., j } siten, että jokaisella luvulla on sama todennäköisyys ja eri kutsukertojen tulokset ovat toisistaan riippumattomia. Merkintä A B tarkoittaa taulukoiden A ja B yhdistämistä peräkkäin. Olkoon C taulukko, jossa on n lukua, pienimmästä suurimpaan x 1,..., x n. Analysoidaan kutsua RandQS(C). 347

5 Olkoon X rs satunnaismuuttuja, joka kertoo kuinka monta kertaa alkioita x r ja x t verrattiin toisiinsa kutsun RandQS(C) suorituksen aikana. Tietyn suorituskerran kokonaisaikavaativuus on selvästi verrannollinen vertailujen lukumäärään n r 1 r=1 s=1 X rs. Tarkastellaan tämän odotusarvoa [ n ] r 1 n E X rs = r=1 s=1 r 1 r=1 s=1 E [X rs ] missä on käytetty hyväksi odotusarvon lineaarisuutta. Koska X rs on joko 1 tai 0, saadaan E[X rs ] = 0 (1 p rs ) + 1 p rs = p rs missä p rs on todennäköisyys, että alkioita x r ja x s verrataan. Haluamme siis arvioida summaa n r 1 p rs. r=1 s=1 348

6 Määritellään binääripuu T (A) kaikille niille A, joilla kutsun RandQS(C) suorituksen aikana tehtiin rekursiivinen kutsu RandQS(A). Puussa on n solmua, joihin sijoitellaan luvut x 1,..., x n. Määritelmä on rekursiivinen. Jos A = 0, niin T (A) on tyhjä puu. Jos A = 1, niin T (A) on lehti, jossa on taulukon A ainoa alkio. Muuten olkoon pivot, A 1 ja A 2 kuten algoritmissa. Nyt T (A) on puu, jonka juuressa on luku pivot, vasempana alipuuna T (A 1 ) ja oikeana T (A 2 ). Siis puun T (A) vasemmassa alipuussa ovat juurta pienemmät ja oikeassa juurta suuremmat taulukon alkiot. Järjestys x 1,..., x n vastaa puun T (C) läpikäyntiä sisäjärjestyksessä. 349

7 Algoritmin ja puun T (A) määritelmistä seuraa, että kutsun RandQS(A) suorituksen aikana puun juurta verrataan tasan kerran kuhunkin muuhun puun alkiooon. Siis X rs = 1 jos ja vain jos joko x r on alkion x s jälkeläinen puussa T (C) tai kääntäen. Olkoon π taulukon C järjestys, joka saadaan luettelemalla ensin puun T (C) juuri, sitten juuren lapset vasemmalta oikealle, sitten lapsenlapset vasemmalta oikealle jne. Olkoon s < r. Siis x q on solmujen x r ja x s lähin yhteinen esivanhempi, jos se on järjestyksessä π ensimmäinen jolla x s x q x r. Tämä on yhtäpitävää sen kanssa, että x q päätyy pivot-alkioksi aiemmalla rekursiotasolla kuin mikään muu alkio joukosta { x s, x s+1,..., x r }. Siis X rs = 1 jos ensimmäinen joukosta { x s, x s+1,..., x r } valittava pivot on joko x r tai x s. Koska pivot valitaan satunnaisesti, tämän todennäköisyys on 2/(r s + 1). 350

8 Saadaan n r 1 r=1 s=1 p rs = = Koska H n ln n, saadaan 2 n r 1 r=1 s=1 r 1 n r=1 k=1 n r=1 k=1 = 2nH n. 2 r s k + 1 n 1 Lause Algoritmi RandQS tekee odotusarvoisesti O(n log n) vertailua n-alkioisen taulukon järjestämisessä. k 351

9 Huomioita: Deterministisessä pikajärjestämisessä aikavaativuus on O(n log n) keskimäärin, kun oletetaan syötteen eri järjestyksen yhtä todennäköisiksi. Tässä odotusarvo on algoritmin sisäisten rahanheittojen yli; ei tarvita oletuksia syötteestä. Jos käytettävissä tosiaan on rahanheittoja eli (pseudo)satunnaisia bittejä, satunnaislukujen generoiminen mielivaltaisesta joukosta { 1,..., n } on hieman epätriviaalia (mutta ei tässä mikään varsinainen ongelma). Tarkemmalla analyysilla voidaan osoittaa, että suurella todennäköisyydellä suoritus on O(n log n). Toisin sanoen suuren poikkeamat ovat epätodennäköisiä, mikä usein on tärkeää. 352

10 Toisena johdantoesimerkkinä tarkastellaan verkon minimileikkauksen määrittämistä. On järkevää ratkaista ongelma yleisemmin moniverkoille G = (V, E) missä siis E V V on monijoukko (multiset, bag; sama kaari saa esiintyä monta kertaa). Emme jatkossa toista etuliitettä moni. Jatkossa n = V ja m = E. Kaarijoukko C E on leikkaus, jos verkko (V, E C) on epäyhtenäinen. Leikkaus C on minimileikkaus, jos kaikilla leikkauksilla C pätee C C. Aiemmin todetun perusteella (s ) minimileikkausongelma palautuu maksimivuo-ongelmaan, jos on lisäksi annettu solmut s ja t joiden tiedetään olevan minimileikkauksen eri puolilla. Jos tällaisia solmuja ei tunneta, ongelma voidaan silti ratkaista etsimällä V maksimivuota (harjoitus 12, tehtävä 2). Itse asiassa ongelma voidaan ratkaista verkkovuota käyttämällä ajassa O(nm log(n 2 /m)). Esitämme seuraavaksi periaatetasolla yksinkertaisen satunnaisalgoritmin ongelmalle. Ideaa tarkentamalla saadaan satunnaisalgoritmi, joka suurella todennäköisyydellä löytää minimileikkauksen ajassa O(n 2 (log n) c ) jollain vakiolla c. (Palaamme pian siihen, mitä suurella todennäköisyydellä tarkalleen tarkoittaa.) 353

11 Kaaren e = (u, v) E kutistaminen (contraction) tarkoitaa solmujen u ja v liittämistä yhdeksi uudeksi solmuksi. Kaari (u, v) häviää ja muuten solmuihin u ja v tulevat kaaret korvautuvat uuteen solmuun liittyvillä kaarilla. b b a c i a c i e k l j h e j h d f g d f g Esimerkki kutistuksesta; selvyyden vuoksi kaaret nimetty. Kutistettavana jompi kumpi kaarista k tai l. Jos verkko G on saatu kutistuksella verkosta G, ja C on leikkaus verkossa G, niin C on selvästi leikkaus myös verkossa G (kun ajatellaan kaarten identiteetit säilytetyksi ylläolevan esimerkin tapaan). Siis erityisesti kutistuksessa minimileikkauksen koko ei pienene. Minimileikkauksen koko voi kasvaa, jos kutistettavana on minimileikkaukseen kuuluva kaari. 354

12 Saadaan seuraava periaatealgoritmi, joka löytää verkossa G = (V, E) jonkin leikkauksen: 1. Valitse satunnainen kaari e E ja kutista se. 2. Jos V > 2, palaa kohtaan Nyt E on leikkaus. Tässä siis taas oletetaan, että kaarilla on identiteetti josta pidetään kirjaa kutistuksissa. Lopuksi V = { a, b } joillain a, b, ja kaikki kaaret ovat solmujen a ja b välillä. Jos näiden kaarten vastinkaaret poistetaan alkuperäisestä verkosta, syntyy kaksi erillistä komponenttia, jotka koostuvat solmuun a päätyvistä ja solmuun b päätyvistä solmuista. Siis lopuksi E todella on leikkaus. Olkoon C jokin alkuperäisen verkon G minimileikkaus, ja k = C. Jos kutistettavaksi ei koskaan valita joukon C kaarta, niin lopuksi E = C. Tässä vaiheessa verkossa voi olla jäljellä vain kaksi solmua, sillä muuten jokin leikkauksen C aito osajoukko olisi leikkaus. Siis algoritmi löysi minimileikkauksen. Analysoidaan siis todennäköisyyttä, että kaikki satunnaiset valinnat osuvat joukon C ulkopuolelle. 355

13 b e e a d f g c h c b e e g a c f g c h h b e a g c h Eräs minimileikkausalgoritmin suoritus. Kutistettavat kaaret valittu sopivasti (d, f, a, h) niin, että löytyy minimileikkaus { e, c }. 356

14 Kiinnitetään jokin minimileikkaus C, C = k. Tällöin verkon jokaisen solmun v asteluku on ainakin k, koska muuten solmuun v päättyvät kaaret muodostaisivat pienemmän leikkauksen. Lisäksi missä tahansa algoritmin suoritusvaiheessa, jos ei vielä ole kutistettu mitään joukkoon C kuuluvaa kaarta, niin C on edelleen minimileikkaus ja jokaisen solmun asteluku on edelleen ainakin k. Oletetaan, että vaiheissa 1,..., i on kutistettu vain joukkoon C kuulumattomia kaaria. Koska solmuja on jäljellä n i, niin kaaria on jäljellä ainakin k(n i)/2. Todennäköisyys, että seuraava valinta osuu joukkoon C, on korkeintaan k/(k(n i)/2) = 2/(n i). Siis todennäköisyys osua joukon C ulkopuolelle vaiheessa i + 1, jos aina ennenkin on osuttu, on ainakin 1 2/(n i). Todennäköisyys pysyä joukon C ulkopuolella kaikissa vaiheissa 1,..., n 2 on ainakin n 3 i=0 ( 1 2 ) n i = = = n 3 i=0 n i 2 n i (n 2)(n 3) n(n 1) n(n 1). 357

15 Olemme siis osoittaneet, että ainakin todennäköisyydellä 2/(n(n 1)) > 2/n 2 mitään joukon C kaarta ei valita, jolloin algoritmi palauttaa minimileikkauksen C. Tämä onnistumistodennäköisyys on tietysti häviävän pieni vähänkään suuremmilla n. Menetellään nyt niin, että toistetaan algoritmia n 2 /2 kertaa, ja valitaan löydetyistä leikkauksista pienin. Jos ei löydetty minimileikkausta, niin kaikki suorituskerrat epäonnistuivat, minkä todennäköisyys on korkeintaan (1 2n 2 ) n2 /2 < e 1. Tämä todennäköisyys saadaan mielivaltaisen pieneksi toistamalla algoritmia riittävän monta kertaa. Palaamme pian tämäntyyppisen tilanteen tarkempaan analyysiin. 358

16 7.2 Satunnaisalgoritmien luokittelua Hyvällä onnella tietysti kaikki satunnaisalgoritmit antavat hyvän ratkaisun. Algoritmeja voidaan luokitella sen mukaan, mitä yleisiä toimivuustakuita niillä on: Las Vegas -algoritmit: vastaus on aina oikein, mutta pienellä todennäköisyydellä suoritus voi kestää kauan Monte Carlo -algoritmit: vastaus saa olla väärä pienellä todennäköisyydellä Satunnaiset approksimointialgoritmit: suurella todennäköisyydellä vastaus on ainakin suunnilleen oikein Edellä esitetyistä RandQS oli tyyppiä Las Vegas ja minimileikkaus tyyppiä Monte Carlo. Nimitys Las Vegas on melko tuore [Babai 1979]. Perinteisesti kaikenlaisia satunnaisalgoritmeja, kuten numeerisia approksimointialgoritmeja, on nimitetty Monte Carlo -algoritmeiksi. Las Vegas -nimikettä käytetään toisinaan sellaisista algoritmeista, jotka toimivat aina nopeasti eivätkä koskaan anna väärää vastausta, mutta toisinaan vastaavat en tiedä. Tämä on oleellisesti sama käsite kuin edellä esitetty. 359

7.4 Sormenjälkitekniikka

7.4 Sormenjälkitekniikka 7.4 Sormenjälkitekniikka Tarkastellaan ensimmäisenä esimerkkinä pitkien merkkijonojen vertailua. Ongelma: Ajatellaan, että kaksi n-bittistä (n 1) tiedostoa x ja y sijaitsee eri tietokoneilla. Halutaan

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

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

V. V. Vazirani: Approximation Algorithms, luvut 3-4 Matti Kääriäinen V. V. Vazirani: Approximation Algorithms, luvut 3-4 Matti Kääriäinen Luento omatoimisen luennan tueksi algoritmiikan tutkimusseminaarissa 23.9.2002. 1 Sisältö Esitellään ongelmat Steiner-puu Kauppamatkustajan

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

Valitaan alkio x 1 A B ja merkitään A 1 = A { x 1 }. Perinnöllisyyden nojalla A 1 I.

Valitaan alkio x 1 A B ja merkitään A 1 = A { x 1 }. Perinnöllisyyden nojalla A 1 I. Vaihto-ominaisuudella on seuraava intuition kannalta keskeinen seuraus: Olkoot A I ja B I samankokoisia riippumattomia joukkoja: A = B = m jollain m > 0. Olkoon vielä n = m A B, jolloin A B = B A = n.

Lisätiedot

Hakupuut. tässä luvussa tarkastelemme puita tiedon tallennusrakenteina

Hakupuut. tässä luvussa tarkastelemme puita tiedon tallennusrakenteina Hakupuut tässä luvussa tarkastelemme puita tiedon tallennusrakenteina hakupuun avulla voidaan toteuttaa kaikki joukko-tietotyypin operaatiot (myös succ ja pred) pahimman tapauksen aikavaativuus on tavallisella

Lisätiedot

Algoritmit 2. Luento 7 Ti Timo Männikkö

Algoritmit 2. Luento 7 Ti Timo Männikkö Algoritmit 2 Luento 7 Ti 4.4.2017 Timo Männikkö Luento 7 Joukot Joukko-operaatioita Joukkojen esitystapoja Alkiovieraat osajoukot Toteutus puurakenteena Algoritmit 2 Kevät 2017 Luento 7 Ti 4.4.2017 2/26

Lisätiedot

Pinot, jonot, yleisemmin sekvenssit: kokoelma peräkkäisiä alkioita (lineaarinen järjestys) Yleisempi tilanne: alkioiden hierarkia

Pinot, jonot, yleisemmin sekvenssit: kokoelma peräkkäisiä alkioita (lineaarinen järjestys) Yleisempi tilanne: alkioiden hierarkia Pinot, jonot, yleisemmin sekvenssit: kokoelma peräkkäisiä alkioita (lineaarinen järjestys) Yleisempi tilanne: alkioiden hierarkia Kukin alkio (viite) talletettuna solmuun (node) vastaa paikan käsitettä

Lisätiedot

58131 Tietorakenteet ja algoritmit (syksy 2015) Toinen välikoe, malliratkaisut

58131 Tietorakenteet ja algoritmit (syksy 2015) Toinen välikoe, malliratkaisut Tietorakenteet ja algoritmit (syksy 0) Toinen välikoe, malliratkaisut. (a) Alussa puu näyttää tältä: Lisätään 4: 4 Tasapaino rikkoutuu solmussa. Tehdään kaksoiskierto ensin oikealle solmusta ja sitten

Lisätiedot

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

58131 Tietorakenteet ja algoritmit (kevät 2016) Ensimmäinen välikoe, malliratkaisut 58131 Tietorakenteet ja algoritmit (kevät 2016) Ensimmäinen välikoe, malliratkaisut 1. Palautetaan vielä mieleen O-notaation määritelmä. Olkoon f ja g funktioita luonnollisilta luvuilta positiivisille

Lisätiedot

TKT20001 Tietorakenteet ja algoritmit Erilliskoe , malliratkaisut (Jyrki Kivinen)

TKT20001 Tietorakenteet ja algoritmit Erilliskoe , malliratkaisut (Jyrki Kivinen) TKT0001 Tietorakenteet ja algoritmit Erilliskoe 5.1.01, malliratkaisut (Jyrki Kivinen) 1. [1 pistettä] (a) Esitä algoritmi, joka poistaa kahteen suuntaan linkitetystä järjestämättömästä tunnussolmullisesta

Lisätiedot

Pikalajittelu: valitaan ns. pivot-alkio esim. pivot = oikeanpuoleisin

Pikalajittelu: valitaan ns. pivot-alkio esim. pivot = oikeanpuoleisin Pikalajittelu: valitaan ns. pivot-alkio esim. pivot = oikeanpuoleisin jaetaan muut alkiot kahteen ryhmään: L: alkiot, jotka eivät suurempia kuin pivot G : alkiot, jotka suurempia kuin pivot 6 1 4 3 7 2

Lisätiedot

Algoritmit 1. Luento 8 Ke Timo Männikkö

Algoritmit 1. Luento 8 Ke Timo Männikkö Algoritmit 1 Luento 8 Ke 1.2.2017 Timo Männikkö Luento 8 Järjestetty binääripuu Solmujen läpikäynti Binääripuun korkeus Binääripuun tasapainottaminen Graafit ja verkot Verkon lyhimmät polut Fordin ja Fulkersonin

Lisätiedot

Verkkoalgoritmeja. Henry Niveri. hniveri(at)cc.hut.fi

Verkkoalgoritmeja. Henry Niveri. hniveri(at)cc.hut.fi Verkkoalgoritmeja Henry Niveri hniveri(at)cc.hut.fi Seminaariesitelmä 16.4.008 T-106.5800 Satunnaisalgoritmit Tietotekniikan laitos Teknillinen korkeakoulu Tiivistelmä Tässä esityksessä käsitellään satunnaisalgoritmien

Lisätiedot

Algoritmit 2. Luento 2 Ke Timo Männikkö

Algoritmit 2. Luento 2 Ke Timo Männikkö Algoritmit 2 Luento 2 Ke 15.3.2017 Timo Männikkö Luento 2 Tietorakenteet Lineaarinen lista, binääripuu Prioriteettijono Kekorakenne Keko-operaatiot Keon toteutus taulukolla Algoritmit 2 Kevät 2017 Luento

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

Algoritmi on periaatteellisella tasolla seuraava:

Algoritmi on periaatteellisella tasolla seuraava: Algoritmi on periaatteellisella tasolla seuraava: Dijkstra(V, E, l, v 0 ): S := { v 0 } D[v 0 ] := 0 for v V S do D[v] := l(v 0, v) end for while S V do valitse v V S jolle D[v] on minimaalinen S := S

Lisätiedot

58131 Tietorakenteet ja algoritmit (kevät 2014) Uusinta- ja erilliskoe, , vastauksia

58131 Tietorakenteet ja algoritmit (kevät 2014) Uusinta- ja erilliskoe, , vastauksia 58131 Tietorakenteet ja algoritmit (kevät 2014) Uusinta- ja erilliskoe, 10..2014, vastauksia 1. [9 pistettä] (a) Todistetaan 2n 2 + n + 5 = O(n 2 ): Kun n 1 on 2n 2 + n + 5 2n 2 + n 2 +5n 2 = 8n 2. Eli

Lisätiedot

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

A ja B pelaavat sarjan pelejä. Sarjan voittaja on se, joka ensin voittaa n peliä. Esimerkki otteluvoiton todennäköisyys A ja B pelaavat sarjan pelejä. Sarjan voittaja on se, joka ensin voittaa n peliä. Yksittäisessä pelissä A voittaa todennäköisyydellä p ja B todennäköisyydellä q =

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

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

58131 Tietorakenteet (kevät 2009) Harjoitus 11, ratkaisuja (Topi Musto)

58131 Tietorakenteet (kevät 2009) Harjoitus 11, ratkaisuja (Topi Musto) 811 Tietorakenteet (kevät 9) Harjoitus 11, ratkaisuja (Topi Musto) 1. Bellmanin-Fordin algoritmin alustusvaiheen jälkeen aloitussolmussa on arvo ja muissa solmuissa on arvo ääretön. Kunkin solmun arvo

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

6. Approksimointialgoritmit

6. Approksimointialgoritmit 6. Approksimointialgoritmit Tässä luvussa käsitellään lyhyesti approksimointiin liittyvät peruskäsitteet ja joitain keskeisiä approksimoituvuustuloksia. Tavoitteena on, että opiskelija näkee approksimointialgoritmien

Lisätiedot

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

Formalisoidaan hieman täsmällisemmin, millaisia suoritustakuita satunnaisalgoritmeilta voidaan vaatia. Satunnaisalgoritmien vaativuusteoriaa Formalisoidaan hieman täsmällisemmin, millaisia suoritustakuita satunnaisalgoritmeilta voidaan vaatia. Yksinkertaisuuden vuoksi tarkastellaan päätösongelmia. Useimmat

Lisätiedot

Algoritmit 2. Luento 2 To Timo Männikkö

Algoritmit 2. Luento 2 To Timo Männikkö Algoritmit 2 Luento 2 To 14.3.2019 Timo Männikkö Luento 2 Tietorakenteet Lineaarinen lista, binääripuu Prioriteettijono Kekorakenne Keko-operaatiot Keon toteutus taulukolla Algoritmit 2 Kevät 2019 Luento

Lisätiedot

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

(a) L on listan tunnussolmu, joten se ei voi olla null. Algoritmi lisäämiselle loppuun: Tietorakenteet ja algoritmit, kevät 201 Kurssikoe 1, ratkaisuja 1. Tehtävästä sai yhden pisteen per kohta. (a) Invariantteja voidaan käyttää algoritmin oikeellisuustodistuksissa Jokin väittämä osoitetaan

Lisätiedot

Konsensusongelma hajautetuissa järjestelmissä. Niko Välimäki Hajautetut algoritmit -seminaari

Konsensusongelma hajautetuissa järjestelmissä. Niko Välimäki Hajautetut algoritmit -seminaari Konsensusongelma hajautetuissa järjestelmissä Niko Välimäki 30.11.2007 Hajautetut algoritmit -seminaari Konsensusongelma Päätöksen muodostaminen hajautetussa järjestelmässä Prosessien välinen viestintä

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

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

Ei-yhteydettömät kielet [Sipser luku 2.3] Ei-yhteydettömät kielet [Sipser luku 2.3] Yhteydettömille kielille pätee samantapainen pumppauslemma kuin säännöllisille kielille. Siinä kuitenkin pumpataan kahta osamerkkijonoa samaan tahtiin. Lause 2.25

Lisätiedot

Tietorakenteet, laskuharjoitus 10, ratkaisuja. 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: 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

Lisätiedot

Algoritmit 2. Luento 12 Ke Timo Männikkö

Algoritmit 2. Luento 12 Ke Timo Männikkö Algoritmit 2 Luento 12 Ke 26.4.2017 Timo Männikkö Luento 12 Rajoitehaku Kauppamatkustajan ongelma Lyhin virittävä puu Paikallinen etsintä Vaihtoalgoritmit Geneettiset algoritmit Simuloitu jäähdytys Algoritmit

Lisätiedot

Todennäköisyyslaskenta I, kesä 2017 Helsingin yliopisto/avoin Yliopisto Harjoitus 1, ratkaisuehdotukset

Todennäköisyyslaskenta I, kesä 2017 Helsingin yliopisto/avoin Yliopisto Harjoitus 1, ratkaisuehdotukset Todennäköisyyslaskenta I, kesä 207 Helsingin yliopisto/avoin Yliopisto Harjoitus, ratkaisuehdotukset. Kokeet ja Ω:n hahmottaminen. Mitä tarkoittaa todennäköisyys on? Olkoon satunnaiskokeena yhden nopan

Lisätiedot

Eräs keskeinen algoritmien suunnittelutekniikka on. Palauta ongelma johonkin tunnettuun verkko-ongelmaan.

Eräs keskeinen algoritmien suunnittelutekniikka on. Palauta ongelma johonkin tunnettuun verkko-ongelmaan. 5. Verkkoalgoritmeja Eräs keskeinen algoritmien suunnittelutekniikka on Palauta ongelma johonkin tunnettuun verkko-ongelmaan. Palauttaminen edellyttää usein ongelman ja algoritmin pientä modifioimista,

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

Olkoon seuraavaksi G 2 sellainen tasan n solmua sisältävä suunnattu verkko,

Olkoon seuraavaksi G 2 sellainen tasan n solmua sisältävä suunnattu verkko, Tehtävä 1 : 1 a) Olkoon G heikosti yhtenäinen suunnattu verkko, jossa on yhteensä n solmua. Määritelmän nojalla verkko G S on yhtenäinen, jolloin verkoksi T voidaan valita jokin verkon G S virittävä alipuu.

Lisätiedot

Algoritmit 2. Luento 4 To Timo Männikkö

Algoritmit 2. Luento 4 To Timo Männikkö Algoritmit 2 Luento 4 To 21.3.2019 Timo Männikkö Luento 4 Hajautus Yhteentörmäysten käsittely Avoin osoitteenmuodostus Hajautusfunktiot Puurakenteet Solmujen läpikäynti Algoritmit 2 Kevät 2019 Luento 4

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

HY / Matematiikan ja tilastotieteen laitos Tilastollinen päättely II, kevät 2017 Harjoitus 1 Ratkaisuehdotuksia Tehtäväsarja I

HY / Matematiikan ja tilastotieteen laitos Tilastollinen päättely II, kevät 2017 Harjoitus 1 Ratkaisuehdotuksia Tehtäväsarja I HY / Matematiikan ja tilastotieteen laitos Tilastollinen päättely II, kevät 2017 Harjoitus 1 Ratkaisuehdotuksia Tehtäväsarja I Tehtävä 1 on klassikko. 1. Tässä tehtävässä tapahtumat A ja B eivät välttämättä

Lisätiedot

4. Joukkojen käsittely

4. Joukkojen käsittely 4 Joukkojen käsittely Tämän luvun jälkeen opiskelija osaa soveltaa lomittuvien kasojen operaatioita tuntee lomittuvien kasojen toteutuksen binomi- ja Fibonacci-kasoina sekä näiden totetutusten analyysiperiaatteet

Lisätiedot

3.4 Peruutus (backtracking)

3.4 Peruutus (backtracking) 3.4 Peruutus (backtracking) Tarkastellaan kahta esimerkkiongelmaa: Kahdeksan kuningattaren ongelma: sijoitettava 8 8 ruudun pelilaudalle 8 nappulaa siten, että millekään vaaka-, pysty- tai viistoriville

Lisätiedot

Algoritmit 2. Luento 4 Ke Timo Männikkö

Algoritmit 2. Luento 4 Ke Timo Männikkö Algoritmit 2 Luento 4 Ke 22.3.2017 Timo Männikkö Luento 4 Hajautus Yhteentörmäysten käsittely Avoin osoitteenmuodostus Hajautusfunktiot Puurakenteet Solmujen läpikäynti Algoritmit 2 Kevät 2017 Luento 4

Lisätiedot

Kaikki kurssin laskuharjoitukset pidetään Exactumin salissa C123. Malliratkaisut tulevat nettiin kurssisivulle.

Kaikki kurssin laskuharjoitukset pidetään Exactumin salissa C123. Malliratkaisut tulevat nettiin kurssisivulle. Kombinatoriikka, kesä 2010 Harjoitus 1 Ratkaisuehdotuksia (RT (5 sivua Kaikki kurssin laskuharjoitukset pidetään Exactumin salissa C123. Malliratkaisut tulevat nettiin kurssisivulle. 1. Osoita, että vuoden

Lisätiedot

2. Seuraavassa kuvassa on verkon solmujen topologinen järjestys: x t v q z u s y w r. Kuva 1: Tehtävän 2 solmut järjestettynä topologisesti.

2. Seuraavassa kuvassa on verkon solmujen topologinen järjestys: x t v q z u s y w r. Kuva 1: Tehtävän 2 solmut järjestettynä topologisesti. Tietorakenteet, laskuharjoitus 11, ratkaisuja 1. Leveyssuuntaisen läpikäynnin voi toteuttaa rekursiivisesti käsittelemällä jokaisella rekursiivisella kutsulla kaikki tietyllä tasolla olevat solmut. Rekursiivinen

Lisätiedot

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

Relevanttien sivujen etsintä verkosta: satunnaiskulut verkossa Linkkikeskukset ja auktoriteetit (hubs and authorities) -algoritmi Kurssin loppuosa Diskreettejä menetelmiä laajojen 0-1 datajoukkojen analyysiin Kattavat joukot ja niiden etsintä tasoittaisella algoritmilla Relevanttien sivujen etsintä verkosta: satunnaiskulut verkossa

Lisätiedot

AVL-puut. eräs tapa tasapainottaa binäärihakupuu siten, että korkeus on O(log n) kun puussa on n avainta

AVL-puut. eräs tapa tasapainottaa binäärihakupuu siten, että korkeus on O(log n) kun puussa on n avainta AVL-puut eräs tapa tasapainottaa binäärihakupuu siten, että korkeus on O(log n) kun puussa on n avainta pohjana jo esitetyt binäärihakupuiden operaatiot tasapainotus vie pahimmillaan lisäajan lisäys- ja

Lisätiedot

811312A Tietorakenteet ja algoritmit , Harjoitus 2 ratkaisu

811312A Tietorakenteet ja algoritmit , Harjoitus 2 ratkaisu 811312A Tietorakenteet ja algoritmit 2017-2018, Harjoitus 2 ratkaisu Harjoituksen aiheena on algoritmien oikeellisuus. Tehtävä 2.1 Kahvipurkkiongelma. Kahvipurkissa P on valkoisia ja mustia kahvipapuja,

Lisätiedot

Satunnaisalgoritmit. Antti Tanhuanpää. 25. maaliskuuta 2013

Satunnaisalgoritmit. Antti Tanhuanpää. 25. maaliskuuta 2013 Satunnaisalgoritmit Antti Tanhuanpää 25. maaliskuuta 2013 Johdanto Satunnaisalgoritmit ovat algoritmeja, jotka hyödyntävät satunnaisuutta osana laskentaansa. Ensimmäisen tällaisen algoritmin kehitti Michael

Lisätiedot

3. Hakupuut. B-puu on hakupuun laji, joka sopii mm. tietokantasovelluksiin, joissa rakenne on talletettu kiintolevylle eikä keskusmuistiin.

3. Hakupuut. B-puu on hakupuun laji, joka sopii mm. tietokantasovelluksiin, joissa rakenne on talletettu kiintolevylle eikä keskusmuistiin. 3. Hakupuut Hakupuu on listaa tehokkaampi dynaamisen joukon toteutus. Erityisesti suurilla tietomäärillä hakupuu kannattaa tasapainottaa, jolloin päivitysoperaatioista tulee hankalampia toteuttaa mutta

Lisätiedot

1 + b t (i, j). Olkoon b t (i, j) todennäköisyys, että B t (i, j) = 1. Siis operaation access(j) odotusarvoinen kustannus ajanhetkellä t olisi.

1 + b t (i, j). Olkoon b t (i, j) todennäköisyys, että B t (i, j) = 1. Siis operaation access(j) odotusarvoinen kustannus ajanhetkellä t olisi. Algoritmien DP ja MF vertaileminen tapahtuu suoraviivaisesti kirjoittamalla kummankin leskimääräinen kustannus eksplisiittisesti todennäköisyyksien avulla. Lause T MF ave = 1 + 2 1 i

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

Verkon värittämistä hajautetuilla algoritmeilla

Verkon värittämistä hajautetuilla algoritmeilla Verkon värittämistä hajautetuilla algoritmeilla 5 12 30 19 72 34 Jukka Suomela 15 77 18 4 9. tammikuuta 2012 19 2 68 Verkko 2 Verkko solmu 3 Verkko solmu kaari 4 Hajautettu järjestelmä solmu (tietokone)

Lisätiedot

58131 Tietorakenteet (kevät 2009) Harjoitus 9, ratkaisuja (Antti Laaksonen)

58131 Tietorakenteet (kevät 2009) Harjoitus 9, ratkaisuja (Antti Laaksonen) 58131 Tietorakenteet (kevät 2009) Harjoitus 9, ratkaisuja (Antti Laaksonen) 1. Lisäysjärjestämisessä järjestetään ensin taulukon kaksi ensimmäistä lukua, sitten kolme ensimmäistä lukua, sitten neljä ensimmäistä

Lisätiedot

Luku 7. Verkkoalgoritmit. 7.1 Määritelmiä

Luku 7. Verkkoalgoritmit. 7.1 Määritelmiä Luku 7 Verkkoalgoritmit Verkot soveltuvat monenlaisten ohjelmointiongelmien mallintamiseen. Tyypillinen esimerkki verkosta on tieverkosto, jonka rakenne muistuttaa luonnostaan verkkoa. Joskus taas verkko

Lisätiedot

C.C. McGeoch, Toward an experimental method for algorithm simulation. algorithm simulation = algoritmin testaus, experimental algorithmics

C.C. McGeoch, Toward an experimental method for algorithm simulation. algorithm simulation = algoritmin testaus, experimental algorithmics C.C. McGeoch, Toward an experimental method for algorithm simulation algorithm simulation = algoritmin testaus, experimental algorithmics testiparametrit, esim. tapauksen koko, erilaiset tietorakennevaihtoehdot,

Lisätiedot

58131 Tietorakenteet (kevät 2009) Harjoitus 6, ratkaisuja (Antti Laaksonen)

58131 Tietorakenteet (kevät 2009) Harjoitus 6, ratkaisuja (Antti Laaksonen) 58131 Tietorakenteet (kevät 2009) Harjoitus 6, ratkaisuja (Antti Laaksonen) 1. Avaimet 1, 2, 3 ja 4 mahtuvat samaan lehtisolmuun. Tässä tapauksessa puussa on vain yksi solmu, joka on samaan aikaan juurisolmu

Lisätiedot

Satunnaislukujen generointi

Satunnaislukujen generointi Satunnaislukujen generointi Hannu Toivonen, Marko Salmenkivi, Inkeri Verkamo Tutkimustiedonhallinnan peruskurssi Satunnaislukujen generointi 1/27 Kevät 2003 Lähteet Knuth, D., The Art of Computer Programming,

Lisätiedot

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

Olkoon S(n) kutsun merge-sort(a, p, q) tilavaativuus kun p q + 1 = n. Oletetaan merge toteutetuksi vakiotyötilassa (ei-triviaalia mutta mahdollista). Esimerkki Lomitusjärjestäminen merge-sort(a, p, q): var k % paikallinen muuttuja, vakiotila 1. if p < q then 2. r := (p + q)/2 3. merge-sort(a, p, r) 4. merge-sort(a, r + 1, q) 5. merge(a, p, r, q) Olkoon

Lisätiedot

Esimerkkejä polynomisista ja ei-polynomisista ongelmista

Esimerkkejä polynomisista ja ei-polynomisista ongelmista Esimerkkejä polynomisista ja ei-polynomisista ongelmista Ennen yleisempiä teoriatarkasteluja katsotaan joitain tyypillisiä esimerkkejä ongelmista ja niiden vaativuudesta kaikki nämä ongelmat ratkeavia

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

Algoritmit 2. Luento 12 To Timo Männikkö

Algoritmit 2. Luento 12 To Timo Männikkö Algoritmit 2 Luento 12 To 3.5.2018 Timo Männikkö Luento 12 Geneettiset algoritmit Simuloitu jäähdytys Merkkijonon sovitus Horspoolin algoritmi Algoritmit 2 Kevät 2018 Luento 12 To 3.5.2018 2/35 Algoritmien

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

verkkojen G ja H välinen isomorfismi. Nyt kuvaus f on bijektio, joka säilyttää kyseisissä verkoissa esiintyvät särmät, joten pari

verkkojen G ja H välinen isomorfismi. Nyt kuvaus f on bijektio, joka säilyttää kyseisissä verkoissa esiintyvät särmät, joten pari Tehtävä 9 : 1 Merkitään kirjaimella G tehtäväpaperin kuvan vasemmanpuoleista verkkoa sekä kirjaimella H tehtäväpaperin kuvan oikeanpuoleista verkkoa. Kuvan perusteella voidaan havaita, että verkko G on

Lisätiedot

ALGORITMIT 1 DEMOVASTAUKSET KEVÄT 2012

ALGORITMIT 1 DEMOVASTAUKSET KEVÄT 2012 ALGORITMIT 1 DEMOVASTAUKSET KEVÄT 2012 1.1. (a) Jaettava m, jakaja n. Vähennetään luku n luvusta m niin kauan kuin m pysyy ei-negatiivisena. Jos jäljelle jää nolla, jaettava oli tasan jaollinen. int m,

Lisätiedot

Oikeasta tosi-epätosi -väittämästä saa pisteen, ja hyvästä perustelusta toisen.

Oikeasta tosi-epätosi -väittämästä saa pisteen, ja hyvästä perustelusta toisen. Tietorakenteet, kevät 2012 Kurssikoe 2, mallivastaukset 2. (a) Järjestämistä ei voi missään tilanteessa suorittaa nopeammin kuin ajassa Θ(n log n), missä n on järjestettävän taulukon pituus. Epätosi: Yleisessä

Lisätiedot

30A02000 Tilastotieteen perusteet

30A02000 Tilastotieteen perusteet 30A02000 Tilastotieteen perusteet Kertaus 1. välikokeeseen Lauri Viitasaari Tieto- ja palvelujohtamisen laitos Kauppatieteiden korkeakoulu Aalto-yliopisto Syksy 2019 Periodi I-II Sisältö Välikokeesta Joukko-oppi

Lisätiedot

Algoritmit 1. Luento 10 Ke Timo Männikkö

Algoritmit 1. Luento 10 Ke Timo Männikkö Algoritmit 1 Luento 10 Ke 14.2.2018 Timo Männikkö Luento 10 Algoritminen ongelmanratkaisu Suunnittelumenetelmät Raaka voima Järjestäminen eli lajittelu Kuplalajittelu Lisäyslajittelu Valintalajittelu Permutaatiot

Lisätiedot

(b) Onko hyvä idea laske pinta-alan odotusarvo lähetmällä oletuksesta, että keppi katkeaa katkaisukohdan odotusarvon kohdalla?

(b) Onko hyvä idea laske pinta-alan odotusarvo lähetmällä oletuksesta, että keppi katkeaa katkaisukohdan odotusarvon kohdalla? 6.10.2006 1. Keppi, jonka pituus on m, taitetaan kahtia täysin satunnaisesti valitusta kohdasta ja muodostetaan kolmio, jonka kateetteina ovat syntyneet palaset. Kolmion pinta-ala on satunnaismuuttuja.

Lisätiedot

Algoritmit 1. Luento 12 Ti Timo Männikkö

Algoritmit 1. Luento 12 Ti Timo Männikkö Algoritmit 1 Luento 12 Ti 19.2.2019 Timo Männikkö Luento 12 Osittamisen tasapainoisuus Pikalajittelun vaativuus Lajittelumenetelmien vaativuus Laskentalajittelu Lokerolajittelu Kantalukulajittelu Algoritmit

Lisätiedot

58131 Tietorakenteet ja algoritmit Uusinta- ja erilliskoe malliratkaisut ja arvosteluperusteet

58131 Tietorakenteet ja algoritmit Uusinta- ja erilliskoe malliratkaisut ja arvosteluperusteet 58131 Tietorakenteet ja algoritmit Uusinta- ja erilliskoe 15.6.2018 malliratkaisut ja arvosteluperusteet 1. [10 pistettä] Hakemistorakenteet. Vertaa linkitettyjen listojen, tasapainoisten hakupuiden ja

Lisätiedot

Algoritmit 1. Luento 13 Ti 23.2.2016. Timo Männikkö

Algoritmit 1. Luento 13 Ti 23.2.2016. Timo Männikkö Algoritmit 1 Luento 13 Ti 23.2.2016 Timo Männikkö Luento 13 Suunnittelumenetelmät Taulukointi Kapsäkkiongelma Ahne menetelmä Verkon lyhimmät polut Dijkstran menetelmä Verkon lyhin virittävä puu Kruskalin

Lisätiedot

MATEMATIIKAN KOE, PITKÄ OPPIMÄÄRÄ HYVÄN VASTAUKSEN PIIRTEITÄ

MATEMATIIKAN KOE, PITKÄ OPPIMÄÄRÄ HYVÄN VASTAUKSEN PIIRTEITÄ MATEMATIIKAN KOE, PITKÄ OPPIMÄÄRÄ 6.3.09 HYVÄN VASTAUKSEN PIIRTEITÄ Alla oleva vastausten piirteiden, sisältöjen ja pisteitysten luonnehdinta ei sido ylioppilastutkintolautakunnan arvostelua. Lopullisessa

Lisätiedot

= 5! 2 2!3! = = 10. Edelleen tästä joukosta voidaan valita kolme särmää yhteensä = 10! 3 3!7! = = 120

= 5! 2 2!3! = = 10. Edelleen tästä joukosta voidaan valita kolme särmää yhteensä = 10! 3 3!7! = = 120 Tehtävä 1 : 1 Merkitään jatkossa kirjaimella H kaikkien solmujoukon V sellaisten verkkojen kokoelmaa, joissa on tasan kolme särmää. a) Jokainen verkko G H toteuttaa väitteen E(G) [V]. Toisaalta jokainen

Lisätiedot

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

Induktiotodistus: Tapaus n = 0 selvä; ol. väite pätee kun n < m. Väite: T (n) (a + b)n 2 + a. Induktiotodistus: Tapaus n = 0 selvä; ol. väite pätee kun n < m. Huomaa että funktion x x 2 + (m 1 x) 2 kuvaaja on ylöspäin aukeava paraabeli, joten funktio saavuttaa suurimman

Lisätiedot

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

58131 Tietorakenteet ja algoritmit Uusinta- ja erilliskoe ratkaisuja (Jyrki Kivinen) 58131 Tietorakenteet ja algoritmit Uusinta- ja erilliskoe 12.9.2018 ratkaisuja (Jyrki Kivinen) 1. [10 pistettä] Iso-O-merkintä. (a) Pitääkö paikkansa, että n 3 + 5 = O(n 3 )? Ratkaisu: Pitää paikkansa.

Lisätiedot

811312A Tietorakenteet ja algoritmit, 2014-2015, Harjoitus 7, ratkaisu

811312A Tietorakenteet ja algoritmit, 2014-2015, Harjoitus 7, ratkaisu 832A Tietorakenteet ja algoritmit, 204-205, Harjoitus 7, ratkaisu Hajota ja hallitse-menetelmä: Tehtävä 7.. Muodosta hajota ja hallitse-menetelmää käyttäen algoritmi TULOSTA_PUU_LASKEVA, joka tulostaa

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

Sovellettu todennäköisyyslaskenta B

Sovellettu todennäköisyyslaskenta B Sovellettu todennäköisyyslaskenta B Antti Rasila Kalvoissa käytetään materiaalia P. Palon vuoden 2005 kurssista. 07.09.2007 Antti Rasila () SovTodB 07.09.2007 07.09.2007 1 / 24 1 Todennäköisyyslaskennan

Lisätiedot

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

Algoritmien suunnittelu ja analyysi (kevät 2004) 1. välikoe, ratkaisuja 58053-7 Algoritmien suunnittelu ja analyysi (kevät 2004) 1. välikoe, ratkaisuja Malliratkaisut ja pisteytysohje: Jyrki Kivinen Tentin arvostelu: Jouni Siren (tehtävät 1 ja 2) ja Jyrki Kivinen (tehtävät

Lisätiedot

SAT-ongelman rajoitetut muodot

SAT-ongelman rajoitetut muodot SAT-ongelman rajoitetut muodot olemme juuri osoittaneet että SAT on NP-täydellinen perusidea on nyt osoittaa joukolle kiinnostavia ongelmia A NP että SAT p m A, jolloin kyseiset A myös ovat NP-täydellisiä

Lisätiedot

MAT Todennäköisyyslaskenta Tentti / Kimmo Vattulainen

MAT Todennäköisyyslaskenta Tentti / Kimmo Vattulainen MAT-200 Todennäköisyyslaskenta Tentti 29.04.20 / Kimmo Vattulainen Funktiolaskin sallittu.. a) Pelaajat A ja B heittävät noppaa vuorotellen ja pelin voittaa se, joka saa ensimmäiseksi kuutosen. A aloittaa

Lisätiedot

Satunnaisalgoritmit

Satunnaisalgoritmit 582421 Satunnaisalgoritmit luennot syksylla 2005 Jyrki Kivinen Probabilistiset menetelmat algoritmien suunnittelussa ja analyysissa laudatur, 8 op / 4 ov edellytetaan perustiedot todennakoisyyslaskennasta

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

Tietorakenteet, laskuharjoitus 7, ratkaisuja

Tietorakenteet, laskuharjoitus 7, ratkaisuja Tietorakenteet, laskuharjoitus, ratkaisuja. Seuraava kuvasarja näyttää B + -puun muutokset lisäysten jälkeen. Avaimet ja 5 mahtuvat lehtisolmuihin, joten niiden lisäys ei muuta puun rakennetta. Avain 9

Lisätiedot

Algoritmit 1. Luento 12 Ke Timo Männikkö

Algoritmit 1. Luento 12 Ke Timo Männikkö Algoritmit 1 Luento 12 Ke 15.2.2017 Timo Männikkö Luento 12 Pikalajittelu Pikalajittelun vaativuus Osittamisen tasapainoisuus Lajittelumenetelmien vaativuus Laskentalajittelu Lokerolajittelu Kantalukulajittelu

Lisätiedot

isomeerejä yhteensä yhdeksän kappaletta.

isomeerejä yhteensä yhdeksän kappaletta. Tehtävä 2 : 1 Esitetään aluksi eräitä havaintoja. Jokaisella n Z + symbolilla H (n) merkitään kaikkien niiden verkkojen joukkoa, jotka vastaavat jotakin tehtävänannon ehtojen mukaista alkaanin hiiliketjua

Lisätiedot

Algoritmit 1. Luento 13 Ma Timo Männikkö

Algoritmit 1. Luento 13 Ma Timo Männikkö Algoritmit 1 Luento 13 Ma 26.2.2018 Timo Männikkö Luento 13 Suunnittelumenetelmät Taulukointi Kapsäkkiongelma Ahne menetelmä Verkon lyhimmät polut Dijkstran menetelmä Verkon lyhin virittävä puu Kruskalin

Lisätiedot

4.1. Olkoon X mielivaltainen positiivinen satunnaismuuttuja, jonka odotusarvo on

4.1. Olkoon X mielivaltainen positiivinen satunnaismuuttuja, jonka odotusarvo on Mat-2.090 Sovellettu todennäköisyyslasku A / Ratkaisut Aiheet: Avainsanat: Otanta Poisson- Jakaumien tunnusluvut Diskreetit jakaumat Binomijakauma, Diskreetti tasainen jakauma, Geometrinen jakauma, Hypergeometrinen

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

A TIETORAKENTEET JA ALGORITMIT KORVAAVAT HARJOITUSTEHTÄVÄT 3, DEADLINE KLO 12:00

A TIETORAKENTEET JA ALGORITMIT KORVAAVAT HARJOITUSTEHTÄVÄT 3, DEADLINE KLO 12:00 A274101 TIETORAKENTEET JA ALGORITMIT KORVAAVAT HARJOITUSTEHTÄVÄT 3, DEADLINE 9.2.2005 KLO 12:00 PISTETILANNE: www.kyamk.fi/~atesa/tirak/harjoituspisteet-2005.pdf Kynätehtävät palautetaan kirjallisesti

Lisätiedot

Nollasummapelit ja bayesilaiset pelit

Nollasummapelit ja bayesilaiset pelit Nollasummapelit ja bayesilaiset pelit Kristian Ovaska HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos Seminaari: Peliteoria Helsinki 18. syyskuuta 2006 Sisältö 1 Johdanto 1 2 Nollasummapelit 1 2.1

Lisätiedot

Tutkimustiedonhallinnan peruskurssi

Tutkimustiedonhallinnan peruskurssi Tutkimustiedonhallinnan peruskurssi Hannu Toivonen, Marko Salmenkivi, Inkeri Verkamo hannu.toivonen, marko.salmenkivi, inkeri.verkamo@cs.helsinki.fi Helsingin yliopisto Hannu Toivonen, Marko Salmenkivi,

Lisätiedot

P (A)P (B A). P (B) P (A B) = P (A = 0)P (B = 1 A = 0) P (B = 1) P (A = 1)P (B = 1 A = 1) P (B = 1)

P (A)P (B A). P (B) P (A B) = P (A = 0)P (B = 1 A = 0) P (B = 1) P (A = 1)P (B = 1 A = 1) P (B = 1) Harjoitustehtäviä (erä 1) 1 1. Käytetään yksinkertaisesti Bayesin kaavaa: P (A B) = P (A)P (B A). P (B) Tapauksessa B = 1 saadaan P (A = 0 B = 1) = P (A = 1 B = 1) = P (A = 0)P (B = 1 A = 0) P (A = 1)P

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

Matematiikan tukikurssi, kurssikerta 2

Matematiikan tukikurssi, kurssikerta 2 Matematiikan tukikurssi kurssikerta 1 Relaatioista Oletetaan kaksi alkiota a ja b. Näistä kumpikin kuuluu johonkin tiettyyn joukkoon mahdollisesti ne kuuluvat eri joukkoihin; merkitään a A ja b B. Voidaan

Lisätiedot

Markov-kustannusmallit ja kulkuajat

Markov-kustannusmallit ja kulkuajat 2B Markov-kustannusmallit ja kulkuajat Tämän harjoituksen tavoitteena on oppia laskemaan Markov-kustannusmallien kustannuskertymiä ja -vauhteja, ketjujen odotettuja kulkuaikoja sekä todennäköisyyksiä osua

Lisätiedot

Algoritmit 1. Luento 7 Ti Timo Männikkö

Algoritmit 1. Luento 7 Ti Timo Männikkö Algoritmit 1 Luento 7 Ti 31.1.2017 Timo Männikkö Luento 7 Järjestetty binääripuu Binääripuiden termejä Binääripuiden operaatiot Solmun haku, lisäys, poisto Algoritmit 1 Kevät 2017 Luento 7 Ti 31.1.2017

Lisätiedot

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

T Syksy 2004 Logiikka tietotekniikassa: perusteet Laskuharjoitus 7 (opetusmoniste, kappaleet ) T-79144 Syksy 2004 Logiikka tietotekniikassa: perusteet Laskuharjoitus 7 (opetusmoniste, kappaleet 11-22) 26 29102004 1 Ilmaise seuraavat lauseet predikaattilogiikalla: a) Jokin porteista on viallinen

Lisätiedot

Tuloperiaate. Oletetaan, että eräs valintaprosessi voidaan jakaa peräkkäisiin vaiheisiin, joita on k kappaletta

Tuloperiaate. Oletetaan, että eräs valintaprosessi voidaan jakaa peräkkäisiin vaiheisiin, joita on k kappaletta Tuloperiaate Oletetaan, että eräs valintaprosessi voidaan jakaa peräkkäisiin vaiheisiin, joita on k kappaletta ja 1. vaiheessa valinta voidaan tehdä n 1 tavalla,. vaiheessa valinta voidaan tehdä n tavalla,

Lisätiedot

4. laskuharjoituskierros, vko 7, ratkaisut

4. laskuharjoituskierros, vko 7, ratkaisut 4. laskuharjoituskierros, vko 7, ratkaisut D1. Kone valmistaa kuulalaakerin kuulia, joiden halkaisija vaihtelee satunnaisesti. Halkaisijan on oltava tiettyjen rajojen sisällä, jotta kuula olisi käyttökelpoinen.

Lisätiedot