Harjoitus 1 (20.3.2014)



Samankaltaiset tiedostot
Harjoitus 1 ( )

Malliratkaisut Demot

Malliratkaisut Demot

Harjoitus 3 ( )

Harjoitus 3 ( )

Malliratkaisut Demot

Malliratkaisut Demot

Harjoitus 2 ( )

Harjoitus 2 ( )

Harjoitus 4 ( )

Harjoitus 5 ( )

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

Malliratkaisut Demot

Harjoitus 5 ( )

FORD ST _ST_Range_V2_ MY.indd FC1-FC3 27/06/ :24:01

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

Harjoitus 6 ( )

Harjoitus 6 ( )

Matemaattinen optimointi II

13 Lyhimmät painotetut polut

Ovatko seuraavat väittämät oikein vai väärin? Perustele vastauksesi.

Malliratkaisut Demot

Algoritmit 1. Luento 13 Ti Timo Männikkö

Malliratkaisut Demot 6,

Johdatus graafiteoriaan

Algoritmit 1. Luento 8 Ke Timo Männikkö

Malliratkaisut Demot


Johdatus verkkoteoriaan 4. luento

v 8 v 9 v 5 C v 3 v 4


T : Max-flow / min-cut -ongelmat

Algoritmit 1. Luento 9 Ti Timo Männikkö

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

Tentissä on viisi tehtävää, jotka arvosteellaan asteikolla 0-6. Tehtävien alakohdat ovat keskenään samanarvoisia ellei toisin mainita.

10. Painotetut graafit

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

Kokonaislukuoptimointi hissiryhmän ohjauksessa

Malliratkaisut Demot

Mat Lineaarinen ohjelmointi

Algoritmit 1. Luento 14 Ke Timo Männikkö

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

KKT: log p i v 1 + v 2 x i = 0, i = 1,...,n.

Luento 4: Lineaarisen tehtävän duaali

Malliratkaisut Demo 1

Liite 2: Verkot ja todennäköisyyslaskenta

Algoritmit 2. Luento 11 Ti Timo Männikkö

Jälki- ja herkkyysanalyysi. Tutkitaan eri kertoimien ja vakioiden arvoissa tapahtuvien muutosten vaikutusta optimiratkaisuun

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

Luento 5: Peliteoriaa

Joonas Haapala Ohjaaja: DI Heikki Puustinen Valvoja: Prof. Kai Virtanen

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

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


Algoritmit 1. Luento 13 Ma Timo Männikkö

6. Luennon sisältö. Lineaarisen optimoinnin duaaliteoriaa

min x x2 2 x 1 + x 2 1 = 0 (1) 2x1 1, h = f = 4x 2 2x1 + v = 0 4x 2 + v = 0 min x x3 2 x1 = ± v/3 = ±a x 2 = ± v/3 = ±a, a > 0 0 6x 2

Luku 7. Verkkoalgoritmit. 7.1 Määritelmiä

Algoritmit 2. Luento 12 Ke Timo Männikkö

Käyttöopas yksityisautolle Android, ios ABAX MOBIILI

Trimmitysongelman LP-relaksaation ratkaiseminen sarakkeita generoivalla algoritmilla ja brute-force-menetelmällä

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

Mat Lineaarinen ohjelmointi

PARITUS KAKSIJAKOISESSA

Lyhin kahden solmun välinen polku

Konsensusongelma hajautetuissa järjestelmissä. Niko Välimäki Hajautetut algoritmit -seminaari

811312A Tietorakenteet ja algoritmit, VI Algoritmien suunnitteluparadigmoja

A TIETORAKENTEET JA ALGORITMIT

Mat Lineaarinen ohjelmointi

Algoritmit 2. Luento 13 Ti Timo Männikkö

Kiinalaisen postimiehen ongelma

Osakesalkun optimointi. Anni Halkola Turun yliopisto 2016

811312A Tietorakenteet ja algoritmit Kertausta jälkiosasta

Trigonometrian kaavat 1/6 Sisältö ESITIEDOT: trigonometriset funktiot

Lineaarisen kokonaislukuoptimointitehtävän ratkaiseminen

Lineaarinen optimointi. Harjoitus 6-7, Olkoon A R m n, x, c R ja b R m. Osoita, että LP-tehtävän. c T x = min!

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

Esimerkkejä polynomisista ja ei-polynomisista ongelmista

