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

Koko: px
Aloita esitys sivulta:

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

Transkriptio

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

2 JYVÄSKYLÄN YLIOPISTO Esimerkki kuljetustehtävän ratkaisemisesta kevät 2012 TIEA382 Lineaarinen ja diskreetti optimointi

3 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: Haaraan liittyvät solmut Kaaren alku- ja loppusolmut: Kaareen liittyvät solmut Solmun aste: Solmuun liittyvien haarojen lukumäärä 1

4 b 2 1 d e c a 3 4 f 5 Suuntaamaton graafi G(N, A) Solmut N = {1,2,3,4,5} Haarat A = {a, b, c, d, e, f} = {(1,4),(1,2),(1,3),(2,3),(2,3),(3,5)} 2

5 2 b 1 d e c a 3 4 f 5 Suunnattu graafi G(N, A) Solmut N = {1,2,3,4,5} Kaaret A = {a, b, c, d, e, f} = {(1,4),(2,1),(1,3),(2,3),(3,2),(5,3)} 3

6 Polku: Katkeamaton jono solmuja ja haaroja/kaaria Silmukka: Polku, jonka alku- ja loppusolmut ovat samat Yksinkertainen polku: Solmu esiintyy polussa vain kerran Yhdistetyt solmut: Solmujen välillä on ainakin yksi polku 4

7 Yhtenäinen (yhdistetty) graafi: Kaikki solmuparit ovat yhdistettyjä Renkaaton graafi: Ei yhtään silmukkaa Puu: Graafi, joka on yhtenäinen ja renkaaton 5

8 Verkko: Graafi, jonka solmuihin ja haaroihin/kaariin liittyy numeerisia arvoja (esimerkiksi pituus, kustannus tai kapasiteetti) Virtaus: Tavara tms. kulkee solmusta toiseen kaaria/haaroja pitkin Lähdesolmu: Solmu, josta tulee lisää tavaraa verkkoon Viemärisolmu: Solmu, josta tavaraa poistuu verkosta Virtauksen säilyvyys: Solmuun saapuva ja siitä lähtevä virtaus ovat samat (paitsi lähde- ja viemärisolmuissa) 6

9 Tuotannon ajoitus Tuotetta valmistetaan usean tuotantokauden aikana Tuotteen tarve kaudella i on d i Tuotetta voidaan valmistaa myös varastoon Valmistuksesta ja varastoinnista aiheutuvat tietyt kustannukset Tavoite: Määrää tuotteen valmistusmäärät kullakin kaudella siten, että kokonaiskustannukset minimoituvat 7

10 x i = valmistusmäärä kaudella i v i = varaston koko kaudelta i kaudelle i + 1 Solmut kuvaavat kausia, solmu 0 kuvaa alkutilannetta Kaaret kuvaavat tuotteen kulkeutumista kaudelta toiselle Jokaiseen kaareen liittyy joko valmistuskustannus tai varastointikustannus 8

11 d 1 + d 2 + d 3 + d 4 0 x 1 x 2 x 3 x 4 v 1 v 2 v d 1 d 2 d 3 d 4 Tehtävä: Etsi minimihintainen virtaus verkon läpi 9

12 Lukujärjestysongelma Seminaarissa kuusi tunnin esitelmää Seminaarin kokonaiskesto neljä tuntia Esitelmän 1 kanssa ei samanaikaisesti esitelmää 3 Esitelmän 3 kanssa ei samanaikaisesti esitelmiä 1, 4, 5, 6 Esitelmän 4 kanssa ei samanaikaisesti esitelmiä 3, 5, 6 Esitelmän 5 kanssa ei samanaikaisesti esitelmiä 3, 4, 6 Esitelmän 6 kanssa ei samanaikaisesti esitelmiä 3, 4, 5 Tavoite: Järjestä esitelmät siten, että rajoitteet toteutuvat 10

13 Solmut kuvaavat esitelmiä Solmut yhdistetään haaralla, jos vastaavat esitelmät eivät saa olla samanaikaisesti Neljä eri tunnusta, yksi kullekin seminaarin tunnille 11

14 Tehtävä: Liitä jokaiseen solmuun yksi tunnus siten, että kahdella solmulla ei saa olla sama tunnus, jos niiden välillä on haara 12

