Matemaattinen optimointi I

Koko: px
Aloita esitys sivulta:

Download "Matemaattinen optimointi I"

Transkriptio

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

2 Sisältö Esipuhe 1 1 Matemaattinen mallinnus ja ongelmien ratkaisu Sovellutuksista Optimointi ja operaatioanalyysi Herkkyysanalyysi, mallin ratkeavuus ja valiidisuus Deskriptiiviset mallit ja simulointi Numeerinen haku, tarkat ja heuristiset ratkaisut Deterministiset ja stokastiset mallit Deterministiset optimointimallit Päätösmuuttujat, rajoitukset ja kohdefunktiot Graafinen ratkaisu Realistiset optimointimallit Lineaariset ja epälineaariset optimointitehtävät Diskreetit optimointitehtävät Monitavoiteoptimointi Parantava haku Lokaalit ja globaalit optimit Parantava haku sallittuun suuntaan Algebralliset ehdot Unimodaaliset funktiot ja konveksit joukot Sallitun lähtöratkaisun haku Lineaariset optimointimallit Allokaatiomallit Sekoitusmallit Toiminnan suunnittelu Työvuorosuunnittelu Dynaamiset mallit Linearisoituvat epälineaariset ongelmat Lineaarinen optimointi: Simplex-menetelmä Optimiratkaisut, standardimuoto Ääriarvon haku ja kantaratkaisut Simplex-algoritmi Perinteinen Simplex-taulukko Kaksivaiheinen Simplex

3 5.6 Degeneroituneet kärjet Konvergenssi ja silmukkaan joutuminen Parannettu Simplex Simplex-menetelmä ylä- ja alarajoin varustetuille muuttujille Lineaarisen optimointitehtävän ratkaisu sisäpisteiden avulla Haku sisäpisteissä Pisteen skaalaus Affiininen skaalattu haku Lineaarisen optimoinnin duaalisuus ja herkkyysanalyysi Kvalitatiivinen herkkyysanalyysi Kvantitatiivinen herkkysanalyysi Duaaliset lineaariset optimointitehtävät Duaalitehtävien keskinäiset relaatiot Herkkyysanalyysi Parametrinen optimointi Monitavoiteoptimointi Monitavoitemalleja Tehokkaat pisteet Leksikograafinen optimointi ja tavoitteiden painotus Tavoiteoptimointi Kirjallisuutta 107 2

4 Esipuhe Optimointi sovelletun matematiikan tutkimusalana voidaan jakaa useaan eri alalajiin käyttämällä erilaisia jakoperusteita. Ehkäpä yleisin jako perustuu optimointitehtävän lineaarisuuteen: optimoititehtävä on joko lineaarinen tai epälineaarinen riippuen siinä esiintyvien kohde- ja rajoitefunktioiden ominaisuuksista. Epälineaarista optimointia käsitellään lähinnä syventävien opintojen kursseilla Konveksi analyysi ja optimointi sekä Optimointialgoritmit Matemaattinen optimointi I on puolestaan aineopintotasoinen kurssi, joka keskittyy, aivan alun yleistä osuutta lukuunottamatta, lähinnä lineaariseen optimointiin, jossa muuttujat ovat jatkuvia. Kurssin nimi sinällään on hieman harhaanjohtava, sillä se viittaa ennemminkin epälineaarisesta optimoinninista käytettävään englanninkieliseen termiin Mathematical Programming. Erilaisten fysikaalisten ilmiöiden matemaattinen mallinnus Newtonin, Einsteinin jne. laeilla johtaa yleensä epälineaarisiin optimointitehtäviin. Tällä kurssilla pyritään sen sijaan mallintamaan ihmisten suorittamien operaatioiden suunnittelua. Tällaisia ovat esimerkiksi työvuorojen suunnittelu ja käytettävissä olevien varojen tuottava investointi. Mallin muodostaa tällöin ongelman oleellisten piirteiden kuvaamiseen tarvittavien muuttujien ja relaatioiden joukko. Nämä relaatiot ovat yleensä lineaarisia. Operaatioanalyysi tai -tutkimus (operations research, management science, Unternehmensforschung, issledovanie operacji) on kvantitatiivisten menetelmien systemaattista käyttöä eri organisaatioiden toiminnassa esiintyvän päätöksenteon avustamiseksi. Operaatioanalyysiä suoritettaessa muodostetaan ongelmalle matemaattinen malli, jota analysoimalla pyritään saamaan selvät toimintaohjeet päätöksentekoa varten. Analysointi tarkoittaa yleensä toiminnan jonkinlaista optimointia. Erilaisten toimintavaihtoehtojen vertailun täytyy perustua yhteismitallisiin suureisiin, jotka kuvaavat organisaation tulevaa menestystä. Tällainen kriteeri on usein raha (suurin tuotto tai pienimmät kustannukset), joskus myös aika (nopein tapa tehdä jotakin). Todellisen elämän ongelmat ovat aina valitettavan monimutkaisia. Siksi ratkaisussa yleensä joudutaan käyttämään apuna tietokonetta. Mallin antama tulos on kuitenkin vain päätösehdotus ja lopullisen päätöksen tekee ihminen käyttäen lisäksi apunaan kokemusta, intuitiota ja tervettä järkeä. Luentomoniste perustuu emeritusprofessori Timo Leipälän vuonna 2008 kirjoittamaan erinomaiseen monisteeseen [1]. Kyseisen monisteen pääasiallisena lähteenä on käytetty kirjan [2] lukuja 1 8. Erityiskiitos Kaisa Joelle tekstin huolellisesta ladonnasta ja kuvien tuottamisesta. Turussa keväällä 2011 Marko M. Mäkelä 1

5 1 Matemaattinen mallinnus ja ongelmien ratkaisu 1.1 Sovellutuksista Operaatioanalyysi on osoittautunut hyödylliseksi erittäin monissa liike-elämän, teollisuuden, julkishallinnon sekä puolustusvoimien päätöksenteko-ongelmissa. Esimerkki 1.1. Tarkastellaan pientä timanttitukkukauppaa pitävää Mortimer Middlemania (MM). Hänen on käytävä useita kertoja vuodessa Antwerpenissä täydentämässä varastojaan. Timantit maksavat siellä 700 $ karaatilta, ja minimiostoksen timanttipörssistä on oltava aina vähintään 100 karaattia. Timantit Mortimer myy kultasepille 200 $ voitolla karaatilta. Jokainen Antwerpenin matka maksaa 2000 $ ja kestää viikon. Timanttien viikottainen kysyntä on ollut keskimäärin 55 karaattia viikossa ja edellisen vuoden tilannetta viikottain esittää kuva 1. timanttien lkm 100 aika viikoina Kuva 1: Timanttien viikottaiset kysynnät edelliseltä vuodelta Kun vuoden alussa varastossa oli 100 karaattia ja Antwerpenin ostot oheisen kuvan 2 timanttien lkm Kuva 2: Ostot Antwerpenistä aika viikoina mukaisia, niin voidaan laskea viikottaiset varastotilanteet. Oletetaan, että jos varastosta ei löydy tarpeeksi timantteja, niin ostaja ei jää odottamaan täydennyserän tuloa, vaan ostaa timanttinsa joltakin kilpailijalta. Varastoidut timantit täytyy vakuuttaa ja niihin on sitoutunut pääomaa. MM on estimoinut, että varaston ylläpito maksaa 0.5% hänen maksamastaan hinnasta eli = 3.5 $ karaatilta viikossa, ja hänestä tuntuu että edellisen vuoden toteutuneessa varastotilanteessa kuvassa 3 2

6 varasto r aika viikoina Kuva 3: Viikottaiset varastotilanteet hänellä on varsinkin loppuvuodesta ollut liian paljon tavaraa. Kuitenkin neljänä viikkona on timantteja ollut liian vähän ja MM on menettänyt sen takia seuraavat kuvan 4 tilaukset timanttien lkm 100 Kuva 4: Menetetyt tilaukset aika viikoina ja tämän takia hän ei ole saanut niistä tarjolla olevaa 200 $ voittoa karaatilta. Yllä olevassa tilanteessa ovat varastointikustannukset $, menetetystä myynnistä saamattomat voitot $ ja matkakustannukset $ eli yhteensä $. Voiko MM toimia järkevämmin? 1.2 Optimointi ja operaatioanalyysi Operaatioanalyysissa pyritään mallintamaan edellisen luvun esimerkin kaltaisia päätöksenteko-ongelmia ja koko prosessia voidaan esittää kuvan 5 kaaviolla. Ongelma Mallinnus Malli Tarkkailu Analyysi Toimeenpano Ehdotus Johtopäätökset Kuva 5: Prosessin kaavio 3

7 Ensimmäisessä vaiheessa suoritetaan mallinnus, jossa määritellään muuttujat, parametrit ja vakiot sekä niiden väliset relaatiot. Analyysivaiheessa tutkitaan mallia ja pyritään selvittämään mitä johtopäätöksiä siitä saadaan. Johtopäätökset johdetaan siis mallista ja ne voivat olla kovinkin huonoja. Jos ne näyttävät järkeviltä, voidaan ne esittää päätöksentekijälle toimeenpanoa varten. Mikäli ratkaisu ei toimi riittävän hyvin, täytyy palata alkuun ja parantaa mallia. Mallia muodostettaessa on otettava siihen mukaan a) päätöksentekijän tekemät päätökset, b) päätöksiä rajoittavat ehdot, c) kriteerit, joilla voidaan verrata eri päätösten paremmuutta. Edellisen luvun esimerkissä MM on päätöksentekijä ja hän tekee jatkuvasti erilaisia päätöksiä. Tällaisissa varaston hallintatapauksissa kuitenkin yksinkertaistetaan usein tilannetta ja rajoitutaan kahteen päätökseen: mikä on se varaston koko (reorder point), johon saavuttaessa suoritetaan täydennys ja mikä on tällaisen täydennyserän suuruus. Rajoitukset ovat nyt yksinkertaisia. Selvästikään kumpikaan päätös ei voi saada negatiivista arvoa. Lisäksi täydennyserän koon täytyy olla vähintään 100 kappaletta. Päätösten vertailukriteerinä ovat selvästikin kokonaiskustannukset. Mortimerin tavoitteena on minimoida varaston ylläpito-, täydennys- ja menetetyn myynnin kustannusten summaa. Siis yritetään määrätä ei-negatiiviset varaston ja tilauserän koot, jotka minimoivat kokonaiskustannukset. Lisäksi tilauserän koon on oltava aina vähintään 100 kappaletta. Optimointimalleissa esitetään päätöksiä päätösmuuttujina ja etsitään arvoja, jotka minimoivat tai maksimoivat niiden avulla muodostettujen kohdefunktioiden arvoja, kun pysytellään rajoitusten sallimalla alueella. Timanttiesimerkissä päätösmuuttujat ovat q : kullakin matkalla hankitun timanttierän koko r : se varaston taso, jonka saavuttaminen aiheuttaa lisätilauksen tarpeen. Rajoitukset ovat q 100 r 0, mutta kohdefunktion c(q, r) : kokonaiskustannukset käytettäessä päätösmuuttujia q ja r matemaattinen muoto jää vielä avoimeksi. 4

8 Esimerkki 1.2. (Dieettiongelma) On käytettävissä n eri ruoka-ainetta (1: hanhenmaksa, 2: osterit, 3: musta kaviaari, 4: VSOP-konjakki,..., n 2: ruisleipä, n 1: suolasilakat, n: rasvaton piimä), joiden yksikköhinnat c j tunnetaan. Tarkastellaan m eri ravinnetta (1: c-vitamiini, 2; rauta,..., m : energiamäärä), joiden päivittäiset tarpeet b i eri ikäisille, erilaista työtä tekeville ja eri sukupuolta oleville ihmisille tunnetaan. Tehtävänä on määrätä mahdollisimman halpa päivittäinen ruokavalio, kun tunnetaan yhden ruoka-aineyksikön j sisältämä ravinteen i määrä a ij. Päätösmuuttujiksi otetaan päivittäin ruoka-ainetta j kulutettavat määrät x j, j = 1,..., n, jolloin ongelman matemaattiseksi malliksi saadaan lineaarinen optimointitehtävä n min c j x j s. t. eli matriisimuodossa j=1 n j=1 a ij x j b i, x j 0, j = 1,..., n min c T x s. t. Ax b x 0. i = 1,..., m Tässä s. t. on lyhennys sanoista subject to. Jatkossa käytetään vektorista ja matriisista lihavoitua merkintää. Itse vektoria indeksoidaan yläindeksillä ja sen komponenttia taas alaindeksillä. Mallin hyvyyttä voidaan miettiä sen jälkeen, kun parametreille on kerätty datat ja tehtävä on ratkaistu. Sovelluksena voidaan esittää vuoden 1995 syyskuun hintatason mukainen ratkaisu. Parametrien A ja b arvot on saatu Osmo Turpeisen kirjasta Ruoka-ainetaulukko, 1992 ja hintatiedot c kerätty Kupittaan Citymarketista ja Alkosta. Parametriarvoina on käytetty arvoja n = 108, m = 9, jolloin ratkaisuiksi on saatu Mies v. kevyt työ (opiskelija?) 3.64 mk/vrk kulutusmaito 3.0 dl naudanmaksa 5.0 g paprika 9.8 g porsaan munuainen 33.7 g vehnäjauho 670 g Nainen v. kevyt työ (opiskelija?) 2.91 mk/vrk kulutusmaito 3.3 dl naudanmaksa 5.1 g paprika 10.9 g porsaan munuainen 12.6 g vehnäjauho 481 g 5

9 Kyseessä on operaatioanalyysin harjoitustyö c Mari Alho, Meri Karvosenoja, Niina Koivisto ja Maarit Lehtonen. Tässä oli yksinkertainen kohdefunktio, mutta palataan takaisin timanttiesimerkkiin 1.1. Jotta saataisiin aikaan kohdefunktio siihenkin, tehdään oletus, että timanttien kysyntä tapahtuu vakionopeudella 55 karaattia viikossa. Vaikka tämä ei todellisuudessa pidäkään tarkasti paikkaansa, niin sitä käyttämällä ongelma yksinkertaistuu ja kuitenkin saavutetut tulokset ovat usein hyviä. Varaston koon kuvaaja ajan funktiona on nyt sahanterän muotoinen. Nyt saadaan erilaiset tapaukset tilanteissa, joissa on varmuusvarastoa (kuva 6), ei ole varmuusvarastoa eikä menetettyä myyntituottoa (kuva 7) ja on menetettyä myyntituottoa (kuva 8). varasto r aika viikkoina Kuva 6: Varaston koon kuvaaja, kun on varmuusvarastoa. varasto r aika viikkoina Kuva 7: Varaston koko, kun ei ole varmuusvarastoa eikä menetettyä myyntituottoa. varasto r aika viikkoina Kuva 8: Varaston koko, kun on menetettyä myyntituottoa. 6

10 Vaikka varmuusvarasto on vakiokysyntänopeuden tapauksessa tarpeeton, se auttaa tilanteissa, joissa kysyntä onkin keskimääräistä suurempi. Mikäli varaston täydennystason saavuttamisen ja täydennyksen saapumisen väliaikana varasto loppuu kesken, menetetään myyntituottoa. Kahdessa ensimmäisessä tapauksessa on yhden jakson (sahanterän) pituus q/55 viikkoa, mutta viimeisessä tapauksessa tähän tulee lisäksi suureista q ja r riippuva aika, jolloin varasto on tyhjä. Analyysi olisi helpompi tapauksessa, jossa menetettyä myyntiä ei olisi. Esimerkkitapauksessa voidaan lisatä tilauserää q yhdellä yksiköllä, jolloin saadaan aina yksi yksikkö enemmän myytyä (200 $), ja tämä kattaisi varastointikustannukset 200/ viikon ajalta. Koska varastoa kuitenkin on täydennetty aina 4 6 viikon välein, tehdään yksinkertaistava lisäoletus: ei menetettyä myyntituottoa. Koska viikon kestävän Antwerpenin matkan aikana timanttien kysyntä on 55 karaattia, on vaadittava, että r 55. Muuten menetettäisiin 55 r karaattia joka jakson aikana. Varmuusvaraston suuruus on nyt r 55 ja se on pienin varaston määrä. Suurin varaston koko on r 55 + q ja keskimäärin siellä on r 55 + q/2 karaattia. Yhden jakson kokonaiskustannus on nyt 3.5 ( r 55 + q 2 ) q ja jakamalla se jakson pituudella q/55 saadaan keskimääräinen kustannus viikossa 3.5 ( r 55 + q 2 ) q Optimointitehtävä on siis min 3.5 ( r 55 + q 2 ) s. t. q 100, r q Ratkaisu on sallittu (feasible), jos päätösmuuttujien saamat arvot toteuttavat kaikki rajoitukset. Optimaaliset ratkaisut ovat sellaisia sallittuja ratkaisuja, jotka tuottavat kohdefunktion (funktioiden) arvoille parhaat mahdolliset ratkaisut. Esimerkiksi edellä q = 200, r = 90 on sallittu ratkaisu. Helposti nähdään, että r = 55 on optimaalinen täydennystason arvo. Kun se sijoitetaan kohdefunktioon, saadaan yhden muuttujan funktio c(q) = 3.5 q 2 joka on graafisesti esitettynä kuvassa , q 7

11 c q q Kuva 9: Funktion c(q) kuvaaja Derivoimalla saadaan optimiratkaisu q = , joka toteuttaa myos rajoituksen q 100. Kun se sijoitetaan kohdefunktioon, saadaan kokonaiskustannuksiksi $ viikossa eli $ vuodessa. Tämä on paljon pienempi kuin yhden vuoden toteutuneet kokonaiskustannukset $. 1.3 Herkkyysanalyysi, mallin ratkeavuus ja valiidisuus Timanttiesimerkissä oletettiin tunnetuksi kysyntänopeus, varastointikustannus ja matkakustannus Antwerpeniin. Tällaisia suureita kutsutaan parametreiksi. Jos niille annetaan erilaiset arvot, saadaan uusi ratkaisu. Tilannetta voidaan esittää kuvan 10 kaaviona. systeemin raja parametrit päätösmuuttujat sisältävä malli ja sen analyysi tulokset Kuva 10: Kaavio 8

12 Edellä suoritettu analyysi voidaan suorittaa yleisestikin. Merkitään d : viikottainen kysyntä (55 karaattia) f : varaston kiinteä täydennyskustannus (2000 $) h : varastointikustannus karaatilta viikossa (3.5 $) s : menetetystä myynnistä aiheutuva kustannus karaatilta (200 $) l : varastotäydennyksen toimitusaika (1 viikko) m : pienin tilauskoko (100 karaattia). Tällöin voidaan kirjoittaa c(q) = h q 2 + fd q. Kun c(q) derivoidaan muuttujan q suhteen ja ratkaistaan derivaatan nollakohta, saadaan optimaalinen ratkaisu q. Nyt ratkaisuksi saadaan 2fd q = h r = ld, jos q m ja r ld. Yllä oleva optimaalisen eräkoon (economic order quantity, EOQ) kaava on ensimmäisiä operaatioanalyysin sovellutuksia ja sitä on käytetty paljon. Joskus siitä on käytetty nimeä Wilsonin kaava, vaikka sen on kehittänyt Harris vuonna 1915 ja tietysti Wilsonkin, mutta vasta vuonna Nyt kun on käytettävissä yleiset kaavat, voidaan esimerkissä varioida parametrien arvoja, jotka ovat usein vaikeita määrätä luotettavasti. Jos Antwerpenin matka maksaisikin 1000 $, niin optimaalinen eräkoko olisi q = ja kustannusten ollessa 3000 $ taas q = f 3000 f 2000 f q Kuva 11: Funktion c(q) kuvaaja eri parametrin f arvoilla. Parametrien arvojen vaikutuksen tutkimista matemaattisen mallin tuottamiin tuloksiin sanotaan herkkyysanalyysiksi. Herkkyysanalyysi täytyisi aina liittää systeemien ana- 9

13 lyysiin. Edellinen esimerkki on siitä harvinainen, että ratkaisu saadaan suljetussa muodossa ja se helpottaa analysointia. Mallin ratkeavuus (tractability) kertoo, kuinka hyvin malli pystytään ratkaisemaan. Normaalisti ratkaisua ei kuitenkaan saada suljetussa muodossa, vaan se joudutaan hakemaan numeerisesti jollakin algoritmilla. Aina ei kuitenkaan mallia pystytä ratkaisemaan ollenkaan. Mallin valiidisuus taas kertoo, kuinka hyvin mallista saadut johtopäätökset pitävät paikkansa todelliselle systeemille. Yleensä operaatioanalyysissa täytyy tasapainoilla mallin valiidisuuden ja ratkeavuuden välillä. 1.4 Deskriptiiviset mallit ja simulointi Simuloinnissa jäljitellään (tavallisesti tietokoneella) todellista systeemiä. Timanttiesimerkissä voidaan tutkia jollain (r, q) parin arvolla systeemin käyttäytymistä viikottain käyttäen kohdassa 1.1 esitettyjä todellisia viikottaisia kysyntöjä vuoden ajalta. Joka viikon kohdalla täytyy 1. selvittää saapuuko MM Antwerpenistä mukanaan q karaatin timanttierä 2. tutkia, onko varaston koko r, jolloin tarvitaan tavaranhankintamatka 3. vähentää varastosta kyseisen viikon kysyntä. Kun käytetään edellä saatuja optimiarvoja q = 251 ja r = 55 sekä varaston alkutilana 100 kappaletta, saadaan seuraava simulointihistoria viikko alkukysyntä myynti- varastointi- täydennys- menetetty varasto määrä kustannus kustannus tuotto

14 viikko alkukysyntä myynti- varastointi- täydennys- menetetty varasto määrä kustannus kustannus tuotto

15 viikko alkukysyntä myynti- varastointi- täydennys- menetetty varasto määrä kustannus kustannus tuotto Simuloitu 52 viikon kokonaiskustannus on $. Tätä voidaan verrata viime vuoden kokonaiskustannuksiin $ ja EOQ mallin tuottamaan arvoon $. Simuloinnissa varastointikustannukset on laskettu kaavoilla 3.5 alkuvarasto + (alkuvarasto kysyntä), kun alkuvarasto kysyntä alkuvarasto 2 alkuvarasto, kun alkuvarasto < kysyntä. kysyntä Simuloinnilla saadaan usein hyviä tuloksia, ja yllä oleva laskelma olisi hyvä, jos kysyntä olisi jokaisena vuotena tarkalleen edellä esitetyn mukainen. Siinä on kuitenkin käytettävä kiinteitä parametriarvoja (edellä q = 251 ja r = 55) ja tällaista menettelyä voidaan kutsua deskriptiiviseksi malliksi. Parametrien arvojen vaikutus lopputulokseen voidaan selvittää vain suorittamalla koko simulointiprosessi uudelleen. 1.5 Numeerinen haku, tarkat ja heuristiset ratkaisut Merkitään suureella c(q, r) simuloinnilla saatua kokonaiskustannusta, kun siinä on käytetty arvoja q ja r. Optimointiongelmana on siis nyt min c(q, r) s. t. q 100, r 55. Numeerisessa haussa pyritään systemaattisella kokeilulla määräämään sallituissa rajoissa olevat ja mahdollisimmat hyvät arvot päätösmuuttujille. Nyt on järkevää aloittaa jatkuvan EOQ mallin antamista arvoista. Kokeillaan ensiksi 10 yksikön lisäyksiä muuttujan r arvoihin. Tällöin saadaan tuloksiksi q 0 = 251 r 0 = 55 c(q 0, r 0 ) = q 1 = 251 r 1 = 65 c(q 1, r 1 ) = q 2 = 251 r 2 = 75 c(q 2, r 2 ) = q 3 = 251 r 3 = 85 c(q 3, r 3 ) = q 4 = 251 r 4 = 95 c(q 4, r 4 ) =

16 Kiinnitetään sitten paras saaduista varaston tason r arvoista r = 85. Tämän jälkeen kokeillaan erilaisia muuttujan q arvoja, jolloin saadaan q 5 = 261 r 5 = 85 c(q 5, r 5 ) = q 6 = 241 r 6 = 85 c(q 6, r 6 ) = 72781, mutta ne eivät paranna tulosta. Saatu tulos parani oleellisesti, mutta sen ei tarvitse olla optimaalinen. Jos lähdetään liikkeelle pisteestä q 0 = 251 ja r 0 = 145, saadaan analogisesti q 0 = 251 r 0 = 145 c(q 0, r 0 ) = q 1 = 251 r 1 = 155 c(q 1, r 1 ) = q 2 = 251 r 2 = 135 c(q 2, r 2 ) = q 3 = 251 r 3 = 125 c(q 3, r 3 ) = q 4 = 261 r 4 = 135 c(q 4, r 4 ) = q 5 = 271 r 5 = 135 c(q 5, r 5 ) = Nyt saatiin edellisiä parempi tulos q = 261 ja r = 135, jolloin kustannukset ovat $. Tällaisella haulla saadut johtopäätökset pätevät varmasti vain tutkituissa pisteissä ja riippuvat siis kohdefunktion muodosta ja hakutiheydestä. Kuitenkin näyttää ilmeiseltä, että EOQ mallin tuottama eräkoko q = 251 on varsin luotettava. Tarkka optimiratkaisu on sallittu ratkaisu, joka on todistettavasti vähintään yhtä hyvä kuin mikä tahansa sallittu ratkaisu. Heuristinen eli likimääräinen ratkaisu saadaan optimointimenetelmällä, joka ei takaa tarkkaa optimaalisuutta. Nyt numeerisella haulla on löydetty timanttiongelman heuristinen optimi, mutta pitäisikö lisäksi määrätä tarkka optimi? Usein tarkan ratkaisun vaatimat mallin yksinkertaistukset tuottavat huonompia ratkaisuja kuin tarkemman mallin ratkaiseminen heuristisesti. Heuristisen ratkaisun huono puoli taas on, ettei tiedetä kuinka paljon parempia ratkaisuja on mahdollisuus saavuttaa. 1.6 Deterministiset ja stokastiset mallit Jos ei hyväksytä yksinkertaistavaa oletusta siitä, että viikottaiset kysynnät toistuvat joka vuosi identtisinä, joudutaan turvautumaan satunnaismuuttujiin. Nyt tunnetaan siis vain kysyntöjen jakautuma, jonka yhtä realisaatiota on käytetty edellä. Yksinkertaisuuden vuoksi voidaan olettaa, että kysynnät D t viikolla t ovat toisistaan riippumattomia ja identtisesti jakautuneita. Tarkasteltaessa luvussa 1.4 olevaa dataa, saadaan kysynnöille empiiriset frekvenssit, jotka on esitetty oheisessa kuvassa 12 yhtenäisellä viivalla. Jakautumana voidaan silloin käyttää katkoviivoilla esitettyä käyrää, jolloin kysynnän tiheysfunktio saa arvon 0.02 välillä [40, 70) sekä arvon 0.02/3 väleillä [10, 40) ja [70, 99). Stokastisessa simuloinnissa (yleensä kutsutaan lyhyesti simuloinniksi) generoidaan ky- 13

17 frekvenssi viikottainen kysyntä Kuva 12: Kysynnän empiiriset frekvenssit (yhtenäinen viiva) ja jakautuma (katkoviiva). synnät käyttäen annettua jakautumaa. Yhdellä kerralla saadaan siis yksi realisointi kysyntöjen muodostamalle satunnaisvektorille. Jokaista tällaista kysyntävektoria analysoidaan luvun 1.4 mukaisesti. Kun suoritetaan tämä 200 kertaa käyttäen edellä saatuja parhaita päätöksiä q = 261, r = 135 ja yllä olevaa kysynnän jakautumaa, saadaan satunnaisten vuosittaisten kokonaiskustannusten c(261, 135) keskiarvoksi $ ja empiiriseksi frekvenssiksi kuva 13. Kustannukset vaihtelevat välillä $ $ ja aikaisemmin saatu tulos $ kuuluu myös tälle välille. frekvenssi kustannus 1000 $ Kuva 13: Empiiriset frekvenssit, kun q = 261 ja r = 135. Tässä on keskimääräinen kustannus $, pienin kustannus $, suurin kustannus $ ja 31 tapauksessa 200:sta kustannus alle $. Simulointia käytetään paljon, koska se mahdollistaa monimutkaisten systeemien tutkimisen. Kuitenkin nyt 200 ajolla on vasta selvinnyt kustannusten käyttäytyminen yhdellä päätösmuuttujien arvoparilla. Lisäksi tarvitaan tilastollisia menetelmiä saatujen tulosten luotettavuuden arviointiin. Yleisesti satunnaismuuttujia sisältävien stokastisten mallien analysointi on huomattavasti hankalampaa kuin determinististen mallien ja erityisesti tämä pitää paikkansa optimoinnissa. Sen takia käytetään paljon deterministisiä malleja, joissa satunnaiset suureet korvataan deterministisillä parametreilla, ja niilläkin on usein saatu hyviä tuloksia. 14

18 2 Deterministiset optimointimallit 2.1 Päätösmuuttujat, rajoitukset ja kohdefunktiot Esimerkki 2.1. (Öljynjalostus) Crude Petroleum yhtiö valmistaa öljynjalostamossaan saudiarabialaisesta ja venezuelalaisesta raakaöljystä bensiiniä, lentokonebensiiniä sekä voiteluöljyä. Jokaisesta saudiarabialaisesta raakaöljytynnyristä saadaan 0.3 tynnyriä bensiiniä, 0.4 tynnyriä lentokonebensiiniä ja 0.2 tynnyriä voiteluöljyä. Venezuelalaisesta öljystä puolestaan saadaan 0.4 tynnyriä bensiiniä, 0.2 tynnyriä lentokonebensiiniä ja 0.3 tynnyriä voiteluöljyä. Saudiarabialaista öljyä on saatavissa 9000 tynnyriä päivittäin 20 $ tynnyrihintaan ja venezuelalaista öljyä 6000 tynnyriä päivässä. Pienempien kuljetuskustannusten takia venezuelalainen raakaöljy maksaa vain 15 $ tynnyriltä. Yhtiö on tehnyt jakelusopimuksia, joiden mukaan sen täytyy päivässä toimittaa 2000 tynnyriä bensiiniä, 1500 tynnyriä lentokonebensiiniä ja 500 tynnyriä voiteluöljyä. Miten tämä voidaan tehdä mahdollisimman kannattavasti? Mallinnuksen ensimmäisenä vaiheena täytyy määrätä päätösmuuttujat, joilla siis esitetään tehtäviä päätöksiä. Tässä yksinkertaisessa esimerkissä on ilmeistä, että päätöksiä ovat kummastakin lähteestä peräisin olevan jalostettavan raakaöljyn määrä, ja määritellään x 1 : saudiarabialaista öljyä päivittäin jalostettava määrä tuhansina tynnyreinä x 2 : venezuelalaista öljyä päivittäin jalostettava määrä tuhansina tynnyreinä. Kustakin päätösmuuttujasta täytyy aina selkeästi esittää sen merkitys ja laatu. Päätösmuuttujien arvot ovat toistaiseksi tuntemattomia ja on havaittu edulliseksi valita perinteiseen tapaan kirjaimia aakkoston loppupäästä. Muut formuloinnissa tarvittavat suureet ovat parametreja, joille tässä on annettu numeroarvot. Ensiksi kannattaa miettiä luonnolliset rajoitukset, jotka seuraavat päätösmuuttujien mielekkyydestä. Esimerkin tapauksessa ei voida jalostaa negatiivista määrää öljyä, joten saadaan ehdot x 1 0, x 2 0. Tällaiset ei-negatiivisuusrajoitukset ovat tavallisimpia, mutta joskus päätösmuuttuja voi saada vain kokonaislukuarvoja (kokonaislukumuuttuja) tai pelkästään arvoja 0 ja 1 (binäärinen muuttuja). On tärkeää ottaa luonnolliset rajoitukset mukaan, sillä ratkaisualgoritmit eivät ymmärrä mitään ilmeisiä ehtoja, vaan kaikki ehdot on puettava eksplisiittiseen muotoon. Varsinaiset rajoitukset ovat muita ehtoja, jotka rajoittavat päätösmuuttujien valintaa. 15