LAUSEKKEET JA NIIDEN MUUNTAMINEN

Matematiikan tukikurssi

Yleinen paikallinen vakautuva synkronointialgoritmi

Numeeriset menetelmät

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

Harjoitus 4: Matlab - Optimization Toolbox

Algoritmit 2. Demot Timo Männikkö

6.4. Järjestyssuhteet

Iteratiiviset ratkaisumenetelmät

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

Johdatus verkkoteoriaan luento Netspace

Luento 1: Optimointimallin muodostaminen; optimointitehtävien luokittelu

811312A Tietorakenteet ja algoritmit Kertausta jälkiosasta

A TIETORAKENTEET JA ALGORITMIT

FORD KA KA_202054_V5_2013_Cover.indd /06/ :59

Algoritmit 2. Luento 13 Ti Timo Männikkö

1 Komparatiivinen statiikka ja implisiittifunktiolause

1 2 x2 + 1 dx. (2p) x + 2dx. Kummankin integraalin laskeminen oikein (vastaukset 12 ja 20 ) antaa erikseen (2p) (integraalifunktiot

Rinnakkaistietokoneet luento S

Pakkauksen sisältö: Sire e ni

8. Ensimmäisen käyvän kantaratkaisun haku

7.4. Eulerin graafit 1 / 22

Transkriptio:

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) 1 157(2) 75(1) 142(4) 3 4 199(2) Kuva 1: Tehtävän 1 graafi. a) Tehtävänä on ratkaista Bellman Ford-algoritmilla lyhimmät reitit Turusta muihin kaupunkeihin sekä lyhin reitti Turusta Jyväskylään. Bellman Ford-algoritmi määritellään kaavoilla 0, k = s v 0 [k] =, muulloin v t [k] = min {v t 1 [i] + c ik (i, k) E} = v t 1 [l] + c lk, d[k] l, missä k = 1, 2, 3, 4, 5. Algoritmin perusteella saadaan taulukot t v t [1] v t [2] v t [3] v t [4] v t [5] t d[1] d[2] d[3] d[4] [d5] 0 0 1 0 157 142 1 1 1 2 0 157 142 341 306 2 1 1 3 2 3 0 157 142 341 306 3 1 1 3 2 Vasemmassa taulukossa ei enää tapahdu muutosta sarakkeessa v t [5], kun verrataan kahta alinta riviä. Lyhin reitti Turusta Jyväskylään on d[5] = 2, d[2] = 1 eli Turku Tampere Jyväskylä. Reitin pituus on 306 km. 1

b) Tehtävänä on ratkaista Dijkstran algoritmilla nopeimmat reitit Turusta muihin kaupunkeihin sekä nopein reitti Turusta Jyväskylään. Dijkstran algoritmi määritellään kaavoilla 0, i = s v[i] =, muuten v[i] = min {v[i], v[p] + c pi }, d[i] p. Algoritmin perusteella saadaan taulukot p v[1] v[2] v[3] v[4] v[5] p d[1] d[2] d[3] d[4] d[5] 0 1 0 2 4 1 1 1 2 0 2 3 7 2 1 2 2 3 0 2 3 5 7 3 1 2 3 2 4 0 2 3 5 6 4 1 2 3 4 5 0 2 3 5 6 5 1 2 3 4 Nopein reitti Turusta Jyväskylään on d[5] = 4, d[4] = 3, d[3] = 2, d[2] = 1 eli Turku Tampere Hämeenlinna Imatra Jyväskylä. Tämän reitin kesto on 6 h. Tehtävä 2 Muotoillaan edellisen tehtävän nopeimman reitin ongelma Turusta (solmu 1) Jyväskylään (solmu 5) lineaariseksi optimointitehtäväksi, joka on muotoa min c ij x ij s.t. (i,j) E (i,l) E x il (l,j) E x ij 0, (i, j) E. 1, kun l = k x lj = 1, kun l = s 0, muulloin Ajosuunnat määräytyvät taulukon yläkolmion mukaan. Toisin sanoen Turusta ajetaan Tampereelle ja Hämeenlinnaan, Tampereelta Hämeenlinnaan ja Jyväskylään, Hämeenlinnasta Imatralle ja Jyväskylään sekä Imatralta Jyväskylään. Näin valitsemalla sijoittaen graafin nuolijoukko E, painot c ij sekä aloitussolmu s = 1 ja lopetussolmu k = 5 (1) 2

