4.5 Kaksivaiheinen menetelmä simplex algoritmin alustukseen

Samankaltaiset tiedostot
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ä

Lineaarinen optimointitehtävä

Mat Lineaarinen ohjelmointi

Simplex-algoritmi. T Informaatiotekniikan seminaari , Susanna Moisala

Piiri K 1 K 2 K 3 K 4 R R

Malliratkaisut Demot

1 Kertaus. Lineaarinen optimointitehtävä on muotoa:

Malliratkaisut Demot

Kokonaislukuoptiomointi Leikkaustasomenetelmät

Mat Lineaarinen ohjelmointi

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 3: Simplex-menetelmä

Lineaarisen kokonaislukuoptimointitehtävän ratkaiseminen

Gaussin ja Jordanin eliminointimenetelmä

Demo 1: Simplex-menetelmä

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

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

2 Konveksisuus ja ratkaisun olemassaolo

Mat Lineaarinen ohjelmointi

Ennakkotehtävän ratkaisu

Luento 4: Lineaarisen tehtävän duaali

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

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

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

Lineaarinen yhtälöryhmä

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

2.5. Matriisin avaruudet ja tunnusluvut

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

Luetteloivat ja heuristiset menetelmät. Mat , Sovelletun matematiikan tutkijaseminaari, kevät 2008, Janne Karimäki

Matematiikan tukikurssi, kurssikerta 3

Malliratkaisut Demot 6,

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.

Malliratkaisut Demot 5,

Käänteismatriisin ominaisuuksia

Lineaarinen optimointitehtävä

Ominaisarvo ja ominaisvektori

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

Kokonaislukuoptimointi

5 Lineaariset yhtälöryhmät

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

Lineaarikombinaatio, lineaarinen riippuvuus/riippumattomuus

Käänteismatriisi 1 / 14

Mat Lineaarinen ohjelmointi

Johdatus verkkoteoriaan luento Netspace

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

Vektoreiden virittämä aliavaruus

Insinöörimatematiikka D

Lineaarialgebra ja matriisilaskenta II Syksy 2009 Laskuharjoitus 1 ( ) Ratkaisuehdotuksia Vesa Ala-Mattila

Insinöörimatematiikka D

Malliratkaisut Demot

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

Lineaariset yhtälöryhmät ja matriisit

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.

Lineaarikuvauksen R n R m matriisi

10 Matriisit ja yhtälöryhmät

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

802118P Lineaarialgebra I (4 op)

Kon Konepajojen tuotannonohjaus: ILOG CPLEX Studion käyttö

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

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

Lineaariset kongruenssiyhtälöryhmät

Determinantti 1 / 30

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

Vektorien virittämä aliavaruus

2.8. Kannanvaihto R n :ssä

Avaruuden R n aliavaruus

7 Vapaus. 7.1 Vapauden määritelmä

Ville Turunen: Mat Matematiikan peruskurssi P1 1. välikokeen alueen teoriatiivistelmä 2007

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

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

MS-C1340 Lineaarialgebra ja

Matematiikka B2 - Avoin yliopisto

MS-C1340 Lineaarialgebra ja differentiaaliyhtälöt

MS-C1340 Lineaarialgebra ja

Kanta ja Kannan-vaihto

MS-C1340 Lineaarialgebra ja differentiaaliyhtälöt

5 OMINAISARVOT JA OMINAISVEKTORIT

6 Vektoriavaruus R n. 6.1 Lineaarikombinaatio

Insinöörimatematiikka D

Neliömatriisin adjungaatti, L24

Lineaarialgebra ja matriisilaskenta I

Lineaarikuvausten. Lineaarikuvaus. Lineaarikuvauksia. Ydin. Matriisin ydin. aiheita. Aiheet. Lineaarikuvaus. Lineaarikuvauksen matriisi

= 2±i2 7. x 2 = 0, 1 x 2 = 0, 1+x 2 = 0.

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

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.

Insinöörimatematiikka D

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

Insinöörimatematiikka D

Tentissä on viisi tehtävää, jotka arvosteellaan asteikolla 0-6. Tehtävien alakohdat ovat keskenään samanarvoisia ellei toisin mainita.

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