19 Jakeluun on saatava riittävä määrä tuotteita, joten on oltava 0.3x x (bensiini) 0.4x x (lentokonebensiini) 0.2x x (voiteluöljy). Lisäksi raaka-aineiden saatavuus on rajallinen, joten x 1 9 x 2 6 (saudiarabialainen öljy) (venezuelalainen öljy). Kohdefunktioita ovat ne päätösmuuttujien funktiot, joita optimoinnissa pyritään maksimoimaan tai minimoimaan. Esimerkkitapauksessa tavoitteita on vain yksi ja pyritään minimoimaan ostettavan raakaöljyn hinta 20x x 2, jonka yksikkönä on tuhat dollaria päivässä. Merkitään tätä tavoitetta min 20x x 2 (kokonaiskustannus) ja saadaan mallinnettua ongelma optimointitehtäväksi min 20x x 2 s. t. 0.3x x x x x x x 1 9 x 2 6 x 1 0, x Graafinen ratkaisu Edelläkuvatun kaltaisia kaksidimensioisia ongelmia voidaan ratkaista graafisesti. Jokainen päätösmuuttujapari (x 1, x 2 ) pystytään esittämään graafisesti tasossa. Näin voidaan muodostaa sallittujen pisteiden joukko, jossa kaikki rajoitukset toteutuvat. Esimerkki 2.2. Öljynjalostusesimerkin sallittujen pisteiden joukko on piirretty kuvaan 14. Kohdefunktion arvot c(x 1, x 2 ) = 20x x 2 muodostavat nyt 3-dimensioisen avaruuden tason, mutta sitä voidaan esittää kartan tavoin kaksiulotteisena piirtämällä sen tasa-arvokäyriä 20x x 2 = h tasolle. Tässä kiinnostaa vain sallittujen pisteiden joukko ja siinä saadaan kuva 15. Siitä on helppo määrätä optimiratkaisut, jotka toteuttavat tavoitteet sallituista pisteistä parhaiten. Siis optimipisteiden täytyy sijaita sillä tasaarvokäyrällä, joka saa pienimmän arvon sallitulla alueella. Nyt piste x 1 = 2, x 2 = 3.5 on tehtävän yksikäsitteinen ratkaisu. Optimikustannus on silloin 92.5 tuhatta dollaria päivässä. 16

20 x x x x 1 0.2x x 1 0.4x x 1 0.3x x 1 Kuva 14: Sallittujen pisteiden joukko x x optimi x 1 2 ja x x x 1 0.2x x 1 0.4x x 1 0.3x x 1 Kuva 15: Optimiratkaisu Optimointiongelman ratkaisu voi olla yksikäsitteinen tai sillä voi olla useampia optimiratkaisuja. Edellisessä esimerkissä optimin tuottava tasa-arvokäyrä koskettaa sallittujen pisteiden joukkoa vain yhdessä pisteessä. Jos se kulkee useamman kuin yhden sallitun pisteen kautta, ovat ne kaikki optimaalisia. Kohdefunktion arvo on tietenkin näissä kaikissa identtinen. Mikäli mitkään päätösmuuttujien arvot eivät toteuta kaikkia rajoituksia eli sallittujen pisteiden joukko on tyhjä, ei itse optimointitehtävällä voi olla ratkaisuja. Toinen tilanne, jossa optimointitehtävällä ei ole ratkaisua, on sellainen, jossa päätösmuuttujan sallitut arvot tuottavat mielivaltaisen hyviä (rajoittamattomia) kohdefunktioiden arvoja. 17

21 Esimerkki 2.3. Tutkitaan graafisesti vielä öljynjalostusesimerkkiä parissa erilaisessa tapauksessa. Ensimmäisessä muunnetaan kohdefunktio muotoon min 20x x 2 ja määräätään tehtävän kaikki optimiratkaisut. Kuvasta 16 on helppo nähdä, että tehtävällä on äärettömän monta ratkaisua. x x optimiratkaisut 3 x x 1 0.2x x 1 0.4x x 1 0.3x x 1 Kuva 16: Tehtävällä äärettömän monta ratkaisua Kun alkuperäistä öljynjalostusesimerkkiä muutetaan siten, että kunpaakin raakaöljylaatua on saatavissa 2000 tynnyriä päivässä, niin tehtävällä ei ole sallittua ratkaisua. Tämä nähdään kuvasta 17. x x x 1 0.4x x 1 0.2x x x 1 0.3x x 1 Kuva 17: Tehtävällä ei ole sallittua ratkaisua 18

22 Jos taas alkuperäinen tehtävä muuttuu siten, että Saudiarabia maksaa 2 dollaria jokaisesta tynnyristä eikä rajoita mitenkään ostettavan raakaöljyn määrää, niin päätösmuuttujan sallitut arvot tuottavat mielivaltaisen hyviä ratkaisuja. Näin ollen ei saada ratkaisua ja tapaus on piirretty kuvaan 18. x x x 1 0.2x x 1 0.4x x 1 0.3x x 1 Kuva 18: Tehtävälle saadaan äärettömän hyvä ratkaisu 2.3 Realistiset optimointimallit Käytännön ongelmissa saattaa olla jopa miljoonia muuttujia ja satojatuhansia rajoituksia, joten graafinen ratkaisu on käyttökelvoton. Esimerkki 2.4. Maissin tuottajalla on toimintaa l = 20 paikassa ja hän tuottaa m = 25 laatua maissituotteita n = 30 alueelle. Tuottajaa kiinnostaa tuotanto- ja kuljetuskustannusten minimoiminen. Pienen miettimisen jälkeen havaittiin, että seuraavien parametrien arvot voidaan mieltää vakioiksi: kunkin tuotteen valmistuskustannus kussakin toimipaikassa (dollaria pussilta) kunkin toimipaikan kapasiteetti (tonneina) kuhunkin tuotepussiin tarvittavien maissitonnien lukumäärä kunkin tuotteen tarve kullakin myyntialueella pusseina kunkin tuotteen kuljetuskustannus kultakin toimipaikalta kullekin myyntialueelle Tehtävässä täytyy käyttää indeksoituja muuttujia ja kannattaa käyttää samasta asiasta aina samoja indeksejä. Valitaan toimipaikkojen indeksiksi i, tuotteiden indeksiksi j ja 19

23 myyntialueiden indeksiksi k. Päätöksiä ovat tuotantomäärät ja lähetettävät tavaramäärät. Valitaan siis päätösmuuttujiksi x ij : laitoksella i tuotetun tavaran j määrä pusseina y ijk : laitokselta i myyntialueelle k lähetetty tuotteen j määrä pusseina jolloin muuttujia on yhteensä = kappaletta. Tehtävän parametreja ovat p ij : laitoksella i tuotetun tavaran j tuotantokustannus pussilta u i : laitoksen i tuotantokapasiteetti maissitonneina a j : tuotteen j yhteen pussilliseen tarvittava maissitonnien määrä d jk : tuotteen j tarve alueella k pusseina s ijk : kuljetuskustannus lähetettäessä pussi tuotetta j laitokselta i alueelle k. Kun oletetaan, että kustannukset ovat lineaarisia, saadaan optimointimalliksi min s. t. l m l m n p ij x ij + s ijk y ijk (kokonaiskustannukset) i=1 j=1 i=1 j=1 k=1 m a j x ij u i, i = 1,..., l (kapasiteetti) j=1 l y ijk d jk, j = 1,..., m; k = 1,..., n (kysynnät) i=1 n y ijk = x ij, i = 1,..., l; j = 1,..., m (tasapainoehto) k=1 x ij 0, i = 1,..., l; j = 1,..., m y ijk 0, i = 1,..., l; j = 1,..., m; k = 1,..., n. Tehtävässä on 20 kapasiteetti-, 750 kysyntä-, 500 tasapaino- ja einegatiivisuusrajoitusta. 2.4 Lineaariset ja epälineaariset optimointitehtävät Edelliset esimerkit ovat lineaarisia optimointitehtäviä (linear programming). Niille on voimassa 1. verrannollisuus ts. kunkin päätösmuuttujan vaikutus kohdefunktioon ja rajoituksiin on suoraan verrannollinen sen arvoon 2. additiivisuus ts. kunkin päätösmuuttujan vaikutus kohdefunktioon ja rajoituksiin on riippumaton muiden päätösmuuttujien arvoista 20

24 3. jaollisuus ts. kukin päätösmuuttuja on jatkuva eli se voi saada mielivaltaisia reaalilukuarvoja 4. deterministisyys ts. tehtävän parametrit ovat vakioita eivätkä satunnaismuuttujia 5. tavoitteita on vain yksi. Ehdot 1 ja 2 takaavat mallin lineaarisuuden. Mikäli ehto 3 ei ole voimassa, on kysymys diskreetistä optimoinnista (katso luku 2.5 ja luentomonisteen Matemaattinen optimointi II luvut 3 ja 4), jonka ratkaisuja voidaan approksimoida pyöristämällä vastaavan lineaarisen optimointitehtävän ratkaisu kokonaisluvuiksi. Mikäli ehto 4 ei ole voimassa, on kyseessä stokastinen optimointi. Mikäli tavoitteita on useampia, puhutaan monitavoiteoptimoinnista. Yleinen epälineaarinen optimointitehtävä voidaan kirjoittaa muodossa max min f(x 1,..., x n ) s. t. g i (x 1,..., x n ) = b i, i = 1,..., m, jossa f ja g i ovat päätösmuuttujien x i annettuja funktioita ja b i annettuja parametreja. Funktioista f ja g i vähintään yhden tulee olla epälineaarinen ja jaollisuusoletuksen 3 tulee olla voimassa. Teoreettisissa tarkasteluissa oletetaan tavallisesti, että rajoituksissa siirretään muuttujista riippuvat termit epäyhtälön vasemmalle puolelle ja vakiotermi oikealle puolelle. Esimerkki 2.5. Tarkastellaan E-mart kauppaketjun mainoskustannusten budjetointia. Ketju myy m = 12 eri tuoteryhmää (vaatteet, lelut, makeiset, CD-levyt jne.) ja mainoskampanjoita on n = 15 tyyppiä (vaatteiden myyntiluettelo, vaatemainos lehdessä, lelumainos televisiossa jne.). Tarkoituksena on optimoida rajoitettu mainostusbudjetti. Oletetaan tunnetuiksi b : mainostusbudjetin suuruus p i : tuoteryhmän i lisämyynnistä saatava yksikkötuotto, i = 1,..., m s ij : parametri, joka kertoo kampanjaan j käytetyn rahamäärän vaikutuksen tuoteryhmän i myynnin lisäykseen. Päätösmuuttuja olkoon x j : kampanjaan j käytetty rahamäärä. Nyt ei tunnu järkevältä olettaa lineaarista mallia, jossa mainostuksen aiheuttama myynnin lisäys olisi verrannollisuusoletuksen mukaista muotoa s ij x j. On melko selvää, 21

25 että realistisessa mallissa lisäys pienenee koko ajan satsauksen x j kasvaessa. Siis jokainen lisäeuro tuottaa aina jonkin verran vähemmän kuin edellinen, ts. rajatuotto pienenee. Hyvin yksinkertainen lauseke, joka toteuttaa tällaisen vaatimuksen on s ij log(x j + 1). Silloin saadaan epälineaarinen optimointitehtävä max s. t. m n p i s ij log(x j + 1) i=1 j=1 n x j b j=1 x j 0, j = 1,..., n. (lisätuotto) (budjettirajoitus) 2.5 Diskreetit optimointitehtävät Diskreetit päätösmuuttujat saavat arvoja numeroituvista joukoista. Tavallisimmin on kyseessä jompikumpi joukoista {0, 1, 2, 3,...} ja {0, 1}. Ensimmäisessä tapauksessa on kyseessä yleinen kokonaislukumuuttuja ja jälkimmäisessä binäärinen päätösmuuttuja. Jos kaikki päätösmuuttujat ovat samantyyppisiä, on kyseessä kokonaislukuoptimointi- tai binäärioptimointitehtävä. Usein osa päätösmuuttujista on jatkuvia ja osa diskreettejä, jolloin on kyseessä lineaarinen (MILP) tai epälineaarinen (MINLP) sekalukuoptimointitehtävä (mixed-integer programming). Esimerkki 2.6. Betlehem Steel Co valaa terästä muoteissa erikokoisiksi aihioiksi (ingot), jotka tuotannon myöhemmissä vaiheissa kuumennetaan ja niistä valmistetaan valssaamalla levyjä, puristamalla putkia jne. Valmistettavia tuotteita on n = 130 erilaista ja kukin aihiolaji sopii enemmän tai vähemmän hyvin kuhunkin tuotteeseen. Mahdollisia aihiotyyppejä on ehdotettu m = 600 kappaletta, mutta niin montaa ei kannata valmistaa, vaan on päätetty tyytyä p = 6 erilaiseen tyyppiin. Pyritään minimoimaan käyttämättä jäävä materiaalimäärä. Kaikista aihiolaaduista ei saada millään kaikkia tuotteita, ja merkitään I j : niiden aihioiden i joukko, joista pystytään tekemään tuotetta j c ij : hukka-aineen määrä valmistettaessa aihiosta i tuotetta j. Kunkin aihiotyypin kohdalla täytyy tehdä päätös otetaanko se käyttöön vai ei. Näitä valintoja on luonnollista kuvata binääriluvuilla 0 ja 1. Useimmiten valitaan arvo 1 kuvaamaan sitä vaihtoehtoa, jossa tapahtuu jotakin. Tässä tapauksessa arvolla 1 kuvataan sitä aihion käyttöönottoa. Siis päätösmuuttuja olkoon 1, jos aihio i valitaan y i = 0, muuten. 22

26 Tämä ei vielä riitä, vaan tarvitaan lisäksi päätösmuuttuja 1, jos aihiosta i tehdään tuote j x ij = 0, muuten. On huomattava, että näin määritellyt päätösmuuttujat y i ja x ij eivät ole riippumattomia sillä x ij voi saada arvon 1 vain mikäli y i = 1. Saadaan siis lineaarinen binäärinen optimointitehtävä min s. t. n c ij x ij j=1 i I j (hukkamateriaali) m y i p (valitaan korkeintaan p aihiotyyppiä) i=1 x ij = 1, i I j j = 1,..., n (tuotteelle j yksi aihio) x ij y i, j = 1,..., n; i I j (vain valituille aihioille) y i {0, 1}, i = 1,..., m x ij {0, 1}, j = 1,..., n; i I j. Yleisesti jos päätösmuuttujien optimiarvot ovat sen verran suuria, ettei murto-osilla ole käytännön merkitystä, kannattaa käyttää jatkuvia päätösmuuttujia (pussien lukumäärä maissiesimerkissä), vaikka ne luonteeltaan olisivatkin kokonaislukuja. Kokonaislukuoptimointitehtävän ratkaiseminen on nimittäin oleellisesti vaikeampaa. Esimerkki 2.7. Purduen yliopistossa on m = 2000 kurssia ja tenttikautena täytyisi organisoida niiden suorittaminen n = 30 tenttitilaisuudessa niin, että mahdollisimman harvalla opiskelijalla olisi kuuntelemiensa kurssien tentit samanaikaisesti. Jotta pystyttäisiin formuloimaan tehtävä, täytyy tietää e ik : sekä kurssin i että k kuuntelevien opiskelijoiden määrä, 1 i < k m. Päätösmuuttujaksi on nyt luonnollista valita 1, jos kurssi i tentitään tilaisuudessa j, i = 1,..., m; j = 1,..., n x ij = 0, muuten. Tällöin siis ja 1, jos kurssien i ja k tentit tilaisuudessa j x ij x kj = 0, muuten n 1, jos kurssien i ja k tentit yhtäaikaa x ij x kj = j=1 0, muuten. 23

27 Silloin kurssien i ja k tenttit osuvat yhtäaikaa n e ik j=1 x ij x kj opiskelijalle ja saadaan kvadraattinen binäärinen optimointitehtävä min s. t. m 1 m n e ik i=1 k=i+1 j=1 n j=1 x ij x kj (päällekkäisyyksien lukumäärä) x ij = 1, i = 1,..., m (kurssille i yksi tentti) x ij {0, 1}, i = 1,..., m; j = 1,..., n. 2.6 Monitavoiteoptimointi Edellä kuvatun kaltaiset ongelmat, joissa päätöksentekokriteerejä on vain yksi, toimivat hyvin monissa liike-elämän ongelmissa. Näissä maksimoidaan voittoa tai minimoidaan kustannuksia. Usein esiintyy kuitenkin päätöksenteko-ongelmia, joissa keskenään ristiriitaisia kriteerejä on useita. Esimerkki 2.8. Kuntien maankäytön suunnittelu on tyypillinen tilanne, jossa on vaikea tulla toimeen yhdellä päätöksentekokriteerillä. Tarkastellaan esimerkiksi erään Chicagon esikaupunkialueen kaavoitusta. Siellä on n = 147 aluetta, joita voidaan käyttää seuraaviin m = 7 tarkoitukseen i maankäytön laji 1 yhden perheen talot 2 useamman perheen talot 3 myymälät 4 toimistot 5 tuotantolaitokset 6 koulut ja virastot 7 puistot Kriteerejä mietittäessä päädyttiin seuraaviin: 1. Yhteensopivuus: kuinka hyvin suunniteltu kaava sopii alueen ja sen lähiympäristön nykyiseen käyttöön. 2. Liikenne: aika, joka kuluu kaavan aiheuttamiin matkoihin alueelle ja alueelta. 3. Verovaikutus: lisääntyneiden kunnallisten palvelujen kulujen suhde lisääntyneeseen verotuottoon. 4. Ympäristövaikutukset: kaavoituksesta aiheutuva ympäristön huononeminen. 24

28 5. Kunnalliset laitokset: uusien asukkaiden tarvitsemien koulujen, päiväkotien ym. kunnallisten palvelujen sekä kunnallistekniikan rakennuskustannukset. Kun merkitään tehtävän parametreja symboleilla c ij : yhteensopivuuskerroin käytettäessä 1 eekkeri tarkoitukseen i alueella j t ij : lisääntynyt matkustusaika käytettäessä 1 eekkeri tarkoitukseen i alueella j r ij : yhteiskunnan vuosimenot käytettäessä 1 eekkeri tarkoitukseen i alueella j e ij : ympäristön huononeminen käytettäessä 1 eekkeri tarkoitukseen i alueella j f ij : kunnan pääomakustannukset käytettäessä 1 eekkeri tarkoitukseen i alueella j ja päätösmuuttujia x ij : tarkoitukseen i alueella j käytettyjen eekkerien lukumäärä, saadaan tavoitteet max min min min min m n c ij x ij i=1 j=1 m n t ij x ij i=1 j=1 m n r ij x ij i=1 j=1 m n e ij x ij i=1 j=1 m n f ij x ij. i=1 j=1 Otetaan käyttöön lisäparametrit b j : tehottomasti käytettyjen eekkereiden määrä alueella j l i : tarkoitukseen i vähintään kaavoitettavien eekkereiden määrä u i : tarkoitukseen i enintään kaavoitettavien eekkereiden määrä o j : kallioiden, vesijättöjen ym. käyttökelvottomien eekkereiden määrä alueella j ja huomioidaan, että asunnot vaativat välttämättä samalle alueelle ostoskeskuksia, puistoja, kouluja sekä päiväkoteja. Näitä vaatimuksia voidaan esittää parametreilla s i : yhden perheen asunnoksi varatun eekkerin implikoima tarve tarkoitukseen i d i : usean perheen asunnoksi varatun eekkerin implikoima tarve tarkoitukseen i. 25

29 Lopulta saadaan monitavoiteoptimointitehtävä max min min min min s. t. m n c ij x ij (yhteensopivuus) i=1 j=1 m n t ij x ij (liikenne) i=1 j=1 m n r ij x ij (verot) i=1 j=1 m n e ij x ij (ympäristö) i=1 j=1 m n f ij x ij (kunnalliset palvelut) i=1 j=1 m x ij = b j, j = 1,..., n (maankäyttö) i=1 n x ij l i, i = 1,..., m (pienin käytömäärä) j=1 n x ij u i, i = 1,..., m (suurin käyttömäärä) j=1 x 7j o j, j = 1,..., n (käyttökelvoton maa) x ij s i x 1j + d i x 2j, i = 3, 6, 7; j = 1,..., n (aiheutetut tarpeet) x ij 0, i = 1,..., m; j = 1,..., n. (ei-negatiivisuus) Tällaisessa ongelmassa tavoitteet ovat yleensä ristiriitaiset, eikä optimaalisuuden määrittely ole niin yksinkertaista kuin tapauksessa, jossa päätöksentekokriteerejä on vain yksi. Samaten tehtävän ratkaisu vaikeutuu. 26

30 3 Parantava haku 3.1 Lokaalit ja globaalit optimit Yleensä ei optimiratkaisua saada suljetussa muodossa, vaan on jollain optimointialgoritmilla etsittävä nykyistä ratkaisuehdokasta parempi piste. Tästä pisteestä jatketaan samalla tavalla, kunnes saadaan tarpeeksi hyvä ratkaisu. Yllä termi ratkaisu merkitsee vektoria, jossa kukin päätösmuuttuja on saanut kiinnitetyn lukuarvon. Tällaisen ratkaisun ei tarvitse olla optimaalinen eikä välttämättä edes sallittu. Merkitään lähtöratkaisua x 0, seuraavaa ratkaisua x 1 jne. Määritelmä 3.1. Olkoon funktio f : R n R ja tarkoituksena on määrätä min f(x) s. t. x S. Tässä S on sallittujen pisteiden joukko ja jokainen piste x S on niin sanottu sallittu piste. Lisäksi, jos on olemassa x S siten, että f(x ) f(x), x S, niin sanotaan, että x on tehtävän optimi(ratkaisu) tai globaali(nen) optimi(ratkaisu) tai globaali(nen) minimi tai pelkästään ratkaisu (maksimointitehtävässä globaali(nen) maksimi). Toisaalta jos on olemassa piste x ja luku ε > 0 siten, että f(x ) f(x), x S, joilla x x ε, niin x on tehtävän lokaali(nen) optimi(ratkaisu) tai lokaali(nen) minimi (maksimointitehtävässä lokaali(nen) maksimi). Siis lokaali optimiratkaisu on sallittu piste eikä sen riittävän pienessä ympäristössä ole pistettä, joka olisi sekä sallittu että tuottaisi kohdefunktiolle paremman arvon. Optimaalisuustestit ovat lokaaleja, joten parantava haku pysähtyy aina lokaaliin optimiin. Globaali optimi on sallittu piste eikä millään muulla sallitulla ratkaisulla saada parempaa kohdefunktion arvoa. Tästä seuraa erityisesti, että globaalit optimit ovat aina lokaaleja optimeja. Kuitenkaan lokaalin optimin ei tarvitse olla globaali optimi. Esimerkki 3.2. (Hypermarket) Tarkastellaan 3 kaupunkia palvelevan hypermarketin optimaalista sijoittamista. Kaupunkien keskipisteet ovat ( 1, 3), (1, 3) ja (0, 4) sekä asukasluvut 60000, ja Oletetaan, että hypermarket voidaan sijoittaa muuten vapaasti, mutta sen tulee olla vähintään 0.5 yksikön päässä kunkin kaupungin keskustasta. Kokemus on osoittanut, että asutuskeskuksen aiheuttama liikevaihto on suoraan 27

31 verrannollinen asukkaiden lukumäärään ja kääntäen verrannollinen arvoon d 2 + 1, jossa d on etäisyys. Kun valitaan päätösmuuttujaksi niin optimointitehtävä on max p(x 1, x 2 ) = x i : hypermarketin sijaintipaikan koordinaatti i, i = 1, 2, (x 1 + 1) 2 + (x 2 3) (x 1 1) 2 + (x 2 3) x (x 2 + 4) 2 s. t. (x 1 + 1) 2 + (x 2 3) (vältettävä kaupungin 1 keskustaa) (x 1 1) 2 + (x 2 3) (vältettävä kaupungin 2 keskustaa) x (x 2 + 4) (vältettävä kaupungin 3 keskustaa). Kun piirretään kohdefunktio, saadaan kolmiulotteinen kuva 19, p x1,x x x 2 Kuva 19: Funktio p(x 1, x 2 ) kolmiulotteisena. jota havainnollisempi esitys saadaan käyttäen korkeuskäyriä (kuva 20). Kuvassa 20 piste x 4 on likimain optimi, koska se on sallittu mutta kuitenkin suurimmalla tasa-arvokäyrällä. Kun käytetään merkintään p(x) kohdefunktiosta, saadaan sille kuvan pisteissä arvot x 0 = ( 5, 0), p(x 0 ) 3.5 x 1 = ( 3, 4), p(x 1 ) 11.5 x 2 = ( 1, 4.5), p(x 2 ) 21.6 x 3 = (0, 3.5), p(x 3 ) 36.1 x 4 = ( 0.5, 3), p(x 4 ) Tämä on esimerkki parantavasta hausta, jossa aloitetaan optimointitehtävän sallitusta ratkaisusta. Siitä edetään muodostamalla sellainen sallittujen ratkaisujen jono, jossa kohdefunktion arvo paranee koko ajan. Kuvasta 20 ei kuitenkaan pysty näkemään optimaalisuutta. Sitä varten voidaan tutkia pisteen x 4 ympäristöä suuremmassa mittakaavassa, jolloin saadaan kuva

32 Kuva 20: Funktion p(x 1, x 2 ) esitys korkeuskäyrien avulla. Kuva 21: Piste x 4 suuremmassa mittakaavassa Kuvan alueella x 4 on selvästi optimiratkaisu, mutta nyt ei ole tietoa siitä mitä tapahtuu kuvan ulkopuolella. Tällainen tilanne on tavallinen optimoinnissa, jossa on yleensä hyvin vaikeata ratkaista onko jonkin ratkaisuavaruuden osa-alueen optimiratkaisu koko tehtävän ratkaisu. Voidaan suorittaa myös kuvan 22 mukainen parantava haku, jossa pisteet ovat x 0 = ( 5, 0), x 1 = (0.5, 2.75), x 2 = ( 0.5, 3), x 3 = (0, 3.5). Haussa päädytään lokaaliin optimiin x 3 = (0, 3.5). Koska tämä tuottaa vain kohde- 29

33 Kuva 22: Funktion p(x 1, x 2 ) esitys korkeuskäyrien avulla funktion arvon p(x 3 ) 25.8, ei x 3 voi olla globaali optimi. Vaikka parantava haku ei näytäkään lupaavalta, ovat useimmin sovelletut (parhaiten ratkeavat) optimointitehtävät sellaisia, joissa jokainen lokaali minimi on myös globaali minimi. Mikäli tämä ei pidä paikkaansa, ei yleensä ole tehtävissä muuta kuin yrittää parantavaa hakua useista lähtöpisteistä ja valita paras saatu ratkaisu tehtävän heuristiseksi eli likimääräiseksi ratkaisuksi. 3.2 Parantava haku sallittuun suuntaan Parantava haku pisteestä x t uuteen pisteeseen x t+1 voidaan esittää muodossa x t+1 = x t + λ x, missä vektori x määrää haun suunnan ja reaaliluku λ > 0 askelpituuden. Usein tässä suuntavektori normeerataan siten, että x = 1. Määritelmä 3.3. Suunta x on (nykyistä ratkaisua x t ) parantava, jos kohdefunktion arvo pisteessä x t +λ x paranee kaikilla riittävän pienillä λ > 0. Suunta x on (nykyisessä ratkaisupisteessä x t ) sallittu, jos piste x t +λ x on sallittu kaikilla riittävän pienillä λ > 0. Nyt ollaan kiinnostuneita vain suunnista, jotka lähtevät heti parantamaan kohdefunktiota ja pysyvät samalla sallittuina. Kun suunta x on kiinnitetty, määrätään λ tavallisesti mahdollisimman suureksi. Pisteen x t+1 on kuitenkin pysyttävä sallittuna ja parannettava koko ajan kohdefunktiota. Nyt siis suoritetaan yksiulotteinen rajoitettu minimointi suuntaan x. 30

34 Oletetaan, että f : R n R ja tarkastellaan nyt minimointitehtävää min f(x) s. t. x S. Tässä x on parantava suunta pisteessä x t, jos on olemassa ε 1 > 0 siten, että f(x t + λ x) < f(x t ), λ (0, ε 1 ]. Suunta x on taas sallittu, jos on olemassa ε 2 > 0 siten, että x t + λ x S, λ (0, ε 2 ]. Kun valitaan ε = min{ε 1, ε 2 }, niin suunta x on sekä sallittu että parantava kaikilla λ (0, ε]. Optimaalinen askelpituus λ saadaan nyt ratkaisemalla yksiulotteinen optimointitehtävä min f(x t + λ x) s. t. λ (0, ε]. Esimerkki 3.4. Tarkastellaan tehtävää min 10x 1 + 3x 2 s. t. x 1 + x 2 9 x 1 0, x 2 0 pisteessä x 19 = (4, 5) edettäessä suuntaan x = ( 3, 8). Kyseisessä suunnassa kohdefunktion kumpikin yhteenlaskettava pienenee, joten kohdefunktion arvo paranee kaikilla arvoilla λ > 0. Samoin rajoitus x 1 + x 2 9 on selvästi voimassa. Jotta ei-negatiivisuusrajoitukset olisivat voimassa, täytyy olla x 20 = x 19 + λ x = 4 + λ 3 = 4 3λ λ Nyt pisin mahdollinen askelpituus saadaan, kun valitaan Tällöin x 20 = (2 1 8, 0). { 4 λ = min 3, 5 = 8} 5 8. Algoritmi 3.5. Jatkuva parantava haku Askel 0. (Alustus) Valitaan jokin sallittu aloituspiste x 0 ja merkitään t 0. 31

35 Askel 1. (Lokaali optimi) Mikäli nykyisessä pisteessä x t ei ole parantavaa sallittua suuntaa x t, niin lopetetaan. Jos malli täyttää tietyt oletukset, niin kyseessä on lokaali optimi. Askel 2. (Liikkeen suunta) Muodostetaan pisteessä x t parantava sallittu suunta x t. Askel 3. (Askelpituus) Mikäli on olemassa suurin askelpituus λ t, jolla suuntaan x t edettäessä ratkaisu pysyy sallittuna ja kohdefunktio koko ajan paranee, valitaan tämä. Muussa tapauksessa ei tehtävällä ole äärellistä ratkaisua. Askel 4. (Eteneminen) Päivitetään uudeksi ratkaisuehdokkaaksi x t+1 x t + λ t x t, merkitään t t + 1 ja palataan askeleeseen 1. Suurin askelpituus askeleessa 3 saadaan graafisesti sellaisessa pisteessä, jossa saatu piste sivuaa korkeuskäyrää, mikäli se on sallittu. Jos algoritmin askeleessa 3 ei ole suurinta arvoa askelpituudelle λ, niin malli on huonosti formuloitu. Esimerkki 3.6. Jatketaan esimerkkin 3.2 tarkastelua. Sen viimeisessä kuvassa 22 lähdetään pisteestä x 0 = ( 5, 0) parantavaan suuntaan x 0 = (2, 1). Kohdefunktion paras arvo saadaan, kun λ 0 = 2.75, jolloin x 1 = ( 5, 0) (2, 1) = (0.5, 2.75). Toiseessa vaiheessa valitaan suunnaksi x 1 = ( 4, 1), jolloin x 2 = (0.5, 2.75) ( 4, 1) = ( 0.5, 3). Kun kolmannessa vaiheessa valitaan x 2 = (1, 1), törmätään arvolla λ 2 = 0.5 sallitun alueen reunaan, vaikka kohdefunktion arvo vielä paranisikin arvoa λ 2 kasvattamalla. Siis x 3 = ( 0.5, 3)+0.5(1, 1) = (0, 3.5) ja tämä on lokaali optimi. Lisäksi hypermarketesimerkin molemmissa kuvissa 20 ja 22 päädytään algoritmilla lokaaliin optimiin. On kuitenkin olemassa tapauksia, joissa näin ei päädytä lokaaliin optimiin. Esimerkiksi kuvassa 23 on kaksi tapausta. 4 x w w 10 x w 1 x 1 Kuva 23: Tapauksia, joissa ei päädytä lokaaliin optimiin Ensimmäisessä ei ole parantavaa suuntaa eikä toisessa parantavaa sallittua suuntaa. Useissa tärkeissä käytännön ongelmissa ei tällaisia vaikeuksia kuitenkaan ole. 32

