Luento 3: Simplex-menetelmä

Samankaltaiset tiedostot
Demo 1: Simplex-menetelmä

Simplex-algoritmi. T Informaatiotekniikan seminaari , Susanna Moisala

Luento 2: Optimointitehtävän graafinen ratkaiseminen. LP-malli.

Luento 4: Lineaarisen tehtävän duaali

Luento 2: Optimointitehtävän graafinen ratkaiseminen. LP-malli.

4.5 Kaksivaiheinen menetelmä simplex algoritmin alustukseen

Harjoitus 8: Excel - Optimointi

Lineaarinen optimointitehtävä

Mat Lineaarinen ohjelmointi

Malliratkaisut Demot

Malliratkaisut Demot

Mat Lineaarinen ohjelmointi

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

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

Mat Lineaarinen ohjelmointi

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!

Luento 9: Yhtälörajoitukset optimoinnissa

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

1. Lineaarinen optimointi

Johdatus verkkoteoriaan luento Netspace

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

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

Piiri K 1 K 2 K 3 K 4 R R

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

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ä

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

Lineaarinen yhtälöryhmä

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

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

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

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

Mat Lineaarinen ohjelmointi

Luento 12: Duaalitehtävä. Tarkennuksia Lagrangen kertoimen tulkintaan. Hajautettu optimointi.

Malliratkaisut Demot

1 Kertaus. Lineaarinen optimointitehtävä on muotoa:

Vektoreiden virittämä aliavaruus

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

Matriisilaskenta Luento 8: LU-hajotelma

Luento 6: Monitavoitteinen optimointi

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

5 Lineaariset yhtälöryhmät

Luento 11: Rajoitusehdot. Ulkopistemenetelmät

Kokonaislukuoptiomointi Leikkaustasomenetelmät

Malliratkaisut Demot 6,

Talousmatematiikan perusteet: Luento 14. Rajoitettu optimointi Lagrangen menetelmä: yksi yhtälörajoitus Lagrangen menetelmä: monta yhtälörajoitusta

Luento 10: Optimointitehtävien numeerinen ratkaiseminen; optimointi ilman rajoitusehtoja

Malliratkaisut Demot

Malliratkaisut Demot 5,

Talousmatematiikan perusteet: Luento 10. Lineaarikuvaus Matriisin aste Determinantti Käänteismatriisi

Malliratkaisut Demo 4

Harjoitus 3 ( )

Käänteismatriisin ominaisuuksia

Luento 12: Duaalitehtävä. Tarkennuksia Lagrangen kertoimen tulkintaan. Hajautettu optimointi.

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

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

Ellipsoidimenetelmä. Samuli Leppänen Kokonaislukuoptimointi. S ysteemianalyysin Laboratorio

2 Pistejoukko koordinaatistossa

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

Malliratkaisut Demot

6. Luennon sisältö. Lineaarisen optimoinnin duaaliteoriaa

Kimppu-suodatus-menetelmä

MS-A0003/A0005 Matriisilaskenta Laskuharjoitus 2 / vko 45

Harjoitus 3 ( )

Numeeriset menetelmät

Matematiikka B2 - Avoin yliopisto

Talousmatematiikan perusteet: Luento 15. Rajoitettu optimointi Lagrangen menetelmä Lagrangen kerroin ja varjohinta

1 Matriisit ja lineaariset yhtälöryhmät

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

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.

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

Malliratkaisut Demot

Talousmatematiikan perusteet: Luento 11. Lineaarikuvaus Matriisin aste Käänteismatriisi

Numeeriset menetelmät

Luento 6: Monitavoiteoptimointi

Osakesalkun optimointi. Anni Halkola Turun yliopisto 2016

Talousmatematiikan perusteet: Luento 13. Rajoittamaton optimointi Hessen matriisi Ominaisarvot ja vektorit Ääriarvon laadun tarkastelu

Johdatus tekoälyn taustalla olevaan matematiikkaan

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

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

Lineaarikuvauksen R n R m matriisi

Malliratkaisut Demo 1

Insinöörimatematiikka D

Kurssin loppuosassa tutustutaan matriiseihin ja niiden käyttöön yhtälöryhmien ratkaisemisessa.

9 Matriisit. 9.1 Matriisien laskutoimituksia

Numeeriset menetelmät

12. Hessen matriisi. Ääriarvoteoriaa

