Algoritmit 1. Luento 9 Ti Timo Männikkö

Koko: px
Aloita esitys sivulta:

Download "Algoritmit 1. Luento 9 Ti Timo Männikkö"

Transkriptio

1 Algoritmit 1 Luento 9 Ti Timo Männikkö

2 Luento 9 Graafit ja verkot Kaaritaulukko, bittimatriisi, pituusmatriisi Verkon lyhimmät polut Floydin menetelmä Lähtevien ja tulevien kaarien listat Forward star -rakenne Saavutettavat solmut Verkon läpikäynti Algoritmit 1 Kevät 2017 Luento 9 Ti /34

3 Graafit ja verkot Solmujen joukko N Kaarien joukko A Algoritmit 1 Kevät 2017 Luento 9 Ti /34

4 Graafit ja verkot Suunnattu graafi: Kaarilla suunta Alkusolmu ja loppusolmu Suuntaamaton graafi: Kaarilla ei ole suuntaa Molemmat suunnat tasa-arvoisia Verkko: Solmuihin tai kaariin liittyy muita kuvauksia Kaaren pituus, kaaren kapasiteetti, jne. Algoritmit 1 Kevät 2017 Luento 9 Ti /34

5 Kaaritaulukko Taulukko verkon kaarista (jossain järjestyksessä) Jokaisesta kaaresta tallennettu alkusolmu, loppusolmu ja muut tiedot, kuten esimerkiksi pituus Hyvin yksinkertainen tallennusrakenne Vaatii muistitilaa vakion verran jokaista kaarta kohden Algoritmit 1 Kevät 2017 Luento 9 Ti /34

6 Bittimatriisi Puhdas graafi: Vain solmuja ja kaaria Oletetaan, että ei rinnakkaisia kaaria Bittimatriisi: Solmuja n kpl, numeroidaan 0, 1,..., n-1 Matriisin alkio B ij = 1, jos on kaari solmusta i solmuun j, muuten B ij = 0 Suuntaamattomilla graafeilla bittimatriisi on symmetrinen Algoritmit 1 Kevät 2017 Luento 9 Ti /34

7 Esimerkki: Bittimatriisi Algoritmit 1 Kevät 2017 Luento 9 Ti /34

8 Kaarien pituusmatriisi Verkko: Kaarilla on pituus Oletetaan, että ei rinnakkaisia kaaria Pituusmatriisi: Solmuja n kpl, numeroidaan 0, 1,..., n-1 Matriisin alkio d ij = solmusta i solmuun j johtavan kaaren pituus Jos kaarta ei ole, asetetaan d ij = (käytännössä jokin suuri luku M) Algoritmit 1 Kevät 2017 Luento 9 Ti /34

9 Esimerkki: Pituusmatriisi M 16 M 1 M M M 3 M M M M M 20 M 0 Algoritmit 1 Kevät 2017 Luento 9 Ti /34

10 Matriisien tilantarve Muistitilaa tarvitaan n 2 Suurilla ja harvoilla verkoilla vie liikaa tilaa (suurin osa matriisin alkioista lukuja 0 tai M) Solmun naapureita määrättäessä joudutaan käymään läpi matriisin koko rivi (vaikka naapureita olisi vain muutama) Algoritmit 1 Kevät 2017 Luento 9 Ti /34

11 Verkon lyhimmät polut Suunnattu verkko, jossa jokaisella kaarella k on pituus l(k) Pituus voi olla myös negatiivinen Mutta verkossa ei saa olla silmukkaa, jonka pituus on negatiivinen Tehtävänä etsiä lyhimmät polut verkon kaikkien solmuparien välillä Algoritmit 1 Kevät 2017 Luento 9 Ti /34