36 3.3 Algebralliset ehdot Oletetaan, että tarvittavat funktiot ovat riittävän sileitä. Määritelmä 3.7. Funktion f(x) = f(x 1, x 2,..., x n ) gradientti pisteessä x (merkitään f(x)) on vektori, joka koostuu funktion f(x) osittaisderivaatoista f(x 1, x 2,..., x n ) = ( f, f,..., f ) T. x 1 x 2 x n Kohdefunktio f(x 1, x 2,..., x n ) kasvaa voimakkaimmin gradientin suuntaan ja vähenee voimakkaimmin negatiivisen gradientin suuntaan. Gradienttivektori on aina kohtisuorassa saman pisteen kautta piirretyn tasa-arvokäyrän tangentin kanssa. Esimerkki 3.8. Esimerkiksi edellä olleessa hypermarketesimerkissä 3.2 on p 120(x 1 + 1) = x 1 [1 + (x 1 + 1) 2 + (x 2 3) 2 ] 40(x 1 1) 2 [1 + (x 1 1) 2 + (x 2 3) 2 ] 60x 1 2 [1 + x (x 2 + 4) 2 ] 2 p 120(x 2 3) = x 2 [1 + (x 1 + 1) 2 + (x 2 3) 2 ] 40(x 2 3) 2 [1 + (x 1 1) 2 + (x 2 3) 2 ] 60(x 2 + 4) 2 [1 + x (x 2 + 4) 2 ], 2 joten pisteessä x = (2, 0) saadaan p(2, 0) ( 1.60, 1.44) ja pisteessä x = ( 1.5, 1.5) suunnaksi tulee p( 1.5, 1.5) (1.25, 0.25). Kuva 24: Kahdessa pisteessä lasketut gradientit Taylorin kaavan n ulotteisesta versiosta saadaan f(x + λ x) f(x) λ ( f(x)) T x ja siitä voidaan päätellä seuraavat: 33

37 Maksimointitehtävässä suunta x parantaa funktiota f, jos f(x) T x > 0. Minimointitehtävässä suunta x parantaa funktiota f, jos f(x) T x < 0. Jos f(x) 0, niin valitsemalla x = f(x) saadaan kohdefunktiota kasvattava suunta, sillä f(x) T f(x) > 0. Vastaavasti suunta x = f(x) pienentää kohdefunktiota. Tutkittaessa sallittuja suuntia pisteessä x riittää tarkastella aktiivisia rajoituksia. Rajoitus i on aktiivinen, jos g i (x) = b i. Jos rajoitus ei ole aktiivinen, sallii se liikkumisen joka suuntaan. Rajoitukset ovat usein lineaarisia, ja tällöin suunta x on sallittu lineaaristen rajoitusten tapauksessa pisteessä x mikäli aktiivisten rajoitusten a T x b suhteen on voimassa a T x 0 aktiivisten rajoitusten a T x b suhteen on voimassa a T x 0 kaikkien rajoitusten a T x = b suhteen on voimassa a T x = 0. Esimerkki 3.9. Öljynjalostusesimerkissä 2.1 ei pisteessä x 2 = (4, 4) ole aktiivisia rajoi- x x , 6 x x 2, 3.5 x 2 4, 4 3 x x 1 0.2x x 1 0.4x x 1 0.3x x 1 7, x 1 Kuva 25: Sallittujen pisteiden joukko tuksia ja kaikki suunnat ovat sallittuja. Pisteessä x 3 = (0.75, 6) ovat rajoitukset 0.4x x x 2 6 aktiivisia ja sallitun suunnan täytyy toteuttaa ehdot 0.4 x x 2 0 x

38 parantavat x sallitut parantavat x 3 sallitut parantavat ja sallitut Kuva 26: Esimerkin 3.9 sallitut ja parantavat suunnat pisteissä x ja x Unimodaaliset funktiot ja konveksit joukot Kuten luvussa 3.1 nähtiin, parantava haku joudutaan lopettamaan lokaaliin optimiin. Siksi olisi mukavaa, jos tämä olisi myös globaali optimi. Sitä varten täytyy kuitenkin tehdä lisäoletuksia. Määritelmä Funktio f(x) on unimodaalinen minimoinnin suhteen, jos ehdosta f(x 2 ) < f(x 1 ) seuraa, että x = x 2 x 1 on parantava suunta pisteessä x 1 jokaiselle pisteparille x 1 ja x 2. Funktio on vastaavasti unimodaalinen maksimoinnin suhteen, jos ehdosta f(x 2 ) > f(x 1 ) seuraa, että x = x 2 x 1 on parantava suunta pisteessä x 1 jokaiselle pisteparille x 1 ja x 2. Esimerkki Edellä olleessa hypermarketesimerkissä 3.2 kohdefunktio ei ole unimodaalinen. Esimerkkipisteiksi voidaan valita lokaalit maksimipisteet x 1 = (0, 4) ja x 2 = ( 1, 3), jolloin suunta x = ( 1, 7) ei ole parantava pisteessä x 1, sillä kohdefunktio huononee pienillä askelilla. Sen sijaan funktio f(x 1, x 2 ) = (x 1 2) 2 (x 1 2)(x 2 3) + (x 2 3) on unimodaalinen minimoinnin suhteen mutta ei maksimoinnin (kuva 27). Lineaarisia kohdefunktioita käytetään paljon ja ne ovat unimodaalisia sekä maksimoinnin että minimoinnin suhteen. Tällöin maksimointitapauksessa saadaan esimerkiksi 0 < f(x 2 ) f(x 1 ) = c T x 2 c T x 1 = c T (x 2 x 1 ) = f(x 1 ) T (x 2 x 1 ) = f(x 1 ) T x. Määritelmä Rajoittamaton lokaali optimi on ratkaisu, jossa mikään sen jossain ympäristössä oleva piste ei tuota sitä parempaa arvoa kohdefunktiolle. Rajoittamaton globaali optimi on ratkaisu, jota parempaa ei saada koko määrittelyalueessa. 35

39 f x 1,x x 2 x Kuva 27: Minimoinnin suhteen unimodaalinen funktio f(x 1, x 2 ). Huomautus Unimodaalisen funktion rajoittamaton lokaali optimi on aina myös globaali optimi. Esimerkki Jos rajoitutaan hypermarketesimerkissä 3.2 oheisen kuvan 28 Kuva 28: Hypermarketesimerkin rajoitettu alue mukaiseen alueeseen, niin ainoa rajoittamaton lokaali ja globaali maksimi on pisteessä x = ( 1, 3). Kun otetaan huomioon rajoitukset, niin pisteet x 1 = ( 1.5, 3) ja x 2 = (1.5, 3) ovat (rajoitettuja) lokaaleja maksimipisteitä. Rajoituksista johtuen niillä ei ole kohdefunktion arvoa parantavaa naapuria. Edellisen esimerkin kaltaisista vaikeuksista päästään eroon, kun oletetaan sallittujen ratkaisujen joukko konveksiksi. 36

40 Määritelmä Joukko S on konveksi joukko, jos kahden mielivaltaisen joukon pisteen yhdysjana kuuluu kokonaisuudessaan joukkoon S eli λx 1 + (1 λ)x 2 S, x 1, x 2 S, λ (0, 1). Esimerkkejä konvekseista joukoista ovat lineaariset aliavaruudet, avoimet ja suljetut pallot, ellipsoidit ja puoliavaruudet. Diskreetit joukot eivät koskaan ole konvekseja paitsi yhden alkion joukko ja tyhjä joukko. Kuva 29: Konvekseja joukkoja. Kuva 30: Ei-konvekseja joukkoja. Huomautus Jos sallittujen pisteiden joukko on konveksi, niin kahden sallitun ratkaisun x 1 ja x 2 välille muodostuva suunta x = x 2 x 1 on aina sallittu pisteessä x 1. Huomautus Jos optimointitehtävän kohdefunktio on unimodaalinen ja sallittujen pisteiden joukko konveksi, niin tehtävän jokainen lokaali optimi on myös globaali optimi. Mikäli edellä tehdyt oletukset eivät ole voimassa, saattaa hakualgoritmi juuttua lokaaliin optimiin, joka ei kuitenkaan ole tehtävän globaali ratkaisu. Määritelmä Olkoon funktio f : S R, missä S on konveksi avaruuden R n osajoukko. Sanotaan, että funktio f on konveksi funktio joukossa S, jos f(λx + (1 λ)y) λf(x) + (1 λ)f(y), x, y S, λ (0, 1). Funktio on konkaavi, jos f on konveksi. Huomautus Jos f on konveksi, niin f on unimodaalinen minimoinnin suhteen. Jos taas f on konkaavi, niin f on unimodaalinen maksimoinnin suhteen. 37

41 3.5 Sallitun lähtöratkaisun haku Edellä oletettiin, että sallittu aloituspiste x 0 on käytettävissä, vaikka sellaisen tunteminen tuhansia muuttujia käsittävässä ongelmassa ei ole mitenkään itsestään selvää. Tarkastellaan nyt kahdella tapaa miten kyseinen ongelma voidaan ratkaista. Algoritmi Kaksivaiheinen parantava haku Askel 0. (Aputehtävä) Valitaan jokin aloitusratkaisu (yleensä origo) ja muodostetaan vaiheen I malli lisäämällä (tai vähentämällä) ei-negatiivinen apumuuttuja jokaisesta rikotusta rajoituksesta. Askel 1. (Vaihe I) Määrätään muodostetuille apumuuttujille sellaiset arvot että saadaan aputehtävän sallittu ratkaisu. Siitä pisteestä aloitetaan parantava haku, jossa minimoidaan edellisessä kohdassa muodostettujen apumuuttujien summaa. Askel 2. (Ratkaisun olemassaolo) Jos vaiheessa I saadaan apumuuttujien summaksi nolla, niin jatketaan seuraavasta askeleesta. Jos vaiheessa I taas saadaan globaali minimi, joka tuottaa apumuuttujille summan > 0, niin lopetetaan. Nyt alkuperäisellä tehtävällä ei ole sallittua ratkaisua. Muussa tapauksessa palataan takaisin askeleeseen 1 ja aloitetaan toisesta lähtöpisteestä. Askel 3. (Vaihe II) Muodostetaan alkuperäisen tehtävän sallittu ratkaisu jättämällä vaiheen I ratkaisusta pois apumuuttujat. Tästä pisteestä aloitetaan parantava haku käyttäen alkuperäistä kohdefunktiota. Esimerkki Tarkastellaan edellä ollutta öljynjalostusesimerkkiä 2.1 min 20x x 2 s. t. 0.3x x x x x x x x 2 6. Valitaan lähtöpisteeksi origo eli tässä tapauksessa x 1 = x 2 = 0. Se toteuttaa rajoitukset 0 x 1 9 ja 0 x 2 6, mutta ei kolmea ensimmäistä. Lisätään nyt näihin rajoituksiin 38

42 ei-negatiiviset apumuuttujat, jolloin saadaan vaiheen I tehtävä min x 3 + x 4 + x 5 s. t. 0.3x x 2 + x x x 2 + x x x 2 + x x x 2 6 x 3 0, x 4 0, x 5 0. Sen aloituspisteen on oltava sallittu, kun x 1 = x 2 = 0, joten saadaan ehdot x 3 2.0, x 4 1.5, x Kohdefunktion muodosta seuraa, että kannattaa valita arvot x 3 = 2.0, x 4 = 1.5, x 5 = 0.5 eli lähdetään ratkaisemaan vaiheen I ongelmaa pisteestä x 0 = (0, 0, 2, 1.5, 0.5). Selvästikin kohdefunktion optimiarvo on aina 0. Jos nyt saadaan ratkaisuksi esimerkiksi x 2 = (4, 4, 0, 0, 0) on vaiheen I ongelmassa kohdefunktion minimiarvo nolla ja voidaan jatkaa vaiheesta II käyttäen ratkaisua x 1 = 4, x 2 = 4 ts. parantavassa haussa on x 0 = (4, 4) ja kohdefunktiona alkuperäinen 20x x 2. Mikäli alkuperäistä tehtävää muutetaan sellaiseksi, että rajoituksen 3 epäyhtälön suunta käännetään eli 0.2x x 2 + x 5 0.5, niin apumuuttujaa x 5 ei enää tarvita. Vaiheen I ratkaisuksi saadaan x t = (2.5, 0, 1.25, 0.5) ja tämä tuottaa kohdefunktiolle arvon 1.75 > 0. Koska tehtävässä on lineaarinen kohdefunktio ja lineaariset rajoitukset, on tämä lokaali minimi luvun 3.4 mukaan myös globaali minimi eikä tehtävällä näin ollen ole sallittua ratkaisua. Joissain tapauksissa voidaan lähtöpiste hoitaa niin kutsutulla iso-m -menetelmällä. Jos kyseessä on maksimointitehtävä, otetaan uudeksi kohdefunktioksi alkuperäinen kohdefunktio vähennettynä M kertaa apumuuttujien summalla. Minimointitehtävässä taas lisätään M kerrottuna apumuuttujien summalla. Kun M > 0 on riittävän suuri positiivinen vakio, niin tällä valinnalla pakotetaan apumuuttujat kohti arvoa 0. Esimerkki Edellisessä öljynjalostusesimerkissä saadaan muunnettu ongelma min 20x x 2 + M(x 3 + x 4 + x 5 ) s. t. 0.3x x 2 + x x x 2 + x x x 2 + x x x 2 6 x 3 0, x 4 0, x

43 Jos iso-m menetelmä tuottaa lokaalin optimin, jossa kaikki apumuuttujat saavat arvon 0, niin sen alkuperäisten muuttujien arvot tuottavat alkuperäisen tehtävän lokaalin minimin. Esimerkiksi jos valitaan M = 10000, saadaan tehtävän globaaliksi minimiksi x = (2, 3.5, 0, 0, 0). Alkuperäisen tehtävän ratkaisu on näin ollen x 1 = 2, x 2 = 3.5. Jos iso-m -menetelmä, jossa M on riittävän suuri, tuottaa globaalin optimin, jossa jokin apumuuttujista on > 0, ei alkuperäisellä tehtävällä ole sallittuja pisteitä. Jos iso- M -menetelmä tuottaa lokaalin optimin, jossa jokin apumuuttujista on > 0, ei pystytä päättelemään mitään. Tehtävä tulisi tällöin ratkaista uudelleen suuremmalla M arvolla ja/tai käyttäen uutta aloituspistettä. Jos yllä olevassa esimerkissä valitaan M = 1, saadaan ratkaisu x = (0, 0, 2, 1.5, 0.5), koska rangaistus M = 1 on liian pieni pakottamaan apumuuttujien arvot nolliksi. 40

44 4 Lineaariset optimointimallit 4.1 Allokaatiomallit Allokaatiomalleissa jaetaan (allokoidaan) rajoitettuja resursseja keskenään kilpaileviin tarpeisiin. Esimerkiksi luvun 2.4 esimerkin 2.5 ilmoitusbudjetin määrääminen on allokaatio, jossa resurssina on raha. Esimerkki 4.1. Yhdysvaltojen metsähallituksen hoidossa on 191 miljoonaa eekkeriä metsää ja sen täytyy huolehtia metsien hakkauksesta ja suojelusta sekä sen käytöstä laiduntamiseen ja virkistykseen ym. Metsät jaetaan homogeenisiin osiin ja kuhunkin tulee määritellä sopiva hoitopolitiikka. Sovellutuksena on eekkerin suuruinen metsä, jossa on 7 aluetta ja näissä kussakin voidaan noudattaa kolmea hoitopolitiikkaa. Merkitään alueita indeksillä i ja hoitotapoja indeksillä j. Tässä j = 1 merkitsee hakkuupainotteista käyttöä, j = 2 laiduntamispainotteista käyttöä ja j = 3 virkistys- ja suojelupainotteista käyttöä. Merkitään s i : alueen i koko tuhansina eekkereinä p ij : alueen i kaikkien käyttötapojen yhteisarvo eekkeriltä hoitotavalla j t ij : alueen i puutavaratuotto (kuutiojalkaa/eekkeri) sovellettaessa hoitotapaa j g ij : alueen i laiduntamiskapasiteetti (eläintä/kk/eekkeri) hoitotavalla j w ij : alueen i luonnontilaindeksi (välillä 0 100) hoitotavalla j ja pyritään maksimoimaan metsän kokonaisarvo siten, että saadaan vähintään 40 miljoonaa kuutiojalkaa puutavaraa ja 5000 laiduntamiskuukautta kuitenkin pitäen keskimääräinen luonnontilaindeksi vähintään 70 yksikön suuruisena. Päätösmuuttujiksi valitaan x ij : tavalla j hoidettujen metsien määrä alueelle i tuhansina eekkereinä. Silloin saadaan maksimointitehtävätehtävä max 7 3 p ij x ij (kokonaisarvo) i=1 j=1 s. t. 3 x ij = s i, i = 1,..., 7 (allokaatio) j=1 7 3 t ij x ij (puutavara) i=1 j=1 7 3 g ij x ij 5 (laidunnus) i=1 j= w ij x ij i=1 j=1 (luonnontila) x ij 0, 1 = 1,..., 7; j = 1, 2, 3. 41

45 Kun siinä valitaan parametrien arvoiksi i s i j p ij t ij g ij w ij niin saadaan ratkaisuksi x 11 = 0, x 12 = 0, x 13 = 75, x 21 = 90, x 22 = 0, x 23 = 0, x 31 = 140, x 32 = 0, x 33 = 0, x 41 = 0, x 42 = 0, x 43 = 60, x 51 = 0, x 52 = 154, x 53 = 58, x 61 = 0, x 62 = 0, x 63 = 98, x 71 = 0, x 72 = 0, x 73 = 113, joka tuottaa kohdefunktiolle arvon $. 4.2 Sekoitusmallit Allokaatiomalleissa jaetaan resursseja, kun taas sekoitusmalleissa yhdistetään niitä. Tarkoituksena on siis määrätä mikä lähtöaineiden sekoitus parhaiten toteuttaa halutut vaatimukset. Sovellutuksina ovat esimerkiksi ihmisen ruokavalio, eläinten rehut ja metalliseokset. Esimerkiksi luvun 2.1 öljynjalostusongelmassa sekoitetaan kahta raakaöljylaatua. 42

46 Esimerkki 4.2. (Ruotsalainen teräs) Fagersta AB tehtaalla on tarkoitus täyttää optimaalisesti 1000 kg:n uuni käyttäen erilaista romurautaa sekä täydennyksenä huomattavan kalliita lisäaineita. Oheisessa taulukossa on esitetty raaka-aineiden koostumus prosentteina sekä tavoiteosuudet hiili nikkeli kromi molybdeeni saatavissa hinta % % % % kg kr/kg romu romu romu rajatta 8 romu rajatta 9 nikkeli 100 rajatta 48 kromi 100 rajatta 60 molybdeeni 100 rajatta 53 minimiarvo maksimiarvo Päätösmuuttujiksi on järkevä valita x j = käytetty raaka-aineen j määrä kiloina, j = 1,..., 7, missä indeksit 1-4 viittaavat erilaisiin romurautoihin, 5 nikkeliin, 6 kromiin ja 7 molybdeeniin. Saadaan optimointitehtävä min 16x x 2 + 8x 3 + 9x x x x 7 s. t. x 1 + x 2 + x 3 + x 4 + x 5 + x 6 + x 7 = x x x x x x x x x x x x x x x x x x x x x x x x x 1 75 x x 1,..., x 7 0, Tehtävän yksikäsitteinen ratkaisu on x 1 = kg, x 2 = kg, x 3 = kg, x 4 = kg, x 5 = kg, x 6 = 0.00 kg, x 7 = kg ja minimikustannus kr. 43

47 4.3 Toiminnan suunnittelu Toiminnan suunnitteluongelmassa täytyy päättää mitä tehdään, missä ja milloin. Esimerkki 4.3. Babcock & Wilcox tuottaa 16 erilaista putkea 3 olemassa olevassa tehtaassaan. Lisäksi on suunnitteilla kokonaan uusi tehdas. Seuraavassa taulukossa Tavallinen putki Tuote i c i1 t i1 c i2 t i2 c i3 t i3 c i4 t i4 d i 1: 0.5" paksu : 0.5" ohut : 1" paksu : 1" ohut : 2" paksu : 2" ohut : 8" paksu : 8" ohut Paineputki Tuote i c i1 t i1 c i2 t i2 c i3 t i3 c i4 t i4 d i 9: 0.5" paksu : 0.5" ohut : 1" paksu : 1" ohut : 2" paksu : 2" ohut : 8" paksu : 8" ohut on esitetty yhden putkitonnin i vaatima kustannus c ij ($) tehtaalla j ja tähän kulutettu aika t ij. Lisäksi siinä on putken i viikottainen tarve tonneina d i. Tehtailla 1 4 voidaan käyttää b j tuntia viikossa putkien tekoon. Käytetään viimeksi mainituille lukuarvoja 800, 480, 1280 ja 960. Päätösmuuttujaksi valitaan x ij : putken i tuotantomäärä tehtaassa j tonneina viikossa, 44

48 jolloin saadaan ongelma min s. t c ij x ij i=1 j=1 4 x ij d i, i = 1,..., 16 j=1 16 i=1 t ij x ij b j, j = 1,..., 4 x ij 0, i = 1,..., 16; j = 1,..., 4. Esimerkki 4.4. Kanadalainen vaneritehdas voi ostaa valmista viilua tai ostaa tukkeja, joista sitten valmistetaan viilua. Molemmilla tavoilla saadut viilut on kuivattava ja lajiteltava laadun mukaan. Oksakohdat paikataan ja viilut leikataan oikeankokoisiksi. Sen jälkeen seuraa niiden liimaus ja puristus raakavaneriksi. Vaneri on vielä siistittävä myyntikuntoon täsmälleen oikean kokoiseksi. Oletetaan, että työvoima- ja muut yleiskustannukset ovat kiinteitä ja pyritään maksimoimaan vanerin tuoton ja raaka-aineiden hankintakustannusten erotus. Rajoitukset saadaan raaka-aineen saannista, kysynnästä ja tuotantokapasiteetista. Oletetaan, että tukkeja ostetaan kahdelta toimittajalta ja ne voidaan lajitella kahteen ja saatava viilu kolmeen laatuluokkaan. Tällöin yhdestä tukista saadaan eri viilulaatuja neliöjalkoina seuraavan taulukon toimittaja 1 toimittaja 1 toimittaja 2 toimittaja 2 hyvä tukki keskink. tukki hyvä tukki keskink. tukki tukkeja saatavissa (kpl/kk) tukin kappalehinta ($) A luokan 1 viilua B luokan 1 viilua C luokan 1 viilua A luokan 1 viilua B luokan 1 viilua C luokan 1 viilua osoittamat määrät. Yhdestä tukista voidaan tehdä vain yhden paksuista viilua. Viilun ostossa taas on voimassa saatavissa hinta $ neliöjalkaa/kk neliöjalalta A luokan 1 viilua B luokan 1 viilua C luokan 1 viilua A luokan 1 viilua B luokan 1 viilua C luokan 1 viilua