Mat Investointiteoria Laskuharjoitus 4/2008, Ratkaisut

MS-C2105 Optimoinnin perusteet Malliratkaisut 4

Lineaarinen optimointitehtävä

Operatioanalyysi 2011, Harjoitus 3, viikko 39

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

2 Konveksisuus ja ratkaisun olemassaolo

Johdatus lukuteoriaan Harjoitus 2 syksy 2008 Eemeli Blåsten. Ratkaisuehdotelma

1 Rajoittamaton optimointi

Matematiikan tukikurssi, kurssikerta 3

Harjoitus 5 ( )

Lineaarikombinaatio, lineaarinen riippuvuus/riippumattomuus

Matematiikka B2 - TUDI

Transkriptio:

Luento 3: Simplex-menetelmä Kuten graafinen tarkastelu osoittaa, LP-tehtävän ratkaisu on aina käyvän alueen kulmapisteessä, eli ekstreemipisteessä (extreme point). Simplex-menetelmässä ekstreemipisteitä, ja tehtävän ratkaisua, etsitään algebrallisesti Gaussin eliminointia käyttäen. Lähtökohtana on LP-tehtävä standardimuodossa (standard LP form), joka saadaan seuraavasti: (1) Kaikki muuttujat muutetaan positiivisiksi: Jos x i on rajoittamaton x j = x + j x j,missä x+ j,x j 0. (2) Jokainen epäyhtälörajoitus (paitsi muuttujien positiivisuusrajoitukset) muutetaan yhtälörajoitukseksi lisäämällä tarvittavat alijäämä- tai ylijäämämuuttujat. Jokaisen rajoitusyhtälön oikean puolen täytyy olla positiivinen. Jos näin ei ole, yhtälö kerrotaan -1:llä. (3) Kohdefunktiota voidaan joko maksimoida tai minimoida. Muista: max f(x 1,...,x n )=min f(x 1,...,x n ) Standardia LP-tehtävää vastaavan yhtälöryhmän, eli ns. simplex-taulukon, kantaratkaisut (basic solutions) vastaavat käyvän alueen ekstreemipisteitä. Kantaratkaisujen laskeminen Simplex-taulukossa on m lineaarista yhtälöä ja n tuntematonta, m < n. Valitaan (n-m):n muuttujan arvoksi nolla (ns. nollamuuttujat) ja ratkaistaan yhtälöryhmä m:n muuttujan suhteen (ns. kantamuuttujat). Jos ratkaisu on yksikäsitteinen, ko. ratkaisua kutsutaan kantaratkaisuksi. Jos kantaratkaisun jokainen komponentti 0, sanomme ettäratkaisuonkäypä (vastaa geometristä ekstreemipistettä); muuten sanomme että ratkaisu ei ole käypä, tai on ei-käypä. Kantaratkaisujen maksimilukumäärä on ( n m),elin!/m!(n m)! Esim. x1 + x 2 + 4x 3 + 2x 4 + 3x 5 = 8 4x 1 + 2x 2 + 2x 3 + x 4 + 6x 5 = 4 1

m=2,n=5 korkeintaan 5!/3! 2! = 10 kantaratkaisua. Tapaus 1: Käypä kantaratkaisu Nollamuuttujat: (x 2,x 4,x 5 ) Yhtälöt: x1 + 4x 3 = 8 4x 1 + 2x 3 = 4 Ratkaisu: Yksikäsitteinen x 1 =0,x 3 =2 Status: Käypä kantaratkaisu Tapaus 2: Ei-käypä kantaratkaisu Nollamuuttujat: (x 3,x 4,x 5 ) Yhtälöt: x1 + x 2 = 8 4x 1 + 2x 2 = 4 Ratkaisu: Yksikäsitteinen x 1 =-6,x 2 =14 Status: Ei-käypä kantaratkaisu, koska x 1 < 0. Tapaus 3: Ääretön määrä ratkaisuja Nollamuuttujat: (x 1,x 2,x 5 ) Yhtälöt: 4x3 + 2x 4 = 8 2x 3 + x 4 = 4 Ratkaisu: Ei yksikäsitteistä ratkaisua, koska yhtälöt ovat lineaarisesti riippuvat. Status: Ääretön määrä ratkaisuja. Tapaus 4: Ei ratkaisua 2

