Sisältö Johdanto 2 LP tehtävän luonteen tarkastelua 3 Johdanto herkkyysanalyysiin 5 2 Optimiarvon funktio ja marginaalihinta 5 3 Johdanto duaaliteoriaan 6 2 LP-tehtävän standardimuoto 9
Johdanto Optimoinnista puhutaan, kun funktio pitää minimoida tai maksimoida tiettyjen vaihtoehtojen joukossa Optimoitavaa funktiota kutsutaan kustannusfunktioksi ja vaihtoehtojen joukkoa kutsutaan käyväksi joukoksi tai rajoitejoukoksi Yleensä käypä joukko on R n :n osajoukko ja kustannusfunktio on kuvaus R n R Sanotaan, että optimointiongelma on lineaarisen optimoinnin ongelma, mikäli kustannusfunktio on muotoa: c x + c 2 x 2 + + c n x n, c i R, i =,, n ja käyvän joukon määrittelee äärellinen määrä yhtälö- ja epäyhtälörajoitteita: a i x + a i2 + + a in x n b i, i =,, s a i x + a i2 + + a in x n = b i, i = s +,, m Lineaarista optimointitehtävää sanotaan LP-tehtäväksi (Linear Programming) Nimitys on vanha ja se on otettu käyttöön ennen kuin sana programming on saanut nykyisen merkityksensä Tarkastellaan seuraavaa lineaarisen optimoinnin tehtävää Esimerkki Tehtaassa valmistetaan tuotteita T ja T 2 jotka koostuvat komponenteista K, K 2 ja K 3 siten, että tuotteisiin tarvitaan komponentteja seuraavat määrät ja T T 2 K 5 K 2 3 4 K 3 4 3 Tuotteesta T saadaan voittoa 30 AC/kpl ja tuotteesta T 2 20 AC/kpl Kutakin komponenttia on saatavilla 60 kpl Kuinka monta tuotetta T ja T 2 pitää valmistaa, jotta voitto on mahdollisimman suuri? ) Jos valmistetaan vain tuotetta T maksimimäärä 2 kpl, niin voittoa saadaan V = 2 30 = 360 AC 2) Jos taas valmistetaan vain tuotetta T 2 maksimimäärä 5 kpl,niin voittoa saadaan V = 5 20 = 300 AC Ei voida kuitenkaan perustellusti väittää että pelkästään yhden tuotteen tekeminen olisi tuottavinta 2
Kokeillaan hieman analysoida ongelmaa: Yleisessä tapauksessa olkoon tuotetta T x kpl ja tuotetta T 2 x 2 kpl Tällöin voittoa saadaan V = V (x, x 2 ) = 30x + 20x 2 euroa Halutaan nyt siis maksimoida voittofunktion V arvo Kuitenkin on otettava huomioon komponenttien kulutus ja määrä Kirjoitetaan taulukko vielä muotoon: T T 2 b K 5 60 K 2 3 4 60 K 3 4 3 60 c 30 20 5 60, merk A = 3 4, b = 60, c = 4 3 60 Nyt maksimaalisen voiton löytämiseksi saadaan malli: [ ] 30 20 30x + 20x 2 max! (tai = max! ) 5x + x 2 60 3x + 4x 2 60 4x + 3x 2 60 ct x max! Ax b LP tehtävän luonteen tarkastelua Tarkastellaan LP-tehtävän käyttäytymistä yksinkertaisen 2-ulotteisen esimerkin avulla Esimerkki 2 Muovimukeja valmistava perheyritys haluaa optimoida tuotevalikoiman tarkoituksenaan maksimoida voitto He valmistavat olutlaseja ja shamppanjalaseja Olutlasista saadaan voittoa 25 c ja samppanjalasista 20 c Olutlasin valmistukseen tarvitaan 20 g muovia ja shamppanjalasin valmistukseen 2 g Pävittäin muoviraakaainetta on käytettävissä 800 g Yhdessä tunnissa voidaan valmistaa 5 kpl jompaa kumpaa tuotetta Perhe haluaa rajoittaa työpäivänsä 8 tuntiin Ensimmäinen askel ongelman mallintamisessa on selvittää, mitkä ovat päätösmuuttujia (decision variables) Sen jälkeen mallin muodostaminen helpottuu Yksi keino määrätä päätösmuuttujat on asettaa itsensä tehtaan tuotantopäällikön rooliin ja kysyä itseltä: Mitä minun täytyy tietää, jotta tiedän voiton? Tässä tapauksessa vastaus olisi olut- ja shamppanjalasien tuotantomäärä päivässä Päätösmuuttujat B on päivittäin tuotettujen olutlasien määrä C on päivittäin tuotettujen shamppanjalasien määrä 3
Kustannusfunktio Maksimoi voitto = 25B+20C Eksplisiittiset rajoitteet materiaalirajoite: 20B+2C 800 työaikarajoite: 5 B + 5 C 8 Implisiittiset rajoitteet B 0, C 0 LP ongelma: max 25B + 20C 20B + 2C 800 5 B + 5 C 8 B, C 0 (P) Koska tehtävä on kaksiulotteinen voidaan ratkaisua kuvata helposti graafisesti Edetään seuraavasti: Piirrä rajoitteet ja selvitä itsellesi mikä on käypä alue 2 ( Piirrä ) kustannusfunktion gradientti Kustannusfunktion gradientti f(x, x 2 ) = c kertoo kustannusfunktion kasvusuunnan Koska gradientti on vakio, niin c 2 f:n eri arvoihin liittyvä tasa-arvo pinta on suora, mikä on kohtisuorassa gradienttia vastaan 3 Liikuta gradienttia vastaan kohtisuoraa suoraa siten, että se sivuaa käypää aluetta 4 Laske tarkka optimaalinen ( ) kulmapiste ( ) käyvän alueen reunojen leikkauspisteenä B 45 Esimerkissä piste on = Laske optimipisteeseen liittyvä optimiarvo C 75 4
Johdanto herkkyysanalyysiin Kuva : Esimerkki ratkaisusta Reaalimaailman LP-ongelmissa input-data muuttuu usein ajan funktiona Edellisen esimerkin tapauksessa kausivaihtelut voivat aiheuttaa eri tyyppisten lasien kysynnässä muutoksia ja sitä myötä tarvetta muuttaa valmistusresursseja tai hinnoittelua Tämän vuoksi oleellinen kysymys on usein: Miten optimi muuttuu kun ongelman input-arvoja muutetaan? Asian matemaattista tutkimista kutsutaan herkkyysanalyysiksi Se on LP analyysissä tärkeä osa-alue ja siihen liittyy läheisesti ns duaalitehtävä Lähestytään sitä ns marginaalihinnan kautta 2 Optimiarvon funktio ja marginaalihinta Tarkastellaan resurssien vaihtelun vaikutusta sekä optimiratkaisuun että optimiarvoon Jotta voitaisiin tarkastella muutoksen vaikutusta niin todetaan, että optimaalinen ratkaisu löytyy käyvän alueen kulmapisteestä (todistetaan myöhemmin) Kun rajoitetta muutetaan, niin rajoitesuora liikkuu rajoitteen normaalia vastaan kortisuorassa, ts ainakin pienillä muutoksilla voisi olettaa optimipisteen säilyvän samana Tämä päättely johtaa otaksumaan, että LP-tehtävän 5
v(ɛ, ɛ 2 ) = max 25B + 20C 20B + 2C 800 + ɛ 5 B + 5 C 8 + ɛ 2 B, C 0 on suorien 20B + 2C = 800 + ɛ ja B + C = 8 + ɛ 5 5 2 leikkauspisteessä pienillä ɛ ja ɛ 2 arvoilla, ts B = 45 45 2 ɛ 2 + 8 ɛ C = 75 + 75 2 ɛ 2 8 ɛ, ja v(ɛ, ɛ 2 ) = 2625 + 375 2 ɛ 2 + 5 8 ɛ Havaitaan, että v(ɛ, ɛ 2 ) voidaan nyt tulkita muuttujien ɛ ja ɛ 2 funktiona ja että se on differentioituva pisteessä (ɛ, ɛ 2 ) = (0, 0), missä sen gradientti on [ ] 5/8 v(ɛ, ɛ 2 ) = 375/2 Lukuja 5 375 ja 8 ( ) kutsutaan vastaavasti materiaali- ja aikaresurssin marginaaliarvoiksi 2 ( ) B 45 pisteessä = ja niillä on seuraava tulkinta: C 75 Yksi yksikkö lisää materiaalia kasvattaa saatavaa voittoa 5 yksikköä ja yksi yksikkö 8 lisää työaikaa kasvattaa voittoa 375 yksikköä 2 Käyttämällä tätä tietoa voidaan vastata kysymykseen: Miten kannattaa muuttaa prosessin toimintarajoja? Jos esimerkiksi voimme ostaa lisää materiaaliresurssia, niin miten paljon meidän kannattaa siitä maksaa? Vastaus on resurssin marginaalihinta 5 8 (miksi?) Tai, jos mietimme kuinka paljon meidän kannattaa maksaa työntekijälle ylitunneista, niin marginaalihinta kertoo sen 3 Johdanto duaaliteoriaan Jos ajatellaan lasitehdasta mustana laatikkona siten, että johonkin hintaan hankittu resurssi virtaa sinne sisälle ja ulos tulee tuote, minkä arvo on toinen Niiden erotus on tehtaan voitto Markkinat pyrkivät vaikuttamaan lasitehtaan toimintaan siten, että se ei tekisi isoa voittoa, vaan voitto jäisi sille ja tehdas toimisi kannattavuusrajalla Markkinoilla on mahdollisuus vaikuttaa tähän määrittelemällä resurssien hinnat 6
(raaka-aine, työ, ) Koska tehdas tekee nyt voittoa, niin markkinoiden täytyy selvittää kuinka paljon ne voivat korottaa resurssien hintaa jotta tehtaan voitto menisi nollaan Se voidaan tehdä minimoimalla käytössä olevien resurssien arvo kun hinnankorotus pienentää tehtaan tuoton nollaan (tai negatiiviseksi) Jos merkitään materiaalin hinnankorotusta R:llä ja työn hinnankorotusta L:llä, niin tehtaan saama voitto olutlaseista tulee eliminoitua kun 20R + 5 L 25 ja voitto shamppanjalaseista eliminoituu, kun 2R + 5 L 20 Jotta markkinatasapaino säilyisi (tehdas ei ajaudu pois markkinoilta), niin markkinat määrittelevät hinnankorotukset R ja L siten, että tehtaan resurssien kokonaishinta minimoituu, mutta samanaikaisesti tehdas ei tee voittoa Ts, markkina valitsee korotukset R ja L ratkaisemalla ongelman: min 800R + 8L (D) 20R + 5 L 25 2R + 5 L 20 R, L 0 Tehtävää (D) kutsutaan tehtävän (P) duaalitehtäväksi Huomaa, että jos ( ) R käypä ratkaisu (P):lle ja on käypä ratkaisu (D):lle, niin L ( ) B C on 25B + 20C [20R + L]B + [2R + L]C 5 5 = R[20B + 2C] + L[ B + 5 800R + 8L 5 C] Siis, primääritehtävän (P) kustannusfunktion arvo sallitussa pisteessä on rajoitettu ylhäältä duaalitehtävän (D) sallitulla arvolla Vahva duaalilause sanoo, että jos jommalla kummalla tehtävistä on äärellinen kustannusfunktion optimiarvo, niin se on myös toisella ja arvot ovat samat Väitetään lisäksi, että (D):n ratkaisu on tehtävän (P) marginaaliarvot Ts, ( ) 5/8 on optimiratkaisu (D):lle 375/2 ( ) R L = 7
( R Tämä saadan osoitettua, osoittamalla ensin ratkaisun käypyys ja sitten, että kus- L) tannusfunktioiden optimiarvot optimipisteissä ovat samat Tarkistetaan käypyys: Tarkistetaan seuraavaksi optimaalisuus: 0 5 8, 0 375 2 20 5 8 + 5 375 2 25 2 5 8 + 5 375 2 20 25 45 + 20 75 = 2625 = 800 5 + 8 375 2 Tulos merkittävä ja hyvin käyttökelpoinen! Markinaaliarvoilla on nyt kolme eri tulkintaa Markinaaliarvot ovat primääritehtävän optimiarvofunktion (vs resurssi) osittaisderivaatat 2 Marginaaliarvo kertoo optimiarvon kasvun lisättyä resurssiyksikköä kohti 3 Markinaaliarvot ovat duaalitehtävän ratkaisu Lause (heikko duaalilause) Jos x R n on käypä ratkaisu (P):lle ja y R m on käypä ratkaisu (D):lle, niin c T x y T Ax b T y Siten, jos (P) on rajoittamaton, niin (D) on ei-käypä ja, jos (D) on rajoittamaton, niin (P) on ei-käypä Edelleen, jos c T x = b T ȳ, missä x on tehtävän (P) käypä ratkaisu ja ȳ on tehtävän (D) käypä ratkaisu, niin x ratkaisee tehtävän (P) ja ȳ ratkaisee tehtävän (D) Todistus Olkoon x R n ja y R m vastaavasti tehtävien (P) ja (D) käyvät ratkaisut Silloin 8
c T x = n c j x j j= n m ( a ij y i )x j m [koska, 0 x j ja c j a ij y i ] j= i= i= = y T Ax m n b i y i [koska, 0 y i ja a ij x j b i ] i= j= = b T y Siitä, että c T x = b T ȳ ja ( x, ȳ) on tehtäväparin ((P), (D)) käypä ratkaisu seuraa, että mille tahansa tehtäväparin ((P), (D)) käyvälle ratkaisulle (x, y) pätee: c T x b T ȳ = c T x b T y, ts x on (P):n ratkaisu (optimi) ja ȳ on (D):n ratkaisu 2 LP-tehtävän standardimuoto Lineaarisen optimoinnin perustehtävät voidaan esittää niin sanotussa standardimuodossa seuraavasti Olkoon n N, m N Etsi luvut x,, x n R siten, että annetuille reaaliluvuille a ij, (i =,, m; j =,, n), c,, c n ja b,, b m pätee: c x + c 2 x 2 + + c n x n = min! a x + a 2 x 2 + + a n x n = b () a m x + a m2 + + a mn x n = b m x 0, x 2 0,, x n 0 Merkinnöillä x A = (a ij ) R m n ; x = x n, c = c c n R n ; b = b b m R m 9
tehtävä () kirjoitetaan lyhyemmin c T x = min! Ax = b (2) x 0 Huomautus Maksimointitehtävä voidaan aina palauttaa minimointitehtäväksi, sillä c T x = max! c T x = min! Huomautus Merkintä x 0 tarkoittaa, että jokainen vektorin x komponenteista on ei-negatiivinen Huomautus Merkinnällä c T x tarkoitetaan vektorien c ja x piste- eli sisätuloa avaruudessa R n Eli vektori c R n tulkitaan n matriisiksi Käytännön tehtävät esiintyvät usein hieman erilaisissa muodoissa, jotka kuitenkin ovat helposti palautettavissa standardimuotoon Esimerkki 3 Tarkastellaan tehtävää, c x + c 2 x 2 + + c n x n = min! a x + a 2 x 2 + + a n x n b a m x + a m2 + + a mn x n b m x 0, x 2 0,, x n 0 Olkoon vektorit x, c, b ja matriisi A kuten yllä on esitetty Nyt kukin epäyhtälö a j x + + a jn x n b j { a j x + + a jn x n + y j = b j y j 0 Lisämuuttujia y,, y m kutsutaan vaje- eli slack-muuttujiksi ja niiden avulla yo tehtävä palautuu standardimuotoon siten, että missä c T x = min! Ã x = b x 0, a a 2 a n 0 0 a 2 a 22 a 2n 0 0 Ã = Rm (n+m), x, c R n+m a m a am2 a mn 0 0 0
Huomautus Vastaavalla tavalla voidaan rajoiteyhtälöt a j x + + a jn x n b j kirjoittaa ekvivalenttiin muotoon { a j x + + a jn x n z j = b j z j 0 Apumuuttujia z,, z m kutsutaan ylijäämä- eli surplus-muuttujiksi Määritelmä Tarkastellaan standardimuotoista tehtävää (2) Käytetään seuraavia nimityksiä x R n on ratkaisu, jos Ax = b, x R n on käypä ratkaisu (feasible solution), jos Ax = b ja x 0, x R n on optimaalinen käypä ratkaisu, jos x on käypä ratkaisu ja c T x c T x aina kun x on käypä ratkaisu, eli x minimoi kohdefunktion f(x) := c T x Siis optimointitehtävässä (2) etsitään optimaalista käypää ratkaisua Huomautus 2 Sama terminologia on käytössä myös tehtäville, joissa rajoitteet on esitetty toisenlaisessa muodossa Huomautus 3 Optimointitehtävä (2) ei ole välttämättä ratkeava (a) Joskus itse tehtävä saattaa olla ratkaisua, kuten ei-käypä (infeasible), jolloin sillä ei ole käypää max 5x + 4x 2 kun x + x 2 2 2x 2x 2 9 x, x 2 0, (b) tai optimointitehtävä voi olla myös rajoittamaton, ts sillä on käypiä ratkaisuita mv suurilla objektifunktion arvoilla, kuten max x 4x 2 kun 2x + x 2 x 2x 2 2 x, x 2 0