Ratkaisuehdotukset LH 7 / vko 47

1 Rajoittamaton optimointi

Luento 7: Kokonaislukuoptimointi

Inversio-ongelmien laskennallinen peruskurssi Luento 2

Matematiikka B2 - TUDI

Lineaarialgebra ja matriisilaskenta I

Lineaarialgebra ja matriisilaskenta I. LM1, Kesä /218

Insinöörimatematiikka D

Yhteenlaskun ja skalaarilla kertomisen ominaisuuksia

Transkriptio:

4.5 Kaksivaiheinen menetelmä simplex algoritmin alustukseen Käypä kantaratkaisu löytyy helposti, esimerkiksi tapauksessa Ax b, b 0 x 0 jolloin sen määräävät puutemuuttujat. Tällöin simplex-menetelmän alustus on helppo. Muunlaisille LP-ongelmille aloituksen kantaratkaisu ei löydy yhtä helposti. Kuitenkin (onneksi) LP-lisätehtävää (auxilary problem) voidaan käyttää apuna kantaratkaisun määräämiseksi menetelmän aloituksessa. Perusoperaatioilla voidaan aina LP-tehtävä saattaa muotoon Ax = b, b 0 (4.1) x 0 Ratkaisun löytämiseksi tehtävälle (4.1) tarkastellaan (lisä)tehtävää m i=1 y i = min! s.e. Ax+y = b, b 0 (4.2) x 0 y 0 missä y = (y 1,y 2,,y m )ovat lisämuuttujia. Selvästikin, jos yhtälöllä (4.1) on käypä ratkaisu, niin tehtävällä (4.2) on minimiarvo nolla, pisteessä y = 0. Jos (4.1) ei ole käypää ratkaisua niin tehtävän (4.2) minimiarvo on suurempi kuin nolla. Tehtävä (4.2) on LP-tehtävä (kanoonisessa muodossa), millä on käypä ratkaisu y = b. Kun se ratkaistaan simplex-algoritmilla, niin joka askeleella saadaan uusi käypä ratkaisu. Jos minimiarvo on nolla, niin lopullisessa käyvässä ratkaisussa kaikki y i = 0, ja loppuratkaisussa ei ole y i muuttujia kannassa (jos kanta ei ole surkastunut). Esimerkki 4.1. Etsi käypä kantaratkaisu rajoiteille: 2x 1 +x 2 +2x 3 = 4 3x 1 +3x 2 +x 3 = 3 x 1 0, x 2 0, x 3 0. Lisätään lisämuuttujat x 4 0, x 5 0 ja kustannusfunktio x 4 + x 5. Aloitustaulukko 45

saa muodon 2 1 2 1 0 4 3 3 1 0 1 3 0 0 0 1 1 0 Laajennetun systeemin käypä kantaratkaisu on lisämuuttujat. Simplex-algoritmi alustetaan muokkaamalla taulukkoa siten, että kantamuuttujien sarakkeissa viimeisellä rivillä on nollat. Saadaan 2 1 2 1 0 4 3 3 1 0 1 3 5 4 3 0 0 7 Pivotoidaan saraketta, missä on eniten negatiivinen luku. Saadaan 0 1 4/3 1 2/3 2 1 1 1/3 0 1/3 1 0 1 4/3 0 5/3 2 Pivotoidaan ainutta negatiivista saraketta. Saadaan 0 3/4 1 3/4 1/2 3/2 1 5/4 0 1/4 1/2 1/2 0 0 0 1 1 0 Molemmat lisämuuttujat ovat nyt pois kannasta, joten kustannusfunktion arvo on nolla. Alkuperäisen tehtävän käypä perusratkaisu on x 1 = 1/2, x 2 = 0, x 3 = 3/2. Kaksi-vaihe menetelmä koostuu nyt vaiheesta I, missä löydetään käypä perusratkaisu ja vaiheesta II, missä ratkaistaan alkuperäinen LP-ongelma simplex-algoritmilla. 46

