Harjoitus 3 (31.3.2015)



Samankaltaiset tiedostot
Harjoitus 3 ( )

Malliratkaisut Demot

Malliratkaisut Demot

Harjoitus 1 ( )

Harjoitus 1 ( )

Malliratkaisut Demot

Harjoitus 4 ( )

Harjoitus 6 ( )

Harjoitus 5 ( )

Ratkaisuehdotukset LH 7 / vko 47

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

Harjoitus 5 ( )

Malliratkaisut Demot 6,

Lineaarinen optimointitehtävä

Malliratkaisut Demot

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

Demo 1: Simplex-menetelmä

Harjoitus 6 ( )

Malliratkaisut Demot

Harjoitus 2 ( )

Demo 1: Branch & Bound

Malliratkaisut Demot

1 Kertaus. Lineaarinen optimointitehtävä on muotoa:

Malliratkaisut Demot

Lineaarisen kokonaislukuoptimointitehtävän ratkaiseminen

Johdatus verkkoteoriaan 4. luento

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

Malliratkaisut Demot

T : Max-flow / min-cut -ongelmat

Malliratkaisut Demot

Harjoitus 2 ( )

Simplex-algoritmi. T Informaatiotekniikan seminaari , Susanna Moisala

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

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

v 8 v 9 v 5 C v 3 v 4

Mat Lineaarinen ohjelmointi

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

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

Osakesalkun optimointi. Anni Halkola Turun yliopisto 2016

Algoritmit 1. Luento 8 Ke Timo Männikkö

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

Algoritmit 1. Luento 9 Ti Timo Männikkö

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

Kimppu-suodatus-menetelmä

Malliratkaisut Demot

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

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

Kokonaislukuoptimointi hissiryhmän ohjauksessa

Yhteenlaskun ja skalaarilla kertomisen ominaisuuksia

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

4.5 Kaksivaiheinen menetelmä simplex algoritmin alustukseen

Johdatus graafiteoriaan

Lineaarialgebra II, MATH.1240 Matti laaksonen, Lassi Lilleberg

PARITUS KAKSIJAKOISESSA

Malliratkaisut Demo 4

Johdatus tekoälyn taustalla olevaan matematiikkaan

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

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

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

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

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

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.

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

Harjoitus 8: Excel - Optimointi

Numeeriset menetelmät

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

Markov-ketjut pitkällä aikavälillä

Luento 1: Optimointimallin muodostaminen; optimointitehtävien luokittelu

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

Mat Lineaarinen ohjelmointi

OPERAATIOANALYYSI ORMS.1020

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

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

6. Luennon sisältö. Lineaarisen optimoinnin duaaliteoriaa

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

Luku 7. Verkkoalgoritmit. 7.1 Määritelmiä

MS-A0003/A0005 Matriisilaskenta Malliratkaisut 5 / vko 48

Kokonaislukuoptimointi

Malliratkaisut Demo 1

Osakesalkun optimointi

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

Algoritmit 2. Luento 13 Ti Timo Männikkö

Mat Lineaarinen ohjelmointi

Algoritmi on periaatteellisella tasolla seuraava:

Algoritmit 1. Luento 13 Ti Timo Männikkö

10. Painotetut graafit

Esimerkkejä polynomisista ja ei-polynomisista ongelmista

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

Harjoitus 4: Matlab - Optimization Toolbox

Tehtäväsarja I Kertaa tarvittaessa materiaalin lukuja 1 3 ja 9. Tarvitset myös luvusta 4 määritelmän 4.1.

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:

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

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

Kokonaislukuoptimointi

Luento 3: Simplex-menetelmä

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

3 Lineaariset yhtälöryhmät ja Gaussin eliminointimenetelmä

Transkriptio:

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 suuri. Kohdefunktioksi saadaan nyt max P min (i,j) P {c ij } reitillä P solmusta s solmuun t. Dynaamisen optimoinnin rekursioyhtälöt ovat ja kaaren paino c ij 0. y = y j = max i (i,j) E {min {c ij,y i }}, j =,...,n Tehtävän ratkaisemiseksi tarvittava modifioitu Dijkstran algoritmi on seuraava: 0 Olkoon Kiinnitetään solmu p = s., jos i = s v[i] = 0, 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. Kiinnitetään seuraavaksi solmu p, jonka väliaikainen maksimikorkeus on suurin. Tehtävä Muotoillaan Harjoituksen Tehtävä nopeimman reitin ongelma minimikustannusvirtausongelmaksi suunnatulla verkolla. Virtausongelmassa oleellista on suunta, joten alkuperäinen suuntaamaton verkko pitää suunnata. Virtaus kulkee aina nuolen suuntaan (positiivisuusehto), joten jokaista kahden kaupungin välistä reittiä vastaa kaksi nuolta. (Vrt. Esimerkki. kuvat ja 5.) Turku on lähde (tarjonta ), Joensuu nielu (kysyntä ) ja muut solmut ovat kauttakulkusolmuja. Koska verkossa on vain yksi lähde, voidaan Turkuun tulevat nuolet

