Malliratkaisut Demot 5, 2.2.25 Tehtävä : a) Tehtävä voidaan sieventää muotoon max 5x + 9x 2 + x 3 s. t. 2x +x 2 x 3 x 3 x 2 3 x 3 3 x,x 2,x 3 Tämä on tehtävän kanoninen muoto,n = 3 jam =. b) Otetaan käyttöön apumuuttujatx,x 5,x 6 jax 7, jolloin tehtävän standardimuodoksi saadaan max 5x + 9x 2 + x 3 s. t. 2x +x 2 x 3 +x = x +x 5 = 3 x 2 +x 6 = 3 x 3 +x 7 = 3 x,x 2,x 3,x,x 5,x 6,x 7 Nytn = 7 jam =. Tehtävä 2 Tarkastellaan optimointitehtävää max c T x s. t. Ax =b x. a) Väite. Optimointitehtävän sallittujen ratkaisujen joukkos :={x R n Ax = b,x } on konveksi. Todistus. Oletetaan, ettäx,x 2 S jaλ (, ), jolloinax =Ax 2 =b, missä x,x 2. Nyt ja A(λx + ( λ)x 2 ) =λax + ( λ)ax 2 =λb + ( λ)b =b }{{} λ }{{} x + ( λ) }{{} }{{} x 2 eliλx + ( λ)x 2 S. Tästä seuraa, että joukkos on konveksi.
b) Oletus. Optimointitehtävällä on yksikäsitteinen ratkaisu pisteessäx. Väite. Pistex on kärkipiste. Todistus. Tehdään vastaoletus, ettäx ei ole kärkipiste. Silloin on olemassax,x 2 S jaλ (, ) siten, ettäx x 2 jax =λx + ( λ)x 2. Oletuksen nojalla c T x >cx kaikillax S,x x. Nyt c T x =c T (λx + ( λ)x 2 ) =λc}{{} T x +( λ)c}{{} T x 2 <c T x <c T x <λc T x + ( λ)c T x =c T x. Syntyy ristiriita. Vastaoletus on siis väärin ja väite on oikein. Tehtävä 3 Simplex-algoritmissa käytetään merkintöjä B : ={i x i on kantamuuttuja} N : ={i x i ei ole kantamuuttuja}. Nytx =x +λ x, missä x on Simplex-suunta eli, i =j N x i =, i N,i j, missä puolestaan j on uusi kantamuuttuja. Lisäksi A x = ja askelpituus λ = min { } x i x i <,i B. ( ) x i Olkoon jälleens:={x R n Ax =b,x } optimointitehtävän sallittujen ratkaisujen joukko. Oletus. Pistex on edellisen tehtävän sallittu kantaratkaisu. Väite. Simplex-algoritmilla tuotettu uusi kärkipistex on sallittu. Todistus. Oletuksen nojallax SeliAx =b, x. Väitteen osoittamiseksi on näytettävä, ettäx S. Ensinnäkin Ax =A(x +λ x) =Ax }{{} b +λa x }{{} =b. = Toiseksi on vielä osoitettava, ettäx. Tarkastellaan ensin tapausta, jossa kyseessä on ei-kantamuuttuja. Silloin x = }{{} x + }{{} λ x ja x i kaikillai N, josta seuraax i kaikillai N. Tarkastellaan sitten tapausta, jossa kyseessä on kantamuuttuja. Silloinx i =x i +λ x i> kaikillai B, joilla x i. Josi B siten, että x i <, niinx i =x i + λ x i + x i x i x i =x i x i =. Tästä seuraa, ettäx S. 2 }{{} x }{{} i < ( )
Tehtävä Tarkastellaan standardimuotoisen lineaarisen optimointitehtävän Simplextaulukkoa x x 2 x 3 x maxc 8 5 b A 3 2 3 7 N N B B Taulukon mukaan kanta B ={3, }, josta seuraa 3x 3 +x = 7 x = = x 3 = 2 x =. Muuttujat, jotka eivät ole kannassa saavat arvon,x =x 2 =. Aloituspiste (eli ensimmäinen sallittu kantaratkaisu)x = (,, 2, ) T. Jos seuraavassa vaiheessax valitaan kantaan, niin x = x 2 =, jolloin suunta x = (,, x 3, x ) T. Ratkaistaan yhtälöparia x = A x 3 +2 +3 x 3 + x = = + + x 3 x = Saadaan siis suunta x = (,, 3, ) T. Jos taas valittaisiin muuttujax 2 kantaan, niin x = x 2 =, = x 3 = 3 x =, jolloin suunta x 2 = (,, x 3, x ) T. Ratkaistaan yhtälöpari A x 2 3 +2 +3 x 3 + x = = = + + x 3 x = x 3 = x =, Näin ollen, saadaan suunta x 2 = (,,, ) T. Lasketaan seuraavaksi redusoidut kustannukset näissä kahdessa suunnassa: c =c T x = (8, 5,, ) = 8 = > 3 c 2 =c T x = (8, 5,, ) = 5 + = < (parantava). (ei parantava, koska minimoidaan) 3
Jos kantaan valittaanx, niin suurin sallittu askelpituus { 2 λ = min 3 }, =. Tällöin muuttujax poistuu kannasta, ja seuraava kantaratkaisu on x =x +λ x = (,, 2, ) T + =( (,, 3, )T,, 5 ) T,. on Vastaavasti, jos uudeksi kantamuuttujaksi valitaanx 2, niin suurin sallittu askelpituus { 2 λ 2 = min = 2 (x 3 poistuu kannasta) } ja seuraava kantaratkaisu on x 2 =x +λ 2 x 2 = (,, 2, ) T + 2 (,,, ) T = (, 2,, 3) T. Kohdefunktion arvo aloituspisteessä on c T x = (8, 5,, ) 2 =. Jos kantaan valitaanx, niin kohdefunktion arvoksi tulee c T x = (8, 5,, ) 5 = 2. Valitsemalla kantaanx 2 saadaan kohdefunktion arvoksi c T 2 x 2 = (8, 5,, ) = 7. 3 Tehtävä 5 Valitaan päätösmuuttujiksi jolloin optimointitehtäväksi saadaan x = Mox (litraa) x 2 = Mux (litraa) max 3x + x 2 s. t. 7x + 3x 2 2 5x + x 2 7 x 2 3 x,x 2.
Simplex-algoritmia varten kirjoitetaan tehtävä ensin standardimuotoon. Kohdefunktio voidaan skaalata (jakamalla tuhannella). Otetaan käyttöön apumuuttujatx 3,x jax 5. max 3x + x 2 s. t. 7x + 3x 2 +x 3 = 2 5x + x 2 +x = 7 x 2 +x 5 = 3 x,x 2,x 3,x,x 5. Ratkaistaan tehtävä Simplex-algoritmilla ja laaditaan taulukko algoritmin vaiheista. x x 2 x 3 x x 5 maxc 3 b 7 3 2 A 5 7 3 t = N N B B B x 2 7 3 c T x = x : x 7 5 c = 3 x : x 2 3 c 2 = 2 7 3 ( 3) ( ) ( ) λ = 3 t = N B B B N x 3 5 5 c T x = 2 x : x 7 5 c = 3 x : x 5 3 c 2 = 5 5 ( 7) ( 5) λ = t = 2 B B B N N x 2 3 8 c T x = 5 x : x 5 7 5 c = 3 5 x : x 5 5 3 5 c 2 = 8 5 Vaiheessa t = 2 redusoidut kustannukset ovat negatiivisia molemmissa suunnissa. Koska kyseessä on maksimointitehtävä, kumpikaan suunta ei ole parantava. Eli lopetetaan algoritmi. Löydettiin maksimi, joka saavutetaan pisteessäx 2 = (, 3) T. Kohdefunktio saa arvon 5kJ. Kyseessä on globaali yksikäsitteinen maksimi. Kun rahaa on käytettävissä kaksinkertainen määrä, tehtävä muuttuu muotoon max 3x + x 2 s. t. 7x + 3x 2 +x 3 = 8 5x + x 2 +x = 7 x 2 +x 5 = 3 x,x 2,x 3,x,x 5. 5
Huomataan, että apumuuttujax 3 kuuluu kantaan. Rahaa vastaava epäyhtälö ei siis ole aktiivinen. Toisin sanoen, raha ei ole rajoittava tekijä, vaan rajoittavia ovat Muxin saatavuus sekä lisäaineelle annettu maksimimäärä. Näin ollen, tehtävän ratkaisu ei muutu, vaikka rahaa olisi käytettävissä enemmän. Simplex-algoritmilla laskettaessa käytettyjä aputuloksia: Vaihet = Valitsemalla kantaanx saadaan suunta x = (,, x 3, x, x 5 ) T, joka toteuttaa yhtälön (yhtälöryhmän) A x = 7 +3 + x 3 = A x = 5 + + x = = x 3 = 7, x = 5, x 5 = + x 5 = Yhtälöryhmän ratkaisu antaa suunnan x = (,, 7, 5, ) T. Redusoitu kustannus on tällöin c =c T x = (3,,,, ) 7 = 3. 5 Jos kantaan valitaanx 2, niin saadaan suunta joka toteuttaa yhtälöryhmän 7 +3 + x 3 = A x = 5 + + x = + x 5 = x = (,, x 3, x, x 5 ) T, = x 3 = 3, x =, x 5 = Ratkaisemisen jälkeen suunta x = (,, 3,, ) T. Redusoitu kustannus on tällöin c 2 =c T x = (3,,,, ) 3 = Valitaan kantaanx 2.λ 2 = min { 2, 7, } 3 ( 3) ( ) ( ) = 3 ja apumuuttujax5 poistuu kannasta. Seuraava kantaratkaisu on x =x +λ x = (,, 2, 7, 3) T + 3 (,, 3,, ) T = (, 3, 5, 5, ) T. Vaiheett=jat = 2 lasketaan samaan tapaan. Algoritmi päättyy, kun parantavia suuntia ei enää löydy. 6