811312A Tietorakenteet ja algoritmit V Verkkojen algoritmeja Osa1 : Leveys- ja syvyyshaku

Koko: px
Aloita esitys sivulta:

Download "811312A Tietorakenteet ja algoritmit V Verkkojen algoritmeja Osa1 : Leveys- ja syvyyshaku"

Transkriptio

1 811312A Tietorakenteet ja algoritmit V Verkkojen algoritmeja Osa1 : Leveys- ja syvyyshaku

2 Sisältö 1. Johdanto 2. Leveyshaku 3. Syvyyshaku 4. Kruskalin algoritmi 5. Dijkstran algoritmi A TRA Verkot / osa 1 2

3 V.1 Johdanto Verkkoalgoritmit ovat yleisimpiä ja tärkeimpiä algoritmityyppejä tunnetaan suuri määrä erilaisia algoritmeja verkkoalgoritmeja on analysoitu laajasti. Yleisneuvo algoritmiseen ongelmaan: muunna verkkojen ongelmaksi ratkaisu saattaa olla yleisesti tunnettu tai ongelma osoitettu vaikeaksi A TRA Verkot / osa 1 3

4 V.1.1 Verkon määritelmä Verkko (graafi, graph) on pari G = (V, E), missä V on solmujen (vertices) epätyhjä joukko E on välien (edges) joukko E V V (relaatio solmujen joukossa) E määrittelee, mitkä solmut on kytketty toisiinsa. Verkko voi olla suunnattu tai suuntaamaton: Suuntaamattomassa verkossa ehdosta i, j E seuraa aina j, i E. Verkko voi olla painotettu: väleihin liitetään luku, ns. painoarvo A TRA Verkot / osa 1 4

5 V.1.2 Esimerkki Suunnattu verkko Suuntaamaton verkko A TRA Verkot / osa 1 5

6 V.1.2 Esimerkki (2) Kuvion esittämille verkoille solmujen joukko V = { 1, 2, 3, 4, 5 }. välien joukko suunnatulle verkolle E = {(1,2),(2,4),(2,5),(3,2),(3,5),(4,3),(5,4)} välien joukko suuntaamattomalle verkolle E = {(1,2),(2,1),(2,4),(4,2),(2,5),(5,2),(3,2),(2,3),(3,5), (5,3),(4,3),(3,4),(5,4),(4,5)} Suunnatuille väleille käytetään joskus kulmasulkeita ja silloin kaarisulut varataan suuntaamattomille (kaksisuuntaisille) väleille A TRA Verkot / osa 1 6

7 V.1.3 Verkkojen esittäminen Verkko: 1 Matriisesitys: Adj / 4 5 / / 4 3 / Vieruslistaesitys: 5 4 /

8 V.2 Leveyshaku (Breadth-first search) Yksinkertaisimpia algoritmeja verkon läpikäymiseen Toimii monien algoritmien pohjaratkaisuna Idea: Valitaan kiinteä solmu s ja käydään välejä systemaattisesti läpi, kunnes kohdataan kaikki solmut, joihin solmusta s voidaan päästä. Ensin löydetään kaikki etäisyydellä 1 olevat solmut, sitten etäisyydellä 2 olevat solmut jne. -> Nimitys leveyshaku A TRA Verkot / osa 1 8

9 V.2 Leveyshaku (2) Käyttää (FIFO-tyyppistä) jonoa Q Operaatiot ENQUEUE ja DEQUEUE Taulukko color: Solmujen värit kussakin vaiheessa Valkoinen: Solmua ei vielä löydetty Musta: Solmu ja sen kaikki naapurit löydetty Harmaa: Solmu löydetty mutta sillä voi olla valkeita naapureita Taulukko d: Solmujen etäisyydet lähtösolmusta Taulukko p: Solmujen edeltäjät lyhimmässä polussa Lopuksi voidaan lukea lyhin polku mihin tahansa solmuun (lopusta alkuun) A TRA Verkot / osa 1 9

10 V.2.1 Leveyshaun algoritmi Syöte: Verkko G=(V,E) ja sen solmu s. Verkolle käytetään vieruslistaesitystä. Tulostus: N solmujen lukumäärä. N-paikkaiset taulukot p,d ja color indeksoidaan verkon solmuilla. Taulukkoon d lasketaan solmun etäisyys syötesolmusta s. Arvo INF = ei polkua. Taulukkoon p lasketaan solmun edeltäjäsolmu jossakin lyhimmässä polussa syötesolmusta s. Arvo NIL = ei polkua. BFS(G,s) 1. for each u in V 2. color[u] = WHITE 3. d[u] = INF 4. p[u] = NIL 5. d[s] = 0 6. color[s] = GRAY 7. Q = EMPTY 8. ENQUEUE(Q,s) 9. while Q!= EMPTY 10. u = DEQUEUE(Q) 11. for each v in Adj[u] 12. if color[v] == WHITE 13. color[v] = GRAY 14. d[v] = d[u] p[v] = u 16. ENQUEUE(Q,v) 17. color[u] = BLACK 18. return A TRA Verkot / osa 1 10

11 V.2.2 Esimerkki: Leveyshaun eteneminen 1: 2: a b c d INF 0 INF INF a b c d 1 0 INF INF INF INF INF e f g INF 1 INF Q:b Q:a, f 0 e f g 1 1 3: a b c d 4: 1 0 INF INF a b c d INF INF 1 INF e f g Q: f e f g Q:e, c, g A TRA Verkot / osa 1 11