15 Jakeluongelma Pizzerialla on kotiinkuljetusta varten käytössä n autoa Tavoite: Toimita pizzat asiakkaille siten, että toimituksille luvattu aikaraja ei ylity 13

16 Solmut kuvaavat pizzeriaa ja eri asiakkaita Haarat kuvaavat lyhimpiä reittejä eri solmujen välillä Jokaiseen haaraan liitetään ajoaika kyseisellä reitillä (= haaran pituus) Tehtävä: Muodosta n silmukkaa siten, että pizzeriasolmu on mukana jokaisessa silmukassa jokainen asiakassolmu on mukana jossain silmukassa jokaisen silmukan pituus viimeiseen asiakassolmuun asti ei ylitä aikarajaa 14

17 Koneen vaihto-ongelma Tarkastellaan n:ää aikaperiodia Jokaisen periodin alussa vanha kone voidaan vaihtaa uuteen tai säilyttää vanha kone Kun hankitaan uusi kone periodin i alussa ja myydään se periodin j alussa, siitä aiheutuu kustannus c ij Tavoite: Määrää, milloin kone vaihdetaan, jotta kokonaiskustannukset minimoituvat 15

18 Solmut kuvaavat periodeja 1,..., n + 1 Kaari (i, j) tarkoittaa, että kone hankitaan periodin i alussa ja myydään periodin j alussa Jokaiseen kaareen (i, j) liitetään vastaava kustannus c ij (= kaaren pituus) 16

19 Tehtävä: Etsi lyhin reitti solmusta 1 solmuun n

20 Toimintaverkko Projektissa on n osatehtävää Osatehtävät on suoritettava tiettyjen sääntöjen mukaisessa järjestyksessä Osatehtävän i suoritusaika on t i Tavoite: Määrää osatehtävien suoritusjärjestys siten, että kokonaissuoritusaika minimoituu 18

21 s i = osatehtävän i aloitusaika Solmut kuvaavat osatehtäviä Solmu 0 on projektin aloitusosatehtävä, solmu n + 1 lopetusosatehtävä Kaari (i, j) tarkoittaa, että osatehtävä i on saatava valmiiksi ennen osatehtävän j aloittamista Jokaiseen kaareen (i, j) liitetään rajoite s j s i + t i 19

22 Tehtävä: Ratkaise min s n+1 s 0 kun s j s i + t i (i, j) A 20

23 Tavallisesti kuitenkin toimintaverkko kuvataan seuraavasti: Solmut kuvaavat osatehtävien alku- ja lopputapahtumia Kaaret kuvaavat osatehtäviä Jokaiseen kaareen liitetään osatehtävän kesto (= kaaren pituus) Kaikkien tiettyyn solmuun päättyvien osatehtävien täytyy olla suoritettu ennen kuin mikään kyseisestä solmusta alkava osatehtävä voidaan aloittaa Tehtävä: Etsi pisin polku ensimmäisestä solmusta viimeiseen solmuun 21

24 Graafien ja verkkojen tietorakenteita Naapurimatriisit Insidenssimatriisit Haara- ja kaarilistat Naapurilistat 22

25 Naapurimatriisi, suuntaamaton graafi: HUOM: Symmetrinen

26 Naapurimatriisi, suunnattu graafi:

27 Insidenssimatriisi, suuntaamaton graafi: (1,2) (1,3) (2,4) (2,5) (3,4) (3,5) (4,5) HUOM: Täysin unimodulaarinen 25

28 Insidenssimatriisi, suunnattu graafi: (1,2) (1,3) (2,5) (3,4) (4,2) (4,5) (5,3) HUOM: Täysin unimodulaarinen 26

29 Haaralista, suuntaamaton verkko: Päätesolmu Päätesolmu Pituus (1,2) (1,3) (2,4) (2,5) (3,4) (3,5) (4,5)

30 Kaarilista, suunnattu verkko: Alkusolmu Loppusolmu Pituus (1,2) (1,3) (2,5) (3,4) (4,2) (4,5) (5,3)

31 Naapurilista, suuntaamaton graafi: Naapurisolmut

32 Naapurilista, suunnattu graafi: Naapurisolmut (lähtevät kaaret) Naapurisolmut (tulevat kaaret)