5 7 Figure : Tehtävän graafi. jättää huomioimatta. Koska verkossa on vain yksi nielu, voidaan Joensuusta lähtevät nuolet myös jättää huomioimatta. Huom. tämä ei ole yleisesti mahdollista (vrt. verkko, jossa useita lähteitä, ja vaikkapa kahden lähteen välillä nuolet). Olkoon x ij virtaus nuolella (i,j). Silloin saadaan optimointitehtävä min x +x +x +x +x +x +x +x +x 5 +7x 5 +x 5 s.t. x +x = x +x +x 5 x x x = 0 x +x +x 5 x x x = 0 x +x +x 5 x x = 0 x 5 x 5 x 5 = x ij 0, (i,j) E. () Tehtävää vastaava insidenssimatriisi on solmu (,) (,) (,) (,) (,5) (,) (,) (,5) (,) (,) (,5) + + 0 0 0 0 0 0 0 0 0 0 + + + 0 0 0 0 0 0 0 + + 0 0 0 0 0 0 0 0 + + + 5 0 0 0 0 0 0 0 0 Koska u ij = kaikilla i,j ja vektorin b = (,0,0,0, ) 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 (ks.. Minimikustannusvirtausongelman ratkaisujen jaollisuus). Tehtävä 5 7 0 Figure : Tehtävän aputehtävää varten täydennetty graafi. Ratkaistaan edellisen tehtävän optimointiongelma () kaksivaihemenetelmällä käyttäen luentomonisteen algoritmia.. Lähdemme ratkaisemaan tehtävää käyttäen alkuarvausta x 0 = (0,0,0,0,0,0,0,0,0,0,0). 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 0 ja x 05. Aputehtävää vastaavassa graafissa (kuva ) on lisätty ylimääräinen 0-solmu, johon on nuoli solmusta ja nuoli solmuun 5, ja kummankin nuolen paino on. Alkuperäisen