49 Viiluista valmistetaan kahta eri paksuutta olevia 4 8 vanerilevyjä kumpaakin kolmea eri laatua 1 levy 1 levy 1 levy 1 levy 1 levy 1 levy laatu AB laatu AC laatu BC laatu AB laatu AC laatu BC yläpinta 1 16 A 1 16 A 1 16 B 1 16 A 1 16 A 1 16 B väliviilut 1 8 C 1 8 C 1 8 C 1 8 C, 1 8 B, 1 8 C 1 8 C, 1 8 B, 1 8 C 1 8 C, 1 8 B, 1 8 C alapinta 1 16 B 1 16 C 1 16 C 1 16 B 1 16 C 1 16 C tk. kpl/kk tuotto $/kpl valm.aika h tk. = tuotantokapasiteetti ja käytettävissä on kuukausittain 4500 tuntia. Olkoon päätösmuuttujat w ijk : toimittajalta j kuukaudessa ostettujen i laatuisten ja k paksuiseksi viiluksi leikattujen tukkien lukumäärä x kl : kuukaudessa ostetun k paksuisen l laatuisen viilun määrä neliöjalkoina y klm : kuukaudessa käytettyjen k paksuisten ja l laatuisten mutta m laatuisena käytettyjen 4 8 viilulevyjen luku z klm : kuukaudessa valmistettavien k paksuisten levyjen määrä, joissa yläpinta on laatua l ja alapinta laatua m. Tehtävän kohdefunktio on ) max (45z 1/4,AB + 40z 1/4,AC + 33z 1/4,BC + 75z 1/2,AB + 65z 1/2,AC + 50z 1/2,BC ( 340w G1,1/ w F 1,1/ w G2,1/ w F 2,1/16 ) + 340w G1,1/ w F 1,1/ w G2,1/ w F 2,1/8 ) (1.0x 1/16,A + 0.3x 1/16,B + 0.1x 1/16,C + 2.2x 1/8,A + 0.6x 1/8,B + 0.2x 1/8,C ja kapasiteettirajoitukset w G1,1/8 + w G1,1/16 200, w F 1,1/8 + w F 1,1/ w G2,1/8 + w G2,1/16 100, w F 2,1/8 + w F 2,1/ x 1/16,A 5000, x 1/16,B 25000, x 1/16,C x 1/8,A 10000, x 1/8,B 40000, x 1/8,C z 1/4,AB 1000, z 1/4,AC 4000, z 1/4,BC 8000 z 1/2,AB 1000, z 1/2,AC 5000, z 1/2,BC ( z 1/4,AB + z 1/4,AC+z1/4,BC ) ( z1/2,ab + z 1/2,AC + z 1/2,BC )

50 Tasapainoehdoilla huolehditaan siitä, että kussakin tuotantovaiheessa tulee raakaaineita vähintään tarvittava määrä. Oletaan, että jokaiseen 4 8 viilulevyyn tarvitaan 35 neliöjalkaa raakaviilua. Lisäksi huonompilaatuinen viilu voidaan aina korvata pykälää paremmalla ja parempi yhtä pykälää huonommalla mikäli oksakohdat paikataan. Silloin 400w G1,1/ w F 1,1/ w G2,1/ w F 2,1/16 + x 1/16,A 35y 1/16,AA + 35y 1/16,AB 700w G1,1/ w F 1,1/ w G2,1/ w F 2,1/16 + x 1/16,B 35y 1/16,BA + 35y 1/16,BB + 35y 1/16,BC 900w G1,1/ w F 1,1/ w G2,1/ w F 2,1/16 + x 1/16,C 35y 1/16,CB + 35y 1/16,CC 200w G1,1/ w F 1,1/ w G2,1/ w F 2,1/8 + x 1/8,A 35y 1/8,AB 350w G1,1/ w F 1,1/ w G2,1/ w F 2,1/8 + x 1/8,B 35y 1/8,BB + 35y 1/8,BC 450w G1,1/ w F 1,1/ w G2,1/ w F 2,1/8 + x 1/8,C 35y 1/8,CB + 35y 1/8,CC. Edelleen täytyy kirjoittaa vaneri- ja viilulevyjen väliset relaatiot y 1/16,AA + y 1/16,BA = z 1/4,AB + z 1/4,AC + z 1/2,AB + z 1/2,AC y 1/16,AB + y 1/16,BB + y 1/16,CB = z 1/4,AB + z 1/4,BC + z 1/2,AB + z 1/2,BC y 1/16,BC + y 1/16,CC = z 1/4,AC + z 1/4,BC + z 1/2,AC + z 1/2,BC y 1/8,AB + y 1/8,BB + y 1/8,CB = z 1/2,AB + z 1/2,AC + z 1/2,BC y 1/8,BC + y 1/8,CC = z 1/4,AB + z 1/4,AC + z 1/4,BC + 2z 1/2,AB + 2z 1/2,AC + 2z 1/2,BC. Kaikkien muuttujien täytyy tietenkin olla ei-negatiivisia. Nollaa suuremmiksi päätösmuuttujan arvoiksi saadaan wg1,1/16 = 41.3 w F 2,1/16 = w F 1,1/8 = wf 2,1/8 = x 1/16,C = x 1/8,C = y1/16,aa = y 1/16,BA = y 1/16,CB = y1/16,cc = y 1/8,AB = y 1/8,BB = y1/8,bc = y 1/8,CC = z1/4,ab = z 1/4,AC = z 1/4,BC = z1/2,ab = z 1/2,AC = optimituoton ollessa $. Ratkaisu ei ole yksikäsitteinen eikä degeneroitunut. 4.4 Työvuorosuunnittelu Työvuorosuunnittelussa (shift scheduling, staff planning) yritetään toteuttaa kiinnitetyt suoritusvaatimukset työvuorojen ja työntekijöiden järkevällä suunnittelulla. Suoritusvaatimukset ovat peittorajoituksia (covering constraint), joissa kuhunkin periodiin on sijoitettava riittävän monta työntekijää, kun tiedetään yhden työntekijän suorituskyky ja tarvittava suorituksien kokonaismäärä. 47

51 Esimerkki 4.5. Tarkastellaan amerikkalaisen pankin shekinkäsittelyosaston toimintaa. Shekeissä on valmiina identifikaatiotieto, mutta dollarimäärä täytyi vuonna 1980 kirjata käsin. Shekkejä saapuu päivän mittaan seuraavat määrät aika shekkejä ja yksikkö on 1000 kappaletta. Kaikkien shekkien tulee olla käsiteltynä kello 22 mennessä, eikä käsittelemättömien shekkien luku minään ajanhetkenä saa ylittää 20 tuhatta kappaletta. Käytettävissä on kahdenlaista työvoimaa. Kokopäiväiset työntekijät työskentelevät 8 tuntia pitäen 4 tunnin työn jälkeen 1 tunnin palkattoman ruokatunnin. Osapäiväiset työntekijät tekevät 4 tunnin työrupeaman tauotta. Kummatkin voivat aloittaa työnsä minä tasatuntina hyvänsä, ja kokopäiväiset työntekijät voivat tarvittaessa tehdä 1 ylityötunnin työpäivänsä jatkoksi. Kokopäiväisten työntekijöiden palkkakulut ovat 11$ tunnilta, jonka lisäksi tulee vielä 1 $ iltalisä tunnilta kello 18 alkaen. Ylityötunnista maksetaan 50% enemmän kuin samaan aikaan tehdystä normaalitunnista. Osapäivätyöntekijän palkkaus maksaa 7 $ tunnilta ja siihen tulee myös 1 $ iltalisä tunnilta. Mahdollisia työvuoroja voidaan esittää kaaviona, aloitus R P 12 R R P P 13 R R R P P P 14 R R R P P P P 15 R R P P P P 16 R R P P P P 17 R R P P P P 18 RN RN RN PN PN PN PN 19 RN RN RN PN PN PN 20 ON RN RN PN PN 21 ON RN PN jossa R merkitsee kokopäivätyöntekijän tuntia, P osapäivätyöntekijän tuntia, O mahdollista ylityötuntia ja N iltalisää. Vaaditaan, että korkeintaan puolet kokopäivätyöntekijöistä voi jäädä ylitöihin ja ettei vuorokaudessa saa tehdä 20 ylityötuntia enempää. Kokopäivätyöntekijät pystyvät tunnissa käsittelemään 1000 shekkiä ja osapäivätyöntekijät vain 800. Käytettävissä on koko ajan 35 syöttöasemaa, joka rajoittaa työntekijöiden määriä. Kun indeksinä käytetään työvuoron aloitushetkeä h, niin otetaan käyttöön päätös- 48

52 muuttujat x h : hetkellä h aloittavien kokopäivätyöntekijöiden lukumäärä, h = 11, 12, 13 y h : niiden hetkellä h aloittavien kokopäivätyöntekijöiden lukumäärä, jotka tekevät lisäksi ylityötunnin, h = 11, 12 z h : hetkellä h aloittavien osapäivätyöntekijöiden lukumäärä, h = 11,..., 18 w h : rästissä olevien shekkien määrä hetkellä h yksikkönä 1000 kpl. Silloin saadaan optimointiongelma min 90x x x y y z z z 13 28z z z z z 18 s. t. x 11 + z x 11 + x 12 + z 11 + z x 11 + x 12 + x 13 + z 11 + z 12 + z x 11 + x 12 + x 13 + z 11 + z 12 + z 13 + z x 12 + x 13 + z 12 + z 13 + z 14 + z x 11 + x 13 + z 13 + z 14 + z 15 + z x 11 + x 12 + z 14 + z 15 + z 16 + z x 11 + x 12 + x 13 + z 15 + z 16 + z 17 + z x 11 + x 12 + x 13 + z 16 + z 17 + z y 11 + x 12 + x 13 + z 17 + z y 12 + x 13 + z y x 11 y x 12 y 11 + y x z w 12 1x x z z w 12 w 13 1x x x z z z w 13 w 14 1x x x z z z z w 14 w 15 1x x z z z z w 15 w 16 1x x z z z z w 16 w 17 1x x z z z z w 17 w 18 1x x x z z z z w 18 w 19 1x x x z z z w 19 w 20 49

53 1y x x z z w 20 w 21 1y x z w 21 w h 20, h = 12,..., 21 x h 0, y h 0, z h 0, w h 0, h, jonka ratkaisu on x 12 = 8.57, x 13 = 12.86, y12 = 4.29, z14 = 13.57, z16 = 5.36, z17 = 7.50, z18 = 0.71, w12 = 10.00, w13 = 12.43, w14 = 6.00, w18 = 2.29, w19 = 20.00, w20 = 17.71, w21 = Kokonaiskustannukset päivässä ovat 2836 $. 4.5 Dynaamiset mallit Tähän asti on tutkittu staattisia malleja, joissa aika ei ole mukana. Useat tehtävät ovat kuitenkin dynaamisia (dynamic, time phased), jolloin niissä tarkastellaan tilannetta eri aikoina. Tällöin voidaan usein kirjoittaa tilayhtälöitä, joissa kauden t aloitustilanteeseen tehdään kauden päätösten aiheuttamat muutokset ja saadaan seuraavan kauden t + 1 aloitustilanne. Esimerkki 4.6. (Kassavirta) Tarkastellaan yritystä, jossa on s t : ennustettu tuotto käteismaksuista pienasiakkailta viikolla t r t : ennustettu tuotto viikolla t suurasiakkailta, joille myydään luotolla p t : ennustettu laskutus viikolla t tavarantoimittajilta e t : ennustetut palkka- ja muut kiinteät toimintakustannukset viikolla t. Seuraavien 8 viikon ajalta tiedetään näiden suureiden arvot viikko s t r t p t e t ja yksikkö on tuhat dollaria. Laskut täytyy maksaa viikolla t + 3, mutta jos ne maksetaan heti viikolla t, niistä saa 2% alennuksen. Likviditeettiongelmien varalta on firmalla pankista tarjolla 4 miljoonan dollarin luotto, josta on maksettava 0.2% korkoa viikossa. Lisäksi pankki vaatii, että 50

54 1. 20% lainassa olevasta rahamäärästä on säilytettävä korottomalla shekkitilillä, 2. ylimääräinen käteisraha on sijoitettava lyhytaikaisille pääomamarkkinoille 0.1% viikkokorolla. Tavoitteena on minimoida korkokustannukset ja menetetyistä alennuksista johtuvat kustannukset pitäen koko ajan dollarin varmuuspääomaa shekkitilillä. Päätösmuuttujiksi voidaan valita (yksikkönä 1000 dollaria) g t : viikolla t lainattu rahamäärä h t : viikolla t takaisin maksettu lainamäärä w t : viikolta t viikolle t + 3 siirrettyjen maksujen määrä x t : viikolla t korkomarkkinoille sijoitettu rahamäärä. Yhtälöt yksinkertaistuvat, jos lisäksi otetaan käyttöön muuttujat y t : velan kokonaismäärä viikolla t z t : shekkitilillä olevat käteisvarat viikolla t. Tilayhtälöt voidaan kirjoittaa käteisrahalle ja velalle. Käteisrahan muutoksia ovat käteisrahan lisäys viikolla t otettu lainamäärä viikolla t vapautuvat viikon t 1 investoinnit korko viikon t 1 investoinnista käteismyynti viikolla t viikolla t erääntyvä laskutus käteisrahan vähennys viikolla t maksetut lainat viikon t investoinnit viikon t 1 lainakorot viikon t kiinteät kulut viikolla t maksetut viikon t laskut viikolla t maksetut viikon t 3 laskut Käyttäen edellä olevia symboleja, voidaan kirjoittaa tilayhtälöt z t 1 + g t h t + x t 1 x t x t y t 1 + s t e t + r t 0.98(p t w t ) w t 3 = z t, t = 1,..., 8 käteisrahalle. Tässä oletetaan nolliksi kaikki suureet, joiden indeksi on jokin muu kuin 0,..., 8. Vastaavat tilayhtälöt lainalle ovat y t 1 + g t h t = y t, t = 1,..., 8. 51

55 Koko optimointitehtävä on min y t w t x t t=1 t=1 t=1 s. t. z t 1 + g t h t + x t 1 x t x t y t 1 + s t e t + r t 0.98(p t w t ) w t 3 = z t, t = 1,..., 8 y t 1 + g t h t = y t, t = 1,..., 8 y t 4000, t = 1,..., 8 z t 0.2y t, t = 1,..., 8 w t p t, t = 1,..., 8 z t 20, t = 1,..., 8 g t 0, h t 0, w t 0, x t 0, y t 0, z t 0, t = 1,..., 8. Tehtävän optimiratkaisuksi saadaan g t h t w t x t y t z t tuhansina dollareina. Yllä olevassa esimerkissä suunnitteluperiodi (time horizon) koostui kiinnitetystä 8 viikosta. Koska on oletettavaa, että yritys on toiminut ennen viikon 1 alkua ja jatkaa toimintaansa viikon 8 jälkeen, niin kauden molempia päitä on mietittävä huolella. Edellä oletettiin, että kaikki muuttujat saavat arvon 0 kausien 1,..., 8 ulkopuolella, joten viikon 1 alussa käteisvaranto z 0 on nolla, samoin velka y 0 ja investoinnit x 0. Malli olisi todenmukaisempi, jos näille käytettäisiin viikon 1 tasapainoehdoissa uskottavampia arvoja, ja tämä muuttaisi todennäköisesti optimiratkaisua oleellisesti. Toisessa päässä taas olisi voinut tulla ratkaisu, jossa kausina 6-8 viivytetään maksuja ja silloin niitä ei tarvitsisi ollenkaan maksaa oheisen mallin mukaan. Eräs tapa välttää oheisia ongelmia on äärettömän suunnittelukauden (infinite time horizon) käyttö. Helpoin tapa on silloin käyttää viimeisen kauden lopussa saatuja tiloja ensimmäisen kauden alkutiloina. Tilat jatkuvat siis syklisesti niin, että viimeisen kauden jälkeen seuraa taas ensimmäinen kausi. Esimerkiksi lainan tiloista edellisessä esimerkissä saataisiin y 8 + g 1 h 1 = y 1. 52

56 4.6 Linearisoituvat epälineaariset ongelmat Lineaariset mallit ratkeavat aina helpommin kuin epälineaariset, joten lineaarisiin malleihin kannattaa aina pyrkiä. Jotkin alunperin epälineaariset ongelmat voidaan kuitenkin muuntaa lineaarisiksi. Esimerkkejä tällaisista ovat maximin-ongelmat, joissa maksimoidaan äärellisestä joukosta otettua minimiä. Tyypillinen tällainen ongelma on { max c T i x } min 1=1,...,k s. t. Ax = b x 0, jossa kohdefunktio min 1=1,...,k { c T x } on paloittain lineaarisena epälineaarinen. Tehtävä on kuitenkin ekvivalentti lineaarisen optimointitehtävän max f s. t. f c T i x, i = 1,..., k Ax = b x 0 kanssa, jossa on otettu käyttöön yksi uusi päätösmuuttuja f. Ratkaisun täytyy toteuttaa ehto f = min { c T i x }. Minimax ongelmat ovat vastaavasti tehtäviä, joissa minimoidaan maksimia. Minimaxongelmasta min saadaan puolestaan lineaarinen ongelma min { max c T i x } 1=1,...,k s. t. Ax = b f x 0 s. t. f c T i x, i = 1,..., k Ax = b x 0. Kumpaakin ongelmaa voidaan kutsua yhteisellä nimellä pullonkaulaongelma (bottleneck), jossa siis pyritään optimoimaan huonointa tapausta. Esimerkki 4.7. (Liikennevalvonta) Tarkastellaan poliisien optimaalista jakoa eri tieosuuksille, kun tiedetään tieosuutta j valvomaan määrättyjen poliisien maksimimäärä u j ja yhden poliisin aikaansaama ylinopeuksien määrän pieneneminen r j tieosuudella j. Kun datoina käytetään arvoja 53

57 tieosuus u j r j ja oletetaan poliiseja olevan käytettävissä 25 kappaletta, saadaan ylinopeuksien kokonaismäärän pienemisestä tehtävä max s. t. 8 r j x j j=1 8 x j 25 j=1 x j u j, j = 1,..., 8 x j 0, j = 1,..., 8. Tässä päätösmuuttuja x j esittää osuudelle j määrättyjen poliisien lukumäärää. Tehtävän ratkaisu on x 1 = 4, x 2 = 0, x 3 = 0, x 4 = 7, x 5 = 0, x 6 = 5, x 7 = 5, x 8 = 4. Yhtä arvoa lukuunottamatta on ratkaisuna joko arvo 0 tai maksimiarvo u j. Tämä pitää paikkansa kaikilla lukuarvoilla tässä yksinkertaisessa tehtävässä, mutta ratkaisu ei silti tunnu mielekkäältä. Sen sijaan, että maksimoidaan yhteenlaskettua ylinopeuksien pienenemistä, voidaankin maksimoida eri tieosuuksien pienintä ylinopeuksien pienemistä, jolloin saadaan epälineaarinen tehtävä max s. t. { } min rj x j j=1,...,8 8 x j 25 j=1 Se voidaan muuntaa lineaariseksi ongelmaksi max x j u j, j = 1,..., 8 x j 0, j = 1,..., 8. f s. t. f r j x j, j = 1,..., 8 8 x j 25 j=1 x j u j, j = 1,..., 8 x j 0, j = 1,..., 8, jonka ratkaisu on x 1 = 1.09, x 2 = 4.00, x 3 = 3.00, x 4 = 0.86, x 5 = 6.00, x 6 = 4.85, x 7 = 1.20, x 8 = Ratkaisu on paljon tasaisempi ja joka tieosuudelle saadaan ainakin 12 ylinopeuden vähennys. 54

58 Toisen linearisoituvan tehtävätyypin muodostavat minimipoikkeamamallit, joissa minimoidaan jotakin lineaaristen lausekkeiden erotuksen itseisarvojen lauseketta. Vaikka funktiot p(x) ja q(x) olisivatkin lineaarisia funktioita, niin niiden erotuksen itseisarvo p(x) q(x) on epälineaarinen. Erotus p(x) q(x) voidaan kuitenkin jakaa positiivi- ja negatiiviosiinsa ja esittää muodossa p(x) q(x) = s + s, s + 0, s 0, s + s = 0. Silloin p(x) q(x) = s + + s ja se on lineaarinen. Ainoa epälineaarisuus tässä on komplementaarisuusehto s + s = 0 mutta usein se toteutuu automaattisesti. Komplementaarisuusehdossa vain toinen muuttujista voi olla positiivinen. Jos s + on positiivinen, niin se pakottaa muuttujan s nollaksi. Esimerkki 4.8. Betonituotteen valmistuksessa on työvaiheet: 1. valu, 2. varastointi, 3. betonin valmistus, 4. raudoitus ja 5. lähetys. Nyt vaiheiden 1 ja 2 suorituspaikoille pitäisi etsiä optimaaliset sijaintipaikat, kun tiedetään vaiheiden 3-5 kiinnitetyt sijaintipaikat vaihe x j y j Lisäksi tiedetään eri työvaiheiden väliset materiaalikuljetuskustannukset vaihe 1 vaihe 2 vaihe 3 vaihe 4 vaihe 5 vaihe vaihe pituusyksikköä kohti. Luonnollinen päätösmuuttujien valinta on x j : vaiheen j sijaintipaikan x-koordinaatti y j : vaiheen j sijaintipaikan y-koordinaatti. Merkitsemällä pisteiden (x j, y j ) ja (x k, y k ) välistä etäisyyttä d(x j, y j, x k, y k ) saadaan minimaaliset kokonaiskustannukset ratkaisemalla tehtävä min 4d(x 1, y 1, x 2, y 2 ) + 1.1d(x 1, y 1, 300, 1200)+ 0.7d(x 1, y 1, 0, 600) d(x 2, y 2, 0, 600) + 0.4d(x 2, y 2, 600, 0), jossa ei ole rajoituksia. Mikäli etäisyytenä käytetään euklidista d 2 metriikkaa, on tehtävä aidosti epälineaarinen eikä siis ole linearisoitavissa. Kuitenkin materiaalin kuljetus tapahtuu usein trukeilla x- ja y-koordinaattien suuntaisia käytäviä pitkin ja silloin voi olla järkevää mallintaa tilannetta käyttämällä edellä d 1 eli Manhattan-metriikkaa. Silloin on d 1 (x j, y j, x k, y k ) = x j x k + y j y k 55

59 ja optimointitehtäväksi saadaan min 4 x 1 x y 1 y x y x y x y x y 2. Tämä voidaan linearisoida ottamalla käyttöön apumuuttujat s + i : itseisarvon i sisällä olevan lausekkeen positiiviosa, i = 1,..., 10 s i : itseisarvon i sisällä olevan lausekkeen negatiiviosa, i = 1,..., 10 ja tällöin saadaan lineaarinen tehtävä min 4(s s 1 ) + 4(s s 2 ) + 1.1(s s 3 ) + 1.1(s s 4 ) + 0.7(s s 5 )+ 0.7(s s 6 ) (s s 7 ) (s s 8 ) + 0.4(s s 9 ) + 0.4(s s 10) s. t. x 1 x 2 = s + 1 s 1 y 1 y 2 = s + 2 s 2 x = s + 3 s 3 y = s + 4 s 4 x 1 = s + 5 s 5 y = s + 6 s 6 x 2 = s + 7 s 7 y = s + 8 s 8 x = s + 9 s 9 y 2 = s + 10 s 10 s + i 0, s i 0, i = 1,..., 10. On selvää, ettei ratkaisussa voi olla yhtä aikaa s + i > 0 ja s i > 0, joten komplementaarisuusehto s + i s i = 0 on voimassa, vaikkei sitä eksplisiittisesti vaaditakaan. Tehtävän optimiratkaisuksi saadaan x 1 = x 2 = 300, y1 = y2 = 600, s + 1 = 0, s 1 = 0, s + 2 = 0, s 2 = 0, s + 3 = 0, s 3 = 0, s + 4 = 0, s 4 = 600, s + 5 = 300, s 5 = 0, s + 6 = 0, s 6 = 0, s + 7 = 300, s 7 = 0, s + 8 = 0, s 8 = 0, s + 9 = 0, s 9 = 300, s + 10 = 600, s 10 = 0. 56

60 Toinen tapa tehtävän ratkaisemiseksi on ottaa päätösmuuttujiksi kunkin välin vaakasuora s i1 ja pystysuora osa s i2, jolloin saadaan tehtävä min 4(s 11 + s 12 ) + 1.1(s 21 + s 22 ) + 0.7(s 31 + s 32 ) (s 41 + s 42 ) + 0.4(s 51 + s 52 ) s. t. s 11 x 1 x 2 s 11 s 12 y 1 y 2 s 12 s 21 x s 21 s 22 y s 22 s 31 x 1 s 31 s 32 y s 32 s 41 x 2 s 41 s 42 y s 42 s 51 x s 51 s 52 y 2 s 52 s ij 0, i = 1,..., 5; j = 1, 2. Ratkaisu on sama kuin edellisellä tavalla saatu, mutta tässä tehtävässä on enemmän rajoituksia ja vähemmän muuttujia. Mikäli tavaroita kuljetettaisiin katossa olevalla kumpaankin suuntaan toisistaan riippumattomasti liikkuvalla nosturilla, kuvaisi etäisyyttä paremmin d etäisyys { } d (x j, y j, x k, y k ) = max x j x k, y j y k. Silloin pidempi x- ja y-suuntaisista etäisyyksistä määrää etäisyyden. 57

61 5 Lineaarinen optimointi: Simplex-menetelmä 5.1 Optimiratkaisut, standardimuoto Simplex-menetelmä on George Dantzigin vuonna 1947 esittämä parantava hakumenettely, jossa käytetään tehokkaasti hyväksi lineaarisuutta. Lineaarinen kohdefunktio on aina unimodaalinen ja lineaariset rajoitukset määräävät konveksin joukon, joten lokaali optimi on nyt aina globaali optimi. Lineaarisessa optimointitehtävässä on siis määrättävä päätösmuuttujille x j sellaiset arvot, että kohdefunktio c 1 x 1 + c 2 x c n x n saadaan maksimoitua tai minimoitua tehtävän laadusta riippuen, kun päätösmuuttujia sitoo joukko rajoituksia. Rajoitukset voivat olla jotain seuraavista tyypeistä a 1 x 1 + a 2 x a n x n b a 1 x 1 + a 2 x a n x n = b a 1 x 1 + a 2 x a n x n b. Näistä ensimmäinen sisältää erikoistapauksenaan etumerkkirajoituksen x j 0, joka kuitenkin tavallisesti käsitellään erikseen. Lineaarisiin optimointitehtäviin voidaan tehdä seuraavia muunnoksia: 1. Optimoinnin laatua voidaan muuttaa vaihtamalla kohdefunktion kertoimien merkit. Koska nyt { n } { n max c j x j = min ( c j )x j }, j=1 j=1 niin kohdefunktion arvoksi tulee alkuperäisen arvon vastaluku. 2. Epäyhtälön suuntaa voidaan muuttaa kertomalla se arvolla 1. Näin ollen kaikki epäyhtälöt voidaan esittää samansuuntaisina. Siis n n a j x j b ( a j )x j b. j=1 j=1 3. Epäyhtälö voidaan muuttaa yhtälöksi ottamalla käyttöön uusi ei-negatiivinen apumuuttuja n n a j x j b a j x j + s = b, s 0 j=1 j=1 n n a j x j b a j x j t = b, t 0. j=1 j=1 Muuttuja s on täydennys- eli alijäämämuuttuja (slack) ja muuttuja t taas ylijäämämuuttuja (surplus). 58

62 4. Yhtälöt n a ij x j = b i, i = 1,..., m j=1 voidaan muuttaa ekvivalenteiksi epäyhtälöiksi n a ij x j b i, i = 1,..., m j=1 n r j x j s j=1 ottamalla käyttöön yksi lisärajoitus. Tässä on merkitty m r j = a ij, j = 1,..., n s = i=1 m i=1 b i. Usein muunnos tehdään vähemmän elegantisti kirjoittamalla jokainen yhtälö kahdeksi epäyhtälöksi, jolloin saadaan vaihtoehtoinen esitys edellä oleville rajoitusyhtälöille n a ij x j b i, i = 1,..., m j=1 n ( a ij )x j b i, i = 1,..., m. j=1 5. Merkiltään rajoittamattomat muuttujat x j voidaan muuntaa ei-negatiivisiksi merkitsemällä x j = x j x j, x j 0, x j 0. Tässä uusien muuttujien arvot eivät suinkaan ole yksikäsitteisiä, mutta Simplex-algoritmissa ne määräytyvät niin, että ainakin toinen niistä on nolla, ts. x j = max{0, x j } ja x j = min{0, x j }. 6. Ei-positiiviset muuttujat x j 0 voidaan muuntaa ei-negatiivisiksi ottamalla käyttöön muuttuja y j = x j. Edellä olevan nojalla lineaarinen optimointitehtävä saadaan aina muunnettua ns. kanoniseen muotoon max s. t. eli matriisimuotoon kirjoitettuna n c j x j j=1 n a ij x j b j, j=1 x j 0, max j = 1,..., n c T x s. t. Ax b x 0. i = 1,..., m 59

63 Tässä c, x ja 0 ovat n-dimensioisia ja b taas m-dimensioinen vektori sekä A puolestaan m n-matriisi. Käytännön ongelmien formuloinneissa on yleensä luonnollisinta kirjoittaa lineaarinen optimointitehtävä kanoniseen muotoon. Teoreettisissa tarkasteluissa on kuitenkin kätevämpi ns. standardimuoto max s. t. n c j x j j=1 n a ij x j = b j, i = 1,..., m j=1 x j 0, j = 1,..., n, jollaiseksi lineaarinen optimointitehtävä edellä olevilla muunnoksilla voidaan saattaa. Tässä ainoat epäyhtälörajoitukset ovat siis etumerkkirajoitukset ja oletetaan, että kaikki muuttujat ovat ei-negatiivisia. Kukin muuttuja esiintyy korkeintaan kerran vasemmalla puolella ja vakiotermit on viety yhtälöiden oikealle puolelle. Mikäli kohdefunktiossa on alunperin mukana vakiotermi, jätetään se pois. Matriisimuodossa kirjoitettuna saadaan max c T x s. t. Ax = b x 0. Oletetaan vielä, että standardimuotoisessa ongelmassa on b 0 eli b j 0, j = 1,..., m. Tällöin numeerinen ratkaiseminen sujuu paremmin, eikä oletus käytännössä ole rajoittava. Sallitun suunnan määräämisessä täytyy erotella aktiiviset rajoitukset muista, mutta standardimuotoisessa tehtävässä ovat kaikki varsinaiset rajoitukset aktiivisia ja einegatiivisuusehdoista on helpompi määrätä onko rajoitus aktiivinen (x j = 0) vai ei (x j > 0). Seuraavassa tarkastellaan yleensä standardimuotoista tehtävää. Siinä m n-matriisin A on oltava sellainen, että m < n. Käytännön ongelmissa tämä oletus ei ole rajoittava, koska se on normaalisti reilusti voimassa. Tapauksella m n on lähinnä akateemista mielenkiintoa ja silloin on kyseessä jokin seuraavista tapauksista: 1. Yhtälöllä Ax = b on yksikäsitteinen ratkaisu x, joka on myös optimointitehtävän ratkaisu, jos x 0. Jos jokin vektorin x komponenteista on negatiivinen, ei tehtävällä ole ratkaisua. 2. Yhtälöryhmällä Ax = b ei ole ratkaisua, jolloin optimointitehtävällä ei ole ratkaisua. 3. Jotkin yhtälöistä Ax = b ovat lineaarisesti riippuvia muista ja siis tarpeettomia. Oletetaan seuraavassa, että matriisin aste rank A = m, jolloin matriisissa A on m riippumatonta vaakariviä eikä edellinen vaihtoehto 3 tule kyseeseen. 60

64 Määritelmä 5.1. Lineaarisen optimointitehtävän sallittu piste on reunapiste, jos ainakin yksi epäyhtälörajoituksista toteutuu siinä yhtäsuuruutena ja sisäpiste, jos kaikki epäyhtälörajoitukset toteutuvat aidosti. Määritelmä 5.2. Olkoon S R n epätyhjä konveksi joukko. Joukon S alkio x on kärkipiste, jos ehdosta x = λx 1 + (1 λ)x 2, x 1, x 2 S, λ (0, 1) seuraa, että x = x 1 = x 2. Siis pistettä x ei voida esittää pisteiden x 1 ja x 2 (x 1 x 2 ) aitona konveksina yhdelmänä. Esimerkki 5.3. Tarkastellaan kanonista tehtävää max 12x 1 + 9x 2 s. t. x x x 1 + x x 1 + 2x x 1 0, x 2 0, jonka ratkaisuksi saadaan graafisesti x 1 = 650, x 2 = 1100 (kuva 31). x 2 4x 1 2x x x x 3 0 x x optimi x 650,1000 x1 x x 5 0 x 1 0 x x 1 Kuva 31: Esimerkin 5.3 graafinen ratkaisu 61

65 Nyt piste (500, 200) on sisäpiste, mutta pisteet (0, 0) ja (0, 500) reunapisteitä. Piste (1200, 800) ei ole reuna- eikä sisäpiste, koska se ei ole sallittu. Piste (0, 0) on sekä reunapiste että kärkipiste. Lukuunottamatta triviaalia tapausta, jossa kohdefunktio on vakio, lineaarisen optimointitehtävän ratkaisu on sen sallitun alueen reunapiste. Jos rajoituksina on pelkkiä epäyhtälöitä, niin sisäpisteestä päästään tapauksessa (c T x) = c 0 parempaan kohdefunktion arvoon menemällä maksimointitapauksessa gradientin suuntaan x = c ja minimointitapauksessa suuntaan x = c. Tämä voidaan todistaa, vaikka mukana olisi yhtälörajoituksiakin. Jos lineaarisella optimointitehtävällä on yksikäsitteinen ratkaisu, saavutetaan se kärkipisteessä. Muunlaiset pisteet eivät ole mahdollisia, sillä ne voidaan aina esittää pisteiden x 1 ja x 2 konveksina yhdelmänä, ja kohdefunktion arvo kyseisessä pisteessä on silloin lineaarinen yhdelmä kohdefunktioiden arvoista pisteissä x 1 ja x 2. Joko kohdefunktion arvo on sama kaikissa välijanan pisteissä tai jompikumpi päätepisteistä x 1 ja x 2 tuottaa yksikäsitteisen parhaan arvon. Jos lineaarisella optimointitehtävällä on optimiratkaisu, niin jokin kärkipiste on myös optimaalinen. 5.2 Ääriarvon haku ja kantaratkaisut Simplex-menetelmässä haetaan lineaarisen optimointitehtävän ratkaisua käymällä läpi kärkipisteitä. Kärkipiste muodostuu, kun riittävä määrä epäyhtälörajoituksista on aktiivisia kyseisessä pisteessä. Silloin saaduista yhtälöistä pystytään ratkaisemaan kärkipiste. Kun edellisen kohdan esimerkkitehtävässä 5.3 rajoitukset x 1 0 ja x ovat aktiivisia, saadaan kärkipiste (0, 1500). Kolmiulotteisessa tapauksessa voi olla kyseessä esimerkiksi kuvan 32 tapainen tilanne. Kun siinä tarkalleen yksi varsinainen rajoitus on aktiivinen, muodostuvat tahkot A L, jotka ovat siis tehtävän reunapisteitä. Kahden aktiivisen rajoituksen tapauksessa muodostuvat kuvion särmät. Kärkipisteen määrittelemiseen tarvitaan kuitenkin kolme aktiivista rajoitusta. Esimerkiksi pisteen x 0 määrittelevät tahkot I ja J sekä epäyhtälö x 3 0. Kärki määräytyy näistä yksikäsitteisesti, mutta kärki x 2 saadaan ottamalla mitkä tahansa kolme tahkoista C, D, G ja J aktiivisiksi. Tällaista kärkeä sanotaan degeneroituneeksi. Määritelmä 5.4. Lineaarisen optimoinnin kärkiä sanotaan vierekkäisiksi (adjacent), jos niissä aktiivisten rajoitusten joukot poikkeavat toisistaan vain yhden alkion suhteen. Kuvassa 32 pisteet x 1 ja x 2 ovat vierekkäisiä, koska edellisen pisteen määrittelevät tahkot G, I ja J sekä jälkimmäisen D, G ja J. Pisteillä x 2 ja x 4 on taas vain yksi yhteinen määrittelytahko C. Vierekkäisiä kärkipisteitä yhdistää aina tehtävän dimensioista riippumatta yksiulotteinen särmä, jossa niiden yhteiset tahkot ovat aktiivisia. Kun pisteessä x 1 pidetään tahkot G ja J aktiivisina, päädytään kärkeen x 2, mutta jos pidetäänkin tahkot G ja I aktiivisina päädytään kärkeen x 3. 62

66 x 3 x 6 x 5 A x 4 B C H x 3 G x 2 D E F x 1 I x 1 x 0 J K L x 2 Kuva 32: Sallittujen pisteiden joukko kolmiulotteisena Kun tarkastellaan standardimuotoista tehtävää max s. t. n c j x j j=1 n a ij x j = b i, i = 1,..., m j=1 x j 0, j = 1,..., n niin kärkipiste saadaan, kun riittävä määrä epäyhtälöistä on aktiivisia, jolloin pystytään ratkaisemaan kaikki komponentit. Ei-negatiivisuusrajoitukset ovat aktiivisia kun x j = 0 ja tällaisia tulee olla n m kappaletta. Silloin loput m muuttujan arvoa voidaan ratkaista m tuntemattoman ja m muuttujan lineaarisesta yhtälöryhmästä. Standardimuotoisen lineaarisen optimointitehtävän kantaratkaisu saadaan kiinnittämällä riittävä määrä muuttujia nolliksi, jotta loppujen arvot pystytään yksikäsitteisesti ratkaisemaan yhtälörajoituksista. Ei-kantamuuttujiksi kutsutaan muuttujia, joiden arvot kiinnitetään nolliksi. Kantamuuttujiksi taas sanotaan muuttujia, jotka ratkaistaan yhtälörajoituksista. 63

67 Esimerkki 5.5. Jatketaan esimerkkiä 5.3. Se on standardimuotoon kirjoitettuna max 12x 1 + 9x 2 s. t. x 1 + x 3 = 1000 x 2 + x 4 = 1500 x 1 + x 2 + x 5 = x 1 + 2x 2 + x 6 = 4800 x 1 0, x 2 0, x 3 0, x 4 0, x 5 0, x 6 0. Muuttujia on nyt enemmän kuin kanonisessa mallissa ja apumuuttujat x 3,..., x 6 määräävät sen ovatko alkuperäiset rajoitukset 1 4 aktiivisia vai ei. Eräs kantaratkaisu saadaan valitsemalla x 5 = x 6 = 0, jolloin x = (650, 1100, 350, 400, 0, 0). Tämä vastaa kanonisen tehtävän kärkipistettä (650, 1100), mutta siinä ei ole mitään ihmeellistä, koska kyseinen kärki saadaan asettamalla rajoituksia x 5 0, x 6 0 vastaavat alkuperäiset rajoitukset x 1 + x x 1 + 2x aktiivisiksi. Silloin taas on x 5 = x 6 = 0. Jos valitaan x 2 = x 4 = 0, niin toinen rajoitus muuttuu muotoon 0 = 1500 eikä kantaratkaisua ole. Pystyrivit 1, 3, 5 ja 6 eivät nimittäin ole riippumattomia, sillä = Yleisesti kantaratkaisu on olemassa, jos valittuja kantamuuttujia vastaavat pystyrivit muodostavat m-ulotteisen avaruuden kannan ts. ne ovat riippumattomia ja niitä on m kappaletta. Kun muodostetaan kaikki mahdollisuudet, saadaan taulukko, 64

68 aktiiviset kantakantaratkaisu rajoitukset muuttujat tila x 1 0, x 2 0 x 3,x 4,x 5,x 6 x = (0, 0, 1000, 1500, 1750, 4800) sallittu x 1 0, x 3 0 x 2,x 4,x 5,x 6 riippuva x 1 0, x 4 0 x 2,x 3,x 5,x 6 x = (0, 1500, 1000, 0, 250, 1800) sallittu x 1 0, x 5 0 x 2,x 3,x 4,x 6 x = (0, 1750, 1000, 250, 0, 1300) ei sallittu x 1 0, x 6 0 x 2,x 3,x 4,x 5 x = (0, 2400, 1000, 900, 650, 0) ei sallittu x 2 0, x 3 0 x 1,x 4,x 5,x 6 x = (1000, 0, 0, 1500, 750, 800) sallittu x 2 0, x 4 0 x 1,x 3,x 5,x 6 riippuva x 2 0, x 5 0 x 1,x 3,x 4,x 6 x = (1750, 0, 750, 1500, 0, 2200) ei sallittu x 2 0, x 6 0 x 1,x 3,x 4,x 5 x = (1200, 0, 200, 1500, 550, 0) ei sallittu x 3 0, x 4 0 x 1,x 2,x 5,x 6 x = (1000, 1500, 0, 0, 750, 2200) ei sallittu x 3 0, x 5 0 x 1,x 2,x 4,x 6 x = (1000, 750, 0, 750, 0, 700) ei sallittu x 3 0, x 6 0 x 1,x 2,x 4,x 5 x = (1000, 400, 0, 1100, 350, 0) sallittu x 4 0, x 5 0 x 1,x 2,x 3,x 6 x = (250, 1500, 750, 0, 0, 800) sallittu x 4 0, x 6 0 x 1,x 2,x 3,x 5 x = (450, 1500, 550, 0, 200, 0) ei sallittu x 5 0, x 6 0 x 1,x 2,x 3,x 4 x = (650, 1100, 350, 400, 0, 0) sallittu jonka kahdessa tapauksessa ei saada lainkaan ratkaisua. Lisäksi 7 saaduista kantaratkaisuista sisältää negatiivisen komponentin eivätkä siis ole sallittuja. Sitä ei millään tavalla huomioitu kantaratkaisun määritelmässä. Kun merkitään oheiset pisteet esimerkin 5.3 kuvaan 31, huomataan että sallitut kantaratkaisut ovat juuri aiemmin määriteltyjä kärkipisteitä ja tämä on voimassa yleisestikin. Määritelmä 5.6. Standardimuotoisen lineaarisen optimointitehtävän sallittu kantaratkaisu on kantaratkaisu, jonka kaikki komponentit ovat ei-negatiivisia. 5.3 Simplex-algoritmi Nyt on tarkoitus liikkua standardimuotoisessa tehtävässä kärkipisteestä toiseen siten, että kohdefunktion arvo koko ajan paranee. Esimerkki 5.7. Tarkastellaan edelleen esimerkkiä 5.5. Se voidaan kirjoittaa taulukoksi x 1 x 2 x 3 x 4 x 5 x 6 max c b A

69 Lähtöpisteeksi Simplex-menetelmä tarvitsee jonkin kärkipisteen eli standardimuotoisen tehtävän sallitun kantaratkaisun. Helpoin tapa on aloittaa kanonisen tehtävän origosta x 0 = (0, 0), jolloin kantamuuttujat ovat x 3, x 4, x 5, x 6 ja ei-kantamuuttujat x 1 ja x 2. Kun tämä informaatio lisätään taulukkoon, saadaan x 1 x 2 x 3 x 4 x 5 x 6 max c b A N N B B B B x Taulukossa on kirjaimella N merkitty ei-kantamuuttujia ja kirjaimella B kantamuuttujia. Kun tehtävässä on saatu aloituspiste x 0, niin seuraavaksi täytyy liikkua jotakin särmää pitkin pisteeseen x 1. Pistessä x 1 pitää jättää yksi aktiivisista rajoituksista pois. Aktiiviset rajoitukset sallitussa kantaratkaisussa vastaavat ei-kantamuuttujien ei-negatiivisuusrajoituksia, joten kaikki mahdolliset suunnat saadaan luopumalla yksi kerrallaan ei-kantamuuttujien aktiivisuudesta (arvosta 0). Lisätään siis yhden eikantamuuttujan x 0 j = 0 arvoa kerrallaan määrä x j = 1 pitäen muut ei-kantamuuttujat edelleen nollina samalla huolehtien siitä, että varsinaiset rajoitukset ovat voimassa. Sijoittamalla x = x 0 + x ehtoon Ax = b saadaan lineaarinen yhtälöryhmä A x = 0, josta ratkaistaan suunnan x kantamuuttujia vastaavat komponentit. Tällä yhtälöryhmällä on varmasti ratkaisu, koska kantamuuttujia vastaavat A:n pystyrivit ovat aikaisemman mukaan riippumattomia. Esimerkki 5.8. Kun esimerkin 5.5 tehtävässä kasvatetaan muuttujaa x 1 saadaan lineaarinen yhtälöryhmä x x x x 6 = x x x x 6 = x x x x 6 = x x x x 6 = 0, jonka ratkaisu on x 3 = 1, x 4 = 0, x 5 = 1 ja x 6 = 4. Täydellinen suuntavektori on siis x = (1, 0, 1, 0, 1, 1, 4) T. Kun taas kasvatetaan ei-kantamuuttujaa x 2, saadaan suunnaksi x = (0, 1, 0, 1, 1, 2) T. 66

70 Suunnan määräämisen jälkeen täytyy tutkia milloin valittu suunta parantaa kohdefunktion c T x arvoa. Pisteessä x 0 + x kohdefunktio saa arvon c T x 0 + c T x. Kun kasvatetaan ei-kantamuuttujaa x j, paranee kohdefunktion arvo maksimointitehtävässä, jos c T x > 0 ja minimointitehtävässä, jos c T x < 0. Merkitään c j = c T x ja kutsutaan sitä redusoiduksi kustannukseksi. Parantavassa haussa edetään valittuun suuntaan niin kauan, kun kohdefunktion arvo paranee ja piste pysyy sallittuna. Lineaarisessa tapauksessa paranemista tapahtuu koko ajan, joten pyritään vain ottamaan mahdollisimman pitkä askel. Suunta x valittiin niin, että yhtälörajoitukset ovat voimassa, joten riittää huolehtia, että kaikki muuttujat pysyvät ei-negatiivisina eli x 0 + λ x 0. Tästä saadaan määrättyä suurin askelpituus λ = min { x 0 j x j } x j < 0, x j kantamuuttuja suunnassa x, mikäli on olemassa vähintään yksi kantamuuttuja x j, jolle x j < 0. Jos kaikille kantamuuttujille x j 0, niin vektorin x 0 +λ x kaikki komponentit pysyvät einegatiivisina, vaikka muuttujaa λ kasvatettaisiin rajatta. Tällöin tehtävällä ei ole äärellistä ratkaisua. Suunnan x generoiva ei-kantamuuttuja tulee yleensä kantaan. Silloin jokin muuttujan λ arvon määräävistä ja aktiivisiseksi tulevista kantamuuttujista poistuu sieltä. Esimerkki 5.9. Jatkettaessa edellistä esimerkkiä saadaan redusoiduiksi kustannuksiksi c 1 = (12, 9, 0, 0, 0, 0)(1, 0, 1, 0, 1, 4) T = 12 > 0 c 2 = (12, 9, 0, 0, 0, 0)(0, 1, 0, 1, 1, 2) T = 9 > 0. Positiivisina kumpikin parantaa nyt kohdefunktiota. Kun valitaan suunta x = (1, 0, 1, 0, 1, 4), niin { 1000 λ = min 1, , 4800 } = ja Simplex-menetelmän seuraava kärkipiste on x 1 = x 0 + λ x = (0, 0, 1000, 1500, 1750, 4800) (1, 0, 1, 0, 1, 4) = (1000, 0, 0, 1500, 750, 800). Tässä muuttuja x 1 on tullut kantaan ja x 3 poistunut sieltä. Kun katsotaan tehtävän kanonisen version kuvaa 31, niin saatu piste x 1 on tosiaan lähtöpisteen x 0 viereinen kärkipiste. Saatu kärki on ei-degeneroitunut, mutta jos pisimmän askelpituudeen määräävässä ehdossa minimiarvo saavutetaan useammalla kuin yhdellä indeksin j arvolla, niin saavutaan degeneroituneeseen kärkeen. Esitellään seuraavaksi Simplex-algoritmin perusmuoto. 67

71 Algoritmi Simplex-algoritmi Askel 0. (Alustus) Valitaan jokin sallittu lähtökanta ja muodostetaan kantaratkaisu x 0 sekä asetetaan kierroslaskurille arvo t 0. Askel 1. (Simplex-suunnat) Konstruoidaan jokaista ei-kantamuuttujaa x j kasvattamalla saatava Simplex-suunta x ja lasketaan sen redusoitu kustannus c j = c T x. Askel 2. (Optimaalisuus) Jos parantavaa Simplex-suuntaa ( c j > 0 maksimointitehtävässä ja c j < 0 minimointitehtävässä) ei ole, niin lopetetaan, koska nykyinen kantaratkaisu x t on globaali optimipiste. Muussa tapauksessa valitaan jokin parantava suunta suunnaksi x t+1 ja merkitään tällöin muuttujalla x p kantaan tulevaa muuttujaa. Askel 3. (Askelpituus) Jos kaikki kantamuuttujia vastaavat suunnan x t+1 komponentit ovat ei-negatiivisia, lopetetaan. Tällöin tehtävällä ei ole äärellistä ratkaisua. Muuten valitaan kannasta poistuva muuttuja x r niin, että x t r x t+1 r = min { x t j x t+1 j } xt+1 j < 0, x t j kantamuuttuja ja asetetaan λ = x t r x t+1 r. Askel 4. (Uusi kärki ja kanta) Lasketaan uusi kärkipiste x t+1 = x t + λ x t+1 ja korvataan muuttuja x r palataan askeleeseen 1. kannassa muuttujalla x p. Asetetaan t t + 1 ja Vaikka algoritmissa tutkitaankin vain pisteestä lähtevien särmien mukaisia Simplexsuuntia, ei mikään muu suunta voi olla parantava, mikäli parantavaa Simplex-suuntaa ei ole. Tällaiset suunnat voidaan nimittäin esittää Simplex-suuntien konveksina yhdelmänä. Esimerkki Kun suoritetaan Simplex-algoritmi esimerkissä 5.5, saadaan 68

72 x 1 x 2 x 3 x 4 x 5 x 6 max c b A t = 0 N N B B B B x c T x 0 = 0 x : x c 1 = 12 x : x c 2 = ( 1) ( 1) t = 1 B N N B B B 4800 λ = 1000 ( 4) x c T x 1 = x : x c 2 = 9 x : x c 3 = ( 1) 750 ( 1) t = 2 B B N B B N 800 λ = 400 ( 2) x c T x 2 = x : x c 3 = 6 x : x c 6 = ( 1) 1100 ( 2) t = 3 B B B B N N 350 λ = 350 ( 1) x c T x 3 = x : x c 5 = 6 x : x c 6 = 1.5 Kun vaiheessa 0 valitaan p = 1, seuraa siitä, että r = 3 ja λ = Vaiheessa t = 1 on valittava p = 2, josta taas seuraa r = 6 ja λ = 400. Piste x 2 on kuvan 31 mukaan myös kärkipiste. Vaiheessa t = 2 on p = 3 sekä r = 5 ja päädytään pisteeseen x 3, joka on optimi, sillä kumpikin redusoiduista kustannuksista < 0. Nyt pisteessä x 3 ei ole mitään muutakaan parantavaa suuntaa, koska jos pisteestä haluttaisiin mennä vaikkapa suuntaan x 5 = 3, x 6 = 7, niin x = 3( x ) + 7( x ), missä x ja x ovat muuttujia x 5 ja x 6 vastaavat Simplex-suunnat. Tällöin c T x = c T (3 x + 7 x ) = 3(c T x ) + 7(c T x ) = 3( 6) + 7( 1.5) =

73 5.4 Perinteinen Simplex-taulukko Edellä ollut esitys poikkeaa jonkin verran normaalista, jota myös LINDO ohjelmisto käyttää. Siinä manipuloidaan yhtälörajoituksia n a ij x j = b i i = 1,..., m j=1 ja merkitään kantamuuttujien indeksijoukkoa suureella B ja ei-kantamuuttujien indeksijoukkoa suureella N. Muodostetaan kerroinmatriisin A pystyriveistä k B neliömatriisi B ja kerrotaan puolittain vasemmalta sen käänteismatriisilla B = B 1 rajoitukset Ax = b, jolloin x k + b kj x j = b k, k B. j N Kun tästä kantamuuttujat x k sijoitetaan kohdefunktioon, saadaan z = z + c j x j, j N missä z on kohdefunktion arvo tarkasteltavassa kantaratkaisussa ja c j redusoitu kustannus. entiseen tapaan Esimerkki Esimerkistä 5.5 saadaan z = 12x 1 + 9x 2 x 1 + x 3 = 1000 x 2 + x 4 = 1500 x 1 + x 2 + x 5 = x 1 + 2x 2 + x 6 = Kun valitaan kantaindekseiksi B = (1, 2, 4, 5), niin B = Tämän käänteismatriisilla kerrotaan puolittain vasemmalta rajoitukset Ax = b ja saadaan x x x = x x x 6 70

74 Ratkaisemalla tästä edelleen kantamuuttujat x 1, x 2, x 4 ja x 5 ei-kantamuuttujien avulla ja sijoittamalla ne kohdefunktioon saadaan z = 12(1000 x 3 ) + 9( x 3 0.5x 6 ) = x 3 4.5x 6. Perinteinen Simplex-taulukko on silloin x 1 x 2 x 3 x 4 x 5 x x x x x Oikeanpuoleisessa sarakkeessa on kohdefunktion arvo sekä kantamuuttujien arvot tarkasteltavassa kärkipisteessä. Ensimmäisellä numerorivillä on redusoitujen kustannusten vastaluvut, jotka ovat kantamuuttujille aina nollia. Jos sieltä ei löydy yhtään negatiivista lukua (minimointitehtävässä yhtään positiivista lukua), ollaan saavutettu optimi. Muut luvut taulukon sarakkeissa ovat kantamuuttujien tapauksessa yksikkövektoreita ja ei-kantamuuttujien tapauksessa Simplex-suuntien komponenttien vastalukuja. Esimerkiksi kun otetaan x 3 kantaan, niin Simplex-suunta esimerkissä 5.11 oli x = ( 1, 2, 1, 2, 1, 0) ja sama saadaan konstruoitua Simplex-taulukosta. Käsin laskettaessa on Simplex-taulukko tehokas, sillä matriisin käännöt saadaan siinä modifioitua vanhasta käänteismatriisista. Se ei kuitenkaan ole numeerisesti stabiili laskettaessa tietokoneen liukulukuaritmetiikalla, minkä takia tietokoneohjelmissa käytetään parannettua (revised) Simplex-menetelmää. Se on aritmeettisesti ekvivalentti tavallisen Simplex-menetelmän kanssa, mutta numeerisesti parempi. 5.5 Kaksivaiheinen Simplex Simplex-menetelmä vaatii startatakseen sallitun kärkipisteen. Mikäli tällaista ei tunneta, voidaan käyttää luvun 3.5 kaksivaiheista algoritmia. Lisätään siis ensiksi apumuuttujia rajoituksiin. Nyt ei kuitenkaan riitä, että löydetään ensimmäisen vaiheen aputehtävälle sallittu ratkaisu, vaan tarvitaan kantaratkaisu. Jos standardimuotoisessa tehtävässä on rajoitusmatriisin A sarakkeissa yksikkövektoreita, niin niitä vastaavat muuttujat voidaan ottaa kantamuuttujiksi. Muussa tapauksessa täytyy lisätä muita yksikkövektoreita apumuuttujien kertoimiksi siten, että vaiheen 1 rajoitusmatriisin pystyriveistä löytyy kaikki m-ulotteisen avaruuden yksikkövektorit. Jos alkuperäiset rajoitukset ovat muotoa Ax b, x 0, niin standardimuotoon päästään ottamalla käyttöön sellainen vektori y 0, että Ax + y = b. Tällöin saadaan yhtälörajoituksissa tarvittavat m yksikkövektoria ja voidaan valita kantamuuttujiksi kaikki 71

75 vektorin y komponentit. Kun ei-kantamuuttujat asetetaan aktiivisiksi eli x = 0, saadaan lähtöpisteeksi kelpaava kärki x = 0, y = b. Esimerkki Herra L.A. Pensas aikoo perustaa urheiluliikkeen. Hänellä on vain 5000$ käytettävissään, vaikka kaikkiaan tarvitaan vähintään $. Pensas on kuitenkin tehokas toimissaan ja on saanut riskisijoittajan A lupaamaan puolet alkupääomasta, mikäli tämä saa saman osuuden päätösvallasta. Lisäksi toinen riskisijoittaja B on lupautunut toimittamaan osan a alkupääomasta mikäli hänkin saa osuutensa mukaisen päätösvallan. Tässä a on toistaiseksi kiinnittämätön vakio. Päätösmuuttujiksi voidaan valita x 1 : riskisijoittajan A sijoitus (tuhansia $) x 2 : riskisijoittajan B sijoitus (tuhansia $) x 3 : L.A. Pensaan sijoitus (tuhansia $). Jos tavoitteeksi valitaan mahdollisimman suuri alkupääoma, saadaan optimointitehtävä max x 1 + x 2 + x 3 s. t. x 1 + x 2 + x x 3 5 x 1 x 1 + x 2 + x 3 = 0.5 x 2 x 1 + x 2 + x 3 = a x 1 0, x 2 0, x 3 0. Tässä muodossaan se ei ole lineaarinen, mutta koska x 1 + x 2 + x 3 > 0, eivät nimittäjät voi saada arvoa nolla ja voidaan niillä huoletta kertoa. Silloin max x 1 + x 2 + x 3 s. t. x 1 + x 2 + x x x x x 3 = 0 ax 1 + (a 1)x 2 + ax 3 = 0 x 1 0, x 2 0, x 3 0. Kun vielä lisätään apumuuttujia, saadaan standardimuotoinen tehtävä max x 1 +x 2 +x 3 st. x 1 +x 2 +x 3 x 4 = 100 x 3 +x 5 = 5 0.5x x x 3 = 0 ax 1 +(a 1)x 2 +ax 3 = 0 x 1 0, x 2 0, x 3 0, x 4 0, x

76 Ainoastaan viimeinen rajoitusmatriisin sarake on yksikkövektori, joten tarvitaan kolme apumuuttujaa ja saadaan ensimmäiseksi vaiheeksi x 1 x 2 x 3 x 4 x 5 x 6 x 7 x 8 min d b A a a 1 a N N N N B B B B x Mikäli aputehtävän optimiratkaisussa kohdefunktion arvo on > 0, ei alkuperäisellä tehtävällä ole sallittua pistettä. Jos arvo 0 saavutetaan, on löydetty alkuperäisen tehtävän kärki. Algoritmi Kaksivaiheinen Simplex-menetelmä Askel 0. (Aputehtävä) Jos alkuperäisellä standardimuotoisella tehtävällä on helposti löytyvä sallittu lähtökanta, muodostetaan se ja siirrytään askeleeseen 3. Muussa tapauksessa muodostetaan aputehtävä lisäämällä edellä selostetulla tavalla tehtävän rajoituksiin uusia muuttujia, joiden kerroin kohdefunktiossa on 1. Askel 1. (Vaihe I) Minimoidaan apumuuttujien summaa Simplex-menetelmällä lähtien aputehtävän sallitusta lähtökannasta. Tässä rajoituksina käytetään aputehtävän rajoituksia. Askel 2. (Ei-sallittavuus) Jos vaiheen I kohdefunktion arvo on nollaa suurempi, lopetetaan, sillä alkuperäisellä tehtävällä ei voi olla sallittuja pisteitä. Muussa tapauksessa muodostetaan ratkaisusta alkuperäisen tehtävän sallittu kantaratkaisu. Askel 3. (Vaihe II) Lähtien edellä saadusta ratkaisusta palataan optimoimaan alkuperäistä standardimuotoista optimointitehtävää. Esimerkki Jatketaan edellistä esimerkkiä. Jos siinä on a < 0.45 tai a > 0.5, ei tehtävällä selvästikään ole sallittua ratkaisua ja jos a = 0.5, ei tehtävällä ole äärellistä ratkaisua. Valitaan aluksi a = 0.4 ja katsotaan miten kaksivaiheinen Simplex-menetelmä toimii. 73

77 x 1 x 2 x 3 x 4 x 5 x 6 x 7 x 8 max c min d b A t = 0 N N N N B B B B vaihe I x d T x 0 = 100 x : x d 1 = 0.9 x : x d 2 = 0.9 x : x d 3 = 1.9 x : x d 4 = λ = t = 1 N N B N B B B N vaihe I x d T x 1 = 100 x : x d 1 = 1.0 x : x d 2 = 3.75 x : x d 4 = 1.0 x : x d 8 = λ = t = 2 N B B N B B N N vaihe I x d T x 2 = 100 x : x d 1 = 2.0 x : x d 4 = 1.0 x : x d 7 = 3.0 x : x d 8 = λ = t = 3 B B B N N B N N vaihe I x d T x 3 = 50 x : x d 4 = 1.0 x : x d 5 = 10.0 x : x d 7 = 9.0 x : x d 8 =

78 50 10 λ = 5 t = 4 B B B N N N B N vaihe I x d T x 4 = 5 x : x d 4 = 0.1 x : x d 5 = 1.0 x : x d 6 = 0.9 x : x d 8 = 0.0 Sekä x 0, x 1 että x 2 ovat degeneroituneita kärkipisteitä, ja askeleen pituudeksi niissä tulee 0. Kantamuuttujien joukko kuitenkin vaihtuu, joka vaiheessa ja x 3 tuottaa jo kohdefunktiolle paremman arvon. Kohdefunktion arvoksi ei kuitenkaan saada nollaa, joten alkuperäisellä tehtävällä ei ole sallittuja pisteitä. Kun tarkastellaan tapausta a = 0.49, saadaan x 1 x 2 x 3 x 4 x 5 x 6 x 7 x 8 min d b A t = 0 N N N N B B B B vaihe I x d T x 0 = 100 x : x d 1 = 0.99 x : x d 2 = 0.99 x : x d 3 = 1.99 x : x d 4 = λ = t = 1 N N B N B B B N vaihe I x d T x 1 = 100 x : x d 1 = 1.0 x : x d 2 = 3.06 x : x d 4 = 1.0 x : x d 8 = λ = t = 2 N B B N B B N N vaihe I x d T x 2 = 100 x : x d 1 = 2.0 x : x d 4 = 1.0 x : x d 7 = 3.0 x : x d 8 =

79 5 100 λ = t = 3 B B B N B N N N vaihe I x d T x 3 = 0 x : x d 4 = 0.0 x : x d 6 = 1.0 x : x d 7 = 1.0 x : x d 8 = 1.0 Tästä voidaan jatkaa vaiheeseen II, x 1 x 2 x 3 x 4 x 5 max c b A t = 0 B B B N B vaihe II x c T x 0 = 100 x : x c 4 = λ = 400 t = 1 B B B B N vaihe II x c T x 1 = 500 x : x c 5 = 100 jossa viimeksi saatu kärki x 1 on optimaalinen. Siis sijoittajalta A tarvitaan $, sijoittajalta B $ sekä L.A. Pensaalta 5000 $. Mikäli valittaisiin a = 0.5, niin vaihe I sujuu lähes identtisesti tapauksen a = 0.49 kanssa, ja vaiheessa II x 1 x 2 x 3 x 4 x 5 max c b A t = 0 B B B N B vaihe II x c T x 0 = 100 x : x c 4 = 1.0 λ = 76

80 5.6 Degeneroituneet kärjet Kuten edellisessä luvussa nähtiin, ei kohdefunktion arvo Simplex-menetelmässä välttämättä parane joka askeleella niin kuin parantavasta hausta olettaisi. Kohdefunktion arvot saattavat olla esimerkiksi kuvan 33 näköisiä iteraatiomäärän funktiona. Tämä johtuu Kuva 33: Esimerkki kohdefunktiosta iteraatiomäärän funktiona degeneroituneistä kärkipisteistä, jolloin ainakin yksi kantamuuttuja on aktiivinen ts. sitä rajoittava ei-negatiivisuusrajoitus toteutuu yhtälömuodossa. Silloin yhtä sallittua kantaratkaisua kohti on enemmän kuin yksi kanta. Esimerkiksi edellisen luvun esimerkin 5.15 ensimmäisessä taulukossa on x 0 = x 1 = x 2 = (0, 0, 0, 0, 5, 100, 0, 0), mutta se määrättiin vaiheessa t = 0 kannasta {x 5, x 6, x 7, x 8 }, vaiheessa t = 1 kannasta {x 3, x 5, x 6, x 7 } ja vaiheessa t = 2 kannasta {x 2, x 3, x 5, x 6 }. Degeneroituneessa pisteessä tulee usein (ei kuitenkaan aina) askelpituudeksi λ = 0 kuten edellä vaiheissa t = 0 ja t = 1. Vaiheessa t = 2 ollaan edelleen degeneroituneessa pisteessä, mutta silti pystytään ottamaan askel λ = 25 ja kohdefunktion arvo paranee. 5.7 Konvergenssi ja silmukkaan joutuminen Hakualgoritmi suppenee, jos ratkaisuiteraatiot etenevät kohti optimia. Olisi mukavaa, mikäli voitaisiin osoittaa tarvittavan iteraatiomäärän olevan aina äärellinen. Jos askelpituus λ on aina positiivinen, riittää Simplex-menetelmälle aina äärellinen askelmäärä. Tällöin joko löytyy optimi tai sitten saadaan tieto äärettömästä ratkaisusta. Kantaratkaisuja on nimittäin korkeintaan ( ) n m kappaletta. Vaikka se saattaakin olla suuri luku, niin varmasti se on äärellinen. Degeneroituneissa kärjissä on mahdollista, että menetelmä juuttuu äärettömään silmukkaan, sillä voidaan joutua uudestaan kantaan, jossa on jo käyty. 77

81 Esimerkki Taulukossa x 1 x 2 x 3 x 4 x 5 x 6 x 7 min c b A t = 0 B B B N N N N x c T x 0 = 0 x : x c 4 = λ = t = 1 N B B B N N N x c T x 1 = 0 x : x c 5 = λ = 0 4 t = 2 N N B B B N N x c T x 2 = 0 x : x c 6 = λ = t = 3 N N B N B B N x c T x 3 = 0 x : x c 7 = λ = t = 4 N N B N N B B x c T x 4 = 0 x : x c 1 = t = 5 B N B N N N B 0 λ = x c T x 5 = 0 x : x c 2 = λ = 0 t = 6 B B B N N N N x c T x 6 = 0 joudutaan äärettömään silmukkaan, sillä saadaan kannat {x 1, x 2, x 3 }, {x 2, x 3, x 4 }, {x 3, x 4, x 5 }, {x 3, x 5, x 6 }, {x 3, x 6, x 7 }, {x 1, x 3, x 7 }, {x 1, x 2, x 3 }..., joissa kohdefunktion arvo pysyy samana. Tämä on kuitenkin erittäin harvinaista, ja kantojen leksikografisella läpikäynnillä voi varmistaa ettei silmukkaan jouduta. Näin on kaiketi kunnollisissa tietokoneohjelmissa tehty. 78

82 5.8 Parannettu Simplex Luvun 5.3 Simplex-algoritmissa täytyy ratkaista lineaarinen yhtälöryhmä jokaisen kantaratkaisun määräämiseksi ja edelleen jokaisen Simplex-suunnan määräämiseksi. Parannetussa Simplex-menetelmässä huomioidaan se, että kummassakin yhtälöryhmässä on kerroinmatriisina alkuperäisen matriisin kantamuuttujia vastaavista sarakkeista saatu kantamatriisi B, vaikka oikean puolen vakiot muuttuvat. Esimerkki Luvun 5.3 esimerkissä 5.11 oli vaiheessa t = 1 kanta (x 1, x 4, x 5, x 6 ), jolloin B = Kun määrätään sen käänteismatriisi B = ja merkitään matriisin A pystyrivejä a j, niin saadaan kantamuuttujien arvot B 1 b ja Simplex-suunta B 1 a j kasvatettaessa ei-kantamuuttujaa x j. Siis x x 4 = B b = = x x ja Simplex-suunta tapauksessa j = 2 on x x 4 = B 1 a = =. x x Koska joka iteraatiovaiheessa yksi kantamuuttuja vaihtuu, niin matriisi B ei muutu paljon. Sen takia ei tarvitse suorittaa matriisin kääntämistä alusta lähtien, vaan pystytään suoraan päivittämään entistä käänteismatriisia kertomalla se vasemmalta matriisilla 79

83 x π(1) x π(r) x π(2) x π(r) x π(r 1) E = x π(r) x π(r) x π(r+1) x π(r) x π(m) x π(r) Tässä (x π(1), x π(2),..., x π(m) ) on kantamuuttujien järjestetty joukko, x π(r) kannasta poistuva muuttuja ja x i valitun Simplex-suunnan komponentti i. Kun kantaan otetaan muuttuja x p, niin seuraava kanta on (x π(1),..., x π(r 1), x p, x π(r+1),..., x π(m) ). Simplex menetelmässä valitaan parantava suunta tai todetaan optimaalisuus laskemalla redusoidut kustannukset n c j = c T x = c k x k = c j + c k x k = c j + ( c k B 1 a j) = c j v T a j k k=1 k B k B ei-kantamuuttujille x j. Tässä on merkitty v T = (c B ) T B 1, missä vektoriin c B on otettu vektorin c kannassa olevat indeksit. Esimerkki Edellisessä esimerkissä vaiheessa t = 1 poistuu muuttuja x 6 kannasta, sinne otetaan muuttuja x 2 ja EB = = Päivitetyssä matriisissa ovat rivit ja sarakkeet uuden kannan mukaisessa järjestyksessä (x 1, x 4, x 5, x 2 ). Lisäksi vaiheessa t = 1 on v T = ( ) = ( )

84 ja tästä saadaan kantaan kuulumattomien komponenttien redusoidut kustannukset c 2 = c 2 v T a 2 = 9 ( ) 1 0 = c 3 = c 3 v T a 3 = 0 ( ) 0 0 = Nyt ei siis tarvitse laskea eksplisiittisesti kuin kantaan otettua muuttujaa vastaava Simplex-suunta. Algoritmi Parannettu Simplex-menetelmä Askel 0. (Alustus) Valitaan jokin sallittu lähtökanta ja konstruoidaan sitä vastaavista matriisin A pystyriveistä kantamatriisin käänteismatriisi B 1. Sitä käyttäen ratkaistaan yhtälön Bx B = b toteuttavat kantamuuttujien x 0 arvot ja asetetaan ei-kantamuuttujien arvoiksi x 0 j 0 sekä iteraatiolaskurin arvo t 0. Askel 1. (Pricing) Määrätään v T = (c B ) T B 1 sekä kullekin ei-kantamuuttujalle x j redusoitu kustannus c j c j v T a j. Askel 2. (Optimaalisuus) Jos maksimointitehtävässä ei yksikään c j > 0 (minimointitehtävässä ei yksikään c j < 0 ), lopetetaan, koska ratkaisu x t on optimaalinen. Muuten valitaan uudeksi kantamuuttujaksi jokin x p, jolla c p > 0 (c p < 0). Askel 3. (Simplex-suunta) Määrätään kantaan otettavaa muuttujaa x p vastaavan Simplex-suunnan x t+1 kantaa vastaavat komponentit x = B 1 a p. Kantaan kuulumattomista komponenteista indeksiä p vastaava komponentti on yksi ja muut nollia. Askel 4. (Askelpituus) Mikäli saadun Simplex-suunnan x t+1 kaikki komponentit ovat ei-negatiivisia, lopetetaan, koska tehtävän kohdefunktion arvo ei ole rajoitettu. Muuten määrätään kannasta poistuva muuttuja x r ehdosta x t r x t+1 r ja asetetaan askelpituudeksi = min j B { x t j x t+1 j } xt+1 j < 0 λ xt r x t+1 r. 81

85 Askel 5. (Uusi kärki ja kanta) Määrätään uusi kärkipiste x t+1 x t + λ x t+1 ja korvataan x r kannassa muuttujalla x p. Konstruoidaan päivitysmatriisi E ja uusi kantamatriisin käänteismatriisi EB 1 sekä päivitetään kierroslaskuria t t + 1. Tämän jälkeen palataan askeleeseen 1. Esimerkki Luvun 5.3 esimerkkitapauksessa 5.7 saadaan x 1 x 2 x 3 x 4 x 5 x 6 max c b A t = 0 N N x c T x 0 = B =, v = c j x : x t = 1 1 N N λ = 1000 x c T x 1 = B =, v = c j x : x t = N 2 3 N λ = 400 x c T x 2 =

86 B =, v = c j x : x t = N N λ = 350 x c T x 3 = B =, v = c j optimi ja siinä on numeroitu kantamuuttujat sen mukaan, missä järjestyksessä ne ovat kannassa. 5.9 Simplex-menetelmä ylä- ja alarajoin varustetuille muuttujille Edellä kiinnitettiin erityisesti huomiota siihen toteutuuko ei-negatiivisuusehto x j 0 aktiivisena vai ei. Oleellista lisävaikeutta ei tuota se, että muuttujille asetetaan alarajoja x j l j ja ylärajoja x j u j. Normaalimuodoksi saadaan tällöin max s. t. n c j x j j=1 n a ij x j = b i, i = 1,..., m j=1 l j x j u j, j = 1,..., n, jossa voi olla voimassa l j =, u j = tai molemmat (j = 1,..., n). Matriisimuodossa kirjoitettuna se on max c T x s. t. Ax = b l x u. 83

87 Tällä tavalla saadaan usein varsinaisten rajoitusten lukumäärää pienemmäksi ja laskut yksinkertaisemmiksi. Kantaratkaisut määrätään nyt kiinnittämällä ei-kantamuuttujien arvoiksi (äärelliset) ala- tai ylärajat ja ratkaisemalla varsinaisista rajoituksista a ij x j = b i a ij l j a ij u j, i = 1,..., m j B j L j U kantamuuttujien x j, j B arvot. Tässä on indeksijoukossa L alarajalla x j = l j ja indeksijoukossa U ylärajalla x j = u j olevien muuttujien indeksit. Kantaratkaisu on sallittu mikäli l j x j u j kaikille kantamuuttujille. Jos l j = ja u j =, täytyy muuttujan x j olla kantamuuttuja. Kun otetaan alarajalla l j oleva ei-kantamuuttuja kantaan, sen arvoa täytyy suurentaa. Kuitenkaan kriteeri, milloin se parantaa kohdefunktiota, ei muutu. Ylärajalla olevaa ei-kantamuuttujaa täytyy sen sijaan pienentää, kun se otetaan kantaan. Siis negatiivinen Simplex suunta x ylhäältä rajoitetusta ei-kantamuuttujasta x j parantaa kohdefunktiota, jos maksimointitehtävässä c j < 0 (minimointitehtävässä c j > 0). Askelpituuden määrääminen muuttuu myös hieman. Nyt täytyy huolehtia siitä, että pysytään varmasti rajojen l j ja u j sisällä. On mahdollista määrätä λ siten, että siirrytään saman muuttujan rajalta toiselle. Tällöin kanta ja myös B 1 pysyvät samana. Algoritmi Ylhäältä ja alhaalta rajoitettu parannettu Simplex Askel 0. (Alustus) Valitaan lähtökanta, jossa alhaalta rajoitettujen ei-kantamuuttujien indeksit muodostavat joukon L ja ylhäältä rajoitettujen ei-kantamuuttujien indeksit muodostavat joukon U, sekä konstruoidaan näistä kantamatriisin käänteismatriisi B 1. Sitä käyttäen ratkaistaan yhtälöryhmästä a ij x 0 j = b i a ij l j a ij u j, j B j L j U i = 1,..., m lähtövektorin x 0 kantamuuttujien komponentit j B ja asetetaan t 0. Askel 1. (Pricing) Lasketaan vektori v kaavalla v T = (c B ) T B 1, jossa c B koostuu vektorin c kantaan kuuluvista komponenteista. Tämän jälkeen lasketaan c j = c j v T a j kaikille ei-kantamuuttujille j. Askel 2. (Optimaalisuus) Mikäli mikään j N ei tuota parantavaa suuntaa (alarajalla c j > 0 maksimointitehtävässä ja c j < 0 minimointitehtävässä sekä ylärajalla c j < 0 maksimointitehtävässä ja c j > 0 minimointitehtävässä), niin nykyinen ratkaisu x t on optimaalinen. Muuten valitaan kantaan tuleva muuttuja x p ja sille suunta δ = 1, jos x p oli alarajallaan ja suunta δ = 1, jos x p oli ylärajallaan. Askel 3. (Simplex-suunta) Muodostetaan muuttujan x p Simplex-suunnan x t+1 kantaan kuuluvat komponentit kaavasta x t+1 = δb 1 a p. Lisäksi x t+1 p muut kantaan kuulumattomat komponentit saavat arvon nolla. 84 = δ ja

88 Askel 4. (Askelpituus) Määrätään suuntaan x t+1 otettava askelpituus λ = min { λ +, λ }, missä λ = λ + = min j B {p} { min j B {p} { }, xt j l j x x j < 0 j, u j x t } j x x j > 0. j Mikäli λ =, lopetetaan, koska tehtävällä ei ole äärellistä ratkaisua. Muuten valitaan indeksiksi r jokin indeksi, jolla arvo λ saavutettiin. Askel 5. (Uusi kärki ja kanta) Määrätään uusi kärki x t+1 = x t + λ x t+1. Mikäli r p, korvataan x r kannassa muuttujalla x p. Tämän jälkeen konstruoidaan päivitysmatriisi E, jossa käytetään suuntaa δ x t+1, ts. edellä olleessa matriisissa alkion 1 x π(r) paikalle tulee 1 x π(r) = 1 x π(r), kun δ = 1. Päivitetään kannan käänteismatriisiksi EB 1. Lopuksi kasvatetaan kierrosindeksiä t t + 1 ja palataan askeleeseen 1. Esimerkki Jatketaan taas luvun 5.3 esimerkin 5.7 käsittelyä. Nyt optimi saadaan laskettua paljon yksinkertaisemmin. x 1 x 2 x 5 x 6 max c b A l u t = 0 L L 1 2 x c T x 0 = 0 B 1 = 1 0, v = c j x : x t = 1 U L λ = 1000 x c T x 1 =

89 B 1 = 1 0, v = c j x : x t = 2 U 2 1 L λ = 400 x c T x 2 = B 1 = 1 0.5, v = c j x : x t = L L λ = 350 x c T x 3 = B =, v = c j optimi 86

90 6 Lineaarisen optimointitehtävän ratkaisu sisäpisteiden avulla 6.1 Haku sisäpisteissä Simplex-menetelmässä kärjenvaihtojen lukumäärä on yleensä lukujen m ja 3m välillä ja on keskimäärin kertaluokkaa 2m. Pahimmassa tapauksessa ei kärjenvaihtojen määrää voi esittää m:n polynomina, mutta tällaiset esimerkit ovat hyvin patologisia. Reaalimaailman ongelmissa on parannettu Simplex toiminut yleensä erinomaisesti ja laskuaika on kertaluokkaa m 3. Mikäli degeneroituneita kärkiä on paljon ja niiden degeneroitumisaste on suuri, ei Simplex-menetelmä kuitenkaan ole tehokas, vrt. järjestelyongelma. Polynomiaikaisia menetelmiä kuten Khachiyanin ellipsoidimenetelmää (1979) ja Karmarkarin projektiomenetelmää (1984) alettiin kehittää paljon myöhemmin ja niissä voidaan kulkea sallittujen pisteiden joukon sisäpisteissäkin. Tällaisen suunnan määrääminen on hankalampaa kuin Simplex-suunnan, mutta toisaalta iteraatioiden määrä saattaa vähentyä oleellisesti. Tarkastellaan jälleen standardimuodossa olevaa lineaarista optimointitehtävää max c T x s. t. Ax = b x 0. Pyritään koko ajan liikkumaan sallittujen pisteiden joukon sisäpisteissä, joissa siis niin monta komponenttia x j saa nollaa suuremman arvon kuin yhtälörajoitukset sallivat. Vasta viimeisellä askeleella tullaan joukon reunalle ja samalla optimipisteeseen. Kuten muistetaan, täytyy sallitun suunnan x toteuttaa ehto A x = 0. Voimakkaimmin kohdefunktion arvo paranisi gradientin c suuntaan, mutta se ei yleensä ole sallittu. Voidaan osoittaa, että paras sallittu suunta saadaan projisoimalla c ehtojen A x = 0 määrittelemään joukkoon. Määritelmä 6.1. Oletetaan, että P on n n-matriisi. Jos P = P T sanotaan, että P on projektiomatriisi. ja P P = P, niin Määritelmä 6.2. Suunnan d R n projektio joukkoon A x = 0 (A R m n ) on yleisesti x = P d, missä P on projektiomatriisi P = I A ( T AA ) T 1 A. Nyt saadulle suunnalle x 0 on voimassa c T x = c T P c = c T P P c = (P c) T (P c) = x T x > 0. Siis jokaisen suunnan c 0 projektio yhtäsuuruusrajoituksille on parantava suunta jokaisessa pisteessä x. 87

91 Esimerkki 6.3. Tarkastellaan yksinkertaista tehtävää jonka yksikäsitteinen ratkaisu on x max 90x x 2 s. t. 0.5x 1 + x 2 3 x 1 0, x 2 0, = (6, 0). Kun ollaan sallitun alueen sisäpisteessä x 0 = (1, 0.5), niin kohdefunktio kasvaa parhaiten gradientin suunnassa c = (90, 150) ja paranemista tapahtuu kunnes törmätään alueen reunaan pisteessä x 1 = ( 50, ) Tässä pisteessä on varsinainen epäyhtälörajoitus aktiivinen, eikä enää siis olla sisäpisteessä. Kun nyt muutetaan ongelma standardimuotoon max 90x x 2 s. t.. 0.5x 1 + x 2 + x 3 = 3 x 1 0, x 2 0, x 3 0, niin lähtöpisteeksi tulee x 0 = (1, 0.5, 2). Eniten parantavan suunnan c = (90, 150, 0) projektioksi tulee x = P c = ( ) ( ) = Saatu suunta on todella parantava, sillä 6.2 Pisteen skaalaus c T x = ( ) = > Jotta pysyttäisiin sallitun alueen sisäpisteissä ja vältettäisiin reunoja, käytetään yleensä jotakin skaalausmenetelmää. Affiinisessa skaalauksessa muunnetaan mittakaavoja niin, että ratkaisun x jokainen komponentti on yhtä suuri. Tämä saadaan aikaan kertomalla skaalausmatriisilla 1 x X x = x n 88

92 Standardimuodossa oleva lineaarinen optimointitehtävä max c T x s. t. Ax = b x 0 saadaan sijoituksella x = X t y nykyisessä ratkaisupisteessä x t muotoon missä c T t = c T X t ja A t = AX t. max c T t y s. t. A t y = b y 0, Esimerkki 6.4. Mikäli edellisessä esimerkissä 6.3 ollaan pisteessä x t = (3, 0.5, 1) niin skaalattu piste on ja saadaan skaalattu tehtävä y = X 1 t x t = = max 270y y 2 s. t. 1.5y y 2 + y 3 = 3 y 1 0, y 2 0, y 3 0. Edelleen voidaan projisoida mielivaltainen suunta d skaalatusta yhtälöryhmästä A t y = b saadulle ehdolle A t y = 0. Silloin siis y = P t d, missä P t = I A T t ( At A T t ) 1 At. Sisäpistealgoritmien käyttämästä ajasta huomattava osa menee projektio-operaatioihin, koska projektiomatriisi muuttuu joka vaiheessa. 6.3 Affiininen skaalattu haku Skaalatussa tehtävässä kannattaisi siirtyä vektorin c t projektion y = P t c t suuntaan maksimointitehtävässä (minimointitehtävässä vastakkaiseen suuntaan y = P t c t ). Lopullinen suunta maksimointitehtävässä x = X t y = X t P t c t saadaan siirtymällä alkuperäisiin muuttujiin (minimointitehtävässä x = X t P t c t ). Tämä on myös parantava ja sallittu suunta alkuperäisten muuttujien suhteen. 89

93 Jos saatu suunta x 0, tehtävällä ei voi olla rajoitettua ratkaisua, koska tähän parantavaan suuntaan voidaan edetä rajattomasti. Muussa tapauksessa saadaan aikaisempaan tapaan ehto x t+1 = x t + λ x 0, mutta nyt pyritään pysyttelemään alueen sisällä. Reunalle ei mennä muualla kuin optimipisteessä. On useita menetelmiä, joilla saadaan molemmat näistä ehdoista toteutumaan. Eräs näistä on 1 λ = X 1 t x = 1 y, missä on käytetty euklidista normia. Esimerkki 6.5. Esimerkin 6.3 aloituspisteestä x 0 = (1, 0.5, 2) saadaan c 0 = (90, 75, 0), A 0 = (0.5, 0.5, 2) ja x 1 = X 0 P 0 c 0 = ( , 32, 73 1 ). Nyt voidaan todeta, että A x 1 = 0 ja c T x 1 > 0. Lisäksi saadaan y 1 = X 1 0 x 1 = (80 5, 65 5, 36 2 ), joten λ = 1 y ja päädytään seuraavaan pisteeseen x 1 = x 0 + λ x 1 (1.73, 0.80, 1.34). Tämän pisteen kaikki komponentit ovat positiivisia ja lisäksi pysytään sisäpisteessä. Mikäli uusi piste olisi aktiivinen jonkin ei-negatiivisuusrajoituksen suhteen, oltaisiin päädytty optimiin. Liukulukujen ominaisuuksista johtuen tämä on kuitenkin epätodennäköistä, joten on parasta lopettaa, kun kohdefunktion arvoissa ei tapahdu juuri paranemista. Algoritmi 6.6. Affiininen skaalattu haku Askel 0. (Alustus) Valitaan aloituspisteeksi jokin sallittu sisäpiste x 0 > 0 ja asetetaan kierroslaskuri t 1. Askel 1. (Optimaalisuus) Jos jokin vektorin x t komponentti on nolla (tai kohdefunktion arvo ei ole parantunut viime kierroksella kuin ε verran), lopetetaan. Ratkaisu on optimaalinen (ainakin hyvin lähellä sitä). Askel 2. (Suunta) Konstruoidaan seuraava suunta x t+1 X t P t c t maksimointitehtävässä ( x t+1 X t P t c t minimointitehtävässä). Askel 3. (Askelpituus) Jos x t+1 0, lopetetaan, koska tehtävällä ei ole äärellistä ratkaisua. Muuten määrätään askelpituus λ 1 X 1 t x t+1. 90

94 Askel 4. (Uusi piste) Muodostetaan uusi iteraatiopiste x t+1 x t + λ x t+1 ja päivitetään iteraatiolaskuri t t + 1. Tämän jälkeen palataan askeleeseen 1. Esimerkki 6.7. Kun sovelletaan algoritmia 6.6 esimerkkiin 6.3, saadaan x 1 x 2 x 3 max c b A x c T x 0 = x λ = x c T x 1 = x λ = x c T x 2 = x λ = x c T x 3 = x λ = x c T x 4 = x λ = x c T x 5 = x λ = x c T x 6 = x λ = x c T x 7 = x λ = x c T x 8 = x λ = x c T x 9 = Lopetus suoritetaan yhdeksännen iteraation jälkeen, kun kohdefunktion parannus on <

95 7 Lineaarisen optimoinnin duaalisuus ja herkkyysanalyysi Tarkastellaan seuraavaksi, miten parametrien arvojen muutokset vaikuttavat tehtävän ratkaisuun. Nyt pyritään tekemään joitakin johtopäätöksiä ratkaisematta tehtävää aina uudestaan erilaisilla parametriyhdistelmillä. Duaalisuutta tarkasteltaessa konstruoidaan alkuperäisen lineaarisen optimointitehtävän duaalitehtävä, jota hyödynnetään tarkastelussa. 7.1 Kvalitatiivinen herkkyysanalyysi Rajoituksia voidaan relaksoida, jolloin sallittujen pisteiden joukko kasvaa ja kohdefunktion arvo joko pysyy samana tai paranee. Jos taas rajoituksia tiukennetaan, niin sallittujen pisteiden joukko pienenee ja kohdefunktion arvo joko pysyy samana tai huononee. Kun oletetaan, että rajoituksissa on muuttujia sisältävät termit viety relaation vasemmalle puolelle ja vakiotermi oikealle puolelle, niin ( ) rajoituksessa relaksaatiota saadaan aikaan suurentamalla (pienentämällä) oikean puolen vakiota. Tiukentamista saadaan aikaan ( ) rajoituksessa pienentämällä (suurentamalla) oikean puolen vakiota. Nyt voidaan kutsua rajoituksia resurssirajoituksiksi ja rajoituksia vaatimusrajoituksiksi. Kun teräsesimerkissä 4.2 annetaan romun 1 saatavuusehdon x 1 75 oikean puolen vakion muuttua nykyisestä arvostaan 75, niin saadaan kohdefunktion optimiarvon kuvaajaksi kuva 34. optimiarvo 9900 kk ei sallittu 9800 kk nykyinen arvo kk 3.38 kk b i Kuva 34: Kohdefunktion optimiarvon kuvaaja, kun muutetaan romun 1 saatavuutta Kun annetaan kromin minimipitoisuuden 10 ehdossa 0.12x x x

96 muuttua, niin saadaan kohdefunktion optimiarvon kuvaajaksi kuva 35. optimiarvo kk ei sallittu nykyinen arvo kk kk kk 0 kk b i Kuva 35: Kohdefunktion optimiarvon kuvaaja, kun muutetaan kromin minimipitoisuutta Voidaan tietenkin myös muuttaa vasemmalla puolella olevia päätösmuuttujien kertoimia. Yllä olevaa ehtoa voidaan relaksoida kasvattamalla vakion 0.12 arvoa vaikkapa arvoon 0.5 ja tiukentaa pienentämällä sitä arvoon 0.4. Yleisesti ( ) rajoituksessa relaksaatiota saadaan aikaan pienentämällä (suurentamalla) vasemman puolen kertoimia. Tiukentamista saadaan aikaan ( ) rajoituksessa suurentamalla (pienentämällä) vasemman puolen kertoimien itseisarvoja. Lisäksi saadaan aikaan relaksaatio jättämällä joitakin rajoituksia pois ja tiukennus ottamalla malliin uusia rajoituksia. Kun tarkastellaan edellisiä kuvia 34 ja 35, niin huomataan kuvaajien olevan paloittain lineaarisia. Lisäksi tiukennettaessa rajoitusta kohdefunktion derivaatta on ei-vähenevä. Siis kohdefunktion huononemisnopeus kasvaa. Kun relaksoidaan rajoitusta, niin kohdefunktion arvo paranee, mutta paranemisnopeus pienenee. Nämä huomiot pitävät paikkansa kaikille lineaarisille optimointitehtäville. Kun varioidaan kohdefunktion kertoimia, pysyy sallittujen pisteiden joukko samana, mutta kohdefunktion arvojen muutoksia kannattaa silti tutkia. Kun teräsesimerkissä muutetaan romun 4 yksikkökustannusta, saadaan kuva 36. Maksimointiesimerkkinä voidaan tarkastella vanerintuotantoesimerkkiä 4.4 ja siinä 0.5 tuumaisen AC vanerilevyn myyntihinnan vaikutusta (kuva 37). Useimmiten päätösmuuttujat ovat ei-negatiivisia ja silloin maksimointitehtävässä kertoimen suurentaminen parantaa kohdefunktiota tai pitää sen samana (minimointitehtävässä huonontaa kohdefunktiota tai pitää sen samana) ja kertoimen pienentäminen huonontaa kohdefunktiota tai pitää sen samana (minimointitehtävässä parantaa kohdefunktiota tai pitää sen samana). Kun kohdefunktiossa olevaa vakiota parannetaan, niin muutoksen vaikutus tulee koko ajan suuremmaksi. Kun sitä huononnetaan, niin vaikutus pienenee koko ajan. Käyttäyty- 93

97 optimiarvo kk kk kk kk kk kk nykyinen arvo kk kk c i Kuva 36: Kohdefunktion optimiarvon kuvaaja, kun muutetaan romun 4 yksikkökustannusta optimiarvo kk kk nykyinen arvo kk kk kk kk c i Kuva 37: Kohdefunktion optimiarvon kuvaaja, kun 0.5 tuumaisen AC vanerilevyn myyntihintaa muutetaan minen on siis päinvastaista kuin rajoitusten tapauksessa ja se voidaan selittää seuraavassa kohdassa esitettävän duaalisuuden avulla. Mikäli rajoituksia jätetään pois, kohdefunktion arvo paranee tai pysyy samana. Jos taas lisätään uusia rajoituksia, kohdefunktion arvo huononee tai pysyy samana. 7.2 Kvantitatiivinen herkkysanalyysi Pyritään selvittämään edellisen luvun muutoksia kvantitatiivisesti ja kutsutaan tarkasteltavaa optimointitehtävää primääritehtäväksi. Duaalitehtävä on samoista parametreista saatava uusi optimointitehtävä, jonka avulla voidaan karakterisoida primääritehtävän parametrien muutoksia. Jokaista primääritehtävän varsinaista rajoitusta i vastaa duaalimuuttuja v i, jonka optimiarvo esittää primääritehtävän kohdefunktion optimiarvon muutosnopeutta (derivaattaa), kun rajoituksen oikean puoleista vakiota muutetaan hieman 94

98 nykyisestä arvosta b i. Esimerkiksi edellisen luvun kuvassa 34 romun 1 rajoitusta vastaavan duaalimuuttujan arvo on 3.38 kr/kg, kun romua 1 on käytettävissä 75 kg. Jos siis romua 1 on käytettävissä yksi kilo enemmän, niin primääritehtävän kohdefunktion optimiarvo pienenee 3.38 kr ja jos romua 1 on kilo vähemmän, niin kohdefunktion optimiarvo suurenee 3.38 kr. Sama tulos pätee välille (60.42, 83.33). Jos romua 1 on käytettävissä välillä (83.33, ) oleva määrä, on duaalimuuttujan arvo 0, ja jos sen määrä on välillä (0, 60.42), on duaalimuuttujan arvo Mikäli ollaan juuri rajapisteessä, ei duaalimuuttujan arvo ole yksikäsitteinen. Jos romua 1 olisi saatavana juuri kiloa, on duaalimuuttujan arvo jokin luku väliltä [ 4.98, 3.38]. Edellisen luvun kvalitatiivisesta analyysistä tiedetään, mitä rajoitusten oikeiden puolten muuttaminen vaikuttaa primääritehtävän kohdefunktion optimiarvoon. Siis maksimointitehtävässä rajoitusta i vastaavan duaalimuuttujan täytyy toteuttaa ehto v i 0 (minimointitehtävässä v i 0). Mikäli rajoitus i on yhtäsuuruusrajoitus, se voidaan tulkita sekä että rajoitukseksi, ja duaalimuuttujan v i merkki on tällöin rajoittamaton. Esimerkki 7.1. Öljyesimerkissä 2.1 saadaan duaalimuuttujat min 20x x 2 s. t. 0.3x x : v 1 (bensiinin tarve) 0.4x x : v 2 (lentokonebensiinin tarve) 0.2x x : v 3 (voiteluaineen tarve) x 1 9 : v 4 (saudiarabialaisen öljyn saatavuus) x 2 6 : v 5 (venezuelalaisen öljyn saatavuus) x 1 0, x 2 0. Näiden etumerkkirajoitukset ovat v 1 0, v 2 0, v 3 0, v 4 0 ja v 5 0. Duaalimuuttujia kutsutaan usein varjohinnoiksi tai marginaalihinnoiksi, koska ne esittävät yhden resurssiyksikön lisäyksen vaikutusta kohdefunktion arvoon. Resurssirajoituksissa tuottaa yhden resurssiyksikön lisääminen tämän verran eli näin paljon kannattaa korkeintaan maksaa yhden resurssiyksikön lisäyksestä. Vaatimusrajoituksissa taas maksaa viimeisen tarvitun yksikön tuottaminen tämän verran. Voidaan käyttää myös nimitystä implisiittinen hinta, sillä se esittää kyseisen rajoituksen resurssin marginaaliarvoa vakion b i ympäristössä. Primääritehtävän kertoimet a ij esittävät yhden muuttujan x j yksikön kuluttamaa (resurssirajoitukset) tai tuottamaa (vaatimusrajoitukset) määrää. Kun lasketaan yhteen niiden arvot kerrottuna implisiittisillä v i muuttujilla, saadaan aktiviteetin j implisiittinen marginaalinen kokonaisarvo a ij v i. i 95

99 Maksimointitehtävässä hylätään normaalitapauksessa x j 0 kaikki arvot v i, jotka antavat aktiviteetin kokonaisarvolle sen todellista primääriarvoa c i huonomman arvon. Saadaan siis duaalirajoitus a ij v i c j. i Minimointitehtävässä duaalimuuttujat arvioisivat tapauksessa x j 0 aktiviteetin liian kalliiksi, jos sen hinta ylittäisi todellisen primäärikustannuksen c i. Näin ollen duaalirajoitus on a ij v i c j. i Jos duaalimuuttujat hinnoittelevat rajoituksiin liittyvät resurssit oikein, niin niiden kokonaisarvon tulisi olla primääritehtävän optimiarvon suuruinen ts. c j x j = j i Tässä i b i v i on duaalitehtävän kohdefunktio. Esimerkki 7.2. Tarkastellaan dieettiongelmaa, jossa kotirouva Unelma Vähämeno yrittää ostaa mahdollisimman edullista ruokaa, jolla saadaan vähintään 21 kaloriyksikköä ja 12 vitamiiniyksikköä päivässä. Tarjouksessa (hän ostaa vain niitä) on 5 ruokatarviketta, b i v i. joiden ominaisuudet yhtä painoyksikköä kohti ovat seuraavat ruokatarvike kaloreita vitamiineja hinta määrä x x x x x 5 tarve hinta v 1 v 2 Saadaan siis seuraava optimointitehtävä min 20x 1 +20x 2 +31x 3 +11x 4 +12x 5 s. t. x 1 +x 3 +x 4 +2x 5 21 x 2 +2x 3 +x 4 +x 5 12 x 1 0, x 2 0, x 3 0, x 4 0, x 5 0 ravintokustannusten minimoimiseksi. Asiaa voidaan myös tarkastella käänteiseltä kannalta. Tehtailija Max Voitto haluaa tyydyttää kaikki Unelman vaatimukset markkinoimalla yhden vitamiiniyksikön sisältäviä vitamiini- ja yhden kaloriyksikön sisältäviä kaloripillereitä. Hän haluaa määrätä niiden hinnat v 1 ja v 2 sellaisiksi, että ne pystyvät kilpailemaan kaikkien ruokatarvikkeiden kanssa ja samalla maksimoida voittonsa. Tällöin hänen optimointitehtäväkseen tulee 96

100 max 21v 1 +12v 2 s. t. v 1 20 v 2 20 v 1 +2v 2 31 v 1 +v v 1 +v 2 12 v 1 0, v 2 0. Molemmissa tehtävissä on samat parametrit ja jälkimmäistä sanotaan dieettiongelman duaalitehtäväksi. Jos epäyhtälörajoitus i ei ole aktiivinen optimiratkaisussa, pienet muutokset rajoituksen oikean puolen arvossa b i eivät vaikuta mitään kohdefunktioon, koska siinä on ylijäämää. Siis rajoitusta vastaavan duaalimuuttujan arvoksi saadaan v i = 0. Tämä on primäärinen täydentävä ali/ylijäämäehto (primal complementary slackness) v i j a ij x j b i = 0, i, jonka mukaan joko primääritehtävän ratkaisu on aktiivinen epäyhtälörajoituksessa i tai vastaava duaalimuuttuja v i = 0. Esimerkki 7.3. Öljynjalostusesimerkissä 2.1 on ratkaisupisteessä x 1 = 2 ja x 2 = 3.5 kaksi ensimmäistä rajoitusta aktiivisia. Kolme viimeistä taas eivät ole, sillä = = = 1.45 > < < 6. Nyt täytyy siis olla v 3 = v 4 = v 5 = 0. Nyt kumpikin x j > 0, joten niitä vastaavat duaalirajoitukset ovat aktiivisia. Edellä on ollut joko m a ij v i c j i=1 tai m a ij v i c j, j = 1,..., n. i=1 Tavallisessa tapauksessa, jossa muuttujien lukumäärä n on suurempi kuin rajoitusten määrä m, eivät läheskään kaikki näistä voi toteutua yhtälömuodossa a ij v i = c j. i 97

101 Duaalimuuttujien halutaan ilmaisevan resurssin arvo optimipisteessä, mutta ainoat vaikuttavat pisteet ovat tällöin ne, joissa x j > 0. Kun rajoitutaan näihin komponentteihin saadaan duaalinen täydentävä ali/ylijäämäehto ( ) a ij v i c j x j = Duaaliset lineaariset optimointitehtävät i Kun päätösmuuttujat toteuttavat ehdot x j 0, niin maksimointimuodossa olevan primääritehtävän duaali on min s. t. b i v i i a ij v i c j, i v i 0, v i 0, v i R, ja minimimuotoisen primääritehtävän duaali on max s. t. b i v i i a ij v i c j, i v i 0, v i 0, kaikille primääritehtävän indekseille j kaikille primääritehtävän rajoituksille i kaikille primääritehtävän rajoituksille i kaikille primääritehtävän = rajoituksille i kaikille primääritehtävän indekseille j kaikille primääritehtävän rajoituksille i kaikille primääritehtävän rajoituksille i v i R, kaikille primääritehtävän = rajoituksille i. Minimointitehtävän duaali on siis maksimointitehtävä ja päinvastoin. Jokaista primääritehtävän rajoitusta vastaa duaalitehtävän muuttuja ja primääritehtävän muuttujaa duaalitehtävän rajoitus. Primääritehtävän kohdefunktion kertoimista tulee duaalitehtävän rajoitusten oikean puolen vakioita ja oikean puolen vakioista duaalitehtävän kohdefunktion kertoimia. Esimerkki 7.4. Öljynjalostusesimerkin 2.1 duaali on max 2v v v 3 + 9v 4 + 6v 5 s. t. 0.3v v v 3 + v v v v 3 + v 5 15 v 1 0, v 2 0, v 3 0, v 4 0, v 5 0 ja sen ratkaisu v1 = 20, v2 = 35, v3 = 0, v4 = 0 ja v5 = 0 tuottaa kohdefunktion arvon

102 Suurimmassa osassa käytännön optimointiongelmista kaikki muuttujat ovat einegatiivisia, mutta täydellisyyden vuoksi on hyvä sallia myös ei-positiiviset ja merkiltään rajoittamattomat muuttujat. Silloin saadaan taulukko primäärialkio vastaava duaalialkio maksimointi- kohdefunktio max j c j x j kohdefunktio min i b i v i tehtävä rajoitus j a ij x j b i muuttuja v i 0 rajoitus j a ij x j = b i muuttuja v i rajoittamaton rajoitus j a ij x j b i muuttuja v i 0 muuttuja x j 0 muuttuja x j rajoittamaton muuttuja x j 0 rajoitus i a ij v i c j rajoitus i a ij v i = c j rajoitus i a ij v i c j minimointi- kohdefunktio min j c j x j kohdefunktio max i b i v i tehtävä rajoitus j a ij x j b i muuttuja v i 0 rajoitus j a ij x j = b i muuttuja v i rajoittamaton rajoitus j a ij x j b i muuttuja v i 0 muuttuja x j 0 muuttuja x j rajoittamaton muuttuja x j 0 rajoitus i a ij v i c j rajoitus i a ij v i = c j rajoitus i a ij v i c j Tästä nähdään, että duaalitehtävän duaali on alkuperäinen primääritehtävä. Ei siis ole oleellista kumpi tehtävistä on alkuperäinen primäärinen tehtävä, vaan riittää itseasiassa se, että tehtävät muodostavat keskenään duaalisen tehtäväparin. Esimerkki 7.5. Voidaan esittää vaihtoehtoinen määritelmä, jonka mukaan kanonisen tehtävän max c T x s. t. Ax b x 0 duaalitehtäväksi määritellään min b T v s. t. A T v c v 0. Johda tästä määritelmästä standardimuotoisen tehtävän duaali sekä osoita, että duaalin duaali on alkuperäinen primääritehtävä. 99

103 7.4 Duaalitehtävien keskinäiset relaatiot Tutkitaan primääritehtävän ja duaalitehtävän kohdefunktioiden arvojen erotusta. Se voidaan kirjoittaa muodossa c j x j b i v i = c j x j j i j i = ( c j j i v i a ij x j + v i a ij x j b i v i j i j i ) v i a ij x j + a ij x j b i v i. i j Jos primääritehtävää maksimoidaan, on selvästikin aina j c j x j i b i v i. Tämä nähdään tarkastelemalla edellisen lausekkeen oikean puolen merkkiä. Vastaavaasti primääritehtävää minimoitaessa on j c j x j i b i v i. Tästä saadaan ns. heikko duaalisuuslause. Lause 7.6. (Heikko duaalisuuslause) Maksimoitaessa (minimoitaessa) primääritehtävää on kohdefunktion arvo mielivaltaisessa sallitussa pisteessä ( ) duaalitehtävän kohdefunktion arvo mielivaltaisessa sallitussa pisteessä. Huomautus 7.7. Mikäli primääri- tai duaalitehtävällä on rajoittamaton ratkaisu, ei toisella ole sallittuja pisteitä. Öljynjalostusongelmassa 2.1 ovat primääritehtävän ja duaalitehtävän kohdefunktoiden arvot identtiset optimipisteessä, sillä = 92.5 = Tämä pitää yleisemminkin paikkansa ja tulosta kutsutaan vahvaksi duaalisuuslauseeksi. Lause 7.8. (Vahva duaalisuuslause) Jos joko primääritehtävällä tai duaalitehtävällä on optimiratkaisu, niin molemmilla on. Lisäksi kohdefunktioiden optimiarvot ovat keskenään yhtä suuret. Tämän osoittamiseksi tarkastellaan primääritehtävänä minimointitehtävää ja sovelletaan siihen parannettua Simplex-algoritmia. Siinä vektori v määrättiin ehdosta v T B = (c B ) T ja optimaalisuus saavutettiin, kun c j = c j i a ij v i 0, ei-kantamuuttujille x j 0. Tässä ei ole sattumaa, että parannetun Simplex-menetelmän vektorista v käytettiin samaa merkintää kuin duaalitehtävän päätösmuuttujasta. Jos nimittäin parannettu Simplex-menetelmä tuottaa optimiratkaisun, niin viimeksi saatu pricing-vektori v on duaalitehtävän optimiratkaisu. Tätä varten täytyy ensiksi näyttää, että se on duaalitehtävän sallittu piste. Mikäli x j on ei-kantamuuttuja, seuraa optimaalisuusehdosta, että duaalitehtävän rajoitus i a ij v i c j 100

104 toteutuu. Mikäli x j on kantamuuttuja, on c j = c j i a ij v i = 0 ja sekin toteuttaa duaalirajoituksen. Nyt b T v = v T b = (c B ) T B 1 b = (c B ) T x B = c T x ja heikosta duaalisuuslauseesta seuraa, että sallittu vektori v on duaalitehtävän optimiratkaisu. Tarkastellaan nyt tapausta, jossa sekä primääritehtävällä, että duaalitehtävällä on optimiratkaisut x ja v. Heikon duaalisuuslauseen johtamiseen käytetystä epäyhtälöstä seuraa nyt 0 = c j x j b i vi = ( c j ) vi a ij x j + a ij x j b i vi. j i j i i j Tämä on mahdollista vain, jos ( x j c j i v i a ij ) = 0 ja j a ij x j b i vi = 0 eli saadaan ali/ylijäämäehto kaikenlaisille muuttujille x j. 7.5 Herkkyysanalyysi Esimerkki 7.9. Tarkastellaan vanerintuotantoesimerkkiä 4.4, jossa oli käytössä muuttujat w ijk : toimittajalta j kuukaudessa ostettujen i laatuisten ja k paksuiseksi viiluksi leikattujen tukkien lukumäärä x kl : kuukaudessa ostetun k paksuisen l laatuisen viilun määrä neliöjalkoina y klm : kuukaudessa käytettyjen k paksuisten ja l laatuisten mutta m laatuisena käytettyjen 4 8 viilulevyjen luku z klm : kuukaudessa valmistettavien k paksuisten levyjen määrä, joissa yläpinta on laatua l ja alapinta laatua m. 101

105 Sen duaalitehtävä on min 200v v v v v v v v v v v v v v v v v 17 s. t. v v v v : w G1,1/16 v v v v : w F 1,1/16 v v v v : w G2,1/16 v v v v : w F 2,1/16 v v v v : w G1,1/8 v v v v : w F 1,1/8 v v v v : w G2,1/8 v v v v : w F 2,1/8 v 5 + v : x 1/16,A v 6 + v : x 1/16,B v 7 + v : x 1/16,C v 8 + v : x 1/8,A v 9 + v : x 1/8,B v 10 + v : x 1/8,C v 24 35v 18 0 : y 1/16,AA v 24 35v 19 0 : y 1/16,BA v 25 35v 18 0 : y 1/16,AB v 25 35v 19 0 : y 1/16,BB v 25 35v 20 0 : y 1/16,CB v 26 35v 19 0 : y 1/16,BC v 26 35v 20 0 : y 1/16,CC v 27 35v 21 0 : y 1/8,AB v 27 35v 22 0 : y 1/8,BB v 27 35v 23 0 : y 1/8,CB v 28 35v 22 0 : y 1/8,BC v 28 35v 23 0 : y 1/8,CC 102

106 v v 17 v 24 v 25 v v v 17 v 24 v 26 v v v 17 v 25 v 26 v v v 17 v 24 v 25 v 27 2v v v 17 v 24 v 26 v 27 2v v v 17 v 25 v 26 v 27 2v v 1 0,..., v 17 0, v 18 0,..., v 23 0, v 24 R,..., v 28 R, : z 1/4,AB : z 1/4,AC : z 1/4,BC : z 1/2,AB : z 1/2,AC : z 1/2,BC jossa on otettu käyttöön duaalimuuttujat v 1,..., v 28 samassa järjestyksessä kuin rajoitukset olivat primääritehtävässä. Tarkastellaan aluksi tilannetta, jossa primääritehtävän rajoituksen i oikean puolen vakio muuttuu muiden rajoitusten pysyessä ennallaan ts. b i b i + b i. Tämä ei vaikuta optimaalisuuteen, vaan ainoastaan siihen onko piste sallittu. Jotta kannassa ei tapahtuisi muutoksia (kulmakerroin luvun 7.2 kuvissa 34 ja 35 pysyy vakiona), on siis oltava 0. B 1 b + B 1 b i = (x ) B + ˆx Tässä matriisi B on saatu optimiratkaisun kantaa vastaavista matriisin A sarakkeista. Tästä seuraa, että x k + (B 1 ) ki b i 0, k B, joten saadaan häiriölle b i rajat max k B { }, x k (B 1 ) (B 1 ) ki > 0 ki b i min k B {, x k (B 1 ) ki } (B 1 ) ki < 0. Nämä saadaan helposti laskettua tehtävän optimiratkaisusta, ja kaikki kunnolliset lineaarisen optimoinnin ratkaisuohjelmistot tuottavat ne. Esimerkki Vaneriongelmassa 4.4 ovat rajat muuttuja duaali- yli/ali- vakio ala- yläratkaisu v i jäämä b i raja b min raja b max v v v v v

107 muuttuja duaali- yli/ali- vakio ala- yläratkaisu vi jäämä b i raja b min raja b max v v v v v v v v v v v v v v v v v v v v v v v Tuloksesta v2 = saadaan toimittajan 1 keskinkertaisten tukkien saatavuusmäärän vaikutus optimaaliseen kokonaistuottoon. Alunperin tämä arvo oli 300, mutta jokaista lisätukkia kohti kasvaa tuotto $ niin kauan, kun tukkien määrä on välillä [242.50,331.97]. Tämän välin ulkopuolella voidaan vain käyttää luvun 7.2 kvalitatiivista herkkyysanalyysiä. Ensimmäisessä rajoituksessa oikean puolen kertoimen vaihteluvälin yläraja on, koska tarjolla olevasta 200 hyvälaatuisesta tukista toimittajalta 1 ei optimiratkaisussa käytetä kuin = kappaletta ja tukkien määrän kasvatus vain relaksoi rajoitusta lisää. Siis duaaliratkaisu v1 = 0 on järkevä, samoin vaihteluvälin alaraja Yllä olevasta taulukosta voidaan selvittää monenlaisia yksittäisten kertoimien vaihteluun liittyviä ongelmia. Kuinka herkkä on optimiratkaisu 0.5 tuuman BC laatuisen vanerin tuotantokapasiteetin 8000 suhteen? 104

108 Tätä rajoitusta vastaa duaalimuuttuja v16 = 0, joten ratkaisu ei muutu välillä [0, ) ts. se pysyy samana kaikilla ei-negatiivisilla kapasiteetin arvoilla. Kuinka suuri on vanerinvalmistukseen käytettävissä olevan ajan marginaalituotto? Täksi saadaan v17 = $/tunti. Kuinka paljon voidaan uhrata rahaa jotta saataisiin 0.25 tuuman AB laadun vanerin tuotantokapasiteetti kasvamaan 1000:sta 2000:een levyyn kuukaudessa? Arvo 2000 on rajoituksen 11 sallitun vaihteluvälin sisällä ja silloin kannattaa maksaa korkeintaan ( ) v11 = = 9564 $/kk. Kuinka paljon kannattaa maksaa kuukausittaisen vanerintekoajan kasvatuksesta 4500:sta 6000:een tuntiin? Arvo 6000 on vaihteluvälin ylärajaa suurempi, joten voidaan esittää ainoastaan rajat tuoton lisäykselle. Tuotto kasvaa vähintään määrän ( ) v $/kk ja korkeintaan määrän ( ) v17 = $/kk. Kuinka paljon tuotosta menetetään, jos ei osteta toimittajalta 2 ollenkaan hyvälaatuisia tukkeja? Rajoitukselle 3 on v3 mitään. = 0 ja kertoimien vaihteluväli [0, ). Siis ei menetetä Kuinka paljon tuotosta menetetään, jos ei osteta toimittajalta 2 ollenkaan keskinkertaisia tukkeja? Rajoituksen 4 oikean puolen vakio on 1000, sen vaihteluväli [942.5, ] ja v4 = Koska arvo 0 on vaihteluvälin ulkopuolella, ei taaskaan saada tarkkaa arvoa, mutta tuoton vähennys on ainakin (1000 0) = $/kk, eikä sillä ole ylärajaa. Oletetaan seuraavaksi, että ollaan ratkaistu maksimointitehtävä ja halutaan tutkia kohdefunktion kertoimen sellaista muutosta c j c j + c j, että kanta ei muutu. Vaaditaan siis, että redusoiduille kustannuksille on muutoksenkin jälkeen voimassa optimaalisuusehto c 0. Mikäli j B, niin ainoastaan redusoidun kustannuksen c komponentti j muuttuu ja saadaan ehto c j + c j v T a j = c j + c j 0 eli c j c j. 105

109 Mikäli j B, niin muutoksen jälkeen on oltava josta saadaan c i v T a i = c i (c B ) T B 1 a i 0, kaikille ei-kantamuuttujille i, c i (c B ) T B 1 a i (B 1 a i ) j c j = c i + ( x i ) j c j 0. Tässä x i on Simplex-suunta muuttujan x i suhteen ja muokkaamalla ehtoa saadaan rajat max i B {, c i ( x i ) j } ( xi ) j 0 c j min i B {, c i ( x i ) j } ( xi ) j > 0. Voidaan tutkia myös miten rajoituksen tai muuttujan lisääminen tai pois jättäminen vaikuttaa. Rajoituksen pois jättäminen vaikuttaa ratkaisuun vain siinä tapauksessa, että se on aktiivinen optimipisteessä. Uuden rajoituksen lisääminen vaikuttaa ratkaisuun vain, jos optimipiste ei toteuta sitä. Selvästikin muuttuja voidaan jättää pois muuttamatta ratkaisua vain silloin, kun sen optimiarvo on 0. Muuttujan lisääminen on hieman hankalampaa. Jos uusi muuttuja on ei-kantamuuttuja ts. saa arvon nolla, on entinen ratkaisu edelleen optimaalinen. Näin käy, mikäli uutta muuttujaa vastaava duaalirajoitus toteutuu optimipisteessä ts. optimaalisuusehto on edelleen voimassa. Esimerkki Vanerintuotantoesimerkissä 4.4 saadaan muuttuja optimistatus kerroin c redusoitu ala- yläarvo kustannus raja c min raja c max w G1,1/ B w F 1,1/16 0 N w G2,1/16 0 N w F 2,1/ B w G1,1/8 0 N w F 1,1/8 300 B w G2,1/8 0 N w F 2,1/ B x 1/16,A 0 N x 1/16,B 0 N x 1/16,C B x 1/8,A 0 N x 1/8,B 0 N x 1/8,C B

110 muuttuja optimistatus kerroin c redusoitu ala- yläarvo kustannus raja c min raja c max y 1/16,AA B y 1/16,BA B y 1/16,AB 0 N y 1/16,BB 0 N y 1/16,CB B y 1/16,BC 0 N y 1/16,CC B y 1/8,AB B y 1/8,BB 2989,09 B y 1/8,CB 0 N y 1/8,BC B y 1/8,CC B z 1/4,AB 1000 B z 1/4,AC 4000 B z 1/4,BC B z 1/2,AB 1000 B z 1/2,AC B z 1/2,BC 0 N Kannattaa huomata, että LINGOn tuottamat redusoidut kustannukset ovat optimipisteessä 0 ts. maksimointitehtävissä tämän kurssin lukujen c j vastalukuja. Vaikka optimiratkaisu ei muutukaan kohdefunktion kertoimien vaihteluvälin sisällä, niin kohdefunktion optimiarvo muuttuu määrän c j x j. Kuinka herkkä on optimiratkaisu ja optimituotto 0.25 tuuman BC vanerin myyntihintaarviolle 33 $? Edellä olevasta taulukosta saadaan rajat [31.612,34.675], joiden sisällä ratkaisu pysyy samana. Jokaisesta 1 $ hinnankorotuksesta tuotto nousee määrän $ viikossa. Kuinka herkkä on ratkaisu 1/16 tuuman A laatuisen viilun hinta-arviolle 1.0 $? Kyseinen kerroin kohdefunktiossa on 1.0 ja sen vaihtelurajat ovat (, 0.201]. Jos viilun ostohinta on vähintään pysyy ratkaisu samana. Kohdefunktiokaan ei tällöin muutu, koska muuttujan optimiarvo on 0 eli sitä ei osteta ollenkaan. Kuinka paljon vaikuttaa optimiarvoon, jos korotetaan tai alennetaan 0.5 tuuman AC vanerin myyntihintaa 20% alkuperäisestä arvosta 65 $? 107

111 Kahdenkymmenen prosentin hinnankorotus tuottaa myyntihinnan 78 $, mutta koska se ylittää kertoimen suurimman vaihtelurajan $, joudutaan arvioimaan tuoton lisäystä. Se on vähintään (78 65) $/kk. Kahdenkymmenen prosentin hinnanalennus on myöskin vaihtelurajojen ulkopuolella, joten tuoton pienennys on vähintään ( ) $/kk ja korkeintaan (65 52) $/kk. Nykyisellä 50 $ myyntihinnalla ei kannata tuottaa ollenkaan 0.5 tuuman BC vaneria. Milloin sitä kannattaa ruveta valmistamaan? Sitä ei kannata tehdä (z1/2,bc = 0), mikäli myyntihinta $, mutta sitä korkeammilla hinnoilla sen valmistus saattaa kannattaa. Nykyisen ratkaisun mukaan ostetaan x 1/16,C = neliöjalkaa 1/16 tuumaista C viilua viikossa hintaan 0.1 $ (kohdefunktiossa 0.1) neliöjalalta. Millä hinnalla tämän määrän ostamisesta tulisi kannattamatonta? Vaihteluväleistä seuraa, että neliöjalkaa on optimaalinen määrä, mikäli hinta on korkeintaan $ neliöjalalta. Jos hinta on sitä korkeampi, saattaa olla edullista ostaa vähemmän. Tutkitaan seuraavaksi mitä vaikuttaa rajoituksen lisääminen tai pois jättäminen. Vaikuttaako vanerinteon tuntimäärärajoituksen poistaminen ratkaisuun? Vaikuttaa, koska alijäämä optimipisteessä = 0. Vaikuttaako toimittajan 1 hyvien tukkien lukumäärärajoituksen poistaminen ratkaisuun? Ei vaikuta, koska saadussa ratkaisussa jäi tukkia käyttämättä. Toimittajalta 1 on luvattu ostaa ainakin 325 tukkia kuussa. Vaikuttaako tämä jotakin ratkaisuun? Ei vaikuta, sillä saadaan uusi rajoitus w G1,1/16 + w G1,1/8 + w F 1,1/16 + w F 1,1/8 325, mutta se ei ole aktiivinen, sillä > 325. Olisiko sillä vaikutusta ratkaisuun, jos ostettaisiin kuukaudessa korkeintaan 10000$ edestä viilua? 108

112 Kyllä, sillä nyt saataisiin uusi rajoitus 1.0x 1/16,A + 0.3x 1/16,B + 0.1x 1/16,C + 2.2x 1/8,A + 0.6x 1/8,B + 0.2x 1/8,C ja siihen sijoittaessa = > Selvitetään vielä mitä vaikuttaa muuttujan poisjättäminen tai lisääminen. Harkitaan uuden 1/4 tuuman AA laatuisen vanerin ottamista tuotanto-ohjelmaan. Yksi levy voitaisiin tehdä 0.25 tunnissa käyttäen kaksi 1/16 tuuman A viilua ja yksi 1/8 tuuman B viilu. Kuinka paljon pitäisi sen myyntihinnaksi c laittaa, jotta sitä kannattaisi valmistaa? Uutta muuttujaa vastaava duaalirajoitus on 0.25v 17 2v 24 v 27 c, ja kun siihen sijoitetaan duaalimuuttujien optimiarvot, saadaan c ( 7.046) ( ) $. Tällöin sitä ei kannata tuottaa, mutta mikäli hinta c on suurempi kuin $, valmistus muuttuu kannattavaksi. Uusi toimittaja tarjoaa 1/16 tuuman B viilua 0.4 $ hintaan neliöjalalta. Vaikuttaako sen mukaan otto optimiratkaisuun? Ei, sillä uusi muuttuja vaikuttaisi ainoastaan 1/16 tuuman B viilun tasapainoehtoon, joten sitä vastaava duaalirajoitus olisi v , mutta nykyinen duaaliratkaisu v19 = toteuttaa sen. 7.6 Parametrinen optimointi Tutkitaan edellä olevasta luvusta saatuja rajoja suurempia muutoksia. Sitä varten tarkastellaan öljynjalostusesimerkkiä 2.1. Siinä vaaditaan ensimmäisessä rajoituksessa bensiiniä määrä b 1 = 2, jolloin sitä vastaava duaaliratkaisu on v1 = 20 välillä b Jos taas b 1 = 3.25, niin duaaliratkaisu on v1 = välillä b Mikäli b 1 = 2.625, niin tietokoneohjelman tuottamaksi duaaliratkaisuksi voi tulla kumpi tahansa edellisistä. Silloin kohdefunktion kasvunopeuden oikeanpuoleinen derivaatta on ja vasemmanpuoleinen derivaatta on 20. Arvolla b 1 = on ratkaisupiste degeneroitunut, eikä voida tietää varmasti kumpaan vaihtoehtoisista kahdesta kannasta algoritmi ensiksi 109

113 saapuu. Yleisesti degeneroituneet kärkipisteet johtavat kertoimien b i ja c j pieniin vaihteluväleihin herkkyysanalyysissa. Mikäli kuitenkin halutaan tarkkaa tietoa kohdefunktion arvoista laajemmalta parametrien vaihtelualueelta, on ratkaistava tehtävä uudestaan. Parametrisella optimoinnilla voidaan selvittää tätä, ja esimerkkeinä tuloksista ovat luvun 7.2 kuvat. Empiirisesti voidaan edetä väli kerrallaan. Kun aluksi on saatu parametrille väli [b min, b max ], ratkaistaan tehtävä uudestaan arvolla b max + ε, jolloin saadaan seuraavan paloittain lineaarisen välin tiedot. Näin jatketaan, kunnes saadaan selvitettyä tilanne alkuperäisen välin oikealla puolella. Tämän jälkeen ratkaistaan tehtävä arvolla b min ε ja jatketaan kunnes kohdefunktion käyttäytyminen on selvillä koko lukusuoralla. Öljynjalostusesimerkissä 2.1 saadaan taulukko b 1 v 1 b min 1 b max 1 perustehtävä variantti ε variantti ε variantti ε Aivan vastaavasti tutkitaan kohdefunktion kertoimen vaihtelua. Usein kiinnostaa kahden tai useamman parametrin yhtäaikainen muuttuminen. Esimerkiksi talouden ylämäki saattaa nostaa bensiinin kysyntää, mutta lentokonebensiinin kysyntää kaksi kertaa nopeammin. Siis b 1 (1 + t)2 = 2 + 2t ja b 2 (1 + 2t)1.5 = t. Yleisesti pitäisi selvittää kohdefunktion optimiarvot kaikilla reaaliluvuilla t, kun b b + bt. Tällöin tehtävänä on max c T x s. t. Ax = b + bt x 0. Voidaan ajatella parametri t päätösmuuttujaksi ja ottaa käyttöön uusi rajoitus t = b m+1, jolloin max c T x s. t. Ax bt = b t = b m+1 x 0, t R, jolloin voidaan tutkia kohdefunktion arvoja eri b m+1 arvoilla. 110

114 Öljynjalostusesimerkissä saadaan min 20x x 2 s. t. 0.3x x 2 2t 2 0.4x x 2 3t x x x 1 9 x 2 6 t = b 6 x 1 0, x 2 0. Nyt voidaan tutkia kertoimen b 6 vaihtelua ja silloin b 6 (v 1, v 2, v 3, v 4, v 5, v 6 ) b min 6 b max 6 perustehtävä (20.00, 35.00, 0.00, 0.00, 0.00, ) variantti ε (0.00, 0.75, 0.00, 10.00, 0.00, ) variantti ε ei ratkaisua variantti ε (0.00, 37.5, 25.00, 0.00, 0.00, ) variantti ε (0.00, 0.00, , 0.00, 15.00, 0.00) Aivan samoin voidaan tutkia useamman kuin yhden kohdefunktion kertoimen samanaikaista vaihtelua. Yritetään selvittää kohdefunktion optimin käyttäytyminen parametrin t funktiona, kun c c + ct eli ratkaista tehtävä max (c + ct) T x s. t. Ax = b x 0. Voidaan käyttää hyväksi vahvaa duaalisuuslausetta ja tutkia sen duaalista parametristä tehtävää min b T v s. t. A T v c + ct. Tämä ratkaistiin ottamalla käyttöön yksi ylimääräinen rajoitus min b T v s. t. A T v ct c t = c n+1 111

115 ajattelemalla t muuttujaksi ja tutkimalla parametrin c n+1 duaali taas on muutosta. Tämän tehtävän max c T x + c n+1 x n+1 s. t. Ax = b c T x + x n+1 = 0 x 0 ja siinä on siis selvitettävä parametrin c n+1 muutoksen vaikutukset. Muuttujan x n+1 arvo ratkaisussa on kohdefunktion optimiarvon kulmakerroin. Miksi? Oletetaan öljynjalostusesimerkissä että c = (1, 3), jolloin parametrinen tehtävä min 20x x 2 + c 3 x 3 s. t. 0.3x x x x x x x 1 9 x 2 6 x 1 3x 2 + x 3 = 0 x 1 0, x 2 0 tuottaa taulukon c 3 (x 1, x 2, x 3 ) c min 3 c max 3 perustehtävä 0 (2.000, 3.500, ) variantti ε (6.667, 0.000, 6.667) variantti ε (0.750, 6.000, ) variantti ε (9.000, 6.000, ) kun varioidaan parametrin c 3 arvoa. 112

116 8 Monitavoiteoptimointi Tähän asti on keskitytty ongelmiin, joissa optimoitavia tavoitteita on vain yksi ja näin pystytään ratkaisemaan riittävän hyvin monenlaisia ongelmia. Erityisesti silloin, kun tavoitteita ei pysty esittämään samoissa yksiköissä, voidaan turvautua monitavoiteoptimointiin, vaikka tehtävän analysointi muuttuukin haastavammaksi. 8.1 Monitavoitemalleja Esimerkki 8.1. Liikepankin täytyy investointipäätöksissään tasapainoilla saatavan tuoton ja sen riskin kanssa. Tavallisesti suurimman tuoton antavat kohteet ovat kaikkein riskialtteimpia. Pankin pitäisi tuottaa hyvin ja välttää liiallisia riskejä, joten nyt tässä on kaksi luonnollista optimointikriteeriä. Oletetaan, että pankilla on 20 miljoonan $ oma pääoma ja 80 miljoonan $ talletukset sekä 150 miljoonan $ shekkitilitalletukset. Pääoma ja talletukset voidaan sijoittaa seuraavilla tavoilla investointilaji j tuotto- likviidi- vaadittu oma prosentti osuus (%) pääoma (%) 1: käteinen ei 2 : lyhytaikainen sijoitus ei 3 : 1 5 vuoden obligaatio ei 4 : 5 10 vuoden obligaatio ei 5 : yli 10 vuoden obligaatio ei riski 6 : kulutusluotot kyllä 7 : asuntoluotot kyllä 8 : liike - elämän luotot kyllä Päätösmuuttujaksi tuntuu luontevalta valita jonka tuotto on x j : tavalla j investoitu rahamäärä (miljoonaa $), 0.04x x x x x x x 8. Riskiä voidaan mitata esimerkiksi laskemalla yllä olevassa taulukossa olevan Yhdysvaltain lainsäädännön vaatiman oman pääoman suhde todelliseen omaan pääomaan. Tällöin pieni osamäärä merkitsee pientä riskiä ja saadaan minimoitava tavoite 1 20 (0.005x x x x x x x 8 ). Toinen tapa arvioida riskiä on laskea riskipääoman suhde omaan pääomaan eli 1 20 (x 6 + x 7 + x 8 ) ja tätäkin tavoitetta minimoidaan. Kun vaaditaan rajoituksina: 113

117 1. Koko käytettävissä oleva summa on investoitava. 2. Käteistä täytyy olla vähintään 4% talletuksista ja 14% shekkitalletuksista. 3. Likviidien sijoitusten osuuden täytyy olla vähintään 36% talletuksista ja 47% shekkitalletuksista. 4. Sijoitukset täytyy hajauttaa niin, että kuhunkin kategoriaan tulee ainakin 5% niistä. 5. Liikepankin täytyy tehdä ainakin 30% investoinneista liike-elämälle. Nyt saadaan monitavoiteoptimointitehtävä max 0.04x x x x x x x 8 min 1 20 (0.005x x x x x x x 8 ) min 1 20 (x 6 + x 7 + x 8 ) s. t. x 1 + x 2 + x 3 + x 4 + x 5 + x 6 + x 7 + x 8 = x x x x x x x j 0.05( ), j = 1,..., 8 x 8 0.3( ) x j 0, j = 1,..., 8. Esimerkki 8.2. Dynamometrissä tarvitaan kuvan 38 näköistä osaa, w t r Kuva 38: Dynamometrissä tarvittava osa. Rajoitukset mitoituksessa ovat 5.00 w 10.00, 0.10 t 2.00 ja 1.25 r

118 jonka mitoituksessa päätösmuuttujat ovat w : osan pituus (cm) t : osan ulkoseinän paksuus (cm) r : reikien säde (cm). Laitteen herkkyys on nyt 0.7r Ewt 2 ja jäykkyys Ewt 3, r 3 jossa E = on Youngin elastisuusvakio. Kun pyritään suureen herkkyyteen ja suureen jäykkyyteen, saadaan epälineaarinen monitavoitetehtävä max 0.7r Ewt 2 max Ewt 3 r 3 s. t. 5.0 w t r Se voidaan kuitenkin muuntaa lineaariseksi ottamalla päätösmuuttujiksi yllä käytettyjen suureiden logaritmit ja maksimoimalla kohdefunktioiden logaritmia. Esimerkki 8.3. Tarkastellaan ydinreaktorien tuottaman radioaktiivisen jätteen varastointia osaan mahdollisista sijaintipaikoista. Jäte kuljetetaan normaalia tieverkostoa pitkin ja kustannukset minimoituvat, jos valitaan lyhin mahdollinen reitti. Toisaalta, mikäli valittu reitti kulkee läheltä suuria asutuskeskuksia, se aiheuttaa suuremman riskin kuin kulkiessaan harvaan asutuilla alueilla. Oletetaan tunnetuiksi parametrit s i : reaktorin i tuottaman jätteen määrä d ijk : etäisyys reaktorista i sijoituspaikkaan j reittiä k pitkin p ijk : asukasmäärä reitin k varrella reaktorista i sijoituspaikkaan j. Päätösmuuttujiksi voidaan valita 1, jos sijoituspaikka j otetaan käyttöön y j = 0, muuten x ijk : reaktorista i sijoituspaikkaan j reittiä k pitkin lähetetty jätemäärä. 115

119 Jos reaktoreita on 7, sijoituspaikkaehdokkaita 3, sijoituspaikkoja 2 ja valittavia reittivaihtoehtoja aina 2, saadaan ongelma min min s. t d ijk x ijk (reitin pituus) i=1 j=1 k= p ijk x ijk (yleisöystävällisyys) i=1 j=1 k=1 3 2 x ijk = s i, i = 1,..., 7 (kaikki jäte kuljetetaan) j=1 k=1 3 y j = 2 (vain 2 loppusijoituspaikkaa) j=1 x ijk s i y j, i = 1,..., 7; j = 1, 2, 3; k = 1, 2 x ijk 0, i = 1,..., 7; j = 1, 2, 3; k = 1, 2 y j {0, 1}, j = 1, 2, 3. Esimerkkidatana voidaan käyttää lukuarvoja reaktori j = 1 j = 1 j = 2 j = 2 j = 3 j = 3 jätei k = 1 k = 2 k = 1 k = 2 k = 1 k = 2 määrä s i 1 etäisyys väestö etäisyys väestö etäisyys väestö etäisyys väestö etäisyys väestö etäisyys väestö etäisyys väestö Tehokkaat pisteet Eri päätöksentekokriteerit ovat yleensä keskenään ristiriitaisia eli jonkin kriteerin mukaan hyvä ratkaisupiste onkin toisen mukaan huono. Sallittu piste ei kuitenkaan voi olla paras, jos on muita sallittuja pisteitä, jotka ovat vähintään yhtä hyviä jokaisen kriteerin suhteen. Sanotaan, että sallittu piste on tehokas tai Pareto-optimaalinen, mikäli ei ole yhtään 116

120 sallittua pistettä, joka on ainakin yhtä hyvä kaikkien kriteerien suhteen ja aidosti parempi yhden kriteerin suhteen. Esimerkki 8.4. Dynamometriongelmassa 8.2 piste (w 1, t 1, r 1 ) = (5, 0.1, 20) on tehokas, sillä mikään muu sallittu piste ei voi tuottaa suurempaa tai yhtä suurta herkkyyttä. Pienentämällä sädettä r saadaan sen sijaan sallittuja pisteitä, joilla on suurempi jäykkyys. Piste (w 2, t 2, r 2 ) = (7, 1, 3) taas ei ole tehokas, koska se tuottaa herkkyyden ja jäykkyyden , mutta (w 3, t 3, r 3 ) = (7, 0.9, 2.7) tuottaa saman jäykkyyden mutta paremman herkkyyden Kahden kriteerin tapauksessa voidaan havainnollistaa tehokkaita pisteitä graafisesti. Kun merkitään maksimoitavia kohdefunktioita y 1 = g 1 (x) ja y 2 = g 2 (x), niin (y 1, y 2 )- avaruudessa on piste tehokas, jos yhtään sallittua pistettä ei ole siitä idän-pohjoisen välisessä suunnassa. Kaksiulotteisessa tapauksessa voidaan tehokkaat pisteet konstruoida ratkaisemalla ensin tehtävät kummankin tavoitteen suhteen erikseen. Esimerkki 8.5. Tehtävässä max 3x 1 + x 2 = y 1 max x 1 + 2x 2 = y 2 s. t. x 1 + x x x 2 3 ovat sallittujen pisteiden joukon kärkipisteet (0, 0), (3, 0), (3, 1), (1, 3), (0, 3) ja kuvassa 39 on piirretty sallittujen pisteiden joukko S. Kuva 39: Sallittujen pisteiden joukko S. Pisteet kuvautuvat (y 1, y 2 )-avaruudessa pisteiksi (0, 0), (9, 3), (10, 1), (6, 5) ja (3, 6). Koska y i kuvaukset ovat lineaarisia, saadaan sallittujen pisteiden joukoksi kuva

121 Kuva 40: Kuvatut pisteet. Tässä on selvästi pisteiden (10, 1), (6, 5) ja (3, 6) välinen murtoviiva tehokkaiden pisteiden joukko. Se vastaa alkuperäisessä sallittujen pisteiden joukossa murtoviivaa pisteiden (3, 1), (1, 3) ja (0, 3) välillä. Esimerkki 8.6. Dynamometritehtävässä maksimoidaan ensiksi herkkyys max 0.7r Ewt 2 s. t. 5.0 w t r 20.0, josta saadaan ratkaisu ( , 1.312) ja sen jälkeen jäykkyys max Ewt 3 r 3 s. t. 5.0 w t r 20.0, josta puolestaan tulee ratkaisuksi ( , ). Nämä ovat äärimmäiset te- 118

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

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

1. Lineaarinen optimointi

1. Lineaarinen optimointi 0 1. Lineaarinen optimointi 1. Lineaarinen optimointi 1.1 Johdatteleva esimerkki Esimerkki 1.1.1 Giapetto s Woodcarving inc. valmistaa kahdenlaisia puuleluja: sotilaita ja junia. Sotilaan myyntihinta on

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

Harjoitus 4: Matlab - Optimization Toolbox

Harjoitus 4: Matlab - Optimization Toolbox Harjoitus 4: Matlab - Optimization Toolbox Mat-2.2107 Sovelletun matematiikan tietokonetyöt Syksy 2006 Mat-2.2107 Sovelletun matematiikan tietokonetyöt 1 Harjoituksen aiheita Optimointimallin muodostaminen

Lisätiedot

Harjoitus 8: Excel - Optimointi

Harjoitus 8: Excel - Optimointi Harjoitus 8: Excel - Optimointi Mat-2.2107 Sovelletun matematiikan tietokonetyöt Syksy 2006 Mat-2.2107 Sovelletun matematiikan tietokonetyöt 1 Harjoituksen aiheita Lineaarisen optimointimallin muodostaminen

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.) vasemman puolen

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

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

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

