Harjoitus 3 (3.4.2014)



Samankaltaiset tiedostot
Harjoitus 3 ( )

Malliratkaisut Demot

Malliratkaisut Demot

Harjoitus 1 ( )

Harjoitus 1 ( )

Malliratkaisut Demot

Harjoitus 5 ( )

Harjoitus 6 ( )

Harjoitus 4 ( )

Ratkaisuehdotukset LH 7 / vko 47

Demo 1: Simplex-menetelmä

Harjoitus 6 ( )

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

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

Lineaarinen optimointitehtävä

Malliratkaisut Demot

Harjoitus 5 ( )

1 Kertaus. Lineaarinen optimointitehtävä on muotoa:

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

Malliratkaisut Demot 6,

Harjoitus 2 ( )

Harjoitus 2 ( )

Demo 1: Branch & Bound

Malliratkaisut Demot

Malliratkaisut Demot

Lineaarisen kokonaislukuoptimointitehtävän ratkaiseminen

Malliratkaisut Demot

Johdatus verkkoteoriaan 4. luento

T : Max-flow / min-cut -ongelmat

Malliratkaisut Demot

Johdatus lukuteoriaan Harjoitus 2 syksy 2008 Eemeli Blåsten. Ratkaisuehdotelma

v 8 v 9 v 5 C v 3 v 4

Mat Lineaarinen ohjelmointi

4. Luennon sisältö. Lineaarisen optimointitehtävän ratkaiseminen Simplex-menetelmä

Malliratkaisut Demot

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

Matriisilaskenta (TFM) MS-A0001 Hakula/Vuojamo Ratkaisut, Viikko 47, 2017

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

PARITUS KAKSIJAKOISESSA

Totaalisesti unimodulaariset matriisit voidaan osoittaa olevan rakennettavissa oleellisesti verkkomalleihin liittyvistä matriiseista

Kokonaislukuoptimointi hissiryhmän ohjauksessa

Johdatus tekoälyn taustalla olevaan matematiikkaan

Kimppu-suodatus-menetelmä

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

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!

Johdatus verkkoteoriaan luento Netspace

Matriisit, L20. Laskutoimitukset. Matriisikaavoja. Aiheet. Määritelmiä ja merkintöjä. Laskutoimitukset. Matriisikaavoja. Matriisin transpoosi

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

4. Kokonaislukutehtävän ja LP:n yhteyksiä

4.5 Kaksivaiheinen menetelmä simplex algoritmin alustukseen

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

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

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

Osakesalkun optimointi. Anni Halkola Turun yliopisto 2016

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

Algoritmit 1. Luento 8 Ke Timo Männikkö

Aiheet. Kvadraattinen yhtälöryhmä. Kvadraattinen homogeeninen YR. Vapaa tai sidottu matriisi. Vapauden tutkiminen. Yhteenvetoa.

Malliratkaisut Demo 4

Mat Lineaarinen ohjelmointi

Simplex-algoritmi. T Informaatiotekniikan seminaari , Susanna Moisala

Osittaistuenta Gaussin algoritmissa: Etsitään 1. sarakkeen itseisarvoltaan suurin alkio ja vaihdetaan tämä tukialkioiksi (eli ko. rivi 1. riviksi).

6. Luennon sisältö. Lineaarisen optimoinnin duaaliteoriaa

Kokonaislukuoptimointi

Johdatus graafiteoriaan

MS-A0003/A0005 Matriisilaskenta Malliratkaisut 5 / vko 48

Matriisit, L20. Laskutoimitukset. Matriisikaavoja. Aiheet. Määritelmiä ja merkintöjä. Laskutoimitukset. Matriisikaavoja. Matriisin transpoosi

Malliratkaisut Demo 1

Lineaarialgebra II, MATH.1240 Matti laaksonen, Lassi Lilleberg

Yhteenlaskun ja skalaarilla kertomisen ominaisuuksia

Harjoitus 8: Excel - Optimointi

10. Painotetut graafit

Markov-ketjut pitkällä aikavälillä

Aiheet. Kvadraattinen yhtälöryhmä. Kvadraattinen homogeeninen YR. Vapaa tai sidottu matriisi. Vapauden tutkiminen. Yhteenvetoa.

Algoritmit 1. Luento 9 Ti Timo Männikkö

A = a b B = c d. d e f. g h i determinantti on det(c) = a(ei fh) b(di fg) + c(dh eg). Matriisin determinanttia voi merkitä myös pystyviivojen avulla:

Juuri 12 Tehtävien ratkaisut Kustannusosakeyhtiö Otava päivitetty