Nollamuuttujat: (x 1,x 3,x 4 ) Yhtälöt: x2 + 3x 5 = 8 2x 2 + 6x 5 = 4 Ratkaisu: Ratkaisua ei ole, sillä yhtälöt ovat ristiriitaiset. Status: Ei ratkaisua. Gaussin eliminointi Y 1: ax+ by = e a 1 Y 2: cx+ dy = f 1 x+ a 1 by = a 1 e cx+ dy = f +( c) Y 1 1 x+ a 1 by = a 1 e 0 x+ (d ca 1 b)y = f ca 1 e (d ca 1 b) 1 1 x+ a 1 by = a 1 e +( a 1 b) Y 2 0 x+ 1 y = (d ca 1 b) 1 (f ca 1 e) 1 x+ 0 y = a 1 e a 1 b(d ca 1 b) 1 (f ca 1 e) 0 x+ 1 y = (d ca 1 b) 1 (f ca 1 e) 1 x+ 0 y = (ad bc) 1 [de bf] 0 x+ 1 y = (ad bc) 1 [ ce + af] [ ] [ ][ ] x d b e I =(ad bc) y 1 c a f [ ] a b A = ; deta = ad bc c d [ ] d b A 1 =(deta) 1 c a Gaussin eliminointi: Ax = b I x = A 1 b 3

Optimointitehtävän ratkaiseminen Simplex-menetelmällä Sateenkaaren optimointimallin standardimuoto: max z = 5x 1 +4x 2 s.t. 6x 1 +4x 2 +s 1 = 24 x 1 +2x 2 +s 2 = 6 x 1 +x 2 +s 3 = 1 x 2 +s 4 = 2 x 1, x 2, s 1, s 2, s 3, s 4 0 Aloitus simplex-taulukko: kanta z x 1 x 2 s 1 s 2 s 3 s 4 ratkaisu z 1-5 -4 0 0 0 0 0 z-rivi s 1 0 6 4 1 0 0 0 24 s 1 -rivi s 2 0 1 2 0 1 0 0 6 s 2 -rivi s 3 0-1 1 0 0 1 0 1 s 3 -rivi s 4 0 0 1 0 0 0 1 2 s 4 -rivi Huom.: Kohdefunktiota, eli z-riviä, vastaa yhtälö z 5x 1 4x 2 =0. Aloitusratkaisu: Valitaan x 1 ja x 2 nollamuuttujiksi, x 1 =0,x 2 = 0, jolloin taulukosta voi suoraan lukea käyvän kantaratkaisun s 1 =24,s 2 =6,s 3 =1,s 4 =2.Geometrisesti ratkaisu vastaa origoa ja vastaava kohdefunktion z arvo on 0. Ratkaisu ei ole optimiratkaisu, koska z:n arvoa voidaan kasvattaa liikkumalla positiiviseen suuntaan pitkin x 1 -akselia tai pitkin x 2 -akselia. Valitaan uudeksi kantamuuttujaksi (ns. tuleva muuttuja (entering variable)) x 1, koska z kasvaa jyrkimmin x 1 :n suuntaan. Sääntö on,että tuleva muuttuja on se, jolla on z-rivillä itseisarvoltaan suurin negatiivinen kerroin: z 5x 1 4x 2 =0 x 1 on tuleva muuttuja. 4

x 2 6 5 4 (1) (3) 3 (2) 2 1 C (4) A B 1 0 1 2 3 4 5 6 24 = 4 1 6 = 1 1 6 = 6 1 x 1 Kuva 1: Simplex-iteraation eteneminen Sateenkaaren optimointitehtävässä Kuvan 1 mukaan x 1 :n arvoa voidaan kasvattaa siirtymällä pisteestä A = (0,0) pisteeseen B = (4,0). Algebrallisesti piste B saadaan jakamalla ratkaisusarakkeen luvut vastaavilla x 1 -sarakkeen luvuilla, jolloin saadaan rajoitussuorien ja x 1 -akselin leikkauspisteiden koordinaatit. kanta x 1 ratkaisu suhde s 1 6 24 24/6 = 4 (minimi) s 2 1 6 6/1 = 6 s 3-1 1-1/1 = -1 (ei-käypä) s 4 0 2 2/0 = (ei-käypä) Ainoastaan pienin positiivinen suhde vastaa käypää pistettä, eli pistettä B = (4,0). Kohdefunktion arvo kasvaa 5 4 :llä yksiköllä, kun siirrytään origosta pisteeseen B. 5