33 Graafin tai verkon virittävä puu Aligraafi: Graafi, jossa on mukana osa (tai kaikki) solmuista ja osa (tai kaikki) haaroista Virittävä aligraafi: Aligraafi, jossa on mukana kaikki solmut Yhtenäinen virittävä aligraafi: Virittävä aligraafi, joka on yhtenäinen Minimaalinen yhtenäinen virittävä aligraafi: on mukana mahdollisimman vähän haaroja Yhtenäinen virittävä aligraafi, jossa 31

34 Puu: Graafi, joka on yhtenäinen ja renkaaton Yhtenäisen graafin minimaalinen yhtenäinen virittävä aligraafi on puu = Graafin virittävä puu (Verkon virittävä puu vastaavasti) Graafi on yhtenäinen, jos sillä on olemassa virittävä puu 32

35 Esimerkki Tiedetään, ketkä kylän asukkaista keskustelevat keskenään Tavoite: Selvitä, saavuttaako juoru kaikki kylän asukkaat Solmut kuvaavat asukkaita Haara (i, j) tarkoittaa, että asukkaat i ja j keskustelevat keskenään Tehtävä: Tutki, onko graafilla virittävää puuta 33

36 Esimerkki Rakennetaan kaapeliyhteyksiä eri kaupunkien välille Jokaisen kaupungin on oltava mukana kaapeliverkossa Kun rakennetaan yhteys kaupunkien i ja j välille, siitä aiheutuu kustannus c ij Tavoite: Määrää rakennettavat kaapeliyhteydet siten, että kokonaiskustannukset minimoituvat 34

37 Solmut kuvaavat kaupunkeja Haara (i, j) tarkoittaa, että kaupunkien i ja j välille voitaisiin rakentaa kaapeliyhteys Jokaiseen haaraan (i, j) liitetään vastaava kustannus c ij (= haaran pituus) Tehtävä: Etsi verkon virittävä puu, jonka kokonaispituus on mahdollisimman pieni 35

38 Virittävän puun etsiminen Aluksi puu on tyhjä, jokainen solmu muodostaa oman komponenttinsa ja kaikki haarat (tai kaaret) ovat tutkimattomia. 1. Jos tutkimattomia haaroja ei ole jäljellä, niin lopeta. Muuten valitse jokin haara ja merkitse se tutkituksi. 2. Jos valitun haaran molemmat päätesolmut kuuluvat samaan komponenttiin, jatka kohdasta 1. Muuten lisää haara puuhun ja yhdistä päätesolmujen komponentit samaksi komponentiksi. 3. Jos jäljellä on vain yksi komponentti, niin lopeta. Muuten jatka kohdasta 1. 36

39 Jos algoritmin päättyessä jäljellä on vain yksi komponentti, virittävä puu on löytynyt Jos halutaan löytää verkon lyhin virittävä puu, niin haarat valitaan pituuden mukaan kasvavassa järjestyksessä Jos halutaan löytää verkon pisin virittävä puu, niin haarat valitaan pituuden mukaan laskevassa järjestyksessä 37

40 Lyhimmät polut Lyhimpien polkujen tehtäviä: Etsi lyhin polku kahden solmun välillä Etsi lyhimmät polut jostain solmusta verkon kaikkiin muihin solmuihin Etsi lyhimmät polut verkon kaikkien solmujen välillä Seuraavassa oletetaan, että verkko on suunnattu, yhdistetty ja kaarien pituudet ovat kokonaislukuja 38

41 Esimerkki Pakkausongelma: max a 1 x a n x n kun w 1 x w n x n W x 1,..., x n N Vastaava lyhimmän polun tehtävä: Solmut 0,1,..., W Jokaista tavaraa j kohti kaaret (i, i + w j ), i = 0,1,..., W w j, joiden pituus on a j Lisäksi kaaret (i, i + 1), i = 0,1,..., W 1, joiden pituus on 0 (vastaavat puutemuuttujaa) Tehtävä: Etsi lyhin polku solmusta 0 solmuun W 39

42 Lyhimpien etäisyyksien puu Lyhimpien etäisyyksien puu: Sellainen verkon virittävä puu, jossa polut juurisolmusta s puun muihin solmuihin ovat samat kuin verkon lyhimmän etäisyyden polut solmusta s verkon muihin solmuihin Olkoon s = i 1 i 2 i p = t lyhin polku solmusta s solmuun t = s = i 1 i 2 i j on lyhin polku solmusta s solmuun i j kaikilla j = 2,..., p 1 = On aina olemassa lyhimpien etäisyyksien puu 40

