1. harjoitus 1. Mr. G haluaa siirtää tulivuorenpurkauksen uhkaamalta saarelta turvaan 2400 kg kultaharkkoja. Operaatiota varten on käytettävisssä kolme kevyttä helikopteria. Kopteri 1 selviytyy matkasta todennäköisyydellä x1 p1 = 0. 9( 1 ), 1000 missä x 1 on lastin paino (0 < x 1 < 1000); vastaavalla tavalla määritellään x2 x3 p2 = 0. 8( 1 ) ja p 1200 3 = 0. 9( 1 ). 1600 a) Kuinka paljon kultaa kannattaa ottaa mukaan ja miten se on jaettava helikoptereihin, jotta perille tulevan kultamäärän odotusarvo z = p 1 x 1 + p 2 x 2 + p 3 x 3 olisi mahdollisimman suuri? b) Oletetaan, että Mr. G ahneuksissaan vaatii, että kaikki 2400 kg on pakattava mukaan. Mikä on nyt z:n optimaalinen arvo? Ratkaise tehtävä EXCELillä (ainakin a)-kohta ratkeaa vaivattomasti myös kynällä ja paperilla). (ohjeita: vaihe1: Sijoitetaan päätösmuuttujat x i soluihin A i (i=1,2,3); tämä ei tässä vaiheessa edellytä mitään toimenpiteitä. Sijoitetaan lausekkeet p i soluihin B i : kirjoitetaan esim. soluun B1 lauseke =0.9*(1-a1/1000) (ilman sitaatteja! ; = -merkki osoittaa, että symboli a1 on muuttuja, jonka arvoksi tulee solun A1 arvo) jne. Sijoitetaan kohdefunktio soluun C1 : kirjoitetaan =a1*b1+. Voidaan vielä esim. sijoittaa ruutuun C2 mukaan otetun kullan kokonaismäärä: =a1+a2+a3 tai =sum(a1:a3). Sijoitetaan soluihin D i päätösmuuttujien ylärajat 1000, 1200, 1600 vaihe2: Klikataan tools - solver. Solverin saa asetettua tools addins. Solver-ikkunassa määritellään kohdefunktio (target cell) ja päätösmuuttujat (changing cells), mikä tehdään helpoimmin klikkaamalla kursori solver-ikkunan asianomaiseen paikkaan ja maalaamalla sitten tarvittavat solut. Asetetaan rajoitusehdot : kursori constraints-ruutuun; sitten add. Rajoitusepäyhtälöt - esim. A1:A3 < D1:D3 - kannattaa kirjoittaa taulukkoa maalai-lemalla. (Huomaa myös rajoitus A1:A3 > 0.) Seuraavaa rajoitusehtoa varten add lopuksi tietenkin OK. vaihe3: Solve. b)-kohtaa varten: Avaa solver uudestaan ja lisää tarvittava rajoitusehto. )
2. Kolmen miehen on suoritettava 5 työtä seuraavan viikon aikana. Työviikko on 40 tuntia. Kunkin miehen vaatima aika eri töiden suorittamiseksi on annettu taulukossa (x:llä on merkitty tehtävät, joita työntekijä ei voi tehdä), mutta miehet voivat myös jakaa töiden suorituksen. Suoritusajat määräytyvät tällöin suhteessa siihen, kuinka suuren osan kukin mies suorittaa työstä. Esimerkiksi, jos mies 1 tekee puolet työstä 3 ja mies 3 toisen puolen, vaatii työ kokonaisuudessaan ajan 29*0,5 + 26*0,5 = 27,5. Työ 1 Työ 2 Työ 3 Työ 4 Työ 5 Mies 1 19 17 29 21 x Mies 2 24 15 27 22 14 Mies 3 18 23 26 18 10 Minimoi töiden suorittamiseen vaadittava kokonaisaika ja laske lisäksi yksittäisten miesten töihin käyttämä aika. Laadi lineaarisen ohjelmoinnin malli tehtävän ratkaisemiseksi ja ratkaise se Excelin Solverilla. Huomaa, että päätösmuuttujiksi voitaisiin valita osuuksien sijasta käytetyt ajat. Tutki myös, miten ratkaisu muuttuu, jos oletetaan, että töitä ei voi jakaa (päätösmuuttujien mahdolliset arvot ovat 0, 1 ; aseta solverissa rajoitus integer ). 3. Oheisessa kuviossa on funktioiden f 1 (x) = 2cos(x) ja f 2 (x) = 1-0.2x kuvaajat. Huomaa, että rengastettu piste on minimointitehtävän min { max(f 1 (x), f 2 (x)) 0 < x < 12 } ratkaisu. Määritä pisteen koordinaatit ratkaisemalla yo. tehtävä Excelillä. (Jos päätösmuuttuja x sijoitetaan soluun A1 ja funktiot f i soluihin B i vastaavasti - esim. B1 : =2*cos(a1) - niin kohdefunktio on max(b1; b2) jne.) Kokeile esim. alkuarvauksia x = 0, x= 0.1 (ja jotain järkevää). 2 1.5 1 0.5 0-0.5 0 2 4 6 8 10 12-1 -1.5-2 -2.5 x
1. kotitehtävä Tuotteen 1 kysyntä on 50 yksikköä/vko ja tuotteen 2 vastaavasti 40 yksikköä/ vko. Tuotteen 1 valmistaminen vaatii 1 kg raaka-ainetta ja 4 työtuntia (/tuoteyksikkö) ja tuotteen 2 valmistaminen vastaavasti 2 kg raaka-ainetta ja 3 työtuntia. Oletetaan, että raaka-ainetta on saatavissa 100 kg/vko ja työtunteja on käytettävissä 240 h/vko. Miten tuotantomäärät x 1 ja x 2 on valittava, jotta voitto maksimoituisi, kun tuotteesta i saadaan voittoa c i mk/yks (i = 1,2), missä c 1 = 7? Kokeile c 2 :n arvoja c 2 = 4, 8 ja 15. Tee laskut Excelillä; tarkastele samalla myös graafisesti. Algoritmin etenemistä voi seurata klikkaamalla solver-ikkunassa Options - Show Iteration Results ; mikä vaikutus on optiolla Assume linear model? Kotitehtävän voi palauttaa luennoilla, laskuharjoituksissa tai Systeemianalyysilaboratorion pöydällä olevaan laatikkoon. Ratkaisujen tulee olla selkeitä. (Suttupaperit toimitetaan asianmukaiseen paikkaan.) Merkitkä paperiin nimi, opiskelijanumero ja koulutusohjelma.
2. harjoitus 1. Lisätään edellisen harjoituksen tehtävään 3: min {max(2cos(x),1-0.2x) 0 < x < 12} graafinen tarkastelu: Kuvadata: Olkoon solussa A1 x ja sijoita soluun B1 minimoitava funktio B1: =max(2*cos(a1), 1-0.2*a1). Funktioiden kuvaajia varten sijoita A3: 0 ja A4: 0.2 ja jatka jonoa riittävän pitkälle eli maalaa A3:A4 ja vedä hiirellä oikea alanurkka ruutuun A63. Sijoita tämän jälkeen B3: =2*cos(a3) ja C3: =1-0.2*a3 ja kopioi nämä sitten samalla tavalla alueelle B3:C63. Kuvaajan muodostaminen: Valikosta Insert - Chart (On this ) avataan ChartWizard: Step 1 : maalaa yllä tehty alue A3:C63 Step 2 : Valitse Chart Wizard ja kuvaajan tyyppi XY/scatter (pelkät pisteet) Iterointipisteen lisääminen: Sijoita soluun A1 esim. 0.1, jotta iteraatiopiste erottuu aiemmista kuvaajista. Step 1 : muuta kuvan ominaisuuksi (source data) Step 2 : kohta series. add series. valitse x-valueksi A1 ja y-valueksi B1 Step 3 : Iteraatiopisteen pitäisi erottua kuvasta. Voit muutella sen asetuksia esim. valitsemalla sen ja hiiren oikealla painikkeella: format data series. Nyt pitäisi olla piirrettynä tehtävän kuvaajat sekä piste, joka näyttää algoritmin etenemisen. Muodosta tehtävä Solveriin (Tools - Solver) ja rastita Solverin optioista Show iteration results. Tarkastele iteroinnin kulkua. 2. Ratkaise Excelillä seuraava LP-tehtävä: (LP = Linear Programming) max z = 3x 1 + 2x 2 3x 1 + x 2 < 33 (1) 3x 1 - x 2 < 27 (2) -x 1 + 2x 2 < 10 (3) -x 1 + x 2 < 4 (4) x 1, x 2 > 0 Tarkastele myös graafisesti: Ratkaise rajoitusehdoista (1)-(4) jokaisesta erikseen x 2 :n lauseke. Kirjoita tyhjään soluun (esim. A1) x 1 ja viereisiin soluihin x 2 :n lausekkeet: -2 =-3*A1+33 =3*A1-27 jne Anna x 1 :n juosta allekkain esim. -2, -1, 0, 1, 2,, 15 ja kopioi hiirellä vetämällä x 2 :n lausekkeet vastaavasti kuin edellisessä tehtävässä. Muodosta kuvaaja ja lisää siihen iteraatiopiste kopioimalla ja liittämällä tehtävän päätösmuuttujat x 1 ja x 2 (ks. tehtävä 1). Kuvaajan akseleiden piirtoaluetta voi myös muuntaa: kaksoisklikkaa kuvaajaa, valitse x-akseli, valikosta Format - Selected Axis, Scale, aseta minimum 0 ja maximum 10. Vastaavasti voidaan muuntaa y-akseli. Tarkastele iteroinnin kulkua rastittamalla Solverin optioissa Show iteration results.
3. Rakennusyhtiö omistaa 800 eekkeriä (1 eekkeri = 4047 aaria) maata, jolle voidaan rakentaa omakoti-, pari- sekä kolmiperhetaloja. Arvioidaan, että omakotitalon rakentaminen antaa yhtiölle voittoa $10000, omakotitalon vaatima maapinta-ala on 2 eekkeriä, kunnallistekniikka aiheuttaa kustannuksen $1000, ja omakotitalon vedenkulutus on 400 gallonaa/vrk. Paritalon kohdalla vastaavat arvot ovat $12000, 3 eekkeriä, $1200, 600 gallonaa/vrk, ja kolmiperhetalolle $15000, 4 eekkeriä, $1400 ja 840 gallonaa/vrk. On huomioitava seuraavat rajoitukset: Vähintään 50% rakennettavista taloista on oltava omakotitaloja. Kunnallistekniikan rakentamisen kustannukset ovat joka tapauksessa vähintään $100000. Alueen vedenkulutus ei saa ylittää 200000 gallonaa/vrk. Jokaista 200 perhettä kohti on varattava pinta-alaltaan 1 eekkerin suuruinen virkistysalue. Kukin virkistysalue aiheuttaa kustannuksen $800 ; lisäksi sellaisen vedenkulututuksen lasketaan olevan 450 gallonaa/vrk. Vihdoin katujen yms. rakentamiseen käytetään 15% koko alueen pinta-alasta. Rakennusyhtiön on päätettävä, millaiset määrät kunkin tyyppisiä taloja rakennetaan, kun tavoitteena on voiton maksimointi. Muodosta probleemasta lineaarinen malli ja ratkaise Excelillä. Tutki erityisesti, mitkä rajoitukset määräävät optimiratkaisun (ks. Answer report ja Sensitivity report). 2. kotitehtävä (mallinnus) Pieni yritys erikoistuu valmistamaan viittä erilaista varaosaa. Jokainen osa valmistetaan ensin metallista osastolla 1, jonka jälkeen se viimeistellään osastolla 2. Vaadittavat työajat (per 100 yksikköä) kullekin osalle ovat taulukossa. Osista saatavat voitot ovat 30, 20, 40, 25 ja 10 markkaa (per 100 yksikköä). Valmistuskapasiteetti osastolla 1 on 700 työtuntia ja osastolla 2 on 1000 työtuntia kuukaudessa. Tehtävänäsi on määrittää valmistettavien varaosien määrät maksimoidaksesi yrityksen voiton. Formuloi tehtävä lineaarisen ohjelmoinnin tehtävänä. Tehtävää ei tarvitse ratkaista numeerisesti. Osa 1 2 3 4 5 Osasto 1 (tuntia/100 yks) 2 1 3 3 1 Osasto 2 (tuntia/100 yks) 3 2 2 1 1 Voitto (mk/100 yks) 30 20 40 25 10 Tehtävän voi palauttaa luennoilla, laskuharjoituksissa tai Systeemianalyysilaboratorion pöydällä olevaan laatikkoon. Ratkaisujen tulee olla selkeitä. (Suttupaperit toimitetaan asianmukaiseen paikkaan.) Merkitkä paperiin nimi, opiskelijanumero ja koulutusohjelma.
3. harjoitus 1. Ratkaise tehtävä Simplex-algoritmilla. max z = x 1 + 2x 2 x 1 < 8 -x 1 + 2x 2 < 8 x 1 + 3x 2 < 27 3x 1-2x 2 < 21 x 1, x 2 > 0 2. Ratkaise tehtävä kaksivaihetekniikalla. max z = 4x 1 + x 2 5x 1 + 2x 2 > 12 2x 1 - x 2 = 2 -x 1 + 2x 2 < 7 x 1, x 2 > 0 3. Paperitehtaan on toimitettava asiakkaille seuraavan taulukon mukaiset tilaukset: tilaus n:o rullan leveys lukumäärä 1 5 150 2 7 200 3 9 300 Tehdas valmistaa rullia, joiden leveys on 20 (jalkaa), ja tarvittavan levyiset rullat saadaan näistä katkaisemalla. Esimerkiksi voidaan leikata kaksi rullaa leveydeltään 5 ja yksi, jonka leveys on 9, jolloin jää hukkapala leveydeltään 1 (tämä on alla olevan taulukon vaihtoehto n:o 3). On helppo todeta, että on olemassa seuraavat 6 (järkevää) tapaa katkaista rulla: Vaihtoehto n:o Leikatun palan leveys 1 2 3 4 5 6 5 0 2 2 4 1 0 7 1 1 0 0 2 0 (kpl) 9 1 0 1 0 0 2 Hukkapalan leveys 4 3 1 0 1 2 Ongelmana on luonnollisesti saada valmistettua tilatut rullat mahdollisimman pienestä määrästä tuotettuja (20 jalan levyisiä) rullia. Yhtäpitävästi voidaan minimoida hukkapalojen yhteisleveyttä - hukkapaloja ovat liian kapeat (alle 5 jalkaa) ja myös mahdollisesti syntyvät ylimääräiset 5 jalkaa leveät ja leveämmät rullat.
4. Ratkaise tehtävä Max z = 7x 1-3x 2 2x 1 + 4x 2 = 15-3x 1 + 2x 2 > 3 x 1, x 2 > 0 taulukkomuotoisella Simplex-algoritmilla käyttäen M-tekniikkaa. Keinomuuttujat r 1 ja r 2 eliminoidaan muuttamalla kohdefunktio muotoon z = 7x 1-3x 2 - M(r 1 + r 2 ), missä sakkotermille M voidaan asettaa suhteessa suuri vakioarvo (esim. M = 100). 3. Kotitehtävä Ratkaise tehtävä Simplex-algoritmilla. max z = 16x 1 + 15x 2 40x 1 + 31x 2 < 124 -x 1 + x 2 < 1 x 1 < 3 x 1, x 2 > 0 Selosta vastauksessasi algoritmin etenemisen vaiheet ja päättymiskriteeri.
4. harjoitus 1. Muodosta seuraavien LP-tehtävien duaalit. Ratkaise sekä primaali että duaali ja tee havaintoja. a) b) c) d) min z = 2x 1 - x 2 + 3x 3 + 5x 4 6x 1 + 2x 2 - x 3 + x 4 > 8 2x 1 - x 2 + 5x 4 = 8 x 1 + x 2 + 2x 3 + x 4 < 10 x 1, x 2, x 3, x 4 > 0 max z = 5x 1 + 6x 2 3x 1 + 4x 2 < 16 -x 1 + 5x 2 > 3 x 1 R x 2 > 0 min z = 3x 1 + 4x 2 + 6x 3 5x 1 + 2x 2 > 20 x 1, x 3 > 0 x 2 < 0 max z = x 1 + x 2 2x 1 + x 2 = 5 3x 1 - x 2 = 6 x 1, x 2 R 2. (Perheenäidin ongelma) Perheenäiti pyrkii valmistamaan mahdollisimman vähin kustannuksin aterian, joka tyydyttää perheen päivittäisen proteiinin ja kalsiumin tarpeen: vähintään 50g proteiinia ja vähintään 800mg kalsiumia. Formuloi ongelma LPtehtävänä seuraavan taulukon avulla: Ruoka-aine j yksikköhinta (c j ) Perunat 0.60 Tomaatti 2.70 Sekaleipä 0.50 Voi 0.20 Maito 2.30 Sardiinit 4.50 Banaani 1.50 Annos 1 peruna (iso) 1 tomaatti 1 viipale 50g 2 dl 2 kpl 1 banaani proteiinia (g) /annos (a 1j ) 3.7 1.0 2.2 0 8.1 5.9 1.2 kalsiumia (mg) /annos (a 2j ) 22.7 6.2 10.8 1.2 296.7 91.7 6.8 Oletetaan toisaalta, että paikallinen apteekkari myy proteiini- ja kalsiumpillereitä. Hänen on päätettävä sellainen proteiinin yksikköhinta y 1 ja kalsiumin yksikköhinta y 2, että pillerit olisivat hinnan suhteen kilpailukykyisiä ruoka-aineiden kanssa, ja toisaalta hän
pyrkii voiton maksimoimiseksi nostamaan hinnat mahdollisimman korkeiksi. Tämä tarkoittaa, että hän pyrkii määräämään mahdollisimman korkean hinnan nimenomaan perheenäidin tarvitsemalle yhdistelmälle 50g proteiinia ja 800mg kalsiumia. Formuloi myös apteekkarin ongelma LP-tehtävänä. Totea, että perheenäidin ongelma ja apteekkarin ongelma ovat primaali-duaalipari. Tarkastele ratkaisuja. Katso lopuksi vielä ongelman interaktiivista toteutusta sivuilta: www.mcs.anl.gov/home/otc/guide/casestudies/diet/ 3. Tietokoneita valmistava yritys ennustaa kysynnän olevan seuraavina n:nä kuukautena d i, i = 1,...,n. Joka kuukausi yritys voi valmistaa korkeintaan r yksikköä käyttäen perustuotantoa (kustannus b). Lisätuotantoa yritys saa ylitöillä (kustannus c>b). Yritys voi varastoida tietokoneita kustannuksella s. Formuloi kustannusten minimointitehtävä lineaarisen optimoinnin tehtävänä. Pohdi miten malliin saataisiin esim. ehto, että yli kuusi kuukautta varastossa olleet tietokoneet eivät kelpaa myytäviksi. Pohdi mitä voidaan sanoa ratkaisusta, jos varastointikustannus on ylityö- ja perustuotantokustannusten erotusta kalliimpaa. 4. extratehtävä. Määrää seuraavan tehtävän kaikki optimiratkaisut (myös eiekstreemipisteratkaisut): max z = 2x 1 - x 2 + 3x 3 x 1 - x 2 + 5x 3 < 10 x 3 < 30 2x 1 - x 2 + 3x 3 < 40 x 1, x 2, x 3 > 0 4. kotitehtävä Määritä LP-tehtävän max z = 5x 1 + 6x 2 + 6x 3 5x 1 + 3x 2 + x 3 < 7 x 1 + 2x 2 + 6x 3 < 14 x 1, x 2, x 3 > 0 ratkaisu, siten että muodostat tehtävän duaalin ja ratkaiset sen graafisesti. Esitä tämän jälkeen alkuperäisen tehtävän optimiratkaisu ja kohdefunktion arvo siinä. Mitä huomataan alkuperäisen tehtävän ja sen duaalin kohdefunktioiden arvoista optimipisteissä?
5. Harjoitus 1. Ratkaise seuraavan pelin Nashin tasapaino(t). L C R T 0,4 4,0 5,3 M 4,0 0,4 5,3 B 3,5 3,5 6,6 Pelaajan 1 ja 2 strategiat ovat (T,M tai B) ja (L,C tai R), vastaavasti. Pelaajien kokemat hyödyt ovat taulukossa, esim. jos pelaajat pelaavat strategioilla (T,L), pelaaja 1 saa hyödyn 0 ja pelaaja 2 hyödyn 4. 2. Tutkitaan Cournot n duopolimallia. Mallissa kaksi yritystä, yritys 1 ja 2, tuottavat homogeenista tuotetta samoille markkinoille. Merkitään kunkin yrityksen tuotantomääriä q 1 ja q 2 :lla, tuotteen hintaa P:llä ja yksikkötuotantokustannusta c:llä. Tuotteen myyntihinta määräytyy tuotantomäärien perusteella seuraavasti, P(q 1,q 2 )=a-q 1 -q 2, 0<c<a. Yritykset päättävät omista tuotantomääristään samanaikaisesti. Ratkaise Nashin tasapaino, kun yritykset maksimoivat tuottoaan π i =q i (P(q 1,q 2 )-c). 3. Miten tilanne muuttuu, jos toinen yrityksistä toimii johtajana ja toinen toimii seuraajana? Tällöin johtaja päättää tuotantomäärästään ensin, seuraaja havaitsee tämän ja päättää oman tuotantomääränsä. 4. Etsi seuraavan pelin sekastrategioiden Nash tasapaino(t). L R T 2,1 0,2 B 1,2 3,0 5. Määritä Nashin neuvottelutulos siirrettävillä hyödyillä (transferrable utility, TU) minimaxarvon avulla. L M R T 10,0 7,1-4,-4 B 0,10 4,0-5,-5 5. Kotitehtävä Määritä ns. sukupuolten taistelu pelin puhtaiden strategioiden Nashin tasapaino(t). Pat haluaisi lähteä nyrkkeilyotteluun ja Chris oopperaan. Jos pariskunta päättää mennä eri paikkaan, molempien hyödyt ovat nollia. Pat ooppera nyrkkeily Chris ooppera 2,1 0,0 nyrkkeily 0,0 1,2 Pat ja Chris päättävät toimistaan samanaikaisesti; miten pelissä tulee käymään? Miten kävisi, jos vaihtoehtona olisi lisäksi ravintola, jolloin molemmat saisivat hyödyn 3?
6. harjoitus 1. Ratkaise tavoiteohjelmointitehtävä: 1. tavoite 12x 1 + 9x 2 + 15x 3 > 125 2. tavoite 5x 1 + 3x 2 + 4x 3 = 40 3. tavoite 5x 1 + 7x 2 + 8x 3 < 55 x i > 0 i. Määritä x i :t sekä kuinka paljon tavoitteista joudutaan tinkimään. (Mahdollinen tulkinta: 1. tavoite: projektin tuottama voitto 2. tavoite: työvoimatarpeen säilyttäminen ennallaan 3. tavoite: yläraja tarvittaville investoinneille) 2. 15 miljoonaa eekkeriä valtion omistamaa viljelysmaata on jaettava kolmen viljalajikkeen (1, 2, ja 3) kesken. Valtiolla on viljelysmaahan liittyen seuraavanlaisia tavoitteita : 1) Viljan viennin tulisi tuottaa ainakin 70 milj. dollaria valuuttaa. 2) Kotimaiseen käyttöön olisi oltava riittävästi viljaa ainakin 1,75 milj. ihmisen ravinnontarpeen tyydyttämiseen. 3) Viljelyn olisi työllistettävä 200000 henkeä. Seuraavassa taulukossa on esitetty kunkin lajikkeen osalta 1000 viljellystä eekkeristä saatava hyöty yllämainittujen tavoitteiden suhteen: lajike 1 lajike 2 lajike 3 valuutta $ 3000 $ 5000 $ 4000 ravinto 150 henkeä 75 henkeä 100 henkeä työpaikat 10 henkeä 15 henkeä 12 henkeä a) Oletetaan, että tavoitteiden keskinäinen tärkeys määritellään siten, että seuraavia poikkeamia tavoitteista pidetään yhtä vakavina: 1) $100:n vajaus valuuttatavoitteessa, 2) 1 hlö:n vajaus elintarviketuotantotavoitteessa, 3) 1 hlö:n poikkeama (suuntaan tai toiseen) työllistämistavoitteessa. Muodosta lineaarisen ohjelmoinnin malli, jolla käytettevissä oleva pinta-ala jaetaan optimaalisesti lajikkeiden kesken. b) Oletetaan (päinvastoin kuin a)-kohdassa), että tavoitteita pidetään tärkeydeltään täysin eriarvoisina siten, että ne pyritään toteuttamaan yllä esitetyssä järjestyksessä. Formuloi ja ratkaise pinta-alan jakamiseen liittyvä tavoiteohjelmointitehtävä b1) painokerrointekniikalla (streamlined procedure (ks. Taha, 8.3)), b2) monivaihetekniikalla (sequential procedure).
3. Teemu Teekkari haluaa suunnitella ajankäyttönsä seuraavasti: Vuorokauden tunnit käytetään nukkumiseen, opiskeluun ja huvitteluun. Nukkumiseen käytetään korkeintaan kaksitoista tuntia vuorokaudessa. Opiskeluun käytettävä aika ei ylitä huvitteluajan ja kaksinkertaisen nukkumisajan summaa. Formuloi tehtävä monitavoiteoptimoinnin tehtävänä ja tunnista Pareto-optimaaliset pisteet päätösavaruudessa. 6. kotitehtävä Aiot sijoittaa 40000 markkaa eri sijoituskohteisiin. Oletetaan, että säästötilillä saat 7 %:n koron, obligaatioilla 9 % sekä sijoittamalla osakkeisiin noin 14 %:n tuoton. Erilaisista riskeistä johtuen olet muodostanut seuraavat tavoitteet: Vuosittaisen tuoton on oltava vähintään 5000 markkaa. Osakkeisiin sijoitat vähintään 10000 markkaa. Sijoitat säästötilille ja obligaatioihin yhteensä enemmän kuin osakkeisiin. (A) Sijoituksesi säästötilille ovat vähintään 5000 markkaa ja enintään 10000 markkaa. (B) Kaikkiaan sijoitat enintään 40000 markkaa. a) Formuloi sijoittajan tavoitteista matemaattinen malli maksimoimalla tuoton odotusarvoa rajoitusehtoina annetut tavoitteet. b) Havaitaan, että kyseisiä tavoitteita ei voida toteuttaa samanaikaisesti. Sen vuoksi olet valmis tinkimään ehdoista A ja B siten, että haluat minimoida tavoitteista tingityn määrän (tavoitteista A ja B poiketun summan). Muodosta uusi tehtävä, jonka voit myös ratkaista. Ratkaise tehtävä Excelillä.
7. harjoitus 1. Ratkaise seuraava lineaarinen kokonaislukutehtävä: max z = 14x 1 + 30x 2 5x 1 + 7x 2 < 35 4x 1 + 9x 2 < 36 x 1, x 2 N 2. Asuntola-alueen asemakaava : 1 A 2 B 3 I K G F 4 5 C H J 6 E 7 D 8 Tehtävänä on sijoittaa risteyksiin ja kulmiin (numeroitu 1-8) minimimäärä puhelimia niin, että jokaisella kadulla (A-K) on vähintään yksi puhelin. 3. Taulukossa 3 puhelinyhtiön kuukausimaksut ja minuuttiveloitukset (kaukopuheluista): yhtiö kkmaksu MB 16 PB 25 BB 18 /min 0.25 0.21 0.22 Oletetaan: 1. Kaukopuheluja puhutaan 200 min/kk. 2. Kkmaksu maksetaan vain jos palvelua käytetään. Jos yhtiön i (i = 1, 2, 3) palveluja käytetään x i min/kk, mitkä x i : den arvot minimoivat kustannukset? 4. (kirjan esim. 9.2-5) Kolmen tavaratilauksen sovitut toimituspäivät ja myöhästymissakot (mk/päivä) sekä kullekin tilaukselle aika, jonka tavaran valmistus/toimitus kestää : Tilaus kesto sovittu aika myöh.sakko 1 2 3 5 20 15 25 22 35 19 12 34
Kaikki ajat on ilmoitettu päivissä ( nyt on päivä 0). Missä järjestyksessä tilaukset kannattaa toimittaa, jotta myöhästymissakkoja tarvitsisi maksaa mahdollisimman vähän? 5. Etsi seuraavasta verkosta lyhin polku solmusta 1 solmuun 6 muodostamalla ongelmasta lineaarisen ohjelmoinnin tehtävä. Kaikki kaaret voidaan olettaa kaksisuuntaiseksi samalla kustannuksella. Ratkaise Excelillä. 15 13 2 4 1 4 9 2 5 6 16 16 3 5 16 Vihje: 1. Lisää verkkoon uusi kuvitteellinen kaari solmujen 1 ja 6 välillä siten että, kustannus kaarella suuntaa 1 6 on erittäin suuri (esim. 500) ja suuntaa 6 1 olematon (=0). 2. Muodosta 6x6 päätösmuuttujamatriisi Y = [y ij ], jossa muuttuja y ij kertoo onko kaarella i j virtausta vai ei. Muodosta myös vastaava 6x6 kustannusmatriisi C, johon laitetaan olemattomille kaarille (esim. 1 4) suuri kustannus. Aseta lisäksi kustannusmatriisin diagonaalille eli kaarelle solmusta samaan solmuun suuri kustannus. Laske matriisien Y ja C avulla virtausten kokonaiskustannus verkossa. 3. Aseta kuhunkin solmuun tulevat virtaukset ja lähtevät virtaukset saman suuruisiksi eli laske Y matriisin rivi ja sarakesummat ja aseta nämä saman suuruisiksi solverissa. 4. Rajoita solverissa virtaukset y ij välille [0,1]. Aseta lisäksi rajoitus, että virtaus kaarella 6 1 on yhden suuruinen. Ratkaise minimivirtauskustannus Solverilla. 5. Lue lyhin polku solmusta 1 solmuun 6 virtausmuuttujien arvoista optimissa. 6. Ratkaise Branch&Bound-algoritmilla seuraava tehtävä. 14 max z= 3x 1 +2x 2 2x 1 +5x 2 9 4x 1 +2x 2 9 x 1,x 2 0, x 1,x 2 N
7. kotitehtävä Teatteriryhmän jäsenistö koostuu seuraavista näyttelijöistä, joilla on lueteltuja teatteritaitoja. Näyttelijä 1: ilmeikäs Näyttelijä 2: tanssija Näyttelijä 3: lihaksikas Näyttelijä 4: ilmeikäs, tanssija Näyttelijä 5: ilmeikäs, tanssija Näyttelijä 6: ilmeikäs, lihaksikas Seuraavan viikon näytelmään tarvitaan kolme ilmeikästä, kaksi tanssijaa ja yksi lihaksikas näyttelijä. Muodosta optimointitehtävä, joka vastaa kysymykseen pystyykö ryhmä esittämään näytelmän. Toisin sanoen, löytyykö ryhmästä tarvittavan teatteritaidon omaava näyttelijä jokaiseen näytelmässä tarvittavaan osaan, kun yksi näyttelijä voi esittää kerrallaan vain yhtä osaa. Pohdi lisäksi, tarvitaanko optimointitehtävän muodostamiseen välttämättä kokonaislukumuuttujia.
8. harjoitus 1. Etsi seuraavien funktioiden gradientin nollakohdat ja tutki, ovatko ne (lokaaleja) maksimi- tai minimikohtia: a) f(x) = x sin(x), -0.5 < x < 0.5, b) g(x) = 2x 4 + x, x R, c) h(x) = sin 4 (x), -1 < x < 1, d) k(x) = x 3 (x 2-1), x R. 2. Sama juttu: a) f(x, y) = x 3 + y 3-3xy, b) f(x, y, z) = 2x 2 + y 2 + z 2 + 6(x + y + z) + 2 xyz 3. Totea, että pisteet (0, 3,1), (0, 1, -1), (1, 2, 0), (2, 1, 1) ja (2, 3, -1) ovat funktion f(x, y, z) = 2xyz - 4xz - 2yz + x 2 + y 2 + z 2-2x - 4y + 4z stationaarisia pisteitä. Tutki, mitkä niistä ovat ääriarvokohtia. (Käytä MATLAB:ia apuna.) 4. Neljästä sauvasta muodostuva ketju riippuu kahden samalle korkeudelle hakatun naulan varassa (ks. kuvio alla). Naulojen etäisyys on kolme pituusyksikköä. Kaikki sauvat ovat identtisiä massaltaan (yksikkömassa) ja pituudeltaan (yhden pituusyksikön). Oletetaan, että ketju asettuu siten että, sen potentiaalienergia minimoituu. Yhden sauvan potentiaalienergia voidaan siis laskea sauvan keskipisteen etäisyytenä nollatasosta eli naulojen tasosta. Laske sauvojen päätepisteiden koordinaatit potentiaaliminimissä. (Koordinaatiston origo on vasemman puoleisen naulan kohdalla.) Vihje: Merkitse sauvan i oikean puoleisen päädyn poikkeamaa sauvan i-1 oikean puoleista päästä (x i,y i ). Muodosta potentiaalienergian lauseke ja rajoitusehdot muuttujien y i avulla. Lausu Lagrangen funktio ja ratkaise siitä y i Lagrangen kertoimien funktiona. Ratkaise Lagrangen kertoimet Excelin avulla ja laske poikkeamat. y 1 x 1
8. Kotitehtävä Rakenna alla esitetyn kuvan mukainen kanava siten että, kanavan poikkileikkauspintaala on 20 m 2 ja kanavan pohjan ja reunojen yhteenlaskettu pituus minimoituu. Käytä kanavan suunnitteluparametreina pohjan pituutta (w), kanavan syvyyttä (d) ja reunojen kulmausta (θ). Kummassakin reunassa on sama kulmaus. d θ w θ Muodosta tehtävän Lagrangen funktio ja sen avulla välttämättömät (ensimmäisen kertaluvun) ehdot optimille. Ratkaise ehdot eli optimaalinen pohjan pituus, kanavan syvyys ja reunojen kulmaus. Optimiratkaisun voi tarkistaa Excel:in Solver:in avulla.
9. harjoitus 1. Tarkastellaan optimointitehtävää a) max x 1 + 4 x 2 x 1 2 + x 2 < 5, x 2 < 3, x i > 0, i = 1, 2. b) max 9x 1 + 2 x 2, c) max 15x 1 + 2 x 2, b)- ja c)-kohdissa samat rajoitusehdot kuin a):ssa. Esitä tälle tehtävälle Kuhn-Tuckerin välttämättömät ehdot ja tutki niiden avulla, onko piste (x 1, x 2 ) = ( 2, 3) optimiratkaisu. 2. Tutki Kuhn-Tuckerin ehtojen avulla, voiko piste x = (x 1, x 2, x 3 ) = (3, 0, 3/2) olla optimointitehtävän max f(x) = 2 x1 5 + x 2, x 1 + x 2 + x 3 > 1, x 2 1 + 2 x 2 2 + 2 x 3 < 12, x 1 > 2 x 3, x i > 0, i = 1, 2, 3, optimiratkaisu. 3. Tarkastellaan LP-tehtävää max 5 x 1 + 8 x 2 -x 1 + 2 x 2 < 10 (1) 9 x 1 + 3 x 2 < 57 (2) x 1 + 4 x 2 > 12 (3). a) Ratkaise tehtävä graafisesti. b) Laske rajoitusta (2) vastaava Lagrangen kerroin. c) Miten optimiarvo muuttuu, jos epäyhtälön (2) oikean puolen arvoksi muutetaan 57 + δ ( δ pieni)? 4. Ratkaise tehtävä min z = (x 1-3) 2 +(x 2-2) 2 x 2 1 -x 2-3 0 x 2-1 =0 -x 1 0 graafisesti, ja tutki toteuttaako piste välttämättömät KKT-ehdot.
9. kotitehtävä Etsi optimointitehtävän min (x 1-6) 2 + (x 2-3) 2 x 1 2 - x 2 < 0, -x 1 + x 2-2 = 0, x 1 0, x 2 < 5 ratkaisu geometrisesti. Esitä Kuhn-Tuckerin välttämättömät ehdot ja totea, että ne ovat voimassa yllä annetulle tehtävälle optimipisteessä.
10. harjoitus 1. Etsi seuraavien funktioiden maksimikohta puolitusmenetelmällä; jatka algoritmia, kunnes epävarmuusvälin pituus on < 0.05. a) f ( x) = x cos( x), 0 x π. b) 4x, kun 0 x 2, f ( x) = 4 x, kun 2 x 4. c) 2 f ( x) = ( x 3), 2 x 4. 2. Johda kaava puolitusmenetelmässä tarvittavien iteraatioaskelten lukumäärälle n, kun alkuperäisen epävarmuusvälin pituus on L0 ( = b0 a0 ) ja vaaditaan, että L n δ, missä 0 < δ < L 0. 3. Koodaa MATLABilla kultaisen leikkauksen ja Newtonin yksiulotteiset minimointialgoritmit ja testaa niitä funktioon θ( λ) = λ 3 ( 4 3 λ ), λ R. T T 4. Olkoon f ( x) = ( 1/ 2 ) x Qx x b, missä Q on positiivisesti definiitti symmetrinen n n - matriisi ja b R n. Tutkitaan tehtävän min f ( x), x R n ratkaisemista gradienttimenetelmällä. a) Määritä λ k ja d k iteraatiossa x + 1 = x + λ d. k k k k 5. (PNS-menetelmä) Ratkaise mallin b i = a i T x + ε i kertoimet x, missä ε i on mittausvirhe, tehtävistä a) Min Ax b 2, missä A on m x n-matriisi ja b m-pystyvektori. b) Min Ax b 2 s.e. l i x i u I 6. (PNS-menetelmä) Tiedetään, että y riippuu x:stä kaavan y = α 1 e α 2 x + α 3 x + ε mukaisesti, kun 0 < x < 10 (ε on satunnaismuuttuja, jonka odotusarvo on 0 ja varianssi pieni). Estimoi parametrit α i pienimmän neliösumman menetelmällä havainnoista (ks.viereinen sivu). 10. kotitehtävä Etsitään kultaisen leikkauksen algoritmilla funktion f(x) = x 2 sin x minimikohtaa välillä 3 < x < 6. Tee kolme iteraatioaskelta.
Epälineaarinen PNS-estimointi (tehtävä 6) Funktio y = α 1 e α2 x + α 3 x kirjoitettuna matlab-funktioksi nonlin1.m Matlab-funktio resid1.m ( residuaali ), joka laskee annettujen arvojen y poikkeamat funktion nonlin1 arvoista Function y = nonlin1(a,x) y=a(1)*exp(a(2)*x)+a(3)*x; Function e = resid1(a,x,y) e = y-nonlin1(a,x); matlab-ajo: >>x=0:0.01:10;>>a1=[2.5-0.5 0.2]; (parametrien α I oikeat arvot) >>y=nonlin1(a1,x);>>xx=10*rand(1,20); >>yy=nonlin1(a1,xx)+0.1*randn(size(xx)); ( mitatut y-arvot (sis. kohinaa)) >>plot(x,y,xx,yy,'*'),grid,hold (yleissilmäys) Current plot held ( tositilanteessa tunnetaan vain xx, yy >>a0=[2 0 0]; ja funktion muoto; a 0 on alkuarvaus) >>a=leastsq('resid1',a0,[],[],xx,yy) (ks. esim. help leastsq) a = 2.5692-0.5018 0.1982 (a on α:n PNS-estimaatti) >>yhat=nonlin1(a,x); (lasketaan estimoitu funktio koko välillä >>plot(x,yhat) 0 < x < 10 ja piirretään samaan kuvaan)
11. harjoitus 1. Ratkaise tehtävä min f(x) = (x 1 + 2) 4 + (x 1-2x 2 ) 2 Newtonin menetelmällä (Matlabilla tai Excelillä). 2. Määritä kvadraattista ulkopuolista sakkofunktiota käyttäen Rosenbrockin funktion f(x) = (x 1-2) 4 + (x 1-2x 2 ) 2 minimikohta sidosehdolla x 2 = x 1 2. Opastus: Laskeminen: Kirjoita matlabfunktio - esim. rosen.m - joka on muotoa y = rosen(x,r) ja joka laskee funktion f(x) + r g(x) 2 pisteessä x = (x(1), x(2)), missä 2 g(x) = x 1 - x 2 ja r on sakkokerroin,. Piirtäminen: Kirjoita matlab-funktio - esim. rosenxy.m - joka on muotoa z = rosenxy(x,y) ja joka laskee f :n arvon pisteessä (x,y). Tasa-arvokäyrästön ja sallitun Käyrän piirtäminen: kuvaajapinta: >>figure; mesh(x,y,z)) >> u=0:0.01:2.5; v=0:0.01:1.5; [x,y]=meshgrid(u,v); >> z=rosenxy(x,y); >> contour(x,y,z,100), grid, hold on; >> plot(u,u.^2) Matlab-ajo: >>x0 = [ *, * ] (*:ien paikalle alkuarvaus) >>x0 = fminu( rosen,x0,[],[],0.1), plot(x0(1),x0(2), o ) Tässä fminu-funktion viimeinen argumentti on sakkokertoimen r arvo - sitä kasvatetaan joka kierroksella (esim. 10-kertaiseksi). (Oikean ratkaisupisteen x 1 -koordinaatti tuntuu olevan 0.9455789882962.) Kokeile, mitä tapahtuu, jos annat heti alussa sakkokertoimelle suuren arvon, esim. r = 1000000. 3. Tarkastellaan saman kohdefunktion minimoimista kuin edellisessä probleemassa; rajoitusehtona on nyt a) x 2 > x 1 2 tai b) x 2 < x 1 2. Käytetään estefunktiota (eli sisäpuolista sakkofunktiota) käyvässä alueessa. 1 g( x), missä g(x) < 0
Matlab ohjeet tehtävään 1. Minimoitava kohdefunktio (fun), sen gradientti (gradfun) ja Hessen matriisi (hessfun) sekä Newtonin menetelmä (newt). Function y=fun(x) Y=(x(1)+2)^4+(x(1)-2*x(2))^2; Function y=gradfun(x) Y=[4*(x(1)+2)^3+2*x(1)-4*x(2),-4*x(1)+8*x(2)]'; Function y=hessfun(x) Y=[12*(x(1)+2)^2+2,-4;-4,8]; Function y=newt(x,f,f1,f2) g=feval(f,x); g1=feval(f1,x); g2=feval(f2,x); y=x-inv(g2)*g1; 11. kotitehtävä Ratkaistaan tehtävää 2 2 min f ( x) = ( x x ) + ( 1 x ) 2 1 gradienttimenetelmällä (steepest descent). Suorita 3 iteraatiota ottaen alkuarvoksi x=(0,0). Lisätehtävä 1 2 2 Olkoon tehtävä: Min f ( x ) = ( x + x ) 2 1 2 1 2 s.e. x 1 2. Muodosta logaritmista sakkofunktiota B( x) = log g j ( x), missä g j ( x ) on rajoitusehto muodossa g j ( x) 0, käyttäen j estetehtävä: Min f ( x) + ε k B( x) s.e. g j ( x ) < 0. Ratkaise estetehtävä parametrin ε arvoilla ε 1 = 3, ε 2 = 0.3, ε 3 = 0.03. Mitä pistettä estetehtävien ratkaisut lähestyvät?
12. harjoitus Oletetaan, että tietty summa K (esim. K=1000) sijoitetaan arvopapereihin, joita on esim. 4 erilaista. Jos arvopaperiin i (i = 1,, 4) sijoitetaan summa x i ja sen tuotto (rahayksikköä kohti sopivan tarkastelujakson - esim. kuukauden - aikana) on a i, on koko salkun tuotto Y = a 1 x 1 + + a 4 x 4. Kukin a i on satunnaismuuttuja; olkoon a i :n odotusarvo E(a i ) = µ i ja varianssi Var(a i ) = σ i 2, ja olkoon a i :n ja a j :n kovarianssi Cov(a i, a j ) = κ ij (kun i j). Silloin portfolion tuoton odotusarvo on ja varianssi z = EY = µ 1 x 1 + + µ 4 x 4 2 2 w = Var(Y) = σ x + κ x x i i i i, j i j ij i j. Optimointiprobleemana on löytää sellaiset kertoimet x i, että z olisi mahdollisimman suuri (tuoton maksimointi) ja w olisi mahdollisimman pieni (riskin minimointi). Kohdefunktio z on lineaarinen ja w on kvadraattinen. Päätösvektorin x = (x 1,, x 4 ) on toteutettava rajoitusehdot x 1 + + x 4 = K, x i > 0 ( i = 1,, 4). Esim 1 ( älä laita kaikkia munia samaan koriin ): Jos esim. 0 < µ 1 = µ 2 (likimain) ja 2 2 σ i σ i ja osakkeiden 1 ja 2 hintakehitykset voidaan olettaa lähes riippumattomiksi, jolloin κ 12 0, on edullisempaa valita x 1 = x 2 = 0.5K kuin x 1 = K, x 2 = 0 (tai päinvastoin). Tuoton odotusarvo on molemmissa tapauksissa sama, mutta ensinmainitussa varianssi on pienempi (tarkista!). Esim 2 : Vielä parempi, jos κ 12 < 0, kuten kaavaa tarkastelemalla ymmärretään. Var(a 1 x 1 + a 2 x 2 ) = σ 1 2 x 1 2 + σ 2 2 x 2 2 + 2 κ 12 x 1 x 2
Tilannetta voidaan tarkastella graafisesti muodostamalla zw-tason niiden pisteiden joukko, jotka vastaavat jotain sallittua ratkaisua x : w z Reunakäyrän tummennetulla osalla ovat probleeman Pareto-pisteet: ne ovat optimaalisia siinä mielessä, että sellaisesta pisteestä mihin tahansa muuhun käypään pisteeseen - vaikka johonkin toiseen Pareto-pisteeseenkin - siirryttäessä ainakin toinen kohdefunktioista huononee (z pienenee tai w kasvaa). Matlab-ohjeita: Talleta laskuharjoitussivulta matlab tiedosto portfolio.m johonkin paikalliseen hakemistoon (esim. C:\Temp). Tarkastele portfolio.m -tiedostoa: Matriisin O (n x k -matriisi) sarakkeet ovat aikasarjoja, joissa alkioina ovat arvopaperien hinnat (siis k arvopaperin hinnat n kk:n ajalta), muodostetaan (n-1)xk - matriisi D = O(2:n,:) - O(1:(n-1),:), jonka alkiot ovat siis paperien hintojen muutokset. Skaalataan lisäksi matriisin D sarakkeittain kyseisen osakkeen tämän hetkisellä kurssilla. Silloin vaakavektorin m = mean(d) alkiot ovat keskimääräiset hinnanmuutokset suhteutettuna nykykursseihin - ne ovat siis odotusarvojen µ i estimaatteja. Vastaavasti k x k -matriisi C = cov(d) sisältää varianssi- ja kovarianssiestimaatit (varianssit diagonaalilla, ts. pätee κ ii = σ i 2 ). Kohdefunktiot voidaan siis laskea kaavoilla z = m*x, w = x *C*x (pystyvektori x sisältää päätösmuuttujat). Paretopisteitä lasketaan kahdella tavalla: painokerroin- (Tapa 1) ja epsilon rajoitusehtomenetelmällä (Tapa 2).