3 Simplex-menetelmä. c T x = min! Ax = b (x R n ) (3.1) x 0. Tarvittaessa sarakkeiden järjestystä voidaan vaihtaa, joten voidaan oletetaan, että

Samankaltaiset tiedostot
4.5 Kaksivaiheinen menetelmä simplex algoritmin alustukseen

2 Konveksisuus ja ratkaisun olemassaolo

Lineaarinen optimointi. Harjoitus 6-7, Olkoon A R m n, x, c R ja b R m. Osoita, että LP-tehtävän. c T x = min!

Lineaarinen optimointitehtävä

1 Kertaus. Lineaarinen optimointitehtävä on muotoa:

4. Luennon sisältö. Lineaarisen optimointitehtävän ratkaiseminen Simplex-menetelmä

6. Luennon sisältö. Lineaarisen optimoinnin duaaliteoriaa

Mat Lineaarinen ohjelmointi

Malliratkaisut Demot

Mat Lineaarinen ohjelmointi

Simplex-algoritmi. T Informaatiotekniikan seminaari , Susanna Moisala

Demo 1: Simplex-menetelmä

Kannan vektorit siis virittävät aliavaruuden, ja lisäksi kanta on vapaa. Lauseesta 7.6 saadaan seuraava hyvin käyttökelpoinen tulos:

Piiri K 1 K 2 K 3 K 4 R R

Liittomatriisi. Liittomatriisi. Määritelmä 16 Olkoon A 2 M(n, n). Matriisin A liittomatriisi on cof A 2 M(n, n), missä. 1) i+j det A ij.

JYVÄSKYLÄN YLIOPISTO. 3. Luennon sisältö

Vapaus. Määritelmä. jos c 1 v 1 + c 2 v c k v k = 0 joillakin c 1,..., c k R, niin c 1 = 0, c 2 = 0,..., c k = 0.

Ennakkotehtävän ratkaisu

Yhtälöryhmä matriisimuodossa. MS-A0007 Matriisilaskenta. Tarkastellaan esimerkkinä lineaarista yhtälöparia. 2x1 x 2 = 1 x 1 + x 2 = 5.

Ratkaisuehdotukset LH 7 / vko 47

Käänteismatriisi 1 / 14

Kokonaislukuoptiomointi Leikkaustasomenetelmät

Lineaarisen kokonaislukuoptimointitehtävän ratkaiseminen

Mat Lineaarinen ohjelmointi

Yhtälöryhmä matriisimuodossa. MS-A0004/A0006 Matriisilaskenta. Tarkastellaan esimerkkinä lineaarista yhtälöparia. 2x1 x 2 = 1 x 1 + x 2 = 5.

Lineaarikombinaatio, lineaarinen riippuvuus/riippumattomuus

Matriisien tulo. Matriisit ja lineaarinen yhtälöryhmä

Malliratkaisut Demot

Jälki- ja herkkyysanalyysi. Tutkitaan eri kertoimien ja vakioiden arvoissa tapahtuvien muutosten vaikutusta optimiratkaisuun

Lineaarinen yhtälöryhmä

Gaussin ja Jordanin eliminointimenetelmä

Kuljetustehtävä. Materiaalia kuljetetaan m:stä lähtöpaikasta n:ään tarvepaikkaan. Kuljetuskustannukset lähtöpaikasta i tarvepaikkaan j ovat c ij

802118P Lineaarialgebra I (4 op)

Luento 3: Simplex-menetelmä

min x x2 2 x 1 + x 2 1 = 0 (1) 2x1 1, h = f = 4x 2 2x1 + v = 0 4x 2 + v = 0 min x x3 2 x1 = ± v/3 = ±a x 2 = ± v/3 = ±a, a > 0 0 6x 2

MS-C1340 Lineaarialgebra ja

8. Ensimmäisen käyvän kantaratkaisun haku

Ovatko seuraavat väittämät oikein vai väärin? Perustele vastauksesi.

7 Vapaus. 7.1 Vapauden määritelmä

2.5. Matriisin avaruudet ja tunnusluvut

Avaruuden R n aliavaruus

2.8. Kannanvaihto R n :ssä

MS-C1340 Lineaarialgebra ja

1 Johdanto LP tehtävän luonteen tarkastelua Johdanto herkkyysanalyysiin Optimiarvon funktio ja marginaalihinta

1 Rajoittamaton optimointi

MS-C1340 Lineaarialgebra ja differentiaaliyhtälöt

3 Lineaariset yhtälöryhmät ja Gaussin eliminointimenetelmä

Luento 4: Lineaarisen tehtävän duaali

Malliratkaisut Demot 6,

Johdatus verkkoteoriaan luento Netspace

Lineaarialgebra II, MATH.1240 Matti laaksonen, Lassi Lilleberg

6 Vektoriavaruus R n. 6.1 Lineaarikombinaatio

Duaalisuus kokonaislukuoptimoinnissa. Mat , Sovelletun matematiikan tutkijaseminaari, kevät 2008, Janne Karimäki

