Jälki- ja herkkyysanalyysi Tutkitaan eri kertoimien ja vakioiden arvoissa tapahtuvien muutosten vaikutusta optimiratkaisuun 1
Hinnat ja varjohinnat Objektifunktio c T x = Kerroin c j ilmoittaa, paljonko muuttujan x j muutos maksaa = Kertoimia c sanotaan hinnoiksi Optimissa c T x = u T b = Duaalimuuttuja u i ilmoittaa, paljonko vakion b i muutos maksaa = Duaalimuuttujia u sanotaan varjohinnoiksi 2
Esimerkki Maksimointitehtävä ja epäyhtälörajoitteet: max 4x 1 + 5x 2 + 9x 3 + 11x 4 kun x 1 + x 2 + x 3 + x 4 15 7x 1 + 5x 2 + 3x 3 + 2x 4 120 3x 1 + 5x 2 + 10x 3 + 15x 4 100 x 1, x 2, x 3, x 4 0 3
Muunnetaan maksimointi minimoinniksi ja epäyhtälörajoitteet yhtälörajoitteiksi: min 4x 1 5x 2 9x 3 11x 4 kun x 1 + x 2 + x 3 + x 4 + s 1 = 15 7x 1 + 5x 2 + 3x 3 + 2x 4 + s 2 = 120 3x 1 + 5x 2 + 10x 3 + 15x 4 + s 3 = 100 x 1, x 2, x 3, x 4, s 1, s 2, s 3 0 Nyt tehtävä on aloitusperusmuodossa, perusmuuttujina puutemuuttujat s 1, s 2 ja s 3 4
Aloitusperusmuodon simplex-taulukko: x 1 x 2 x 3 x 4 s 1 s 2 s 3 4 5 9 11 0 0 0 0 1 1 1 1 1 0 0 15 7 5 3 2 0 1 0 120 3 5 10 15 0 0 1 100 5
Optimaalinen simplex-taulukko: x 1 x 2 x 3 x 4 s 1 s 2 s 3 0 3/7 0 11/7 13/7 0 5/7 695/7 1 5/7 0 5/7 10/7 0 1/7 50/7 0 6/7 0 13/7 61/7 1 4/7 325/7 0 2/7 1 12/7 3/7 0 1/7 55/7 Ratkaisu:(x 1, x 2, x 3, x 4 ) = (50/7,0,55/7,0) ja (s 1, s 2, s 3 ) = (0,325/7,0) Minimointitehtävän objektifunktion arvo: 695/7 = alkuperäisen maksimointitehtävän objektifunktion arvo: 695/7 6
Muutos objektifunktion kertoimissa Muutos ei-perusmuuttujan kertoimessa: max 4x 1 + (5 + δ)x 2 + 9x 3 + 11x 4 kun x 1 + x 2 + x 3 + x 4 15 7x 1 + 5x 2 + 3x 3 + 2x 4 120 3x 1 + 5x 2 + 10x 3 + 15x 4 100 x 1, x 2, x 3, x 4 0 7
= Optimaalinen simplex-taulukko muuttuu muotoon: x 1 x 2 x 3 x 4 s 1 s 2 s 3 0 3 7 δ 0 11/7 13/7 0 5/7 695/7 1 5/7 0 5/7 10/7 0 1/7 50/7 0 6/7 0 13/7 61/7 1 4/7 325/7 0 2/7 1 12/7 3/7 0 1/7 55/7 = Ratkaisu pysyy optimaalisena, jos 3/7 δ 0 δ 3/7 8
Muutos perusmuuttujan kertoimessa: max (4 + δ)x 1 + 5x 2 + 9x 3 + 11x 4 kun x 1 + x 2 + x 3 + x 4 15 7x 1 + 5x 2 + 3x 3 + 2x 4 120 3x 1 + 5x 2 + 10x 3 + 15x 4 100 x 1, x 2, x 3, x 4 0 9
= Optimaalinen simplex-taulukko muuttuu muotoon: x 1 x 2 x 3 x 4 s 1 s 2 s 3 δ 3/7 0 11/7 13/7 0 5/7 695/7 1 5/7 0 5/7 10/7 0 1/7 50/7 0 6/7 0 13/7 61/7 1 4/7 325/7 0 2/7 1 12/7 3/7 0 1/7 55/7 Taulukko ei ole kuitenkaan perusmuodossa 10
Muunnetaan perusmuotoon: = δ 3/7 0 11/7 13/7 0 5/7 695/7 1 5/7 0 5/7 10/7 0 1/7 50/7 0 6/7 0 13/7 61/7 1 4/7 325/7 0 2/7 1 12/7 3/7 0 1/7 55/7 0 3 7 + 5 7 δ 0 11 7 7 5 δ 13 7 + 10 7 δ 0 5 7 1 7 δ 695 7 + 50 7 δ 1 5/7 0 5/7 10/7 0 1/7 50/7 0 6/7 0 13/7 61/7 1 4/7 325/7 0 2/7 1 12/7 3/7 0 1/7 55/7 11
= Ratkaisu pysyy optimaalisena, jos 3 7 + 5 7 δ 0 11 7 5 7 δ 0 3 5 δ 11 5 13 7 + 10 7 δ 0 5 7 1 7 δ 0 12
Muutos oikean puolen vakioissa Muutos rajoitteen oikean puolen vakiossa = Vaikutus optimaaliseen simplex-taulukkoon näkyy siitä sarakkeesta, josta löytyy kyseisen rajoiterivin perusmuuttuja aloitusperusmuodossa... 0... 0... 1... b 1 + δ... 0... b 2... 0... b 3 =... c j... z + c j δ... ā 1j... b 1 + ā 1j δ... ā 2j... b 2 + ā 2j δ... ā 3j... b 3 + ā 3j δ 13
Esimerkki: max 4x 1 + 5x 2 + 9x 3 + 11x 4 kun x 1 + x 2 + x 3 + x 4 15 7x 1 + 5x 2 + 3x 3 + 2x 4 120 + δ 3x 1 + 5x 2 + 10x 3 + 15x 4 100 x 1, x 2, x 3, x 4 0 14
= Aloitusperusmuodon simplex-taulukko: 4 5 9 11 0 0 0 0 1 1 1 1 1 0 0 15 7 5 3 2 0 1 0 120 + δ 3 5 10 15 0 0 1 100 = Optimaalinen simplex-taulukko: 0 3/7 0 11/7 13/7 0 5/7 695/7 1 5/7 0 5/7 10/7 0 1/7 50/7 0 6/7 0 13/7 61/7 1 4/7 325 7 + δ 0 2/7 1 12/7 3/7 0 1/7 55/7 15
= Ratkaisu pysyy sallittuna, jos 325/7 + δ 0 δ 325/7 16
Esimerkki: max 4x 1 + 5x 2 + 9x 3 + 11x 4 kun x 1 + x 2 + x 3 + x 4 15 + δ 7x 1 + 5x 2 + 3x 3 + 2x 4 120 3x 1 + 5x 2 + 10x 3 + 15x 4 100 x 1, x 2, x 3, x 4 0 17
= Aloitusperusmuodon simplex-taulukko: 4 5 9 11 0 0 0 0 1 1 1 1 1 0 0 15 + δ 7 5 3 2 0 1 0 120 3 5 10 15 0 0 1 100 = Optimaalinen simplex-taulukko: 0 3/7 0 11/7 13/7 0 5/7 1 5/7 0 5/7 10/7 0 1/7 0 6/7 0 13/7 61/7 1 4/7 0 2/7 1 12/7 3/7 0 1/7 695 7 + 13 7 δ 50 7 + 10 7 δ 325 7 61 7 δ 55 7 7 3 δ 18
= Ratkaisu pysyy sallittuna, jos 50 7 + 10 7 δ 0 325 7 61 7 δ 0 5 δ 325 61 55 7 3 7 δ 0 19
Duaalitehtävän ratkaiseminen Primaalin simplex-taulukko: c 1... c n z a 11... a 1n b 1... a m1... a mn b m Duaalin simplex-taulukko: b 1... b m z a 11... a m1 c 1... a 1n... a mn c n Duaaliteoria = Kun primaalin perusratkaisu saavuttaa optimaalisuuden, niin duaalitehtävän perusratkaisu saavuttaa samalla sallittavuuden 20
Primaalitehtävä: max c T x min ( c) T x kun Ax b kun Ax + Is = b x 0 x,s 0 Duaalitehtävä: min u T b max u T ( b) kun u T A c T kun u T A r T I = c T u 0 u,r 0 Duaaliteoria = Optimissa on: c T x + 0 T s = z + r T x + u T s 21
= Optimaalisessa simplex-taulukossa on: x 1... x n s 1... s m r 1... r n u 1... u m z Primaalin varsinaisten muuttujien suhteelliset hintakertoimet = duaalin ylijäämämuuttujien arvot optimissa Primaalin puutemuuttujien suhteelliset hintakertoimet = duaalimuuttujien arvot optimissa 22
Esimerkkitehtävän duaalitehtävä: min 15u 1 + 120u 2 + 100u 3 kun u 1 + 7u 2 + 3u 3 4 u 1 + 5u 2 + 5u 3 5 u 1 + 3u 2 + 10u 3 9 u 1 + 2u 2 + 15u 3 11 u 1, u 2, u 3 0 23
Primaalin optimaalinen simplex-taulukko: x 1 x 2 x 3 x 4 s 1 s 2 s 3 0 3/7 0 11/7 13/7 0 5/7 695/7 1 5/7 0 5/7 10/7 0 1/7 50/7 0 6/7 0 13/7 61/7 1 4/7 325/7 0 2/7 1 12/7 3/7 0 1/7 55/7 Duaalitehtävän ratkaisu: (u 1, u 2, u 3 ) = (13/7,0,5/7) Duaalin objektifunktion arvo optimissa: 695/7 Duaalin ylijäämämuuttujien arvot optimissa: (r 1, r 2, r 3, r 4 ) = (0,3/7,0,11/7) 24
Uuden muuttujan lisääminen Primaalin simplex-taulukko: c 1... c n c n+1 z a 11... a 1n a 1,n+1 b 1.... a m1... a mn a m,n+1 b m Duaalin simplex-taulukko: b 1... b m z a 11... a m1 c 1... a 1n... a mn c n a 1,n+1... a m,n+1 c n+1 Uusi muuttuja Uusi rajoite primaaliin duaaliin 25
Esimerkki: max 4x 1 + 5x 2 + 9x 3 + 11x 4 + c 5 x 5 kun x 1 + x 2 + x 3 + x 4 + x 5 15 7x 1 + 5x 2 + 3x 3 + 2x 4 + 4x 5 120 3x 1 + 5x 2 + 10x 3 + 15x 4 + 8x 5 100 x 1, x 2, x 3, x 4, x 5 0 Uusi duaalirajoite: u 1 + 4u 2 + 8u 3 c 5 26
Duaalirajoite on voimassa optimissa, jos 1 13 7 + 4 0 + 8 5 7 c 5 c 5 53 7 = Jos c 5 53/7, ratkaisu säilyy optimaalisena Jos c 5 > 53/7, ratkaisu ei ole enää optimaalinen 27
Muutos rajoitteen ei-perusmuuttujan kertoimissa Esimerkki: max 4x 1 + 5x 2 + 9x 3 + 11x 4 kun x 1 + x 2 + x 3 + x 4 15 7x 1 + 5x 2 + 3x 3 + 2x 4 120 3x 1 + 5x 2 + 10x 3 + (15 + δ)x 4 100 x 1, x 2, x 3, x 4 0 Vastaava duaalirajoite: u 1 + 2u 2 + (15 + δ)u 3 11 28
Duaalirajoite on voimassa optimissa, jos 1 13 7 + 2 0 + (15 + δ) 5 7 11 δ 11 5 = Jos δ 11/5, ratkaisu säilyy optimaalisena Jos δ < 11/5, ratkaisu ei ole enää optimaalinen [ Muutos rajoitteen perusmuuttujan kertoimissa on hankalampi tutkia ] 29
Uuden rajoitteen lisääminen Esimerkki: max 4x 1 + 5x 2 + 9x 3 + 11x 4 kun x 1 + x 2 + x 3 + x 4 15 7x 1 + 5x 2 + 3x 3 + 2x 4 120 3x 1 + 5x 2 + 10x 3 + 15x 4 100 a 41 x 1 + a 42 x 2 + a 43 x 3 + a 44 x 4 b 4 x 1, x 2, x 3, x 4 0 Uusi rajoite on voimassa optimissa, eli ratkaisu säilyy optimaalisena, jos a 41 50 7 + a 42 0 + a 43 55 7 + a 44 0 b 4 30
Parametrinen optimointi Parametrisoidaan tehtävän kertoimia ja/tai vakioita, ja ratkaistaan tehtävä parametrisoidussa muodossa 31
Esimerkki Regular Super Luxus Resurssit Puutyöpv 0.5 2 1 24 Metallityöpv 1 2 4 60 Tuotto 6 14 13 max 6x 1 + 14x 2 + 13x 3 kun 0.5x 1 + 2x 2 + x 3 24 x 1 + 2x 2 + 4x 3 60 x 1, x 2, x 3 0 32
Muutetaan maksimointi minimoinniksi, lisätään puutemuuttujat, ja parametrisoidaan oikean puolen vakiot: min 6x 1 14x 2 13x 3 kun 0.5x 1 + 2x 2 + x 3 + s 1 = 24 + t x 1 + 2x 2 + 4x 3 + s 2 = 60 t x 1, x 2, x 3, s 1, s 2 0 33
Aloitusperusmuodon simplex-taulukko: x 1 x 2 x 3 s 1 s 2 6 14 13 0 0 0 1/2 2 1 1 0 24 + t 1 2 4 0 1 60 t Tehdään simplex-iteraatiot, kun t = 0, mutta pidetään t mukana kaikissa muunnoksissa 34
Optimaalinen simplex-taulukko (kun t = 0): x 1 x 2 x 3 s 1 s 2 0 9 0 11 1/2 294 + 21 2 t 1 6 0 4 1 36 + 5t 0 1 1 1 1/2 6 3 2 t Ratkaisu pysyy sallittuna, jos 36 + 5t 0 6 3 2 t 0 36 5 t 4 35
Jos t < 36/5, täytyy x 1 poistaa perusmuuttujien joukosta Jos t > 4, täytyy x 3 poistaa perusmuuttujien joukosta Uusi perusmuuttuja valitaan siten, että ratkaisu säilyy optimaalisena = Tarvitaan duaali-simplex-iteraatio 36
Duaali-simplex-algoritmi Duaalitehtävän simplex-algoritmin mukaiset iteraatiot, jotka kuitenkin toteutetaan primaalitehtävän simplex-taulukossa Primaalin simplex-taulukko: c 1... c n z a 11... a 1n b 1... a m1... a mn b m Duaalin simplex-taulukko: b 1... b m z a 11... a m1 c 1... a 1n... a mn c n 37
Primaali-simplex ( tavallinen simplex): Pivot-rivi p valitaan siten, että missä q on pivot-sarake b p = min a pq j { bj a jq a jq > 0 } Perusratkaisut ovat sallittuja, mutta eivät välttämättä optimaalisia 38
Duaali-simplex: Pivot-sarake p valitaan siten, että missä q on pivot-rivi c p = min a qp j { cj a qj a qj < 0 } Perusratkaisut ovat optimaalisia, mutta eivät välttämättä sallittuja 39
Esimerkki jatkuu Optimaalinen simplex-taulukko (kun t = 0): x 1 x 2 x 3 s 1 s 2 0 9 0 11 1/2 294 + 21 2 t 1 6 0 4 1 36 + 5t 0 1 1 1 1/2 6 3 2 t Ratkaisu pysyy sallittuna, jos 36/5 t 4 40
Jos t < 36/5, niin 36 + 5t < 0 = 0 9 0 11 1/2 294 + 21 2 t 1 6 0 4 1 36 + 5t 0 1 1 1 1/2 6 3 2 t = 1/2 12 0 13 0 312 + 13t 1 6 0 4 1 36 5t 1/2 2 1 1 0 24 + t Ratkaisu pysyy sallittuna, jos 24 t 36/5 41
Jos t < 24, niin 24 + t < 0 = 1/2 12 0 13 0 312 + 13t 1 6 0 4 1 36 5t 1/2 2 1 1 0 24 + t Toisella rajoiterivillä kaikki a ij :t ovat ei-negatiivisia = Ei saada pivot-alkiota = Ei ole olemassa sallittuja ratkaisuja 42
Optimaalinen simplex-taulukko (kun t = 0): x 1 x 2 x 3 s 1 s 2 0 9 0 11 1/2 294 + 21 2 t 1 6 0 4 1 36 + 5t 0 1 1 1 1/2 6 3 2 t Ratkaisu pysyy sallittuna, jos 36/5 t 4 43
Jos t > 4, niin 6 3 2 t < 0 = 0 9 0 11 1/2 294 + 21 2 t 1 6 0 4 1 36 + 5t 0 1 1 1 1/2 6 3 2 t = 0 0 9 2 5 348 3t 1 0 6 2 2 72 4t 0 1 1 1 1/2 6 + 3 2 t Ratkaisu pysyy sallittuna, jos 4 t 18 44
Jos t > 18, niin 72 4t < 0 = 0 0 9 2 5 348 3t 1 0 6 2 2 72 4t 0 1 1 1 1/2 6 + 3 2 t = 1 0 15 0 7 420 7t 1/2 0 3 1 1 36 + 2t 1/2 1 2 0 1/2 30 1 2 t Ratkaisu pysyy sallittuna, jos 18 t 60 45
Jos t > 60, niin 30 2 1 t < 0 = 1 0 15 0 7 420 7t 1/2 0 3 1 1 36 + 2t 1/2 1 2 0 1/2 30 1 2 t Toisella rajoiterivillä kaikki a ij :t ovat ei-negatiivisia = Ei saada pivot-alkiota = Ei ole olemassa sallittuja ratkaisuja 46