Talousmatematiikan perusteet: Luento 11 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
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 kasvusuunnassa Jos ratkaisu on olemassa, sellainen löytyy aina käyvän alueen kulmapisteestä myös silloin, kun ratkaisuja on ääretön määrä 5
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ä 6
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ä 7
Lineaarisen optimointitehtävän ratkaiseminen Excel Solverilla Esim. Yritys valmistaa puolivalmistetuotteita 1 ja 2, joiden jälleenmyyntihinnat ovat 10 /kg ja 15 /kg. Tuotteita tehdään raaka-aineista D, E ja F kahta eri prosessia hyödyntäen: Prosessi 1 Prosessi 2 D 3 2 E 3 6 F 1 4 Tuote 1 2 7 Tuote 2 4 5 Kustannus 54 72 Raaka-aineiden saatavuus on 2500 kg (D), 3000 kg (E) ja 1000 kg (F). Miten raakaainevarannot kannattaa jakaa tuotantoprosessien kesken, jotta tuotto maksimoituisi? 8
Lineaarisen optimointitehtävän ratkaiseminen Excel Solverilla Käytetään seuraavia päätösmuuttujia: x 11 : Prosessilla 1 valmistettu määrä tuotetta 1 (kg) x 12 : Prosessilla 2 valmistettu määrä tuotetta 1 (kg) x 21 : Prosessilla 1 valmistettu määrä tuotetta 2 (kg) x 22 : Prosessilla 2 valmistettu määrä tuotetta 2 (kg) Näiden tulee toteuttaa prosessisuhteet: x 11 = x 21 2 4 x 12 = x 22 7 5 (Prosessista 1 valmistuu tuotteita 1 ja 2 suhteessa 2:4) (Prosessista 2 valmistuu tuotteita 1 ja 2 suhteessa 7:5) 9
Lineaarisen optimointitehtävän ratkaiseminen Excel Solverilla Määritellään lisäksi apumuuttujat x D1, x D2, x E1, x E2, x F1, x F2 Esim. x D1 : Prosessissa 1 käytetty raaka-aineen D määrä Saatavuusehdoista saadaan rajoitteet: x D1 + x D2 = 3 x 2 11 + 2 x 7 12 2500 (Prosessissa 1 raaka-ainetta D käytetään 3/2 yksikköä ja prosessissa 2 2/7 yksikköä yhtä tuotteen 1 yksikköä kohden) x E1 + x E2 = 3 x 2 11 + 6 x 7 12 3000 (Prosessissa 1 raaka-ainetta E käytetään 3/2 yksikköä ja prosessissa 2 6/7 yksikköä yhtä tuotteen 1 yksikköä kohden) x F1 + x F2 = 1 x 2 11 + 4 x 7 11 1000 (Prosessissa 1 raaka-ainetta F käytetään 1/2 yksikköä ja prosessissa 2 4/7 yksikköä yhtä tuotteen 1 yksikköä kohden) Vastaavia ehtoja ei tarvitse muodostaa tuotteelle 2, koska sen valmistusmäärät toteutuvat samoilla raaka-aineresursseilla kuin tuotteen 1 prosessisuhderajoitteiden määrittämällä tavalla. Yksikkötuotantokustannus c ij prosessilla j valmistetulle tuotteelle i: c 11 = c 21 = 54 6 = 9, c 12 = c 22 = 72 12 = 6 10
Lineaarisen optimointitehtävän ratkaisu Excel Solverilla Näin saadaan lineaarinen optimointitehtävä max 10 9 x 11 + 10 6 x 12 + 15 9 x 21 + (15 6)x 22 s.e. x 11 = x 21 2 4 x 12 7 = x 22 5 3 2 x 11 + 2 7 x 12 2500 3 2 x 11 + 6 7 x 12 3000 1 2 x 11 + 4 7 x 11 1000 x ij 0 i, j 11
Lineaarisen optimointitehtävän ratkaisu Excel Solverilla 12
Lineaarisen optimointititehtävän ratkaisu Excel Solverilla Syötettyäsi tehtävän Exceliin valitse yläpalkista Data Solver (tai Ratkaisin / Problemlösaren) Minulla Solver on syystä tai toisesta asennettu ruotsiksi Kohdefunktio Päätösmuuttujat Syötä Solveriin kohdefunktio, päätösmuuttujat ja rajoitteet Rajoitteet Lisää Muuta Poista Valitse algoritmiksi Simplex LP (ratkeaa tosin tavallisesti muillakin) Muista tarkistaa, onko min/max valittu oikein! Algoritmi Kun olet valmis, paina Solve / Ratkaise / Lös 13
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 14
Lineaarisen optimointitehtävän ratkaisu Excel Solverilla Ratkaisu: x 11 = 1600 kg x 12 = 350 kg x 21 = 3200 kg x 22 = 250 kg Tuotto = 24 450 Ratkaisun perusteella voidaan laskea apumuuttujien x D1,, x F2 arvot, eli miten eri raaka-aineet jakautuvat eri prosesseihin Esim. raaka-aineen D määrä prosessissa 1: x D1 = 3 2 x 11 = 2400 15
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 16
Aktiiviset ja epäaktiiviset rajoitteet Toisessa esimerkissä raakaaineiden D ja F saatavuutta koskevat rajoitukset toteutuvat optimiratkaisussa yhtälöllä, eli ovat aktiivisia D: 3 2 x 11 + 2 7 x 12 = 2500 F: 1 2 x 11 + 4 7 x 12 = 1000 Raaka-ainetta E koskeva rajoitus toteutuu (aidolla) epäyhtälöllä, eli on epäaktiivinen E: 3 2 x 11 + 6 7 x 12 = 2700 < 3000 17
Varjohinnat Optimiratkaisussa kullekin rajoitteelle voidaan laskea varjohinta, joka kertoo kuinka paljon kohdefunktio parantuisi, jos rajoitteen side-ehtoa löyhennettäisiin yhdellä yksiköllä eli kuinka paljon päätöksentekijä olisi enintään valmis maksamaan sideehdon löyhentämisestä yhdellä yksiköllä Esim. Kuinka paljon edellisen kalvon esimerkissä yrityksen tuotto kasvaisi, jos se saisi lisäkilon Raaka-ainetta D? Raaka-ainetta E? Raaka-ainetta F? 18
Varjohinnat Varjohintoja voi tarkastella Solverin Sensitivityraportista (Herkkyys / Känslighet) kohdasta Lagrange-multiplier (-kerroin/-multiplikator) 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 on positiivinen (minimointitehtävässä negatiivinen) Esim. Jos raaka-ainetta D saadaan kilo lisää, tuotto kasvaa 3.1 ; jos viisi kiloa, tuotto kasvaa 15.5 Jos raaka-ainetta F saadaan kilo lisää, tuotto kasvaa 16.70 ; jos viisi kiloa, tuotto kasvaa 83.50 19
Varjohinnat Jos jotakin rajoitetta löyhennetään kylliksi, ratkaisu saattaa siirtyä toiseen kulmapisteeseen (eli eri rajoitteiden leikkauspisteeseen) Esim. 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 20
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 muuttuu yhdellä yksiköllä 21