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 lineaarisen funktion suurinta tai pienintä arvoa tiettyjen lineaaristen rajoitteiden vallitessa Tyypillisesti maksimoidaan voittofunktiota tai minimoidaan kustannusfunktiota tiettyjen rajoitusten tai vaatimusten puitteissa Käytetään esimerkiksi tuotannon tai työnjaon suunnittelussa Tosielämän tilanteesta laaditaan ensin matemaattinen malli, joka sitten ratkaistaan - Malli ei yleensä vastaa todellisuutta täydellisesti, vaan ainoastaan riittävän hyvin tarpeeseen nähden - Voidaan myös olla kiinnostuneita optimiratkaisun lisäksi (jopa sijasta) optimin sensitiivisyydestä eli kuinka herkkä se on rajoitteille 2
Käytännön esimerkki: HR ongelma Tarvitsen tiimiini lisää väkeä Esimieheni antoi minulle luvan käyttää uusiin henkilöihin 500 000 /v Analyytikko maksaa 50 000 /v Ekspertti maksaa 100 000 /v Keitä minun kannattaisi palkata? Saadaan yhtälö rahankäytölle 50000*x+100000*y 500000 Lisäksi tiedetään triviaalisti, että x 0, ja y 0. Huom: Yo. yhtälö voidaan edelleen jakaa tuhannella kummaltakin puolelta, jolloin saadaan yhtäpitävä ehto 50x+100y 500, joka on hieman ergonomisempi (nollien määrä pysyy helpommin oikeana, lyhyempi kirjoittaa). Yhteys alkuperäiseen sanalliseen ongelmaan tosin vähän heikompi x y 3
Ongelma graafisesti Eksperttien lukumäärä (y) 6 5 4 3 2 1 0 Käypä joukko 50 + 100 500 0 0 0 2 4 6 8 10 Analyytikkojen lukumäärä (x) 4
Käypä joukko aka. käypä alue (En: Feasible region, feasible set) On rajoitusehtojen puitteissa mahdollisten ratkaisujen joukko eli muuttujien arvojen pistejoukko, joka toteuttaa rajoitusehdot Lineaarisen optimointiongelman tapauksessa käypää joukkoa rajoittaa lineaariset rajoitteet eli käypä alue on suorien rajaamassa alueessa Muutamia esimerkkejä mahdollisista käyvien alueiden muodosta 5
HR ongelma jatkuu Haluan valita sellaisen määrän analyytikkoja ja eksperttejä, joka kasvattaa yksikköni voittoa mahdollisimman paljon Analyytikon (x) työpanos kasvattaa voittoa tyypillisesti noin 20 000 /v ja ekspertin (y) puolestaan 35 000 /v Kuinka monta analyytikkoa ja eksperttiä pitäisi palkata? Saadaan voittofunktio = 20000x+35000y, jota pyritään maksimoimaan Kun yhdistetään voittofunktio (tuhansilla jaettuna) aiempien rajoitteiden kanssa voidaan ongelma kirjoittaa muotoon max 20 + 35 optimointitehtävä 50 + 100 500 optimoinnin rajoite-ehdot 0, 0 6
Eksperttien lukumäärä (y) Muutamia mahdollisia tavoitefunktion arvoja 6 5 4 3 2 1 0 0 20 + 5 35 = 175 (k ) 4 20 + 3 35 = 185 (k ) 2 20 + 2 35 = 110 (k ) 0 2 4 6 8 10 Analyytikkojen lukumäärä (x) max 20 + 35 50 + 100 500 0 0 10 20 + 0 35 = 200 (k ) 7
LP ongelman matemaattinen asetelma Optimoitava funktio on lineaarinen ja sillä on lineaarisia rajoitteita Muuttujien lkm 2 LP maksimointiongelman yleinen muoto, johon kaikki LP maksimointiongelmat voidaan kirjoittaa Max c T x (optimoitava funktio, jossa c sisältää muuttujakohtaiset Ax b (lineaariset rajoitteet, A kerroinmatriisi) x 0 (mahdolliset muuttujaspesifit (triviaali)vaatimukset), jossa vektori c sisältää muuttujakohtaiset kertoimet Kahden muuttujan (x 1,x 2 ) tapauksessa LP-ongelman yleinen muoto on Max c 1 x 1 +c 2 x 2, A[x 1 x 2 ] T [b 1 b 2 ] T x 1 0, x 2 0, Edellisessä HR-ongelmassa A=[50, 100], b=[500], ja c T =[20, 35] 8
Lin. optimointiongelmat aukikirjoitettuna (m rajoitusehtoa, n muuttujaa): Maksimointitehtävä max = + + Max c T x Minimointitehtävä min = + + Min c T x + + + + + + Ax b + + + + + + Ax b 0, 0,, 0 0, 0,, 0 Huom: yllä merkintä max = + + tarkoittaa, että maksimoidaan lausekkeen + + arvoa z (ja vastaavasti minimoinnille) 9
Terminologiaa Maksimointitehtävä max = + + + + + + 0, 0,, 0 Päätösmuuttujat Näiden arvoja etsitään Tavoitefunktio Lineaarinen Tätä maksimoidaan tai minimoidaan Rajoitusehdot Lineaarisia epäyhtälöitä Pisteet, jotka toteuttavat kaikki rajoitusehdot, muodostavat käyvän joukon Vain käyvän joukon pisteitä tarvitsee tutkia optimiratkaisua etsittäessä 10
Ratkaisun terminologiaa Optimiarvolla tarkoitetaan yleensä tavoitefunktion optimaalista (minimaalista tai maksimaalista arvoa) Optimikohta tai optimipiste tarkoittaa useimmiten päätösmuuttujien arvoa, jolla tavoitefunktion maksimaalinen tai minimaalinen arvo saavutetaan mutta joskus näihin termeihin liitetään myös optimiarvo, jolloin optimipiste = (optimaalinen tavoitefunktion arvo, näitä vastaavat päätösmuuttujan arvo) Ratkaisussa tulee aina antaa sekä optimaalinen tavoitefunktion arvo sekä päätösmuuttujien arvot mikäli ei erikseen kysytä vain toista 11
Lineaarisen funktion kertaus monen muuttujan tapauksessa Lineaarinen funktio on funktio, joka voidaan esittää summana, joka koostuu vakioista tai vakiolla kerrotuista muuttujista Esimerkkejä lineaarisista ja ei-lineaarisista funktioista - ( ) = + ei ole lineaarinen: sisältää toisen asteen termin -, =1+2 + 3 ei ole lineaarinen: sisältää toisen asteen termin 3 - (, ) =1+2 + 3 on lineaarinen -,, =3 + on lineaarinen (f= 9x+y-z) -,, = + + ei ole lineaarinen: termit = ja = ovat lineaarisia (*), mutta termi on epälineaarinen Jos funktio sisältää yhdenkin epälineaarisen muuttujatermin ei se ole enää lineaarinen (*) ja e ovat yllä erikoislukuja eivät muuttujia 12
Funktiomerkinnöistä Huomaa, että merkintä,, kertoo, että funktion z muuttujat ovat x, f ja j. Jos lausekkeessa on muita kirjaimia, niin ne ovat parametrejä eivät varsinaisia muuttujia Funktiolle ja muuttujille voidaan käyttää periaatteessa mitä tahansa kirjainsymboleita Usein käytettyjä symboleita funktiolle ovat f, g, h, Perinteisiä muuttujien symboleita ovat x, y, z tai indeksoituina x 1, x 2, x 3, Tietyillä sovellusalueilla voidaan käyttää standardikirjaimia tietyille funktioille esim r=revenue, c=cost, p=profit, Myös tietyissä sovelluksissa on käytössä joitakin standardisymboleita muuttujille t=aika, p=hinta, Lisätietoa esim: https://en.wikipedia.org/wiki/variable_%28mathematics%29 13
Lineaarisen optimointiongelman muodostaminen: leipomoesimerkki Leipomo valmistaa sokerikakkuja ja voikakkuja Se saa raaka-aineet läheiseltä maatilalta, joka kykenee toimittamaan sille 24 kiloa sokeria, 28 kiloa voita ja 110 kiloa jauhoja viikossa Sokerikakkuun kuluu kilo sokeria, kilo voita ja kaksi kiloa jauhoja Voikakkuun kuluu puoli kiloa sokeria, kilo voita ja viisi kiloa jauhoja Leipomolle jää yhdestä sokerikakusta voittoa kaksi euroa ja yhdestä voikakusta kolme euroa Kuinka monta sokeri- ja voikakkua leipomon kannattaa valmistaa, kun se tahtoo tehdä mahdollisimman paljon voittoa? 14
Leipomoesimerkki: 1. määritetään päätösmuuttujat Tavoitteena etsiä paras sokeri- ja voikakkujen määrää, eli ne ovat päätösmuuttujia Olkoon sokerikakkujen määrä ja voikakkujen määrä Huom: muuttujien symbolit voi valita yleensä ihan itse, ja periaatteessa tässä voi käyttää ihan mitä tahansa symbolia Jos muuttujia olisi enemmän (n kpl), voitaisiin niitä merkitä myös esimerkiksi,,,, Käytettyjen jauhojen ja muiden tarveaineiden määrät seuraavat päätösmuuttujien arvoista 15
Leipomoesimerkki: 2. Määritetään tavoitefunktio Tehtävänannossa kerrotaan, että leipomo tahtoo tehdä mahdollisimman paljon voittoa Tavoitteena on siis maksimoida voittofunktiota Tiedetään, että leipomolle jää yhdestä sokerikakusta (x) voittoa kaksi euroa ja yhdestä voikakusta (y) kolme euroa Muodostetaan voittofunktio:, = 2 + 3 Voittofunktio on tässä kahden muuttujan funktio, sillä voitto riippuu sekä sokeri- että voikakkujen määrästä x ja y Sokerikakkujen määrän kasvattaminen yhdellä kasvattaa voittofunktiota kahdella ja voikakkujen kolmella 16
Leipomoesimerkki: 3. määritetään rajoitusehdot Raaka-aineiden saatavuus rajoittaa tuotettavia kakkumääriä Käytettävissä on enintään 24 kiloa sokeria, jota kuluu kilo sokerikakkuun (x) ja puoli kiloa voikakkuun (y): + 0.5 24 Käytettävissä on enintään 28 kiloa voita, jota kuluu kilo sokerikakkuun (x) ja kilo voikakkuun (y): + 28 Käytettävissä on enintään 110 kiloa jauhoja, joita kuluu kaksi kiloa sokerikakkuun (x) ja viisi kiloa voikakkuun (y): 2 + 5 110 Triviaalisti selvää, että kakkuja ei voida tuottaa negatiivisia määriä: 0,y 0 17
Leipomoesimerkki: lopullinen LP-ongelma max = 2 + 3 + 0.5 24 + 28 2 + 5 110 0 0 Tämän voi edelleen halutessaan pukea yleiseen LP-ongelman muotoon (s.8-9), jossa muuttujavektori on [x, y], c T =[2, 3], b T =[24, 28, 110] ja 1 0,5 matriisi A = 1 1 2 5 18
LP-ongelman ratkaisu 3 Ratkaisutapaa Päätösmuuttujien määrä, jolle tapa soveltuu Graafinen ratkaisu Laskeminen käsin Tietokoneohjelma (esim. Excel) Kaksi Kaksi (rajoitetusti enemmän) Kaksi tai enemmän Excel-ratkaisujen tekniikka käsitellään Excel-osiossa! 19
Graafinen ratkaisutapa Voidaan käyttää, kun päätösmuuttujia on kaksi Kyseinen piste (tai kyseiset pisteet) on optimointiongelman optimiratkaisu 1. Piirretään rajoitusehtojen määräämä käypä alue (usein monikulmio) koordinaatistoon, jonka akseleina ovat päätösmuuttujat 2. Piirretään samaan koordinaatistoon tavoitefunktion eri arvoja edustavia yhdensuuntaisia suoria 3. Valitaan se suora, joka edustaa tavoitefunktion mahdollisimman suurta (tai pientä) arvoa sisältäen samalla vielä ainakin yhden käyvän alueen pisteen käytännössä optimiarvo löytyy melkein aina käyvän alueen jostain nurkasta 20
Leipomoesimerkki: Graafinen ratkaisutapa 1/3 - rajoitteet =0 + 0.5 = 24 Voikakkujen määrä (y) Käypä alue 2 + 5 = 110 + = 28 =0 + 0.5 24 + 28 2 + 5 110 0 0 Sokerikakkujen määrä (x) 21
Leipomoesimerkki: Graafinen ratkaisutapa 2/3 Yhdensuuntaisia suoria varten ratkaistaan kulmakerroin Esimerkiksi yhtälöstä z=2 + 3 saadaan 3y= 2 + y= + - > Kulmakerroin siis -2/3 (laskeva suora, joka laskee 2 yksikköä pystysuunnassa kolmen yksikön matkalla vaakasuunnassa) Ratkaisussa tarkastellaan suoria, joiden kulmakerroin on -2/3 ja valitaan optimiksi piste, jossa lauseke 2 + 3 saa suurimman arvon Lisämateriaali: http://www.virtuaaliopetus.com/index.php/lyhyt-matematiikka/mab9-matematiikan-keinojen-hallinta/lineaarinen-optimointi 22
Leipomoesimerkki: Graafinen ratkaisutapa 3/3 Ao kuvaan piirretty esimerkiksi kolme eri suoraa eri tavoitefunktion arvoilla z 2 + 3 = 74 2 + 3 = 50 2 + 3 = 30 (10,18) (10,18) on käyvän alueen piste, jossa tavoitefunktio saa suurimman arvonsa =74. Vastaus: Kannattaa leipoa 10 sokerikakkua ja 18 voikakkua. 23
Rajoitusehdon sitovuus Voikakkujen määrä (y) =0 + 0.5 = 24 (10,18) Käypä alue Sokerikakkujen määrä (x) 2 + 5 = 110 + = 28 =0 Rajoitusehto + 0.5 24 ei ole sitova, sillä optimipisteessä (10,18) ei käytetä kaikkea mahdollista sokeria: + 0.5 < 24 Rajoitusehto 2 + 5 110 on sitova, sillä optimi-pisteessä (10,18) käytetään kaikki jauhot, eli siinä pätee yhtäsuuruus 2 + 5 = 110 Entä ehto: + 28? 24
Aiempi HR-ongelma graafisesti Eksperttien lukumäärä (y) Kk=-20/35 6 5 4 3 2 1 0 max 20 + 35 50 + 100 500 0 0 Analyytikkojen lukumäärä (x) 0 2 4 6 8 10 Vastaus: Kannattaa palkata 10 analyytikkoa eikä yhtään eksperttiä. Voittoa tulee tällöin 200,000 euroa (10,0) 20 + 35 = 80 20 + 35 = 175 20 + 35 = 200 25
Ratkaiseminen laskemalla Voidaan käyttää, kun päätösmuuttujia on kaksi ja käypä alue on monikulmio Piirretään rajoitusehtojen määräämä käypä alue (monikulmio) koordinaatistoon, jonka akseleilla ovat päätösmuuttujat Ratkaistaan monikulmion kärkipisteiden koordinaatit ratkaisemalla kussakin pisteessä leikkaavien suorien yhtälöparit eli ratkaistaan esimerkiksi seuraava ryhmä muuttujien x ja y suhteen - y=ax+b (ensimmäisen suoran yhtälö) - y=cx+d (toisen suoran yhtälö) Lasketaan tavoitefunktion arvo kussakin kärkipisteessä Optimiratkaisu on se kärkipiste, jossa tavoitefunktio saa suurimman (pienimmän) arvonsa Jos tavoitefunktio saa suurimman (pienimmän) arvonsa kahdessa kärkipisteessä, optimiratkaisuja ovat kaikki niitä yhdistävän janan pisteet 26
Leipomoesimerkki: Ratkaiseminen laskemalla 1/2 Voikakkujen määrä (y) =0 (0,22) + 0.5 = 24 (10,18) (20,8) (24,0) 2 + 5 = 110 + = 28 =0 Kärkipisteet: 2 + 5 = 110 =0 = 0, = 22 2 + 5 = 110 + = 28 = 10, = 18 + = 28 + 0.5 = 24 = 20, =8 + 0.5 = 24 =0 = 24, =0 Sokerikakkujen määrä (x) 27
Leipomoesimerkki: Ratkaiseminen laskemalla Voikakkujen määrä (y) (0,22) (10,18) (20,8) Sokerikakkujen määrä (x) (24,0) Tavoitefunktion z=2x+3y arvo edellä lasketuissa kärkipisteissä (0,22): =2 0+3 22 = 66 10, 18 : =2 10+3 18 = 74 20,8 : =2 20+3 8 = 44 24,0 : =2 24+3 0 = 48 Vastaus: Kannattaa leipoa 10 sokerikakkua ja 18 voikakkua. Voitto on tällöin 74 euroa. 28
Aiempi HR-ongelma laskemalla 1/2 Eksperttien lukumäärä (y) 6 5 4 3 2 1 0 (0,5) max 20 + 35 50 + 100 500 0 0 Kärkipisteet: 50 + 100 = 500 =0 =0, =5 0 2 4 6 8 10 Analyytikkojen lukumäärä (x) 50 + 100 = 500 =0 = 10, = 0 (10,0) 29
Aiempi HR-ongelma laskemalla 2/2 Eksperttien lukumäärä (y) 6 5 4 3 2 1 0 (0,5) max 20 + 35 50 + 100 500 0 0 0 2 4 6 8 10 Analyytikkojen lukumäärä (x) Tavoitefunktion arvo kärkipisteissä (0,5): = 20 0 + 35 5 = 175 10,0 : = 20 10 + 35 0 = 200 (10,0) Vastaus: Kannattaa palkata 10 analyytikkoa eikä yhtään eksperttiä. Voittoa tulee tällöin 200,000 euroa 30
Tehtävä 1: Muodosta ja ratkaise puutehtaan optimointiongelma Puutuotteisiin erikoistunut tehdas tuottaa kahta tuotetta: pesäpallomailoja ja puukenkiä Voitto yhdestä pesäpallomailasta on 10 euroa. Voitto yhdestä kenkäparista on niinikään 10 euroa Valmistuksessa käytetään hionta- ja taivutuskonetta ja yhden pesäpallomailan valmistaminen vaatii 6 minuuttia taivutusta ja 18 minuuttia hiontaa kun taasen kenkäparin valmistaminen vaatii 12 minuuttia taivutusta ja 24 minuuttia hiontaa Taivutuskonetta on mahdollista käyttää 44 tuntia kuukaudessa. Hiontakone on käytettävissä 122 tuntia kuukaudessa. Kuinka monta pesäpallomailaa ja kuinka monta kenkäparia yrityksen kannattaa tuottaa, kun se haluaa maksimoida voiton? 31
Ratkaisu: puutehtaan optimointiongelma Resurssikulutus t/h Mailat: 6/18 min Kengät:12/24 a=mailat b=kengät Graafinen: ratkaistaan kulmakerroin, piirretään ja valitaan Max z=10a+10b 0.1a+0.2b 44 (taivutus) 0.3a+0.4b 122 (hionta) a 0, b 0 (triviaalit rajoitteet) Laskemalla: Määritetään kärkipisteet ja käydään kaikki läpi Maksimituotto= 4066,66 32
Tehtävä 2: Muodosta ja ratkaise lihantuottajan optimointiongelma Tuottajalla on kaksi tuotantolinjaa L1 ja L2, jotka voivat olla toiminnassa 7 päivää viikossa. Tuotannosta saadaan kolmea erilaatuista tuotetta (high, medium ja low) ja tuottaja on luvannut tuottaa viikossa vähintään 120, 80 ja 240 yksikköä em. laatuja em. järjestyksessä. Tuotanto linjastolla L1 maksaa 40 000 päivässä ja se tuottaa 60/20/40 yksikköä tuotteita em. laaduista. Vastaavasti linjaston L2 kustannukset ovat 32 000 päivässä ja tuotanto on 20/20/120. Miten tuotanto tulee toteuttaa, jotta kustannukset olisivat minimissä? 33
Ratkaisu: tuottajan optimointiongelma 1/3 Merkitään, että x 1 =linjaston L1 käyttöpäivät ja x 2 =linjaston käyttöpäivät Tavoitteena minimoidaan kustannuksia: x 1 *40000+x 2 *32000 Reunaehdot: 60x 1 + 20x 2 120 (tuotetaan vähintään 120 yksikköä high-laatua) 20x 1 + 20x 2 80 (tuotetaan vähintään 80 yksikköä medium-laatua) 40x 1 + 120x 2 240 (tuotetaan vähintään 120 yksikköä low-laatua) x 1 0, x 2 0 (tuotantopäivät triviaalisti ei-negatiivisia) Lisäksi voimassa triviaalisti tehtävänannon mukaan x 1 7 x 2 7 34
Ratkaisu: tuottajan optimointiongelma 2/3 Lasketaan käyvän alueen kärkipisteet (graafinen ratkaisu) 60x 1 + 20x 2 120 20x 1 + 20x 2 80 40x 1 + 120x 2 240 x 1 0 x 2 0 x 1 7 x 2 7 Saadaan pisteet alkaen oik. ylänurkasta (7,7), (7,0), (6,0),(3,1),(1,3),(0,6),(7,0) x 2 Käypä joukko x 1 35
Ratkaisu: tuottajan optimointiongelma 3/3 Lasketaan kohdefunktion z= x 1 *40 000+x 2 *32 000 arvot käyvän alueen kärkipisteissä Kärkipiste (x 1,x 2 ) z=x 1 *40 000+x 2 *32 000 (7,7) z=7*40 000+7*32 000=504 000 (7,0) z=7*40 000+0*32 000=280 000 (6,0) z=6*40 000+0*32 000=240 000 (3,1) z=3*40 000+1*32 000=152 000 (1,3) z=1*40 000+3*32 000=136 000 =min (0,6) z=0*40 000+6*32 000=192 000 (0,7) z=0*40 000+7*32 000=224 000 Vastaus: pidetään L1 auki yhden päivän ja L2 kolme päivää jota vastaava minimikustannus on 136 000 36
Kokonaislukuoptimointi LP-tapauksessa Muutoin vastaava tilanne kuin tavallisessa LP-ongelmassa, mutta ylimääräinen vaatimus, että muuttujien arvot oltava kokonaislukuja Optimiratkaisu ei välttämättä ole jatkuvan ratkaisun (*) vieressä oleva kokonaislukuratkaisu vaan se voi olla ihan toisaalla Kokonaislukuoptimointi tyypillinen tilanne jossa yksiköitä ei voida pilkkoa osiin. Mitä esimerkkejä keksit? Myöhemmillä kursseilla ehkä enemmän kokonaislukuoptimointia Excelin Solverissa helppo tehdä vaatimus kokonaislukuoptimoinnista (*) Jatkuva ratkaisu tarkoittaa LP-ongelmaa, joka on muuten vastaava kuin kokonaislukurajoitettu ongelma, mutta ilman kokonaislukurajoitetta 37
Kysymyksiä itselle Miten kuvailisit LP-ongelman käyvän alueen muotoa? Miten sen muoto voi poiketa ei-lp ongelmasta? Miten rajoitusehtojen lukumäärä vaikuttaa LP-ongelman parhaaseen ratkaisutapaan (graafinen, laskemalla, Excelillä) Milloin LP-ongelmalla on äärettömän monta ratkaisua kahden muuttujan tapauksessa? Mieti esimerkiksi HR-ongelmassa ekspertin tuottoa 40k /v. Mitä ovat triviaalirajoitteet eli ne muuttujien rajoitteet, jotka yleensä unohtuvat ongelman matemaattisesta määrittelystä? Miten kokonaislukuoptimointi eroaa jatkuvasta optimoinnista? Miten määrittelisit kokonaislukuoptimoinnin käyvän joukon? Voidaanko ei-kokonaislukuongelmasta saada ratkaisuksi kokonaislukuarvoinen ratkaisu? Mitä tarkoitetaan rajoitteen sitovuudella? Voiko kaikki rajoitteet olla sitovia? Voiko kaikki rajoitteet olla ei-sitovia? 38