12 V.2.2 Esimerkki: Leveyshaun eteneminen (2) 5: a b c d 6: INF a b c d e f g Q:c, g e f g Q:g, d 2 3 7: 8: a b c d a b c d e f g Q:d e f g Q: A TRA Verkot / osa 1 12

13 V.2.3 Leveyshaun algoritmin analyysi: kompleksisuus Oletetaan, että verkossa N solmua ja M väliä Tarkka askelten määrä riippuu verkon rakenteesta Yläraja suoritettavien rivien määrälle 6 (N+M) Siis algoritmin kompleksisuusluokka O(N+M) HUOM! Jos verkossa lähes kaikkien solmujen välillä on kytkentä, on M luokkaa N 2. Tällöin siis algoritmin kompleksisuus on luokkaa O(N 2 ) A TRA Verkot / osa 1 13

14 V.2.3 Leveyshaun algoritmin analyysi: oikeellisuus Olkoon algoritmin syötesolmu s Merkintä: (s,v) on solmun v etäisyys solmusta s Algoritmi todettu oikeaksi, kun osoitetaan: 1. Algoritmin suorituksen jälkeen kaikki solmusta s saavutettavat solmut löydetään 2. Taulukon d arvo d[v] = (s,v) 3. Jos v s, ja v voidaan saavuttaa solmusta s, niin jokin lyhimmistä poluista solmusta s solmuun v on polku solmusta s solmuun p[v] ja väli (p[v],v) A TRA Verkot / osa 1 14

15 V.2.4 Leveyshaun sovelluksia Lyhimmän polun hakeminen kahden solmun väliltä Verkon yhtenäisyyden selvittäminen Yhdistettyjen komponenttien hakeminen A TRA Verkot / osa 1 15

16 V Lyhimmän polun tulostaminen Syöte: Verkko G=(V,E) ja sen solmut s ja v. Algoritmissa oletetaan ensin ajettavan BFS(G,s), jonka tuottamaa taulukkoa p käytetään. Tulostus: Lyhin polku solmusta s solmuun v tai ilmoitus siitä, että polkua ei ole. BFS_POLKU(G,s,v) 1. if v==s 2. tulosta s 3. else 4. if p[v] == NIL 5. tulosta Ei polkua 6. else 7. BFS_POLKU(G,s,p[v]) 8. tulosta v 9. return A TRA Verkot / osa 1 16

17 V.3 Syvyyshaku Monipuolisempi kuin leveyshaku Laajempi sovellettavuus Hieman haastavampi käyttää Idea: Mennään verkossa aina aluksi niin syvälle kuin päästään, ts. tarkistetaan, onko tutkittavalla solmulla s vielä tutkimattomia siitä lähteviä välejä Kun kaikki välit on tutkittu, algoritmi perääntyy solmuun, josta solmu s löydettiin ja tutkii siitä lähtevät välit Jatketaan, kunnes lähtösolmusta saavutettavat solmut on kaikki tutkittu Jos vielä tutkimattomia solmuja, valitaan uusi lähtösolmu A TRA Verkot / osa 1 17

18 V.3 Syvyyshaku (2) Toteutuksesta: Käytetään samankaltaista solmujen värittämistä ja edeltäjätaulukkoa kuin leveyshaussa Lisäksi globaali askelmuuttuja, joka ilmaisee kunkin solmun löytämis- ja tarkastelun lopettamisajan Tallennetaan aikaleimoina kahteen taulukkoon Aikaleimojen avulla saadaan verkon rakenteesta tarkempaa tietoa kuin leveyshaulla A TRA Verkot / osa 1 18

19 V.3.1 Syvyyshaun algoritmi Syöte: Verkko G=(V,E) ja sen solmu s. Verkolle käytetään vieruslistaesitystä. Tulostus: Olkoon N solmujen lukumäärä. N-paikkaiset taulukot p,d,f ja color indeksoidaan verkon solmuilla. Taulukkoon p lasketaan solmun edeltäjäsolmu syvyyshakupuussa. Taulukkoon d lasketaan solmun havaitsemisaika ja taulukkoon f solmun käsittelyn lopetusaika. DFS(G) 1.for each u in V 2. color[u] = WHITE 3. p[u] = NIL 4. time = 0 5.for each u in V 6. if color[u]==white 7. DFS_VISIT(u) 8.return DFS_VISIT(u) 1. color[u] = GRAY 2. time = time+1 3. d[u] = time 4. for each v in Adj[u] 5. if color[v]==white 6. p[v] = u 7. DFS_VISIT(v) 8. color[u] = BLACK 9. time = time+1 10.f[u] = time 11.return A TRA Verkot / osa 1 19

20 V.3.2 Syvyyshaun eteneminen 1: a b c 2: 1/ a b c 1/ 2/ d e f d e f 3: a b c 4: a b c 1/ 2/ 1/ 2/ 3/ d e f B 4/ 3/ d e f A TRA Verkot / osa 1 20

21 V.3.2 Syvyyshaun eteneminen (2) 5: a b c 6: a b c 1/ 2/ 1/ 2/ B 4/5 3/ d e f B 4/5 3/6 d e f 7: a b c 8: a b c 1/ 2/7 1/8 2/7 B F B 4/5 3/6 d e f 4/5 3/6 d e f A TRA Verkot / osa 1 21

