Matemaattinen optimointi II

Koko: px
Aloita esitys sivulta:

Download "Matemaattinen optimointi II"

Transkriptio

1 Matemaattinen optimointi II Marko M. Mäkelä Turun yliopisto Matematiikan ja tilastotieteen laitos Kevät 21

2 Sisältö Esipuhe 1 1 Lyhimmät tiet ja diskreetti dynaaminen optimointi Lyhimmän tien ongelmia Lyhimmät tiet dynaamisella optimoinnilla Lyhimmät tiet jostakin solmusta kaikkiin muihin Lyhimmät tiet kaikkien solmuparien välillä Etäisyydet solmusta muihin ei-negatiivisten painojen tapauksessa Lyhimmät tiet solmusta muihin syklittömässä verkossa Projektin valvonta ja pisimmät tiet Diskreetti dynaaminen optimointi Virtaukset verkossa Minimikustannusvirtausongelma Kulkusuunnat ketjuissa Perusalgoritmi minimikustannusvirtausongelman ratkaisemiseksi Minimikustannusvirtausongelman ratkaisujen jaollisuus Kuljetus- ja järjestelyongelmat Muita yhden tuotteen virtausongelmia Simplex-algoritmi verkoille Monen tuotteen virtaukset sekä lisääntyvät ja vähenevät virtaukset Diskreetit optimointimallit 68.1 Kokkareiset lineaariset optimointitehtävät Selkäreppu- ja budjetointimallit Pakkaus-, peitto- ja ositusmallit Järjestely- ja paritusongelmat Kauppamatkustaja- ja reititysongelmat Sijoittelu ja verkon suunnittelu Töidenjärjestelyongelmat Paloittain lineaarinen approksimointi Diskreetit optimointimenetelmät Täydellinen luettelointi Relaksaatiomenetelmä Tiukat relaksaatiot Branch and Bound Branch and bound -algoritmin tehostamistapoja Parantava hakuheuristiikka

3 4.7 Tabuhaku, simuloitu jäähdytys ja geneettiset algoritmit Konstruktiiviset heuristiikat Kirjallisuutta 148 2

4 Esipuhe Matemaattinen optimointi II on suoraa jatkoa kurssille Matemaattinen optimointi I, jossa käsiteltiin lähinnä jatkuvaa lineaarista optimointia. Tällä kurssilla keskitytään puolestaan diskreettiin lineaariseen optimointiin, jolla on vahvat yhteydet graafi- ja verkostoteoriaan. Luentomoniste perustuu emeritusprofessori Timo Leipälän vuonna 28 kirjoittamaan erinomaiseen monisteeseen [1]. Kyseisen monisteen pääasiallisena lähteenä on käytetty kirjan [2] lukuja Erityiskiitos Outi Wilpulle tekstin huolellisesta ladonnasta ja kuvien tuottamisesta. Turussa keväällä 212 Marko M. Mäkelä 1

5 1 Lyhimmät tiet ja diskreetti dynaaminen optimointi 1.1 Lyhimmän tien ongelmia Esimerkki 1.1. Tarkastellaan Littlevillen keskustaa, jossa on yksi- ja kaksisuuntaisia katuja ja kunkin risteyksen välille on estimoitu sen ajamiseen kuluva aika sekunteina. Liikennesuunnittelussa voidaan selvittää kyselytutkimuksilla automatkojen aloittamis- ja lopettamiskohdat, mutta autoilija ei voi ilmoittaa valitsemaansa reittiä ennen kuin tietää minkälaisia tulevat liikennejärjestelyt (etuajo-oikeudet, yksisuuntaisuudet jne.) ovat. Liikennesuunnittelijoiden on kuitenkin arvioitava eri päätösvaihtoehtoja varten kullakin kadunpätkällä kulkevien autojen määrää. Yksi arviointitapa on olettaa, että kaikki autoilijat toimivat rationaalisesti ja valitsevat aina lyhimmän reitin. Silloin analyysissa täytyy määrätä lyhin tie jokaisesta reitin aloituskohdasta jokaiseen reitin lopetuskohtaan Kuva 1: Littlevillen keskusta Katuverkostoa ja monia muitakin asioita voidaan abstrahoida esittämällä se graafina (Q, E), missä Q = q 1, q 2,... on solmujen ja E = e 1, e 2,... niitä yhdistävien kaarten e k = (q i, q j ) joukko. Kaari voi olla suuntaamaton tai suunnattu. Jälkimmäisessä tapauksessa sitä pitkin voi liikkua vain suuntaan q i q j ja silloin puhutaan usein nuolista. Tällöin q i on nuolen alkusolmu (tail) ja q j loppusolmu (head). Katuverkostossa solmut esittävät risteyksiä, jotka on selvyyden vuoksi numeroitu. Yksisuuntaista katua esittää suunnattu nuoli ja kaksisuuntaista suuntaamaton kaari. Koska kaaren merkintä ei ole yksikäsitteinen, voidaan sopia, että järjestysnumeroltaan pienempi solmu on ensimmäisenä. Mikäli nuolilla/kaarilla (i, j) on reaalilukupainot c ij niin kuin kuvassa 2, voidaan formuloida ja ratkaista erilaisia kvantitatiivisia optimointiongelmia ja puhutaan graafin asemasta verkosta. Tässä paino voi esittää kustannusta, 2

6 matkaa, aikaa jne. Esitellään seuraavat verkkoihin liittyvät käsitteet: Verkko on suunnattu, jos kaikki sen kaaret ovat suunnattuja nuolia. Verkko on suuntaamaton, jos kaikki sen kaaret ovat suuntaamattomia. Polku tai tie solmujen i ja j välillä on katkeamaton kaari- tai nuolijono (i, k 1 ), (k 1, k 2 ),...,(k p 1, k p ), (k p, j), joka yhdistää verkon solmut i ja j. Tässä nuolet on kuljettava oikeassa järjestyksessä eikä missään solmussa käydä kahdesti. Verkko on yhtenäinen, jos jokaisen solmuparin välillä on polku. Polun pituus on polkuun kuuluvien nuolien (kaarien) painojen summa. Syklistä puhutaan, jos polun alku- ja loppupiste ovat samoja ja p 1. Sykli on negatiivinen, jos sen pituus on negatiivinen. Silmukka on nuoli (i, i) solmusta i itseensä. Puu on yhtenäinen suuntaamaton verkko, jossa ei ole syklejä. Verkkojen avulla voidaan havainnollisesti esittää monenlaisia tärkeitä käytännön ongelmia. Lisäksi verkko-ongelmiksi pystytään hyvin usein pukemaan myös tehtäviä, joiden verkkorakenne ei ole sillä tavalla ilmeinen kuin edellisessä esimerkissä. Oleellista on se, että yllä olevan määritelmän mukaiset abstraktit käsitteet pystytään muodostamaan. Lyhimmän tien ongelmassa etsitään pituudeltaan lyhintä polkua kahden annetun solmun välillä ts. yritetään minimoida polun kaarten/nuolten painojen summaa Kuva 2: Littlevillen keskustan katuverkosto

7 Kuvan 2 verkossa saadaan esimerkiksi polut ja solmujen ja 8 välille. Sen sijaan ja eivät ole polkuja. Koska painona on nyt ajoaika, yritetään lyhimmän tien ongelmassa määrätä nopein reitti solmusta i solmuun j. Edellä olevien reittien ajoajat ovat nyt = 17 ja = 79 sekuntia. Esimerkkiongelmassa on sekä kaaria että nuolia, kaikki painot ovat ei-negatiivisia ja tavoitteena on ratkaista kaikkien solmuparien väliset lyhimmät reitit. Muitakin versioita lyhimmän tien ongelmasta tunnetaan ja niille on kehitelty erilaisia algoritmeja. Esimerkki 1.2. Ft. Worthissa sijaitseva kuljetusyritys jakelee tavaraa kuorma-autoissa kuvassa näkyviin kaupunkeihin. Kaupunkien etäisyydet on merkitty painoiksi. Jakelussa ei pysähdytä mihinkään välillä olevaan paikkaan vaan viedään koko lasti yhteen paikkaan. Kuljettajille maksetaan palkkaa lyhimmän etäisyyden mukaan, joten täytyy saada selville lyhimmät etäisyydet Ft. Worthista muihin kaupunkeihin. Muut lähtösolmut eivät nyt kiinnosta eikä tarvitse tietää optimaalisia reittejäkään, ainoastaan niiden pituudet ovat kiinnostavia. Verkko on nyt suuntaamaton. 1 Amarillo Lubbock 2 Ft. Worth Abilene Austin 4 San Angelo 8 El Paso Houston San Antonio 21 1 Corpus Christi 1 9 Kuva : Kuljetusyrityksen jakelukaupungit Esimerkki 1.. Sirkuksen kesäkiertue on päättynyt Lincolniin ja sen olisi palattava talvilepoon Tallahasseen lähelle. Kuvan 4 verkkoon on merkitty paluureitin varrella mahdollisesti olevia kaupunkeja ja niiden väliset siirtymiskustannukset tuhansina dollareina. Kussakin kaupungissa on mahdollista järjestää esityksiä ja niistä saatavat arvioidut tuotot tuhansina dollareina on merkitty kaupunkia esittävän solmun kohdalle. Pyritään siihen, että matkakustannukset olisivat mahdollisimman pienet, jolloin esimerkki poikkeaa aikaisemmista siinä, että nyt jokaisella solmulla on lukuarvona siitä saatava tuotto. Tässä 4

8 Lincoln, Wichita, Little Rock, Davenport 1, Springfield 1,. Chattanooga, Jackson 1, Montgomery 1, Tallahassee, 9 Kuva 4: Sirkuskiertueen reittimahdollisuudet tapauksessa saadaan suuntaamaton verkko, mutta jotta voidaan mallintaa solmuissa saatavat tuotot, täytyy aluksi muuntaa se suunnatuksi korvaamalla jokainen kaari kahdella suunnatulla nuolella. Koska kussakin solmussa voidaan käydä vain kerran, ei molempia Kuva : Sirkusesimerkin suunnattu verkko solmujen i ja j välisiä nuolia voida reitissä käyttää. Nyt solmujen tuotot voidaan mallin-