optimointitehtävään (1), saadaan optimointitehtävä min 2x 12 + 4x 13 + x 23 + 5x 25 + 2x 34 + 4x 35 + x 45 s. t. x 12 x 13 = 1 x 12 x 23 x 25 = 0 x 13 + x 23 x 34 x 35 = 0 (2) x 34 x 45 = 0 x 25 + x 35 + x 45 = 1 x 12, x 13, x 23, x 25, x 34, x 35, x 45 0. Tehtävän (1) duaali on max v k v s s.t. v j v i c ij, (i, j) E, joka sijoittamalla s, k ja E saadaan muotoon max v 5 v 1 s. t. v 2 v 1 2 v 3 v 1 4 v 3 v 2 1 v 5 v 2 5 v 4 v 3 2 v 5 v 3 4 v 5 v 4 1. Duaalissa voidaan valita v 1 = 0, jolloin saadaan max v 5 s. t. v 2 2 v 3 4 v 3 v 2 1 v 5 v 2 5 v 4 v 3 2 v 5 v 3 4 v 5 v 4 1. (3) Ratkaistaan duaalitehtävä (3) CPLEXillä, jolloin vastaukseksi tulee v 1 = 0, v 2 = 2, v 3 = 3, v 4 = 5 ja v 5 = 6. CPLEX antaa myös duaalitehtävän duaalin, eli primaalitehtävän (2) ratkaisun. Primaalitehtävän ratkaisuksi saamme x 12 = x 23 = x 34 = x 45 = 1, ja kohdefunktion arvoksi 6 joka on myös duaalitehtävän optimaalinen kohdefunktion arvo. Kyseessä on reitti Turku Tampere Hämeenlinna Imatra Jyväskylä ja sen pituus on 6 h. 3

Tehtävä 3 Lasketaan Floyd Warshall-algoritmilla Tehtävän 1 aineistoa käyttäen nopeimmat reitit kaupunkien välille ja selvitetään jälleen nopein reitti Turusta Jyväskylään. Jos kaupunkien välillä on yhteys, niin v 0 [k, l] c kl d[k, l] k. Jos taas kaupunkien välillä ei ole yhteyttä, niin 0, k = l v 0 [k, l], muulloin. Floyd Warshall-algoritmi määritellään kaavoilla v t [k, l] = min {v t 1 [k, l], v t 1 [k, t] + v t 1 [t, l]} d[k, l] d[t, l]. Seuraavissa taulukoissa on listattu lyhyimpien reittien pituudet v t [k, l] kunkin kierroksen t jälkeen. Edellisestä kierroksesta muuttuneet arvot on rengastettu. Vaiheessa t = 0 saadaan v 0 [k, l] l = 1 l = 2 l = 3 l = 4 l = 5 d[k, l] l = 1 l = 2 l = 3 l = 4 l = 5 k = 1 0 2 4 k = 1 1 1 k = 2 2 0 1 5 k = 2 2 2 2 k = 3 4 1 0 2 4 k = 3 3 3 3 3 k = 4 2 0 1 k = 4 4 4 k = 5 5 4 1 0 k = 5 5 5 5 Vaiheessa t = 1 saadaan v 1 [k, l] l = 1 l = 2 l = 3 l = 4 l = 5 d[k, l] l = 1 l = 2 l = 3 l = 4 l = 5 k = 1 0 2 4 k = 1 1 1 k = 2 2 0 1 5 k = 2 2 2 2 k = 3 4 1 0 2 4 k = 3 3 3 3 3 k = 4 2 0 1 k = 4 4 4 k = 5 5 4 1 0 k = 5 5 5 5 Vaiheessa t = 2 saadaan v 2 [k, l] l = 1 l = 2 l = 3 l = 4 l = 5 d[k, l] l = 1 l = 2 l = 3 l = 4 l = 5 k = 1 0 2 3 7 k = 1 1 2 2 k = 2 2 0 1 5 k = 2 2 2 2 k = 3 3 1 0 2 4 k = 3 2 3 3 3 k = 4 2 0 1 k = 4 4 4 k = 5 7 5 4 1 0 k = 5 2 5 5 5 4

