Algoritmit 1. Luento 14 Ke Timo Männikkö

Koko: px
Aloita esitys sivulta:

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

Transkriptio

1 Algoritmit 1 Luento 14 Ke Timo Männikkö

2 Luento 14 Heuristiset menetelmät Heuristiikkoja kapsäkkiongelmalle Kauppamatkustajan ongelma Lähimmän naapurin menetelmä Kertaus ja tenttivinkit Algoritmit 1 Kevät 2015 Luento 14 Ke /27

3 Heuristiset menetelmät Heuristiikka: Etsitään ratkaisua käyttäen arvauksia, intuitiivisia päätöksiä, nyrkkisääntöjä, maalaisjärkeä Jos tarkka ratkaiseminen on hidasta, tingitään ratkaisun optimaalisuudesta ja etsitään likimääräinen ratkaisu nopealla heuristiikalla Ahne menetelmä sopii usein heuristisen menetelmän perustaksi Algoritmit 1 Kevät 2015 Luento 14 Ke /27

4 Kapsäkkiongelma Valittavana n kpl erilaisia tavaroita Tavaralle i tunnetaan paino w i ja hyötyarvo p i (positiivisia kokonaislukuja) Tavaraa otetaan mukaan joko 0 tai 1 kpl Annettu kokonaispainoraja W Tehtävänä valita reppuun R tavarat siten, että niiden hyötyarvo on mahdollisimman suuri, mutta painoraja ei ylity max i R p i kun i R w i W Algoritmit 1 Kevät 2015 Luento 14 Ke /27

5 Heuristiikkoja kapsäkkiongelmalle Ahneeseen tyyliin painon mukaan: Pakataan painon mukaan nousevassa järjestyksessä niin kauan kuin mahtuu Mutta: Ei huomioi hyötyarvoja Ahneeseen tyyliin hyötyarvon mukaan: Pakataan hyötyarvon mukaan laskevassa järjestyksessä niin kauan kuin mahtuu Mutta: Ei huomioi painoja Algoritmit 1 Kevät 2015 Luento 14 Ke /27

6 Heuristiikkoja kapsäkkiongelmalle Otetaan huomioon sekä paino että hyötyarvo: 1. Lasketaan tavaroille suhteet r i = p i /w i 2. Järjestetään tavarat suhteiden r i mukaan laskevaan järjestykseen 3. Pakataan tavaroita tässä järjestyksessä niin kauan kun mahtuu Toteutettavissa aikavaativuudella O(n log n) Jos sallitaan tavaroiden määrälle kaikki arvot välillä 0 1 (jatkuva kapsäkkiongelma), algoritmi antaa optimaalisen ratkaisun Algoritmit 1 Kevät 2015 Luento 14 Ke /27

7 Kauppamatkustajan ongelma Kaupunkeja n kpl, kaupunkien väliset etäisyydet d tunnetaan Etsitään lyhin reitti, joka kulkee kaikkien kaupunkien kautta täsmälleen kerran Suuntaamaton, painotettu verkko G Tehtävänä määrätä G:ssä Hamiltonin kehä, jonka pituus minimaalinen Ongelma NP-täydellinen Tunnettujen ratkaisualgoritmien pahimman tapauksen aikavaativuus eksponentiaalinen Algoritmit 1 Kevät 2015 Luento 14 Ke /27

8 Kauppamatkustajan ongelma Lähimmän naapurin menetelmä: Yksinkertainen ahne, heuristinen menetelmä Valitaan jokin lähtökaupunki Edetään aina lähimpään vielä käymättömään kaupunkiin Jatketaan kunnes kaikissa kaupungeissa käyty Lopulta palataan lähtökaupunkiin Algoritmit 1 Kevät 2015 Luento 14 Ke /27

9 Lähimmän naapurin menetelmä 1. Tämänhetkinen kaupunki t = 1, käymättömät kaupungit K = {2, 3,..., n} 2. Toistetaan kunnes K = : Etsitään kaupunki i siten, että d(t, i) = min{d(t, j) j K} Lisätään kaari (t, i) reittiin Asetetaan t = i ja K = K \ {i} 3. Lisätään kaari (t, 1) reittiin ja lopetetaan Algoritmit 1 Kevät 2015 Luento 14 Ke /27

10 Lähimmän naapurin menetelmä Huom: Oletetaan, että askeleessa 2 kaari (t, i) aina löytyy Kaksi sisäkkäistä, n:stä riippuvaa silmukkaa Aikavaativuus O(n 2 ) Mutta voi joskus antaa erittäin huonon reitin Algoritmit 1 Kevät 2015 Luento 14 Ke /27

11 Kauppamatkustajan ongelma Toinen ahne heuristiikka: 1. Käsitellään tiet pituuden mukaan kasvavassa järjestyksessä 2. Lisätään tie reittiin, jos Sen kummastakin päätepisteestä alkaa enintään yksi aiemmin valittu tie Se ei muodosta silmukkaa aiemmin valittujen teiden kanssa (lukuun ottamatta viimeistä tietä) Algoritmit 1 Kevät 2015 Luento 14 Ke /27