OPERAATIOANALYYSI ORMS.1020

Department of Mathematics, Hypermedia Laboratory Tampere University of Technology. Arvostus Verkostoissa: PageRank. Idea.

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

Matriisit, kertausta. Laskutoimitukset. Matriisikaavoja. Aiheet. Määritelmiä ja merkintöjä. Laskutoimitukset. Matriisikaavoja. Matriisin transpoosi

Ellipsoidimenetelmä. Samuli Leppänen Kokonaislukuoptimointi. S ysteemianalyysin Laboratorio

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

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

Numeeriset menetelmät

Algoritmit 2. Luento 13 Ti Timo Männikkö

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

Mat Lineaarinen ohjelmointi

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

2.8. Kannanvaihto R n :ssä

JYVÄSKYLÄN YLIOPISTO. 3. Luennon sisältö

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

f(x 1, x 2 ) = x x 1 k 1 k 2 k 1, k 2 x 2 1, 0 1 f(1, 1)h 1 = h = h 2 1, 1 12 f(1, 1)h 1 h 2

Harjoitus 4: Matlab - Optimization Toolbox

2.2 Gaussin eliminaatio. 2.2 Gaussin eliminaatio. 2.2 Gaussin eliminaatio. 2.2 Gaussin eliminaatio

Mat Lineaarinen ohjelmointi

Matriisit ovat matlabin perustietotyyppejä. Yksinkertaisimmillaan voimme esitellä ja tallentaa 1x1 vektorin seuraavasti: >> a = 9.81 a = 9.

Kokonaislukuoptimointi

Mat Investointiteoria Laskuharjoitus 4/2008, Ratkaisut

Uolevin reitti. Kuvaus. Syöte (stdin) Tuloste (stdout) Esimerkki 1. Esimerkki 2

Transkriptio:

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 suuri. Kohdefunktioksi saadaan nyt reitillä P solmusta s solmuun t. max P min (i,j) P {c ij} Dynaamisen optimoinnin rekursioyhtälöt ovat y = y j = max i (i,j) E {min {c ij, y i }}, j =,...,n ja kaaren paino c ij. Tehtävän ratkaisemiseksi tarvittava modifioitu Dijkstran algoritmi on seuraava: Olkoon Kiinnitetään solmu p = s., jos i = s v[i] =, jos i s. Merkitään solmu p kiinnitetyksi ja jokaiselle siitä kiinnittämättömään solmuun i lähtevälle kaarelle (p, i) päivitetään v[i] max {v[i], min {v[p], c pi }}. Jos v[i]:n arvo muuttui, niin asetetaan d[i] p. Lopetus samoin kuin alkuperäisessä algoritmissa. 3 Kiinnitetään seuraavaksi solmu p, jonka väliaikainen maksimikorkeus on suurin. Tehtävä 3 Kuva : Tehtävän graafi.

Muotoillaan Harjoituksen Tehtävä nopeimman reitin ongelma minimikustannusvirtausongelmaksi suunnatulla verkolla. Turku on lähde (tarjonta ), Jyväskylä nielu (kysyntä ) ja muut solmut ovat kauttakulkusolmuja. Eli nuolet, jotka tulevat Turkuun tai lähtevät Jyväskylästä, voidaan jättää huomioimatta. Olkoon x ij virtaus nuolella (i, j). Silloin saadaan optimointitehtävä min x + x 3 + x 3 + x 3 + x + x 3 + x 3 + x 3 + x s. t. x + x 3 = x 3 + x x x 3 = x 3 + x 3 + x 3 x 3 x 3 x 3 = () x + x 3 x 3 = x x 3 x = x ij, (i, j) E. Tehtävää vastaava insidenssimatriisi on solmu (, ) (, 3) (, 3) (3, ) (, ) (3, ) (, 3) (3, ) (, ) + + + + 3 + + + + + Koska u ij = kaikilla i, j ja vektorin b = (,,,, ) komponentit ovat kokonaislukuja, niin tehtävällä on kokonaislukuratkaisu. Tämä seuraa luentomonisteen kohdassa. esitetyistä perusteluista (ottaen huomioon että u ij = ). Vaihtoehtoinen perustelu sille että tehtävällä on kokonaisratkaisu olisi että insidenssimatriisi on unimodulaarinen ja vektorin b alkiot ovat kokonaislukuja. Kuten luentomonisteessa on todettu, tästä seuraa että simpleksialgoritmin tuottamat ratkaisut ovat kokonaislukuja. Tehtävä 3 Ratkaistaan edellisen tehtävän optimointiongelma () kaksivaihemenetelmällä käyttäen luentomonisteen algoritmia.. Lähdemme ratkaisemaan tehtävää käyttäen alkuarvausta x = (,,,,,,,, ). Alkuarvaus ei ole sallittu, koska ensimmäinen ja viimeinen rajoiteyhtälö eivät toteudu. Tästä johtuen muodostamme edellisen tehtävän optimointiongelmasta aputehtävän lisäämällä apumuuttujat x ja x. Aputehtävää vastaavassa graafissa (kuva ) on lisätty ylimääräinen -solmu, johon on nuoli solmusta ja nuoli solmuun, ja kummankin nuolen paino on. Alkuperäisen optimointiongelman nuolia