Optimaalisuusehdot. Yleinen minimointitehtävä (NLP): min f(x) kun g i (x) 0 h j (x) = 0

3 Lineaariset yhtälöryhmät ja Gaussin eliminointimenetelmä

MS-C1340 Lineaarialgebra ja differentiaaliyhtälöt

2.2 Gaussin eliminaatio. 2.2 Gaussin eliminaatio. 2.2 Gaussin eliminaatio. 2.2 Gaussin eliminaatio

Matematiikan tukikurssi, kurssikerta 3

Vektoreiden virittämä aliavaruus

Luento 9: Yhtälörajoitukset optimoinnissa

Matriisit, L20. Laskutoimitukset. Matriisikaavoja. Aiheet. Määritelmiä ja merkintöjä. Laskutoimitukset. Matriisikaavoja. Matriisin transpoosi

Vapaus. Määritelmä. Vektorijono ( v 1, v 2,..., v k ) on vapaa eli lineaarisesti riippumaton, jos seuraava ehto pätee:

Vektorien virittämä aliavaruus

Matriisit. Määritelmä 1 Reaaliluvuista a ij, missä i = 1,..., k ja j = 1,..., n, muodostettua kaaviota a 11 a 12 a 1n a 21 a 22 a 2n A =

Insinöörimatematiikka D

3.1 Lineaarikuvaukset. MS-A0004/A0006 Matriisilaskenta. 3.1 Lineaarikuvaukset. 3.1 Lineaarikuvaukset

A = a b B = c d. d e f. g h i determinantti on det(c) = a(ei fh) b(di fg) + c(dh eg). Matriisin determinanttia voi merkitä myös pystyviivojen avulla:

Määritelmä Olkoon T i L (V i, W i ), 1 i m. Yksikäsitteisen lineaarikuvauksen h L (V 1 V 2 V m, W 1 W 2 W m )

Insinöörimatematiikka D

Insinöörimatematiikka D

8 KANNAT JA ORTOGONAALISUUS. 8.1 Lineaarinen riippumattomuus. Vaasan yliopiston julkaisuja 151

Matemaattinen Analyysi, s2016, L2

Matriisit, kertausta. Laskutoimitukset. Matriisikaavoja. Aiheet. Määritelmiä ja merkintöjä. Laskutoimitukset. Matriisikaavoja. Matriisin transpoosi

b 1. b m ) + ( 2b Ax) + (b b)

Ominaisarvo ja ominaisvektori

Yhteenlaskun ja skalaarilla kertomisen ominaisuuksia

5 Lineaariset yhtälöryhmät

Lineaarikuvauksen R n R m matriisi

Lineaarinen optimointitehtävä

Johdatus tekoälyn taustalla olevaan matematiikkaan

Vapaus. Määritelmä. jos c 1 v 1 + c 2 v c k v k = 0 joillakin c 1,..., c k R, niin c 1 = 0, c 2 = 0,..., c k = 0.

Osittaistuenta Gaussin algoritmissa: Etsitään 1. sarakkeen itseisarvoltaan suurin alkio ja vaihdetaan tämä tukialkioiksi (eli ko. rivi 1. riviksi).

Matriisilaskenta (TFM) MS-A0001 Hakula/Vuojamo Ratkaisut, Viikko 47, 2017

Mat Lineaarinen ohjelmointi

BM20A0700, Matematiikka KoTiB2

Talousmatematiikan perusteet: Luento 12. Lineaarinen optimointitehtävä Graafinen ratkaisu Ratkaisu Excel Solverilla

LU-hajotelma. Esimerkki 1 Matriisi on yläkolmiomatriisi ja matriisi. on alakolmiomatriisi. 3 / 24

Kohdeyleisö: toisen vuoden teekkari

Kanta ja Kannan-vaihto

MS-A0003/A0005 Matriisilaskenta Laskuharjoitus 3 /

Matriisi-vektori-kertolasku, lineaariset yhtälöryhmät

Kanta ja dimensio 1 / 23

Insinöörimatematiikka D

JAKSO 2 KANTA JA KOORDINAATIT

Koodausteoria, Kesä 2014

Numeeriset menetelmät

Matriisilaskenta Luento 12: Vektoriavaruuden kannan olemassaolo

Insinöörimatematiikka D

Matriisit, L20. Laskutoimitukset. Matriisikaavoja. Aiheet. Määritelmiä ja merkintöjä. Laskutoimitukset. Matriisikaavoja. Matriisin transpoosi

Käänteismatriisin ominaisuuksia

Transkriptio:

