Talousmatematiikan perusteet: Luento 12 Lineaarinen optimointitehtävä Graafinen ratkaisu Ratkaisu Excel Solverilla
Esimerkki Esim. Yritys tekee kahta elintarviketeollisuuden käyttämää puolivalmistetta, jotka koostuvat raaka-aineista A, B ja C. Raaka-aineiden osuudet kummassakin tuotteessa sekä raaka-aineiden saatavuus nähdään oheisessa taulukossa. Kuinka paljon yrityksen kannattaa valmistaa kumpaakin tuotetta, kun tuotteen 1 tuotto on 2 /kg ja tuotteen 2 tuotto 3 /kg? Tehtävä voidaan muotoilla seuraavasti: A B C Tuote 1 10% 70% 20% max 2x 1 +3x 2 s.e. 0.1x 1 + 0.55x 2 2500 0.7x 1 + 0.4x 2 3000 0.2x 1 + 0.05x 2 800 x 1, x 2 0 Kohdefunktio Rajoitteet Tuote 2 55% 40% 5% Saatavuus 2500 kg 3000 kg 800 kg Kyseessä on lineaarinen optimointitehtävä, jossa päätösmuuttujien x 1, x 2 suhteen lineaarista kohdefunktiota maksimoidaan lineaaristen rajoitteiden puitteissa 2
Yleinen lineaarinen optimointitehtävä Yleisesti n:n päätösmuuttujan x = x 1,, x n T lineaarinen optimointitehtävä on muotoa: max/min c T x siten, että a T j x b j, j M 1 a T j x b j, j M 2 a T j x = b j, j M 3 x i 0, i N 1 x i 0, i N 2 Pystyvektori c: päätösmuuttujien kertoimet kohdefunktiossa Pystyvektori a j : päätösmuuttujien kertoimet j. rajoitteessa Päätösmuuttujia x i, joiden merkkiä ei ole rajoitettu (eli i N 1, i N 2 ), kutsutaan vapaiksi muuttujiksi Päätösmuuttujavektoria x, joka toteuttaa kaikki rajoitteet, kutsutaan käyväksi ratkaisuksi. Käypää ratkaisua x*, joka optimoi (maksimoi tai minimoi) kohdefunktion, kutsutaan optimiratkaisuksi 3
Graafinen ratkaisu Kahden muuttujan lineaarinen optimointitehtävä voidaan ratkaista graafisesti, esim. max 2x 1 + 3x 2 s.e. 0.1x 1 + 0.55x 2 2500 x 2 4545 0.18x 1 0.7x 1 + 0.4x 2 3000 x 2 7500 1.75x 1 0.2x 1 + 0.05x 2 800 x 2 16000 4x 1 Rajoitteet määrittävät käyvän alueen Kohdefunktion tasa-arvosuorat: c = 2x 1 + 3x 2, c R; esim. 6000 = 2x 1 + 3x 2 x 2 = 2000 2x 1 3 Liu utetaan tasa-arvosuoraa kohdefunktion kasvusuunnassa [2,3] käyvän alueen rajoissa Käypä alue Tasa-arvosuora 6000 = 2x 1 + 3x 2 Tasa-arvosuora 16377 = 2x 1 + 3x 2 Kohdefunktion maksimoiva piste löytyy käyvän alueen kulmapisteestä: x*= 1884, 4203 T, c T x =[2,3] 1884, 4203 T = 16377 4
Presemo-kysymys Päättele kuvan avulla LP-tehtävän ratkaisu. max 8x 1 + 3x 2 s.e. 0.1x 1 + 0.55x 2 2500 0.7x 1 + 0.4x 2 3000 0.2x 1 + 0.05x 2 800 1. x*= 1884, 4203 T 2. x*= 3778, 889 T 3. x*= 4000, 0 T 19.2.2018 5
Lineaarisen optimointitehtävän ratkaisu Lineaarisella optimointitehtävällä on aina joko 0, 1 tai ääretön määrä optimiratkaisuja Optimiratkaisuja on 0, jos 1. Käypä alue on tyhjä tai 2. Tehtävä on rajoittamaton (max c T x tai min c T x ) Ratkaisuja on ääretön määrä, jos tasa-arvosuora on käyvän alueen reunan suuntainen kohdefunktion paranemissuunnassa Jos ratkaisu on olemassa, sellainen löytyy aina käyvän alueen kulmapisteestä myös silloin, kun ratkaisuja on ääretön määrä 6
Lineaarisen optimointitehtävän ratkaisu Tulos voidaan yleistää n-ulotteiseen avaruuteen: Jos lineaarisella optimointitehtävällä on olemassa optimiratkaisu, löytyy sellainen aina käyvän alueen kulmapisteestä. Optimiratkaisu x* voitaisiin siis löytää laskemalla kohdefunktion arvo kaikissa käyvän alueen kulmapisteissä ja valitsemalla näistä paras. Kulmapisteiden määrä kasvaa kuitenkin nopeasti päätösmuuttujien ja rajoitteiden määrän funktiona Lisäksi kulmapisteiden määrittäminen n-ulotteisessa avaruudessa ei ole triviaalia: kulmapiste on aina rajoitteiden leikkauspiste, mutta kaikki rajoitteiden leikkauspisteet eivät ole kulmapisteitä 7
Simplex-algoritmi George Dantzig kehitti v. 1947 nulotteisen lineaarisen optimointitehtävän ratkaisemiseen tehokkaan Simplex-algoritmin Simplexin perusperiaate: Aloita jostakin käyvän alueen kulmapisteestä Etene kulmapisteestä toiseen alueen reunaa pitkin kohdefunktion paranemissuunnan mukaisesti Kun kohdefunktiota parantavia suuntia ei enää löydy, olet optimiratkaisussa. Tämän tarkemmin Simplexiä ei tällä kurssilla käsitellä 8
Lineaarisen optimointitehtävän ratkaisu Excel Solverilla Esim. Yritys tekee kolmea elintarviketeollisuuden käyttämää puolivalmistetta, jotka koostuvat raaka-aineista A, B ja C. Raaka-aineiden osuudet tuotteissa sekä raakaaineiden saatavuus nähdään oheisessa taulukossa. Markkina-asemansa takia yrityksen tulee valmistaa tuotetta 2 vähintään yhtä paljon kuin tuotetta 1. Kuinka paljon yrityksen kannattaa valmistaa kumpaakin tuotetta, kun tuotteen 1 tuotto on 2 /kg, tuotteen 2 tuotto 3 /kg ja tuotteen 3 tuotto 4 /kg? Tehtävä voidaan muotoilla seuraavasti: A B C Tuote 1 10% 70% 20% max 2x 1 +3x 2 + 4x 3 s.e. 0.1x 1 + 0.55x 2 + 0.8x 3 2500 0.7x 1 + 0.4x 2 + 0.1x 3 3000 0.2x 1 + 0.05x 2 + 0.1x 3 800 x 1 + x 2 0 x 1, x 2, x 3 0 Kohdefunktio Rajoitteet Tuote 2 55% 40% 5% Tuote 3 80% 10% 10% Saatavuus 2500 kg 3000 kg 800 kg 9
Lineaarisen optimointitehtävän ratkaisu Excel Solverilla 10
Lineaarisen optimointititehtävän ratkaisu Excel Solverilla Syötettyäsi tehtävän Exceliin valitse yläpalkista Data Solver (tai Ratkaisin / Problemlösaren) Kohdefunktio Syötä Solveriin kohdefunktio, päätösmuuttujat ja rajoitteet Päätösmuuttujat Lisää Valitse algoritmiksi Simplex LP (ratkeaa tosin tavallisesti muillakin) Rajoitteet Muuta Poista Muista tarkistaa, onko min/max valittu oikein! Algoritmi Kun olet valmis, paina Solve / Ratkaise / Lös
Lineaarisen optimointitehtävän ratkaisu Excel Solverilla Solver kertoo, jos käypä alue on tyhjä tai tehtävä rajoittamaton Muussa tapauksessa Solver kertoo löytäneensä ratkaisun Voit halutessasi tulostaa raportteja koskien tuloksia, tulosten herkkyyttä ja rajoitteita 12
Lineaarisen optimointitehtävän ratkaisu Excel Solverilla Ratkaisu: Tuotteen 1 määrä x 1 = 2638 kg Tuotteen 2 määrä x 2 = 2638 kg Tuotteen 3 määrä x 3 = 982 kg Tuotto = 17 117 13
Aktiiviset ja epäaktiiviset rajoitteet Ensimmäisessä esimerkissä raakaaineiden A ja B saatavuutta koskevat rajoitukset toteutuvat optimiratkaisussa yhtälöllä, eli ovat aktiivisia A: 0.1x 1 + 0.55x 2 = 2500 B: 0.7x 1 + 0.4x 2 = 3000 Raaka-ainetta C koskeva rajoitus toteutuu (aidolla) epäyhtälöllä, eli on epäaktiivinen C: 0.2x 1 + 0.05x 2 < 800 14
Aktiiviset ja epäaktiiviset rajoitteet Myös toisessa esimerkissä raaka-aineiden A ja B saatavuutta koskevat rajoitukset ovat aktiivisia, kun taas raaka-ainetta C koskeva rajoitus on epäaktiivinen: A: 0.1x 1 + 0.55x 2 + 0.8x 3 = 2500 B: 0.7x 1 + 0.4x 2 + 0.1x 3 = 3000 C: 0.2x 1 + 0.05x 2 + 0.1x 3 < 800 Markkina-asemarajoite toteutuu yhtälöllä, eli on aktiivinen x 1 = x 2 15
Varjohinnat Optimiratkaisussa kullekin rajoitteelle voidaan laskea varjohinta, joka kertoo kuinka paljon kohdefunktio parantuisi, jos rajoitteen side-ehtoa kasvatettaisiin yhdellä yksiköllä eli kuinka paljon päätöksentekijä olisi enintään valmis maksamaan side-ehdon kasvattamisesta yhdellä yksiköllä Esim. Kuinka paljon edellisen kalvon esimerkissä yrityksen tuotto kasvaisi, jos se saisi lisäkilon Raaka-ainetta A? Raaka-ainetta B? Raaka-ainetta C? Entä kuinka paljon yrityksen tuotto kasvaisi, jos se voisi valmistaa tuotetta 2 yhden kilon vähemmän kuin tuotetta 1 (eli markkina-asemarajoitetta löyhennettäisiin)? 16
Varjohinnat Varjohintoja voi tarkastella Solverin Sensitivityraportista (Herkkyys / Känslighet) kohdasta Shadow price Epäaktiivisen rajoituksen varjohinta on aina 0 Ei ole järkeä maksaa lisäresurssista, kun olemassa olevia resurssejakaan ei ole käytetty Aktiivisen rajoituksen varjohinta poikkeaa nollasta Esim. Jos raaka-ainetta A saadaan kilo lisää, tuotto kasvaa 4.8 ; jos viisi kiloa, tuotto kasvaa 23.9 Jos raaka-ainetta B saadaan kilo lisää, tuotto kasvaa 1.7 ; jos viisi kiloa, tuotto kasvaa 8.6 Jos tuotetta 2 voidaan tuottaa yksi kilo vähemmän kuin tuotetta 1, tuotto kasvaa 0.32 ; jos viisi kiloa vähemmän, tuotto kasvaa 1.6 17
Varjohinnan merkki Edellisen kalvon maksimointitehtävässä Edellä raaka-aineiden A ja B saatavuusrajoituksia koskevat varjohinnat olivat positiiviset (=maksimoitava tuotto kasvaa, kun side-ehto kasvaa) side-ehtoa kannattaa kasvattaa Markkina-asemarajoitusta koskeva varjohinta oli negatiivinen (=maksimoitava tuotto vähenee, kun side-ehto kasvaa) side-ehtoa kannattaa pienentää Minimointitehtävässä tulkinta on päinvastainen Positiivinen varjohinta = minimoitava kustannus kasvaa, kun side-ehto kasvaa side-ehtoa kannattaa pienentää Negatiivinen varjohinta = minimoitava kustannus pienenee, kun side-ehto kasvaa side-ehtoa kannattaa kasvattaa 19.2.2018 18
Varjohinnat Jos jotakin rajoitetta löyhennetään kylliksi, ratkaisu saattaa siirtyä toiseen kulmapisteeseen (eli eri rajoitteiden leikkauspisteeseen) Ensimmäisessä esimerkissä: Jos raaka-aineen B saatavuus 3000 kg 3001 kg, tuotto kasvaa 16376.81 16379.13 Raaka-aineen B varjohinta = 2.32 Jos B:tä saadaan 3000 kg:n sijasta 3100 kg, tuotto kasvaa 232 Mutta jos raaka-ainetta B saadaankin 4000 kg kiloa, optimiratkaisu siirtyy eri suoraparin leikkauspisteeseen Tuotto kasvaa 16376.81 18000.00 eli 1623.19 1000 2.32 Tällöin varjohinta ei enää kerro kohdefunktion optimiarvon todellisesta muutoksesta 19
Yhteenveto Lineaarisen optimointitehtävän kohdefunktio ja rajoitteet ovat lineaariset Jos lineaarisella optimointitehtävällä on rajoitettu optimiratkaisu, sellainen löytyy käyvän alueen kulmapisteestä Ratkaisua ei ole, jos käypä alue on tyhjä tai tehtävä on rajoittamaton Kaksiulotteisen tehtävän voi helposti ratkaista graafisesti Useampiulotteisille tehtäville ratkaisu löytyy nopeasti Excel Solverin avulla Rajoitteen varjohinta kertoo, kuinka paljon kohdefunktion arvo muuttuu jos rajoitteen side-ehto kasvaa yhdellä yksiköllä 20