12 Verkon lyhimmät polut Floydin menetelmä: Tallennusrakenteeksi sopii pituusmatriisi d = pituusmatriisi D = lyhimpien etäisyyksien matriisi Periaate: Tutkitaan solmunparien välistä etäisyyttä, kun polku kulkee ns. välisolmujen kautta Aluksi välisolmuja ei ole, sitten yksi välisolmu, sitten kaksi välisolmua jne. Yleisesti, kun välisolmuja ovat 0, 1,..., k, lisätään solmu k+1 välisolmuksi Algoritmit 1 Kevät 2017 Luento 9 Ti /34

13 Floydin menetelmä 1. Alustus: Asetetaan D ij = d ij kaikilla i ja j 2. Toistetaan kaikilla k = 0, 1,..., n-1: Toistetaan kaikilla pareilla i,j = 0, 1,..., n-1: Jos D ik + D kj < D ij, asetetaan D ij = D ik + D kj Algoritmit 1 Kevät 2017 Luento 9 Ti /34

14 Floydin menetelmä Algoritmin päätyttyä: Matriisissa D on lyhimpien polkujen pituudet Ensimmäinen solmu lyhimmällä polulla i j on se solmu k, jolla D ij = d ik + D kj Aikavativuus: Kolme sisäkkäistä n:stä riippuvaa silmukkaa Aikavaativuus O(n 3 ) Algoritmit 1 Kevät 2017 Luento 9 Ti /34

15 Lähtevien ja tulevien kaarien listat Tietueet: Jokaista solmua kohti yksi solmutietue Jokaista kaarta kohti yksi kaaritietue Listat: Jokaisella solmulla lista siitä lähtevistä kaarista Jokaisella solmulla lista siihen tulevista kaarista Kaarien järjestys listoissa yleensä vapaa (Voidaan toteuttaa esimerkiksi vain lähtevien kaarien listat ja jättää tulevien kaarien listat pois) Algoritmit 1 Kevät 2017 Luento 9 Ti /34

16 Lähtevien ja tulevien kaarien listat Sallii rinnakkaiset kaaret Kaaret, joiden alku- ja loppusolmu sama, voidaan periaatteessa myös esittää (mutta algoritmeissa hankalia käsitellä) Voidaan käyttää myös suuntaamattomille verkoille: Annetaan kaarille mielivaltainen suunta Solmusta lähtevät ja siihen tulevat kaaret käsitellään tasa-arvoisina Algoritmit 1 Kevät 2017 Luento 9 Ti /34

17 Solmutietue Solmutietueen kenttiä: Osoitin lähtevien kaarien listan ensimmäiseen kaareen: ffwa Osoitin tulevien kaarien listan ensimmäiseen kaareen: fbwa Osoitin seuraavaan solmuun, jos solmut linkitetty listaksi Muut solmukohtaiset tiedot Algoritmit 1 Kevät 2017 Luento 9 Ti /34

18 Kaaritietue Kaaritietueen kenttiä: Osoitin kaaren alkusolmuun: tail Osoitin kaaren loppusolmuun: head Osoitin seuraavaan kaareen, jolla sama alkusolmu: nxfw Osoitin seuraavaan kaareen, jolla sama loppusolmu: nxbw Muut kaarikohtaiset tiedot (esimerkiksi pituus) Algoritmit 1 Kevät 2017 Luento 9 Ti /34

19 Esimerkki: Kaarien listat solmun lähtevät tulevat numero kaaret kaaret 0 0, 1 1 4, 2 3, 0 2 3, 5 1, 2 3 5, 4 (Huom: Kaaret eivät ole listoissa numerojärjestyksessä) Algoritmit 1 Kevät 2017 Luento 9 Ti /34

20 Esimerkki taulukoilla Solmut Kaaret ffwa fbwa tail head nxfw nxbw pit NIX NIX NIX NIX NIX 26 3 NIX NIX NIX 4 17 Algoritmit 1 Kevät 2017 Luento 9 Ti /34 4 5