Esimerkki 4.2. Tarkastellaan tehtävää 4x 1 +x 2 +x 3 = min! s.e. 2x 1 +x 2 +2x 3 = 4 3x 1 +3x 2 +x 3 = 3 x 1, x 2, x 3 0 Edellinen esimerkki suoritti vaiheen I, joten sitä ei tehdä uudelleen. Poistetaan vaiheen I lopputaulukosta lisämuuttujia vastaavat sarakkeet, saadaan vaiheen II aloitustaulukko: x 1 x 2 x 3 b 0 3/4 1 3/2 1 5/4 0 1/2 4 1 1 0 Muokaataan taulukko siten, että saadaan kantavektoreita vastaaviin sarakkeisiin viimeiselle riville nollat. Saadaan x 1 x 2 x 3 b 0 3/4 1 3/2 1 5/4 0 1/2 0 13/4 0 7/2 Simplex askel, seuraava taulukko: x 1 x 2 x 3 b 3/5 0 1 9/5 4/5 1 0 2/5 13/5 0 0 11/5 Optimi on x 1 = 0, x 2 = 2/5, x 3 = 9/5. 4.6 Laatikko-rajoitteet Usein muuttujalla x i voi olla ns. laatikko-rajoite, ts. g i x i h i. Jos muutujalle x i ei anneta rajoitetta ollenkaan, niin sanotaan, että muuttuja on vapaa ja se voidaan 47

eliminoida yhtälöryhmästä. Jos muuttujalla x i on vain ylä- tai alaraja se voidaan aina muokata muotoon x i 0. Jos muuttujalla on molemmat, ylä- ja alaraja, niin se rajoite voidaan vastaavasti muokata muotoon 0 x i h i. Sen vuoksi tarkastellaan standardimuotoista tehtävää: cx = min! s.e. (4.3) Ax = b, 0 x h. Tehtävä voidaan muokata standardimuotoon lisäämällä puutemuuttujat y i ylärja rajoitteeseen. Saadaan cx = min! s.e. (4.4) Ax = b x+y = h x 0, y 0. Simplex algoritmia voitaisiin käyttää tehtävän (4.4) ratkaisemiseen, mutta sen laskennallinen vaativuus on suurempi kuin tehtävällä (4.3). Jos matriisi A oli tyyppiä n n, niin uusi matriisi on tyyppiä (m+n) 2n, joten tehtävän dimensio kasvaa huomattavasti. Tarkastellaan simplex algoritmin yleistystä, mikä mahdollistaa tehtävän ratkaisun ilman eksplisiittistä dimension kasvattamista. Määritelmä 4.1. Tehtävän (4.3) lajennettu käypä perusratkaisu on käypä ratkaisu, mille n m muuttujaa ovat joko rajoitteen ala- tai ylärajalla; ja loput m (kanta)muuttujaa vastaavat A:n lineaarisesti riippumattomia sarakkeita. Lause 4.1. (upper bound optimality theorem) Laajenettu käypä kantaratkaisu on optimaalinen tehtävälle (4.3) jos ei-kantamuuttujille x j pätee: r j 0 jos x j = 0 r j 0 jos x j = h j. (4.5) Todistus. (menetelmän perustelu) Oletetaan, että laajennettu käypä perusratkaisu ei ole surkastunut, ts. sen m perusmuuttujaa eivät saa rajoitteen ylä- tai alarajan arvoa. Lähdetään liikkeelle laajennetusta käyvästä perusratkaisusta. Terkastellaan ei-kantamuuttujia mahdollisina uusina kanditaatteina perusmuuttujiksi. Alarajalla olevaa muuttujaa voidaan ainoastaan kasvattaa, joten sen muuttaminen on kannattavaa jos vastaava redusoitu kustannus 48

