Lineaarinen optimointi Harjoitus 6-7, 016. 1. Olkoon A R m n, x, c R ja b R m. Osoita, että LP-tehtävän c T x = min! (T) Ax b x 0 duaalitehtävän duaali on tehtävä (T). Ratkaisu. (P) c T x = min! Ax b x 0 A R m n x, c R n b R m Väite: Tehtävän (P) duaalin duaali on (P). Duaalitehtävä on muotoa (D) λ T b = max! λ T A c T λ 0 λ T ( b) = min! λ T ( A) c T λ 0 λ R m λ T b = min! λ T Ã c T λ 0 Tässä λ T b = bt λ ja λ T Ã c T ÃT λ c. Siis bt λ = min! (D) Ã T λ c λ R m λ 0 Tämän tehtävän duaali on: x T c = max! x T Ã T b T x 0 c T x = min! Ax b x 0. Määrää tehtävän 900x 1 + 1600x = min! x 1 + x 5 x 1 + 3x 9 duaalin ratkaisu simplex-taulukon avulla.
Ratkaisu. Muodostetaan simplex taulukko: A 1 A A 3 A 4 b 1 1 0 5 3 0 1 9 r T : 900 1600 0 0 0 Kanta vastaa duaalisallittua ratkaisua, koska c j z j > 0, joten valitaan (x B ) i < 0 ja poistetaan sitä vastaava muuttuja kannasta. Valitaan esim. i =. Laketaan min{ z j c j y j } = 450 j = 1. Tukialkio on y,1. Suoritetaan taulukon päivitys, saadaan: 0 1 1 1 1 3 1 0 1 9 0 50 0 450 4050 Seuraava tukialkio on y 1 = 1. Päivitetään taulukko, saadaan: 0 1 1 1 1 0 3 3 0 0 500 00 4300 Tehtävän duaalin ratkaisu on (-500,-00) ja tehtävän ratkaisu on x = (3, 1). Kustannusfunktion optimiarvo on 4300 molemmille tehtäville. 3. Ratkaise tehtävä duaalisella simplex-menetelmällä. 7x 1 + 7x x 3 x 4 6x 5 = min! 3x 1 x + x 3 x 4 = 3 x 1 + x + x 4 + x 5 = 4 x 1 + 3x 3x 4 + x 6 = 1 x i 0 i = 1,..., 6 Ratkaisu. Kirjoitetaan tehtävä simplex-taulukon muotoon: A 1 A A 3 A 4 A 5 A 6 b 3 1 1 0 0 3 1 0 1 1 0 4 1 3 0 3 0 1 1 r T : 7 7 1 6 0 0
Modostetaan kanta vektoreista {A 3, A 5, A 6 }, ts. kerrotaan 1.rivi :lla ja summataan viimeisseen ja kerrotaan.rivi 6:lla ja summataan viimeiseen. Saadaan 3 1 1 0 0 3 1 0 1 1 0 4 1 3 0 3 0 1 1 11 11 0 1 0 0 18 Kanta vastaa nyt duaalisallittua ratkaisua, koska kaikki c j z j > 0 mutta x B ei ole sallittu. Valitaan jokin (x B ) i < 0 poistettavaksi kannasta (tässä tapauksessa i=1). Tukialkio löytyy laskemalla suhteet z j c j y 1j, y 1j < 0 ja valitsemalla minimiä vastaava indeksi (ts. valitaan min{ 11, 1 }). Tukialkio on y 1 14. Päivitetään taulukko, saadaan: 3 7 11 5 1 1 9 1 1 1 3 1 1 0 0 0 1 0 0 0 1 0 0 0 3 5 33 33 Ratkaisu x = (x 1, x, x 3, x 4, x 5, x 6 ) = (0, 0, 0, 3, 5, 33 ). Kustannusfunktion optimiarvo on 33. 4. Ratkaise dual-simplex menetelmällä (taulukko) tehtävät: (a) (b) minimoi x 1 + x + x 4 + x 5 rajoittein x 1 x + x 3 x 4 x 5 = 8 x 1 + x + 6x 4 + x 5 + x 6 = 10 ja x i 0. minimoi x 1 + x rajoittein x 1 + x + x 3 = 1 x 1 x ja x i 0. + x 4 = Ratkaisu. (a) A 1 A A 3 A 4 A 5 A 6 b 1 1 1 0 8 1 0 6 1 1 10 r T : 1 1 0 1 1 0 0
Nyt kanta {x 3, x 6 } on duaalisallittu, mutta ei käypä. Poistamme muuttujan x 3 = 8 kannasta ja tuomme tilalle muuttujan x 1. A 1 A A 3 A 4 A 5 A 6 b 1 0.5 0.5 0.5 1 0 4.0 0 1.5 0.5 5.5 0.0 1 6.0 r T : 0 0.5 0.5 0.5 0.0 0.0 4.0 Tehtävän ratkaisu on x = (4, 0, 0, 0, 0, 6) ja kustannusfunktion arvo on 4. (b) A 1 A A 3 A 4 b 1 1 1 0 1 1 1 0 1 r T : 1 0 0 0 Nyt kanta {x 3, x 4 } on duaalisallittu, mutta ei käypä. Poistamme muuttujan x 4 = kannasta ja tuomme tilalle muuttujan x 1. A 1 A A 3 A 4 b 0 0 1 1 1 1 1 0 1 r T : 0 1 0 1 Tehtävän käypä joukko on tyhjä, koska kaikki y 1,j > 0, j = 1,..., 4. 5. Öljynjalostamo käyttää kevyttä ja raskasta raakaöljyä. Kevyt raakaöljy maksaa $55/tynnyri ja raskas raakaöljy $50/tynnyri. Jalostamo tuottaa raakaöljyistä bensiiniä, kevyttä polttoöljyä ja lentobensiiniä allaolevan taulukon ilmoittamat määrät per raakaöljytynnyri: Bensiini Kevyt polttoöljy Lentobensiini Kevyt raakaöljy 0,3 0, 0,3 Raskas raakaöljy 0,3 0,4 0, Jalostamo on sopinut toimittavansa 900000 tynnyriä bensiiniä, 800000 tynnyriä kevyttä polttoöljyä ja 500000 tynnyriä lentobensiiniä. (a) Kuinka monta tynnyriä kevyttä ja raskasta raakaöljyä jalostamon on hankittava, jotta se täyttää sopimuksensa minimikustannuksin? (b) Anna (a)-kohdan ongelma standardimuodossa sekä (a)-kohdan ongelmaa vastaava duaalitehtävä. Miten saisit duaaliratkaisun selville komplementaarisuuslauseen avulla. Ratkaisu. Taulukkomuoto:
K rö R rö milj. Be 0,3 0,3 0,9 Kpö 0, 0,4 0,8 LBe 0,3 0, 0,5 hinta 55 50 Saadaan LP tehtävä (x 1 =K-rö ja x = R-rö): rajoitteilla 55x 1 + 50x min! 0.3x 1 + 0.3x 0.9 0.x 1 + 0.4x 0.8 0.3x 1 + 0.x 0.5. Optimiratkaisu (piirrä kuva) on x 1 = 0, x = 3 ja optimiarvo on 150 e. Sama dual-simplex menetelmällä. Muokataan ensin standardimuotoon, saadaan: rajoitteilla 55x 1 + 50x min! 3x 1 3x + x 3 = 9 x 1 4x + x 4 = 8 3x 1 x + x 5 = 5 x 0 Saadaan matriisit 3 3 1 0 0 A = 4 0 1 0 = [A 1, A, A 3, A 4, A 5 ]. 3 = 0 1 Saadaan simplex-taulukko: b = ( 9, 8, 5) T, c T = (55, 50, 0, 0, 0) A 1 A A 3 A 4 A 5 b 3 3 1 0 0 9 4 0 1 0 8 3 3 0 0 1 50 r T : 55 50 0 0 0 0 Siirretään x 4 pois kannasta. Valitaan tukialkion sarake-indeksi siten, että se vastaa min{ 55/, 50/ 4}, ts. tukialkio on y, = 4.
Päivitetään taulukko: A 1 A A 3 A 4 A 5 b 3/ 0 1 3/4 0 3 1/ 1 0 1/4 0 0 0 1/ 1 1 r T : 30 0 0 50/4 0 100 Siirretään x 3 = 3 pois kannasta. Siirretään x 4 kantaan, tukialkio on y 1,4 = 3/4. Päivitetään taulukko: A 1 A A 3 A 4 A 5 b 0 4/3 1 0 4 1 1 1/3 0 0 3 1 0 /3 0 1 1 r T : 0 3 0 4 1 150 kanta-alkiot ovat positiivisia joten käypä kantaratkaisu x = (0, 3, 0, 4, 1) ja kustannusfunktion minimiksi tulee c T x = 50 3000000 = 150milj. Tehtävän duaali on: rajoitteilla 0.9λ 1 0.8λ 0.5λ 3 max! 0.3λ 1 0.λ 0.3λ 3 55 0.3λ 1 0.4λ 0.λ 3 50 λ R 3. LP voidaan ratkaista dual-simplex menetelmällä. CS-lause 1.5 sanoo seuraavaa: koska primäärin ratkaisussa x > 0, niin vastaava rajoite duaalissa on yhtälö. Lisäksi, koska primäärin toisessa ja kolmannessa rajoitteessa on pelivaraa niin λ = 0, λ 3 = 0. Saadaan: 0.3λ 1 = 50 Saadaan (λ 1, λ, λ 3 ) = ( 50/0.3, 0, 0). Duaalin kustannusfunkrion arvo on 150. Piste toteuttaa duaalin rajoitteet. 6. Ratkaise LP-tehtävän max x 1 + 4x + 3x 3 + x 4 rajoittein 3x 1 + x + x 3 + 4x 4 1 ja x 0. x 1 3x + x 3 + 3x 4 7 x 1 + x + 3x 3 x 4 10 duaaliratkaisu käyttämällä hyväksi pelivaran komplementtiperiaatetta. Tiedetään, että LP-tehtävän ratkaisu on z = 4, x 1 = 0; x = 10.4; x 3 = 0; x 4 = 0.4. Käytä tätä tietoa ja pelivaran kmplementaarisuutta duaalitehtävän ratkaisemiseksi.
Ratkaisu. Kirjoitetaan ensin tehtävän duaalimuoto: min 1y 1 + 7y + 10y 3 rajoittein 3y 1 + y + y 3 ja y 0. y 1 3y + y 3 4 y 1 + y + 3y 3 3 4y 1 + 3y y 3 1 CS-ehtojen avulla duaalin ratkaiseminen kulminoituu yhtälöryhmän ratkaisemiseksi, missä on yhtä monta tuntematonta ja yhtälöä. Yhtälöt ovat niitä, mitkä vataavat positiivisia primäärimuuttujia. Esimerkissä x ja x 4 ovat positiivisia, mikä tarkoittaa CS-ehtojen nojalla, että duaalissa yhtälöt ja 4 toteutuvat yhtäsuuruuksina, siis: y 1 3y + y 3 = 4 4y 1 + 3y y 3 = 1 Lisäksi tiedetään, että jos primääri rajoite ei ole sidottu, niin vastaava duaalimuuttuja on nolla. Primääritehtävän toinen rajoite ei ole sidottu, joten y = 0, ts. y 1 + y 3 = 4 4y 1 y 3 = 1 Saadaan y 1 = 1 ja y 3 = 3. Vektori y = (1, 0, 3) on käypä duaalille ja duaalifunktion arvo pisteessä on 4 (niinkuin pitääkin). 7. Käytä pelivaran komplementaarisuutta tarkistaaksesi, voiko piste (1, 4) olla LPtehtävän max x 1 x rajoittein x 1 + x x 1 x x 1 + x 5 ja x 0. optimiratkaisu. Tarkista samanlaisella päättelyllä, että voisiko piste (4, 1) olla LP-tehtävän ratkaisu. Ratkaisu. Tehtävän duaali on: min y 1 + y + 5y 3 rajoittein y 1 + y + y 3 1 ja y 0. y 1 y + y 3 1
Tarkistetaan ensin pisteen (1, 4) käypyys primääritehtävälle. Mikäli se ei ole käypä ei se ole myöskään ratkaisu. Positiivisuusehto toteutuu ja resurssiehdoista ensimmäinen ja kolmas toteutuvat yhtälöinä ja toinen ehto ei ole sidottu. Jos piste (1, 4) on optimiratkaisu primäärille ja sen komponentit ovat positiivisa niin duaalitehtävän molemmat rajoitteet ovat sidottuja duaalitehtävän optimiratkaisulle. Lisäksi primäärin toisella rajoitteella on pelivaraa, joten y = 0. Saadaan yhtälöryhmä: y 1 + y 3 = 1 y 1 + y 3 = 1 Saadaan y = (, 0, 1 ) olisi duaalin ratkaisu. Tämä ei ole kuitenkaan käypä ratkaisu duaalitehtävälle (negatiivisia lukuja), joten piste (1, 4) ei ole primääritehtävän 3 3 optimiratkaisu. Samanlaisella päättelyllä nähdää, että piste (4, 1) on primääritehtävän optimiratkaisu. Duaalin ratkaisu on y = (0,, 1 ). Optimiarvo on 3 molemmille tehtäville. 3 3 8. Tutki geometrisesti KKT-lauseen nojalla mikä ääripiste on optimi tehtävälle: (1) () (3) (4) x 1 + 3x min!, x 1 x 4, x 1 x 4, x 1, x 0 Kuva 1: KKT-ehtojen geometrinen toteaminen Ratkaisu: Kustannusfunktion ja rajoitteiden gradientit ovat: c = ( 1, 3), a 1 = (1, ), a = 1, 1), e 1 = (1, 0), e = (0, 1) Tarkastellaan ääripisteitä:
(a) Pisteessä (0, 0) kustannusfunktion gradientti c ei sisälly sidottujen rajotteiden gradientiien määräämään kartioon. Piste ei ole optimi. (b) Sama tilanne pisteessä (0, ). (c) Sama tilanne pisteessä (0, 4). (d) Pisteessä ( 4, 8 ) sisältyy c sidottujen rajoitteiden gradienttien määräämään 3 3 kartioon, joten piste on optimi. 9. Osoita että, jos luentojen Primal-Dual Algoritmin Askel 3:ssa u 0 A j 0, j, niin primääritehtävällä ei ole käypää ratkaisua. Ratkaisu: Vektori λ ε = λ 0 + εu 0 on duaalikäypä kaikille ε > 0, koska u 0 A 0. Lisäksi λ ε b = λ 0 b + εu 0 b ja, koska u 0 b = 1y > 0, niin kasvattamalla ε:n arvoa duaalitehtävän kustannusfunktion arvo lähestyy ääretöntä. Duaalisuuslauseen nojalla tästä seuraa, että primääritehtävällä ei ole käypää ratkaisua. 10. Osoita että, jos luentojen Primal-Dual Algoritmin Askel 3:ssa on olemassa ainakin yksi indeksi j siten, että u 0 A j > 0, niin Algoritmin kavoilla (6.6), (6.7) annettu ratkaisu on duaalikäypä ja duaalitehtävän optimiarvo kasvaa. Ratkaisu: Koska u 0 on rajoitetun duaalitehtävän (6.5) ratkaisu, niin u 0 A j 0, i P ja on olemassa ε > 0 siten, että vektori λ ε = λ 0 + εu 0 on duaalikäypä. Kasvatetaan ε:a kaavassa (6.7) kunnes epäyhtälöstä λ ε A j < c j, j / P tulee yhtälö (yhtäsuuruus). Näin määräytyy ε 0 ja indeksi k. Uudelle vektorille λ saadaan λb = λ 0 b + ε 0 u 0 b, joten duaalin objektiarvo kasvaa (u 0 b > 0). 11. Olkoon x ja y duaaliparin käyvät ratkaisut. Osoita, että ratkaisut x ja y ovat optimaalisia duaaliparille jos ja vain jos (5) (6) (A T y c) j x j = 0 j (Ax b) i y i = 0 i Ratkaisu: Koska x ja y käypiä, niin (7) c T x (y T A)x y T b. Duaaliteoreeman nojalla, x, y optimaalisia c T x = b T y c T x = y T Ax = b T y ( kaava (7)) (y T A c T )x = 0 ja y T (Ax b) = 0 n m (A T y c T ) j x j = 0 ja (Ax b) i y i = 0 j=1 (5) ja (6), koska summan n j=1 (AT y c T ) j x j termit ovat ei-negatiivisia ja summan m i=1 (Ax b) iy i termit ovat ei-positiivisia. 1. Olkoon luentojen symmetrisessä tehtäväparissa (5.1) & (5.) ( ) ( ) 4 1 4 0 1 A =, b =, c = 1. 3 1 1 3 3 i=1
(a) Tarkastele dualisuuden avulla, onko piste x = (0, 1, 13 ) perustehtävän optimi? 4 4 (b) Ratkaise perustehtävä duaalitehtävän avulla Ratkaisu: (a) Piste x = (0, 1, 13 ) on käypä piste. Jos se on optimaalinen, niin sen tulisi 4 4 toteuttaa komplementaarisuusehdot: x > 0 (y T A) = c, x 3 > 0 (y T A) 3 = c 3, 4y 1 + y = 1 0y 1 y = 3, mistä saadaan y = (y 1, y ) = (1, 3). Jäljelle jäävä duaalirajoite y 1 3y 4 toteutuu myös, joten piste (1, 3) on käypä duaalille. Nyt, molemmat x ja y ovat käypiä ja toteuttavat komplementaarisuusehdon, joten ne ovat optimipisteitä. Vaihtoehtoisesti voidaan todeta, että x ja y ovat käypiä ja c T x = 10 = b T y, joten ne ovat optimipisteitä. (b) Ratkaistaan ensin duaalitehtävä graafisesti (kuva). Kuva : Käypä joukko Sen optimi ratkaisu on y = (1, 3), joten (komplementaarisuus): y 1 > 0 (Ax) 1 = b 1, x 1 4x = 1 y > 0 (Ax) = b, = 3x 1 x + x 3 = 3 y 1 3y < 4, (y T A) 1 < c 1 x 1 = 0, joten x = (0, 1, 13). 4 4 13. Ratkaise duaalitehtävän avulla 10x 1 + 10x + 0x 3 + 0x 4 max! rm rajoittein 1x 1 + 8x + 6x 3 + 4x 4 10 3x 1 + 6x + 1x 3 + 4x 4 10 x 1, x, x 3, x 4 0
Ratkaisu: Duaalitehtävä on 10y 1 + 10y min! rm rajoittein 13y 1 + 3y 10 8y 1 + 6y 10 6y 1 + 1y 0 4y 1 + 4y 0 y 1, y 0 Duaalin optimi on suorien (1) ja (3) leikkauspisteessä (kuva). Kuva 3: Käypä joukko Koska toisella ja kolmannella rajoitteella on pelivaraa optimissa, niin x = x 4 = 0. Lisäksi, koska y 1, y > 0, niin } 1x 1 + 6x 3 = 10 x 3x 1 + 1x 3 = 10 1 = 10, x 3 = 15. Ratkaisu on x = (10, 0, 15, 0).