12 Kauppamatkustajan ongelma Jos voimassa kolmioepäyhtälö d(x, y) d(x, z) + d(z, y) kaikilla x, y, z niin edellinen heuristiikka takaa reitin, jonka pituus on enintään kaksi kertaa optimaalisen reitin pituus (c 2c opt ) Paras tunnettu polynominen algoritmi, Christofidesin heuristiikka, takaa c 3 2 c opt Jos kolmioepäyhtälö ei ole voimassa ja P NP, niin mikään polynominen algoritmi ei voi taata, että c kc opt millään vakiolla k Algoritmit 1 Kevät 2015 Luento 14 Ke /27

13 Kertaus ja tenttivinkit Algoritmin suunnittelu: Suunnittelumenetelmät Algoritmin esitys: Sanallisesti, pseudokoodina Algoritmin analysointi: Aikavaativuuden kertaluokka Tietorakenteiden valinta: Tietoalkiot ja operaatiot Algoritmit 1 Kevät 2015 Luento 14 Ke /27

14 Algoritmien analysointi Suoritusajan vaativuus: Lasketaan/arvioidaan algoritmin askelien/operaatioiden lukumääriä Määrätään suoritusajan riippuvuus syöttötiedon koosta Oleellista suoritusajan asymptoottinen kertaluokka Paras mahdollinen suoritusaika, huonoin mahdollinen suoritusaika, keskimääräinen suoritusaika Algoritmit 1 Kevät 2015 Luento 14 Ke /27

15 Asymptoottinen kertaluokka O(g(n)) = funktiot, jotka asymptoottisesti pienempiä tai yhtäsuuria kuin g(n) Peruskertaluokkia: O(1), O(log n), O(n), O(n log n), O(n 2 ), O(n 3 ) Yleinen polynominen: O(n k ) Eksponentiaalinen: O(2 n ) Algoritmit 1 Kevät 2015 Luento 14 Ke /27

16 Pino ja jono Pino: Perusoperaatiot (push, pop) Toteutus taulukolla Jono: Perusoperaatiot (enqueue, dequeue) Toteutus taulukolla Algoritmit 1 Kevät 2015 Luento 14 Ke /27

17 Lista Järjestetty lista Perusoperaatiot (haku, lisäys, poisto) Peräkkäishaku vs. binäärihaku Toteutus dynaamisesti (linkitetty lista) Vaihtoehtoiset listarakenteet Algoritmit 1 Kevät 2015 Luento 14 Ke /27

18 Binääripuu Järjestys rakenteen perusteella, järjestys tietosisällön perusteella Järjestetty binääripuu Perusoperaatiot (haku, lisäys, poisto) Solmujen läpikäynti eri järjestyksissä Algoritmit 1 Kevät 2015 Luento 14 Ke /27

19 Graafit ja verkot Tietorakenteita: Kaaritaulukko Kaarien pituusmatriisi Lähtevien ja tulevien kaarien listat Verkon lyhimmät polut, algoritmeja: Ford ja Fulkerson Floyd Dijkstra Algoritmit 1 Kevät 2015 Luento 14 Ke /27

20 Suunnittelumenetelmät Raaka voima: Ongelman suoraviivainen ratkaiseminen Osittaminen: Ositus osatehtäviin, rekursiivinen ratkaiseminen, ratkaisun kokoaminen Taulukointi: Osatehtävien ratkaisujen taulukointi, taulukon täyttäminen vaiheittain Ahne menetelmä: Parhaimmalta näyttävän vaihtoehdon valinta Algoritmit 1 Kevät 2015 Luento 14 Ke /27

21 Järjestäminen eli lajittelu Lajittelu: Taulukon, listan, tiedoston jne. järjestäminen suuruusjärjestykseen jonkin avainkentän (tai avainkenttien) mukaan Lajittelun stabiilisuus: Tietueet, joilla sama avainkentän arvo, säilyttävät alkuperäisen keskinäisen järjestyksensä Algoritmit 1 Kevät 2015 Luento 14 Ke /27

22 Lajittelumenetelmiä Raakaan voimaan perustuvia: Kuplalajittelu Väliinsijoituslajittelu Valintalajittelu Osittamiseen perustuvia: Lomituslajittelu Pikalajittelu Algoritmit 1 Kevät 2015 Luento 14 Ke /27

23 Osittavia menetelmiä Lomituslajittelu (merge sort): Ositus kahteen osajoukkoon Osajoukkojen lajittelu rekursiivisesti Osajoukkojen yhdistäminen lomittamalla Pikalajittelu (quick sort): Jakotietueen valinta (eri tapoja) Ositus kahteen osajoukkoon jakotietueen molemmin puolin Osajoukkojen lajittelu rekursiivisesti (tai väliinsijoituslajittelulla, jos tarpeeksi pieni) Algoritmit 1 Kevät 2015 Luento 14 Ke /27