3 Simplex-menetelmä Lähdetään jostakin annettuun LP-tehtävään liittyvästä käyvästä perusratkaisusta x (0) ja pyritään muodostamaan jono x (1), x (2),... käypiä perusratkaisuja siten, että eräässä vaiheessa päädyttäisiin optimaaliseen käypään perusratkaisuun. Olkoon A R m n, m < n, r(a) = m, x R n, c 0, b R m Oletetaan että on annettu standardimuotoinen tehtävä c T x = min! Ax = b (x R n ) (3.1) x 0 Tarvittaessa sarakkeiden järjestystä voidaan vaihtaa, joten voidaan oletetaan, että A = [B,N], B R m m, N R m (n m) missä B on säännöllinen ja vektorille x on esitys [ ] x 1 xb x =, x B =. x N Nyt yhtälö Ax = b saa muodon x m, x N = x m+1. x n. Bx B +Nx N = b. (3.2) 1 Simpleksimenetelmän aloitus Lähdetään hajotelman A = [B, N] liittyvästä käyvästä perusratkaisusta [ ] xb x =, x 0 B 0 (3.3) joka toteuttaa yhtälön Ax = b eli Nyt kohdefunktiolla on arvo Bx B = b (eli x B = B 1 b) (3.4) c 1 z = c T x = c T Bx B, c B =. c m. 28