43 Lyhimmät polut yhdestä lähtösolmusta alkaen Solmuihin liitetään tunnuksia (etäisyys lähtösolmusta, solmun edeltäjäsolmu, jne.) Tunnukset voivat olla väliaikaisia tai lopullisia Väliaikaisia tunnuksia muutetaan iteratiivisesti Tunnuksen asettavat menetelmät: Joka iteraatiolla yksi väliaikainen tunnus kiinnitetään lopulliseksi Tunnusta korjaavat menetelmät: Kaikki väliaikaiset tunnukset kiinnitetään kerralla lopullisiksi sitten, kun muutoksia ei enää voi tehdä 41

44 Dijkstran menetelmä Tunnuksen asettava menetelmä Oletus: Kaarien pituudet d ij ovat ei-negatiivisia Tunnukset: d(i) = jonkin polun pituus lähtösolmusta s solmuun i e(i) = solmun i edeltäjäsolmu kyseisellä polulla Solmut jaetaan kahteen ryhmään: P = {solmut, joiden tunnukset ovat lopullisia} T = {solmut, joiden tunnukset ovat väliaikaisia} 42

45 1. Aluksi P =, T = N, d(s) = 0 ja d(i) = kaikilla i T \ {s}. 2. Jos P = N, niin lopeta. Muuten valitse jokin solmu i T siten, että d(i) = min{d(j) j T }. Kaikilla j T siten, että on olemassa (i, j) A tee seuraavaa: Jos d(i) + d ij < d(j), niin aseta d(j) = d(i) + d ij ja e(j) = i. 3. Kiinnitä solmun i tunnukset lopullisiksi, ts. aseta P = P {i} ja T = T \ {i}. Jatka kohdasta 2. 43

46 Algoritmin päätyttyä: Lyhin etäisyys lähtösolmusta s solmuun i on d(i) Vastaava polku on i e(i) e(e(i)) s Jos halutaan löytää lyhin polku lähtösolmusta s johonkin tiettyyn solmuun t, algoritmi voidaan lopettaa, kun solmun t tunnukset on kiinnitetty lopullisiksi 44

47 Solmuja n kpl Yhdellä iteraatiolla valitaan yksi solmu, jonka tunnukset ovat väliaikaisia = n operaatiota Yhdellä iteraatiolla kiinnitetään yhden solmun tunnukset lopullisiksi = n iteraatiota = Algoritmin suoritusaika (laskennallinen vaativuus) on O(n 2 ) 45

48 Dialin toteutustapa: Solmun valintaan kuluvaa aikaa pienennetään pitämällä joukon T solmut lajiteltuina väliaikaisten tunnusten d(i) mukaan kasvavassa järjestyksessä Käytössä on joukko lokeroita, jotka on numeroitu 0,1,2,... Lokeroon k tallennetaan ne joukon T solmut, joilla d(i) = k (jos d(i) =, solmua ei tarvitse tallentaa) = Valittava solmu löytyy ensimmäisestä epätyhjästä lokerosta 46

49 Olkoon C pisimmän kaaren pituus = Jokaisen solmun lopullinen d(i) on pienempi kuin nc = nc + 1 lokeroa riittää varmasti Jokaisella iteraatiokierroksella on d(i) d(j) d(i) + C kaikilla j T siten, että d(j) = Vain lokerot d(i), d(i) + 1,..., d(i) + C ovat epätyhjiä = C + 1 lokeroa riittää 47

50 Optimaalisuusehdot Olkoot d ij kaarien (i, j) A pituudet (voivat olla myös negatiivisia) Oletetaan, että verkossa ei ole silmukkaa, jonka pituus on negatiivinen Etäisyystunnukset d(i) ovat lyhimpien polkujen etäisyyksiä lähtösolmusta s solmuihin i, jos ja vain jos d(j) d(i) + d ij (i, j) A 48

51 Silmukka, jonka pituus on negatiivinen: Olkoon C = {silmukan kaaret} ja (i,j) C d ij < 0 Oletetaan, että optimaalisuusehdot ovat voimassa = d(j) d(i) + d ij (i, j) C = d(i) d(j) + d ij 0 (i, j) C = = (i,j) C (i,j) C (d(i) d(j) + d ij ) 0 d ij 0 = Ristiriita = Optimaalisuusehdot eivät voi olla voimassa 49