9 taa jakamalla kukin solmu i kahdeksi solmuksi i 1 ja i 2. Solmuun i 1 pantaisiin tulemaan kaikki solmuun i tulevat nuolet ja solmusta i 2 lähtemään kaikki solmusta i lähtevät nuolet. Solmusta i 1 solmuun i 2 pantaisiin vielä kulkemaan nuoli, jonka painona olisi solmusta i saatavan tuoton vastaluku. Yksinkertaisempi tapa on kuitenkin vähentää kustakin solmusta i lähtevän nuolen painosta solmusta i saatava tuotto Kuva 6: Sirkusesimerkin suunnattu verkko Vaikka tässä vähennetäänkin tuotto kaikista solmusta i lähtevistä nuolista, on huomattava, että kussakin polussa voi esiintyä korkeintaan yksi näistä. Verkko on nyt suunnattu ja myös negatiiviset painot ovat mahdollisia. Tavoitteena on määrätä lyhin reitti aloitussolmusta s solmuun k. Olkoon nyt tehtävänä määrätä lyhin tie solmusta s solmuun k suunnatussa verkossa. Otetaan käyttöön päätösmuuttuja { 1, jos optimireitti kulkee nuolta (i, j) pitkin x ij =, muuten. Ongelmasta saadaan binäärinen optimointitehtävä min s. t. i, j, (i,j) E i, (i,l) E c ij x ij x il j, (l,j) E x ij {, 1}, (i, j) E, 1, kun l = k x lj = 1, kun l = s, muulloin 6

10 mutta voidaan osoittaa, että sen kanssa identtisen ratkaisun tuottaa helpommin ratkaistava lineaarinen tehtävä min s. t. i, j, (i,j) E i, (i,l) E c ij x ij x il j, (l,j) E x ij, (i, j) E. 1, kun l = k x lj = 1, kun l = s, muulloin Tämä johtuu siitä, että kerroinmatriisi on nyt erikoista muotoa ja Simplex-algoritmissa jaetaan vain ykkösellä. Siksi ratkaisun täytyy olla kokonaisluku, ja ainoat mahdollisuudet ovat x ij = tai x ij = 1, joten erityistä kokonaislukuvaatimusta ei tarvita. Kun lasketaan kaikki varsinaiset rajoitukset yhteen, saadaan identiteetti =, joten ainakin yksi rajoituksista on muista riippuva ja voidaan poistaa. Voidaan osoittaa, että tasan yhden rajoituksen poistaminen riittää. Tehtävän duaali on max v k v s s. t. v j v i c ij, (i, j) E ja sitä käytetään ratkaisualgoritmeissa tehokkaasti hyväksi. Koska rajoituksista yksi oli muista riippuva, on myös yksi duaalimuuttujista muista riippuva ja usein valitaankin v s = ja ratkaistaan muut. Suure v i esittää silloin lyhimmän tien pituutta solmusta s solmuun i. 1.2 Lyhimmät tiet dynaamisella optimoinnilla Dynaaminen optimointi on menettely, jossa yksittäinen ongelma, kuten lyhin tie kiinnitetystä lähtösolmusta kiinnitettyyn tulosolmuun, ratkaistaan osana laajempaa ongelmaa, jossa selvitetään lyhimmät tiet lähtösolmusta kaikkiin solmuihin. Ratkaisu tapahtuu rakentamalla lyhintä tietä vaiheittain. Jos tarvitaan lyhimmät tiet kaikkiin solmuihin, käytetään seuraavia merkintöjä: v[k]: lyhimmän tien pituus lähtösolmusta solmuun k. Jos tällaista polkua ei ole olemassa, merkitään v[k] =, x ij [k] = { 1, jos optimireitti solmuun k kulkee nuolta (kaarta) (i, j) pitkin, muuten. Mikäli halutaankin lyhimmät tiet kaikista solmuista kaikkiin solmuihin, niin 7

11 v[k, l]: lyhimmän tien pituus solmusta k solmuun l. Jos tällaista polkua ei ole olemassa, merkitään v[k, l] =, x ij [k, l] = { 1, jos optimireitti solmusta k solmuun l kulkee nuolta (i, j) pitkin, muuten. Esimerkin 1.2 kuorma-auto-ongelmassa kulkee lyhin tie Ft. Worthista Corpus Christiin Austinin ja San Antonion kautta. Jos nyt olisi lyhempi tie Ft. Worthista San Antonioon kuin äskeisen reitin käyttämä, niin jatkamalla siitä Corpus Christiin saataisiin optimaalista reittiä lyhyempi reitti. Optimireitin osat ovat siis varmasti optimaalisia, jos kaikki painot ovat ei-negatiivisia. Negatiiviset painot tuottavat vaikeuksia silloin, kun verkossa on sykli, jonka pituus on negatiivinen. v 1 v v v 4 17 Kuva 7: Verkko, jossa negatiivinen sykli Esimerkki 1.4. Kuvan 7 verkossa lyhin tie solmusta 1 solmuun on 1 2. Kuitenkaan 1 2 ei ole optimireitti solmusta 1 solmuun 2 vaan se on Kun tästä yritetään saada optimireittiä jatkamalla solmusta 2 solmuun, niin saadaan ja tullaan solmuun toisen kerran eli saadaan sykli. Kun tästä reitistä jätetään pois sykli, jää jäljelle reitti 1, mutta sen pituus on 1 eikä se ole optimaalinen. Ongelmana on negatiivinen sykli 2 4 2, jonka pituus on = 1. Huomautus 1.. Mikäli verkossa on negatiivisia syklejä, lyhimmän tien määrääminen vaikeutuu oleellisesti. Oletetaan toistaiseksi ettei negatiivisia syklejä ole. Määritelmä 1.6. Dynaamisen optimoinnin optimaalisuusperiaate: jos lyhin tie s k kulkee solmun i kautta, niin se osa siitä, joka kulkee solmusta s solmuun i, on lyhin tie s i. Nyt saadaan rekursiiviset funktionaaliyhtälöt v[s] = v[k] = min i {v[i] + c ik (i, k) E}, k s, 8

12 joiden avulla lyhimmät reitit solmusta s solmuun k konstruoidaan optimaalisista reiteistä solmun k edeltäjäsolmuihin. Jos yhtään nuolta (i, k) E ei ole olemassa, sovitaan, että v[k] =. Kuorma-autoesimerkissä 1.2 lyhin reitti San Antonioon (solmu j = 7) on v[7] = min{v[6] + c 67, v[8] + c 87, v[9] + c 97, v[1] + c 1,7 } = min{v[6] + 21, v[8] + 79, v[9] + 199, v[1] + 1}. Lause 1.7. Kun verkossa ei ole negatiivisia syklejä, niin arvot v[k] ovat lyhimpien reittien pituuksia solmusta s solmuun k silloin ja vain silloin kun ne toteuttavat yllä olevat funktionaaliyhtälöt. Todistus. Ensin osoitetaan, että v[k] on jonkin reitin pituus. Nyt ja tässä v[k] = min{v[i] + c ik (i, k) E} = v[k p ] + c kp k i v[k p ] = min i {v[i] + c ikp (i, k p ) E} = v[k p 1 ] + c kp 1 k p. Sijoitetaan viimeksi saatu tulos edelliseen, josta seuraa Näin jatkaen lopulta v[k] = v[k p 1 ] + c kp 1 k p + c kp k. v[k] = v[s] + c sk1 + c k1 k c kp 1 k p + c kp k = c sk1 + c k1 k c kp 1 k p + c kp k, joten v[k] on polun s k 1 k 2... k p k pituus. Tarkastellaan sitten jotakin toista reittiä s l 1 l 2... l q k, jolloin funktionaaliyhtälöistä seuraa, että v[l 1 ] v[s] + c sl1. v[l 2 ] v[l 1 ] + c l1 l 2 Laskemalla nämä yhteen saadaan v[l q ] v[l q 1 ] + c lq 1 l q v[k] v[l q ] + c lqk. v[k] v[s] + c sl1 + c l1 l c lq 1 l q + c lqk = c sl1 + c l1 l c lq 1 l q + c lqk, joten tämän reitin pituus ei voi olla pienempi kuin v[k]. Mikäli halutaan lyhimmät tiet kustakin solmusta kuhunkin solmuun, muuttuvat funktionaaliyhtälöt muotoon v[k, k] =, k v[k, l] = min{c kl, {v[k, i] + v[i, l] i k, l}}, k l. 9

13 1. Lyhimmät tiet jostakin solmusta kaikkiin muihin Ratkaistaessa edellisen kohdan funktionaaliyhtälöitä tulee ongelmia silloin, kun verkossa on syklejä. Esimerkiksi jos siinä on sykli 1 2 1, niin saadaan laskukaavat v[1] = min{v[] + c 1,...} v[2] = min{v[1] + c 12,...} v[] = min{v[2] + c 2,...}, joista ei suoraan saada mitään irti. Bellman-Ford -algoritmilla voidaan kuitenkin määrätä lyhimmät tiet, jos negatiivisia syklejä ei ole. Siinä iteroidaan arvoja v[k] ja merkitään vaiheessa t saatua arvoa suureella v t [k]. Kun muutoksia ei tapahdu, saadaan optimaaliset arvot. Algoritmi 1.8. Bellman-Ford: lyhimmät tiet solmusta kaikkiin muihin Askel. Kun lähtösolmu on s, alustetaan etäisyydet. { v, kun k = s [k], muutoin. ja kierroslaskuri t 1. Askel 1. Kullekin solmulle k Q, k s lasketaan v t [k] min i {v t 1 [i] + c ik (i, k) E} = v t 1 [l] + c lk. Mikäli v t [k] < v t 1 [k], niin asetetaan d[k] l. Askel 2. Lopetetaan, jos v t [k] = v t 1 [k] jokaiselle solmulle k tai mikäli t on verkon solmujen lukumäärä. Edellisessä tapauksessa ilmoittavat arvot v t [k] optimaalisten reittien pituudet solmuihin k ja jälkimmäisessä tapauksessa on verkossa negatiivinen sykli. Askel. Päivitetään kierroslaskuria t t + 1 ja palataan askeleeseen 1. Algoritmin tuottama d[k] ilmoittaa solmua k edeltävän solmun lyhimmällä tiellä solmusta s solmuun k. Esimerkki 1.9. Kun sovelletaan Bellman-Ford -algoritmia sirkusesimerkkiin 1., saadaan lyhimpien teiden pituudet 1

14 t v t [1] v t [2] v t [] v t [4] v t [] v t [6] v t [7] v t [8] v t [9] sekä solmujen optimaaliset edeltäjät t d[1] d[2] d[] d[4] d[] d[6] d[7] d[8] d[9] Kuvassa 8 on esitetty saadut optimireitit Kuva 8: Sirkusesimerkin optimireitit Jos se olisi ratkaistu luvussa 1.1 esitettynä lineaarisena optimointitehtävänä, olisi saatu optimireitti x 1 = x = x 7 = x 78 = x 89 = 1 sekä lisäksi degeneroituneet kantamuuttujat x 12 = x 24 = x 6 =. 11

15 Kun Bellman-Ford -algoritmista on suoritettu t vaihetta, saadaan lyhimpien teiden pituudet korrektisti niihin solmuihin, joihin pääsemiseksi tarvitaan korkeintaan t kaarta. Koska n solmuisessa verkossa olevassa polussa voi olla korkeintaan n 1 kaarta, voitaisiin lopettaa n 1 vaiheen jälkeen, jos negatiivisia syklejä ei ole. Mikäli verkossa on negatiivinen sykli, muuttuvat algoritmin antamat etäisyydet vielä vaiheessa n. Esimerkki 1.1. Sovellettaessa kuvan 7 negatiivisen syklin sisältäneeseen esimerkkiverkkoon Bellman-Ford -algoritmia, saadaan t v t [1] v t [2] v t [] v t [4] t d[1] d[2] d[] d[4] Algoritmi jää pyörimään negatiivisessa syklissä pienentäen siihen kuuluvien solmujen etäisyyksiä rajattomasti. Negatiivinen sykli saadaan konstruoitua vaiheessa n saaduista edeltäjäsolmuista, kun valitaan jokin siinä etäisyyttään muuttanut solmu ja selvitetään sen edeltäjä, edeltäjän edeltäjä jne. Esimerkissä solmujen 2 ja etäisyydet muuttuivat vaiheessa 4. Nyt d[2] = 4, d[4] = ja d[] = 2, joten negatiivinen sykli on Lyhimmät tiet kaikkien solmuparien välillä Kun halutaan esimerkin 1.1 tapaan lyhimmät tiet jokaisesta solmusta jokaiseen solmuun, voidaan käyttää Floyd-Warshall -algoritmia, jossa konstruoidaan optimireittejä kasvattaen välisolmujen määrää joka vaiheessa. Numeroidaan solmut perättäisillä kokonaisluvuilla alkaen numerosta 1 ja merkitään v t [k, l]: lyhimmän tien pituus solmusta k solmuun l, kun välisolmuina ovat solmut 1,..., t. d[k, l]: solmun l edeltäjäsolmu nykyisellä reitillä solmusta k solmuun l. Tällöin on luonteva valita v [k, l] = c kl. 12

16 Algoritmi Floyd-Warshall: etäisyydet kaikkien solmuparien välillä Askel. Numeroidaan solmut ykkösestä alkaen ja asetetaan kaikille kaarille (k, l) E v [k, l] c kl d[k, l] k. Mikäli kaarta (k, l) ei ole verkossa v [k, l] {, jos k = l, muulloin. Asetetaan vielä kierroslukuindeksiksi t 1. Askel 1. Kaikille solmuille k, l t päivitetään v t [k, l] min{v t 1 [k, l], v t 1 [k, t] + v t 1 [t, l]}. Mikäli v t [k, l] < v t 1 [k, l], niin asetetaan d[k, l] d[t, l]. Askel 2. Lopetetaan, jos t on verkon solmujen määrä tai v t [k, k] < jossakin solmussa k. Edellisessä tapauksessa ilmoittavat viimeksi saadut suureet v t [k, l] lyhimmät etäisyydet ja jälkimmäisessä tapauksessa on verkossa solmun k kautta kulkeva negatiivinen sykli. Askel. Kasvatetaan kierroslaskuria t t + 1 ja palataan askeleeseen 1. Kun algoritmista on suoritettu t kierrosta, on saatu lyhimmät etäisyydet, joissa välisolmuina ovat solmut 1,..., t. Optimireitit saadaan taas takaperoisessa järjestyksessä käyttäen talletettuja edeltäjäsolmuja d[k, l]. Esimerkki Sovellettaessa Floyd-Warshall algoritmia esimerkin 1.1 ratkaisuun saadaan alkuarvot solmujen 1

17 etäisyyksille v [k, l] l = 1 l = 2 l = l = 4 l = l = 6 l = 7 l = 8 l = 9 l = 1 k = 1 12 k = k = 1 k = 4 8 k = 2 18 k = k = k = k = k = edeltäjille d[k, l] l = 1 l = 2 l = l = 4 l = l = 6 l = 7 l = 8 l = 9 l = 1 k = k = k = k = k = k = k = k = k = k = sekä vaiheen t = 1 jälkeen reittien pituudet v 1 [k, l] l = 1 l = 2 l = l = 4 l = l = 6 l = 7 l = 8 l = 9 l = 1 k = 1 12 k = k = 1 k = 4 8 k = k = k = k = k = k =

18 ja viimeisen solmun edeltäjät d[k, l] l = 1 l = 2 l = l = 4 l = l = 6 l = 7 l = 8 l = 9 l = 1 k = k = k = k = k = k = k = k = k = k = Vaiheen t = 9 jälkeen ovat viimein etäisyydet v 9 [k, l] l = 1 l = 2 l = l = 4 l = l = 6 l = 7 l = 8 l = 9 l = 1 k = k = k = k = 4 8 k = k = k = k = k = k = ja edeltäjät d[k, l] l = 1 l = 2 l = l = 4 l = l = 6 l = 7 l = 8 l = 9 l = 1 k = k = k = k = k = k = k = k = k = k =

19 Viimeisessä vaiheessa t = 1 saadaan optimireitin pituudet v 1 [k, l] l = 1 l = 2 l = l = 4 l = l = 6 l = 7 l = 8 l = 9 l = 1 k = k = k = k = k = k = k = k = k = k = ja optimaaliset edeltäjäsolmut d[k, l] l = 1 l = 2 l = l = 4 l = l = 6 l = 7 l = 8 l = 9 l = 1 k = k = k = k = k = k = k = k = k = k = Solmujen ja 8 välisen optimireitin pituus on 79 ja se itse reitti on 4 1 8, sillä d[, 8] = 1, d[, 1] = 4, d[, 4] =. Esimerkki 1.1. Kun sovelletaan Floyd-Warshall algoritmia negatiivisen syklin sisältävään esimerkkiin 1.4, niin kahdessa ensimmäisessä vaiheessa t = ja t = 1 v t [k, l] l = 1 l = 2 l = l = 4 k = k = 2 k = 12 k =

20 d[k, l] l = 1 l = 2 l = l = 4 k = k = k = k = ja sen jälkeen saadaan v 2 [k, l] l = 1 l = 2 l = l = 4 k = 1 2 k = 2 k = 12 k = d[k, l] l = 1 l = 2 l = l = 4 k = k = k = k = sekä v [k, l] l = 1 l = 2 l = l = 4 k = k = 2 1 k = 12 k = d[k, l] l = 1 l = 2 l = l = 4 k = k = k = k = Nyt v [4, 4] min{, v 2 [4, ] + v 2 [, 4]} = min{, } = 1, joten verkossa on negatiivinen sykli. Se on 4 2 4, sillä d[4, 4] =, d[4, ] = 2, d[4, 2] = Etäisyydet solmusta muihin ei-negatiivisten painojen tapauksessa Kun oletetaan, että kaikki painot ovat ei-negatiivisia, voidaan tehostaa selvästi aikaisempia algoritmeja ja saadaan Dijkstran algoritmi 17

21 Algoritmi Dijkstra: etäisyys solmusta muihin kun painot ei-negatiivisia Askel. Kun alkusolmuna on s, asetetaan { v[i], jos i = s, muulloin. Merkitään kaikkien solmujen etäisyydet väliaikaisiksi ja kiinnitetään seuraavaksi solmun p s etäisyys. Askel 1. Merkitään solmu p kiinnitetyksi ja jokaiselle siitä kiinnittämättömään solmuun i lähtevälle kaarelle (p, i) päivitetään etäisyydet v[i] min{v[i], v[p] + c pi }. Jos v[i] arvo muuttui, asetetaan d[i] p. Askel 2. Jos väliaikaisia solmuja ei enää ole, lopetetaan. Arvot v[i] ilmoittavat lyhimmät etäisyydet solmuun i. Askel. Kiinnitetään seuraavaksi solmu p, jonka väliaikainen etäisyys on pienin ts. v[p] = min{v[i] i väliaikainen} ja palataan askeleeseen 1. Dijkstran algoritmissa käsitellään kukin solmu vain kerran eikä kiinnitetyn solmun etäisyyttä alkusolmusta enää muuteta. Jokaisen iteraatiokierroksen jälkeen Dijkstran algoritmin tuottamat v[i] arvot ilmoittavat kiinnitettyjä solmuja käyttävien reittien lyhimmät etäisyydet solmuun i. Solmujen kiinnitysjärjestys on järkevä, sillä jos solmuun p johtaa useampia polkuja, täytyy pelkästään kiinnitetyistä solmuista koostuvan olla niistä lyhin. Muut polut sisältävät ensin solmusta s kiinnitettyjä solmuja ja ensimmäisenä kiinnittämättömänä solmuna i, josta kiinnittämättömiä solmuja solmuun p. Polun alkuosan pituudelle v[i] on solmun p valinnan nojalla voimassa v[i] v[p] ja nuolten pituuksien ei-negatiivisuudesta seuraa, että loppuosan pituus on ei-negatiivinen. Esimerkki 1.1. Kun ratkaistaan Dijkstran algoritmilla esimerkkiä 1.2, saadaan p v[1] v[2] v[] v[4] v[] v[6] v[7] v[8] v[9] v[1]

22 ja p d[1] d[2] d[] d[4] d[] d[6] d[7] d[8] d[9] d[1] Viimeinen rivi etäisyystaulukosta esittää optimaalisia etäisyyksiä solmuihin ja reitit saadaan taas viimeisestä edeltäjärivistä. Esimerkiksi lyhimmän tien pituus solmusta s = solmuun i = 1 on 427 ja se on 8 7 1, sillä d[1] = 7, d[7] = 8, d[8] =. 1.6 Lyhimmät tiet solmusta muihin syklittömässä verkossa Jos oletetaan, ettei verkossa ole syklejä, voidaan edellen tehostaa lyhimpien teiden määräämistä. Suuntaamattomassa verkossa ei päästä syklittömyyteen, joten oletaan nyt, että verkko on suunnattu. Pienestä verkosta voidaan helposti tarkastaa milloin se on syklitön, mutta suunnattu verkko on yleisesti syklitön, mikäli sen solmut voidaan numeroida niin, että jokaiselle nuolelle (i, j) on voimassa i < j. Tällainen numerointi saadaan aikaan verkon solmujen syvyyshaulla, jossa numeroidaan vähenevään numerojärjestykseen yksi kerrallaan sellaisia solmuja, joista lähtevät nuolet johtavat jo käsiteltyihin solmuihin tai niitä ei ole ollenkaan. a b c d e Kuva 9: Esimerkin 1.16 verkko Esimerkki Tarkastellaan kuvan 9 verkkoa, joka käsittää viisi solmua. Lähdetään nyt liikkeelle solmusta a. Sen seuraaja on solmu b, josta ei lähde yhtään solmua. Sen vuoksi solmu b voidaan numeroida solmuksi. Peruutetaan takaisin solmuun a, jolla 19

23 on toinen seuraaja d. Sen seuraajista solmu b on numeroitu joten mennään solmuun e, jonka ainoa seuraaja b on jo numeroitu. Solmu e numeroidaan solmuksi 4 ja peruutetaan solmuun d, jonka kaikki seuraajat on numeroitu. Sen järjestysnumeroksi asetetaan ja peruutetaan lähtösolmuun a sekä annetaan sille numero 2. Seuraavaksi täytyy valita jokin vielä numeroimaton solmu, josta menettelyä jatketaan. Ainoa mahdollisuus on nyt solmu c, jonka järjestysnumeroksi tulee 1. Kun syklejä ei nyt ole, voidaan solmujen etäisyydet määrätä järjestyksessä solmusta 1 alkaen ja ne saadaan kerralla kuntoon, koska solmuun funktionaaliyhtälön mukaisesti tulevat nuolet tulevat jo käsitellyistä solmuista. Algoritmi Lyhimmät tiet syklittömässä verkossa Askel. Numeroidaan verkon solmut niin, että jokaiselle nuolelle (i, j) E on voimassa i < j. Asetetaan vielä v[s]. Askel 1. Lopetetaan, kun kaikki etäisyydet v[k] on määrätty. Muuten asetetaan indeksin p arvoksi pienin käsittelemättömän solmun numero. Askel 2. Jos solmuun p ei tule nuolia, asetetaan v[p]. Muuten lasketaan v[p] min{v[i] + c ip (i, p) E} = v[l] + c lp i ja asetetaan d[p] l. Palataan askeleeseen Kuva 1: Esimerkin 1.18 syklitön verkko Esimerkki Sovelletaan algoritmia 1.17 kuvan 1 syklittömään verkkoon ja saadaan tulokseksi p v[p] d[p]

24 1.7 Projektin valvonta ja pisimmät tiet Suurten projektien kokonaishallinta on hankalaa, ja sitä varten ne kannattaa jakaa osaprojekteiksi eli töiksi, joista tiedetään niitä välittömästi edeltävät työt ja pystytään arvioimaan kestot. Ennen kuin työ voidaan aloittaa, täytyy kaikkien sen edeltäjätöiden olla valmiiksi suoritettuja. Ensisijainen kiinnostuksen kohde on koko projektin minimaalinen kesto sekä kunkin osatyön aikaisimmat ja myöhäisimmät mahdolliset aloitusajat, kun projekti toteutetaan mahdollisimman nopeasti. Samaten olisi kiinnostava saada informaatiota siitä, miten osaprojektien mahdolliset myöhästymiset vaikuttavat koko projektin kestoon. Oletetaan yksinkertaisuuden vuoksi, että projektin suoritus aloitetaan hetkellä t =. Esimerkki Omakotitalon rakentamisessa ovat osatöitä seuraavan taulukon mukaiset työt. k työ kesto edeltäjät 1 perustukset 1-2 kunnallistekniikka - valutyöt 4 1,2 4 runkotyöt katto sähkötyöt lämmitys ja ilmastointi 1 2, 4 8 seinät 18 4, 6, 7 9 sisäpuolen viimeistely 2, 8 Näistä tiedoista täytyisi päätellä milloin aliurakoitsijoita ja mitäkin tavaraa kannattaa hankkia paikalle. Nyt ei ole valmiina mitään verkkoa, vaan sellainen täytyy muodostaa edeltäjätiedoista. Yksi tapa on esittää kutakin osatyötä suunnattuna nuolena, jonka paino on työn kesto. Solmut esittävät silloin töiden alkamis- ja loppumistapahtumia ja nuolien järjestyksellä voidaan hoitaa edeltäjärelaatiot kuntoon. Tässä tarvitaan kuitenkin usein aputöitä, joiden kestot ovat nollia. Yllä olevasta taulukosta huomataan, että työn 7 edeltäjänä työ 2 on turha, koska työn 7 edeltäjä on 4, työn 4 edeltäjä työ ja työn edeltäjä työ 2. Samoin on työn 8 edeltäjänä työ 4 turha. Kun nämä jätetään pois saadaan kuvan 11 syklitön projektiverkko, joka on muodostettu niin, ettei minkään solmuparin välillä ole rinnakkaisia nuolia. Aputyöt on merkitty katkoviivoin. 21

25 Kuva 11: Esimerkin 1.19 projektiverkko Paljon helpompaa on muodostaa verkko, jossa on alkusolmu, loppusolmu ja yksi solmu kullekin työlle. Jos työ i edeltää työtä j pistetään verkkoon kulkemaan suunnattu nuoli (i, j) ja asetetaan sen painoksi työn i kesto. Alkusolmusta s pistetään painoltaan nollan suuruinen nuoli jokaiseen solmuun, jolla ei ole edeltäjiä. Jos solmu i ei ole minkään työn edeltäjä, pistetään siitä nuoli loppusolmuun ja sen painoksi taas työn i paino. Tässä ei haittaa, vaikka edeltäjätöiden joukko ei olisikaan minimaalinen. Esimerkin 1.19 rakennusprojektista saadaan esimerkiksi kuvan 12 suunnatun verkon, joka taas on syklitön. Työn k aikaisin aloitushetki on nyt pisimmän tien pituus solmusta s solmuun k. Koko projektin kesto on pisimmän tien pituus alkusolmusta s loppusolmuun. Tätä polkua kutsutaan kriittiseksi poluksi, koska sillä olevien töiden viivästyminen viivästyttää koko projektia Kuva 12: Projektiverkko ilman rinnakkaisia nuolia Työt kannattaa numeroida ykkösestä lähtien niin, että edeltäjätyöllä on aina seuraajaa pienempi järjestysnumero. Oletetaan, että töitä on kaikkiaan n, jolloin verkon alkusolmu on ja loppusolmu n + 1. Kun merkitään solmua i vastaavan työn kestoa eli nuolen (i, j) painoa a i ja otetaan käyttöön päätösmuuttujat { 1, jos kriittinen polku kulkee nuolta (i, j) pitkin x ij =, muuten, 22

26 niin saadaan lineaarinen optimointitehtävä max a i x ij s. t. Sen duaalisessa tehtävässä (i,j) E x ik i j x ij, (i, j) E. min v n+1 v 1, kun k = n + 1 x kj = 1, kun k =, muulloin s. t. v j v i a i, (i, j) E voidaan taas valita yksi duaalimuuttuja mielivaltaisesti, jolloin kannattaa ottaa v =. Tällöin v i on pisin etäisyys alkusolmusta solmuun i. Saadaan algoritmi Algoritmi 1.2. Projektin töiden aikaisimmat aloitushetket Askel. Numeroidaan projektiverkon solmut kokonaisluvuin, 1,..., n + 1 niin, että verkon jokaiselle nuolelle (i, j) on i < j. Annetaan vielä aloitushetkelle arvo v[] ja p 1. Askel 1. Lopetetaan, kun p > n + 1. Askel 2. Määrätään työn p aikaisin aloitushetki v[p] max i p 1 {v[i] + a i (i, p) E} = v[l] + a l ja edeltäjä d[p] l. Kasvatetaan indeksiä p p + 1 ja palataan askeleeseen 1. Esimerkki Rakennusesimerkissä 1.19 on 9 työtä ja niiden numerointi on jo valmiiksi kunnossa. Saadaan sillä v[] ja. p v[p] d[p] v[1] max{v[] + a } = + =, d[1] v[2] max{v[] + a } = + =, d[2] v[] max{v[1] + a 1, v[2] + a 2 } = max{ + 1, + } = 1, d[] 1 Siitä seuraa projektin kesto 7 sekä kriittinen polku , sillä d[1] = 9, d[9] = 8, d[8] = 7, d[7] = 4, d[4] =, d[] = 1, d[1] =. 2

27 Olkoon nyt projektin valmistumisella määräaika T, johon mennessä sen tulisi olla valmiina ja haluttaisiin tietää osaprojektin k viimeinen mahdollinen aloitusaika l[k], jotta tässä aikataulussa pysyttäisiin. Se saadaan laskemalla pisin tie solmusta k loppusolmuun n + 1 ja vähentämällä saatu arvo ajasta T eli l[n + 1] T l[k] min {l[j] a k (k, j) E}, k = n, n 1,...,. k+1 j n+1 Tässä täytyy määräajan olla vähintään projektin kesto eli T v[n + 1]. Jos määräaikaa T ei ole eksplisiittisesti annettu, käytetään sen arvona projektin kestoa v[n + 1]. Esimerkki Jos esimerkissä 1.19 T = 8 ja solmun k seuraaja on r[k], niin ja taulukon muodossa. l[1] 8 l[9] min{8 2} = 6, r[9] 1 l[8] min{6 18} = 42, r[8] 9 k l[k] r[k] Erotusta s[k] = l[k] v[k], joka ilmoittaa työn k viimeisen ja aikaisimman aloitushetken erotuksen, kutsutaan pelivaraksi. Sen verran voidaan lykätä työn k aloitusta aikaisimmasta mahdollisesta ilman, että projekti myöhästyy määräajastaan T. Esimerkki 1.2. Rakennusesimerkissä 1.19 pelivarat ovat k s[k] Pelivarat voidaan myös laskea jokaiselle osatyölle, mutta niitä saadaan erilaisia riippuen siitä, kumpaa tapahtumishetkeä työn päätesolmuille käytetään. Määritellään osatyön i maksimaallinen pelivara s m [i] = min j {l[j] (i, j) E} v[i] a i turvallinen pelivara s t [i] = min j {l[j] (i, j) E} l[i] a i vapaa pelivara s f [i] = min j {v[j] (i, j) E} v[i] a i riippumaton pelivara s r [i] = max{, min j {v[j] (i, j) E} l[i] a i }. 24

28 Maksimaalinen pelivara saadaan, kun työ loppuu mahdollisimman myöhään ja alkaa mahdollisimman aikaisin. Riippumaton pelivara taas on aika, jonka osatyön suoritus voi viivästyä hidastamatta koko projektia, vaikka sen edeltäjät kestäisivät mahdollisimman kauan ja seuraajat alkaisivat mahdollisimman aikaisin. Aikataulun laatiminen ja resurssien tasaaminen. Nyt voidaan laatia aikataulu, jossa on kunkin työn ajoitus. Voidaan esimerkiksi pyrkiä ajoitukseen, jossa henkilöresurssien tarve pysyy mahdollisimman tasaisena koko ajan Kuva 1: Rakennusesimerkin suunnattu verkko Esimerkki Kuvan 1 projektin töiden i kestot a i ja työvoimatarpeet h i ovat i a i h i Projektin kriittinen polku on ja kesto v[9] = 19. Oletetaan nyt, että T = 19 eli kriittisellä polulla olevilla töillä ei ole pelivaraa. Jos aloitetaan jokaisen työn suoritus mahdollisimman aikaisin, on aikavälillä [, ) käynnissä työ 1, välillä [, ) työt ja 2, välillä [, 6) työ, välillä [6, 8) työt, 4, 6, 7, välillä [8, 9) työt, 4, 6, välillä [9, 11) työt, 4 välillä [11, 1) työ sekä välillä [1, 19) työ 8. Resurssitarpeet ovat näinä aikoina, 1, 7, 1, 9, 7, 2 ja 6 henkeä. Resurssitarve t Kuva 14: Resurssitarpeet, kun jokainen työ aloitetaan mahdollisimman aikaisin 2

29 Jos jokainen työ tehdään niin myöhään kuin mahdollista, on aikavälillä [, ) käynnissä työ 1, välillä [, 4) työ, välillä [4, 6) työt ja 2, välillä [6, 1) työ, välillä [1, 1) työt, 6, välillä [1, 14) työ 8, välillä [14, 17) työt 8, 4 sekä välillä [17, 19) työt 8, 4, 7. Resurssitarpeet ovat näinä aikoina, 7, 1, 2, 4, 6, 11 ja 12 henkeä. Resurssitarve t Kuva 1: Resurssitarpeet, kun jokainen työ tehdään niin myöhään kuin mahdollista Jälkimmäinen on epätasaisempi, mutta edellistäkin voidaan parantaa siirtämällä työ 6 mahdollisimman myöhään ja työ 7 heti työn 4 jälkeen. Silloin saadaan suunnitelma, jossa tarvitaan koko ajan vähintään henkeä. Resurssitarve 2 6 alku t Kuva 16: Resurssitarpeet, kun joka hetkellä tarvitaan vähintään henkeä Jos resursseja ei ole niin paljoa, että niitä riittäisi saadun ratkaisun toteuttamiseen, täytyy joidenkin töiden alkua viivyttää, vaikka tämä johtaisikin koko projektin viivästymiseen. Oletetaan, että töiden kestot ovat kokonaislukuja a i N. Silloin koko projektin kesto on korkeintaan n a i = T i=1 ja tarkastellaan resursseja erikseen kullakin aikavälillä [t 1, t), t = 1,..., T. Oletetaan, että resurssia k on välillä [t 1, t) käytettävissä määrä R kt ja että työn i tekemisessä sitä 26

30 tarvitaan koko ajan määrä b ik. Kun valitaan päätösmuuttujiksi { 1, kun työ i alkaa hetkellä t, t =, 1,..., T a i x it =, muuten, saadaan optimointitehtävä min s. t. T t= n i=1 T a j t= tx n+1,t b ik t 1 l=max{,t a i } tx jt T a i t= x il R kt, k = 1,..., K, t = 1,..., T tx it a i, T a i x it = 1, i =, 1,..., n + 1 t= (i, j) E x it {, 1}, i =, 1,..., n + 1, t =, 1,..., T 1 x it {, 1}, jos a i =, jossa on valitettavan paljon muuttujia ja rajoituksia ja jonka tarkka ratkaisu on siksi erittäin hankala. Voidaan kuitenkin saada likimääräisiä ratkaisuja seuraavasti. Aina kun jokin työ loppuu, vapautuu resursseja ja meille syntyy päätöksentekotilanne, jossa on valittava jokin tai joitakin töitä tilalle. Mahdollisista töistä, joiden kaikki edeltäjät on suoritettu, valitaan nyt suoritettava työ (i, j) jonkin yksinkertaisen kriteerin mukaan. Tällaisia ovat esimerkiksi valitaan kestoltaan lyhin työ valitaan resurssivaatimuksiltaan pienin työ valitaan työ, jonka myöhäisin aloitushetki on mahdollisimman pieni valitaan työ, jonka pelivara on pienin. Näistä kaksi ensimmäistä eivät vaadi minkäänlaisia etukäteislaskelmia työn kriittisestä polusta yms. mutta ne eivät yleensä tuota kovin hyvää tulosta. Kahden jälkimmäisen kriteerin vaatimat laskelmat voidaan tehdä ennalta tai dynaamisesti ennen jokaista päätöksentekotilannetta verkon suorittamattomalta osalta. Yleisesti pisimmän tien ongelma saadaan muunnetuksi lyhimmän tien ongelmasta muuttamalla minimointioperaatio maksimoinniksi. Ongelmia tuottavat negatiiviset syklit muuntuvat tällöin positiivisiksi sykleiksi ja tällaisia on kaikissa tämän luentomonisteen syklejä käsittävissä esimerkeissä. Onneksi projektiverkot ovat aina syklittömiä ja pisimmän tien määräämiset sujuvat ongelmitta. 27

31 1.8 Diskreetti dynaaminen optimointi Diskreetit dynaamiset optimointitehtävät voidaan käsittää yleistyksiksi lyhimmän tai pisimmän tien ongelmista ja ne voidaan usein saattaa siihen muotoon konstruoimalla sopiva suunnattu verkko. Dynaamisen optimoinnin perusidea on se, että ongelma jaetaan pienemmiksi osaongelmiksi (vaiheiksi), jotka voidaan ratkaista helpommin kuin alkuperäinen tehtävä. Saadaan siis jono toisistaan riippuvia osatehtävien ratkaisuja (päätöksiä), joista sitten muodostetaan alkuperäisen tehtävän ratkaisu. Laskutoimituksia syntyy paljon ja niiden suorittamiseen ja välitulosten tallentamiseen tarvitaan yleensä tietokonetta. Jo pienissäkin tehtävissä saattaa tarvittava muistitila paisua kovin suureksi, mikä on menetelmän ilmeinen heikkous. Dynaamisessa optimoinnissa ei ole mitään lineaarisen optimoinnin tapaista yleistä matemaattista formulointia. Se on sen sijaan yleisluontoinen lähestymistapa erilaisten tehtävien ratkaisemiseksi ja sen peruskäsitteet ilmenevät eri sovellutuksissa eri tavoin. Siksi dynaaminen optimointi esitetään seuraavassa pääasiassa esimerkkien avulla. Lyhimmän (ja pisimmän) tien määrääminen syklittömässä verkossa luvuissa 1.6 ja 1.7 on itse asiassa dynaamista optimointia. Tehtäville, joita voidaan ratkaista dynaamisella optimoinnilla, on yleensä ominaista seuraavat: 1. Tehtävä voidaan jakaa vaiheisiin, joista kuhunkin liittyy päätös. Lyhimmän tien ongelmassa vaiheena on tutkittava solmu, jonka kaikkien edeltäjien lähtösolmusta määrätyt lyhimmät tiet on jo selvitetty. 2. Jokaisessa vaiheessa on joukko tiloja. Tilojen on kussakin vaiheessa annettava riittävä informaatio päätöksen tekemiseen, eikä tiloista tarvitse tietää miten niihin on jouduttu. Lyhimmän tien ongelmassa mahdollisia tiloja ovat tutkittavaa solmua verkossa välittömästi edeltävät solmut. Nyt kiinnostuksen kohteena ei ole miten näihin solmuihin päästään optimaalisesti lähtösolmusta.. Kunkin vaiheen päätös kuvaa sitä, mihin seuraavan vaiheen tilaan joudutaan kustakin nykyisen vaiheen tilasta. Lyhimmän tien tapauksessa päätös ilmoittaa sen, mistä solmusta on optimaalista tulla tutkittavaan solmuun. 4. Kun nykyinen tila tunnetaan, eivät mitkään jäljellä olevat päätökset voi riippua aikaisemmista tiloista tai päätöksistä. Tämä on dynaamisen optimoinnin optimaalisuusperiaate. Lyhimmän tien ongelmassa se tarkoittaa sitä, että jos lyhin tie s t kulkee solmun i kautta, niin se osa siitä, joka kulkee kaupungista i t on samalla lyhin tie välillä i t.. Täytyy pystyä muodostamaan rekursiorelaatio, jolla kytketään perättäisten vaihei- 28

32 den kohdefunktiot toisiinsa. Lyhimmän tien ongelmassa tämä relaatio oli v[j] = min{c ij + v[i]}. i Käytännön ongelmissa esiintyy usein jonkin summan maksimointitehtäviä. Silloin pyritään muodostamaan vaiheessa n muotoa f n (x n ) = max y n {g n (x n, y n ) + f n 1 (h(x n, y n ))}, n = 1,..., N oleva dynaamisen optimoinnin rekursioyhtälö, jolla muodostetaan vaiheen n päätös. Tässä y n on päätösmuuttuja, x n tilamuuttuja ja f n (x n ) kohdefunktion arvo tilassa x n, kun vaiheeseen n asti on edetty optimaalisesti. Aaltosuluissa olevan summan ensimmäinen termi on vaiheen n ja jälkimmäinen termi vaiheiden 1,..., n 1 osuus kohdefunktiossa. Vaiheessa n tarvitaan aina edellisen vaiheen rekursiofunktio f n 1 ( ). Optimipäätökset y n määrätään päinvastaisessa järjestyksessä y N,..., y 1 ja niiden esille saamiseksi täytyy lisäksi tallettaa kaikkien vaiheiden päätösfunktiot y n( ), n = 1,..., N, jotka saadaan rekursioyhtälön ratkaisun yhteydessä. Jos vaiheet on muodostettu jakamalla suunnittelukausi osiin, niin voidaan edetä joko ajan mukaan, jolloin puhutaan etenevästä dynaamisesta optimoinnista tai sitä vastaan, jolloin on kyseessä takeneva dynaaminen optimointi. Jälkimmäinen on usein kätevämpi, koska dynaamisessa optimoinnissa meidän täytyy tietää viimeisen vaiheen N tilan x N arvo, joka tällöin on (toivottavasti) tunnettu lähtötilanne. Edellisen tilan x n 1, toimintapäätöksen y n ja nykyisen tilan x n välillä vallitsee relaatio (tilayhtälö) x n 1 = h(x n, y n ), joka täytyy aina pystyä eksplisiittisesti muodostamaan. Rekursiokaava voidaan tulkita seuraavasti: jos systeemin nykyinen tila tunnetaan, optimaaliset toimintapäätökset jäljellä olevissa vaiheissa eivät riipu nykyistä vaihetta aikaisemmista päätöksistä. Tieto siitä, missä tilassa systeemi tällä hetkellä on, sisältää kaiken sen tiedon systeemin aikaisemmasta käyttäytymisestä, joka tarvitaan optimipolitiikan määräämiseksi tästä eteenpäin. Tämä on dynaamisen optimoinnin optimaalisuusperiaate. Esimerkki 1.2. Tarkastellaan optimointitehtävää max s. t. N g i (y i ) i=1 N y i b i=1 y i, i = 1,..., N jossa on yksi rajoitus. Käsitellään ongelmaa yksi muuttuja kerrallaan ja niiden järjestys voi olla mielivaltainen. Yksinkertaisuuden vuoksi valitaan normaali numerojärjestys, joka samalla määrää vaihejaon. Vaiheessa i on siis käsitelty muuttujat y 1,..., y i 1. Päätösmuuttujaksi vaiheessa i valitaan y i ja tilamuuttujaksi x i resurssista b yhteensä tähän 29

33 mennessä käytetty määrä. Näillä valinnoilla on f i (x i ) = max {g 1(y 1 ) g i (y i )}. y y i x i, y 1,...,y i Huomioimalla, että x i = x i 1 + y i, saadaan rekursioyhtälöksi 1-dimensioiset ongelmat f i (x i ) = max y i x i {g i (y i ) + f i 1 (x i y i )}, x i b, i = 1,..., N. Jotta tämä olisi mielekäs arvolla i = 1, sovitaan, että f ( ). Kohdefunktion optimiarvo on f N (b) ja itse optimipäätökset y i. ovat y N = y N(b) y N 1 = y N 1(b y N) y 1 = y 1(b y N... y 2). Dynaamisella optimoinnilla on nyt palautettu N-dimensioinen optimointitehtävä N yksidimensioisen optimointitehtävän jonoksi. Kukin funktio f i täytyy kyllä ratkaista koko välillä [, b], sillä nyt ei etukäteen tiedä kuinka paljon resurssista b kannattaa uhrata muuttujille y 1,..., y i. Seuraavassa oletaan yleensä, että sekä päätös että tilamuuttujat saavat arvoja diskreetistä joukosta, koska muuten joudutaan vaikeuksiin numeerisessa ratkaisussa. Esimerkki Tarkastellaan diskreettiä investointiongelmaa, jossa yhtiöllä on käytettävissä C yksikköä rahaa olemassa olevien N tehtaansa laajentamiseen. Tehtaalla i on m i kappaletta vaihtoehtoisia laajennussuunnitelmia j, jotka vaativat c ij yksikköä pääomaa, ja joista saatava hyöty on r ij, i = 1,..., N, j = 1,..., m i. Oletetaan, että kunkin tehtaan suunnitelma 1 on sellainen, ettei laajenneta ollenkaan, jolloin c i1 = r i1 =. Tehtävänä on nyt määrätä rahoitettavat laajennukset niin, että saatava kokonaishyöty on mahdollisimman suuri, kun kunkin tehtaan laajennuksista toteutetaan korkeintaan yksi. Tehtävä voitaisiin ratkaista käymällä läpi kaikki erilaiset laajennuskombinaatiot, joita on m 1 m 2... m N kappaletta ja valitsemalla pääomarajoituksen toteuttavista kombinaatioista se, joka antaa suurimman kokonaishyödyn. Käsitellään tehtaat yksi kerrallaan ja tilamuuttujana x n olkoon vaiheessa n jakamatta oleva rahamäärä. Silloin saadaan rekursiivinen relaatio f n (x n ) = max j=1,...,m n, c nj x n {r nj + f n 1 (x n c nj )}, x n =, 1,..., C, n = 1,...N. Tässä on taas oletettu, että f ( ). Optimipäätökset talletetaan ja niistä saadaan. j N = j N(C) j N 1 = j N 1(C c Nj N ) j 1 = j 1(C c Nj N... c 2j 2 )

34 Sovelluksena tarkastellaan tilannetta, jossa N =, m 1 =, m 2 = 4, m = 2, C = 1 j c 1j r 1j c 2j r 2j c j r j Vaiheessa 1 on mukana ainoastaan tehdas 1 ja joudutaan laskemaan funktiot f 1 (x 1 ) ja j1(x 1 ) arvoilla x 1 =, 1,..., 1. Laskelmat voidaan suorittaa taulukon muodossa, jolloin saadaan tulokseksi x 1 r 1j f 1 (x 1 ) j1(x 1 ) j = 1 j = 2 j = Vaiheessa 2 ovat mukana tehtaat 1 ja 2 ja tässä tarvitaan vaiheen 1 funktiota f 1 (x 1 ). Nyt on siis x 2 r 2j + f 1 (x 2 c 2j ) f 2 (x 2 ) j2(x 2 ) j = 1 j = 2 j = j = ,

35 Tässä on resurssilla 9 kaksi yhtä hyvää päätösvaihtoehtoa, jotka molemmat on otettu mukaan. Näin saadaan kaikki mahdolliset optimiratkaisut, mutta jos tyydytään yhteen, riittää tallettaa yksi päätös. Samoin kuin edellä saadaan edelleen vaiheen taulukko x r j + f 2 (x c j ) f (x ) j(x ) j = 1 j = ,2 Taulukon viimeiseltä riviltä saadaan kohdefunktion optimiarvoksi 17 ja vaiheen optimaaliseksi päätökseksi joko j = 1 tai j = 2. Jos valitaan suunnitelma j = 1, niin taulukoista 2 ja 1 seuraa, että j2 = 4 ja j1 = 2. Jos taas on j = 2, niin saadaan joko j2 = 2 ja j1 = tai j2 = ja j1 = 2. Tehtävällä on siis vaihtoehtoista optimiratkaisua. Niistä j1 = 2, j2 = ja j = 2 on siinä mielessa paras, että se kuluttaa vain 9 yksikköä rahaa. Se, että yhtä hyvä tulos voidaan saavuttaa tuhlaamatta koko käytettävissä olevaa rahamäärää näkyy taulukon toiseksi viimeiseltä riviltä. Varsinaisen tehtävän ratkaisemiseksi riittäisi laskea taulukosta vain viimeinen rivi, mutta muut rivit antavat hyödyllistä herkkyysanalyysin kaltaista tietoa siitä, miten ratkaisu muuttuu kun resursseja vähennetään. Kun lasketaan taulukko täydellisenä, saadaan siis ratkaistuksi tehtävä kaikille arvoille C =, 1,..., 1. Esimerkki Tarkastellaan esimerkin 1.26 yleistyksenä resurssinjakamisongelmaa max s. t. N R i (y i ) i=1 N H i (y i ) M i=1 y i N, i = 1,..., N yhden rajoituksen tapauksessa. Tässä oletetaan, että jokainen H i (y i ) on ei-vähenevä funktio ja H i () =, i = 1,..., N. Kuten edellä, saadaan muotoa f i (x i ) = max y i N, H i (y i ) x i {R i (y i ) + f i 1 (x i H i (y i ))}, i = 1, 2,..., N 2

36 oleva rekursioyhtälö, jonka ratkaisu taas on yn = yn(m) yn 1 = yn 1(M H N (yn)). y1 = y1(m H N (yn)... H 2 (y2)). Esimerkki (Dynaaminen varastomalli) Kauppias varastoi erästä tuotetta myyntiä varten, kun seuraavien N kauden kysynnät d i, i = 1,..., N oletetaan tunnetuiksi. Varastossa on pidettävä tuotteita niin paljon, että kysyntä jokaisena kautena voidaan täyttää. Kauppias voi tilata jokaisen kauden alussa varastoon lisää tuotteita ja oletetaan, että tilattavat määrät z i toimitetaan välittömästi tilauksen jälkeen. Jokaisesta tilauksesta aiheutuu kautena i tilausmäärästä riippumaton kiinteä kustannus K i ja lisäksi määrä z i maksaa hinnan c i (z i ). Siis määrän z i tilauksesta kautena i aiheutuu kokonaiskustannus {, jos z i = C i (z i ) = K i + c i (z i ), jos z i >. Varastointikustannukset kautena i ovat suoraan verrannolliset varaston kokoon kauden lopussa ja kustannus on h i rahaa tuoteyksikköä kohti. Olkoon x i varaston koko kauden i alussa. Silloin x i+1 = x i + z i d i, i = 1,..., N ja kauden i varastointikustannukset ovat h i x i+1. Tehtävänä on määrätä optimaaliset tilausmäärät z i, i = 1,..., N niin, että kokonaiskustannukset ovat mahdollisimman pienet. Oletetaan, että tunnetaan kauden 1 alussa varastossa oleva määrä x 1 ja viimeisen kauden lopussa varastossa tarvittava tavaramäärä x N+1. Dynaamista optimointia varten määritellään systeemin vaiheet, tilat ja päätökset. Nyt on mahdollista valita sekä etenevä, että takeneva dynaaminen optimointi, koska varastosta tunnetaan sekä alku- että lopputilanne. Valitaan etenevä dynaaminen optimointi, jolloin vaiheessa i ollaan käsitelty kaudet 1,..., i. Systeemin tila vaiheessa i olkoon varaston määrä x i+1 kauden i lopussa. Päätös vaiheessa i on luonnollisesti ostettava tavaramäärä z i. Muissa paitsi viimeisessä vaiheessa on voimassa epäyhtälö x i+1 d i d N + x N+1, i = 1,..., N 1. Yläraja on saatu siitä, että mitään ei tämän jälkeen tarvitse enää ostaa. Olkoon f i (x i+1 ) kausien 1,..., i pienin mahdollinen kokonaiskustannus, kun kauden i lopussa varaston määrä on x i+1. Kun tunnetaan vaiheen 1 tila x 2, täytyy kauden 1 tilauksen olla z 1 = x 2 + d 1 x 1 ja saadaan ilman optimointia kauden kustannuksiksi f 1 (x 2 ) = C 1 (x 2 + d 1 x 1 ) + h 1 x 2,

Harjoitus 2 ( )

Harjoitus 2 ( ) Harjoitus 2 (27.3.214) Tehtävä 1 7 4 8 1 1 3 1 2 3 3 2 4 1 1 6 9 1 Kuva 1: Tehtävän 1 graafi. Aikaisimmat aloitushetket selvitetään kaavoilla v[] = v[p] d[p] l. max i p 1 {v[i] + a i (i, p) E} = v[l] +

Lisätiedot

Harjoitus 2 ( )

Harjoitus 2 ( ) Harjoitus 2 (24.3.2015) Tehtävä 1 Figure 1: Tehtävän 1 graafi. Aikaisimmat aloitushetket selvitetään kaavoilla v[0] = 0 v[p] max 0 i p 1 {v[i]+a i (i,p) E} = v[l]+a l d[p] l. Muodostetaan taulukko, jossa

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

Malliratkaisut Demot

Malliratkaisut Demot Malliratkaisut Demot.. Tehtävä Edellinen tehtävä voidaan ratkaista mm. Bellman-Fordin, Floyd-Warshallin tai Dikstran algoritmilla. Kyseessä on syklitön suunnattu verkko, oten algoritmi. (lyhimmät tiet

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

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

Malliratkaisut Demot

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

Lisätiedot

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

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

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 9 Ti Timo Männikkö

Algoritmit 1. Luento 9 Ti Timo Männikkö Algoritmit 1 Luento 9 Ti 7.2.2017 Timo Männikkö Luento 9 Graafit ja verkot Kaaritaulukko, bittimatriisi, pituusmatriisi Verkon lyhimmät polut Floydin menetelmä Lähtevien ja tulevien kaarien listat Forward

Lisätiedot

Harjoitus 6 ( )

Harjoitus 6 ( ) Harjoitus 6 (30.4.2014) Tehtävä 1 Määritelmän (ks. luentomoniste s. 109) mukaan yleisen, muotoa min f(x) s.t. g(x) 0 h(x) = 0 x X (1) olevan optimointitehtävän Lagrangen duaali on max θ(u,v) s.t. u 0,

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

Harjoitus 6 ( )

Harjoitus 6 ( ) Harjoitus 6 (21.4.2015) Tehtävä 1 Määritelmän (ks. luentomoniste s. 109) mukaan yleisen, muotoa min f(x) s. t. g(x) 0 h(x) = 0 x X olevan optimointitehtävän Lagrangen duaali on missä max θ(u, v) s. t.

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

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

Johdatus verkkoteoriaan 4. luento

Johdatus verkkoteoriaan 4. luento Johdatus verkkoteoriaan 4. luento 28.11.17 Viikolla 46 läpikäydyt käsitteet Viikolla 47 läpikäydyt käsitteet Verkko eli graafi, tasoverkko, solmut, välit, alueet, suunnatut verkot, isomorfiset verkot,

Lisätiedot

Malliratkaisut Demot

Malliratkaisut Demot Malliratkaisut Demot 6 24.4.2017 Tehtävä 1 Määritelmän (ks. luentomonisteen s. 107) mukaan yleisen muotoa min f(x) s.t. g(x) 0 h(x) = 0 x X (1) olevan optimointitehtävän Lagrangen duaali on min θ(u,v)

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

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

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

13 Lyhimmät painotetut polut

13 Lyhimmät painotetut polut TIE-20100 Tietorakenteet ja algoritmit 297 13 Lyhimmät painotetut polut BFS löytää lyhimmän polun lähtösolmusta graafin saavutettaviin solmuihin. Se ei kuitenkaan enää suoriudu tehtävästä, jos kaarien

Lisätiedot

Esimerkkejä kokonaislukuoptimointiongelmista

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

Lisätiedot

Algoritmit 2. Luento 11 Ti Timo Männikkö

Algoritmit 2. Luento 11 Ti Timo Männikkö Algoritmit 2 Luento 11 Ti 24.4.2018 Timo Männikkö Luento 11 Rajoitehaku Kapsäkkiongelma Kauppamatkustajan ongelma Paikallinen etsintä Lyhin virittävä puu Vaihtoalgoritmit Algoritmit 2 Kevät 2018 Luento

Lisätiedot

Johdatus verkkoteoriaan luento Netspace

Johdatus verkkoteoriaan luento Netspace Johdatus verkkoteoriaan luento 20.3.18 Netspace Kurssin sijainti muussa suunnitellussa kokonaisuudessa Verkko eli graafi, tasoverkko, solmut, välit, alueet, suunnatut verkot, isomorfiset verkot, verkon

Lisätiedot

Malliratkaisut Demot

Malliratkaisut Demot Malliratkaisut Demot 1 23.1.2017 1. Päätösmuuttujiksi voidaan valita x 1 : tehtyjen peruspöytin lukumäärä x 2 : tehtyjen luxuspöytien lukumäärä. Optimointitehtäväksi tulee max 200x 1 + 350x 2 s. t. 5x

Lisätiedot

Kokonaislukuoptimointi

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

Lisätiedot

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

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

Johdatus graafiteoriaan

Johdatus graafiteoriaan Johdatus graafiteoriaan Syksy 2017 Lauri Hella Tampereen yliopisto Luonnontieteiden tiedekunta 62 Luku 2 Yhtenäisyys 2.1 Polku 2.2 Lyhin painotettu polku 2.3 Yhtenäinen graafi 2.4 Komponentti 2.5 Aste

Lisätiedot

Algoritmit 1. Luento 13 Ma Timo Männikkö

Algoritmit 1. Luento 13 Ma Timo Männikkö Algoritmit 1 Luento 13 Ma 26.2.2018 Timo Männikkö Luento 13 Suunnittelumenetelmät Taulukointi Kapsäkkiongelma Ahne menetelmä Verkon lyhimmät polut Dijkstran menetelmä Verkon lyhin virittävä puu Kruskalin

Lisätiedot

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

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

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

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

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

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

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

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

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

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

Lineaarisen kokonaislukuoptimointitehtävän ratkaiseminen

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

Lisätiedot

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

j(j 1) = n(n2 1) 3 + (k + 1)k = (k + 1)(k2 k + 3k) 3 = (k + 1)(k2 + 2k + 1 1) MS-A0401 Diskreetin matematiikan perusteet Tentti ja välikokeiden uusinta 10.11.015 Kirjoita jokaiseen koepaperiin nimesi, opiskelijanumerosi ym. tiedot! Laskimia tai taulukoita ei saa käyttää tässä kokeessa!

Lisätiedot

Algoritmit 2. Luento 12 Ke Timo Männikkö

Algoritmit 2. Luento 12 Ke Timo Männikkö Algoritmit 2 Luento 12 Ke 26.4.2017 Timo Männikkö Luento 12 Rajoitehaku Kauppamatkustajan ongelma Lyhin virittävä puu Paikallinen etsintä Vaihtoalgoritmit Geneettiset algoritmit Simuloitu jäähdytys Algoritmit

Lisätiedot

Algoritmit 2. Luento 13 Ti Timo Männikkö

Algoritmit 2. Luento 13 Ti Timo Männikkö Algoritmit 2 Luento 13 Ti 30.4.2019 Timo Männikkö Luento 13 Simuloitu jäähdytys Merkkijonon sovitus Horspoolin algoritmi Ositus ja rekursio Rekursion toteutus Algoritmit 2 Kevät 2019 Luento 13 Ti 30.4.2019

Lisätiedot

Mat Lineaarinen ohjelmointi

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

Lisätiedot

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

58131 Tietorakenteet ja algoritmit (kevät 2014) Uusinta- ja erilliskoe, , vastauksia 58131 Tietorakenteet ja algoritmit (kevät 2014) Uusinta- ja erilliskoe, 10..2014, vastauksia 1. [9 pistettä] (a) Todistetaan 2n 2 + n + 5 = O(n 2 ): Kun n 1 on 2n 2 + n + 5 2n 2 + n 2 +5n 2 = 8n 2. Eli

Lisätiedot

Tarkennamme geneeristä painamiskorotusalgoritmia

Tarkennamme geneeristä painamiskorotusalgoritmia Korotus-eteen-algoritmi (relabel-to-front) Tarkennamme geneeristä painamiskorotusalgoritmia kiinnittämällä tarkasti, missä järjestyksessä Push- ja Raise-operaatioita suoritetaan. Algoritmin peruskomponentiksi

Lisätiedot

Algoritmit 1. Luento 10 Ke Timo Männikkö

Algoritmit 1. Luento 10 Ke Timo Männikkö Algoritmit 1 Luento 10 Ke 14.2.2018 Timo Männikkö Luento 10 Algoritminen ongelmanratkaisu Suunnittelumenetelmät Raaka voima Järjestäminen eli lajittelu Kuplalajittelu Lisäyslajittelu Valintalajittelu Permutaatiot

Lisätiedot

3.3 Paraabeli toisen asteen polynomifunktion kuvaajana. Toisen asteen epäyhtälö

3.3 Paraabeli toisen asteen polynomifunktion kuvaajana. Toisen asteen epäyhtälö 3.3 Paraabeli toisen asteen polynomifunktion kuvaajana. Toisen asteen epäyhtälö Yhtälön (tai funktion) y = a + b + c, missä a 0, kuvaaja ei ole suora, mutta ei ole yhtälökään ensimmäistä astetta. Funktioiden

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

Demo 1: Branch & Bound

Demo 1: Branch & Bound MS-C05 Optimoinnin perusteet Malliratkaisut 7 Ehtamo Demo : Branch & Bound Ratkaise lineaarinen kokonaislukuoptimointitehtävä käyttämällä Branch & Boundalgoritmia. max x + x s.e. x + 4x 9 5x + x 9 x Z

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

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

Demo 1: Simplex-menetelmä

Demo 1: Simplex-menetelmä MS-C2105 Optimoinnin perusteet Malliratkaisut 3 Ehtamo Demo 1: Simplex-menetelmä Muodosta lineaarisen tehtävän standardimuoto ja ratkaise tehtävä taulukkomuotoisella Simplex-algoritmilla. max 5x 1 + 4x

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

Talousmatematiikan perusteet: Luento 12. Lineaarinen optimointitehtävä Graafinen ratkaisu Ratkaisu Excel Solverilla

Talousmatematiikan perusteet: Luento 12. Lineaarinen optimointitehtävä Graafinen ratkaisu Ratkaisu Excel Solverilla Talousmatematiikan perusteet: Luento 12 Lineaarinen optimointitehtävä Graafinen ratkaisu Ratkaisu Excel Solverilla Esimerkki Esim. Yritys tekee kahta elintarviketeollisuuden käyttämää puolivalmistetta,

Lisätiedot

Algoritmit 1. Luento 1 Ti Timo Männikkö

Algoritmit 1. Luento 1 Ti Timo Männikkö Algoritmit 1 Luento 1 Ti 10.1.2017 Timo Männikkö Luento 1 Algoritmi Algoritmin toteutus Ongelman ratkaiseminen Algoritmin tehokkuus Algoritmin suoritusaika Algoritmin analysointi Algoritmit 1 Kevät 2017

Lisätiedot

Datatähti 2019 loppu

Datatähti 2019 loppu Datatähti 2019 loppu task type time limit memory limit A Summa standard 1.00 s 512 MB B Bittijono standard 1.00 s 512 MB C Auringonlasku standard 1.00 s 512 MB D Binääripuu standard 1.00 s 512 MB E Funktio

Lisätiedot

Malliratkaisut Demot

Malliratkaisut Demot Malliratkaisut Demot 5 10.4.2017 Tehtävä 1 x 2 7 0,7 9,8 6 5 4 x 1 x 2 7 x 1 x 2 1 3 2 x 1 0 4,3 x 1 9 1 0,0 x 2 0 9,0 1 2 3 4 5 6 7 8 9 x 1 Kuva 1: Tehtävän 1 sallittu joukko S Optimointitehtävän sallittu

Lisätiedot

Numeeriset menetelmät TIEA381. Luento 12. Kirsi Valjus. Jyväskylän yliopisto. Luento 12 () Numeeriset menetelmät / 33

Numeeriset menetelmät TIEA381. Luento 12. Kirsi Valjus. Jyväskylän yliopisto. Luento 12 () Numeeriset menetelmät / 33 Numeeriset menetelmät TIEA381 Luento 12 Kirsi Valjus Jyväskylän yliopisto Luento 12 () Numeeriset menetelmät 25.4.2013 1 / 33 Luennon 2 sisältö Tavallisten differentiaaliyhtälöiden numeriikasta Rungen

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

Luetteloivat ja heuristiset menetelmät. Mat , Sovelletun matematiikan tutkijaseminaari, kevät 2008, Janne Karimäki

Luetteloivat ja heuristiset menetelmät. Mat , Sovelletun matematiikan tutkijaseminaari, kevät 2008, Janne Karimäki Luetteloivat ja heuristiset menetelmät Mat-2.4191, Sovelletun matematiikan tutkijaseminaari, kevät 2008, Janne Karimäki Sisältö Branch and Bound sekä sen variaatiot (Branch and Cut, Lemken menetelmä) Optimointiin

Lisätiedot

Johdatus graafiteoriaan

Johdatus graafiteoriaan Johdatus graafiteoriaan Syksy 2017 Lauri Hella Tampereen yliopisto Luonnontieteiden tiedekunta 126 Luku 3 Puut 3.1 Puu 3.2 Virittävä puu 3.3 Virittävän puun konstruointi 3.4 Minimaalinen virittävä puu

Lisätiedot

Duaalisuus kokonaislukuoptimoinnissa. Mat , Sovelletun matematiikan tutkijaseminaari, kevät 2008, Janne Karimäki

Duaalisuus kokonaislukuoptimoinnissa. Mat , Sovelletun matematiikan tutkijaseminaari, kevät 2008, Janne Karimäki Duaalisuus kokonaislukuoptimoinnissa Mat-2.4191, Sovelletun matematiikan tutkijaseminaari, kevät 2008, Janne Karimäki Sisältö Duaalisuus binäärisissä optimointitehtävissä Lagrangen duaalisuus Lagrangen

Lisätiedot

Luento 1: Optimointimallin muodostaminen; optimointitehtävien luokittelu

Luento 1: Optimointimallin muodostaminen; optimointitehtävien luokittelu Luento 1: Optimointimallin muodostaminen; optimointitehtävien luokittelu Merkintöjä := vasen puoli määritellään oikean puolen lausekkeella s.e. ehdolla; siten että (engl. subject to, s.t.) on voimassa

Lisätiedot

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

Ratkaisu. Tulkitaan de Bruijnin jonon etsimiseksi aakkostossa S := {0, 1} sanapituudelle n = 4. Neljän pituisia sanoja on N = 2 n = 16 kpl. iskreetti matematiikka, syksy 00 arjoitus, ratkaisuista. seta 8 nollaa ja 8 ykköstä renkaaksi niin, että jokainen yhdistelmä 0000, 000,..., esiintyy täsmälleen kerran. Vihje: Tulkitse de ruijnin jonon

Lisätiedot

Vektorien pistetulo on aina reaaliluku. Esimerkiksi vektorien v = (3, 2, 0) ja w = (1, 2, 3) pistetulo on

Vektorien pistetulo on aina reaaliluku. Esimerkiksi vektorien v = (3, 2, 0) ja w = (1, 2, 3) pistetulo on 13 Pistetulo Avaruuksissa R 2 ja R 3 on totuttu puhumaan vektorien pituuksista ja vektoreiden välisistä kulmista. Kuten tavallista, näiden käsitteiden yleistäminen korkeampiulotteisiin avaruuksiin ei onnistu

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

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

58131 Tietorakenteet ja algoritmit (syksy 2015) Toinen välikoe, malliratkaisut Tietorakenteet ja algoritmit (syksy 0) Toinen välikoe, malliratkaisut. (a) Alussa puu näyttää tältä: Lisätään 4: 4 Tasapaino rikkoutuu solmussa. Tehdään kaksoiskierto ensin oikealle solmusta ja sitten

Lisätiedot

1 Kertaus. Lineaarinen optimointitehtävä on muotoa:

1 Kertaus. Lineaarinen optimointitehtävä on muotoa: 1 Kertaus Lineaarinen optimointitehtävä on muotoa: min c 1 x 1 + c 2 x 2 + + c n x n kun a 11 x 1 + a 12 x 2 + + a 1n x n b 1 a 21 x 1 + a 22 x 2 + + a 2n x n b 2 (11) a m1 x 1 + a m2 x 2 + + a mn x n

Lisätiedot

Markov-ketjut pitkällä aikavälillä

Markov-ketjut pitkällä aikavälillä 2A Markov-ketjut pitkällä aikavälillä Tämän harjoituksen tavoitteena on oppia lukemaan siirtymämatriisista tai siirtymäkaaviosta, milloin Markov-ketju on yhtenäinen ja jaksoton; oppia tunnistamaan, milloin

Lisätiedot

Mat-2.148 Dynaaminen optimointi, mallivastaukset, kierros 5

Mat-2.148 Dynaaminen optimointi, mallivastaukset, kierros 5 Mat-2.148 Dynaaminen optimointi, mallivastaukset, kierros 5 1. Kotitehtävä. 2. Lasketaan aluksi korkoa korolle. Jos korkoprosentti on r, ja korko maksetaan n kertaa vuodessa t vuoden ajan, niin kokonaisvuosikorko

Lisätiedot

Harjoitus 5 ( )

Harjoitus 5 ( ) Harjoitus 5 (24.4.2014) Tehtävä 1 Kuva 1: Tehtävän 1 sallittu joukko S. Optimointitehtävän sallittu alue S on pisteiden (0, 0), (0, 7), (4, 3), (9, 8) ja (9, 0) määräämä viisikulmio. Kyseinen alue saadaan

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

Algoritmit 2. Luento 6 To Timo Männikkö

Algoritmit 2. Luento 6 To Timo Männikkö Algoritmit 2 Luento 6 To 28.3.2019 Timo Männikkö Luento 6 B-puun operaatiot Nelipuu Trie-rakenteet Standarditrie Pakattu trie Algoritmit 2 Kevät 2019 Luento 6 To 28.3.2019 2/30 B-puu 40 60 80 130 90 100

Lisätiedot

Kokonaislukuoptiomointi Leikkaustasomenetelmät

Kokonaislukuoptiomointi Leikkaustasomenetelmät Kokonaislukuoptiomointi Leikkaustasomenetelmät Systeemianalyysin Laboratorio 19.3.2008 Sisällys Leikkaustasomenetelmät yleisesti Leikkaustasomenetelmät generoivilla kokonaislukujoukoilla Gomoryn leikkaavat

Lisätiedot

Yhtälöryhmä matriisimuodossa. MS-A0004/A0006 Matriisilaskenta. Tarkastellaan esimerkkinä lineaarista yhtälöparia. 2x1 x 2 = 1 x 1 + x 2 = 5.

Yhtälöryhmä matriisimuodossa. MS-A0004/A0006 Matriisilaskenta. Tarkastellaan esimerkkinä lineaarista yhtälöparia. 2x1 x 2 = 1 x 1 + x 2 = 5. 2. MS-A4/A6 Matriisilaskenta 2. Nuutti Hyvönen, c Riikka Kangaslampi Matematiikan ja systeemianalyysin laitos Aalto-yliopisto 5.9.25 Tarkastellaan esimerkkinä lineaarista yhtälöparia { 2x x 2 = x + x 2

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

2.1. Tehtävänä on osoittaa induktiolla, että kaikille n N pätee n = 1 n(n + 1). (1)

2.1. Tehtävänä on osoittaa induktiolla, että kaikille n N pätee n = 1 n(n + 1). (1) Approbatur 3, demo, ratkaisut Sovitaan, että 0 ei ole luonnollinen luku. Tällöin oletusta n 0 ei tarvitse toistaa alla olevissa ratkaisuissa. Se, pidetäänkö nollaa luonnollisena lukuna vai ei, vaihtelee

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

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

x j x k Tällöin L j (x k ) = 0, kun k j, ja L j (x j ) = 1. Alkuperäiselle interpolaatio-ongelmalle saadaan nyt ratkaisu

x j x k Tällöin L j (x k ) = 0, kun k j, ja L j (x j ) = 1. Alkuperäiselle interpolaatio-ongelmalle saadaan nyt ratkaisu 2 Interpolointi Olkoon annettuna n+1 eri pistettä x 0, x 1, x n R ja n+1 lukua y 0, y 1,, y n Interpoloinnissa etsitään funktiota P, joka annetuissa pisteissä x 0,, x n saa annetut arvot y 0,, y n, (21)

Lisätiedot

Malliratkaisut Demot

Malliratkaisut Demot Malliratkaisut Demot 3.2.27 Tehtävä. Valmisohjelmistolla voidaan ratkaista tehtävä min c T x s. t. Ax b x, missä x, c ja b R n ja A R m n. Muunnetaan tehtävä max x + 2x 2 + 3x 3 + x s. t. x + 3x 2 + 2x

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

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

Trimmitysongelman LP-relaksaation ratkaiseminen sarakkeita generoivalla algoritmilla ja brute-force-menetelmällä Trimmitysongelman LP-relaksaation ratkaiseminen sarakkeita generoivalla algoritmilla ja brute-force-menetelmällä Vesa Husgafvel 19.11.2012 Ohjaaja: DI Mirko Ruokokoski Valvoja: Prof. Harri Ehtamo Työn

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

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

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

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

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 TEKNILLINEN KORKEAKOULU Systeemianalyysin laboratorio Mat-39 Optimointioppi Kimmo Berg 6 harjoitus - ratkaisut min x + x x + x = () x f = 4x, h = x 4x + v = { { x + v = 4x + v = x = v/ x = v/4 () v/ v/4

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

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

OPERAATIOANALYYSI ORMS.1020

OPERAATIOANALYYSI ORMS.1020 VAASAN YLIOPISTO Talousmatematiikka Prof. Ilkka Virtanen OPERAATIOANALYYSI ORMS.1020 Tentti 2.2.2008 1. Yrityksen tavoitteena on minimoida tuotannosta ja varastoinnista aiheutuvat kustannukset 4 viikon

Lisätiedot

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

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

Lisätiedot

Määritelmä Olkoon T i L (V i, W i ), 1 i m. Yksikäsitteisen lineaarikuvauksen h L (V 1 V 2 V m, W 1 W 2 W m )

Määritelmä Olkoon T i L (V i, W i ), 1 i m. Yksikäsitteisen lineaarikuvauksen h L (V 1 V 2 V m, W 1 W 2 W m ) Määritelmä 519 Olkoon T i L V i, W i, 1 i m Yksikäsitteisen lineaarikuvauksen h L V 1 V 2 V m, W 1 W 2 W m h v 1 v 2 v m T 1 v 1 T 2 v 2 T m v m 514 sanotaan olevan kuvausten T 1,, T m indusoima ja sitä

Lisätiedot

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

Tentissä on viisi tehtävää, jotka arvosteellaan asteikolla 0-6. Tehtävien alakohdat ovat keskenään samanarvoisia ellei toisin mainita. Tentissä on viisi tehtävää, jotka arvosteellaan asteikolla 0-6. Tehtävien alakohdat ovat keskenään samanarvoisia ellei toisin mainita. Tehtävä 1 Mitä seuraavat käsitteet tarkoittavat? Monitahokas (polyhedron).

Lisätiedot

Numeeriset menetelmät TIEA381. Luento 6. Kirsi Valjus. Jyväskylän yliopisto. Luento 6 () Numeeriset menetelmät / 33

Numeeriset menetelmät TIEA381. Luento 6. Kirsi Valjus. Jyväskylän yliopisto. Luento 6 () Numeeriset menetelmät / 33 Numeeriset menetelmät TIEA381 Luento 6 Kirsi Valjus Jyväskylän yliopisto Luento 6 () Numeeriset menetelmät 4.4.2013 1 / 33 Luennon 6 sisältö Interpolointi ja approksimointi Polynomi-interpolaatio: Vandermonden

Lisätiedot

= 3 = 1. Induktioaskel. Induktio-oletus: Tehtävän summakaava pätee jollakin luonnollisella luvulla n 1. Induktioväite: n+1

= 3 = 1. Induktioaskel. Induktio-oletus: Tehtävän summakaava pätee jollakin luonnollisella luvulla n 1. Induktioväite: n+1 Matematiikan ja tilastotieteen laitos Matematiikka tutuksi Harjoitus 4 Ratkaisuehdotuksia 4-810 1 Osoita induktiolla, että luku 15 jakaa luvun 4 n 1 aina, kun n Z + Todistus Tarkastellaan ensin väitettä

Lisätiedot

Malliratkaisut Demo 4

Malliratkaisut Demo 4 Malliratkaisut Demo 4 1. tehtävä a) f(x) = 2x + 21. Funktio on lineaarinen, joten se on unimodaalinen sekä maksimoinnin että imoinnin suhteen. Funktio on konveksi ja konkaavi. b) f(x) = x (pienin kokonaisluku

Lisätiedot