Määrätään seuraavaksi kannasta lähtevä muuttuja, eli ns. lähtevä muuttuja (leaving variable), joka saa arvon nolla, kun x 1 :stä tulee uusi kantamuuttuja. Koska s 1 =0vastaapienintä positiivista suhdetta, eli pistettä B,ons 1 lähtevä muuttuja. Uusi kantaratkaisu on siis (x 1,s 2,s 3,s 4 ) ja se lasketaan soveltaen Gaussin eliminointia aloitustaulukkoon. Määritellään pivot-sarake, pivot-rivi ja pivot-alkio ao. taulukosta: kanta z x 1 x 2 s 1 s 2 s 3 s 4 ratkaisu z 1-5 -4 0 0 0 0 0 s 1 0 6 4 1 0 0 0 24 pivot-rivi s 2 0 1 2 0 1 0 0 6 s 3 0-1 1 0 0 1 0 1 s 4 0 0 1 0 0 0 1 2 pivotsarake Pivot-sarake on tulevaa muuttujaa vastaava sarake ja pivot-rivi lähtevää muuttujaa vastaava rivi. Pivot-alkio on alkio jossa pivot-sarake ja pivot-rivi leikkaavat, eli tässä tapauksessa 6. Uusi kantaratkaisu saadaan soveltamalla Gaussin eliminointia tekemällä seuraavat laskut 1. Pivot-rivi: uusi pivot-rivi = (nykyinen pivot-rivi)/(pivot-alkio) 2. Muut rivit: uusi rivi = (nykyinen rivi) - (rivin pivot-sarakkeen alkio) (uusi pivotrivi) Kun laskut suoritetaan ensimmäisen kerran, päädytään taulukkoon, jossa tuleva muuttuja x 1 korvaa lähtevän muuttujan s 1. Seuraava taulukko vastaa siis kantaratkaisua (x 1,s 2,s 3,s 4 ): 6

kanta z x 1 x 2 s 1 s 2 s 3 s 4 ratkaisu z 1 0 2/3 5/6 0 0 0 20 x 1 0 1 2/3 1/6 0 0 0 4 s 2 0 0 4/3 1/6 1 0 0 2 s 3 0 0 5/3 1/6 0 1 0 5 s 4 0 0 1 0 0 0 1 2 Samoin kuin aloitusratkaisu luettiin aloitustaulukosta, voidaan uusi kantaratkaisu nyt lukea uudesta taulukosta, kun nollamuuttujat saavat arvon 0, x 2 = s 1 = 0. Uusi kantaratkaisu on x 1 =4,s 2 =2,s 3 =5,s 4 = 2, ja uusi z:n arvo on 20. Uusi taulukko ei vielä anna optimiratkaisua, koska nollamuuttujan x 2 kerroin z-rivillä on negatiivinen. Kirjoitetaan z-rivi muotoon z = 2x 3 2 5s 6 1 +20, jolloin nähdään että lisäämällä x 2 :n arvoa sen nykyisestä arvosta nolla, voidaan z:n arvoa kasvattaa. x 2 on siis uusi tuleva muuttuja. Lasketaan seuraava simplex-taulukko samaan tapaan kuin edellinen taulukko laskettiin aloitustaulukosta. s 2 on uusi lähtevä muuttuja, sillä sitä vastaa pienin positiivinen suhde (3/2) ao. taulukossa. Kohdefunktion z arvo kasvaa määrällä 2 3 =1, 3 2 jolloin uusi z:n arvo on z = 20 + 1 = 21. kanta x 2 ratkaisu suhde x 1 2/3 4 6 s 2 4/3 2 3/2 (minimi) s 3 5/3 5 3 s 4 1 2 2 Pivot-rivi on s 2 -rivi ja pivot-sarake on x 2 -sarake. Pivot-alkio on 4/3. Gaussin eliminointi tuottaa nyt seuraavan taulukon: kanta z x 1 x 2 s 1 s 2 s 3 s 4 ratkaisu z 1 0 0 3/4 1/2 0 0 21 x 1 0 1 0 1/4 1/2 0 0 3 x 2 0 0 1 1/8 3/4 0 0 3/2 s 3 0 0 0 3/8 5/4 1 0 5/2 s 4 0 0 0 1/8 3/4 0 1 1/2 Koska kummankaan nollamuuttujan s 1,s 2 z-rivin kerroin ei ola negatiivinen, z:n arvoa ei enää voida kasvattaa. Taulukko vastaa siis optimiratkaisua. 7

