Luku 7. Verkkoalgoritmit. 7.1 Määritelmiä



Samankaltaiset tiedostot
Algoritmit 1. Luento 8 Ke Timo Männikkö

58131 Tietorakenteet ja algoritmit (syksy 2015) Toinen välikoe, malliratkaisut

V. V. Vazirani: Approximation Algorithms, luvut 3-4 Matti Kääriäinen

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

811312A Tietorakenteet ja algoritmit Kertausta jälkiosasta

Algoritmi on periaatteellisella tasolla seuraava:

58131 Tietorakenteet ja algoritmit Uusinta- ja erilliskoe ratkaisuja (Jyrki Kivinen)

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

811312A Tietorakenteet ja algoritmit Kertausta jälkiosasta

Algoritmit 1. Luento 13 Ti Timo Männikkö

Algoritmit 1. Luento 9 Ti Timo Männikkö

Johdatus graafiteoriaan

13 Lyhimmät painotetut polut

Johdatus graafiteoriaan

Eräs keskeinen algoritmien suunnittelutekniikka on. Palauta ongelma johonkin tunnettuun verkko-ongelmaan.

Diskreetit rakenteet

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

TKT20001 Tietorakenteet ja algoritmit Erilliskoe , malliratkaisut (Jyrki Kivinen)

811312A Tietorakenteet ja algoritmit V Verkkojen algoritmeja Osa 2 : Kruskalin ja Dijkstran algoritmit

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

Oikeasta tosi-epätosi -väittämästä saa pisteen, ja hyvästä perustelusta toisen.

AVL-puut. eräs tapa tasapainottaa binäärihakupuu siten, että korkeus on O(log n) kun puussa on n avainta

Algoritmit 2. Luento 6 To Timo Männikkö

A TIETORAKENTEET JA ALGORITMIT

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

A TIETORAKENTEET JA ALGORITMIT

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

58131 Tietorakenteet ja algoritmit (kevät 2014) Uusinta- ja erilliskoe, , vastauksia

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.

Algoritmit 2. Luento 11 Ti Timo Männikkö

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

Pienin virittävä puu (minimum spanning tree)

TIE Tietorakenteet ja algoritmit 261

Luku 8. Aluekyselyt. 8.1 Summataulukko

Hakupuut. tässä luvussa tarkastelemme puita tiedon tallennusrakenteina

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

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

Malliratkaisut Demot

Tietorakenteet, esimerkkivastauksia viikon 12 laskareihin

Tietorakenteet ja algoritmit. Verkot. Ari Korhonen

10. Painotetut graafit

58131 Tietorakenteet Erilliskoe , ratkaisuja (Jyrki Kivinen)

Algoritmit 1. Luento 13 Ma Timo Männikkö

Algoritmit 2. Luento 6 Ke Timo Männikkö

Algoritmit 1. Luento 7 Ti Timo Männikkö

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

Englannin lausekerakenteita ja taulukkojäsentäminen

v 8 v 9 v 5 C v 3 v 4

Valitaan alkio x 1 A B ja merkitään A 1 = A { x 1 }. Perinnöllisyyden nojalla A 1 I.

isomeerejä yhteensä yhdeksän kappaletta.

A ja B pelaavat sarjan pelejä. Sarjan voittaja on se, joka ensin voittaa n peliä.

Datatähti 2019 loppu

Johdatus verkkoteoriaan 4. luento

Algoritmit 2. Luento 2 Ke Timo Männikkö

811312A Tietorakenteet ja algoritmit, , Harjoitus 6, Ratkaisu

Algoritmit 1. Luento 14 Ke Timo Männikkö

Algoritmit 2. Luento 2 To Timo Männikkö

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

Ei-yhteydettömät kielet [Sipser luku 2.3]

A TIETORAKENTEET JA ALGORITMIT

58131 Tietorakenteet ja algoritmit Uusinta- ja erilliskoe malliratkaisut ja arvosteluperusteet

Tietorakenteet, laskuharjoitus 7, ratkaisuja

58131 Tietorakenteet (kevät 2009) Harjoitus 11, ratkaisuja (Topi Musto)