52 Optimaalisuusehtoihin perustuva menetelmä Tunnusta korjaava menetelmä Oletus: Verkossa ei ole silmukkaa, jonka pituus on negatiivinen Tunnukset: d(i) = jonkin polun pituus lähtösolmusta s solmuun i e(i) = solmun i edeltäjäsolmu kyseisellä polulla Tunnukset kiinnitetään lopullisiksi vasta, kun algoritmi on päättynyt 50

53 1. Aluksi d(s) = 0 ja d(i) = kaikilla i N \ {s}. 2. Jos d(j) d(i) + d ij kaikilla (i, j) A, niin lopeta. Muuten valitse jokin kaari (i, j) siten, että d(j) > d(i) + d ij ja tee seuraavaa: Aseta d(j) = d(i) + d ij ja e(j) = i. 3. Jatka kohdasta 2. Algoritmin päätyttyä: Lyhin etäisyys lähtösolmusta s solmuun i on d(i) Vastaava polku on i e(i) e(e(i)) s 51

54 Järjestys, jossa kaaret käydään läpi kullakin iteraatiolla, vaikuttaa algoritmin suoritusaikaan Huono järjestys (esim. satunnainen) = Suoritusaika voi olla eksponentiaalinen Järkevä järjestys (esim. aina samassa järjestyksessä) = Suoritusaika saadaan polynomiseksi 52

55 Algoritmin nopeuttaminen: Käydään kaaret läpi aina samassa järjestyksessä, siten että samasta solmusta lähtevät kaaret ovat aina peräkkäin Olkoon solmu i siten, että jollain iteraatiolla ehdot d(j) d(i) + d ij j siten että (i, j) A ovat voimassa Jos solmun i tunnukset eivät muutu kyseisellä iteraatiolla = Samat ehdot ovat voimassa myös seuraavalla iteraatiolla = Kaaria (i, j) A ei tarvitse tutkia seuraavalla iteraatiolla 53

56 Lyhimmät polut kaikkien solmuparien välillä Käytetään edellisiä menetelmiä n kertaa: Määrätään lyhimmät polut jostain lähtösolmusta s kaikkiin muihin solmuihin Vaihdetaan lähtösolmuksi s jokin muu solmu ja toistetaan Jos kaikki kaarien pituudet ei-negatiivisia, voidaan käyttää Dijkstran menetelmää; muuten täytyy käyttää (esimerkiksi) optimaalisuusehtoihin perustuvaa menetelmää 54

57 Kaarien pituuksien muuntaminen Olkoon osa kaarien pituuksista negatiivisia, mutta verkossa ei ole silmukkaa, jonka pituus on negatiivinen Määrätään lyhimmät polut jostain lähtösolmusta s kaikkiin muihin solmuihin optimaalisuusehtoihin perustuvalla menetelmällä = d(j) d(i) + d ij kaikilla (i, j) A Asetetaan jokaiselle kaarelle uusi pituus d ij = d ij + d(i) d(j) = d ij 0 kaikilla (i, j) A 55

58 Olkoon k = i 0 i 1 i p = l jokin polku ja P = {polun kaaret} = (i,j) P d ij = (i,j) P (d ij + d(i) d(j)) = (i,j) P d ij + d(k) d(l) = Polun pituus muuttuu vakiolla d(k) d(l) = Kaikki solmujen k ja l väliset polut muuttuvat samalla vakiolla = Lyhimmät polut säilyvät muunnoksessa = Lyhimmät polut kaikista muista solmuista N \ {s} alkaen voidaan määrätä Dijkstran menetelmällä 56

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

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

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

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

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

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

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

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

Malliratkaisut Demot

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

Kombinatorinen optimointi

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

Lisätiedot

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

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

Harjoitus 3 (31.3.2015)

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

Harjoitus 3 (3.4.2014)

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

Mat Lineaarinen ohjelmointi

Mat Lineaarinen ohjelmointi Mat-.40 Lineaarinen ohjelmointi 5..007 Luento 9 Verkkotehtävän erikoistapauksia (kirja 7., 7.5, 7.9, 7.0) Lineaarinen ohjelmointi - Syksy 007 / Luentorunko (/) Verkkotehtävän ominaisuuksia Kuljetustehtävä

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