Optimiratkaisu on x 1 =3,x 2 = 3/2, z = 21. Slack-muuttujien optimiarvot ovat s 1 =0,s 2 =0,s 3 =5/2,s 4 =1/2. Näiden tulkinta on seuraava. Raaka-aineet M1 ja M2 käytetään optimituotannossa kokonaan. Sanotaan, että ko. resurssit ovat niukkoja (scarce resource). Sen sijaan kysyntärajoituksissa slack-muuttujat ovat positiivisia. Sanotaan, että resurssi on runsas (abundant resource) näiden rajoitusten suhteen. Huom. Sateenkaaren optimointitehtävässä kohdefunktiota z maksimoitiin. Jos z:aa pyritään minimoimaan, muuttuu simplex-metodi seuraavasti. Koska min z = max (-z), uusi tuleva muuttuja on aina se nollamuuttuja, jonka z-rivin kerroin on suurin positiivinen luku. Taulukko vastaa optimiratkaisua, kun kaikki z-rivin kertoimet ovat 0. Sääntöjä, joilla uusi tuleva- ja lähtevä muuttuja valitaan, sanotaan optimaalisuus- ja käypyysehdoiksi. Optimaalisuusehto: Kun kohdefunktiota maksimoidaan (minimoidaan) uusi tuleva muuttuja on se, jolla on itseisarvoltaan suurin negatiivinen (positiivinen) z-rivin kerroin. Taulukko vastaa optimiratkaisua, kun jokainen z-rivin kerroin 0 ( 0). Käypyysehto: Kun kohdefunktiota maksimoidaan, tai minimoidaan, uusi lähtevä muuttuja on se kantamuuttuja, jota vastaava suhde on positiivisista suhteista pienin. Simplex-menetelmä etenee siis seuraavasti: Askel 0: Valitaan käypä aloitusratkaisu. Askel 1: Valitaan tuleva muuttuja käyttäen optimaalisuusehtoa. Lopeta, jos tulevaa muuttujaa ei ole. Askel 2: Valitaan lähtevä muuttuja käyttäen käypyysehtoa. Askel 3: Lasketaan uusi kantaratkaisu Gaussin eliminointia käyttäen. Siirrytään askeleeseen 1. 8

Uusi simplex-taulukko muodostetaan käyttäen aina samoja laskuja ja sääntöjä. Simplex-menetelmä on siis iteratiivinen menetelmä ja peräkkäisiä taulukoita kutsutaan Simplex-iteraatioiksi. Kuvasta 1 nähdään, että iteraatiot alkavat ekstreemipisteestä A ja jatkuvat ekstreemipisteen B kautta ekstreemipisteeseen C. Simplex-iteraatiot kulkevat aina käyvän alueen ekstreemipisteiden kautta. Simplex-menetelmä ei siis tuota iteraation aikana käyvän alueen sisäpisteitä, kuten ns. sisäpistemenetelmä, josta puhutaan luennolla 11. Aloitusratkaisun laskeminen M-menetelmä Kun LP-tehtävän kaikki rajoitukset ovat muotoa ( ) ja rajoitusehtojen oikeat puolet ovat ei-negatiivisia, löytyy käypä aloitusratkaisu helposti slackmuuttujien kannasta (x i =0,s i 0). Kun tehtävä sisältää myös (=) ja/tai ( ) rajoituksia, standardimuodossa ei ole käyvän aloitusratkaisun määrittämiseen tarvittavia slack-muuttujia. Näinollentehtävään lisätään keinomuuttujia ajamaan tarvittavien slack-muuttujien asiaa ensimmäisessä iteraatiossa. Tätä samaa periaatetta hyödyntävät hiukan eri tavoin M-menetelmä ja kaksivaihemenetelmä. M-menetelmän toiminta on esitetty seuraavan esimerkin avulla: Olkoon LP-tehtävä muotoa: min z = 4x 1 +x 2 s.t. 3x 1 +x 2 = 3 4x 1 +3x 2 6 x 1 +2x 2 4 x 1, x 2 0 Tehtävä muutetaan standardimuotoon lisäämällä ylijäämämuuttuja (surplusvariable) s 1 ja alijäämämuuttuja (slack-variable) s 2 : 9