Verkon värittämistä hajautetuilla algoritmeilla

Lyhin kahden solmun välinen polku

Tietorakenteet, esimerkkivastauksia viikon 12 laskareihin

OULUN YLIOPISTO, BIOLOGIAN LAITOS Puututkimus

Puiden karakterisointi

811312A Tietorakenteet ja algoritmit, , Harjoitus 6, Ratkaisu

PARITUS KAKSIJAKOISESSA

58131 Tietorakenteet (kevät 2009) Harjoitus 6, ratkaisuja (Antti Laaksonen)

v 1 v 2 v 3 v 4 d lapsisolmua d 1 avainta lapsen v i alipuun avaimet k i 1 ja k i k 0 =, k d = Sisäsolmuissa vähint. yksi avain vähint.

Esimerkkejä polynomisista ja ei-polynomisista ongelmista

Yleinen paikallinen vakautuva synkronointialgoritmi

verkkojen G ja H välinen isomorfismi. Nyt kuvaus f on bijektio, joka säilyttää kyseisissä verkoissa esiintyvät särmät, joten pari

Harjoitus 4 ( )

Markov-ketjut pitkällä aikavälillä

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

Graafin virittävä puu 1 / 20

Paikkatiedon käsittely 6. Kyselyn käsittely

Rakenteellinen tasapaino ja transitiivisyys

Johdatus verkkoteoriaan luento Netspace

Liite 2: Verkot ja todennäköisyyslaskenta

9. Graafit Graafin abstrakti tietotyyppi

Harjoitus 3 ( )

VERKKOTEORIAN ALKEITA. Martti E. Pesonen

Kustannustehokkaat riskienhallintatoimenpiteet kuljetusverkostossa (Valmiin työn esittely)

Mat Lineaarinen ohjelmointi

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

Tiraka, yhteenveto tenttiinlukua varten

6. Approksimointialgoritmit

Algoritmit 2. Luento 12 Ke Timo Männikkö

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

Verkon virittävät puut

Algoritmit 2. Luento 5 Ti Timo Männikkö

TIE448 Kääntäjätekniikka, syksy Antti-Juhani Kaijanaho. 9. marraskuuta 2009

Verkkojen värittäminen

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

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

Tehtävä 10 : 1. Tehtävä 10 : 2

Transkriptio:

Luku 7 Verkkoalgoritmit Verkot soveltuvat monenlaisten ohjelmointiongelmien mallintamiseen. Tyypillinen esimerkki verkosta on tieverkosto, jonka rakenne muistuttaa luonnostaan verkkoa. Joskus taas verkko kätkeytyy syvemmälle ongelmaan, eikä sen huomaaminen ole aina helppoa. Tämä luku esittelee verkkoihin liittyviä peruskäsitteitä sekä joukon tärkeitä algoritmeja. 7. Määritelmiä Verkko on tietorakenne, joka muodostuu solmuista ja niitä yhdistävistä kaarista. Esimerkiksi tieverkostossa verkon solmut ovat kaupunkeja ja kaaret ovat niiden välisiä teitä. Seuraavassa on yksinkertainen verkko, johon kuuluu solmua ja 7 kaarta: Polku on verkon kaaria pitkin kulkeva reitti kahden verkon solmun välillä. Yllä olevassa verkossa solmusta solmuun on esimerkiksi polut ja 3 2. Solmun naapuri on toinen solmu, johon solmusta pääsee kaarta pitkin, ja solmun aste on sen naapurien määrä. Yllä olevassa verkossa solmun 2 naapurit ovat, ja ja sen aste on 3. 60

LUKU 7. VERKKOALGORITMIT 6 Yhtenäisyys Verkko on yhtenäinen, jos minkä tahansa kahden solmun välillä on polku. Esimerkiksi tieverkosto on yhtenäinen, jos kaikista verkostoon kuuluvista kaupungeista pääsee toisiinsa teitä pitkin. Tässä on esimerkki yhtenäisestä verkosta: Seuraava verkko ei ole yhtenäinen, koska solmu on erillään muista. Komponentit Verkon yhtenäiset osat muodostavat sen komponentit. Esimerkiksi seuraavassa verkossa on kolme komponenttia: {, 2, 3}, {,, 6, 7} ja {8}. 8 3 6 7