2 Tutkitaan onko minimi löydetty ] [ˆxB Olkoon ˆx R n mielivaltainen käypä ratkaisu ˆx = ja c = ˆx N Kohdefunktiolle tulee ẑ := c Tˆx ] [ˆxB = [c T B,c T N] ˆx N [ cb c N ]. (3.5) = c T Bˆx B +c T Nˆx N Nyt Aˆx = Bˆx B Nˆx {}}{{}} N { m ˆx j A j = ˆx j A j + ˆx j A j j=1 j=1 Koska B on säännöllinen niin = Bˆx B +Nˆx N Aˆx = b Bˆx B +Nˆx N = b (3.4) = Bx B On siis saatu että Aˆx = b on yhtäpitävä yhtälölle Bˆx B +Nˆx N = Bx B eli ˆx B +B 1 Nˆx N = x B eli (3.6) ˆx B = x B B 1 Nˆx N, missä Tällöin saadaan Nˆx N = ˆx j A j (3.7) B 1 Nˆx N = ˆx j B 1 A j ˆx B = x B ˆx j B 1 A j (3.8) 29

Sijoittamalla 3.8 kohdefunktioon 3.5 ja asettamalla z j = c T B B 1 A j saadaan: ẑ = c Tˆx = c T Bˆx B +c T Nˆx N = c T B(x B ˆx j B 1 A j )+c T Nˆx N = c T Bx B = z = z ˆx j c T BB 1 A j +c T Nˆx N (3.9) ˆx j z j +c T Nˆx N ˆx j (z j c j ) Käyville ratkaisuille ˆx on ˆx j 0 kaikille j = 1,...,n. Koska ẑ = z niin x on minimi jos z j c j 0, j = m+1,...,n. ˆx j (z j c j ) (3.10) Huomattakoon että vektori c on annettu ja komponentit z j saadaan kaavasta z j = c T B B 1 A j joten z j c j on laskettavissa. Jos ehto z j c j 0 (m+1 j n) toteutuu, niin minimi on löytynyt: [ ] xb x =, x 0 B = B 1 b ja z = c T Bx B 3 Oletetaan, että x ei ole minimi. Tällöin simpleksimenetelmässä suoritetaan kannanvaihto jonka avulla pyritään löytämään uusi käypä perusratkaisu jolle kohdefunktio saa pienemmän arvon. Koska x ei ole minimi, niin on olemassa m + 1 j n siten, että z j c j > 0. Valitaan indeksi k, m+1 k n, siten, että 0 < z k c k = max{z j c j m+1 j n} (3.11) Käytetään kaavaa (3.8) ˆx B = x B ˆx j B 1 A j ja asetetaan ˆx j = 0, j k ja j = m+1,...,n. Tällöin tulee ˆx B = x B ˆx k B 1 A k 30

missä arvo ˆx k > 0 valitaan vielä sopivasti. Olkoon y k = B 1 A k, y k = y 1k. y mk Katsotaan nyt vektorin ˆx B R m komponentteja ja ˆx B = x B ˆx k y k (ˆx B ) i = (x B ) i ˆx k y ik 1 i m Jos y ik 0, niin (ˆx B ) i (x B ) i 0 Jos y ik > 0, niin (ˆx B ) i = 0 kun ˆx k = (x B) i y ik Oletetaan, että y ik > 0 ainakin yhdelle i. Valitaan ˆx k siten, että (ˆx B ) i = 0 ainakin yhdelle indeksille i. { } (xb ) i ˆx k := min y ik > 0 = (x B) r (eräälle r) 1 i m y ik y rk Olkoon x surkastumaton. Tällöin (ˆx B ) r = 0 ja ˆx k > 0. Vektori ˆx = [ˆx B,ˆx N ] T on annettu kaavoilla ˆx B : ˆx N : { (xb ) i y ik y rk (x B ) r 0, 1 i m, i r ˆx k = (x B) r y rk > 0, i = r { (ˆx B ) r = 0, j = k x j = 0, m+1 j n, j k (3.12) Osoitetaan, että kaavoilla (3.12) määritelty vektori ˆx = (ts. Aˆx = b, ˆx 0). Nyt ˆx B = x B ˆx k y k, missä y k = B 1 A k, joten ] [ˆxB ˆx N on käypä ratkaisu ˆx B = x B ˆx j B 1 A j (ˆx j = 0, m+1 j n, j k) ˆx B = B 1 b B 1 Nˆx N (Nˆx N = ] [ˆxB B 1 [B,N] = B 1 b ˆx N Aˆx = b 31 ˆx j A j )

Edelleen ˆx 0 ( kaava (3.12) ) ˆx on käypä ratkaisu. Osoitetaan, että ˆx on myös perusratkaisu. Ax = b m (x B ) i A i = b i=1 m (x B ) i A i +(x B ) r A r = b ( ) i=1 i r A k = By k = m y ik A i = y rk A r + i=1 A r = 1 y rk A k m i=1 i r Sijoitetaan ( ) kaavaan ( ) m i=1 i r y ik y rk A i ( (xb ) i y ik y rk (x B ) r }{{} (ˆx B ) i ( ) m y ik A i, y rk > 0 i=1 i r ) Ai + (x B) r A k = b y }{{ rk } ˆx k vektorijoukko {A i 1 i m, i r} {A k } on lineaarisesti riippumaton, joten ˆx on perusratkaisu. 3.1 Simplex algoritmi Indeksijoukot P, V (perusmuuttujat ja vapaat muuttujat) 1. Etsi käypä perusratkaisu x = [ ] xb, x 0 B = B 1 b = b z := c T x = c T Bx B. 2. Ratkaise yhtälö wb = c T B eli w = ct B B 1. Laske Valitse k siten, että z j c j = wa j c j, j V z k c k = max j V {z j c j } Jos z k c k 0, niin lopeta. Piste x on optimiratkaisu. 32

3. Ratkaise By k = A k eli y k = B 1 A k. Jos y k 0, niin lopeta: inf x X ct x =. 4. Muuttuja x k siirtyy perusmuuttujaksi ja muuttuja (x B ) r jättää kannan. Indeksi r määräytyy testistä (x B ) r {(x B ) i = min y ik > 0 } y rk i P y ik Päivitä matriisi B ja indeksijoukot P ja V. Mene kohtaan 1. Esimerkki 3.1. Ratkaistaan käyttämällä Simplex algoritmia 3.1. (4x 1 +3x 2 ) = min! 2x 1 +3x 2 18 4x 1 +2x 2 10 x 1,x 2 0. Ratkaisu: A = Tehtävän ratkaisu simpleksialgoritmilla: [ ] 2 3 1 0 = [a 4 2 0 1 1,a 2,a 3,a 4 ]. b = (18,10) T, c T = ( 4, 3,0,0) 1 P = {3,4}, V = {1,2} eli B = [a 3,a 4 ] = I x B = B 1 b = b = b (käypä perusratkaisu). 2 w = c T B B 1 = (0,0) B 1 = (0,0) z 1 c 1 = wa 1 c 1 = 4 z 2 c 2 = wa 2 c 2 = 3 max j=1,2 {z j c j } = 4, siis valitaan k = 1. 3 By 1 = a 1 y 1 = a 1 = [2,4] T. 4 Perusmuuttujaksi siirretään x 1. Lisäksi { b1 min, b } { 2 18 = min y 11 y 21 2, 10 } = 5 4 2 muuttuja (x B ) 2 = x 4 jättää kannan. 33

1 P = {1,3}, V = {2,4} eli B = [a 1,a 3 ] = [ ][ ] [ ] 0 1 18 5 x B = 1 = 4 4 2 10 1 = b. 2 26 2 w = c T B B 1 = ( 4,0) ( 1 4 ) [ 0 1 4 2 [ ] 2 1 B 4 0 1 = 1 4 ] = (0, 1) [ ] 3 z 2 c 2 = (0, 1) ( 3) = 1 2 [ ] 0 z 4 c 4 = (0, 1) 0 = 1 1 [ ] 0 1 4 2 ja max j=2,4 {z j c j } = 1, siis valitaan k = 2. [ ][ ] 0 1 3 3 y 2 = ( 1) = 4 4 2 2 1 2 [1,4]T. 4 Perusmuuttujaksi siirretään x 2. Lisäksi muuttuja (x B ) 1 = x 1 jättää kannan. { 5/2 min 1/2, 13 } = 5 2 1 P = {2,3}, V = {1,4} eli B = [a 2,a 3 ] = [ ][ ] [ ] 0 1 5 5 x B = B 1 b = 1 = = b. 2 2 3 26 3 [ ] 0 1 2 w = c T B B 1 = ( 3,0) ( 1) = 2 2 3 1(0,3) 2 [ ] 3 1 B 2 0 1 = 1 2 z 1 c 1 = 1 [ ] 2 2 (0,3) ( 4) = 2 4 ] [ ] 0 1 2 3 ja z 4 c 4 = 1 2 (0,3) [ 0 1 0 = 3 2 Siis z 1 c 1, z 4 c 4 < 0, joten algoritmi päättyy ja x T = (0,5,3,0) on optimiratkaisu ja c T x = 15. 34

4 Simplex-menetelmän tulkintaa Tarkastellaan tässä kappaleessa hieman yksityiskohtaisemmin(yksinkertaisemmin) simplexmenetelmän johtamista tutkimalla lineaarista yhtälöryhmää joka määrittelee systeemin rajoitteet ja käyvän perusratkaisun. Tämä lähestymistapa on (ehkä) helpompi kuin edellä esitetty matriiseihin perustuva lähestymistapa, mutta sitä ei voida esittää kompaktissa muodossa. Lähestymistapa havainnollistaa kuitenkin hyvin simplex-menetelmää ja antaa hyvän pohjan ymmärtää menetelmän matriisiesitystä. 4.1 Kannan vaihto Käsitellään yhtälöryhmää: a 11 x 1 +a 12 x 2 + +a 1n x n = b 1 a 21 x 1 +a 22 x 2 + +a 2n x n = b 2. a m1 x 1 +a m2 x 2 + +a mn x n = b m misä m < n. Jos yhtälöt ovat lineaarisesti riippumattomia, niin Gaussin redusointimenetelmän avulla yhtälöryhmä voidaan saattaa joko kolmiomaiseen tai kanoniseen muotoon. Oletetaan yhtälöryhmä muokatuksi kanooniseen muotoon: x 1 +y 1,m+1 x m+1 +y 1,m+2 x m+2 + +y 1,n x n = y 1,0 x 2 +y 2,m+1 x m+1 +y 2,m+2 x m+2 + +y 2,n x n = y 2,0.... (4.1) x m +y m,m+1 x m+1 +y m,m+2 x m+2 + +y m,n x n = y m,0 Muuttujatx 1,x 2,...,x m ovatperusmuuttujatjajamuutmuuttujatovatei-perusmuuttujia. Vastaava kantaratkaisu on: x 1 = y 1,0, x 2 = y 2,0,...,x m = y m,0, x m+1 = 0,...,x n = 0, tai vektorimuodossa: x = (y 0,0), missä y 0 on m-ulotteinen ja 0 on (n-m)-ulotteinen vektori. Sanotaan jatkossa, että systeemi on kanonisessa muodossa jos n:n muuttujan joukossa on m perusmuuttujaa joilla on ominaisuus että jokainen niistä esiintyy vain yhdessä yhtälössä ja sen kerroin on 1. Esitetään jatkossa yhtälöryhmä kertoimiensa taulukkona: 35

1 0 0 y 1,m+1 y 1,m+2 y 1,n y 1,0 0 1 0 y 2,m+1 y 2,m+2 y 2,n y 2,0. (4.2) 0 0 1 y m,m+1 y m,m+2 y m,n y m,0 Kannanvaihdossa jostain perusmuuttujasta tehdään ei-perusmuuttuja ja päinvastoin. On ratkaistava uusia perusmuuttujia vastaava kanoninen muoto. Proseduuri on aika yksinkertainen. Oletetaan, että muodossa (4.1) halutaan korvata perusmuuttuja x p, 1 p m ei-kantamuuttujalla x q. Korvaaminen voidaan tehdä mikäli y p,q 0: Jaetaan p:s rivi y p,q :lla (saadaan x q :n kertoimeksi p:llä rivillä 1) ja kerrotaan sitä sopivasti, jotta vähentämällä se yksitellen muista riveistä saadaan niihin x q :n kertoimeksi 0. Merkitselällä uuden kanonisen systeemin kertoimia y i,j saadaan eksplisiittinen kaava: y i,j = y i,j y p,j y p,q y i,q, Huom. Alkiota y p,q sanotaan tukialkioksi. i p y p,j = y p,j y p,q (4.3) 4.2 Mikä vektori jättää kannan Oletetaan, että käypä perusratkaisu x = (x 1,x 2,...,x m,0,0,...,0) ja vastaava esitysmuoto: x 1 A 1 +x 2 A 2 + x m A m = b (4.4) Oletetaan, että x i > 0,i = 1,...,m (ts. perusratkaisu ei ole surkastunut). Oletetaan myös, että olemme päättäneet tuoda kantaan vektorin A q,q > m. Vektori A q voidaan kirjoittaa kantavektoreiden avulla: A q = y 1,q A 1 +y 2,q A 2 + y m,q A m (4.5) Keromalla (4.5) reaaliluvulla ε 0 ja vähentämällä (4.4):stä, saadaan (x 1 εy 1,q )A 1 +(x 2 εy 2,q )A 2 + +(x m εy m,q )A m +εa q = b (4.6) Nyt kaikille ε 0 (4.6) antaa vektorin b enintään m+1:n vektorin lineaarikombinaationa. On ilmeistä, että pienillä ε yhtälö (4.6) antaa käyvän ratkaisun mutta ei perusratkaisua. Kun ε kasvaa, niin kertoimet joko kasvavat tai pienenevät yhtälössä (4.6). 36

Jos jokin kertoimista pienenee, niin asetetaan ε yhtäsuureksi, missä ensimmäinen (tai useita) kertoimista tulee nollaksi. Ts., { xi } ε = min : y i,q > 0. (4.7) i y i,q Nyt uutta käypää perusratkaisua määrättäessä vektori A q korvaa vektorin A p, missä indeksi p on yhtälön (4.7) minimoiva indeksi. Huomautus 1. Jos (4.7):n minimoiva indeksi p ei ole yksikäsitteinen, niin uusi ratkaisu on surkastunut ja mikä tahansa indekseistä voidaan valita. 2. Josyksikääny i,q eiolepositiivinen,niineiuuttaperusratkaisuavoidamuodostaa. Tässä tapauksessa on kuitenkin olemassa käypä ratkaisu jolla on äärettömän suuret kertoimet. Tämä tarkoittaa, että käypä joukko ei ole rajoitettu. 3. Jos on annettu käypä ratkaisu ja mv. vektori A q, niin joko on olemassa uusi käypä kantaratkaisu, missä A q on yhtenä kantavektorina ja yksi alkuperäisistä katavektoreista on poistettu tai käypä joukko on rajoittamaton. Katsotaan asiaa taulukon muodossa. Oletetaan, että rajoitteita Ax = b (4.8) x 0 (4.9) vastaava taulukko on: A 1 A 2 A m A m+1 A m+2 A n b 1 0 0 y 1,m+1 y 1,m+2 y 1,n y 1,0 0 1 0 y 2,m+1 y 2,m+2 y 2,n y 2,0. (4.10) 0 0 1 y m,m+1 y m,m+2 y m,n y m,0 Taulukko voi olla määräytynyt monien askelien jälkeen alkuperäisestä taulukosta, muttajokahetkelläsekuvaaratkaisuakannallea 1,A 1,,A m.oletetaan,ettäy 1,0,y 2,0,,y m,0 ovat ei-negatiivisia, joten kantaratkaisu x 1 = y 1,0,x 2 = y 2,0,,x m = y m,0 on käypä. Kun halutaan tuoda kantaan vektori A q,q > m, ja säilyttää uuden ratkaisun käypyys niin valitaan tukialkio käyttämällä kaavaa (4.7). Ts., laskemalla osamäärät x i /y i,q = y i,0 /y i,q,i = 1,...,m ja valitsemalla niistä pienin ei-negatiivinen (esim. i = p) ja valitsemalla tukialkioksi sitä vastaava y p,q. 37

4.3 Käyvän minimiratkaisun määrittäminen Edellä osoitettiin kuinka on mahdollista muodostaa yhdestä käyvästä kantaratkaisusta toinen valitsemalla mielivaltaisesti kantaan tuotava sarake ja sitten sopivasti valitsemalla tukialkio tästä sarakkeesta (ts. kannasta poistettava sarake). Simpleksi menetelmän ideana on valita kantaan tuotava sarake siten, että uusi sallittu kantaratkaisu tuottaa alhaisemman kustannusfunktion arvon. Nyt esitettävillä laskutoimenpiteillä voidaan määritellä mikä vektori tuodaan kantaan ja edellä esitetyllä laskutoimenpiteillä määritellään mikä vektori poistuu kannasta, jotta ratkaisu säilyisi sallittuna. Oletetaan, että meillä on käypä kantaratkaisu (x B,0) = (y 1,0,y 2,0,,y m,0,0,0,,0) (4.11) ja taulukko, missä on yksikkömatriisi ensimmäisessä m sarakkeessa A 1 A 2 A m A m+1 A m+2 A n b 1 0 0 y 1,m+1 y 1,m+2 y 1,n y 1,0 0 1 0 y 2,m+1 y 2,m+2 y 2,n y 2,0. (4.12) 0 0 1 y m,m+1 y m,m+2 y m,n y m,0 Kustannusfunktion arvo mv. ratkaisulle x on: z = c 1 x 1 +c 2 x 2 + +c n x n, (4.13) ja kantaratkaisulle vastaava arvo on z 0 = c T Bx B, missä c T B = (c 1,c 2,,c m ). Taulun (4.12) nojalla on selvää, että mv. x pätee: x 1 =y 1,0 y 1,j x j x 2 =y 2,0 y 2,j x j. (4.14) x m =y m,0 y m,j x j. 38

Käyttämällä yhtälöä (4.14) voidaan eliminoida x 1,x 2, x m yleisestä muodosta (4.13). Saadaan z = c T x = z 0 +(c m+1 z m+1 )x m+1 +(c m+2 z m+2 )x m+2 + +(c n z n )x n (4.15) missä z j = y 1,j c 1 +y 2,j c 2 + +y m,j c m, m+1 j n, mistä määräytyy kantaan siirtyvä sarake. Yhtälö antaa kustannusfunktion z arvon yhtälöryhmän Ax = b mille tahansa ratkaisulle muuttujien x m+1, x m+2,,x n avulla. Yhtälöstä (4.15) voidaan myös määrittää hyödytäänkö ottamalla kantaan mukaan jokin ei-kantamuuttuja. Jos c j z j on negatiivinen jollekin j, m+1 j n, niin kasvattamalla x j :n arvoa nollasta positiiviseksi voidaan pienentää kustannusfunktion arvoa. Lause 4.1. (Käyvän perusratkaisun parantaminen) Olkoon z 0 käypää perusratkaisua vastaava objektifunktion arvo ja oletetaan, että jollakin j pätee c j z j < 0. Silloin on olemassa käypä ratkaisu jolle objektifunktion arvo z < z 0. Jos sarake A j voidaan sijoittaa alkuperäiseen kantaa jonkin vektorin paikalle siten, että saadaan sallittu kantaratkaisu, niin uudelle ratkaisulle pätee z < z 0. Jos A j :ta ei voida sijoittaa siten että saataisiin aikaa käypä kantaratkaisu, niin ratkaisujoukko on rajoittamaton ja objektifunktion arvo lähestyy :tä. Todistus. Tulos seuraa suoraan ylläolevasta analyysistä. Lause 4.2. Optimaalisuus Jos jollekin käyvälle perusratkaisulle pätee: c j z j 0 kaikilla j, niin tämä ratkaisu on optimaalinen. Todistus. Tulos seuraa välittömästi yhtälöstä (4.15), koska mille tahansa käyvälle ratkaisulle x i 0 kaikilla i ja siten objektifunktion arvolle z pätee z z 0 0. Koska simplex-menetelmässä kertoimilla c j z j on keskeinen merkitys niin merkitään niitä hieman lyhyemmin: r j = c j z j. Kertoimia kutsutaan suhteellisiksi kustannuskertoimiksi(relative cost coefficients) tai redusoiduiksi kustannuskertoimiksi(reduced cost coefficients). Kertoimet mittaavat muuttujan kustannusta annetun kannan suhteen. Esimerkki 4.1. Ruokavalio Tulkitaan suhteellisia kustannuskertoimia esimerkin avulla. Ongelma: Kuinka määritellään edullisin ruokavalio siten, että se toteuttaa hyvälle terveydelle asetetut ravintoaineiden vaatimukset? Ihmisen tulisi saada päivittäin tiettyjä ravintoaineita vähintään tietty määrä. 39

Oletetaan, että markkinoilla on tarjolla n erilaista ruokaa (leipä, mehu, levite,...) ja ruokaa i myydään hintaan c i /yksikkö. Lisäksi on olemassa m eri ravintoainetta (vitamiinit,rasvat...)joitaihmisentulisisaadavähintäänb j yksikköäpäivässä.ruokien ravintoainepitoisuudet tunnetaan, ts. ruoka i sisältää a ji yksikköä ravintoainetta j. Merkitään x i :llä ruuan i määrää henkilön ruokavaliossa. Henkilö haluaa minimoida ruuan hinnan siten, että hän saa kuitenkin ravinnostaan riittävästi tarpeellisia ravintoaineita. Saadaan seuraava LP-ongelma: rajoittein c 1 x 1 +c 2 x 2 + +c n x n min! (4.16) a 11 x 1 +a 12 x 2 + +a 1n x n b 1 a 21 x 1 +a 22 x 2 + +a 2n x n b 2. a m1 x 1 +a m2 x 2 + +a mn x n b m x 0 Tulkitaan LP-ongelmaa (4.16), missä nyt ravintoaine sisällön täytyy toteutua tarkasti: c T x min! Ax = b x 0 Matriisin A sarake antaa ravintoaine sisällön aina tietylle ruualle. Annetulle kannalle, sanotaan m ensimmäistä A:n saraketta, simpleksi taulukko kertoo, kuinka minkä tahansa kantaan kuulumaton ruoka (tark. ruuan ravintoaine sisältö) voidaan konstruoida kantaan kuuluvien ruokien avulla. Jos esim. porkkana ei ole kannassa voimme muodostaa keinotekoisen porkkanan valitsemalla sopivat määrät kannassa olevia ruokia. Kun määritetään kantaratkaisun optimaalisuutta, käsitellään jotain ei-kantaratkaisuun kuuluvaa ruokaa - esim. porkkanaa - ja tutkitaan, että hyödytäänkö sen tuomisesta kantaan. Hyöty on helposti tutkitavissa kun verrataan porkkanan kustannusta c j keinotekoisesti tehdyn porkkanan kustannukseen (olkoon porkkanan indeksi on j). Sen kustannus on: m z j = c i y i,j. i=1 Jos r j = c j z j < 0 niin on edullista käyttää oikeaa porkkanaa keinotekoisen sijaan, ts. porkkana siirretään kantaan. 40

4.4 Taulukkoproseduuri simplex-menetelmälle Lähdetään taulukosta, missä vektori b = Ax on esitetty kanonisessa muodossa vastaten käypää perusratkaisua. Lisätään viimeiseksi rivi, mikä sisältää suhteelliset kustannuskertoimet ja senhetkisen kustannuksen vastaluvun. Tuloksena on simplex-taulukko: A 1 A 2 A m A m+1 A m+2 A n b - 1 0 0 y 1,m+1 y 1,m+2 y 1,n y 1,0 0 1 0 y 2,m+1 y 2,m+2 y 2,n y 2,0. (4.17) 0 0 1 y m,m+1 y m,m+2 y m,n y m,0-0 0 0 r m+1 r m+2 r n z 0 Suhteellinen kustannuskerroin r j, m+1 j n kertoo kasvaako vai laskeeko kustannusfunktion arvo jos muuttuja x j tuodaan kantaan. Simplex taulukkoalgoritmi Step 0. Muodosta simplex taulukko (4.17) mikä vastaa käypää kantaratkaisua. Step 1. Jos kaikki r j 0, lopeta; sen hetkinen käypä perusratkaisu on optimaalinen. Step 2. Valitse q siten, että r q < 0. (ei-kantamuuttuja x q siirtyy kantaan.) Step 3. Laske suhteet y i,0 /y i,q y i,q > 0, i = 1,...,m. Jos yksikään y i,q > 0, lopeta; käypä joukko on rajoittamaton. Muuten valitse indeksi p siten, että se vastaa suhdeluvun minimiä. Step 4. Päivitä kaikki rivit, mukaanlukien viimeinen käyttämällä tukialkiona alkiota y p,q. Mene askeleeseen 1. Esimerkki 4.2. Simplex taulukkoalgoritmi 3x 1 +x 2 +3x 3 max! 2x 1 +x 2 +x 3 2 x 1 +2x 2 +3x 3 5 2x 1 +2x 2 +x 3 6 x 1 0, x 2 0, x 3 0. 41

Muokataan tehtävä standardimuotoon: muutetaan maksimointi minimoinniksi kertomalla objektifunktio -1:llä ja lisätään puutemuuttujat x 4,x 5,x 6. Saadaan taulukko: A 1 A 2 A 3 A 4 A 5 A 6 b 2 1 1 1 0 0 2 1 2 3 0 1 0 5 2 2 1 0 0 1 6 r T : 3 1 3 0 0 0 0 Tehtävä on kanonisessa muodossa jossa puutemuuttujat muodostavat kannan. Mikä tahansa ei kantamuuttujista x 1,x 2,x 3 voidaan siirtää kantaan. Valitaan vaikkapa x 2, siis q=2. Lasketaan suhteet b i /y i2 ja valitaan minimiarvoa vastaava indeksi p=1. Tukialkio on y 1,2 = 1. Päivitetään taulukko kaavoilla: Saadaan: y i,j = y i,j y p,j y p,q y i,q, i 1 y p,j = y p,j y p,q 2 1 1 1 0 0 2 3 0 1 2 1 0 1 2 0 1 2 0 1 2 1 0 2 1 0 0 2 Kustannusfunktion arvo on pienentynyt -2:een. Tukialkioksi saadaan y 2,3 = 1, p=2, q=3. Saadaan uusi taulukko: 5 1 0 3 1 0 1 3 0 1 2 1 0 1 5 0 0 4 1 1 3 7 0 0 3 2 0 4 Kustannusfunktion arvo on pienentynyt -4:ään. Tukialkioksi saadaan y 1,1 = 5, p=1, 42

q=1. Saadaan uusi taulukko: 1 3 1 0 1 1 0 5 5 5 5 3 0 1 1 2 8 0 5 5 5 5 0 1 0 1 0 1 4 7 6 3 27 0 0 0 5 5 5 5 Koska viimeisellä rivillä ei ole negatiivisia alkioita, niin kantaratkaisu x 1 = 1 5,x 2 = 0,x 3 = 8 5,x 4 = 0,x 5 = 0,x 6 = 4 on optimipiste ja optimiarvo on 27 5 Matriisimuoto simplex taulukolle Oletetaan, että matriisi B sisältää matriisin A m ensimmäistä saraketta. Ositetaan A,x ja c T seuraavasti: LP-ongelma saadaan muotoon: A = [B,N] x = (x B,x N ), c T = (c T B,c T N) c T Bx B +c T Nx N min! Bx B +Nx N = b (4.18) x B 0, x N 0 Matriisia B vastaava käypä perusratkaisu x = (x B,0), missä x B = B 1 b on saatu asettamalla x N = 0. Toisaalta mille tahansa x N voidaan kaavan (4.18) nojalla laskea: x B = B 1 b B 1 Nx N Sijoitetaan tämä kustannusfunktion yleiseen lausekkeeseen, saadaan: z = c T B(B 1 b B 1 Nx N )+c T Nx N = c T BB 1 b+(c T N c T BB 1 N)x N mikä kuvaa minkä tahansa ratkaisun kustannusta x N :n funktiona, ts. suhteellinen kustannusvektori on: r T N = c T N c T BB 1 N 43

Simplex taulu tulee nyt muotoon: I B 1 N B 1 b T =... (4.19) 0 c T N ct B B 1 N c T B B 1 b 44