optimointiongelman nuolia vastaaville nuolille asetetaan paino 0. Aputehtäväksi saadaan min x 0 +x 05 s.t. x +x +x 0 = x +x +x 5 x x x = 0 x +x +x 5 x x x = 0 x +x +x 5 x x = 0 x 5 x 5 x 5 x 05 = x 0 x 05 = 0 x ij 0, (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 x x x 5 x x x 5 x x x 5 x 0 x 05 x x x x x 5 x x 7 x 8 x 9 x 0 x 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: 0 Koska virtaus x 0 = (0,0,0,0,0,0,0,0,0,0,0,,) on selvästi sallittu, valitsemme sen aloitusvirtaukseksi. ja Löytyy sallittu parantava lenkki, kuten esimerkiksi 5 0. Käyttäen luentomonisteen sivulla olevaa kaavaa lenkkiä vastaavalle suunnalle saamme suunnan x = (,0,0,0,,0,0,0,0,0,0,, ). Suunta x sallittu, koska lenkin suuntaisilla nuolilla (,) ja (,5) virtaukset x = x 5 = 0 < ovat alle kapasiteetin ja lenkkiä vastakkaisilla nuolilla (0,5) ja (,0) virtaukset x 0 = x 05 = > 0. Suunta on myös parantava, sillä ongelman () kohdefunktiolle c(x) = x 0 x 05 saadaan c( x) = =. Käyttäen luentomonisteen sivulla esitettyjä kaavoja askelpituudelle λ saamme min {, 0} λ = min = min {,}

Päivitetään virtaus kaavalla x = x 0 +λ x, jolloin saamme x = (,0,0,0,,0,0,0,0,0,0,0,0). Algoritmin. suoritus voidaan päättää ensimmäisen iteraation jälkeen, koska apumuuttujia x 8 ja x 9 vastaavat vektorin x komponentit ovat nollia. Vertaamalla optimointitehtävien () ja () rajoitteita havaitsemme että vektorista x saatu vektori x 0 = (,0,0,0,,0,0,0,0,0,0) 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. 0 Aloitusvirtaukseksi valitaan vaiheessa I saatu x 0 = (,0,0,0,,0,0,0,0,0,0). ja Voidaan valita esimerkiksi lenkki 5. Luentomonisteen sivulla olevaa kaavaa käyttämällä saamme lenkkiä vastaavaksi suunnaksi x = (,,0,0,,0,,0,0,0,). Suunta on sallittu, koska lenkin suuntaisilla nuolilla (,), (,) ja (,5) virtaukset ovat alle kapasiteetin joka on ja lenkkiä vastakkaisilla nuolilla (,5) ja (,) on voimassa x 0 5 = x0 5 = > 0 ja x0 = x0 = > 0. Suunta x on myös parantava, koska kohdefunktiolle c(x) = x +x +x +x +x +x +x +x +x 5 +7x 5 +x 5 = x +x +x +x +x +x 9 +x 7 +x 0 +x 5 +7x 8 +x saamme c( x) = + ++ =. Käyttäen luentomonisteen sivulla esitettyjä kaavoja askelpituudelle λ saamme min {, } λ = min = min {,min{,}} Päivitetään virtaus kaavalla x = x 0 + λ x, jolloin saamme x = (0,,0,0,0,0,,0,0,0,). Ensimmäisen iteraation jälkeen ei löydy enää sallittua ja parantavaa lenkkiä, joten optimiratkaisuksi saadaan x = (0,,0,0,0,0,,0,0,0,). Alkuperäisen optimointitehtävän kaksi-indeksisillä merkinnöillä tämä voidaan kirjoittaa muotoon x =, x =, x 5 = ja muut 0. Tämä tarkoittaa reittiä Turku Helsinki Kuopio Joensuu. 5

Tehtävä Älytaulujen tarjonta Kajaanissa ja Vaasassa on kummassakin 50 kpl/vuosi, ja kysyntä Helsingissä 0 ja Turussa 0 taulua/vuosi. Annetaan kaupungeille numerot seuraavasti: = Kajaani = Vaasa = Jyväskylä = Turku 5 = Helsinki. Muodostetaan minimikustannusvirtausongelma (ks. luentomoniste s. ). Solmut ja ovat lähteitä, joiden nettotarjonta on 50 kummassakin. Solmu on kauttakulkusolmu, ja solmut ja 5 ovat nieluja. Koska osa tuotannosta jää yli, muodostetaan lisäksi apusolmu nro. Apusolmu on nielu, jonka kysynnäksi asetetaan 50 (0+0) = 0 taulua/vuosi. Kuva esittää näillä tiedoilla piirrettyä graafia, jonka nuolten painoiksi huomioidaan sekä kuljetus- että yksikkötuotantokustannukset. 5 Figure : Tehtävän graafi.

Olkoon x ij virtauksen määrä nuolta (i,j) pitkin. Saadaan optimointitehtävä min 90x +00x +080x 5 +000x +0x +50x 5 +80x +90x 5 +800x +900x s.t. x +x 5 +x +x = 50 x +x +x 5 +x = 50 x x +x +x 5 = 0 x x x = 0 x 5 x 5 x 5 = 0 x x = 0 x ij 0, (i,j) E. Jos Jyväskylän kautta voidaan kuljettaa korkeintaan 0 taulua, niin muutetaan tehtävää jakamalla Jyväskylää kuvaava solmu solmuiksi a ja b. 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 a solmuun b lisätään vielä nuoli, jonka paino on 0, ja virtauksen ylärajaksi nuolella asetetaan u a,b = 0. b 5 Figure : Tehtävän graafi kun Jyväskylän kautta voidaan kuljettaa korkeintaan 0 tietokonetta. 7

min 90x +00x +080x 5 +000x +0x +50x 5 +80x +90x 5 +800x +900x s.t. x +x 5 +x,a +x = 50 x,a +x +x 5 +x = 50 x,a x,a +x a,b +x a,b = 0 x a,b x a,b +x b, +x b,5 = 0 x x x b, = 0 x 5 x 5 x b,5 = 0 x x = 0 0 x a,b 0 x ij 0, (i,j) E. Tehtävä 5 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 =,...,5). Tehtävässä annetuista tiedoista saadaan taulukko. päivä. päivä. päivä. päivä 5. päivä ylimääräiset tarjonta ostetut 5 5 5 5 5 0 70. pv pestyt M,5,5,5,5 0 0. pv pestyt M M,5,5,5 0 0. pv pestyt M M M,5,5 0 90. pv pestyt M M M M,5 0 0 kysyntä 0 0 90 0 00 0 Ostettavien liinojen tarjonta on saatu laskemalla 0 + 0 + 90 + 0 + 00 = 70. 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 0 on siis saaatu vähentämällä tarjontojen (oikea sarake) summasta, joka on 0, kysyntöjen (alin rivi) summa päiviltä.-5., joka on 70. 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 =,,...,5 ja j =,,...,, 8

ylläolevasta taulukosta saadaan optimointitehtävä, joka on samaa muotoa kuin luentomonisteen sivulla 5 esitetty. 9