21 Toteutus dynaamisesti solmu kaari lähtevien kaarien lista tulevien kaarien lista loppusolmu seur. tuleva kaari seur. lähtevä kaari alkusolmu Listojen tilantarve: Solmuja n kpl ja kaaria m kpl Osoittimia 2n + 4m kpl Lisäksi muut tallennettavat tiedot/osoittimet Algoritmit 1 Kevät 2017 Luento 9 Ti /34

22 Forward star -rakenne Kaaritaulukko: Taulukkopohjainen tivistetty versio lähtevien kaarien listasta Kaaret järjestetty alkusolmun tunnuksen mukaan kasvavaan järjestykseen Samasta solmusta lähtevät kaaret taulukossa peräkkäin Kaarista annettu vain loppusolmun tunnus ja tarvittavat kaarikohtaiset tiedot (esimerkiksi pituus) Algoritmit 1 Kevät 2017 Luento 9 Ti /34

23 Forward star -rakenne Solmutaulukko: s[i] = solmusta i lähtevän ensimmäisen kaaren paikka kaaritaulukossa Muut samasta solmusta lähtevät kaaret seuraavissa paikoissa s[i+1] - s[i] = solmusta i lähtevien kaarien lukumäärä Algoritmit 1 Kevät 2017 Luento 9 Ti /34

24 Forward star -rakenne Solmutaulukko (jatkuu): Taulukossa n+1 paikkaa (yksi ylimääräinen) Viimeisessä paikassa viimeistä kaarta seuraavan paikan indeksi s[i+1] - s[i] = solmusta i lähtevien kaarien lukumäärä Kaava toimii myös solmun i = n-1 kohdalla Jos solmusta i ei lähde yhtään kaarta, on s[i+1] = s[i] Algoritmit 1 Kevät 2017 Luento 9 Ti /34

25 Esimerkki: Forward star s head pit NIX NIX Algoritmit 1 Kevät 2017 Luento 9 Ti /34

26 Forward star -rakenne Tilantarve: n indeksiä solmutaulukossa m + 1 (tai m) kaarta kaaritaulukossa Sopii tallennusrakenteeksi: Fordin ja Fulkersonin menetelmä (lyhimpien polkujen algoritmi) Saavutettavissa olevien solmujen selvittäminen Vastaavasti voitaisiin esittää solmuihin tulevat kaaret: backward star -rakenne Algoritmit 1 Kevät 2017 Luento 9 Ti /34

27 Saavutettavat solmut Jos solmusta a johtaa solmuun b ainakin yksi polku, on solmu b saavutettavissa solmusta a Tehtävänä on selvittää, mitkä solmut ovat saavutettavissa annetusta lähtösolmusta a = lähtösolmu T = tutkittavien solmujen joukko R = saavutettavien solmujen joukko Algoritmit 1 Kevät 2017 Luento 9 Ti /34

28 Saavutettavat solmut 1. Alustus: Asetetaan T = {a} ja R = {a} 2. Jos joukko T on tyhjä, lopetetaan, muuten poistetaan joukosta T jokin solmu x 3. Käydään läpi kaikki solmusta x lähtevät kaaret: Jos kaaren loppusolmu j kuuluu joukkoon R, ei tehdä mitään Muuten lisätään loppusolmu j joukkoihin T ja R Jatketaan kohdasta 2 Algoritmit 1 Kevät 2017 Luento 9 Ti /34

29 Verkon yhtenäiset komponentit Edellinen algoritmi: Kun kohdassa 2 joukko T tulee tyhjäksi, on löydetty yksi verkon yhtenäinen komponentti Jos kaikkia verkon solmuja ei ole vielä tutkittu, valitaan jokin tutkimaton solmu uudeksi lähtösolmuksi Saadaan toinen yhtenäinen komponentti Näin jatkamalla saadaan selville kaikki yhtenäiset komponentit Algoritmit 1 Kevät 2017 Luento 9 Ti /34