22 V.3.2 Syvyyshaun eteneminen (3) 9: a b c 10: a b c 1/8 2/7 9/ 1/8 2/7 9/ F B F B C 4/5 3/6 d e f 4/5 3/6 10/ d e f 11: a b c 1/8 2/7 9/ F B C 4/5 3/6 10/11 d e f 12: a b c 1/8 2/7 9/12 F B C 4/5 3/6 10/11 d e f A TRA Verkot / osa 1 22

23 V.3.3 Syvyyshaun kompleksisuus Oletetaan, että verkossa N solmua ja M väliä Algoritmi DFS_VISIT suoritetaan täsmälleen kerran jokaiselle solmulle Jokainen solmusta lähtevä väli tutkitaan DFS_VISITissä vakioaikaisella operaatiolla sekä mahdollisella DFS_VISIT-kutsulla Siis kompleksisuus Θ(N+M) A TRA Verkot / osa 1 23

24 V.3.4 Syvyyshaun ominaisuuksia Edeltäjätaulukossa p[u] = v, jos ja vain jos (u,v) on verkon väli ja v havaitaan siinä vaiheessa, kun u on väriltään harmaa Muodostetaan verkko, jonka välit ovat (p[u],u) solmuille u joilla on edeltäjä Saadaan puiden muodostama verkko = syvyyssuuntainen virittävä metsä (depth-first forest) Jos solmu v samassa puussa solmun u kanssa ja solmusta u lähtevässä alipuussa, sanotaan, että u on solmun v edeltäjä ja v solmun u jälkeläinen Solmu u solmun v edeltäjä tarkalleen silloin, kun u on väriltään harmaa havaittaessa solmu v A TRA Verkot / osa 1 24

25 V.3.4 Syvyyshaun ominaisuuksia (2) Esimerkkiverkon syvyysuuntainen virittävä metsä a c b f e d A TRA Verkot / osa 1 25

26 V.3.4 Syvyyshaun ominaisuuksia (3) Olkoot u ja v verkon G solmuja ja suoritetaan verkolle syvyyshaku. Silloin jokin seuraavasta kolmesta ehdosta on voimassa: 1. Välit [d[u],f[u]] ja [d[v],f[v]] ovat erilliset eikä u ole solmun v jälkeläinen eikä v solmun u jälkeläinen 2. Väli [d[u],f[u]] sisältyy kokonaisuudessaan väliin [d[v],f[v]] ja u on solmun v jälkeläinen 3. Väli [d[v],f[v]] sisältyy kokonaisuudessaan väliin [d[u],f[u]] ja v on solmun u jälkeläinen Seuraus: Solmu v on solmun u jälkeläinen jos ja vain jos d[u] < d[v] < f[v] < f[u] A TRA Verkot / osa 1 26

27 V.3.4 Syvyyshaun ominaisuuksia (4) Solmujen käsittelyajat esimerkkiverkossa a c b f e d A TRA Verkot / osa 1 27

28 V.3.4 Syvyyshaun ominaisuuksia (5) Verkon välit jaetaan seuraaviin luokkiin: 1. Puuvälit (tree edges) ovat välejä syvyysmetsän puissa Siten (u,v) on puuväli, jos solmu v havaittiin väliä (u,v) tutkimalla 2. Takautuvat välit (back edges) välejä (u,v), joissa u on solmun v jälkeläinen jossakin syvyysmetsän puussa 3. Etenevät välit (forward edges) välejä (u,v), joissa u on solmun v edeltäjä jossakin syvyysmetsän puussa, ja (u,v) ei ole puuväli 4. Sivuttaisvälit (cross edges) ovat välejä, jotka eivät kuulu mihinkään luokista A TRA Verkot / osa 1 28

29 V.3.4 Syvyyshaun ominaisuuksia (6) Välien luokittelu esimerkkiverkossa a b c 1/8 2/7 9/12 Puuväli F B C F Etenevä väli 4/5 3/6 d e f 10/11 B C Takautuva väli Sivuttaisväli A TRA Verkot / osa 1 29

30 V.3.5 Syklin havaiseminen syvyyshaulla Verkossa sykli tarkalleen silloin, kun syvyyshaku tuottaa vähintään yhden takautuvan välin Väli (u,v) on takautuva, jos u on solmun v jälkeläinen Tällöin väliä ensimmäistä kertaa tutkittaessa solmun v on oltava harmaa, jolloin v on solmun u edeltäjä Takautuva väli voidaan havaita algoritmin suoritusvaiheessa -> Saadaan versio, joka havaitsee syklin A TRA Verkot / osa 1 30

31 V.3.5 Syklin havaiseminen syvyyshaulla (2) Syöte: Verkko G=(V,E) ja sen solmu s. Verkolle käytetään vieruslistaesitystä. Tulostus: Kuten syvyyshaku, mutta palauttaa arvon TRUE, jos verkossa sykli ja arvon FALSE muuten DFS(G) 1.for each u in V 2. color[u] = WHITE 3. p[u] = NIL 4. time = 0 5. cycle = FALSE 6.for each u in V 7. if color[u]==white 8. DFS_VISIT(u) 9.return cycle DFS_VISIT(u) 1. color[u] = GRAY 2. time = time+1 3. d[u] = time 4. for each v in Adj[u] 5. if color[v]==gray 6. cycle=true 8. if color[v]==white 9. p[v] = u 10. DFS_VISIT(v) 13. color[u] = BLACK 14. time = time f[u] = time 16. return A TRA Verkot / osa 1 31