3 Kuva : Tehtävän 3 aputehtävää varten täydennetty graafi. vastaaville nuolille asetetaan paino. Aputehtäväksi saadaan min x + x s. t. x + x 3 + x = x 3 + x x x 3 = x 3 + x 3 + x 3 x 3 x 3 x 3 = x + x 3 x 3 = x x 3 x x = x x = x ij, (i, j) Ẽ, () missä Ẽ tarkoittaa kuvan graafin nuolijoukkoa. Koska luentomonisteen algoritmissa. optimoidaan vektorimuuttujan suhteen, otamme käyttöön vektorin x jonka alkiot vastaavat optimointiongelmissa () ja () esiintyviä kaksi-indeksisiä muuttujia taulukon x x 3 x 3 x 3 x x 3 x 3 x 3 x x x x x x 3 x x x 6 x 7 x 8 x 9 x x mukaisesti. Vaihe I Vaiheessa I ratkaisemme aputehtävän, josta saamme sallitun aloitusvirtauksen varsinaiselle optimointiongelmalle. Merkitkäämme aputehtävästä haettavaa virtausta muuttujalla x. Luentomonisteen algoritmi. sovellettuna aputehtävään koostuu seuraavista vaiheista: Koska virtaus x = (,,,,,,,,,, ) on selvästi sallittu, valitsemme sen aloitusvirtaukseksi. ja Löytyy sallittu parantava lenkki, kuten esimerkiksi. Käyttäen luentomonisteen sivulla olevaa kaavaa lenkkiä vastaavalle suunnalle saamme suunnan 3

x = (,,,,,,,,,, ). Suunta x sallittu, koska lenkin suuntaisilla nuolilla (, ) ja (, ) virtaukset x = x = < ovat alle kapasiteetin ja lenkkiä vastakkaisilla nuolilla (, ) ja (, ) virtaukset x = x = >. Suunta on myös parantava on parantava, sillä ongelman () kohdefunktiolle c(x) = x x saadaan c( x) = =. 3 Käyttäen luentomonisteen sivulla 6 esitettyjä kaavoja askelpituudelle λ saamme min {, } λ = min = min {, } Päivitetään virtaus kaavalla x = x + λ x, jolloin saamme x = (,,,,,,,,,, ). Algoritmin. suoritus voidaan päättää ensimmäisen iteraation jälkeen, koska apumuuttujia x ja x vastaavat vektorin x komponentit ovat nollia. Vertaamalla optimointistehtävien () ja () rajoitteita havaitsemme että vektorista x saatu vektori x = (,,,,,,,, ) on vaiheen II optimointitehtävän () sallittu aloitusvirtaus. Tämä tieto riittää meille vaihetta II varten. Vaihe II Vaiheessa II ratkaisemme alkuperäisen optimointitehtävän () käyttäen vaiheessa I saatua aloitusvirtausta. Aloitusvirtaukseksi valitaan vaiheessa I saatu x = (,,,,,,,, ). ja Voidaan valita esimerkiksi lenkki 3. Luentomonisteen sivulla olevaa kaavaa käyttämällä saamme lenkkiä vastaavaksi suunnaksi x = (,,,,,,,, ). Suunta on sallittu, koska lenkin suuntaisilla nuolilla (, 3), (3, ) ja (, ) virtaukset ovat alle kapasiteetin joka on ja lenkkiä vastakkaisella nuolella (, ) on voimassa x = x = >. Suunta x on myös parantava, koska kohdefunktiolle c(x) = x + x 3 + x 3 + x 3 + x + x 3 + x 3 + x 3 + x = x + x + x 3 + x + x + x 6 + x 7 + x 8 + x 9 saamme c( x) = + + =. 3 Käyttäen luentomonisteen sivulla 6 esitettyjä kaavoja askelpituudelle λ saamme min {, } λ = min = min {, min{, }}