24 Osittavien menetelmien vaativuus Aikavaativuuden rekursioyhtälö (esimerkiksi): { c, kun n = 1 T (n) = at (n/b) + dn, kun n > 1 Osittamisen tasapainoisuudesta: Pahin tapaus (esimerkiksi) T (n) = T (n 1) + dn = = O(n 2 ) Paras tapaus (esimerkiksi) T (n) = 2T (n/2) + dn = = O(n log n) Algoritmit 1 Kevät 2015 Luento 14 Ke /27

25 Ahneita algoritmeja Verkon lyhimmät polut: Dijkstran menetelmä Verkon lyhin virittävä puu: Kruskalin menetelmä Algoritmit 1 Kevät 2015 Luento 14 Ke /27

26 Heuristisia algoritmeja Kapsäkkiongelma: Ahne menetelmä paino/hyötyarvo-suhteen mukaan Kauppamatkustajan ongelma: Lähimmän naapurin menetelmä Algoritmit 1 Kevät 2015 Luento 14 Ke /27

27 Onnea tenttiin! Algoritmit 1 Kevät 2015 Luento 14 Ke /27

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

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

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

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

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

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

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

Tiraka, yhteenveto tenttiinlukua varten

Tiraka, yhteenveto tenttiinlukua varten Tiraka, yhteenveto tenttiinlukua varten TERMEJÄ Tietorakenne Tietorakenne on tapa tallettaa tietoa niin, että tietoa voidaan lisätä, poistaa, muokata ja hakea. Tietorakenteet siis säilövät tiedon niin,

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

A274101 TIETORAKENTEET JA ALGORITMIT

A274101 TIETORAKENTEET JA ALGORITMIT A274101 TIETORAKENTEET JA ALGORITMIT ALGORITMIEN ANALYYSISTÄ 1.ratkaisu Laskentaaika hakkeri - optimoitu ALGORITMIANALYYSIÄ hyvä algoritmi hakkeri -optimoitu hyvä algoritmi Tehtävän koko Kuva mukailtu

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

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

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

Laskennan vaativuus ja NP-täydelliset ongelmat

Laskennan vaativuus ja NP-täydelliset ongelmat Laskennan vaativuus ja NP-täydelliset ongelmat TRAK-vierailuluento 13.4.2010 Petteri Kaski Tietojenkäsittelytieteen laitos Tietojenkäsittelytiede Tietojenkäsittelytiede tutkii 1. mitä tehtäviä voidaan

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

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

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

Lisätiedot

Algoritmit 1 Syksy 2008

Algoritmit 1 Syksy 2008 Algoritmit 1 Syksy 2008 Algoritmit 1 1 1 Algoritmit ja algoritmien analysointi Algoritmilla tarkoitetaan askel askeleelta suoritettavaa ohjetta jonkin tehtävän suorittamiseksi tai jonkun ongelman ratkaisemiseksi.

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

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

1 Erilaisia tapoja järjestää

1 Erilaisia tapoja järjestää TIE-20100 Tietorakenteet ja algoritmit 1 1 Erilaisia tapoja järjestää Käsitellään seuraavaksi järjestämisalgoritmeja, jotka perustuvat muihin kuin vertailuun alkioiden oikean järjestyksen saamiseksi. Lisäksi

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

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python Ohjelmoinnin perusteet Y Python T-106.1208 11.2.2009 T-106.1208 Ohjelmoinnin perusteet Y 11.2.2009 1 / 33 Kertausta: listat Tyhjä uusi lista luodaan kirjoittamalla esimerkiksi lampotilat = [] (jolloin

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

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

8. Lajittelu, joukot ja valinta

8. Lajittelu, joukot ja valinta 8. Lajittelu, joukot ja valinta Yksi tietojenkäsittelyn klassisista tehtävistä on lajittelu (järjestäminen) (sorting) jo mekaanisten tietojenkäsittelylaitteiden ajalta. Lajiteltua tietoa tarvitaan lukemattomissa

Lisätiedot

Luku 6. Dynaaminen ohjelmointi. 6.1 Funktion muisti

Luku 6. Dynaaminen ohjelmointi. 6.1 Funktion muisti Luku 6 Dynaaminen ohjelmointi Dynaamisessa ohjelmoinnissa on ideana jakaa ongelman ratkaisu pienempiin osaongelmiin, jotka voidaan ratkaista toisistaan riippumattomasti. Jokaisen osaongelman ratkaisu tallennetaan

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

Koe ma 1.3 klo 16-19 salissa A111, koeaika kuten tavallista 2h 30min

Koe ma 1.3 klo 16-19 salissa A111, koeaika kuten tavallista 2h 30min Koe Koe ma 1.3 klo 16-19 salissa A111, koeaika kuten tavallista 2h 30min Kokeessa saa olla mukana A4:n kokoinen kaksipuolinen käsiten tehty, itse kirjoitettu lunttilappu 1 Tärkeää ja vähemmäntärkeää Ensimmäisen

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

kaikki kielet tunnistettavat A TM HALT TM { a n } { a n b n } { a n b n c n } TOTAL TM EQ TM

kaikki kielet tunnistettavat A TM HALT TM { a n } { a n b n } { a n b n c n } TOTAL TM EQ TM Kurssi tähän asti: säännölliset yhteydettömät ratkeavat { a n } { a n b n } { a n b n c n } tunnistettavat A TM HALT TM kaikki kielet A TM HALT TM TOTAL TM TOTAL TM EQ TM EQ TM 277 5. Laskennan vaativuus

Lisätiedot

Määrittelydokumentti

Määrittelydokumentti Määrittelydokumentti Aineopintojen harjoitustyö: Tietorakenteet ja algoritmit (alkukesä) Sami Korhonen 014021868 sami.korhonen@helsinki. Tietojenkäsittelytieteen laitos Helsingin yliopisto 23. kesäkuuta

Lisätiedot

Tutkimusmenetelmät-kurssi, s-2004

Tutkimusmenetelmät-kurssi, s-2004 Algoritmitutkimuksen menetelmistä Tutkimusmenetelmät-kurssi, s-2004 Pekka Kilpeläinen Kuopion yliopisto Tietojenkäsittelytieteen laitos Algoritmitutkimuksen menetelmistä p.1/20 Sisällys Tänään Tietojenkäsittelytiede

Lisätiedot

A274101 TIETORAKENTEET JA ALGORITMIT

A274101 TIETORAKENTEET JA ALGORITMIT A274101 TIETORAKENTEET JA ALGORITMIT PUURAKENTEET, BINÄÄRIPUU, TASAPAINOTETUT PUUT MIKÄ ON PUUTIETORAKENNE? Esim. Viereinen kuva esittää erästä puuta. Tietojenkäsittelytieteessä puut kasvavat alaspäin.

Lisätiedot

A* Reitinhaku Aloittelijoille

A* Reitinhaku Aloittelijoille A* Reitinhaku Aloittelijoille Alkuperäisen artikkelin kirjoittanut Patrick Lester, suomentanut Antti Veräjänkorva. Suom. huom. Tätä kääntäessäni olen pyrkinyt pitämään saman alkuperäisen tyylin ja kerronnan.

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

Kääreluokat (oppikirjan luku 9.4) (Wrapper-classes)

Kääreluokat (oppikirjan luku 9.4) (Wrapper-classes) Kääreluokat (oppikirjan luku 9.4) (Wrapper-classes) Kääreluokista Javan alkeistietotyypit ja vastaavat kääreluokat Autoboxing Integer-luokka Double-luokka Kääreluokista Alkeistietotyyppiset muuttujat (esimerkiksi

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

Luku 3. Listankäsittelyä. 3.1 Listat

Luku 3. Listankäsittelyä. 3.1 Listat Luku 3 Listankäsittelyä Funktio-ohjelmoinnin tärkein yksittäinen tietorakenne on lista. Listankäsittely on paitsi käytännöllisesti oleellinen aihe, se myös valaisee funktio-ohjelmoinnin ideaa. 3.1 Listat

Lisätiedot

Algoritmit 2. Luento 8 Ke 13.4.2016. Timo Männikkö

Algoritmit 2. Luento 8 Ke 13.4.2016. Timo Männikkö Algoritmit 2 Luento 8 Ke 13.4.2016 Timo Männikkö Luento 8 Rekursioyhtälöt Master-lause Lähin pistepari Ahne menetelmä Lyhin virittävä puu Kruskalin menetelmä Primin menetelmä Merkkitiedon tiivistäminen

Lisätiedot

TIETORAKENTEET JA ALGORITMIT

TIETORAKENTEET JA ALGORITMIT TIETORAKENTEET JA ALGORITMIT Timo Harju 1999-2004 1 typedef link List; /* Vaihtoehtoisia nimiä */ typedef link Stack; /* nodepointterille */ typedef link Queue typedef struct node Node; /* itse nodelle

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

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

Muita rekisteriallokaatiomenetelmiä

Muita rekisteriallokaatiomenetelmiä TIE448 Kääntäjätekniikka, syksy 2009 Antti-Juhani Kaijanaho TIETOTEKNIIKAN LAITOS 23. marraskuuta 2009 Sisällys Sisällys Seuraava deadline Vaihe E tiistai 1.12. klo 10 koodigenerointi (ilman rekisteriallokaatiota)

Lisätiedot

6.1 Rekursiiviset palautukset

6.1 Rekursiiviset palautukset 6.1 Rekursiiviset palautukset Olk. = (Q, Σ, Γ, δ, q 0, q acc, q rej ) mv. standardimallinen Turingin kone ääritellään koneen laskema osittaisfunktio f : Σ Γ seur. u, jos q 0 w u q av, f (w) = q { q acc,

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

Mediaanisuodattimet. Tähän asti käsitellyt suodattimet ovat olleet lineaarisia. Niille on tyypillistä, että. niiden ominaisuudet tunnetaan hyvin

Mediaanisuodattimet. Tähän asti käsitellyt suodattimet ovat olleet lineaarisia. Niille on tyypillistä, että. niiden ominaisuudet tunnetaan hyvin Mediaanisuodattimet Tähän asti käsitellyt suodattimet ovat olleet lineaarisia. Niille on tyypillistä, että niiden ominaisuudet tunnetaan hyvin niiden analysointiin on olemassa vakiintuneita menetelmiä

Lisätiedot

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

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

Lisätiedot

Numeropelissä 3x3-ruudukko sisältää luvut 1, 2,, 9. Tehtäväsi on järjestää ruudukko näin:

Numeropelissä 3x3-ruudukko sisältää luvut 1, 2,, 9. Tehtäväsi on järjestää ruudukko näin: A Numeropeli Numeropelissä 3x3-ruudukko sisältää luvut 1, 2,, 9. Tehtäväsi on järjestää ruudukko näin: 1 2 3 4 5 6 7 8 9 Voit jokaisella siirrolla vaihtaa keskenään kaksi vierekkäistä lukua vaaka- tai

Lisätiedot

8.5. Järjestyssuhteet 1 / 19

8.5. Järjestyssuhteet 1 / 19 8.5. Järjestyssuhteet 1 / 19 Määritelmä Joukon suhteilla voidaan kuvata myös alkioiden järjestystä tietyn ominaisuuden suhteen. Järjestys on myös kaksipaikkainen suhde (ja on monia erilaisia järjestyksiä).

Lisätiedot

Muita linkattuja rakenteita

Muita linkattuja rakenteita 1 Muita linkattuja rakenteita Johdanto Aikaisemmin on käsitelty listan, jonon ja pinon toteutus dynaamisesti linkattuna rakenteena. Dynaamisella linkkauksella voidaan toteuttaa mitä moninaisimpia rakenteita.

Lisätiedot

Viikko 2: Ensimmäiset ennustajat Matti Kääriäinen matti.kaariainen@cs.helsinki.fi

Viikko 2: Ensimmäiset ennustajat Matti Kääriäinen matti.kaariainen@cs.helsinki.fi Viikko 2: Ensimmäiset ennustajat Matti Kääriäinen matti.kaariainen@cs.helsinki.fi Exactum C222, 5.-7.11.2008. 1 Tällä viikolla Sisältösuunnitelma: Ennustamisstrategioista Koneoppimismenetelmiä: k-nn (luokittelu

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

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

2 Haku ja lajittelu. 2.1 Luvun hakeminen taulukosta X?? n-1. Haku ja lajittelu 35

2 Haku ja lajittelu. 2.1 Luvun hakeminen taulukosta X?? n-1. Haku ja lajittelu 35 Haku ja lajittelu 35 2 Haku ja lajittelu Tässä luvussa käsitellään tiedon hakemista taulukosta sekä taulukon lajittelua. Useista erilaisista lajittelumenetelmistä on kirjaan otettu suurehko osa. Lajittelumenetelmien

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

Implementation of Selected Metaheuristics to the Travelling Salesman Problem (valmiin työn esittely)

Implementation of Selected Metaheuristics to the Travelling Salesman Problem (valmiin työn esittely) Implementation of Selected Metaheuristics to the Travelling Salesman Problem (valmiin työn esittely) Jari Hast xx.12.2013 Ohjaaja: Harri Ehtamo Valvoja: Hari Ehtamo Työn saa tallentaa ja julkistaa Aalto-yliopiston

Lisätiedot

Algoritmit C++ Kauko Kolehmainen

Algoritmit C++ Kauko Kolehmainen Algoritmit C++ Kauko Kolehmainen Algoritmit - C++ Kirjoittanut Taitto Kansi Kustantaja Kauko Kolehmainen Kauko Kolehmainen Frank Chaumont Oy Edita Ab IT Press PL 760 00043 EDITA Sähköpostiosoite Internet

Lisätiedot

Muita vaativuusluokkia

Muita vaativuusluokkia Muita vaativuusluokkia Käydään lyhyesti läpi tärkeimpiä vaativuusluokkiin liittyviä tuloksia. Monet tunnetuista tuloksista ovat vaikeita todistaa, ja monet kysymykset ovat vielä auki. Lause (Ladner 1975):

Lisätiedot

3 Lajittelualgoritmeista

3 Lajittelualgoritmeista 3 Lajittelualgoritmeista Tässä osassa käsitellään edistyneempiä lajittelualgoritmeja, erityisesti keko- ja pikalajitteluja. Lisäksi perehdytään hieman lajittelualgoritmien suorituskyvyn rajoihin. Materiaali

Lisätiedot

Tietorakenteet ja algoritmit II

Tietorakenteet ja algoritmit II Tietorakenteet ja algoritmit II Luentomuistiinpanoja Simo Juvaste Asko Niemeläinen Itä-Suomen yliopisto Tietojenkäsittelytiede Alkusanat Tämä uuden TRAII kurssin luentomateriaali on kutakuinkin edellisen

Lisätiedot

Kuva Suomen päätieverkko 1 Moottoritiet on merkitty karttaan vihreällä, muut valtatiet punaisella ja kantatiet keltaisella värillä.

Kuva Suomen päätieverkko 1 Moottoritiet on merkitty karttaan vihreällä, muut valtatiet punaisella ja kantatiet keltaisella värillä. POHDIN projekti TIEVERKKO Tieverkon etäisyyksien minimointi ja esimerkiksi maakaapeleiden kokonaismäärän minimointi sekä ylipäätään äärellisen pistejoukon yhdistäminen reitityksillä toisiinsa niin, että

Lisätiedot

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

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

Lisätiedot

A*-algoritmi ja siihen pohjautuvat muistirajoitetut heuristiset reitinhakualgoritmit

A*-algoritmi ja siihen pohjautuvat muistirajoitetut heuristiset reitinhakualgoritmit A*-algoritmi ja siihen pohjautuvat muistirajoitetut heuristiset reitinhakualgoritmit Oskari Torikka Pro gradu -tutkielma Tietojenkäsittelytieteen laitos Tietojenkäsittelytiede Helmikuu 2015 ITÄ-SUOMEN

Lisätiedot

TTY Porin laitoksen optimointipalvelut yrityksille

TTY Porin laitoksen optimointipalvelut yrityksille TTY Porin laitoksen optimointipalvelut yrityksille Timo Ranta, TkT Frank Cameron, TkT timo.ranta@tut.fi frank.cameron@tut.fi Automaation aamukahvit 28.8.2013 Optimointi Tarkoittaa parhaan ratkaisun valintaa

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

Helsingin, Itä-Suomen, Jyväskylän, Oulun, Tampereen ja Turun yliopisto Matematiikan valintakoe 11.6.2012 klo 10 13 Ratkaisut ja pisteytysohjeet

Helsingin, Itä-Suomen, Jyväskylän, Oulun, Tampereen ja Turun yliopisto Matematiikan valintakoe 11.6.2012 klo 10 13 Ratkaisut ja pisteytysohjeet Helsingin, Itä-Suomen, Jyväskylän, Oulun, Tampereen ja Turun yliopisto Matematiikan valintakoe 11.6.01 klo 10 13 t ja pisteytysohjeet 1. Ratkaise seuraavat yhtälöt ja epäyhtälöt. (a) 3 x 3 3 x 1 4, (b)

Lisätiedot

Scifest-loppuraportti Jani Hovi 234270 4.5.2014. 21 kortin temppu

Scifest-loppuraportti Jani Hovi 234270 4.5.2014. 21 kortin temppu Scifest-loppuraportti Jani Hovi 234270 4.5.2014 Toteutus 21 kortin temppu Temppuun tarvitaan nimensä mukaisesti 21 korttia. Kortit jaetaan kuvapuoli näkyvillä kolmeen pinoon, ensiksi kolme korttia rinnan

Lisätiedot

1 Puu, Keko ja Prioriteettijono

1 Puu, Keko ja Prioriteettijono TIE-20100 Tietorakenteet ja algoritmit 1 1 Puu, Keko ja Prioriteettijono Tässä luvussa käsitellään algoritmien suunnitteluperiaatetta muunna ja hallitse (transform and conquer) Lisäksi esitellään binääripuun

Lisätiedot

Mat-2.3114 Investointiteoria Laskuharjoitus 3/2008, Ratkaisut 05.02.2008

Mat-2.3114 Investointiteoria Laskuharjoitus 3/2008, Ratkaisut 05.02.2008 Korko riippuu usein laina-ajan pituudesta ja pitkille talletuksille maksetaan korkeampaa korkoa. Spot-korko s t on se korko, joka kertyy lainatulle pääomalle hetkeen t (=kokonaisluku) mennessä. Spot-korot

Lisätiedot

1. Johdanto (Harel luvut 1 2)

1. Johdanto (Harel luvut 1 2) 1. Johdanto (Harel luvut 1 2) Kurssilla tutustutaan tietojenkäsittelytieteen keskeisiin algoritmisiin käsitteisiin, ideoihin, menetelmiin ja tuloksiin. Oma motivaatio: tietojenkäsittelytieteen oma juttu

Lisätiedot

1.1 Tavallinen binäärihakupuu

1.1 Tavallinen binäärihakupuu TIE-20100 Tietorakenteet ja algoritmit 1 1 Puurakenteet http://imgur.com/l77fy5x Tässä luvussa käsitellään erilaisia yleisiä puurakenteita. ensin käsitellään tavallinen binäärihakupuu sitten tutustutaan

Lisätiedot

PRELIMINÄÄRIKOE PITKÄ MATEMATIIKKA 9.2.2011

PRELIMINÄÄRIKOE PITKÄ MATEMATIIKKA 9.2.2011 PRELIMINÄÄRIKOE PITKÄ MATEMATIIKKA 9..0 Kokeessa saa vastata enintään kymmeneen tehtävään.. Sievennä a) 9 x x 6x + 9, b) 5 9 009 a a, c) log 7 + lne 7. Muovailuvahasta tehty säännöllinen tetraedri muovataan

Lisätiedot

Tietuetyypin määrittely toteutetaan C-kielessä struct-rakenteena seuraavalla tavalla:

Tietuetyypin määrittely toteutetaan C-kielessä struct-rakenteena seuraavalla tavalla: KERTAUSTEHTÄVIÄ Tietue Tietuetyypin määrittely toteutetaan C-kielessä struct-rakenteena seuraavalla tavalla: struct henkilotiedot char nimi [20]; int ika; char puh [10]; ; Edellä esitetty kuvaus määrittelee

Lisätiedot

Metropolia ammattikorkeakoulu 05.02.2015 TI00AA43-3004: Ohjelmointi Kotitehtävät 3

Metropolia ammattikorkeakoulu 05.02.2015 TI00AA43-3004: Ohjelmointi Kotitehtävät 3 : http://users.metropolia.fi/~pasitr/2014-2015/ti00aa43-3004/kt/03/ratkaisut/ Tehtävä 1. (1 piste) Tee ohjelma K03T01.cpp, jossa ohjelmalle syötetään kokonaisluku. Jos kokonaisluku on positiivinen, niin

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

TT00AA12-2016 - Ohjelmoinnin jatko (TT10S1ECD)

TT00AA12-2016 - Ohjelmoinnin jatko (TT10S1ECD) TT00AA12-2016 - Ohjelmoinnin jatko (TT10S1ECD) Info 15/3/11 Mikko Vuorinen Metropolia Ammattikorkeakoulu 1 Sisältö 1) Info 2) Arvostelu 3) Kurssin sisältö 4) Alustava aikataulu 5) Projekti 6) Kertaustarve

Lisätiedot

Malliratkaisut Demo 1

Malliratkaisut Demo 1 Malliratkaisut Demo 1 1. Merkitään x = kuinka monta viikkoa odotetaan ennen kuin perunat nostetaan. Nyt maksimoitavaksi kohdefunktioksi tulee f(x) = (60 5x)(300 + 50x). Funktio f on alaspäin aukeava paraaeli,

Lisätiedot

Taulukot. Taulukon määrittely ja käyttö. Taulukko metodin parametrina. Taulukon sisällön kopiointi toiseen taulukkoon. Taulukon lajittelu

Taulukot. Taulukon määrittely ja käyttö. Taulukko metodin parametrina. Taulukon sisällön kopiointi toiseen taulukkoon. Taulukon lajittelu Taulukot Taulukon määrittely ja käyttö Taulukko metodin parametrina Taulukon sisällön kopiointi toiseen taulukkoon Taulukon lajittelu esimerkki 2-ulottoisesta taulukosta 1 Mikä on taulukko? Taulukko on

Lisätiedot

8.1. Tuloperiaate. Antti (miettien):

8.1. Tuloperiaate. Antti (miettien): 8.1. Tuloperiaate Katseltaessa klassisen todennäköisyyden määritelmää selviää välittömästi, että sen soveltamiseksi on kyettävä määräämään erilaisten joukkojen alkioiden lukumääriä. Jo todettiin, ettei

Lisätiedot

Vuonohjaus: ikkunamekanismi

Vuonohjaus: ikkunamekanismi J. Virtamo 38.3141 Teleliikenneteoria / Ikkunointiin perustuva vuonohjaus 1 Vuonohjaus: ikkunamekanismi Kuittaamattomina liikkeellä olevien segmenttien (data unit) lkm W (ikkuna) Lähetyslupien kokonaismäärä

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

Parviälykkyys optimointiongelmien ratkaisemisessa. Ilkka Virolainen

Parviälykkyys optimointiongelmien ratkaisemisessa. Ilkka Virolainen Parviälykkyys optimointiongelmien ratkaisemisessa Ilkka Virolainen Tampereen yliopisto Informaatiotieteiden yksikkö Tietojenkäsittelyoppi Pro gradu -tutkielma Ohjaaja: Martti Juhola Huhtikuu 2015 ii Tampereen

Lisätiedot

Kisakoodarin käsikirja. Antti Laaksonen

Kisakoodarin käsikirja. Antti Laaksonen Kisakoodarin käsikirja Antti Laaksonen 4. helmikuuta 06 ii Sisältö Alkusanat v I Perusasiat Johdanto Aikavaativuus 9 Järjestäminen 7 4 Tietorakenteet 5 Peruuttava haku 6 Ahneet algoritmit 5 7 Dynaaminen

Lisätiedot

Tietorakenteet ja algoritmit I TRAI 29.8.2011/SJ Luentomuistiinpanoja

Tietorakenteet ja algoritmit I TRAI 29.8.2011/SJ Luentomuistiinpanoja Tietorakenteet ja algoritmit I Luentomuistiinpanoja Simo Juvaste Asko Niemeläinen Itä-Suomen yliopisto Tietojenkäsittelytiede Alkusanat Tämä moniste perustuu valtaosaltaan aiemman Tietorakenteet ja algoritmit

Lisätiedot

Luku 1. Ohjelmointitekniikka. 1.1 Kielen valinta

Luku 1. Ohjelmointitekniikka. 1.1 Kielen valinta Osa I Perusasiat 1 Luku 1 Ohjelmointitekniikka Kisakoodaus eroaa monella tavalla perinteisestä ohjelmoinnista. Koodit ovat lyhyitä, syötteet ja tulosteet on määritelty tarkasti, eikä koodeja tarvitse

Lisätiedot

Liite 2: Verkot ja todennäköisyyslaskenta

Liite 2: Verkot ja todennäköisyyslaskenta Ilkka Mellin Todennäköisyyslaskenta Liite 2: Verkot ja todennäköisyyslaskenta Verkot TKK (c) Ilkka Mellin (2007) 1 Verkko eli graafi: Määritelmä 1/2 Verkko eli graafi muodostuu pisteiden joukosta V, särmien

Lisätiedot

Voidaanko verkkoteoriaa opettaa lukiolaisille?

Voidaanko verkkoteoriaa opettaa lukiolaisille? Voidaanko verkkoteoriaa opettaa lukiolaisille? Tuotetun oppimateriaalin analysointia aiheesta painotetut verkot Pro gradu -tutkielma Mika Koponen Itä-Suomen yliopisto Fysiikan ja matematiikan laitos 1.

Lisätiedot

Luento 2: Tiedostot ja tiedon varastointi

Luento 2: Tiedostot ja tiedon varastointi HELIA 1 (19) Luento 2: Tiedostot ja tiedon varastointi Muistit... 2 Päämuisti (Primary storage)... 2 Apumuisti (Secondary storage)... 2 Tiedon tallennuksen yksiköitä... 3 Looginen taso... 3 Fyysinen taso...

Lisätiedot

Energiatehokkaista reititysmenetelmistä

Energiatehokkaista reititysmenetelmistä Energiatehokkaista reititysmenetelmistä Olli Pottonen 21. helmikuuta 2005 1 Johdanto Tässä paperissa esitellään lyhyehkösti kaksi reititysmenetelmää. max-min zp min - algoritmin ovat kehittäneet Li, Aslam

Lisätiedot

4. Perustietorakenteet

4. Perustietorakenteet 4. Perustietorakenteet Tässä osassa käsitellään erilaisia tietorakenteita, joita algoritmit käyttävät toimintansa perustana. Aluksi käydään läpi tietorakenteen abstrakti määritelmä. Tämän jälkeen käsitellään

Lisätiedot

MAY1 Tehtävien ratkaisut Kustannusosakeyhtiö Otava päivitetty 12.4.2016 Julkaiseminen sallittu vain koulun suljetussa verkossa.

MAY1 Tehtävien ratkaisut Kustannusosakeyhtiö Otava päivitetty 12.4.2016 Julkaiseminen sallittu vain koulun suljetussa verkossa. KERTAUS Lukujono KERTAUSTEHTÄVIÄ K1. Ratkaisussa annetaan esimerkit mahdollisista säännöistä. a) Jatketaan lukujonoa: 2, 4, 6, 8, 10, 12, 14, 16, Rekursiivinen sääntö on, että lukujonon ensimmäinen jäsen

Lisätiedot

1. Algoritmi 1.1 Sisällys Algoritmin määritelmä. Aiheen pariin johdatteleva esimerkki. Muuttujat ja operaatiot (sijoitus, aritmetiikka ja vertailu). Algoritmista ohjelmaksi. 1.2 Algoritmin määritelmä Ohjelmointi

Lisätiedot

Tietorakenteet ja algoritmit Hakurakenteet Ari Korhonen

Tietorakenteet ja algoritmit Hakurakenteet Ari Korhonen Tietorakenteet ja algoritmit Hakurakenteet Ari Korhonen 27.10. & 3.11.2015 Tietorakenteet ja algoritmit - syksy 2015 1 8. HAKURAKENTEET (dictionaries) 8.1 Haku (vrt. sanakirjahaku) 8.2 Listat tallennusrakenteina

Lisätiedot

Ohjelmoinnin peruskurssi Y1

Ohjelmoinnin peruskurssi Y1 Ohjelmoinnin peruskurssi Y1 CSE-A1111 30.9.2015 CSE-A1111 Ohjelmoinnin peruskurssi Y1 30.9.2015 1 / 27 Mahdollisuus antaa luentopalautetta Goblinissa vasemmassa reunassa olevassa valikossa on valinta Luentopalaute.

Lisätiedot

5.2 Eulerin kehät ja -polut

5.2 Eulerin kehät ja -polut 5.2 Eulerin kehät ja -polut Königsbergin sillat: onko mahdollista tehdä (kuivin jaloin) kävelyretki siten, että jokainen silta kuljetaan tasan kerran Eulerin polku on verkon polku, joka kulkee jokaisen

Lisätiedot

Lähteet. OHJ-2010 TIETORAKENTEIDEN KÄYTTÖ lukuvuosi 2012-2013 Terhi Kilamo

Lähteet. OHJ-2010 TIETORAKENTEIDEN KÄYTTÖ lukuvuosi 2012-2013 Terhi Kilamo OHJ-2010 Tietorakenteiden käyttö 1 OHJ-2010 TIETORAKENTEIDEN KÄYTTÖ lukuvuosi 2012-2013 Terhi Kilamo OHJ-2010 Tietorakenteiden käyttö 2 Lähteet Luentomoniste pohjautuu vahvasti Antti Valmarin luentomonisteeseen

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

Kytkentäkentän teknologia

Kytkentäkentän teknologia Kytkentäkentän teknologia Kertaus kentän rakenteeseen vaikuttavat teknologiset tekijät Huom. tätä ei löydy kirjasta! Rka/ML -k000 Tiedonvälitystekniikka I 9 - Kertaus - Tilaporras - esimerkki Tilakytkin

Lisätiedot