32 V.3.6 Vahvasti yhtenäiset komponentit Vahvasti yhtenäinen komponentti suunnatussa verkossa on sellainen maksimaalinen solmujen joukko, että aina kun u ja v ovat joukon solmuja, on olemassa polku sekä solmusta u solmuun v että solmusta v solmuun u Esimerkkiverkossa vahvasti yhtenäiset komponentit ovat {a}, {b,d,e}, {c} ja {f} Voidaan löytää syvyyshaulla Merkintä: kun G on verkko, niin G T on verkko joka saadaan G:stä kääntämällä välien suunnat Voidaan tehdä ajassa O(N+M), jos G:ssä M väliä A TRA Verkot / osa 1 32

33 V.3.6 Vahvasti yhtenäiset komponentit (2) Syöte: Suunnattu verkko G=(V,E). Verkolle oletetaan käytettävän vieruslistaesitystä. Tulostus: Syöteverkon vahvasti yhtenäiset komponentit. SCC(G) 1. Suorita DFS(G), käytetään solmujen käsittelyajan päättymistaulukkoa f. 2. Muodosta G T 3. Suorita DFS(G T ), mutta pääsilmukassa (rivi 6) käsitellään solmut askelessa 1 saatujen f[u]:n arvojen suhteen vähenevässä järjestyksessä. 4. Askelessa 3 syntyvän virittävän metsän jokainen puu on verkon G vahvasti yhtenäinen komponentti A TRA Verkot / osa 1 33

34 V.3.6 Vahvasti yhtenäiset komponentit (3) Analyysi. Verkko G, jossa N solmua ja M väliä Kompleksisuus: Kahdesti syvyyshaku (Θ(N+M)) G T :n muodostaminen (Θ(N+M)) Koko algoritmin kompleksisuus Θ(N+M) A TRA Verkot / osa 1 34

35 V.3.6 Vahvasti yhtenäiset komponentit (4) Oikeellisuus: 1. Jos solmut u ja v samassa komponentissa, G:ssä polku u:sta v:hen ja päinvastoin. Samoin G T :ssä. u ja v päätyvät samaan puuhun 2. Olkoot u ja v samassa puussa, jonka juuri on x Siis G T :ssä polut x->u ja x->v, joten G:ssä on polut u->x ja v->x Syvyyshakujärjestys G T :lle takaa myös G:ssä polut x->u ja x->v Siten u ja v samassa komponentissa Kohdat 1 ja 2 osoittavat algoritmin oikeaksi A TRA Verkot / osa 1 35

36 V.3.7 Syvyyshaku suuntaamattomassa verkossa Toimii samaan tapaan kuin suunnatuissa verkoissa Välien luokittelua tulkittava Suuntaamattomassa verkossa väli (u,v) ja (v,u) samaistetaan Välin luokaksi annetaan se, joka tehdään, kun väliä tarkastellaan ensimmäistä kertaa, olipa kyseessä vali (u,v) tai (v,u) Suuntaamattoman verkon välit kaikki joko puuvälejä tai takautuvia välejä Syvyyssuuntaisen virittävän metsän puut antavat verkon yhtenäiset komponentit A TRA Verkot / osa 1 36

811312A Tietorakenteet ja algoritmit, , Harjoitus 6, Ratkaisu

811312A Tietorakenteet ja algoritmit, , Harjoitus 6, Ratkaisu 811312A Tietorakenteet ja algoritmit, 2018-2019, Harjoitus 6, Ratkaisu Harjoituksen aiheet ovat verkkojen leveys- ja syvyyshakualgoritmit Tehtävä 6.1 Hae leveyshakualgoritmia käyttäen lyhin polku seuraavan

Lisätiedot

811312A Tietorakenteet ja algoritmit, , Harjoitus 6, Ratkaisu

811312A Tietorakenteet ja algoritmit, , Harjoitus 6, Ratkaisu 811312A Tietorakenteet ja algoritmit, 2016-2017, Harjoitus 6, Ratkaisu Harjoituksen aiheet ovat verkkojen leveys- ja syvyyshakualgoritmit Tehtävä 6.1 Hae leveyshakualgoritmia käyttäen lyhin polku seuraavan

Lisätiedot

5 Verkkoalgoritmeja. 5.1 Verkkojen esitystapoja

5 Verkkoalgoritmeja. 5.1 Verkkojen esitystapoja 5 Verkkoalgoritmeja Tässä kappaleessa esitellään verkkoalgoritmien perusidea. Verkkoalgoritmit ovat yleisimpiä algoritmityyppejä. Yksi neuvo algoritmia suunniteltaessa onkin muuntaa tarkasteltava ongelma

Lisätiedot

6 Verkkoalgoritmeja. 6.1 Verkkojen esitystapoja

6 Verkkoalgoritmeja. 6.1 Verkkojen esitystapoja 6 Verkkoalgoritmeja Tässä kappaleessa esitellään verkkoalgoritmien perusidea. Verkkoalgoritmit ovat yleisimpiä algoritmityyppejä. Yksi neuvo algoritmia suunniteltaessa onkin muuntaa tarkasteltava ongelma