Vaiheessa t = 3 saadaan v 3 [k, l] l = 1 l = 2 l = 3 l = 4 l = 5 d[k, l] l = 1 l = 2 l = 3 l = 4 l = 5 k = 1 0 2 3 5 7 k = 1 1 2 3 2 k = 2 2 0 1 3 5 k = 2 2 2 3 2 k = 3 3 1 0 2 4 k = 3 2 3 3 3 k = 4 5 3 2 0 1 k = 4 2 3 4 4 k = 5 7 5 4 1 0 k = 5 2 5 5 5 Vaiheessa t = 4 saadaan v 4 [k, l] l = 1 l = 2 l = 3 l = 4 l = 5 d[k, l] l = 1 l = 2 l = 3 l = 4 l = 5 k = 1 0 2 3 5 6 k = 1 1 2 3 4 k = 2 2 0 1 3 4 k = 2 2 2 3 4 k = 3 3 1 0 2 3 k = 3 2 3 3 4 k = 4 5 3 2 0 1 k = 4 2 3 4 4 k = 5 6 4 3 1 0 k = 5 2 3 4 5 Vaiheessa t = 5 saadaan v 5 [k, l] l = 1 l = 2 l = 3 l = 4 l = 5 d[k, l] l = 1 l = 2 l = 3 l = 4 l = 5 k = 1 0 2 3 5 6 k = 1 1 2 3 4 k = 2 2 0 1 3 4 k = 2 2 2 3 4 k = 3 3 1 0 2 3 k = 3 2 3 3 4 k = 4 5 3 2 0 1 k = 4 2 3 4 4 k = 5 6 4 3 1 0 k = 5 2 3 4 5 Nopein reitti Turusta Jyväskylään on nytkin d[1, 5] = 4, d[1, 4] = 3, d[1, 3] = 2, d[1, 2] = 1. Reittiä voidaan merkitä myös 1 2 3 4 5. Kyseinen reitti on Turku Tampere Hämeenlinna Imatra Jyväskylä, ja sen kesto on 6 h. Tehtävä 4 Tulostimen ostohinta on 200 euroa. Käyttökustannukset vuosina 1 5 ovat 100, 150, 200, ja 350 euroa. Olkoon solmu i päätöstilanne vuoden i alussa. Piirretään graafi, jossa on solmut 1, 2, 3, 4, 5 ja 6. Nuolten painoiksi asetetaan c i,i+1 = 200 + 100 = c i,i+2 = 200 + 100 + 150 = c i,i+3 = 200 + 100 + 150 + 200 = 650 c i,i+4 = 200 + 100 + 150 + 200 + = 950 c i,i+5 = 200 + 100 + 150 + 200 + + 350 = 1. Tehtävänä on etsiä lyhin reitti solmusta 1 solmuun 6. 5

2 3 1 950 650 650 4 1 950 650 6 5 Kuva 2: Tehtävän 4 graafi. Tehtävä 5 Edellinen tehtävä voidaan ratkaista mm. Bellman-Fordin, Floyd-Warshallin tai Dijkstran algoritmilla. Kyseessä on syklitön suunnattu verkko, joten algoritmi 1.17 (lyhimmät tiet syklittömässä verkossa) on myös mahdollinen ja vaihtoehdoista myös tehokkain. Vertailun vuoksi alla on listattu niiden taulukoiden koot joiden laskemisen kunkin luentomonisteen algoritmin suoritus vaatii. 1.8 (Bellman Ford) Yksi kokoa 6 6 oleva taulukko ja edeltäjätaulukko. 1.11 (Floyd Warshall) 7 kappaletta kokoa 6 6 olevia taulukoita ja edeltäjätaulukot. 1.14 (Dijkstra) Yksi kokoa 7 6 oleva taulukko ja edeltäjätaulukko. 1.17 (Lyhimmät tiet syklittömässä verkossa) Yksi kokoa 2 6 oleva taulukko sisältäen edeltäjätaulukon. Algoritmi 1.17 määritellään kaavoilla v[s] 0 v[p] = min i d[p] l. Algoritmia käyttäen saadaan {v[i] + c ip (i, p) E} = v[l] + c ip v[i] d[i] v[1] = 0 v[2] = d[2] = 1 v[3] = min {, + } = d[3] = 1 v[4] = min {650, +, + } = 650 d[4] = 1 v[5] = min {950, + 650, +, 650 + } = 900 d[5] = 3 v[6] = min {1, + 950, + 650, 650 +, 900 + } = 1100 d[6] = 3 tai d[6] = 4 Ossi Opiskelijan kannattaa ostaa uusi tulostin kolmannen tai neljännen opiskeluvuoden alussa. 6