Diskreetit rakenteet

Diskreetit rakenteet Diskreetit rakenteet 811120P 5 op 7. Oulun yliopisto Tietojenkäsittelytieteiden laitos 2015 / 2016 Periodi 1 Mikä on verkko? verkko (eli graafi) koostuu solmuista ja väleistä, jotka yhdistävät solmuja

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

Kokonaislukuoptimointi

Kokonaislukuoptimointi Kokonaislukuoptimointi Optimointitehtävät, joissa muuttujat tai osa niistä voivat saada vain kokonaislukuarvoja Puhdas kokonaislukuoptimointitehtävä: Kaikki muuttujat kokonaislukuja Sekoitettu kokonaislukuoptimointitehtävä:

Lisätiedot

Esimerkkejä kokonaislukuoptimointiongelmista

Esimerkkejä kokonaislukuoptimointiongelmista Esimerkkejä kokonaislukuoptimointiongelmista (eli mitä kaikkea kokonaisluvuilla voi mallintaa) 27. marraskuuta 2013 Pääoman budjetointiongelma Kulut Projekti Vuosi 1 Vuosi 2 Vuosi 3 Tuotto 1 5 1 8 20 2

Lisätiedot

JYVÄSKYLÄN YLIOPISTO. 3. Luennon sisältö

JYVÄSKYLÄN YLIOPISTO. 3. Luennon sisältö JYVÄSKYLÄN YLIOPISTO 3. Luennon sisältö Lineaarisen optimointitehtävän sallittu alue Optimointitehtävien muunnoksia Lineaarisen yhtälöryhmän perusmuoto ja perusratkaisut Lineaarisen optimointitehtävän

Lisätiedot

Malliratkaisut Demot

Malliratkaisut Demot Malliratkaisut Demot 3 7.3.07 Tehtävä Olkoon tilamuuttujat Tällöin saadaan rekursioyhtälö f n (x n ) = max yn {0,} ynwn xn f 0 ( ) = 0. x n = vaiheessa n jäljellä oleva paino, n =,...,N, esine n pakataan

Lisätiedot

Algoritmit 1. Luento 14 Ke 25.2.2015. Timo Männikkö

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

Lineaarisen kokonaislukuoptimointitehtävän ratkaiseminen

Lineaarisen kokonaislukuoptimointitehtävän ratkaiseminen Lineaarisen kokonaislukuoptimointitehtävän ratkaiseminen Jos sallittuja kokonaislukuratkaisuja ei ole kovin paljon, ne voidaan käydä kaikki läpi yksitellen Käytännössä tämä ei kuitenkaan ole yleensä mahdollista

Lisätiedot

4. Luennon sisältö. Lineaarisen optimointitehtävän ratkaiseminen Simplex-menetelmä

4. Luennon sisältö. Lineaarisen optimointitehtävän ratkaiseminen Simplex-menetelmä JYVÄSKYLÄN YLIOPISTO 4. Luennon sisältö Lineaarisen optimointitehtävän ratkaiseminen Simplex-menetelmä kevät 2012 TIEA382 Lineaarinen ja diskreetti optimointi Lineaarinen optimointitehtävä Minimointitehtävä

Lisätiedot

Totaalisesti unimodulaariset matriisit voidaan osoittaa olevan rakennettavissa oleellisesti verkkomalleihin liittyvistä matriiseista