Lisätiedot

811312A Tietorakenteet ja algoritmit Kertausta jälkiosasta

811312A Tietorakenteet ja algoritmit Kertausta jälkiosasta 811312A Tietorakenteet ja algoritmit 2018-2019 Kertausta jälkiosasta V Hashtaulukot ja binääriset etsintäpuut Hashtaulukot Perusajatus tunnettava Tiedettävä mikä on tiivistefunktio Törmäysongelman hallinta:

Lisätiedot

811312A Tietorakenteet ja algoritmit Kertausta jälkiosasta

811312A Tietorakenteet ja algoritmit Kertausta jälkiosasta 811312A Tietorakenteet ja algoritmit 2016-2017 Kertausta jälkiosasta IV Perustietorakenteet Pino, jono ja listat tunnettava Osattava soveltaa rakenteita algoritmeissa Osattava päätellä operaatioiden aikakompleksisuus

Lisätiedot

811312A 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 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ä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

Algoritmit 1. Luento 9 Ti Timo Männikkö

Algoritmit 1. Luento 9 Ti Timo Männikkö Algoritmit 1 Luento 9 Ti 7.2.2017 Timo Männikkö Luento 9 Graafit ja verkot Kaaritaulukko, bittimatriisi, pituusmatriisi Verkon lyhimmät polut Floydin menetelmä Lähtevien ja tulevien kaarien listat Forward

Lisätiedot

13 Lyhimmät painotetut polut

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

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

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

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

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

Johdatus graafiteoriaan

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

Algoritmit 2. Luento 11 Ti Timo Männikkö

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

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

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

TIE Tietorakenteet ja algoritmit 261

TIE Tietorakenteet ja algoritmit 261 TIE-20100 Tietorakenteet ja algoritmit 261 12 Graafit Seuraavaksi tutustutaan tietorakenteeseen, jonka muodostavat pisteet ja niiden välille muodostetut yhteydet graafiin. Keskitymme myös tyypillisimpiin

Lisätiedot

58131 Tietorakenteet ja algoritmit (kevät 2013) Kurssikoe 2, , vastauksia

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

Johdatus graafiteoriaan

Johdatus graafiteoriaan Johdatus graafiteoriaan Syksy 2017 Lauri Hella Tampereen yliopisto Luonnontieteiden tiedekunta 62 Luku 2 Yhtenäisyys 2.1 Polku 2.2 Lyhin painotettu polku 2.3 Yhtenäinen graafi 2.4 Komponentti 2.5 Aste

Lisätiedot

Lyhin kahden solmun välinen polku

Lyhin kahden solmun välinen polku Lyhin kahden solmun välinen polku Haluamme etsiä lyhimmän polun alla olevan ruudukon kohdasta a kohtaan b vierekkäisten (toistensa sivuilla, ylä- ja alapuolella olevien) valkoisten ruutujen välinen etäisyys

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

811312A Tietorakenteet ja algoritmit II Perustietorakenteet

811312A Tietorakenteet ja algoritmit II Perustietorakenteet 811312A Tietorakenteet ja algoritmit 2017-2018 II Perustietorakenteet Sisältö 1. Johdanto 2. Pino 3. Jono 4. Lista 811312A TRA, Perustietorakenteet 2 II.1. Johdanto Tietorakenne on tapa, jolla algoritmi

Lisätiedot

10. Painotetut graafit

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

Pienin virittävä puu (minimum spanning tree)

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

A274101 TIETORAKENTEET JA ALGORITMIT

A274101 TIETORAKENTEET JA ALGORITMIT A274101 TIETORAKENTEET JA ALGORITMIT GRAAFITEHTÄVIÄ JA -ALGORITMEJA Lähteet: Timo Harju, Opintomoniste Keijo Ruohonen, Graafiteoria (math.tut.fi/~ruohonen/gt.pdf) GRAAFIN LÄPIKÄYMINEN Perusta useimmille

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

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

Tietorakenteet ja algoritmit. Verkot. Ari Korhonen

Tietorakenteet ja algoritmit. Verkot. Ari Korhonen Tietorakenteet ja algoritmit Verkot Ari Korhonen 1 10. VERKOT ( graphs ) 10.1 Yleistä 10.2 Terminologiaa 10.3 Verkon esittäminen 10.4 Verkon läpikäyntialgoritmit (graph traversal) 10.5 Painotetut verkot

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

10. Painotetut graafit

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

14. Luennon sisältö. Kuljetustehtävä. Verkkoteoria ja optimointi. esimerkki. verkkoteorian optimointitehtäviä verkon virittävä puu lyhimmät polut

14. Luennon sisältö. Kuljetustehtävä. Verkkoteoria ja optimointi. esimerkki. verkkoteorian optimointitehtäviä verkon virittävä puu lyhimmät polut JYVÄSKYLÄN YLIOPISTO 14. Luennon sisältö Kuljetustehtävä esimerkki Verkkoteoria ja optimointi verkkoteorian optimointitehtäviä verkon virittävä puu lyhimmät polut kevät 2012 TIEA382 Lineaarinen ja diskreetti

Lisätiedot

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

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

Lisätiedot

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

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

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

811312A Tietorakenteet ja algoritmit V Hash-taulukot ja binääriset etsintäpuut