30 Verkon läpikäynti Verkon läpikäynti: Kaikkien solmujen tai kaarien tutkiminen tai käsittely jossain järjestyksessä Tarvitaan mm. edellisessä algoritmissa Joukon T toteutustapa vaikuttaa solmujen läpikäyntijärjestykseen (Mutta lopputuloksen kannalta samantekevää, missä järjestyksessä solmut tutkitaan) Algoritmit 1 Kevät 2017 Luento 9 Ti /34

31 Verkon läpikäynti Leveyshaku (breadth-first search): Joukko T toteutettu jonona Seuraavana käsitellään se T:n solmu, joka on ollut siellä kauimmin Käsitellään solmut, jotka ovat yhden kaaren päässä lähtösolmusta Käsitellään solmut, jotka ovat kahden kaaren päässä lähtösolmusta Jne. Algoritmit 1 Kevät 2017 Luento 9 Ti /34

32 Verkon läpikäynti Syvyyshaku (depth-first search): Joukko T toteutettu pinona Seuraavana käsitellään se T:n solmu, joka on lisätty sinne viimeksi Läpikäynti jatkuu viimeksi käsitellystä solmusta eteenpäin Kun ei enää päästä eteenpäin, palataan jatkamaan jostain aikaisemmin käsitellystä solmusta Algoritmit 1 Kevät 2017 Luento 9 Ti /34

33 Esimerkki: Leveyshaku Algoritmit 1 Kevät 2017 Luento 9 Ti /34

34 Esimerkki: Syvyyshaku Algoritmit 1 Kevät 2017 Luento 9 Ti /34

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

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

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

Algoritmit 1. Luento 10 Ke 11.2.2015. Timo Männikkö

Algoritmit 1. Luento 10 Ke 11.2.2015. Timo Männikkö Algoritmit 1 Luento 10 Ke 11.2.2015 Timo Männikkö Luento 10 Algoritminen ongelman ratkaisu Suunnittelumenetelmät Raaka voima Järjestäminen eli lajittelu Kuplalajittelu Väliinsijoituslajittelu Valintalajittelu

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

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

Tieto- ja tallennusrakenteet

Tieto- ja tallennusrakenteet Tieto- ja tallennusrakenteet Sisältö Tyyppi, abstrakti tietotyyppi, abstraktin tietotyypin toteutus Tallennusrakenteet Taulukko Linkitetty rakenne Abstraktit tietotyypit Lista (Puu) (Viimeisellä viikolla)

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

Algoritmit 1. Luento 5 Ti Timo Männikkö Algoritmit 1 Luento 5 Ti 24.1.2017 Timo Männikkö Luento 5 Järjestetty lista Järjestetyn listan operaatiot Listan toteutus taulukolla Binäärihaku Binäärihaun vaativuus Algoritmit 1 Kevät 2017 Luento 5 Ti

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

Algoritmit 2. Luento 2 Ke Timo Männikkö

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

Lisätiedot

Algoritmit 2. Luento 3 Ti Timo Männikkö

Algoritmit 2. Luento 3 Ti Timo Männikkö Algoritmit 2 Luento 3 Ti 21.3.2017 Timo Männikkö Luento 3 Järjestäminen eli lajittelu Kekorakenne Kekolajittelu Hajautus Yhteentörmäysten käsittely Ketjutus Algoritmit 2 Kevät 2017 Luento 3 Ti 21.3.2017

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

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

Algoritmit 1. Luento 6 Ke Timo Männikkö Algoritmit 1 Luento 6 Ke 25.1.2017 Timo Männikkö Luento 6 Järjestetty lista Listan toteutus dynaamisesti Linkitetyn listan operaatiot Vaihtoehtoisia listarakenteita Puurakenteet Binääripuu Järjestetty

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

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

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

Algoritmit 2. Luento 4 Ke Timo Männikkö

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

Lisätiedot

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

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

Algoritmit 1. Demot Timo Männikkö