Totaalisesti unimodulaariset matriisit voidaan osoittaa olevan rakennettavissa oleellisesti verkkomalleihin liittyvistä matriiseista 8. Verkkomallit Totaalisesti unimodulaariset matriisit voidaan osoittaa olevan rakennettavissa oleellisesti verkkomalleihin liittyvistä matriiseista (P. D. Seymour, Journal of Combinatorial Theory (B),

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

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

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

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

Optimoinnin sovellukset

Optimoinnin sovellukset Optimoinnin sovellukset Timo Ranta Tutkijatohtori TTY Porin laitos OPTIMI 4.12.2014 Mitä optimointi on? Parhaan ratkaisun systemaattinen etsintä kaikkien mahdollisten ratkaisujen joukosta Tieteellinen

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

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

Kuljetustehtävä. Materiaalia kuljetetaan m:stä lähtöpaikasta n:ään tarvepaikkaan. Kuljetuskustannukset lähtöpaikasta i tarvepaikkaan j ovat c ij

Kuljetustehtävä. Materiaalia kuljetetaan m:stä lähtöpaikasta n:ään tarvepaikkaan. Kuljetuskustannukset lähtöpaikasta i tarvepaikkaan j ovat c ij Kuljetustehtävä Materiaalia kuljetetaan m:stä lähtöpaikasta n:ään tarvepaikkaan Kuljetuskustannukset lähtöpaikasta i tarvepaikkaan j ovat c ij Lähtöpaikan i kapasiteetti on a i (oletetaan, että a i > 0

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

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

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

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

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

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

j(j 1) = n(n2 1) 3 + (k + 1)k = (k + 1)(k2 k + 3k) 3 = (k + 1)(k2 + 2k + 1 1)

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

Malliratkaisut Demot

Malliratkaisut Demot Malliratkaisut Demot 1 12.3.2018 Tehtävä 1 Piirretään tilanteesta verkko, jossa kaupungeille on annetttu seuraavat numerot: 1 297 4 2 4 163 3 454 6 179 2 136 2 169 2 390 4 3 436 7 5 Kuva 1: Tehtävän 1

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

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

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

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

811312A Tietorakenteet ja algoritmit V Verkkojen algoritmeja Osa1 : Leveys- ja syvyyshaku 811312A Tietorakenteet ja algoritmit 2016-2017 V Verkkojen algoritmeja Osa1 : Leveys- ja syvyyshaku Sisältö 1. Johdanto 2. Leveyshaku 3. Syvyyshaku 4. Kruskalin algoritmi 5. Dijkstran algoritmi 811312A

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

Mat Lineaarinen ohjelmointi

Mat Lineaarinen ohjelmointi Mat-.4 Lineaarinen ohjelmointi 8..7 Luento 8 Verkkotehtävät, simlex ja duaalisuus (kirja 7.-7., 7.6) Lineaarinen ohjelmointi - Syksy 7 / Motivointi Käsitteitä Verkkotehtävä Verkkosimlex Duaalitehtävä Yhteenveto

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

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

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

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

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

Harjoitus 1 (20.3.2014)

Harjoitus 1 (20.3.2014) Harjoitus 1 (20.3.2014) Tehtävä 1 Piirretään tilanteesta verkko, jossa kaupungeille on annetttu seuraavat numerot: 1 = Turku 2 = Tampere 3 = Hämeenlinna 4 = Imatra 5 = Jyväskylä. 5 2 149(5) 190(4) 113(1)

Lisätiedot

Johdatus verkkoteoriaan luento Netspace

Johdatus verkkoteoriaan luento Netspace Johdatus verkkoteoriaan luento 10.4.18 Netspace Verkko eli graafi, tasoverkko, solmut, välit, alueet, suunnatut verkot, isomorfiset verkot, verkon duaali, verkon upottaminen, verkon genus, verkon komplementti,

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

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

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

Harjoitus 1 (17.3.2015)

Harjoitus 1 (17.3.2015) Harjoitus 1 (17.3.2015) Tehtävä 1 Piirretään tilanteesta verkko, jossa kaupungeille on annetttu seuraavat numerot: 1 = Turku 2 = Tampere 3 = Helsinki 4 = Kuopio 5 = Joensuu. a) Tehtävänä on ratkaista Bellman

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

Algoritmit 2. Luento 13 Ti Timo Männikkö

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

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

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

j n j a b a c a d b c c d m j b a c a d a c b d c c j

j n j a b a c a d b c c d m j b a c a d a c b d c c j TEKNILLINEN KORKEAKOULU Tietoliikenne- ja tietoverkkotekniikan laitos S-38.115 Liikenneteorian perusteet, Kevät 2008 Demonstraatiot Luento 12 29.2.2008 D12/1 Tarkastellaan verkkoa, jossa on solmua ja linkkiä.

Lisätiedot

Liite: Verkot. TKK (c) Ilkka Mellin (2004) 1

Liite: Verkot. TKK (c) Ilkka Mellin (2004) 1 Liite: Verkot TKK (c) Ilkka Mellin (2004) 1 : Mitä opimme? Verkkoteoria on hyödyllinen sovelletun matematiikan osa-alue, jolla on sovelluksia esimerkiksi logiikassa, operaatiotutkimuksessa, peli-ja päätösteoriassa

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

Algoritmit 2. Luento 14 To Timo Männikkö

Algoritmit 2. Luento 14 To Timo Männikkö Algoritmit 2 Luento 14 To 2.5.2019 Timo Männikkö Luento 14 Laskennallinen vaativuus Päätösongelmat Epädeterministinen algoritmi Vaativuusluokat NP-täydelliset ongelmat Kertaus ja tenttivinkit Algoritmit

Lisätiedot

Mat Lineaarinen ohjelmointi

Mat Lineaarinen ohjelmointi Mat-.34 Lineaarinen ohjelmointi 5..7 Luento Kertausta Lineaarinen ohjelmointi - Syksy 7 / LP ja Simplex Kurssin rakenne Duaalisuus ja herkkyysanalyysi Verkkotehtävät Kokonaislukutehtävät Lineaarinen ohjelmointi

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

T : Max-flow / min-cut -ongelmat

T : Max-flow / min-cut -ongelmat T-61.152: -ongelmat 4.3.2008 Sisältö 1 Määritelmät Esimerkki 2 Max-flow Graafin leikkaus Min-cut Max-flow:n ja min-cut:n yhteys 3 Perusajatus Pseudokoodi Tarkastelu 4 T-61.152: -ongelmat Virtausverkko

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

Lineaarinen optimointitehtävä

Lineaarinen optimointitehtävä Lineaarinen optimointitehtävä Minimointitehtävä yhtälörajoittein: min kun n j=1 n j=1 c j x j a ij x j = b i x j 0 j = 1,..., n i = 1,..., m Merkitään: z = alkuperäisen objektifunktion arvo käsiteltävänä

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

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 2. Luento 6 Ke Timo Männikkö

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

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

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

Lineaarinen optimointitehtävä

Lineaarinen optimointitehtävä Lineaarinen optimointitehtävä min c 1 x 1 + c 2 x 2 + + c n x n kun a 11 x 1 + a 12 x 2 + + a 1n x n b 1 a 21 x 1 + a 22 x 2 + + a 2n x n b 2. a m1 x 1 + a m2 x 2 + + a mn x n b m x 1, x 2,..., x n 0 1

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

Uolevin reitti. Kuvaus. Syöte (stdin) Tuloste (stdout) Esimerkki 1. Esimerkki 2

Uolevin reitti. Kuvaus. Syöte (stdin) Tuloste (stdout) Esimerkki 1. Esimerkki 2 Uolevin reitti Kuvaus Uolevi on ruudukon vasemmassa ylänurkassa ja haluaisi päästä oikeaan alanurkkaan. Uolevi voi liikkua joka askeleella ruudun verran vasemmalle, oikealle, ylöspäin tai alaspäin. Lisäksi

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

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

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 2. Luento 11 Ti Timo Männikkö

Algoritmit 2. Luento 11 Ti Timo Männikkö Algoritmit 2 Luento 11 Ti 25.4.2017 Timo Männikkö Luento 11 Peruutusmenetelmä Osajoukon summa Pelipuut Pelipuun läpikäynti Rajoitehaku Kapsäkkiongelma Algoritmit 2 Kevät 2017 Luento 11 Ti 25.4.2017 2/29

Lisätiedot

0 v i v j / E, M ij = 1 v i v j E.

0 v i v j / E, M ij = 1 v i v j E. Vieruspistematriisi Graafi esitetään tietokoneessa useimmiten matriisin avulla. Graafin G = (V, E), V = {v 1, v 2,..., v n } vieruspistematriisi (adjacency matrix)on n n matriisi M = (M ij ), missä n on

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

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

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

Diskreetin matematiikan perusteet Laskuharjoitus 2 / vko 9

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

Lisätiedot

Ellipsoidimenetelmä. Samuli Leppänen Kokonaislukuoptimointi. S ysteemianalyysin Laboratorio

Ellipsoidimenetelmä. Samuli Leppänen Kokonaislukuoptimointi. S ysteemianalyysin Laboratorio Ellipsoidimenetelmä Kokonaislukuoptimointi Sovelletun matematiikan lisensiaattiseminaari Kevät 2008 / 1 Sisällys Ellipsoidimenetelmän geometrinen perusta ja menetelmän idea Formaali ellipsoidimenetelmä

Lisätiedot