811312A Tietorakenteet ja algoritmit V Hash-taulukot ja binääriset etsintäpuut 811312A Tietorakenteet ja algoritmit 2018-2019 V Hash-taulukot ja binääriset etsintäpuut Sisältö 1. Hash-taulukot 2. Binääriset etsintäpuut 811312A TRA, Hash-taulukot, binääripuut 2 V.1 Hash-taulukot Käytetään

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

58131 Tietorakenteet Erilliskoe , ratkaisuja (Jyrki Kivinen)

58131 Tietorakenteet Erilliskoe , ratkaisuja (Jyrki Kivinen) 58131 Tietorakenteet Erilliskoe 11.11.2008, ratkaisuja (Jyrki Kivinen) 1. (a) Koska halutaan DELETEMAX mahdollisimman nopeaksi, käytetään järjestettyä linkitettyä listaa, jossa suurin alkio on listan kärjessä.

Lisätiedot

v 8 v 9 v 5 C v 3 v 4

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

Lisätiedot

811312A Tietorakenteet ja algoritmit Kertausta kurssin alkuosasta

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

Lisätiedot

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

Johdatus verkkoteoriaan 4. luento

Johdatus verkkoteoriaan 4. luento Johdatus verkkoteoriaan 4. luento 28.11.17 Viikolla 46 läpikäydyt käsitteet Viikolla 47 läpikäydyt käsitteet Verkko eli graafi, tasoverkko, solmut, välit, alueet, suunnatut verkot, isomorfiset verkot,

Lisätiedot

Ongelma 1: Ovatko kaikki tehtävät/ongelmat deterministisiä?

Ongelma 1: Ovatko kaikki tehtävät/ongelmat deterministisiä? Ongelma 1: Ovatko kaikki tehtävät/ongelmat deterministisiä? 2012-2013 Lasse Lensu 2 Ongelma 2: Milloin ongelmat muuttuvat oikeasti hankaliksi? 2012-2013 Lasse Lensu 3 Ongelma 3: Miten hankalia ongelmia

Lisätiedot

Alaraja vertailuihin perustuvalle järjestämiselle

Alaraja vertailuihin perustuvalle järjestämiselle Alaraja vertailuihin perustuvalle järjestämiselle Edellä esitetyt järjestämisalgoritmit ovat kaikki vertailuihin perustuvia: ne käsittelevät järjestettäviä arvoja vain testaamalla järjestysehtoja A[i]

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

811312A Tietorakenteet ja algoritmit, , Harjoitus 5, Ratkaisu

811312A Tietorakenteet ja algoritmit, , Harjoitus 5, Ratkaisu 1312A Tietorakenteet ja algoritmit, 2018-2019, Harjoitus 5, Ratkaisu Harjoituksen aihe ovat hash-taulukot ja binääriset etsintäpuut Tehtävä 5.1 Tallenna avaimet 10,22,31,4,15,28,17 ja 59 hash-taulukkoon,

Lisätiedot

Miten käydä läpi puun alkiot (traversal)?

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

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

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

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

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

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

Kysymys: Voidaanko graafi piirtää tasoon niin, että sen viivat eivät risteä muualla kuin pisteiden kohdalla?

Kysymys: Voidaanko graafi piirtää tasoon niin, että sen viivat eivät risteä muualla kuin pisteiden kohdalla? 7.7. Tasograafit Graafi voidaan piirtää mielivaltaisen monella tavalla. Graafin ominaisuudet voivat näkyä selkeästi jossain piirtämistavoissa, mutta ei toisessa. Eräs tärkeä graafiryhmä, pintagraafit,

Lisätiedot

PARITUS KAKSIJAKOISESSA

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

9. Graafit. 9.1. Graafin abstrakti tietotyyppi

9. Graafit. 9.1. Graafin abstrakti tietotyyppi 9. Graafit Graafeilla eli verkoilla esitetään yhteystietoja. Esimerkkejä niistä ovat kaupunkikartan kadut ja tietoverkon tietokoneet. Tämä luku tarkastelee verkkojen perusasioita. 9.1. Graafin abstrakti

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

811312A Tietorakenteet ja algoritmit, , Harjoitus 5, Ratkaisu

811312A Tietorakenteet ja algoritmit, , Harjoitus 5, Ratkaisu 1312A Tietorakenteet ja algoritmit, 2016-2017, Harjoitus 5, Ratkaisu Harjoituksen aihe ovat hash-taulukot ja binääriset etsintäpuut Tehtävä 5.1 Tallenna avaimet 10,22,31,4,15,28,17 ja 59 hash-taulukkoon,

Lisätiedot

Ongelma 1: Ovatko kaikki tehtävät/ongelmat deterministisiä?

Ongelma 1: Ovatko kaikki tehtävät/ongelmat deterministisiä? Ongelma 1: Ovatko kaikki tehtävät/ongelmat deterministisiä? 2013-2014 Lasse Lensu 2 Ongelma 2: Milloin ongelmat muuttuvat oikeasti hankaliksi? 2013-2014 Lasse Lensu 3 Ongelma 3: Miten hankalia ongelmia

Lisätiedot

T Syksy 2002 Tietojenkäsittelyteorian perusteet Harjoitus 8 Demonstraatiotehtävien ratkaisut