Osakesalkun optimointi. Anni Halkola Turun yliopisto 2016

Osakesalkun optimointi. Anni Halkola Turun yliopisto 2016 Osakesalkun optimointi Anni Halkola Turun yliopisto 2016 Artikkeli Gleb Beliakov & Adil Bagirov (2006) Non-smooth optimization methods for computation of the Conditional Value-at-risk and portfolio optimization.

Lisätiedot

Kimppu-suodatus-menetelmä

Kimppu-suodatus-menetelmä Kimppu-suodatus-menetelmä 2. toukokuuta 2016 Kimppu-suodatus-menetelmä on kehitetty epäsileiden optimointitehtävien ratkaisemista varten. Menetelmässä approksimoidaan epäsileitä funktioita aligradienttikimpulla.

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

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

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

Malliratkaisut Demot

Malliratkaisut Demot Malliratkaisut Demot 5 2.2.28 Tehtävä a) Tehtävä voidaan sieventää muotoon max 5x + 9x 2 + x 3 s. t. 2x + x 2 + x 3 x 3 x 2 3 x 3 3 x, x 2, x 3 Tämä on tehtävän kanoninen muoto, n = 3 ja m =. b) Otetaan

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

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

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

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

Aki Taanila LINEAARINEN OPTIMOINTI

