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

Samankaltaiset tiedostot
Lineaarinen optimointitehtävä

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

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

1 Kertaus. Lineaarinen optimointitehtävä on muotoa:

Lineaarinen optimointitehtävä

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

6. Luennon sisältö. Lineaarisen optimoinnin duaaliteoriaa

Lineaarisen kokonaislukuoptimointitehtävän ratkaiseminen

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

Malliratkaisut Demot

Demo 1: Simplex-menetelmä

Johdatus verkkoteoriaan luento Netspace

Simplex-algoritmi. T Informaatiotekniikan seminaari , Susanna Moisala

4.5 Kaksivaiheinen menetelmä simplex algoritmin alustukseen

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ä

Malliratkaisut Demo 4

TIES592 Monitavoiteoptimointi ja teollisten prosessien hallinta. Yliassistentti Jussi Hakanen syksy 2010

TIEA382 Lineaarinen ja diskreetti optimointi

Malliratkaisut Demot

Piiri K 1 K 2 K 3 K 4 R R

Mat Lineaarinen ohjelmointi

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

Mat Lineaarinen ohjelmointi

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

Malliratkaisut Demo 4

1. Lineaarinen optimointi

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

Luento 3: Simplex-menetelmä

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!

Malliratkaisut Demot 6,

Mat Lineaarinen ohjelmointi

Malliratkaisut Demot

Luento 4: Lineaarisen tehtävän duaali

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

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 15. Rajoitettu optimointi Lagrangen menetelmä Lagrangen kerroin ja varjohinta

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

Malliratkaisut Demot

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

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

TEKNILLINEN TIEDEKUNTA, MATEMATIIKAN JAOS

Harjoitus 5 ( )

Käänteismatriisin ominaisuuksia

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

Osakesalkun optimointi. Anni Halkola Turun yliopisto 2016

2.5. Matriisin avaruudet ja tunnusluvut

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

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

Talousmatematiikan perusteet: Luento 14. Rajoittamaton optimointi Hessen matriisi Ominaisarvot Ääriarvon laadun tarkastelu

Harjoitus 3 ( )

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

1 Rajoitettu optimointi I

Harjoitus 8: Excel - Optimointi

Kombinatorinen optimointi

Optimointi. Etsitään parasta mahdollista ratkaisua annetuissa olosuhteissa. Ongelman mallintaminen. Mallin ratkaiseminen. Ratkaisun analysointi

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

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

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

Harjoitus 3 ( )

2 Konveksisuus ja ratkaisun olemassaolo

Malliratkaisut Demot 5,

1 Rajoitettu optimointi III - epäyhtälörajoitteet, teoriaa

Demo 1: Branch & Bound

v 8 v 9 v 5 C v 3 v 4

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

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

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.

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

Malliratkaisut Demot

Kokonaislukuoptiomointi Leikkaustasomenetelmät

Insinöörimatematiikka D

Malliratkaisut Demot

Kimppu-suodatus-menetelmä

Monitavoiteoptimointi

1 Rajoittamaton optimointi

Lineaarinen yhtälöryhmä

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

Harjoitus 6 ( )

KKT: log p i v 1 + v 2 x i = 0, i = 1,...,n.

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.

Kokonaislukuoptimointi

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

TIES592 Monitavoiteoptimointi ja teollisten prosessien hallinta. Yliassistentti Jussi Hakanen syksy 2010

Harjoitus 6 ( )

Algoritmit 2. Luento 4 To Timo Männikkö

Malliratkaisut Demot

Malliratkaisut Demo 1

Algoritmit 2. Luento 11 Ti Timo Männikkö

Osakesalkun optimointi

Sovitaan ensin merkintätavoista. Ratkaisemme ensin yksinkertaisen yhtälöparin. 5y = 10. x = 3 x = 1

Determinantti. Määritelmä

MS-C2105 Optimoinnin perusteet Malliratkaisut 4

Harjoitus 1 ( )

Numeeriset menetelmät

811312A Tietorakenteet ja algoritmit, , Harjoitus 7, ratkaisu

Mat Lineaarinen ohjelmointi

Algoritmit 1. Luento 5 Ti Timo Männikkö

Numeeriset menetelmät TIEA381. Luento 8. Kirsi Valjus. Jyväskylän yliopisto. Luento 8 () Numeeriset menetelmät / 35

Luento 9: Yhtälörajoitukset optimoinnissa

Transkriptio:

JYVÄSKYLÄN YLIOPISTO 4. Luennon sisältö Lineaarisen optimointitehtävän ratkaiseminen Simplex-menetelmä kevät 2012 TIEA382 Lineaarinen ja diskreetti optimointi

Lineaarinen optimointitehtävä Minimointitehtävä yhtälörajoittein: min kun n j=1 n j=1 c j x j a ij x j = b i x j 0 j = 1,..., n i = 1,..., m Merkitään: z = alkuperäisen objektifunktion arvo käsiteltävänä olevassa perusratkaisussa 1

Tehtävä taulukkomuodossa: x 1 x 2... x n c 1 c 2... c n z a 11 a 12... a 1n b 1 a 21 a 22... a 2n b 2.... a m1 a m2... a mn b m 2

Tehtävän muokkaaminen Yhtälörajoitteet: a i1 x 1 + a i2 x 2 +... + a in x n = b i = a j1 x 1 + a j2 x 2 +... + a jn x n = b j (d) (a i1 + da j1 )x 1 + (a i2 + da j2 )x 2 + + (a in + da jn )x n = (b i + db j ) 3

Taulukkomuodossa: a i1 a i2... a in b i a j1 a j2... a jn b j (d) = a i1 + da j1 a i2 + da j2... a in + da jn b i + db j a j1 a j2... a jn b j 4

Objektifunktio: = c 1 x 1 + c 2 x 2 +... + c n x n a j1 x 1 + a j2 x 2 +... + a jn x n b j = 0 (d) (c 1 + da j1 )x 1 + (c 2 + da j2 )x 2 + + (c n + da jn )x n db j Objektifunktion arvo muuttuu vakiotermillä: db j 5

Taulukkomuodossa: c 1 c 2... c n z a j1 a j2... a jn b j (d) = c 1 + da j1 c 2 + da j2... c n + da jn (z db j ) a j1 a j2... a jn b j Myös nyt objektifunktion arvo muuttuu vakiotermillä: db j 6

JYVÄSKYLÄN YLIOPISTO Simplex-menetelmä Simplex-menetelmä: Kuljetaan sallitun alueen reunalla Pienissä tehtävissä käytännössä paras ja luotettavin menetelmä (jos koodattu tehokkaasti) Ratkaisuaika pahimmassa tapauksessa eksponentiaalinen George B. Dantzig, 1947 (U.S. Air Force Office of Statistical Control) Computing in Science and Engineering -lehti listasi sen yhdeksi 10:stä 1900-luvun merkittävimmistä algoritmeista (2000) kevät 2012 TIEA382 Lineaarinen ja diskreetti optimointi

Simplex-algoritmi George B. Dantzig 1947 Lineaarisen optimointitehtävän sallittu alue on konveksi monitahokas Optimointitehtävän ratkaisu löytyy sallittujen perusratkaisujen joukosta Sallitut perusratkaisut ovat sallitun alueen kärkipisteitä = Käydään läpi sallitun alueen kärkipisteitä, kunnes optimi löytyy 7

Simplex-algoritmi aloitusperusmuodosta 1. (a) Oletetaan, että optimointitehtävä on perusmuodossa: Jokaista yhtälörajoitetta vastaa perusmuuttuja, jonka kerroin kyseisessä yhtälössä on 1 ja kaikissa muissa yhtälöissä ja objektifunktiossa 0. (b) Oletetaan, että oikean puolen vakiot ovat ei-negatiivisia: Vastaava perusratkaisu on sallittu. 8

2. Jos kaikki objektifunktion kertoimet ovat ei-negatiivisia, niin vastaava perusratkaisu on optimiratkaisu. Lopetetaan. 3. (a) Valitaan jokin ei-perusmuuttuja, joka lisätään perusmuuttujien joukkoon: Valinta tehdään siten, että muunnoksessa objektifunktion arvo ei kasva. (b) Poistetaan perusmuuttujien joukosta jokin toinen muuttuja: Valinta tehdään siten, että muunnoksessa oikean puolen vakiot pysyvät ei-negatiivisina. (c) Muunnetaan tehtävä uusia perusmuuttujia vastaavaan perusmuotoon. (d) Toistetaan kohdasta 2. 9

Aloitusperusmuoto Tehtävä aloitusperusmuodossa: min c j x j + j B kun j / B a ij x j + j B j / B c j x j a ij x j = b i x j 0 j = 1,..., n i = 1,..., m missä c j = 0 ja a ij = 1 i = j 0 i j kun j B b i 0 kun i = 1,..., m 10