Algoritmit 1. Demot Timo Männikkö Algoritmit 1 Demot 2 1.-2.2.2017 Timo Männikkö Tehtävä 1 (a) Ei-rekursiivinen algoritmi: laskesumma(t, n) sum = t[0]; for (i = 1; i < n; i++) sum = sum + t[i]; return sum; Silmukka suoritetaan n 1 kertaa

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

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

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

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

Tietorakenteet, esimerkkivastauksia viikon 12 laskareihin

Tietorakenteet, esimerkkivastauksia viikon 12 laskareihin Tietorakenteet, esimerkkivastauksia viikon laskareiin (a) Oletetaan seuraavan kuvan mukainen verkko ja etsitään lyyimpiä polkuja solmusta Ensimmäiseksi käsitellään solmu B, jonka etäisyys on kolme Seuraavaksi

Lisätiedot

Algoritmit 2. Luento 9 Ti Timo Männikkö

Algoritmit 2. Luento 9 Ti Timo Männikkö Algoritmit 2 Luento 9 Ti 19.4.2016 Timo Männikkö Luento 9 Merkkitiedon tiivistäminen LZW-menetelmä Taulukointi Editointietäisyys Peruutus Verkon 3-väritys Algoritmit 2 Kevät 2016 Luento 9 Ti 19.4.2016

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

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

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

Algoritmit 2. Luento 5 Ti Timo Männikkö Algoritmit 2 Luento 5 Ti 28.3.2017 Timo Männikkö Luento 5 Puurakenteet B-puu B-puun korkeus B-puun operaatiot Algoritmit 2 Kevät 2017 Luento 5 Ti 28.3.2017 2/29 B-puu Algoritmit 2 Kevät 2017 Luento 5 Ti

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

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

Tietorakenteet, esimerkkivastauksia viikon 12 laskareihin

Tietorakenteet, esimerkkivastauksia viikon 12 laskareihin Tietorakenteet, esimerkkivastauksia viikon laskareiin (a) Oletetaan seuraavan kuvan mukainen verkko ja etsitään lyyimpiä polkuja solmusta Ensimmäiseksi käsitellään solmu B, jonka etäisyys on kolme Seuraavaksi

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

ALGORITMIT 1 DEMOVASTAUKSET KEVÄT 2012

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

Lisätiedot

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

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

Lisätiedot

Algoritmit 2. Luento 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

Numeeriset menetelmät

Numeeriset menetelmät Numeeriset menetelmät Luento 3 Ti 13.9.2011 Timo Männikkö Numeeriset menetelmät Syksy 2011 Luento 3 Ti 13.9.2011 p. 1/37 p. 1/37 Epälineaariset yhtälöt Newtonin menetelmä: x n+1 = x n f(x n) f (x n ) Sekanttimenetelmä:

Lisätiedot

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

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

Lisätiedot

Algoritmit 1. Luento 3 Ti Timo Männikkö

Algoritmit 1. Luento 3 Ti Timo Männikkö Algoritmit 1 Luento 3 Ti 17.1.2017 Timo Männikkö Luento 3 Algoritmin analysointi Rekursio Lomituslajittelu Aikavaativuus Tietorakenteet Pino Algoritmit 1 Kevät 2017 Luento 3 Ti 17.1.2017 2/27 Algoritmien

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

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

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

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

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

A274101 TIETORAKENTEET JA ALGORITMIT

A274101 TIETORAKENTEET JA ALGORITMIT A274101 TIETORAKENTEET JA ALGORITMIT PERUSTIETORAKENTEET LISTA, PINO, JONO, PAKKA ABSTRAKTI TIETOTYYPPI Tietotyyppi on abstrakti, kun se on määritelty (esim. matemaattisesti) ottamatta kantaa varsinaiseen

Lisätiedot

Department of Mathematics, Hypermedia Laboratory Tampere University of Technology. Roolit Verkostoissa: HITS. Idea.