Aki Taanila LINEAARINEN OPTIMOINTI Aki Taanila LINEAARINEN OPTIMOINTI 26.4.2011 JOHDANTO Tässä monisteessa esitetään lineaarisen optimoinnin alkeet. Moniste sisältää tarvittavat Excel ohjeet. Viimeisin versio tästä monisteesta ja siihen

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

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

Luento 9: Yhtälörajoitukset optimoinnissa

Luento 9: Yhtälörajoitukset optimoinnissa Luento 9: Yhtälörajoitukset optimoinnissa Lagrangen kerroin Oletetaan aluksi, että f, g : R R. Merkitään (x 1, x ) := (x, y) ja johdetaan Lagrangen kerroin λ tehtävälle min f(x, y) s.t. g(x, y) = 0 Olkoon

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

Osakesalkun optimointi

Osakesalkun optimointi Osakesalkun optimointi Anni Halkola Epäsileä optimointi Turun yliopisto Huhtikuu 2016 Sisältö 1 Johdanto 1 2 Taustatietoja 2 3 Laskumetodit 3 3.1 Optimointiongelmat........................ 4 4 Epäsileän

Lisätiedot

Harjoitus 5 ( )

Harjoitus 5 ( ) Harjoitus 5 (14.4.2015) Tehtävä 1 Figure 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

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