T Syksy 2002 Tietojenkäsittelyteorian perusteet Harjoitus 8 Demonstraatiotehtävien ratkaisut T-79.148 Syksy 2002 Tietojenkäsittelyteorian perusteet Harjoitus 8 Demonstraatiotehtävien ratkaisut 4. Tehtävä: Laadi algoritmi, joka testaa onko annetun yhteydettömän kieliopin G = V, Σ, P, S tuottama

Lisätiedot

Äärellisten mallien teoria

Äärellisten mallien teoria Äärellisten mallien teoria Harjoituksen 4 ratkaisut Tehtävä 1. Määritä suurin aste k, johon saakka kuvan verkot G ja G ovat osittaisesti isomorfisia: Ratkaisu 1. Huomataan aluksi, että G =4 G : Ehrenfeucht-Fraïssé

Lisätiedot

Ratkaisu. Tulkitaan de Bruijnin jonon etsimiseksi aakkostossa S := {0, 1} sanapituudelle n = 4. Neljän pituisia sanoja on N = 2 n = 16 kpl.

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

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

Tehtävän V.1 ratkaisuehdotus Tietorakenteet, syksy 2003

Tehtävän V.1 ratkaisuehdotus Tietorakenteet, syksy 2003 Tehtävän V.1 ratkaisuehdotus Tietorakenteet, syksy 2003 Matti Nykänen 5. joulukuuta 2003 1 Satelliitit Muunnetaan luennoilla luonnosteltua toteutusta seuraavaksi: Korvataan puusolmun p kentät p. key ja

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

Luku 8. Aluekyselyt. 8.1 Summataulukko

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

Näytetään nyt relaatioon liittyvien ekvivalenssiluokkien olevan verkon G lohkojen särmäjoukkoja. Olkoon siis f verkon G jokin särmä.

Näytetään nyt relaatioon liittyvien ekvivalenssiluokkien olevan verkon G lohkojen särmäjoukkoja. Olkoon siis f verkon G jokin särmä. Tehtävä 6 : 1 Oletetaan ensin joukon X olevan sisältymisen suhteen minimaalinen solmut a ja b toisistaan erotteleva joukon V(G)\{a, b} osajoukko. Olkoon x joukon X alkio. Oletuksen nojalla joukko X\{x}

Lisätiedot

Stabiloivat synkronoijat ja nimeäminen

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

keskenään isomorfiset? (Perustele!) Ratkaisu. Ovat. Tämän näkee indeksoimalla kärjet kuvan osoittamalla tavalla: a 1 b 3 a 5

keskenään isomorfiset? (Perustele!) Ratkaisu. Ovat. Tämän näkee indeksoimalla kärjet kuvan osoittamalla tavalla: a 1 b 3 a 5 Johdatus diskreettiin matematiikkaan Harjoitus 6, 21.10.2015 1. Ovatko verkot keskenään isomorfiset? (Perustele!) Ratkaisu. Ovat. Tämän näkee indeksoimalla kärjet kuvan osoittamalla tavalla: a 2 b 4 a

Lisätiedot

Silmukkaoptimoinnista

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

Algoritmit 1. Luento 4 Ke Timo Männikkö

Algoritmit 1. Luento 4 Ke Timo Männikkö Algoritmit 1 Luento 4 Ke 18.1.2017 Timo Männikkö Luento 4 Tietorakenteet Pino Pinon toteutus Jono Jonon toteutus Lista Listaoperaatiot Algoritmit 1 Kevät 2017 Luento 4 Ke 18.1.2017 2/29 Pino Pino, stack,

Lisätiedot

A274101 TIETORAKENTEET JA ALGORITMIT

A274101 TIETORAKENTEET JA ALGORITMIT A274101 TIETORAKENTEET JA ALGORITMIT VERKOT ELI GRAAFIT Lähteet: Timo Harju, Opintomoniste Keijo Ruohonen, Graafiteoria (math.tut.fi/~ruohonen/gt.pdf) HISTORIAA Verkko- eli graafiteorian historia on saanut

Lisätiedot

Graafin 3-värittyvyyden tutkinta T Graafiteoria, projektityö (eksakti algoritmi), kevät 2005

Graafin 3-värittyvyyden tutkinta T Graafiteoria, projektityö (eksakti algoritmi), kevät 2005 Graafin 3-värittyvyyden tutkinta T-79.165 Graafiteoria, projektityö (eksakti algoritmi), kevät 2005 Mikko Malinen, 36474R 29. maaliskuuta, 2005 Tiivistelmä Artikkelissa käydään läpi teoriaa, jonka avulla

Lisätiedot

Itsestabilointi: perusmääritelmiä ja klassisia tuloksia

Itsestabilointi: perusmääritelmiä ja klassisia tuloksia Itsestabilointi: perusmääritelmiä ja klassisia tuloksia Jukka Suomela Hajautettujen algoritmien seminaari 12.10.2007 Hajautetut järjestelmät Ei enää voida lähteä oletuksesta, että kaikki toimii ja mikään

Lisätiedot

Algoritmit 2. Luento 6 To Timo Männikkö

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

Johdatus verkkoteoriaan luento Netspace

Johdatus verkkoteoriaan luento Netspace Johdatus verkkoteoriaan luento 20.3.18 Netspace Kurssin sijainti muussa suunnitellussa kokonaisuudessa Verkko eli graafi, tasoverkko, solmut, välit, alueet, suunnatut verkot, isomorfiset verkot, verkon

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

Stabilointi. Marja Hassinen. p.1/48