Department of Mathematics, Hypermedia Laboratory Tampere University of Technology. Roolit Verkostoissa: HITS. Idea. Roolit Tommi Perälä Department of Mathematics, Hypermedia Laboratory Tampere University of Technology 25.3.2011 J. Kleinberg kehitti -algoritmin (Hypertext Induced Topic Search) hakukoneen osaksi. n taustalla

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

Numeeriset menetelmät

Numeeriset menetelmät Numeeriset menetelmät Luento 4 To 15.9.2011 Timo Männikkö Numeeriset menetelmät Syksy 2011 Luento 4 To 15.9.2011 p. 1/38 p. 1/38 Lineaarinen yhtälöryhmä Lineaarinen yhtälöryhmä matriisimuodossa Ax = b

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

Turingin koneen laajennuksia

Turingin koneen laajennuksia Turingin koneen laajennuksia Turingin koneen määritelmään voidaan tehdä erilaisia muutoksia siten että edelleen voidaan tunnistaa tasan sama luokka kieliä. Moniuraiset Turingin koneet: nauha jakautuu k

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

Tietorakenteet ja algoritmit Johdanto Lauri Malmi / Ari Korhonen

Tietorakenteet ja algoritmit Johdanto Lauri Malmi / Ari Korhonen Tietorakenteet ja algoritmit Johdanto Lauri Malmi / Ari 1 1. JOHDANTO 1.1 Määritelmiä 1.2 Tietorakenteen ja algoritmin valinta 1.3 Algoritmit ja tiedon määrä 1.4 Tietorakenteet ja toiminnot 1.5 Esimerkki:

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

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

Kognitiivinen mallintaminen 1

Kognitiivinen mallintaminen 1 Kognitiivinen mallintaminen 1 Uutta infoa: Kurssin kotisivut wikissä: http://wiki.helsinki.fi/display/kognitiotiede/cog241 Suorittaminen tentillä ja laskareilla (ei välikoetta 1. periodissa) Ongelmanratkaisu

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

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

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

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

Imperatiivisen ohjelmoinnin peruskäsitteet. Meidän käyttämän pseudokielen lauseiden syntaksi

Imperatiivisen ohjelmoinnin peruskäsitteet. Meidän käyttämän pseudokielen lauseiden syntaksi Imperatiivisen ohjelmoinnin peruskäsitteet muuttuja muuttujissa oleva data voi olla yksinkertaista eli primitiivistä (esim. luvut ja merkit) tai rakenteista jolloin puhutaan tietorakenteista. puhuttaessa

Lisätiedot

Tietorakenteet, laskuharjoitus 10, ratkaisuja. 1. (a) Seuraava algoritmi tutkii, onko jokin luku taulukossa monta kertaa:

Tietorakenteet, laskuharjoitus 10, ratkaisuja. 1. (a) Seuraava algoritmi tutkii, onko jokin luku taulukossa monta kertaa: Tietorakenteet, laskuharjoitus 10, ratkaisuja 1. (a) Seuraava algoritmi tutkii, onko jokin luku taulukossa monta kertaa: SamaLuku(T ) 2 for i = 1 to T.length 1 3 if T [i] = = T [i + 1] 4 return True 5

Lisätiedot