Päivitetään virtaus kaavalla x = x + λ x, jolloin saamme x = (,,,,,,,, ). Ensimmäisen iteraation jälkeen ei löydy enää sallittua ja parantavaa lenkkiä, joten optimiratkaisuksi saadaan x = (,,,,,,,, ). Alkuperäisen optimointitehtävän kaksi-indeksisillä merkinnöillä tämä voidaan kirjoittaa muotoon x =, x 3 =, x 3 =, x 3 =, x =, x 3 =, x 3 =, x 3 =, ja x =. Tehtävä Tietokoneiden tarjonta Oulussa ja Lappeenrannassa on kummassakin konetta sekä kysyntä Turussa 3 ja Helsingissä konetta. Annetaan kaupungeille numerot seuraavasti: = Oulu = Lappeenranta 3 = Jyväskylä = Turku = Helsinki. Muodostetaan minimikustannusvirtausongelma (ks. luentomoniste s. ). Solmut ja ovat lähteitä, joiden nettotarjonta on. Solmu 3 on kauttakulkusolmu, ja solmut ja ovat nieluja. Koska osa tuotannosta jää yli, muodostetaan myös nielu, jonka kysynnäksi asetetaan + 3 = 3 konetta ja jolle annetaan numeroksi 6. Kuva 3 esittää näillä tiedoilla piirrettyä graafia, jonka nuolten painoissa on huomioitu sekä kuljetus- että yksikkötuotantokustannukset. 9 6 9 8 8 88 3 Kuva 3: Tehtävän graafi.

Olkoon x ij virtauksen määrä nuolta (i, j) pitkin. Saadaan optimointitehtävä min x + 8x + 88x 3 + x 3 + x + 9x + x 3 + x 3 + 8x 6 + 9x 6 s. t. x + x + x 3 + x 6 = x 6 + x 3 + x + x = x 3 x 3 + x 3 + x 3 = x x 3 x = 3 x x 3 x = x 6 x 6 = 3 x ij, (i, j) E. Jos Jyväskylän kautta voidaan kuljettaa korkeintaan tietokonetta, niin muutetaan tehtävää jakamalla Jyväskylää kuvaava solmu 3 solmuiksi 3a ja 3b. Näistä ensimmäiseen suunnataan Jyväskylään tulevat nuolet ja jälkimmäisestä laitetaan lähtemään Jyväskylästä lähtevät nuolet. Solmusta 3a solmuun 3b lisätään vielä nuoli, jonka paino on, ja virtauksen ylärajaksi nuolella asetetaan u 3a,3b =, eli rajoite x 3a,3b. 9 6 8 9 8 88 3a 3b Kuva : Tehtävän graafi kun Jyväskylän kautta voidaan kuljettaa korkeintaan tietokonetta. Tehtävä Muotoillaan annetuista tiedoista kuljetusongelma. Lähteitä ostetut liinat sekä päivinä i (i =,..., ) käytetyt ja pestyt liinat. Nieluja puolestaan ovat liinojen tarpeet päivinä i (i =,..., ). Tehtävässä annetuista tiedoista saadaan taulukko 6

. päivä. päivä 3. päivä. päivä. päivä ylimääräiset tarjonta ostetut 73. pv pestyt M,,,,. pv pestyt M M,,, 3. pv pestyt M M M,, 9. pv pestyt M M M M, kysyntä 9 63 Ostettavien liinojen tarjonta on saatu laskemalla + + 9 + + = 73. Ylläolevassa taulukossa on myös sarake ylimääräiset ylijäämäliinoja varten. Koska varastoon ei osteta liinoja ja kaikki saatavilla olevat liinat käytetään, tähän sarakkeeseen tulevat luvut ovat viimeistä riviä lukuunottamatta nollia. Ylimääräiset-sarakkeen viimeiselle riville tulee sen nielun tarve, jonne ohjataan kokonaistarjonnasta yli jäävä osa, kun kokonaistarjonnasta on vähennetty kokonaiskysyntä. Kyseinen luku 63 on siis saaatu vähentämällä tarjontojen (oikea sarake) summasta, joka on 36, kysyntöjen (alin rivi) summa päiviltä.-., joka on 73. Ylläolevassa taulukossa olevat luvut ovat kustannuksia, alarivillä olevat luvut ovat nielujen tarpeet, ja oikeanpuoleisessa sarakkeessa olevat luvut ovat lähteiden tarjonnat. Kun merkitään näitä muuttujilla c ij, d j ja s i, missä i =,,..., ja j =,,...,6, ylläolevasta taulukosta saadaan optimointitehtävä, joka on samaa muotoa kuin luentomonisteen sivulla esitetty. 7