Stabilointi. Marja Hassinen. p.1/48 Stabilointi Marja Hassinen marja.hassinen@cs.helsinki.fi p.1/48 Kertausta ja käsitteitä Sisältö Stabilointi Resynkroninen stabilointi Yleinen stabilointi Tarkkailu Alustus Kysymyksiä / kommentteja saa

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

Graafin virittävä puu 1 / 20

Graafin virittävä puu 1 / 20 Graafin virittävä puu 1 / 20 Graafin virittävä puu PuuT on graafingvirittävä puu (spanning tree), jos se sisältää kaikkig:n pisteet. Virittäviä puita: 2 / 20 Yhdistämisongelma Yhdistämisongelma:(Connector

Lisätiedot

811312A Tietorakenteet ja algoritmit 2015-2016. I Johdanto

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

Lisätiedot

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

58131 Tietorakenteet ja algoritmit (kevät 2013) Kurssikoe 1, , vastauksia

58131 Tietorakenteet ja algoritmit (kevät 2013) Kurssikoe 1, , vastauksia 58131 Tietorakenteet ja algoritmit (kevät 2013) Kurssikoe 1, 25.2.2013, vastauksia 1. (a) O-merkintä Ω-merkintä: Kyseessä on (aika- ja tila-) vaativuuksien kertalukumerkinnästä. O-merkintää käytetään ylärajan

Lisätiedot

Kurssikoe on maanantaina 29.6. Muista ilmoittautua kokeeseen viimeistään 10 päivää ennen koetta! Ilmoittautumisohjeet löytyvät kurssin kotisivuilla.

Kurssikoe on maanantaina 29.6. Muista ilmoittautua kokeeseen viimeistään 10 päivää ennen koetta! Ilmoittautumisohjeet löytyvät kurssin kotisivuilla. HY / Avoin ylioisto Johdatus yliopistomatematiikkaan, kesä 201 Harjoitus 7 Ratkaisut palautettava viimeistään perjantaina 26.6.201 klo 16.00. Huom! Luennot ovat salissa CK112 maanantaista 1.6. lähtien.

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

b) Olkoon G vähintään kaksi solmua sisältävä puu. Sallitaan verkon G olevan

b) Olkoon G vähintään kaksi solmua sisältävä puu. Sallitaan verkon G olevan Tehtävä 7 : 1 a) Olkoon G jokin epäyhtenäinen verkko. Tällöin väittämä V (G) 2 pätee jo epäyhtenäisyyden nojalla. Jokaisella joukolla X on ehto X 0 voimassa, joten ehdot A < 0 ja F < 0 toteuttavilla joukoilla

Lisätiedot

Taulun avoimista haaroista saadaan kelvolliset lausejoukot

Taulun avoimista haaroista saadaan kelvolliset lausejoukot T-79.5101 kevät 2006 Laskennallisen logiikan jatkokurssi Laskuharjoitus 11 Ratkaisut 1. M : a, Q b c d Lauseen X( UQ) sulkeuma: CL ( X( UQ) ) = { X( UQ), X( UQ), UQ, X ( UQ), ( UQ),, Q, X ( UQ),, } Muodostetaan

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

Puiden karakterisointi

Puiden karakterisointi Puiden karakterisointi LuK-tutkielma Airta Ella 2502661 Matemaattisten tieteiden laitos Oulun yliopisto Syksy 2018 Sisältö Johdanto 2 1 Johdatus verkkoteoriaan 3 1.1 Verkko käsitteenä.........................

Lisätiedot

S BAB ABA A aas bba B bbs c

S BAB ABA A aas bba B bbs c T-79.148 Kevät 2003 Tietojenkäsittelyteorian perusteet Harjoitus 8 Demonstraatiotehtävien ratkaisut 4. Tehtävä: Laadi algoritmi, joka testaa onko annetun yhteydettömän kieliopin G = V, Σ, P, S) tuottama

Lisätiedot

1.1 Pino (stack) Koodiluonnos. Graafinen esitys ...

1.1 Pino (stack) Koodiluonnos. Graafinen esitys ... 1. Tietorakenteet Tietorakenteet organisoivat samankaltaisten olioiden muodostaman tietojoukon. Tämä järjestys voidaan saada aikaan monin tavoin, esim. Keräämällä oliot taulukkoon. Liittämällä olioihin

Lisätiedot

Algoritmit 2. Luento 10 To Timo Männikkö

Algoritmit 2. Luento 10 To Timo Männikkö Algoritmit 2 Luento 10 To 19.4.2018 Timo Männikkö Luento 10 Peruutusmenetelmä Osajoukon summa Verkon 3-väritys Pelipuut Pelipuun läpikäynti Algoritmit 2 Kevät 2018 Luento 10 To 19.4.2018 2/34 Algoritmien

Lisätiedot

811312A Tietorakenteet ja algoritmit, 2015-2016. VI Algoritmien suunnitteluparadigmoja

811312A Tietorakenteet ja algoritmit, 2015-2016. VI Algoritmien suunnitteluparadigmoja 811312A Tietorakenteet ja algoritmit, 2015-2016 VI Algoritmien suunnitteluparadigmoja Sisältö 1. Hajota ja hallitse-menetelmä 2. Dynaaminen taulukointi 3. Ahneet algoritmit 4. Peruuttavat algoritmit 811312A

Lisätiedot