min z = 4x 1 +x 2 s.t. 3x 1 +x 2 = 3 4x 1 +3x 2 s 1 = 6 x 1 +2x 2 +s 2 = 4 x 1, x 2, s 1, s 2 0 Toisin kuin sateenkaaren optimointitehtävässä, tästä standardimuodosta ei suoraan saada käypää aloitusratkaisua, koska ensimmäisessä ja toisessa rajoitusyhtälössä ei ole slack-muuttujia, joiden kannasta ratkaisu löytyisi. Näin ollen rajoitusyhtälöihinonlisättävä keinomuuttujat R 1 ja R 2, ajamaan slackmuuttujien asiaa. Koska keinomuuttujat ovat kuitenkin alkuperäisen tehtävän kannalta lisämuuttujia, toisin kuin slack- ja ylijäämämuuttujat, jotka eivät muuta alkuperäisen tehtävän ratkaisua, halutaan varmistaa, että niiden arvo iteroinnin päättyessä on nolla. Tämä tehdään siten, että kohdefunktioon lisätään (vähennetään, kun maksimoidaan) sakkotermi MR i kutakin keinomuuttujaa R i kohti. Tässä M on riittävän suuri luku, jotta sakkotermi toimii. Toisaalta, liian suuri M saattaa aiheuttaa numeerisissa laskuissa hankaluuksia pyöristysvirheiden takia. Näin saadaan LP-tehtävä: min z = 4x 1 +x 2 +MR 1 +MR 2 s.t. 3x 1 +x 2 +R 1 = 3 4x 1 +3x 2 s 1 +R 2 = 6 x 1 +2x 2 +s 2 = 4 x 1, x 2, s 1, s 2, R 1, R 2, 0 Nyt käypä aloitusratkaisu löytyy kannasta R 1, R 2, s 2, eli pisteestä [x 1,x 2,s 1,R 1,R 2,s 2 ] = [0,0,0,3,6,4]. Tehtävä on kirjoitettu alla olevaan simplex-taulukkoon. z-sarake on jätetty pois taulukosta, koska sen arvot eivät muutu iteraatioissa. kanta x 1 x 2 s 1 R 1 R 2 s 2 ratkaisu z 4 1 0 M M 0 0 R 1 3 1 0 1 0 0 3 R 2 4 3 1 0 1 0 6 s 2 1 2 0 0 0 1 4 10

Taulukon z-rivi ei nyt ole konsistentti muun taulukon kanssa, siellä kohdefunktion arvo pisteessä [0,0,0,3,6,4] on z =0+0+0+3M +6M +0=9M, eikä 0, kuten taulukon ratkaisusarakkeessa väitetään. Ongelma poistuu, kun suoritetaan seuraava laskutoimitus. Uusi z-rivi = vanha z-rivi + (M R 1 -rivi + M R 2 -rivi) Tällä operaatiolla eo. taulukko muuttuu muotoon kanta x 1 x 2 s 1 R 1 R 2 s 2 ratkaisu z 4 + 7M 1 + 4M M 0 0 0 9M R 1 3 1 0 1 0 0 3 R 2 4 3 1 0 1 0 6 s 2 1 2 0 0 0 1 4 Nyt iteraatio etenee normaalin simplex-menetelmän tapaan, kunnes z-rivillä ei ole enää positiivisia kertoimia (minimointi). On tärkeää huomata, että M on suuri positiivinen luku. Näin ollen esim. eo. taulukosta tulevaksi muuttujaksi valitaan x 1, sillä -4 + 7M on z-rivin kertoimista suurin positiivinen luku. Ensimmäinen iteraatio johtaa taulukkoon kanta x 1 x 2 s 1 R 1 R 2 s 2 ratkaisu z 0 (1 + 5M)/3 M (4 7M)/3 0 0 4+2M x 1 1 1/3 0 1/3 0 0 1 R 2 0 5/3 1 4/3 1 0 2 s 2 0 3/5 0 1/3 0 1 3 Seuraavaan iteraatioon valitaan x 2 tulevaksi ja R 2 lähteväksi muuttujaksi. Kolmannella iteraatiokierroksella löydetään optimi x 1 = 2/5, x 2 = 9/5, z = 17/5. Kuten esimerkistä huomataan, keinomuuttujat poistuvat kannasta, eli saavat arvon 0, ensimmäisillä iteraatiokierroksilla. Tämä johtuu siitä, että niitä sakotettiin suurella kertoimella M kohdefunktiossa. Kaksivaihemenetelmä M-menetelmän numeerinen ratkaisu saattaa kärsiä pyöristysvirheistä, jotka aiheutuvat suurten ja pienten kertoimien yhtäaikaisesta käsittelystä. Tätä ongelmaa ei ole käytettäessä kaksivaihemenetelmää, jonka ensimmäisessä vaiheessa etsitään käypä aloituspiste ja toisessa vaiheessa sovelletaan normaalia 11