on negatiivinen. Ylärajalla olevaa muuttujaa voidaan ainoastaan pienentää, joten sen muuttaminen on kannattavaa jos vastaava redusoitu kustannus on positiivinen. Kun muutetaan ei-kantamuuttujaa x i tällä tavoin, niin sen arvo muuttuu jatkuvasti rajalta toiselle mentäessä. Samaan aikaan muuttuu kantamuuttujien arvot siten, että ne säilyvät käypinä (ts. totettavat yhtälöryhmän). Ei-kantamuuttujan arvoa voidaan muuttaa niin paljon, että joko (i) jonkin kantamuuttujan arvo törmää rajaansa, tai (ii) ei-kantamuuttujan arvo saavuttaa (vastakkaisen) rajansa. Jos nyt(i) tapahtuu ensin, niin vastaavasta kantamuuttujasta tehdään ei-kantamuuttuja ja päinvastoin. Jos taas (ii) tapahtuu ensin, niin kanta ei muutu. Proseduuria jatketaan askel askeleelta kunnes uudet, tulosta parantavat, vaihdot eivät ole enään mahdollisia. Vaadittaviensimplexoperaatioidenmuotoilemiseksionkäteväämerkitäx + i = x i, x i = h i x i,koskaalgoritmissahypitäänedestakaisinx + i :njax i :nvälilläriippuensiitä,oliko muuttuja x i aluksi ala- vai ylärajalla. Yksinkertaistetaan merkintöjä vielä hieman ja otetaan käyttöön indikaattori { +, jos x + i = x i, e i =, jos x i = h i x i. Laajennettu kanooninen muoto taulukolle on seuraava. 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.6) 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 e 1 e 2 e m e m+1 e m+2 e n Soveltamalla edellisen lauseen (todistuksen) periaatetta ja simplex menetelmää voidaan siirtyä laajennetusta käyvästä perusratkaisusta toiseen seuraavan algoritmin tavalla: Askel 1: Määrää ei-kantamuuttuja x e j j, mille r j < 0. Jos sellaista ei ole, lopeta. Olaan optimissa. 49

Askel 2: Laske kolme lukua: a) h j b) min y ij >0 c) min y ij <0 y i0 y ij y i0 h i, missä h i on i:n kantamuuttujan yläraja. y ij Askel 3: Sen mukaan, mikä arvo Askeleessa 2 on pienin päivitä laajennettua taulukkoa seuraavasti: a) Muuttuja x j menee vastakkaiselle rajalle. Vähennä h j A j sarakkeesta A 0. Kerro sarake A j -1:llä (mukaanlukien e j ). Kanta ei muutu ja pivotointia ei tarvita. b) Olkoon i kohdan (b) minimoiva indeksi Askeleessa 2.Kantamuuttuja x i palaa vanhaan rajaansa. Pivotoi alkiolla ij. c) Olkoon i kohdan (c) minimoiva indeksi Askeleessa 2. Kantamuuttuja x i menee vastakkaiselle rajaansa. Vähennä h i luvusta y i0, vaihda merkit luvuille y ii ja e i ja pivotoi alkiolla ij. Palaa Askeleeseen 1. Esimerkki 4.3. 2x 1 +x 2 +3x 3 2x 4 +10x 5 = min! s.e. x 1 +x 3 x 4 +2x 5 = 5 x 2 +2x 3 +2x 4 +x 5 = 9 0 x 1 7, 0 x 2 10, 0 x 3 1, 0 x 4 5, 0 x 5 3 Taulukko suhteellisten kustannuskertoimien laskennan jälkeen on muotoa 1 0 1 1 2 5 0 1 2 2 1 9 0 0 1 2 5 19 + + + + + Valitaan ei-kantasarake 4 testattavaksi (j=4). Lasketaan Algoritmin askel 2:n luvut (a): 5, (b): 9/2 (i=2) ja (c): 2 (i=1). Siis, sovelletaan kohtaa (c). Ennen pivotointia tehdään taulukon muokkaus, saadaan 1 0 1-1 2 2 0 1 2 2 1 9 0 0 1 2 5 19 + + + + 50

Suoritetaan pivotointi, saadaan 1 0 1 1 2 2 2 1 4 0 5 5 2 0 3 0 1 15 + + + + Seuraavaksi testataan sarake 3. Nyt saadaan luvut (a): 1, (b): 5/4 (i=2) ja (c): 3 (i=1), jote sovelletaan (a)-kohtaa. 1 0 1 1 2 3 2 1 4 0 5 1 2 0 3 0 1 12 + + + Koska redusoidut kustannukset ovat ei-negatiivisia, niin taulukko esittää optimia. Ratkaisu on x 1 = 7, x 2 = 1, x 3 = 1, x 4 = 3, x 5 = 0. 51