Verkkoalgoritmeja. Henry Niveri. hniveri(at)cc.hut.fi
|
|
- Sari Alanen
- 7 vuotta sitten
- Katselukertoja:
Transkriptio
1 Verkkoalgoritmeja Henry Niveri hniveri(at)cc.hut.fi Seminaariesitelmä T Satunnaisalgoritmit Tietotekniikan laitos Teknillinen korkeakoulu Tiivistelmä Tässä esityksessä käsitellään satunnaisalgoritmien käyttöä verkkojen tutkimisessa. Johdannossa kuvataan yleisesti verkkoihin liittyviä ongelmia, joita voidaan ratkaista satunnaisalgoritmeilla. Pääasiallisesti esityksessä keskitytään verkon minimileikkauksen löytämiseen satunnaisalgoritmilla. 1
2 1 Johdanto Satunnaisalgoritmeilla voidaan ratkaista ongelmia, joiden ratkaisu on vaikeaa deterministisillä algoritmeilla. Satunnaisalgoritmeissa käytetään hyväksi sitä, että moneen ongelmaan on todennäköistä löytää ratkaisu satunnaisesti yrittämällä kuin determinisesti päättelemällä. Satunnaisuus algoritmissa aiheuttaa sen, että satunnaisalgoritmi ei tuota välttämättä samaa lopputulosta usealla eri ajokerralla. Tämä ominaisuus johtaa siihen, että jos tiedämme todennäköisyyden, jolla algoritmi tuottaa oikean tuloksen, voimme arvioida kuinka monen ajokerran jälkeen algoritmi tuottaa suurella todennäköisyydellä oikean tuloksen. Verkkoihin liittyvät ongelmat liittyvät usein koko verkon tietyn osajoukon tutkimiseen. Monesti verkosta halutaan löytää tiettyjen solmujen tai kaarien välisten relaatioiden ominaisuuksia. Tämä aiheuttaa sen että käytännössä verkon äärilaidoilla olevat solmut ja kaaret eivät usein tuota optimaalisia ratkaisuja ongelmaan. Jos tyydytään tiettyyn todennäköisyyteen ongelman ratkeamiseen, ei koko verkkoa tarvitse tutkia, kuten deterministinen algoritmi saattaisi joutua tekemään. 1.1 Satunnaisalgoritmityypit verkkoihin liittyvissä ongelmissa Satunnaisalgoritmit jaetaan kahteen pääluokkaan: Las Vegas ja Monte Carlo algoritmeihin. Las Vegas algoritmit tuottavat aina oikean tuloksen, kun taas Monte Carlo algoritmit saattavat tuottaa kyllin lähellä oikeaa ratkaisua olevan tuloksen. Molemmat algoritmityypit soveltuvat verkkoihin liittyvien ongelmien ratkaisuun Las Vegas algoritmit Las Vegas algoritmit soveltuvat ongelmiin, joissa on välttämätöntä löytää oikea ratkaisu ja riittää että ratkaisu löytyy todennäköisesti nopeammin kuin deterministisellä algoritmilla. Esimerkiksi matkapuhelinverkkoa suunniteltaessa aluksi päätetään tukiasemien paikat. Tämän jälkeen tukiasemat pitää yhdistää kaapeleilla. Pitemmät kaapelit maksavat enemmän, joten on tärkeää, että selvitään mahdollisimman lyhyillä kaapeleilla kuten kuvassa (1). Tämä ongelma muuttuu siis verkon pienimmän virittävän puun löytämiseksi, mikä on ratkaistavissa satunnaisalgoritmilla. Koska on ensiarvoisen tärkeää, että ongelmaan löydetään pienin virittävä puu on tässä tapauksessa Las Vegas tyyppinen algoritmi ainoa järkevä valinta. Verkon virittävä puu on suuntaamattoman verkon sellainen alipuu, joka sisältää kaikki verkon solmut kytkettynä toisiinsa. Painotetun verkon pienin virittävä puu on sellainen verkon virittävä puu, jonka kaarten painojen summa on pienempi tai yhtäsuuri kuin verkon muiden virittävien puiden(esimerkki virittavästä puusta kuvassa 1). Verkon pienimmän virittävän puun laskevia algoritmeja on tutkittu 1900-luvun alkupuolelta lähtien. Tunnetuimpia virittävän puun selvittäviä deterministisiä algoritmeja ovat Primin ja Kruskalin algoritmit, jotka pystyvät laskemaan pienimmän virittävän puun ajassa O(m log n), jossa m on kaarien lukumäärä ja n on solmujen lukumäärä. Tähän asti nopeimman deterministisen algoritmin,
3 joka löytää verkon pienimmän virittävän puun on kehittänyt Bernard Chazelle. Chazellen algoritmi pystyy laskemaan pienimmän virittävän puun ajassa O(mα(m, n)), jossa α on käänteinen Ackermanin funktio. Käänteinen Ackermanin funktio kasvaa erittäin hitaasti ja käytännössä se saa arvokseen alle 5 kaikilla käytännössä järkevän kokoisilla verkoilla. Nopeimmissa algoritmeissa käsitellään niin monimutkaisia tietorakenteita, että pienin virittävä puu etsitäänkin useimmiten yksinkertaisemmilla algoritmeilla. Satunnaisalgoritmeilla voidaan kuitenkin löytää verkon pienin virittävä puu melko yksinkertaisesti ajassa O(m + n) [1, p. 96]. Kuva 1: Puhelinverkon pienin virittävä puu 1.1. Monte-Carlo algoritmit Monte Carlo algoritmit sitä vastoin soveltuvat ongelmiin, joissa riittää tarpeeksi hyvä ratkaisu. Esimerkiksi sähköasemalla havaitaan, että sähköverkossa on oikosulku. Jotta sähköaseman yläpuolella verkkotopologiassa olevat laitteet eivät vahingoittuisi, on koko aseman virransyötö katkaistava tietyn ajanjakson jälkeen. Jos ennen tätä pystytään löytämään aseman alapuolella olevasta verkosta uusi jakelureitti, voidaan oikeita erotinlaitteita ohjaamalla säilyttää osa asiakkaista tyytyväisenä. Jos su- 3
4 urella todennäköisyydellä, saavutetaan pienin mahdollinen alue ilman sähköjä, on algoritmi hyvä. Jos taas algoritmi ei löytänyt parasta mahdollista ratkaisua, niin mikä tahansa ratkaisu on parempi kuin koko sähköaseman sulkeminen, joka katkaisisi sähköt useammalta asiakkaalta. Tällaisen ongelman ratkaisemiseen sopii siis Monte-Carlo tyyppinen algoritmi. Kuva : Vika sähköverkossa Verkon pienin leikkaus Verkon pienimmän leikkauksen(min-cut) löytämiseen käytettävät algoritmit perustuvat normaalisti verkkojen virtauksen analysointiin ja ovat monimutkaisia toteuttaa. Tässä kappaleessa esitellään yksinkertainen mutta tehokas min-cut satunnaisalgoritmi. Kappaleessa käsitellään suuntaamattomia ja kytkettyjä verkkoja. Min-cut algoritmeilla on tarkoitus löytää verkon pienin leikkaus. Käytännössä halutaan siis löytää se kaarien joukko, joka poistamalla verkko hajoaa kahdeksi erilliseksi verkoksi. Samalla jokaisesta solmusta lähtevien kaarien lukumäärä on vähintään pienimmän leikkauksen kaarien lukumäärä. Tätä tietoa voidaan käyttää hyväksi algoritmin tehokkuuden arvioinnissa. Pienimmän leikkauksen löytäminen on hyödyllistä esimerkiksi kommunikaatioverkkojen suunnittelussa, kun halutaan löytää verkon heikoimmat kohdat. Pienin leikkaus kertoo siis, missä kohdassa verkossa on pienin määrä redundattisuutta. Pienintä leikkausta voidaan käyttää myös hyväksi rinnakkaisalgoritmien suunnittelussa. Kommunikaatio eri prosessorien välillä aiheuttaa usein hitautta rinnakkaisesti suoritettavaan algoritmiin. Jos algoritmin suoritettavat osat ovat verkon solmuja, 4
5 saadaan kommunikaation määrä minimoitua jakamalla ongelma pienimmän leikkauksen kohdalta. Kuva 3: Katkoviiva osoittaa verkon pienimmän leikkauksen.1 Yksinkertainen min-cut algoritmi Verkon leikkaus voidaan löytää poistamalla kaaria, jotka yhdistävät solmuja. Kun verkosta poistetaan kaari kahden solmun väliltä, on olemassa tietty todennäköisyys että kaari ei kuulunut pienimpään leikkaukseen. Algoritmi päättyy kun jäljellä on enää vain solmua. Jos yksikään poistettu kaari ei kuulunut pienimpään leikkaukseen, on jäljelle jääneet kaaret oikea ratkaisu ongelmaan. Olkoon verkko G = (V,E), jossa V on verkon solmujen joukko ja E on verkon kaarien joukko. Kuvassa 3 siis V = {1,,3,4,5,6,7} ja E = {a,b,c,d,e,f,g,h,i,j,k,l,m,n}. Ajetaan kuvassa 3 olevalle verkolle yksinkertainen min-cut algoritmi: Valitse joukosta E satunnaisesti yksi kaari v jonka päätepisteet ovat x ja y Poista kaikki kaaret väliltä {x,y} Luo G:hen uusi solmu z, joka korvaa solmut x ja y siten että kaikki kaaret, jotka liittyvät solmuihin x tai y liittyvät myös solmuun z ja alkuperäiset solmut x ja y poistetaan verkosta Jos jäljellä on yli solmua, aloita alusta Koko algoritmin ajon aikana jäljellä olevat kaaret muodostavat yhden verkon leikkauksista. Algoritmin loputtua jäljellä olevat kaaret ovat verkon pienin leikkaus, jos koko algoritmin ajon aikana ei 5
6 Kuva 4: Kaaren a karsiminen verkosta ja solmujen 1 ja 3 yhdistäminen poistettu yhtään kaarta joka kuuluu pienimpään leikkaukseen. Kuinka suuri todennäköisyys on siihen, että jäljelle jääneet kaaret ovat verkon pienin leikkaus? Olkoon verkon G solmujen lukumäärä n, kaarien määrä pienimmässä leikkauksessa k. Tarkastellaan yhtä verkon pienintä leikkausta C. Verkossa G täytyy olla vähintään nk/ kaarta, koska muuten verkossa täytyisi olla ainakin yksi solmu, jolla on alle k naapurisolmua ja tällöin tähän solmuun liittyvät kaaret olisivat pienimpi leikkaus kuin määritelty pienin leikkaus. Siis kun poistamme ensimmäisen kaaren verkosta todennäköisyys, että poistimme C:hen kuuluvan kaaren on k/(nk/) = /n. Aina kun verkosta poistetaan kaari algoritmin ajon aikana, solmujen määrä vähenee yhdellä. Eli kun verkosta on karsittu i kaarta on verkossa jäljellä n-i+1 solmua, jolloin seuraava karsittu kaari kuuluu joukkoon C todennäköisyydellä /(n-i+1). n i=1 ( 1 ) = (n i + 1) n i=1 ( ) n i 1 (n i + 1) (1) = n j=3 j j = (n )! n! ( ) n = 1/ = Ω(n ) () Todennäköisyys, että yhdellä ajolla tämä algoritmi löytää pienimmän leikkauksen on siis suurempi kuin /n. Jos ajamme algoritmin n / kertaa, todennäköisyys, että emme löydä pienintä leikkausta on vähintään (1 n ) n / < 1/e (3) Käytännössä meillä on siis hyvin yksinkertainen Monte Carlo algoritmi, jolla saadaan suurella todennäköisyydellä oikeita ratkaisuja. Tämän yksinkertaisen algoritmin ajaminen vaatii aikaa O(n ) ja algoritmi pitää suorittaa vähintään Ω(n ) kertaa, että saamme kohtuullisella todennäköisyydellä oikean ratkaisun. Ratkaisun löytäminen kestää siis O(n 4 ). Parhaat deterministiset algoritmit maksi- 6
7 maalisen virtauksen löytämiseksi kestävät O(mn log(n /m)). Maksimaalisen virtauksen laskeminen tuottaa verkon pienimmän leikkauksen sivutuloksena kuten aiemmin mainittiin. Satunnaista min-cut algoritmia on siis tehostettava, jotta se tuottaa hyviä tuloksia nopemmin kuin deterministinen algoritmi.. Nopeutettu min-cut algoritmi Yllä esitellyn pienimmän leikkauksen löytävän algoritmin suurin ongelma on, että se löytää pienimmän leikkauksen melko pienellä todennäköisyydellä Ω(n ), jonka vuoksi se on ajettava liian useasti, että saamme suurella todennäköisyydellä oikean ratkaisun. Välituloksesta (1) näemme, että kun karsittujen kaarien määrä kasvaa, niin todennäköisyys, että poistamme pienimpää leikkaukseen kuuluvan kaaren kasvaa samalla. Eli kun verkko pienenee, niin algoritmi poistaa suuremmalla todennäköisyydellä kaaren, jota ei pitäisi poistaa. Algoritmia voisi siis luultavasti tehostaa sillä, että kun ongelman ratkaisujoukko(verkon koko) käy pienemmäksi, kasvatetaan todennäköisyyttä, jolla emme poista pienimpään leikkaukseen kuuluvaa kaarta. Oletetaan, että yksinkertaista min-cut algoritmia ajetaan kunnes jäljellä on vain t solmua. Tällöin algoritmi ei ole poistanut oikeaa ratkaisua todennäköisyydellä: n t i=1 ( ) n i 1 = (n i + 1) ( ) t / ( ) n = Ω ( ( ) ) t n (4) Algoritmin nopeuttaminen perustuu hajoita ja hallitse menetelmään. Poistetaan verkosta satunnaisalgoritmillamme rajallinen määrä solmuja kahdesti. Toistetaan kahdelle uudelle verkolle sama operaatio rekursiivisesti. Kun rekursiivisesti tutkitut verkot käyvät tarpeeksi pieniksi, pienimmän leikkauksen löytäminen tulee triviaaliksi, jolloin se ratkaistaan deterministisellä algoritmilla. Tällä algoritmilla meidän aiempi yksinkertainen algoritmi ajetaan useammin mutta, koska tutkittavien verkkojen koot pysyvät suurempina, todennäköisyys huonon kaaren poistamiseen pienenee. 1. n on verkon G solmujen lukumäärä. Toista kunnes n 6 (a) t 1 + n (b) Käytä yksinkertaista supistusalgoritmia verkkoon G kunnes jäljellä on vain t solmua saadaksesi verkon H 1 (c) Käytä yksinkertaista supistusalgoritmia verkkoon G kunnes jäljellä on vain t solmua saadaksesi verkon H (d) Kutsu rekursiivisesti tätä algoritmia verkoille H 1 ja H (e) Palauta pienempi verkko H 1 tai H 7
8 3. Etsi pienin leikkaus determinisesti pienestä verkosta Rekursio lopetetaan kun solmujen lukumäärä on pienempi kuin 7, koska tämän jälkeen t ei enää ole ole pienempi kuin jäljellä olevien solmujen lukumäärä. Nopeamman algoritmin tehon ymmärtää helpoiten ajattelemalla näitä kahta eri algoritmiä puina(5). Yksinkertainen algoritmi on puu, jossa on yksi juuri ja sillä O(n ) lehtisolmua, jotka kuvaavat jokaista algoritmin eri ajokertaa. Nopeutettu algoritmi on binääripuu, jonka juurena on alkuperäinen verkko G. Juuren ensimmäiset lapsisolmut ovat ensimmäisella rekursiokierroksella syntyneet verkot H 1 ja H. Näiden solmujen lapsisolmuja ovat taas seuraavat rekursioaskeleet ja niin edespäin. Eli nopeutettu algoritmi ei pienennä mahdollisten ratkaisujen joukkoa, vaan jakaa työn pienempiin osatekijöihin. Kuva 5: Yksinkertaisen ja nopeutetun min-cut algoritmin vertailu...1 Nopeutetun min-cut algoritmin tehokkuus Koska yksinkertainen supistusalgoritmi käyttää aikaa O(n ), niin on varmaa, että myös algoritmin edetessä tutkittavat puut supistuvat vähintään samassa ajassa. Algoritmissa tutkitaan rekursiivisesti puuta, joiden koko on 1 + n. Rekursiivinen min-cut algoritmi voidaan siis suorittaa vähintään ajassa T (n) = T ( 1 + n ) + O(n ) (5) Koska puun jokaisen horisontaalisen tason tutkimiseen kuluu aikaa O(n ) ja puussa on O(log n) 8
9 tasoa, koko algoritmin suorittaminen kestää siis T (n) = O(n log n) (6) Algoritmin edetessä, jokaisella rekursiokierroksella, muistissa täytyy pitää vain yhtä verkkoa. Jos rekursiossa ollaan edetty d askelta, on tutkittavassa verkossa enää jäljellä vain ω(n/ d/ ) solmua. Tilaa tarvitaan siis O ( d=0.. Nopeutetun min-cut algoritmin onnistumistodennäköisyys ) n d = O(n ) (7) Algoritmin ensimmäinen rekursiokierros karsii alkuperäisen verkon G solmuja n, niin kauan että solmuja on jäljellä t = 1 + n. Välituloksesta(4) nähdään, että pienin leikkaus on vielä jäljellä vähintään todennäköisyydellä ( ) ( t 1 + n/ ) = 1 n n (8) Seuraava todistus löytyy viitteestä ([1, Theorem 10.17, p.94]). Olkoon P(t) todennäköisyys, että nopeutettu min-cut algoritmi löytää pienimmän leikkauksen verkosta, jossa on t solmua. Rekursiivinen kutsu osaverkkoon H i ei poista pienintä leikkausta todennäköisyydellä P ( 1 + t ), jos osaverkko H i vielä sisälsi pienimmän leikkauksen. H i sisältää pienimmän leikkauksen vähintään todennäköisyydellä 1 (8). Eli rekursiivinen kutsu osaverkkoon H i ei poista pienintä leikkausta todennäköisyydellä 1 P ( 1 + t ). Koska rekursio jakaantuu kahteen osaverkkoon, todennäköisyys sille, että ainakin toinen rekursio kierros ei poista solmuja pienimmästä leikkauksesta on siis P (t) 1 (1 1 P ( 1 + t )) (9) Kuvataan rekursion syvyyttä sijoittamalla k = Θ(log t) ja olkoon p(k) pienin onnistumistodennäköisyys. Tällöin p(0) = 1 ja p(k + 1) = p(k) p(k) 4 (10) Kaava yksinkertaistuu lisää uudella sijoituksella q(k) = 4/p(k) 1 9
10 q(k + 1) = q(k) q(k) (11) Ylläolevasta rekursiosta voidaan induktiivisesti päätellä k < q(k) < k + H k (1) Jossa H i on harmooninen luku i k=1 1 k = Θ(log i) (13) Tästä seuraa q(k) = k + Θ(log k). Takaisin sijoittamalla näemme, että p(k) = Θ(1/k), johon sijoittamalla näemme että P (t) = Θ(1/ log t). Siis jos verkossa on n solmua, niin nopeutettu pienimmän leikkauksen löytävä algoritmi löytää oikean ratkaisun todennäköisyydellä Θ(1/ log n). Eli nopeutettu algoritmi pitää siis ajaa vähintään log n kertaa, että saamme suurella todennäköisyydellä oikean vastauksen. Siispä jos nopeutetun algoritmin ajaminen kestää O(n log n) (6) ja algoritmi pitää ajaa log n kertaa, algoritmimme löytää verkon pienimmän leikkauksen ajassa O(n log n). Jos paras deterministinen algoritmi löytää verkon pienimmän leikkauksen ajassa O(mn log(n /m)), jossa m on kaarien lukumäärä huomaamme, että satunnainen algoritmi on tehokkaampi kuin deterministinen algoritmi. Koska satunnaisalgoritmimme on Monte-Carlo algoritmi on siitä myös hyötyä, jos algoritmin sovelluskohteessa nopea suoritus on tärkeämpää, kuin täysin oikean ratkaisun löytäminen. 3 Yhteenveto Satunnaislgoritmit soveltuvat hyvin moniin verkkoihin liittyviin ongelmiin. Verkon pienimmän leikkauksen etsintää ja pienimmän virittävän puun löytämistä satunnaisalgoritmeilla tutkitaan koko ajan. Koska satunnaisalgoritmit soveltuvat useaan ongelmaan, joita voidaan ratkaista rinnakkaisen ja hajautetun laskennan avulla, hajautuksen yleistyessä tietotekniikassa, satunnaisalgoritmien käyttö mitä luultavimmin yleistyy. Satunnaisalgoritmien yleistyessä myös verkkoihin liittyviä ongelmia tullaan todennäköisesti ratkaisemaan yhä useammin satunnaisalgoritmeilla. 10
11 Viitteet [1] Motwani, R., Raghavan, P. Randomized algorithms. Cambridge University Press, [] Michael Mitzenmacher, Eli Upfal. Probability and Computing: Randomized Algorithms and Probabilistic Analysis. Cambridge University Press, 005. [3] ACM Special Interest Group for Automata and Computability Theory, ACM, Activity Group on Discrete Mathematics, SIAM Activity Group on Discrete Mathematics, Special Interest Group for Automata and Computability Theory, SIAM. Proceedings of the Fifth Annual ACM-SIAM Symposium on Discrete Algorithms. SIAM, 005. [4] Sanguthevar Rajasekaran. Handbook of Randomized Computing. Springer, 001. [5] Wikipedia,Minimum spanning tree, spanning tree, viitattu
7. Satunnaisalgoritmit (randomized algorithms)
7. Satunnaisalgoritmit (randomized algorithms) Satunnaisuudella on laskentaongelmien ratkaisemisessa moninaisia käyttötapoja. Tässä tarkastellaan lähinnä perinteisten algoritmien nopeuttamista, ja sitäkin
Lisätiedot58131 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ätiedotV. 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ätiedotAlgoritmit 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ätiedotLuku 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ätiedotAlgoritmi on periaatteellisella tasolla seuraava:
Algoritmi on periaatteellisella tasolla seuraava: Dijkstra(V, E, l, v 0 ): S := { v 0 } D[v 0 ] := 0 for v V S do D[v] := l(v 0, v) end for while S V do valitse v V S jolle D[v] on minimaalinen S := S
LisätiedotLuku 8. Aluekyselyt. 8.1 Summataulukko
Luku 8 Aluekyselyt Aluekysely on tiettyä taulukon väliä koskeva kysely. Tyypillisiä aluekyselyitä ovat, mikä on taulukon välin lukujen summa tai pienin luku välillä. Esimerkiksi seuraavassa taulukossa
LisätiedotAlgoritmit 2. Luento 14 Ke Timo Männikkö
Algoritmit 2 Luento 14 Ke 3.5.2017 Timo Männikkö Luento 14 Ositus ja rekursio Rekursion toteutus Kertaus ja tenttivinkit Algoritmit 2 Kevät 2017 Luento 14 Ke 3.5.2017 2/30 Ositus Tehtävän esiintymä ositetaan
LisätiedotAlgoritmit 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ätiedot58131 Tietorakenteet ja algoritmit (kevät 2014) Uusinta- ja erilliskoe, , vastauksia
58131 Tietorakenteet ja algoritmit (kevät 2014) Uusinta- ja erilliskoe, 10..2014, vastauksia 1. [9 pistettä] (a) Todistetaan 2n 2 + n + 5 = O(n 2 ): Kun n 1 on 2n 2 + n + 5 2n 2 + n 2 +5n 2 = 8n 2. Eli
LisätiedotA ja B pelaavat sarjan pelejä. Sarjan voittaja on se, joka ensin voittaa n peliä.
Esimerkki otteluvoiton todennäköisyys A ja B pelaavat sarjan pelejä. Sarjan voittaja on se, joka ensin voittaa n peliä. Yksittäisessä pelissä A voittaa todennäköisyydellä p ja B todennäköisyydellä q =
LisätiedotTKT20001 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ätiedotAlgoritmit 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ätiedotAlgoritmit 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ätiedotAlgoritmit 2. Luento 5 Ti Timo Männikkö
Algoritmit 2 Luento 5 Ti 26.3.2019 Timo Männikkö Luento 5 Puurakenteet B-puu B-puun korkeus B-puun operaatiot B-puun muunnelmia Algoritmit 2 Kevät 2019 Luento 5 Ti 26.3.2019 2/34 B-puu B-puut ovat tasapainoisia
LisätiedotAVL-puut. eräs tapa tasapainottaa binäärihakupuu siten, että korkeus on O(log n) kun puussa on n avainta
AVL-puut eräs tapa tasapainottaa binäärihakupuu siten, että korkeus on O(log n) kun puussa on n avainta pohjana jo esitetyt binäärihakupuiden operaatiot tasapainotus vie pahimmillaan lisäajan lisäys- ja
LisätiedotAlgoritmit 1. Luento 13 Ti 23.2.2016. Timo Männikkö
Algoritmit 1 Luento 13 Ti 23.2.2016 Timo Männikkö Luento 13 Suunnittelumenetelmät Taulukointi Kapsäkkiongelma Ahne menetelmä Verkon lyhimmät polut Dijkstran menetelmä Verkon lyhin virittävä puu Kruskalin
LisätiedotVerkon 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ätiedotAlgoritmit 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ätiedot58131 Tietorakenteet ja algoritmit (kevät 2013) Kurssikoe 2, , vastauksia
58131 Tietorakenteet ja algoritmit (kevät 2013) Kurssikoe 2, 652013, vastauksia 1 [6 pistettä] Vastaa jokaisesta alla olevasta väittämästä onko se tosi vai epätosi ja anna lyhyt perustelu Jokaisesta kohdasta
Lisätiedot2. 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ätiedotGraafit 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ätiedotPinot, 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ätiedot4 Tehokkuus ja algoritmien suunnittelu
TIE-20100 Tietorakenteet ja algoritmit 52 4 Tehokkuus ja algoritmien suunnittelu Tässä luvussa pohditaan tehokkuuden käsitettä ja esitellään kurssilla käytetty kertaluokkanotaatio, jolla kuvataan algoritmin
Lisätiedot58131 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ätiedotj(j 1) = n(n2 1) 3 + (k + 1)k = (k + 1)(k2 k + 3k) 3 = (k + 1)(k2 + 2k + 1 1)
MS-A0401 Diskreetin matematiikan perusteet Tentti ja välikokeiden uusinta 10.11.015 Kirjoita jokaiseen koepaperiin nimesi, opiskelijanumerosi ym. tiedot! Laskimia tai taulukoita ei saa käyttää tässä kokeessa!
Lisätiedot10. Painotetut graafit
10. Painotetut graafit Esiintyy monesti sovelluksia, joita on kätevä esittää graafeina. Tällaisia ovat esim. tietoverkko tai maantieverkko. Näihin liittyy erinäisiä tekijöitä. Tietoverkkoja käytettäessä
LisätiedotSatunnaisalgoritmit. Topi Paavilainen. Laskennan teorian opintopiiri HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos
Satunnaisalgoritmit Topi Paavilainen Laskennan teorian opintopiiri HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos Helsinki, 23. helmikuuta 2014 1 Johdanto Satunnaisalgoritmit ovat algoritmeja, joiden
LisätiedotValitaan alkio x 1 A B ja merkitään A 1 = A { x 1 }. Perinnöllisyyden nojalla A 1 I.
Vaihto-ominaisuudella on seuraava intuition kannalta keskeinen seuraus: Olkoot A I ja B I samankokoisia riippumattomia joukkoja: A = B = m jollain m > 0. Olkoon vielä n = m A B, jolloin A B = B A = n.
LisätiedotTietorakenteet, 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ätiedotTietorakenteet ja algoritmit
Tietorakenteet ja algoritmit Rekursio Rekursion käyttötapauksia Rekursio määritelmissä Rekursio ongelmanratkaisussa ja ohjelmointitekniikkana Esimerkkejä taulukolla Esimerkkejä linkatulla listalla Hanoin
LisätiedotAlgoritmit 2. Luento 11 Ti Timo Männikkö
Algoritmit 2 Luento 11 Ti 24.4.2018 Timo Männikkö Luento 11 Rajoitehaku Kapsäkkiongelma Kauppamatkustajan ongelma Paikallinen etsintä Lyhin virittävä puu Vaihtoalgoritmit Algoritmit 2 Kevät 2018 Luento
LisätiedotAlgoritmit 2. Luento 6 To Timo Männikkö
Algoritmit 2 Luento 6 To 28.3.2019 Timo Männikkö Luento 6 B-puun operaatiot Nelipuu Trie-rakenteet Standarditrie Pakattu trie Algoritmit 2 Kevät 2019 Luento 6 To 28.3.2019 2/30 B-puu 40 60 80 130 90 100
Lisätiedot13 Lyhimmät painotetut polut
TIE-20100 Tietorakenteet ja algoritmit 297 13 Lyhimmät painotetut polut BFS löytää lyhimmän polun lähtösolmusta graafin saavutettaviin solmuihin. Se ei kuitenkaan enää suoriudu tehtävästä, jos kaarien
LisätiedotAlgoritmit 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ätiedot811312A Tietorakenteet ja algoritmit 2015-2016. V Verkkojen algoritmeja Osa 2 : Kruskalin ja Dijkstran algoritmit
811312A Tietorakenteet ja algoritmit 2015-2016 V Verkkojen algoritmeja Osa 2 : Kruskalin ja Dijkstran algoritmit Sisältö 1. Johdanto 2. Leveyshaku 3. Syvyyshaku 4. Kruskalin algoritmi 5. Dijkstran algoritmi
LisätiedotPienin virittävä puu (minimum spanning tree)
Pienin virittävä puu (minimum spanning tree) Jatkossa puu tarkoittaa vapaata puuta (ks. s. 11) eli suuntaamatonta verkkoa, joka on yhtenäinen: minkä tahansa kahden solmun välillä on polku syklitön: minkä
LisätiedotStabiloivat synkronoijat ja nimeäminen
Stabiloivat synkronoijat ja nimeäminen Mikko Ajoviita 2.11.2007 Synkronoija Synkronoija on algoritmi, joka muuntaa synkronoidun algoritmin siten, että se voidaan suorittaa synkronoimattomassa järjestelmässä.
LisätiedotJohdatus graafiteoriaan
Johdatus graafiteoriaan Syksy 2017 Lauri Hella Tampereen yliopisto Luonnontieteiden tiedekunta 126 Luku 3 Puut 3.1 Puu 3.2 Virittävä puu 3.3 Virittävän puun konstruointi 3.4 Minimaalinen virittävä puu
LisätiedotAlgoritmit 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ätiedotMalliratkaisut Demot
Malliratkaisut Demot 4 3.4.017 Tehtävä 1 Tarkastellaan harjoituksen 1 nopeimman reitin ongelmaa ja etsitään sille lyhin virittävä puu käyttämällä kahta eri algoritmia. a) (Primin algoritmi) Lähtemällä
LisätiedotHakupuut. 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ätiedotv 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ätiedotAlgoritmit 2. Luento 8 To Timo Männikkö
Algoritmit 2 Luento 8 To 4.4.2019 Timo Männikkö Luento 8 Algoritmien analysointi Algoritmien suunnittelu Rekursio Osittaminen Rekursioyhtälöt Rekursioyhtälön ratkaiseminen Master-lause Algoritmit 2 Kevät
Lisätiedot58131 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ätiedotAlgoritmit 2. Demot Timo Männikkö
Algoritmit 2 Demot 1 27.-28.3.2019 Timo Männikkö Tehtävä 1 (a) 4n 2 + n + 4 = O(n 2 ) c, n 0 > 0 : 0 4n 2 + n + 4 cn 2 n n 0 Vasen aina tosi Oikea tosi, jos (c 4)n 2 n 4 0, joten oltava c > 4 Kokeillaan
LisätiedotAlgoritmit 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ätiedotAlgoritmit 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ätiedotSkedulointi, kuormituksen tasaus, robotin navigaatio
Skedulointi, kuormituksen tasaus, robotin navigaatio Esitelmä algoritmiikan tutkimusseminaarissa 17.2.2003 Kimmo Palin Tietojenkäsittelytieteen laitos Helsingin Yliopisto Skedulointi, kuormituksen tasaus,
Lisätiedotv 1 v 2 v 3 v 4 d lapsisolmua d 1 avainta lapsen v i alipuun avaimet k i 1 ja k i k 0 =, k d = Sisäsolmuissa vähint. yksi avain vähint.
Yleiset hakupuut 4 Monitiehakupuu: Binäärihakupuu 0 1 3 5 6 7 8 v k 1 k k 3 v v 3 v 4 k 1 k 3 k 1 k k k 3 d lapsisolmua d 1 avainta Yleinen hakupuu? Tietorakenteet, syksy 007 1 Esimerkki monitiehakupuusta
LisätiedotAlgoritmit 1. Luento 14 Ke 25.2.2015. Timo Männikkö
Algoritmit 1 Luento 14 Ke 25.2.2015 Timo Männikkö Luento 14 Heuristiset menetelmät Heuristiikkoja kapsäkkiongelmalle Kauppamatkustajan ongelma Lähimmän naapurin menetelmä Kertaus ja tenttivinkit Algoritmit
LisätiedotDatatä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ätiedot811312A 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ätiedot811312A 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ätiedotAlgoritmit 2. Luento 5 Ti Timo Männikkö
Algoritmit 2 Luento 5 Ti 28.3.2017 Timo Männikkö Luento 5 Puurakenteet B-puu B-puun korkeus B-puun operaatiot Algoritmit 2 Kevät 2017 Luento 5 Ti 28.3.2017 2/29 B-puu Algoritmit 2 Kevät 2017 Luento 5 Ti
LisätiedotYhtälöryhmä matriisimuodossa. MS-A0004/A0006 Matriisilaskenta. Tarkastellaan esimerkkinä lineaarista yhtälöparia. 2x1 x 2 = 1 x 1 + x 2 = 5.
2. MS-A4/A6 Matriisilaskenta 2. Nuutti Hyvönen, c Riikka Kangaslampi Matematiikan ja systeemianalyysin laitos Aalto-yliopisto 5.9.25 Tarkastellaan esimerkkinä lineaarista yhtälöparia { 2x x 2 = x + x 2
LisätiedotAlgoritmit 1. Luento 1 Ti Timo Männikkö
Algoritmit 1 Luento 1 Ti 10.1.2017 Timo Männikkö Luento 1 Algoritmi Algoritmin toteutus Ongelman ratkaiseminen Algoritmin tehokkuus Algoritmin suoritusaika Algoritmin analysointi Algoritmit 1 Kevät 2017
LisätiedotAlgoritmit 2. Luento 6 Ke Timo Männikkö
Algoritmit 2 Luento 6 Ke 29.3.2017 Timo Männikkö Luento 6 B-puun operaatiot B-puun muunnelmia Nelipuu Trie-rakenteet Standarditrie Pakattu trie Algoritmit 2 Kevät 2017 Luento 6 Ke 29.3.2017 2/31 B-puu
LisätiedotDepartment of Mathematics, Hypermedia Laboratory Tampere University of Technology. Roolit Verkostoissa: HITS. Idea.
Roolit Tommi Perälä Department of Mathematics, Hypermedia Laboratory Tampere University of Technology 25.3.2011 J. Kleinberg kehitti -algoritmin (Hypertext Induced Topic Search) hakukoneen osaksi. n taustalla
LisätiedotAlgoritmit 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ätiedotRatkaisu. Tulkitaan de Bruijnin jonon etsimiseksi aakkostossa S := {0, 1} sanapituudelle n = 4. Neljän pituisia sanoja on N = 2 n = 16 kpl.
iskreetti matematiikka, syksy 00 arjoitus, ratkaisuista. seta 8 nollaa ja 8 ykköstä renkaaksi niin, että jokainen yhdistelmä 0000, 000,..., esiintyy täsmälleen kerran. Vihje: Tulkitse de ruijnin jonon
LisätiedotSatunnaisalgoritmit. Antti Tanhuanpää. 25. maaliskuuta 2013
Satunnaisalgoritmit Antti Tanhuanpää 25. maaliskuuta 2013 Johdanto Satunnaisalgoritmit ovat algoritmeja, jotka hyödyntävät satunnaisuutta osana laskentaansa. Ensimmäisen tällaisen algoritmin kehitti Michael
Lisätiedot58131 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ätiedotErä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ätiedotA274101 TIETORAKENTEET JA ALGORITMIT
A274101 TIETORAKENTEET JA ALGORITMIT PUURAKENTEET, BINÄÄRIPUU, TASAPAINOTETUT PUUT MIKÄ ON PUUTIETORAKENNE? Esim. Viereinen kuva esittää erästä puuta. Tietojenkäsittelytieteessä puut kasvavat alaspäin.
LisätiedotKönigsbergin sillat. Königsberg 1700-luvulla. Leonhard Euler ( )
Königsbergin sillat 1700-luvun Königsbergin (nykyisen Kaliningradin) läpi virtasi joki, jonka ylitti seitsemän siltaa. Sanotaan, että kaupungin asukkaat yrittivät löytää reittiä, joka lähtisi heidän kotoaan,
LisätiedotJohdatus diskreettiin matematiikkaan Harjoitus 5, Ratkaise rekursioyhtälö
Johdatus diskreettiin matematiikkaan Harjoitus 5, 14.10.2015 1. Ratkaise rekursioyhtälö x n+4 2x n+2 + x n 16( 1) n, n N, alkuarvoilla x 1 2, x 2 14, x 3 18 ja x 4 42. Ratkaisu. Vastaavan homogeenisen
Lisätiedot6. Approksimointialgoritmit
6. Approksimointialgoritmit Tässä luvussa käsitellään lyhyesti approksimointiin liittyvät peruskäsitteet ja joitain keskeisiä approksimoituvuustuloksia. Tavoitteena on, että opiskelija näkee approksimointialgoritmien
LisätiedotT 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ätiedotAlgoritmit 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ätiedotOlkoon 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ätiedot4.3. Matemaattinen induktio
4.3. Matemaattinen induktio Matemaattinen induktio: Deduktion laji Soveltuu, kun ominaisuus on osoitettava olevan voimassa luonnollisilla luvuilla. Suppea muoto P(n) : Ominaisuus, joka joka riippuu luvusta
LisätiedotVerkon värittäminen ja riippumattomat joukot: johdantoa ja sovelluksia
hyväksymispäivä arvosana arvostelija Verkon värittäminen ja riippumattomat joukot: johdantoa ja sovelluksia Janne Korhonen Helsinki 8.12.2009 Seminaariraportti HELSINGIN YLIOPISTO Tietojenkäsittelytieteen
LisätiedotPuumenetelmät. Topi Sikanen. S ysteemianalyysin. Laboratorio Aalto-yliopiston teknillinen korkeakoulu
Puumenetelmät Topi Sikanen Puumenetelmät Periaate: Hajota ja hallitse Jaetaan havaintoavaruus alueisiin. Sovitetaan kuhunkin alueeseen yksinkertainen malli (esim. vakio) Tarkastellaan kolmea mallia Luokittelu-
LisätiedotAlgoritmit 1. Luento 11 Ti Timo Männikkö
Algoritmit 1 Luento 11 Ti 14.2.2017 Timo Männikkö Luento 11 Algoritminen ongelmanratkaisu Osittaminen Lomituslajittelu Lomituslajittelun vaativuus Rekursioyhtälöt Pikalajittelu Algoritmit 1 Kevät 2017
Lisätiedot58131 Tietorakenteet ja algoritmit (kevät 2016) Ensimmäinen välikoe, malliratkaisut
58131 Tietorakenteet ja algoritmit (kevät 2016) Ensimmäinen välikoe, malliratkaisut 1. Palautetaan vielä mieleen O-notaation määritelmä. Olkoon f ja g funktioita luonnollisilta luvuilta positiivisille
LisätiedotSilmukkaoptimoinnista
sta TIE448 Kääntäjätekniikka, syksy 2009 Antti-Juhani Kaijanaho TIETOTEKNIIKAN LAITOS 8. joulukuuta 2009 Sisällys Sisällys Seuraava deadline Vaihe F maanantai 14.12. klo 12 rekisteriallokaatio Arvostelukappale
LisätiedotAlgoritmit 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ätiedotYhtälöryhmä matriisimuodossa. MS-A0007 Matriisilaskenta. Tarkastellaan esimerkkinä lineaarista yhtälöparia. 2x1 x 2 = 1 x 1 + x 2 = 5.
2. MS-A000 Matriisilaskenta 2. Nuutti Hyvönen, c Riikka Kangaslampi Matematiikan ja systeemianalyysin laitos Aalto-yliopisto 2..205 Tarkastellaan esimerkkinä lineaarista yhtälöparia { 2x x 2 = x x 2 =
LisätiedotMatemaatiikan tukikurssi
Matemaatiikan tukikurssi Kurssikerta 1 1 Funktiot Funktion määritelmä Funktio on sääntö, joka liittää kahden eri joukon alkioita toisiinsa. Ollakseen funktio tämän säännön on liitettävä jokaiseen lähtöjoukon
LisätiedotTIE448 Kääntäjätekniikka, syksy Antti-Juhani Kaijanaho. 9. marraskuuta 2009
TIE448 Kääntäjätekniikka, syksy 2009 Antti-Juhani Kaijanaho TIETOTEKNIIKAN LAITOS 9. marraskuuta 2009 Sisällys Sisällys Seuraava deadline Vaihe D tiistai 10.11. klo 10 välikielen generointi Vaihe E tiistai
LisätiedotKonsensusongelma hajautetuissa järjestelmissä. Niko Välimäki Hajautetut algoritmit -seminaari
Konsensusongelma hajautetuissa järjestelmissä Niko Välimäki 30.11.2007 Hajautetut algoritmit -seminaari Konsensusongelma Päätöksen muodostaminen hajautetussa järjestelmässä Prosessien välinen viestintä
LisätiedotAlgoritmit 2. Luento 13 Ti Timo Männikkö
Algoritmit 2 Luento 13 Ti 8.5.2018 Timo Männikkö Luento 13 Laskennallinen vaativuus Päätösongelmat Epädeterministinen algoritmi Vaativuusluokat NP-täydellisyys Kertaus ja tenttivinkit Algoritmit 2 Kevät
LisätiedotTentissä on viisi tehtävää, jotka arvosteellaan asteikolla 0-6. Tehtävien alakohdat ovat keskenään samanarvoisia ellei toisin mainita.
Tentissä on viisi tehtävää, jotka arvosteellaan asteikolla 0-6. Tehtävien alakohdat ovat keskenään samanarvoisia ellei toisin mainita. Tehtävä 1 Mitä seuraavat käsitteet tarkoittavat? Monitahokas (polyhedron).
LisätiedotAlgoritmit 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ätiedotHarjoitus 3 (3.4.2014)
Harjoitus 3 (3..) Tehtävä Olkoon kaaren paino c ij suurin sallittu korkeus tieosuudella (i, j). Etsitään reitti solmusta s solmuun t siten, että reitin suurin sallittu korkeus pienimmillään olisi mahdollisimman
LisätiedotTietorakenteet, esimerkkivastauksia viikon 12 laskareihin
Tietorakenteet, esimerkkivastauksia viikon laskareiin (a) Oletetaan seuraavan kuvan mukainen verkko ja etsitään lyyimpiä polkuja solmusta Ensimmäiseksi käsitellään solmu B, jonka etäisyys on kolme Seuraavaksi
LisätiedotOlkoon 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ätiedotALGORITMIT 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ätiedotHarjoitus 3 (31.3.2015)
Harjoitus (..05) Tehtävä Olkoon kaaren paino c ij suurin sallittu korkeus tieosuudella (i,j). Etsitään reitti solmusta s solmuun t siten, että reitin suurin sallittu korkeus pienimmillään olisi mahdollisimman
Lisätiedot58131 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ätiedotDiplomi-insinööri- ja arkkitehtikoulutuksen yhteisvalinta 2017 Insinöörivalinnan matematiikan koe , Ratkaisut (Sarja A)
Diplomi-insinööri- ja arkkitehtikoulutuksen yhteisvalinta 017 Insinöörivalinnan matematiikan koe 30..017, Ratkaisut (Sarja A) 1. a) Lukujen 9, 0, 3 ja x keskiarvo on. Määritä x. (1 p.) b) Mitkä reaaliluvut
LisätiedotAlgoritmit 1. Luento 2 Ke Timo Männikkö
Algoritmit 1 Luento 2 Ke 11.1.2017 Timo Männikkö Luento 2 Algoritmin esitys Algoritmien analysointi Suoritusaika Asymptoottinen kertaluokka Peruskertaluokkia NP-täydelliset ongelmat Algoritmit 1 Kevät
LisätiedotPARITUS KAKSIJAKOISESSA
PARITUS KAKSIJAKOISESSA GRAAFISSA Informaatiotekniikan t iik seminaari i Pekka Rossi 4.3.2008 SISÄLTÖ Johdanto Kaksijakoinen graafi Sovituksen peruskäsitteet Sovitusongelma Lisäyspolku Bipartite matching-algoritmi
LisätiedotYleinen paikallinen vakautuva synkronointialgoritmi
Yleinen paikallinen vakautuva synkronointialgoritmi Panu Luosto 23. marraskuuta 2007 3 4 putki 1 2 α α+1 α+2 α+3 0 K 1 kehä K 2 K 3 K 4 Lähdeartikkeli Boulinier, C., Petit, F. ja Villain, V., When graph
LisätiedotMatematiikan ja tilastotieteen laitos Matematiikka tutuksi Harjoitus 2, malliratkaisut
Matematiikan ja tilastotieteen laitos Matematiikka tutuksi Harjoitus, malliratkaisut 1.-5.9.009 1. Muodosta joukot A B, A B ja A\B sekä laske niiden alkioiden lukumäärät (mikäli kyseessä on äärellinen
LisätiedotEi-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ätiedotAlgoritmit 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ätiedotMiten käydä läpi puun alkiot (traversal)?
inääripuut ieman lisää aidon binääripuun ominaisuuksia lehtisolmuja on yksi enemmän kuin sisäsolmuja inääripuut tasolla d on korkeintaan 2 d solmua pätee myös epäaidolle binääripuulle taso 0: 2 0 = 1 solmu
Lisätiedot58131 Tietorakenteet ja algoritmit (syksy 2015)
58131 Tietorakenteet ja algoritmit (syksy 2015) Harjoitus 2 (14. 18.9.2015) Huom. Sinun on tehtävä vähintään kaksi tehtävää, jotta voit jatkaa kurssilla. 1. Erään algoritmin suoritus vie 1 ms, kun syötteen
Lisätiedot