LUKU 7. VERKKOALGORITMIT 62 Syklit Sykli on polku, jonka alku- ja loppusolmu on sama ja jossa ei ole samaa kaarta monta kertaa. Verkko on syklinen, jos siinä on sykli, ja muuten syklitön. Seuraava verkko on syklinen, koska siinä on sykli 2. Seuraava verkko taas on syklitön: Kaarten suunnat Verkko on suunnattu, jos verkon kaaria pystyy kulkemaan vain niiden merkittyyn suuntaan. Seuraavassa on esimerkki suunnatusta verkosta: Tässä verkossa on esimerkiksi polku 3 2 sekä sykli 2 2. Solmuun 3 ei pääse mistään muusta solmusta, ja vastaavasti solmusta ei pääse mihinkään muuhun solmuun. Jos verkon kaarilla ei ole suuntaa, niin verkko on suuntaamaton. Toisaalta suuntaamattoman verkon voi tulkita suunnatuksi verkoksi niin, että jokaisen kaaren tilalla on kaaret molempiin suuntiin.

LUKU 7. VERKKOALGORITMIT 63 Kaarten painot Verkko on painotettu, jos verkon kaariin liittyy painoja. Tavallinen tulkinta on, että painot kuvaavat kuvaavat matkoja solmujen välillä. Seuraavassa on esimerkki painotetusta verkosta: 7 3 Polun pituus saadaan laskemalla yhteen siihen kuuluvien kaarten painot. Esimerkiksi polun 2 pituus on +=9 ja polun 3 pituus on +7=8. Jälkimmäinen polku on lyhin polku solmusta solmuun. Jos verkon kaarilla ei ole painoja, niin verkko on painottamaton. Tilannetta voi ajatella myös niin, että jokaisen kaaren paino on. Kaksijakoisuus Verkko on kaksijakoinen, jos sen solmut voi värittää kahdella värillä niin, ettei minkään kaaren molemmissa päissä ole samanväristä solmua. Esimerkiksi seuraava verkko on kaksijakoinen, koska verkolle saa halutunlaisen värityksen esimerkiksi värittämällä solmut, 2 ja 6 mustiksi ja solmut 3, ja valkoisiksi. 2 3 6 Kaksijakoisuuden ehtona on, ettei verkossa ole parittoman pituista sykliä. Tällaista sykliä ei ole mahdollista värittää kahdella värillä niin, että kaikki vierekkäin olevat solmut ovat eri värisiä.

LUKU 7. VERKKOALGORITMIT 6 Puu Verkko on puu, jos se on yhtenäinen, syklitön ja suuntaamaton. Esimerkiksi seuraava verkko on puu: 2 3 6 7 Puussa kaarten määrä on aina yhden pienempi kuin solmujen määrä. Jos puuhun lisää yhden kaaren, siihen tulee sykli, ja jos siitä poistaa yhden kaaren, se ei ole enää yhtenäinen. Lisäksi puussa jokaisen solmuparin välillä on yksikäsitteinen polku. Puu esitetään usein niin, että yksi solmuista nostetaan puun juureksi ja muut sijoittuvat tasoittain sen alapuolelle. Esimerkiksi jos äskeisessä verkossa solmusta 2 tehdään juuri, tulos on tämä: 2 6 3 7 Juurimuodossa puun korkeus on sen tasojen määrä, eli tämän puun korkeus on 3. Solmun lapset ovat sen alemman tason naapurit ja vanhempi on sen ylemmän tason naapuri. Esimerkiksi solmun lapset ovat solmut ja ja sen vanhempi on solmu 2. Jos solmulla ei ole lapsia, se on lehti. Tässä puussa solmut,, 6 ja 7 ovat lehtiä. Puut tulevat vastaan monissa yhteyksissä algoritmeissa. Tässä kirjassa sovelluksia puista ovat olleet jo luvun tietorakenteet binääripuu ja keko sekä luvun hakualgoritmien rekursiivinen toiminta.