Sekvenssi: kokoelma peräkkäisiä alkioita (lineaarinen

Sekvenssi: kokoelma peräkkäisiä alkioita (lineaarinen Sekvenssi Sekvenssi: kokoelma peräkkäisiä alkioita (lineaarinen järjestys) Timo Esim. pino, jono ja kaksiloppuinen jono ovat sekvenssin erikoistapauksia sekvenssejä, jotka kohdistavat operaationsa ensimmäiseen/viimeiseen

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

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

VERKKOTEORIAN ALKEITA. Martti E. Pesonen 28.2.2013

VERKKOTEORIAN ALKEITA. Martti E. Pesonen 28.2.2013 VERKKOTEORIAN ALKEITA Martti E. Pesonen 28.2.2013 1 Sisältö 1 VERKOISTA 1 1.1 Mitä matemaattiset verkot ovat?................ 1 1.1.1 Verkkoteorian synty.................... 1 1.2 Suuntaamaton verkko.......................

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

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

lähtokohta: kahden O(h) korkuisen keon yhdistäminen uudella juurella vie O(h) operaatiota vrt. RemoveMinElem() keossa

lähtokohta: kahden O(h) korkuisen keon yhdistäminen uudella juurella vie O(h) operaatiota vrt. RemoveMinElem() keossa Kekolajittelu Prioriteettijonolla toteutettu keko InsertItem ja RemoveMinElem: O(log(n)) Lajittelu prioriteettijonolla: PriorityQueueSort(lajiteltava sekvenssi S) alusta prioriteettijono P while S.IsEmpty()

Lisätiedot

Tietorakenteet ja algoritmit - syksy 2015 1

Tietorakenteet ja algoritmit - syksy 2015 1 Tietorakenteet ja algoritmit - syksy 2015 1 Tietorakenteet ja algoritmit - syksy 2015 2 Tietorakenteet ja algoritmit Johdanto Ari Korhonen Tietorakenteet ja algoritmit - syksy 2015 1. JOHDANTO 1.1 Määritelmiä

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

= 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

Kytkentäkentät, luento 2 - Kolmiportaiset kentät

Kytkentäkentät, luento 2 - Kolmiportaiset kentät Kytkentäkentät, luento - Kolmiportaiset kentät Kolmiportaiset kytkentäkentät - esitystapoja ja esimerkkejä Kytkentäkenttien vertailuperusteet ƒ Estottomuus, looginen syvyys, ajokyky Closin -verkko Paull

Lisätiedot

Rakenteellinen tasapaino ja transitiivisyys

Rakenteellinen tasapaino ja transitiivisyys 1 Hypermedian jatko-opintoseminaari 2008-2009 Rakenteellinen tasapaino ja transitiivisyys 20.2.2009 Seppo Pohjolainen 2 Rakenteellinen tasapaino Käsitteitä: Arvotettu graafi (signed graph) (+ tai - ) Suuntaamaton

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

Suunnatut, etumerkilliset ja arvotetut graafit Sosiaalisten verkostojen analysoinnin näkökulmalla

Suunnatut, etumerkilliset ja arvotetut graafit Sosiaalisten verkostojen analysoinnin näkökulmalla Suunnatut, etumerkilliset ja arvotetut graafit Sosiaalisten verkostojen analysoinnin näkökulmalla Hypermedian jatko-opintoseminaari 2008-2009 12.12.2008 Jaakko Salonen jaakko.salonen@tut.fi TTY / Hypermedialaboratorio

Lisätiedot

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

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

Lisätiedot

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

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

Lisätiedot

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

Kannan vektorit siis virittävät aliavaruuden, ja lisäksi kanta on vapaa. Lauseesta 7.6 saadaan seuraava hyvin käyttökelpoinen tulos:

Kannan vektorit siis virittävät aliavaruuden, ja lisäksi kanta on vapaa. Lauseesta 7.6 saadaan seuraava hyvin käyttökelpoinen tulos: 8 Kanta Tässä luvussa tarkastellaan aliavaruuden virittäjävektoreita, jotka muodostavat lineaarisesti riippumattoman jonon. Merkintöjen helpottamiseksi oletetaan luvussa koko ajan, että W on vektoreiden

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

Algoritmit 1. Luento 2 Ke Timo Männikkö Algoritmit 1 Luento 2 Ke 11.1.2017 Timo Männikkö Luento 2 Algoritmin esitys Algoritmien analysointi Suoritusaika Asymptoottinen kertaluokka Peruskertaluokkia NP-täydelliset ongelmat Algoritmit 1 Kevät

Lisätiedot

Mat Lineaarinen ohjelmointi

Mat Lineaarinen ohjelmointi Mat-.34 Lineaarinen ohjelmointi 9..7 Luento Kokonaislukuoptimoinnin algoritmeja (kirja.-.) Lineaarinen ohjelmointi - Syksy 7 / Luentorunko Gomoryn leikkaava taso Branch & Bound Branch & Cut Muita menetelmiä

Lisätiedot

Algoritmit 1. Luento 11 Ti Timo Männikkö

Algoritmit 1. Luento 11 Ti Timo Männikkö Algoritmit 1 Luento 11 Ti 14.2.2017 Timo Männikkö Luento 11 Algoritminen ongelmanratkaisu Osittaminen Lomituslajittelu Lomituslajittelun vaativuus Rekursioyhtälöt Pikalajittelu Algoritmit 1 Kevät 2017

Lisätiedot

Tietojenkäsittelytieteen ja tilastotieteen matematiikkaa 1/137

Tietojenkäsittelytieteen ja tilastotieteen matematiikkaa 1/137 Tietojenkäsittelytieteen ja tilastotieteen matematiikkaa 1/137 Loogiset konnektiivit Tavallisimmat loogiset konnektiivit ovat negaatio ei konjunktio ja disjunktio tai implikaatio jos..., niin... ekvivalenssi...

Lisätiedot

3SAT-ongelman NP-täydellisyys [HMU ]

3SAT-ongelman NP-täydellisyys [HMU ] 3SAT-ongelman NP-täydellisyys [HMU 10.3.4] erotukseksi yleisestä CNF-esityksestä, kaikilla kaavoilla ei ole 3-CNF-esitystä; esim. x 1 x 2 x 3 x 4 esitämme muunnoksen, jolla polynomisessa ajassa mielivaltaisesta

Lisätiedot

Kytkentäkentät, luento 2 - Kolmiportaiset kentät

Kytkentäkentät, luento 2 - Kolmiportaiset kentät Kytkentäkentät, luento - Kolmiportaiset kentät Kolmiportaiset kytkentäkentät - esitystapoja ja esimerkkejä Kytkentäkenttien vertailuperusteet Estottomuus, looginen syvyys, ajokyky Closin -verkko Paull

Lisätiedot

18. Abstraktit tietotyypit 18.1

18. Abstraktit tietotyypit 18.1 18. Abstraktit tietotyypit 18.1 Sisällys Johdanto abstrakteihin tietotyyppeihin. Pino ja jono. Linkitetty lista. Pino linkitetyllä listalla toteutettuna. 18.2 Johdanto Javan omat tietotyypit ovat jo tuttuja:

Lisätiedot

Königsbergin sillat. Königsberg 1700-luvulla. Leonhard Euler ( )

Königsbergin sillat. Königsberg 1700-luvulla. Leonhard Euler ( ) Königsbergin sillat 1700-luvun Königsbergin (nykyisen Kaliningradin) läpi virtasi joki, jonka ylitti seitsemän siltaa. Sanotaan, että kaupungin asukkaat yrittivät löytää reittiä, joka lähtisi heidän kotoaan,

Lisätiedot

Englannin lausekerakenteita ja taulukkojäsentäminen

Englannin lausekerakenteita ja taulukkojäsentäminen Englannin lausekerakenteita ja taulukkojäsentäminen Kontekstittomat jäsennysmenetelmät Lili Aunimo lili.aunimo@helsinki.fi Helsingin yliopisto Kieliteknologia Lili Aunimo Englannin lausekerakenteita ja

Lisätiedot

Matemaattinen optimointi II

Matemaattinen optimointi II Matemaattinen optimointi II Marko M. Mäkelä Turun yliopisto Matematiikan ja tilastotieteen laitos Kevät 21 Sisältö Esipuhe 1 1 Lyhimmät tiet ja diskreetti dynaaminen optimointi 2 1.1 Lyhimmän tien ongelmia............................

Lisätiedot