Esimerkiksi: min c 1 x 1 + c 3 x 3 + c 6 x 6 kun a 11 x 1 + a 13 x 3 + x 5 + a 16 x 6 = b 1 a 21 x 1 + x 2 + a 23 x 3 + a 26 x 6 = b 2 a 31 x 1 + a 33 x 3 + x 4 + a 36 x 6 = b 3 missä perusmuuttujat ovat x 2, x 4 ja x 5 11

Esimerkki taulukkomuodossa: x 1 x 2 x 3 x 4 x 5 x 6 c 1 0 c 3 0 0 c 5 0 a 11 0 a 13 0 1 a 15 b 1 a 21 1 a 23 0 0 a 25 b 2 a 31 0 a 33 1 0 a 35 b 3 Huomaa, että aloitusperusmuodossa z = 0 12

Lisättävän perusmuuttujan valinta Objektifunktio: c j x j j B }{{} + c j x j j / B }{{} = 0 = 0 koska c j = 0 koska x j = 0 kaikilla j B kaikilla j / B Voiko objektifunktion arvo pienentyä, jos jokin ei-perusmuuttuja x q siirretään perusmuuttujien joukkoon? c q 0 = ei voi c q < 0 = kyllä voi 13

= Valitaan lisättävä x q siten, että x q ei ole perusmuuttuja ja c q < 0 Jos sellaista muuttujaa ei ole, niin ratkaisu on löydetty = lopetetaan (normaali lopetus) Jos sellaisia muuttujia on useita, valitaan niistä jokin, esimerkiksi se, jota vastaava c q on pienin 14

Poistettavan perusmuuttujan valinta Yhtälörajoitteet: a ij x j + j B j / B }{{} a ij x j = b i = x i koska a ij = 1 kun i = j ja a ij = 0 kun i j i = 1,..., m = x j = b j k/ B a jk x k j B 15

= x j = b j k/ B k q a jk x k }{{} = 0 koska x k = 0 kaikilla k / B a jq x q j B x q lisätään joukkoon B = x j = b j a jq x q j B 16

Oltava voimassa: x j = b j a jq x q 0 j B Kuinka suureksi x q voi kasvaa ilman, että jokin x j muuttuu negatiiviseksi? a jq 0 = vaikka kuinka suureksi a jq > 0 = korkeintaan arvoon b j /a jq asti = Suurin mahdollinen arvo muuttujalle x q on: min {b j/a jq a jq > 0} j B 17

Siis: x j = b j a jq x q 0 j B x q voi olla korkeintaan min j B {b j/a jq a jq > 0} Olkoon p siten, että b p / = min j B {b j/a jq a jq > 0} Silloin, jos x q = b p /, niin x p = b p x q = 0 = Muuttuja x p voidaan poistaa perusmuuttujien joukosta 18

= Valitaan poistettava x p siten, että p on se indeksi jolla minimi saavutetaan min {b j/a jq a jq > 0} j B Jos minimiä ei voi laskea, eli jos a jq 0 kaikilla j B, niin sallittu alue on rajoittamaton ja tehtävällä ei ole äärellistä ratkaisua = lopetetaan (epänormaali lopetus) Jos minimi saavutetaan useammalla indeksillä, valitaan niistä jokin, esimerkiksi satunnaisesti 19

Muunnos vastaavaan perusmuotoon Lisätään x q joukkoon B Poistetaan x p joukosta B Muunnetaan tehtävä uusia perusmuuttujia vastaavaan perusmuotoon Muunnos toteutetaan taulukkomuodossa 20

Taulukko ennen muunnosta: x q... x p... x j c q... 0... c j z....... 1... a pj b p.... a iq... 0... a ij b i.... q / B p B 21

Jaetaan rivi p pivot-alkiolla > 0 : c q... 0... c j z... 1... a pj b p a iq... 0... a ij b i = c q... 0... c j z 1... 1... a pj b p a iq... 0... a ij b i 22

Vähennetään rivi p kerrottuna vakiolla c q objektifunktiorivistä: c q... 0... c j z 1... 1... a pj b p a iq... 0... a ij b i = 0... c q... c j c q a pj 1... 1... a pj z c q b p b p a iq... 0... a ij b i 23

Vähennetään rivi p kerrottuna vakioilla a iq rajoiteriveistä i : 0... c q... c j c q a pj 1... 1... a pj z c q b p b p a iq... 0... a ij b i = 0... c q... c j c q a pj 1... 1... a pj 0... a iq... a ij a iq a pj z c q b p b p b i a iq b p 24

Taulukko muunnoksen jälkeen: x q... x p... x j 0... c q... c j c q a pj z c q b p.... 1... 1... a pj b p.... 0... a iq... a ij a iq a pj b i a iq b p.... q B p / B 25

Indeksi p valittiin siten, että Oikean puolen vakiot: b p / = min j B {b j/a jq a jq > 0} b p 0 ja > 0 = b p 0 a iq 0 = b i a iq b p 0 a iq > 0 = b p b i a iq = b i a iq b p 0 = Oikean puolen vakiot säilyvät ei-negatiivisina muunnoksessa 26

Indeksi q valittiin siten, että c q < 0 Objektifunktion arvo: c q < 0 ja b p 0 = z + c q b p z = Objektifunktion arvo ei ainakaan kasva muunnoksessa 27

Simplex-algoritmin toimivuus Yhdessä simplex-iteraatiossa: tehtävä pysyy ekvivalenttina alkuperäisen tehtävän kanssa oikean puolen vakiot pysyvät ei-negatiivisina objektifunktion arvo ei kasva = Jos algoritmi pysähtyy normaalisti (c j 0 kaikilla j / B), niin vastaava perusratkaisu on optimointitehtävän ratkaisu 28

Jos optimissa c j = 0 jollain j / B, niin tehtävällä on useita ratkaisuja Jos algoritmi pysähtyy epänormaalisti (c q < 0 ja a jq 0 kaikilla j B), niin sallittu alue on rajoittamaton ja tehtävällä ei ole äärellistä ratkaisua Jos algoritmi jää jumiin (sama perusratkaisu toistuu uudestaan), niin satunnaisuus indeksin p valinnassa (kun min j B {b j /a jq a jq > 0} ei ole yksikäsitteinen) voi auttaa 29

Tehtävän muuntaminen aloitusperusmuotoon Tarvittaessa muunnetaan maksimointi minimoinniksi kertomalla objektifunktio 1:llä Tarvittaessa muunnetaan oikean puolen vakiot ei-negatiivisiksi kertomalla vastaavat rajoitteet 1:llä Muunnetaan epäyhtälörajoitteet yhtälörajoitteiksi lisäämällä tarvittavat puute- ja ylijäämämuuttujat Jos tehtävä on nyt aloitusperusmuodossa, voidaan aloittaa simplex-algoritmi 30

Esimerkki Maksimointitehtävä ja epäyhtälörajoitteet: max 30x 1 + 20x 2 kun x 1 + x 2 80 2x 1 + x 2 100 x 1 40 x 1, x 2 0 31

Muunnetaan maksimointi minimoinniksi ja epäyhtälörajoitteet yhtälörajoitteiksi: min 30x 1 20x 2 kun x 1 + x 2 + s 1 = 80 2x 1 + x 2 + s 2 = 100 x 1 + s 3 = 40 x 1, x 2, s 1, s 2, s 3 0 Nyt tehtävä on aloitusperusmuodossa, perusmuuttujina puutemuuttujat s 1, s 2 ja s 3 32

Aloitusperusmuodon simplex-taulukko: x 1 x 2 s 1 s 2 s 3 30 20 0 0 0 0 1 1 1 0 0 80 2 1 0 1 0 100 1 0 0 0 1 40 33

30 20 0 0 0 0 1 1 1 0 0 80 2 1 0 1 0 100 1 0 0 0 1 40 = 0 20 0 0 30 1200 0 1 1 0 1 40 0 1 0 1 2 20 1 0 0 0 1 40 34

0 20 0 0 30 1200 0 1 1 0 1 40 0 1 0 1 2 20 1 0 0 0 1 40 = 0 0 0 20 10 1600 0 0 1 1 1 20 0 1 0 1 2 20 1 0 0 0 1 40 35

0 0 0 20 10 1600 0 0 1 1 1 20 0 1 0 1 2 20 1 0 0 0 1 40 = 0 0 10 10 0 1800 0 0 1 1 1 20 0 1 2 1 0 60 1 0 1 1 0 20 36

Optimaalinen simplex-taulukko: x 1 x 2 s 1 s 2 s 3 0 0 10 10 0 1800 0 0 1 1 1 20 0 1 2 1 0 60 1 0 1 1 0 20 Ratkaisu: (x 1, x 2 ) = (20,60) ja (s 1, s 2, s 3 ) = (0,0,20) Minimointitehtävän objektifunktion arvo: 1800 = alkuperäisen maksimointitehtävän objektifunktion arvo: 1800 37