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 x). Funktion arvo paloittain vakio. Pienillä askelilla ei parannusta! Ei-unimodaalinen imoinnin eikä maksimoinnin suhteen. Funktio on myös epäkonveksi ja epäkonkaavi. c) f(x) = cos x + ax, a > ja f (x) = sin x + a. 4 2 2 3 1 1 2 1 1 1 1 2 1 1 1 2 1 1 1 1 2 1 1 1 1 2 (a) a>1 (b) a=1 (c) a<1 Kuva 1: f(x) = cos x + ax, a > a > 1: Nyt f (x) > kaikilla x. Unimodaalinen sekä imoinnin että maksimoinnin suhteen. Ei konveksi eikä konkaavi. Ei ääriarvoja. (Konveksin funktion epigraafi on konveksi) < a < 1: Ei unimodaalinen imoinnin eikä maksimoinnin suhteen. Ei konveksi eikä konkaavi. a = 1: Nyt f (x) =, kun x = π/2. Kyseessä on satulapiste. Funktio ei kuitenkaan ole vakio tässä pisteessä eikä sen välittömässä läheisyydessä = pienikin askel tuottaa parannusta. Unimodaalinen sekä imoinnin että maksimoinnin suhteen. Ei konveksi eikä konkaavi. d) f(x) = x. Unimodaalinen maksimoinnin, mutta ei imoinnin suhteen. Epäkonveksi. e) f(x) = max {a, x 2 1 }, a > < a < 1: Ei unimodaalinen imoinnin eikä maksimoinnin suhteen. Epäkonveksi. a = 1 tai a 1: Unimodaalinen imoinnin suhteen, mutta ei maksimoinnin suhteen. Konveksi. 2. tehtävä Päätösmuuttujiksi voidaan valita x i : päivänä i aloittavien poliisien määrä (1:maanantai, 2:tiistai,...). Jos poliisi aloittaa töissä päivänä i, hän on töissä myös seuraavat 4 päivää. Minimoidaan poliisien kokonaismäärää eli sitä kuinka monta poliisia äkin päivänä aloittaa. Tällöin optimointitehtäväksi saadaan 1
x 1 +x 2 +x 3 +x 4 +x +x 6 +x 7 s. t. x 1 +x 4 +x +x 6 +x 7 6 x 1 +x 2 +x +x 6 +x 7 6 x 1 +x 2 +x 3 +x 6 +x 7 6 x 1 +x 2 +x 3 +x 4 +x 7 6 x 1 +x 2 +x 3 +x 4 +x 1 x 2 +x 3 +x 4 +x +x 6 1 x 3 +x 4 +x +x 6 +x 7 8 x i, i = 1,..., 7. x i {, 1, 2,...}, i = 1,..., 7. Ratkaisuksi saadaan x 1 = 1, x 2 = 2, x 3 = 2, x 4 = 2, x = 3, x 6 = 1 ja x 7 =. Lingossa muuttuja x voidaan pakottaa kokonaislukumuuttujaksi kirjoittamalla mallin sisään rivi @GIN(x);. Huom! ratkaisu ei ole yksikäsitteinen, mutta kohdefunktion arvoksi pitäisi saada 11. Jos poliisien ei oleteta olevan kokonaisia, ratkaisuksi saadaan x 1 =.67, x 2 = 2, x 3 = 2.67, x 4 = 2, x = 2.67, x 6 =.67 ja x 7 =. Pyöristettynä kokonaisiksi poliiseiksi siis x 1 = 1, x 2 = 2, x 3 = 3, x 4 = 2, x = 3, x 6 = 1 ja x 7 =, missä siis keskiviikkona työt aloittaa yksi poliisi enemmän kuin, jos tehtävä ratkaistaan kokonaislukumuuttujilla. 3. tehtävä Kolmea erilevyistä paperilaatua tarvitaan seuraavasti: paperin leveys (cm) tarvittava määrä (m) 3 2 4 4 62 3 Pituussuunnassa paperirullasta on mahdollista leikata paperia yhdeksällä eri tavalla. Valitaan päätösmuuttujat x i, missä i = 1,..., 9, jotka osoittavat kullakin tavalla leikattavan paperin määrän metreinä. Saadaan optimointitehtävä mahdolliset leikkaustavat hukkaan (cm) metriä 3 2 x 1 4 3 + 1 4 x 2 3 3 + 1 62 18 x 3 2 3 + 2 4 2 x 4 2 3 + 1 4 + 1 62 3 x 1 3 + 3 4 x 6 1 3 + 2 62 16 x 7 1 4 + 2 62 1 x 8 2 4 + 1 62 18 x 9 2x 1 + x 2 + 18x 3 + 2x 4 + 3x + x 6 + 16x 7 + x 8 + 18x 9 (hukkapalojen pinta-ala) s. t. x 1 + 4x 2 + 3x 3 + 2x 4 + 2x + x 6 + x 7 2 (3 cm) x 2 + 2x 4 + x + 3x 6 + x 8 + 2x 9 4 x 3 + x + 2x 7 + 2x 8 + x 9 3 (62 cm). (4 cm) Ratkaisemalla tehtävä numeerisesti LINGOlla ja LINDOlla havaitaan, ettei tehtävällä ole yksikäsitteistä ratkaisua. Kohdefunktion arvo on kuitenkin sama molemmilla 2
ohjelmilla ratkaistaessa. LINGO Optimiratkaisu on leikata 1 m tavalla x ja 3 m tavalla x 8. Saatavat paperimäärät ovat 2 1 = 2 m (3 cm levyistä), 1 + 3 = 4 m (4 cm levyistä) ja 3 2 + 1 1 = 7 m (62 cm levyistä). Hukkaan menee,3 1 +,1 3 = 6 m 2 paperia. LINDO ja CPLEX Optimiratkaisu on leikata m tavalla x 2 ja 3 m tavalla x 8. Saatavat paperimäärät ovat 4 = 2 m (3 cm levyistä), 1 + 3 1 = 4 m (4 cm levyistä) ja 3 2 = 7 m (62 cm levyistä). Hukkaan menee, +,1 3 = 6 m 2 paperia. 4. tehtävä Tarkastellaan ylimääriteltyä yhtälöryhmää x 2y = x + 4y = 8 x + y =. Kertoimien perusteella saadaan matriisi A ja vektori b seuraavasti: 1 2 A = 1 4 R 3 2 b = 8. 1 1 Yhtälöryhmä ratkaistaan imoimalla residuaalia Ax b = r, toisin sanoen kohdefunktiona on Ax b. a) Muodostetaan ensin optimointitehtävä 1 -normia käyttäen. Merkitsemällä seuraavassa x 1 = x ja x 2 = y saadaan x1 x 3 2 2 a ij x j b i = {}}{{}}{ x 2 y + + x + 4y 8 + x + y i=1 j=1 s. t. x, y R. b) Muodostetaan sitten optimointitehtävä -normia käyttäen seuraavasti: 2 max i=1,...,3 j=1 a ij x j b i = max{ x 2y +, x + 4y 8, x + y } s. t. x, y R. Tehtävien linearisoimiseksi otetaan käyttöön apumuuttujat s + i = itseisarvon i sisällä olevan lausekkeen positiiviosa, i = 1, 2, 3 s i = itseisarvon i sisällä olevan lausekkeen negatiiviosa, i = 1, 2, 3. 3
a) Normia 1 käyttäen laadittu tehtävä muuttuu näiden avulla muotoon s + 1 + s 1 + s + 2 + s 2 + s + 3 + s 3 s. t. x 2y + = s + 1 s 1 x + y = s + 3 s 3 s + i, s i, i = 1, 2, 3. Tehtävän numeeriseksi ratkaisuksi saadaan x = 2.4 y = 2.6 f = 2.2. b) Normia käyttäen laaditussa tehtävässä korvataan ensin itseisarvolausekkeet summilla, jolloin tehtävä saa muodon max {s + 1 + s 1, s + 2 + s 2, s + 3 + s 3 } s. t. x 2y + = s + 1 s 1 x + y = s + 3 s 3 s + i, s i, i = 1, 2, 3. Korvataan vielä kohdefunktion max-lauseke merkinnällä f ja lisätään uusi rajoite, jolloin tehtävä on linearisoitu muotoon f s. t. f s + i + s i, i = 1, 2, 3 x 2y + = s + 1 s 1 Tehtävän numeeriseksi ratkaisuksi saadaan x + y = s + 3 s 3 s + i, s i, i = 1, 2, 3. x = 1.3 y = 2.6 f = 1.1. tehtävä Valmisohjelmistolla voidaan ratkaista tehtävä c T x s. t. Ax b x, 4
missä x, c ja b R n ja A R m n. Muunnetaan tehtävä max 1x 1 + 2x 2 + 3x 3 + 4x 4 s. t. 4x 1 + 3x 2 + 2x 3 + x 4 8 x 1 + x 2 + x 3 + x 4 = x 1, x 2, x 4, x 3 R sellaiseksi, että sen voi ratkaista kyseisellä ohjelmistolla. Lisäksi määrätään luvut n ja m, vektorit c ja b sekä matriisi A. Yhtälörajoitteen perusteella nähdään, että x 3. Muutetaan ensin maksimointi imoinniksi kertomalla luvulla ( 1), jolloin saadaan 1x 1 2x 2 3x 3 4x 4. Käännetään sitten ensimmäisen rajoitteen epäyhtälö kertomalla luvulla ( 1), jolloin 4x 1 3x 2 2x 3 x 4 8. Yhtälörajoite voidaan korvata kahdella epäyhtälörajoitteella x 1 + 2x 2 + 3x 3 + 4x 4 x 1 2x 2 3x 3 4x 4. Lopuksi korvataan rajoittamaton muuttuja x 3 kahden ei-negatiivisen muuttujan erotuksella x 3 = x + 3 x 3, missä x + 3, x 3. Edellisten muutosten jälkeen optimointitehtävä saa muodon 1x 1 2x 2 3x + 3 + 3x 3 4x 4 s. t. 4x 1 3x 2 2x + 3 + 2x 3 x 4 8 x 1 + 2x 2 + 3x + 3 3x 3 + 4x 4 x 1 2x 2 3x + 3 + 3x 3 4x 4 x 1, x 2, x + 3, x 3, x 4. Merkitään sitten x = (x 1, x 2, x + 3, x 3, x 4 ) T, jolloin n = ja m = 3. Pyydetyt vektorit ja matriisi ovat nyt 1 2 8 4 3 2 2 1 c = 3, b =, A = 1 2 3 3 4. 3 1 2 3 3 4 4