simplex-menetelmää lähtien ensimmäisessä vaiheessa löydetystä aloituspisteestä. Ratkaistaan nyt edellisen kohdan ongelma kaksivaihemenetelmällä. Vaihe I Ensimmäisessä vaiheessa rajoitusehtoihin lisätään keinomuuttujat R 1 ja R 2 samoin kuin M-menetelmässä, mutta nyt minimoidaan näiden summaa. Eli ensimmäisen vaiheen tehtävä onmuotoa min r = R 1 +R 2 s.t. 3x 1 +x 2 +R 1 = 3 4x 1 +3x 2 s 1 +R 2 = 6 x 1 +2x 2 +s 2 = 4 x 1, x 2, s 1, s 2, R 1, R 2 0 Tehtävää vastaava simplex-taulukko on kanta x 1 x 2 s 1 R 1 R 2 s 2 ratkaisu r 0 0 0 1 1 0 0 R 1 3 1 0 1 0 0 3 R 2 4 3 1 0 1 0 6 s 2 1 2 0 0 0 1 4 Samoin kuin M-menetelmän tapauksessa, tässä taulukossa osalla kantamuuttujista on nollasta poikkeava kerroin r-rivillä. Ongelma poistuu seuraavalla laskutoimituksella. Uusi r-rivi = vanha r-rivi + (1 R 1 -rivi + 1 R 2 -rivi) Nyt saadaan seuraava taulukko. kanta x 1 x 2 s 1 R 1 R 2 s 2 ratkaisu r 7 4 1 0 0 0 9 R 1 3 1 0 1 0 0 3 R 2 4 3 1 0 1 0 6 s 2 1 2 0 0 0 1 4 12

Kahden normaalin simplex-iteraation jälkeen päädytään optimiin ja seuraavaan taulukkoon. kanta x 1 x 2 s 1 R 1 R 2 s 2 ratkaisu r 0 0 0 1 1 0 0 x 1 1 0 1/5 3/5 1/5 0 3/5 x 2 0 1 3/5 4/5 3/5 0 6/5 s 2 0 0 1 1 1 1 1 Koska optimissa r = 0, olemme löytäneet käyvän aloitusratkaisun (x 1 = 3/5, x 2 = 6/5, s 2 = 1), ja voimme siirtyä vaiheeseen 2. Mikäli optimiratkaisussa olisi r > 0, tarkoittaisi se, että alkuperäisellä tehtävällä eiolekäypää ratkaisua. Tästä eteenpäin keinomuuttujille (R 1,R 2 ) ei ole enää käyttöä, joten niitä vastaavat sarakkeet voidaan jättää pois seuraavista taulukoista. Vaihe II Vaiheessa II lähdetään siis liikkeelle vaiheessa I löydetystä käyvästä aloitusratkaisusta, mutta kohdefunktion paikalle laitetaan nyt alkuperäinen kohdefunktio z. Näin saadaan muodostettua seuraava taulukko. kanta x 1 x 2 s 1 s 2 ratkaisu z 4 1 0 0 0 x 1 1 0 1/5 0 3/5 x 2 0 1 3/5 0 6/5 s 2 0 0 1 1 1 Jälleen kantamuuttujien arvot z-rivillä poikkeavat nollasta, joten täytyy tehdä seuraava laskutoimitus. Uusi z-rivi = vanha z-rivi + (4 x 1 -rivi + 1 x 2 -rivi) Näin saimme muodostettua seuraavan taulukon, josta löydämme alkuperäisen tehtävän optimin yhdellä simplex-iteraatiolla. kanta x 1 x 2 s 1 s 2 ratkaisu z 0 0 1/5 0 18/5 x 1 1 0 1/5 0 3/5 x 2 0 1 3/5 0 6/5 s 2 0 0 1 1 1 13