Harjoitus 9: Optimointi I (Matlab)

Harjoitus 9: Optimointi I (Matlab) Harjoitus 9: Optimointi I (Matlab) MS-C2107 Sovelletun matematiikan tietokonetyöt MS-C2107 Sovelletun matematiikan tietokonetyöt 1 Harjoituksen aiheita Optimointimallin muodostaminen Optimointitehtävien

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

73125 MATEMAATTINEN OPTIMOINTITEORIA 2

73125 MATEMAATTINEN OPTIMOINTITEORIA 2 73125 MATEMAATTINEN OPTIMOINTITEORIA 2 Risto Silvennoinen Tampereen teknillinen yliopisto, kevät 2004 1. Peruskäsitteet Optimointiteoria on sovelletun matematiikan osa-alue, jossa tutkitaan funktioiden

Lisätiedot

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!

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! Lineaarinen optimointi Harjoitus 6-7, 016. 1. Olkoon A R m n, x, c R ja b R m. Osoita, että LP-tehtävän c T x = min! (T) Ax b x 0 duaalitehtävän duaali on tehtävä (T). Ratkaisu. (P) c T x = min! Ax b x

Lisätiedot

, on säännöllinen 2-ulotteinen pinta. Määrää T x0 pisteessä x 0 = (0, 1, 1).

, on säännöllinen 2-ulotteinen pinta. Määrää T x0 pisteessä x 0 = (0, 1, 1). HY / Matematiikan ja tilastotieteen laitos Vektorianalyysi II, syksy 017 Harjoitus 4 Ratkaisuehdotukset 4.1. Osoita, että tasa-arvojoukko S F (0), F : R 3 R, F (x) = 3x 1 x 3 + e x + x e x 3, on säännöllinen

Lisätiedot

1 Rajoittamaton optimointi

1 Rajoittamaton optimointi Taloustieteen matemaattiset menetelmät 7 materiaali 5 Rajoittamaton optimointi Yhden muuttujan tapaus f R! R Muistutetaan mieleen maksimin määritelmä. Funktiolla f on maksimi pisteessä x jos kaikille y

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

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

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

MS-A0204 Differentiaali- ja integraalilaskenta 2 (ELEC2) Luento 7: Pienimmän neliösumman menetelmä ja Newtonin menetelmä.

MS-A0204 Differentiaali- ja integraalilaskenta 2 (ELEC2) Luento 7: Pienimmän neliösumman menetelmä ja Newtonin menetelmä. MS-A0204 Differentiaali- ja integraalilaskenta 2 (ELEC2) Luento 7: Pienimmän neliösumman menetelmä ja Newtonin menetelmä. Antti Rasila Matematiikan ja systeemianalyysin laitos Aalto-yliopisto Kevät 2016

Lisätiedot

Varastonhallinnan optimointi

Varastonhallinnan optimointi Varastonhallinnan optimointi Timo Ranta Tutkijatohtori TTY Porin laitos OPTIMI 4.6.215 Peruskysymykset Kuinka paljon tilataan? Milloin tilataan? 2 (46) Kustannuksia Tavaran hinta Varastointikustannukset

Lisätiedot

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

4. Luennon sisältö. Lineaarisen optimointitehtävän ratkaiseminen Simplex-menetelmä JYVÄSKYLÄN YLIOPISTO 4. Luennon sisältö Lineaarisen optimointitehtävän ratkaiseminen Simplex-menetelmä kevät 2012 TIEA382 Lineaarinen ja diskreetti optimointi Lineaarinen optimointitehtävä Minimointitehtävä

Lisätiedot

Matematiikan tukikurssi

Matematiikan tukikurssi Matematiikan tukikurssi Kurssikerta 10 1 Funktion monotonisuus Derivoituva funktio f on aidosti kasvava, jos sen derivaatta on positiivinen eli jos f (x) > 0. Funktio on aidosti vähenevä jos sen derivaatta

Lisätiedot

Lineaarinen optimointitehtävä

Lineaarinen optimointitehtävä Lineaarinen optimointitehtävä Minimointitehtävä yhtälörajoittein: min kun n j=1 n j=1 c j x j a ij x j = b i x j 0 j = 1,..., n i = 1,..., m Merkitään: z = alkuperäisen objektifunktion arvo käsiteltävänä

Lisätiedot

. Kun p = 1, jono suppenee raja-arvoon 1. Jos p = 2, jono hajaantuu. Jono suppenee siis lineaarisesti. Vastaavasti jonolle r k+1 = r k, suhde on r k+1

. Kun p = 1, jono suppenee raja-arvoon 1. Jos p = 2, jono hajaantuu. Jono suppenee siis lineaarisesti. Vastaavasti jonolle r k+1 = r k, suhde on r k+1 TEKNILLINEN KORKEAKOULU Systeemianalyysin laboratorio Mat-.39 Optimointioppi Kimmo Berg 8. harjoitus - ratkaisut. a)huomataan ensinnäkin että kummankin jonon raja-arvo r on nolla. Oletetaan lisäksi että

Lisätiedot

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

Numeeriset menetelmät TIEA381. Luento 8. Kirsi Valjus. Jyväskylän yliopisto. Luento 8 () Numeeriset menetelmät / 35 Numeeriset menetelmät TIEA381 Luento 8 Kirsi Valjus Jyväskylän yliopisto Luento 8 () Numeeriset menetelmät 11.4.2013 1 / 35 Luennon 8 sisältö Interpolointi ja approksimointi Funktion approksimointi Tasainen

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

Optimaalisuusehdot. Yleinen minimointitehtävä (NLP): min f(x) kun g i (x) 0 h j (x) = 0

Optimaalisuusehdot. Yleinen minimointitehtävä (NLP): min f(x) kun g i (x) 0 h j (x) = 0 Optimaalisuusehdot Yleinen minimointitehtävä (NLP): min f(x) kun g i (x) 0 h j (x) = 0 i = 1,..., m j = 1,..., l missä f : R n R, g i : R n R kaikilla i = 1,..., m, ja h j : R n R kaikilla j = 1,..., l

Lisätiedot

Luento 12: Duaalitehtävä. Tarkennuksia Lagrangen kertoimen tulkintaan. Hajautettu optimointi.

Luento 12: Duaalitehtävä. Tarkennuksia Lagrangen kertoimen tulkintaan. Hajautettu optimointi. Luento 12: Duaalitehtävä. Tarkennuksia Lagrangen kertoimen tulkintaan. Hajautettu optimointi. Konveksisuus Muista x + αd, α 0, on pisteestä x R n alkava puolisuora, joka on vektorin d suuntainen. Samoin

Lisätiedot

Matematiikan tukikurssi

Matematiikan tukikurssi Matematiikan tukikurssi Kurssikerta 9 1 Implisiittinen derivointi Tarkastellaan nyt yhtälöä F(x, y) = c, jossa x ja y ovat muuttujia ja c on vakio Esimerkki tällaisesta yhtälöstä on x 2 y 5 + 5xy = 14

Lisätiedot

30A01000 Taulukkolaskenta ja analytiikka Luku 8: Lineaarinen optimointi ja sen sovellukset

30A01000 Taulukkolaskenta ja analytiikka Luku 8: Lineaarinen optimointi ja sen sovellukset 30A01000 Taulukkolaskenta ja analytiikka Luku 8: Lineaarinen optimointi ja sen sovellukset Mitä on lineaarinen optimointi (LP)? LP= lineaarinen optimointiongelma (Linear Programming) Menetelmä, jolla etsitään

Lisätiedot

Matematiikan tukikurssi

Matematiikan tukikurssi Matematiikan tukikurssi Kurssikerta 8 Väliarvolause Oletetaan, että funktio f on jatkuva jollain reaalilukuvälillä [a, b] ja derivoituva avoimella välillä (a, b). Funktion muutos tällä välillä on luonnollisesti

Lisätiedot

Monitavoiteoptimointi

Monitavoiteoptimointi Monitavoiteoptimointi Useita erilaisia tavoitteita, eli useita objektifunktioita Tavoitteet yleensä ristiriitaisia ja yhteismitattomia Optimaalisuus tarkoittaa yleensä eri asiaa kuin yksitavoitteisessa

Lisätiedot

TIES592 Monitavoiteoptimointi ja teollisten prosessien hallinta. Yliassistentti Jussi Hakanen syksy 2010

TIES592 Monitavoiteoptimointi ja teollisten prosessien hallinta. Yliassistentti Jussi Hakanen syksy 2010 TIES592 Monitavoiteoptimointi ja teollisten prosessien hallinta Yliassistentti Jussi Hakanen jussi.hakanen@jyu.fi syksy 2010 Yleistä https://korppi.jyu.fi/kotka/r.jsp?course=96762 Sisältö Johdanto yksitavoitteiseen

Lisätiedot

Mat Lineaarinen ohjelmointi

Mat Lineaarinen ohjelmointi Mat-2.3140 Lineaarinen ohjelmointi 4.10.2007 Luento 4 Ekstreemipisteiden optimaalisuus ja Simplex (kirja 2.4-2.6, 3.1-3.2) Lineaarinen ohjelmointi - Syksy 2007 / 1 Luentorunko Degeneroituvuus Ekstreemipisteiden

Lisätiedot

Stokastinen optimointi taktisessa toimitusketjujen riskienhallinnassa (valmiin työn esittely)

Stokastinen optimointi taktisessa toimitusketjujen riskienhallinnassa (valmiin työn esittely) Stokastinen optimointi taktisessa toimitusketjujen riskienhallinnassa (valmiin työn esittely) Esitelmöijä Olli Rentola päivämäärä 21.1.2013 Ohjaaja: TkL Anssi Käki Valvoja: Prof. Ahti Salo Työn saa tallentaa

Lisätiedot

1 Komparatiivinen statiikka ja implisiittifunktiolause

1 Komparatiivinen statiikka ja implisiittifunktiolause Taloustieteen matemaattiset menetelmät 27 materiaali 4 Komparatiivinen statiikka ja implisiittifunktiolause. Johdanto Jo opiskeltu antaa nyt valmiu tutkia taloudellisia malleja Kiinnostava malli voi olla

Lisätiedot

Yhtälöryhmät 1/6 Sisältö ESITIEDOT: yhtälöt

Yhtälöryhmät 1/6 Sisältö ESITIEDOT: yhtälöt Yhtälöryhmät 1/6 Sisältö Yhtälöryhmä Yhtälöryhmässä on useita yhtälöitä ja yleensä myös useita tuntemattomia. Tavoitteena on löytää tuntemattomille sellaiset arvot, että kaikki yhtälöt toteutuvat samanaikaisesti.

Lisätiedot

LP-mallit, L19. Aiheet. Yleistä, LP-malleista. Esimerkki, Giapetto. Graafisen ratkaisun vaiheet. Optimin olemassaolo

LP-mallit, L19. Aiheet. Yleistä, LP-malleista. Esimerkki, Giapetto. Graafisen ratkaisun vaiheet. Optimin olemassaolo LP-mallit, L19 Yleistä 1 LP-mallit on yksi Operaatioanalyysin (Operations Research) perustyökaluista. Perusongelma: Miten pitää suorittaa operaatio mahdollisimman hyvin, kun käytettävissä on rajalliset

Lisätiedot

Lineaarinen optimointitehtävä

Lineaarinen optimointitehtävä Lineaarinen optimointitehtävä 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. a m1 x 1 + a m2 x 2 + + a mn x n b m x 1, x 2,..., x n 0 1

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

Matematiikan tukikurssi

Matematiikan tukikurssi Matematiikan tukikurssi Kurssikerta 8 1 Funktion kuperuussuunnat Derivoituva funktio f (x) on pisteessä x aidosti konveksi, jos sen toinen derivaatta on positiivinen f (x) > 0. Vastaavasti f (x) on aidosti

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

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

TTY Porin laitoksen optimointipalvelut yrityksille

TTY Porin laitoksen optimointipalvelut yrityksille TTY Porin laitoksen optimointipalvelut yrityksille Timo Ranta, TkT Frank Cameron, TkT timo.ranta@tut.fi frank.cameron@tut.fi Automaation aamukahvit 28.8.2013 Optimointi Tarkoittaa parhaan ratkaisun valintaa

Lisätiedot

TEKNILLINEN TIEDEKUNTA, MATEMATIIKAN JAOS

TEKNILLINEN TIEDEKUNTA, MATEMATIIKAN JAOS 1. Suorakaiteen muotoisen lämmönvaraajan korkeus on K, leveys L ja syvyys S yksikköä. Konvektiosta ja säteilystä johtuvat lämpöhäviöt ovat verrannollisia lämmönvaraajan lämpötilan T ja ympäristön lämpötilan

Lisätiedot

Matematiikan tukikurssi

Matematiikan tukikurssi Matematiikan tukikurssi Kurssikerta 2 Lisää osamurtoja Tutkitaan jälleen rationaalifunktion P(x)/Q(x) integrointia. Aiemmin käsittelimme tapauksen, jossa nimittäjä voidaan esittää muodossa Q(x) = a(x x

Lisätiedot

12. Hessen matriisi. Ääriarvoteoriaa

12. Hessen matriisi. Ääriarvoteoriaa 179 12. Hessen matriisi. Ääriarvoteoriaa Tarkastelemme tässä luvussa useamman muuttujan (eli vektorimuuttujan) n reaaliarvoisia unktioita : R R. Edellisessä luvussa todettiin, että riittävän säännöllisellä

Lisätiedot

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

Ellipsoidimenetelmä. Samuli Leppänen Kokonaislukuoptimointi. S ysteemianalyysin Laboratorio Ellipsoidimenetelmä Kokonaislukuoptimointi Sovelletun matematiikan lisensiaattiseminaari Kevät 2008 / 1 Sisällys Ellipsoidimenetelmän geometrinen perusta ja menetelmän idea Formaali ellipsoidimenetelmä

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

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

Talousmatematiikan perusteet: Luento 15. Rajoitettu optimointi Lagrangen menetelmä Lagrangen kerroin ja varjohinta

Talousmatematiikan perusteet: Luento 15. Rajoitettu optimointi Lagrangen menetelmä Lagrangen kerroin ja varjohinta Talousmatematiikan perusteet: Luento 15 Rajoitettu optimointi Lagrangen menetelmä Lagrangen kerroin ja varjohinta Viime luennolla Tarkastelimme usean muuttujan funktioiden rajoittamatonta optimointia:

Lisätiedot

MATEMATIIKAN KOE, PITKÄ OPPIMÄÄRÄ HYVÄN VASTAUKSEN PIIRTEITÄ

MATEMATIIKAN KOE, PITKÄ OPPIMÄÄRÄ HYVÄN VASTAUKSEN PIIRTEITÄ MATEMATIIKAN KOE, PITKÄ OPPIMÄÄRÄ 4.9.09 HYVÄN VASTAUKSEN PIIRTEITÄ Alustavat hyvän vastauksen piirteet on suuntaa-antava kuvaus kokeen tehtäviin odotetuista vastauksista ja tarkoitettu ensisijaisesti

Lisätiedot

b 1. b m ) + ( 2b Ax) + (b b)

b 1. b m ) + ( 2b Ax) + (b b) TEKNILLINEN KORKEAKOULU Systeemianalyysin laboratorio Mat-9 Optimointioppi Kimmo Berg 5 harjoitus - ratkaisut min Ax b (vertaa PNS-tehtävät) a x + + a n x n a) Ax b = a m x + + a mn x n = x a a m }{{}

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

Matemaattinen lisäys A. Derivaatta matematiikassa ja taloustieteessä

Matemaattinen lisäys A. Derivaatta matematiikassa ja taloustieteessä Matemaattinen lisäys A. Derivaatta matematiikassa ja taloustieteessä Edellä rajakustannuksia MC(x) ja rajahyötyä MB(x) tarkasteltaessa käsiteltiin vain tapausta, jossa x on diskreetti suure (mahdollisia

Lisätiedot

Aluksi. 1.1. Kahden muuttujan lineaarinen yhtälö

Aluksi. 1.1. Kahden muuttujan lineaarinen yhtälö Aluksi Matematiikan käsite suora on tarkalleen sama asia kuin arkikielen suoran käsite. Vai oliko se toisinpäin? Matematiikan luonteesta johtuu, että sen soveltaja ei tyydy pelkkään suoran nimeen eikä

Lisätiedot

TIEA382 Lineaarinen ja diskreetti optimointi

TIEA382 Lineaarinen ja diskreetti optimointi TIEA382 Lineaarinen ja diskreetti optimointi Jussi Hakanen Tietotekniikan laitos jussi.hakanen@jyu.fi AgC 426.3 Yleiset tiedot Tietotekniikan kandidaattiopintojen valinnainen kurssi http://users.jyu.fi/~jhaka/ldo/

Lisätiedot

TIES592 Monitavoiteoptimointi ja teollisten prosessien hallinta. Yliassistentti Jussi Hakanen syksy 2010

TIES592 Monitavoiteoptimointi ja teollisten prosessien hallinta. Yliassistentti Jussi Hakanen syksy 2010 TIES592 Monitavoiteoptimointi ja teollisten prosessien hallinta Yliassistentti Jussi Hakanen jussi.hakanen@jyu.fi syksy 2010 Optimaalisuus: objektiavaruus f 2 min Z = f(s) Parhaat arvot alhaalla ja vasemmalla

Lisätiedot

Malliratkaisut Demot

Malliratkaisut Demot Malliratkaisut Demot 2.2.217 Tehtävä 1 Edellisten demojen tehtävä oli muotoa max 3x 1 + 4x 2 s.t. 7x 1 + 3x 2 24 : v 1 x 1 + 4x 2 17 : v 2 x 2 3 : v 3 x 1, x 2. Kohdefunktio voitiin kirjoittaa myös muotoon

Lisätiedot

Luento 2: Optimointitehtävän graafinen ratkaiseminen. LP-malli.

Luento 2: Optimointitehtävän graafinen ratkaiseminen. LP-malli. Luento 2: Optimointitehtävän graafinen ratkaiseminen. LP-malli. LP-malli Esimerkki. Maalitehdas valmistaa ulko- ja sisämaalia raaka-aineista M1 ja M2. Sisämaalin maksimikysyntä on 2 tonnia/päivä. Sisämaalin

Lisätiedot

1 Rajoitettu optimointi I

1 Rajoitettu optimointi I Taloustieteen mat.menetelmät 2017 materiaali II-1 1 Rajoitettu optimointi I 1.1 Tarvittavaa osaamista Matriisit ja vektorit, matriisien de niittisyys Derivointi (mm. ketjusääntö, Taylorin kehitelmä) Implisiittifunktiolause

Lisätiedot

Talousmatematiikan perusteet: Luento 14. Rajoitettu optimointi Lagrangen menetelmä: yksi yhtälörajoitus Lagrangen menetelmä: monta yhtälörajoitusta

Talousmatematiikan perusteet: Luento 14. Rajoitettu optimointi Lagrangen menetelmä: yksi yhtälörajoitus Lagrangen menetelmä: monta yhtälörajoitusta Talousmatematiikan perusteet: Luento 14 Rajoitettu optimointi Lagrangen menetelmä: yksi yhtälörajoitus Lagrangen menetelmä: monta yhtälörajoitusta Viime luennolla Tarkastelimme usean muuttujan funktioiden

Lisätiedot

Piiri K 1 K 2 K 3 K 4 R R

Piiri K 1 K 2 K 3 K 4 R R Lineaarinen optimointi vastaus, harj 1, Syksy 2016. 1. Teollisuuslaitos valmistaa piirejä R 1 ja R 2, joissa on neljää eri komponenttia seuraavat määrät: Piiri K 1 K 2 K 3 K 4 R 1 3 1 2 2 R 2 4 2 3 0 Päivittäistä

Lisätiedot

Matemaattinen optimointi I -kurssin johdantoluento Prof. Marko M. Mäkelä Turun yliopisto Matematiikan ja tilastotieteen laitos

Matemaattinen optimointi I -kurssin johdantoluento Prof. Marko M. Mäkelä Turun yliopisto Matematiikan ja tilastotieteen laitos Matemaattinen optimointi I -kurssin johdantoluento 10.1.2017 Prof. Marko M. Mäkelä Turun yliopisto Matematiikan ja tilastotieteen laitos Optimointi: Parhaan mahdollisen ratkaisun etsimistä sallituissa

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

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

Luento 12: Duaalitehtävä. Tarkennuksia Lagrangen kertoimen tulkintaan. Hajautettu optimointi.

Luento 12: Duaalitehtävä. Tarkennuksia Lagrangen kertoimen tulkintaan. Hajautettu optimointi. Luento 12: Duaalitehtävä. Tarkennuksia Lagrangen kertoimen tulkintaan. Hajautettu optimointi. Konveksisuus Muista. + αd, α 0, on pisteessä R n alkava puolisuora, joka on vektorin d suuntainen. Samoin 2

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

Malliratkaisut Demot 6,

Malliratkaisut Demot 6, Malliratkaisut Demot 6, 19.2.21 Tehtävä 1 Edellisten demojen tehtävä oli muotoa max 3x 1 + 4x 2 s.t. 7x 1 + 3x 2 24 : v 1 x 1 + 4x 2 17 : v 2 x 2 3 : v 3 x 1, x 2. Kohdefunktio voitiin kirjoittaa myös

Lisätiedot

Luento 6: Monitavoiteoptimointi

Luento 6: Monitavoiteoptimointi Luento 6: Monitavoiteoptimointi Monitavoiteoptimointitehtävässä on useita optimoitavia kohdefunktioita eli ns kriteereitä: f 1,, f m Esimerkiksi opiskelija haluaa oppia mahdollisimman hyvin ja paljon mahdollisimman

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

6. Luennon sisältö. Lineaarisen optimoinnin duaaliteoriaa

6. Luennon sisältö. Lineaarisen optimoinnin duaaliteoriaa JYVÄSKYLÄN YLIOPISTO 6. Luennon sisältö Lineaarisen optimoinnin duaaliteoriaa työkalu ratkaisun analysointiin Jälki- ja herkkyysanalyysiä mitä tapahtuu optimiratkaisulle, jos tehtävän vakiot hieman muuttuvat

Lisätiedot

Varastonhallinnan optimointi

Varastonhallinnan optimointi Varastonhallinnan optimointi Komponenttien ostojen optimointi OPTIMI-hanke Matti Säämäki tutkimusapulainen Nopea tiedonvälitys, kansainvälistyvä kilpailu ja konsulttien vaikutusvallan kasvu on tuonut vallitseviksi

Lisätiedot

f(x, y) = x 2 y 2 f(0, t) = t 2 < 0 < t 2 = f(t, 0) kaikilla t 0.

f(x, y) = x 2 y 2 f(0, t) = t 2 < 0 < t 2 = f(t, 0) kaikilla t 0. Ääriarvon laatu Jatkuvasti derivoituvan funktion f lokaali ääriarvokohta (x 0, y 0 ) on aina kriittinen piste (ts. f x (x, y) = f y (x, y) = 0, kun x = x 0 ja y = y 0 ), mutta kriittinen piste ei ole aina

Lisätiedot

Lineaarisen ohjelman määritelmä. Joonas Vanninen

Lineaarisen ohjelman määritelmä. Joonas Vanninen Lineaarisen ohjelman määritelmä Joonas Vanninen Sisältö Yleinen optimointitehtävä Kombinatorinen tehtävä Optimointiongelman tapaus Naapurusto Paikallinen ja globaali optimi Konveksi optimointitehtävä Lineaarinen

Lisätiedot

Malliratkaisut Demot 5,

Malliratkaisut Demot 5, Malliratkaisut Demot 5, 2.2.25 Tehtävä : a) Tehtävä voidaan sieventää muotoon max 5x + 9x 2 + x 3 s. t. 2x +x 2 x 3 x 3 x 2 3 x 3 3 x,x 2,x 3 Tämä on tehtävän kanoninen muoto,n = 3 jam =. b) Otetaan käyttöön

Lisätiedot

Luento 8: Epälineaarinen optimointi

Luento 8: Epälineaarinen optimointi Luento 8: Epälineaarinen optimointi Vektoriavaruus R n R n on kaikkien n-jonojen x := (x,..., x n ) joukko. Siis R n := Määritellään nollavektori 0 = (0,..., 0). Reaalisten m n-matriisien joukkoa merkitään

Lisätiedot

Yhden muuttujan funktion minimointi

Yhden muuttujan funktion minimointi Yhden muuttujan funktion minimointi Aloitetaan yhden muuttujan tapauksesta Tarpeellinen myös useamman muuttujan tapauksessa Tehtävä on muotoa min kun f(x) x S R 1 Sallittu alue on muotoa S = [a, b] tai

Lisätiedot

Epäyhtälöt 1/7 Sisältö ESITIEDOT: yhtälöt

Epäyhtälöt 1/7 Sisältö ESITIEDOT: yhtälöt Epäyhtälöt 1/7 Sisältö Epäyhtälö Epäyhtälöllä tarkoitetaan ehtoa, missä kahdesta lausekkeesta toinen on suurempi tai mahdollisesti yhtä suuri kuin toinen: f(x) < g(x), f(x) g(x).merkit voidaan luonnollisesti

Lisätiedot

Solmu 3/2001 Solmu 3/2001. Kevään 2001 ylioppilaskirjoitusten pitkän matematiikan kokeessa oli seuraava tehtävä:

Solmu 3/2001 Solmu 3/2001. Kevään 2001 ylioppilaskirjoitusten pitkän matematiikan kokeessa oli seuraava tehtävä: Frégier n lause Simo K. Kivelä Kevään 2001 ylioppilaskirjoitusten pitkän matematiikan kokeessa oli seuraava tehtävä: Suorakulmaisen kolmion kaikki kärjet sijaitsevat paraabelilla y = x 2 ; suoran kulman

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

BM20A5840 Usean muuttujan funktiot ja sarjat Harjoitus 6, Kevät 2018

BM20A5840 Usean muuttujan funktiot ja sarjat Harjoitus 6, Kevät 2018 BM20A5840 Usean muuttujan funktiot ja sarjat Harjoitus 6, Kevät 2018 Päivityksiä: Ratkaisuja päivitetty paljon. 1. Fiktiivisellä saarella asuu pieniä otuksia, joiden elinkaari on seuraavanlainen: jokainen

Lisätiedot