Mat Lineaarinen ohjelmointi

Samankaltaiset tiedostot
Mat Lineaarinen ohjelmointi

Mat Lineaarinen ohjelmointi

Mat Lineaarinen ohjelmointi

4.5 Kaksivaiheinen menetelmä simplex algoritmin alustukseen

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!

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

Johdatus verkkoteoriaan luento Netspace

Luento 3: Simplex-menetelmä

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

Piiri K 1 K 2 K 3 K 4 R R

Simplex-algoritmi. T Informaatiotekniikan seminaari , Susanna Moisala

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

Mat Lineaarinen ohjelmointi

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ä

Malliratkaisut Demot

Lineaarisen ohjelman määritelmä. Joonas Vanninen

Malliratkaisut Demot 6,

Mat Lineaarinen ohjelmointi

1 Kertaus. Lineaarinen optimointitehtävä on muotoa:

Malliratkaisut Demot

2 Konveksisuus ja ratkaisun olemassaolo

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

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

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

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

Kokonaislukuoptiomointi Leikkaustasomenetelmät

Malliratkaisut Demot

Malliratkaisut Demot 5,

Demo 1: Simplex-menetelmä

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

1. Lineaarinen optimointi

Trimmitysongelman LP-relaksaation ratkaiseminen sarakkeita generoivalla algoritmilla ja brute-force-menetelmällä

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

Lineaarinen optimointitehtävä

1 Rajoittamaton optimointi

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

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

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

Osakesalkun optimointi. Anni Halkola Turun yliopisto 2016

73125 MATEMAATTINEN OPTIMOINTITEORIA 2

2.5. Matriisin avaruudet ja tunnusluvut

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

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

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

Harjoitus 7: vastausvihjeet

Insinöörimatematiikka D

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.

Taustatietoja ja perusteita

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

Insinöörimatematiikka D

, on säännöllinen 2-ulotteinen pinta. Määrää T x0 pisteessä x 0 = (0, 1, 1).

f(x 1, x 2 ) = x x 1 k 1 k 2 k 1, k 2 x 2 1, 0 1 f(1, 1)h 1 = h = h 2 1, 1 12 f(1, 1)h 1 h 2

Koodausteoria, Kesä 2014

2 Osittaisderivaattojen sovelluksia

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

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

Matematiikan tukikurssi

Lineaarialgebra ja matriisilaskenta I

Talousmatematiikan perusteet

Operatioanalyysi 2011, Harjoitus 3, viikko 39

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

TEKNILLINEN TIEDEKUNTA, MATEMATIIKAN JAOS

1 Rajoitettu optimointi I

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.

Ominaisarvo ja ominaisvektori

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

5 OMINAISARVOT JA OMINAISVEKTORIT

Matematiikan perusteet taloustieteilijöille II Harjoituksia kevät ja B = Olkoon A = a) A + B b) AB c) BA d) A 2 e) A T f) A T B g) 3A

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

Insinöörimatematiikka D

Haitallinen valikoituminen: yleinen malli ja sen ratkaisu

Insinöörimatematiikka D

Luento 4: Lineaarisen tehtävän duaali

Luento 6: Monitavoitteinen optimointi

MS-A0204 Differentiaali- ja integraalilaskenta 2 (ELEC2) Luento 6: Ääriarvojen luokittelu. Lagrangen kertojat.

Inversio-ongelmien laskennallinen peruskurssi Luento 2

Lineaariset yhtälöryhmät ja matriisit

Lineaarikombinaatio, lineaarinen riippuvuus/riippumattomuus

Oletetaan ensin, että tangenttitaso on olemassa. Nyt pinnalla S on koordinaattiesitys ψ, jolle pätee että kaikilla x V U

ja B = 2 1 a) A + B, b) AB, c) BA, d) A 2, e) A T, f) A T B, g) 3A (e) A =

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

30A01000 Taulukkolaskenta ja analytiikka Luku 8: Lineaarinen optimointi ja sen sovellukset

Luento 1: Optimointimallin muodostaminen; optimointitehtävien luokittelu

Lineaaristen monitavoiteoptimointitehtävien ratkaiseminen

ja B = 2 1 a) A + B, b) AB, c) BA, d) A 2, e) A T, f) A T B, g) 3A (e)

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

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

Mapu 1. Laskuharjoitus 3, Tehtävä 1

Kimppu-suodatus-menetelmä

MS-C1340 Lineaarialgebra ja

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

Kanta ja Kannan-vaihto

MS-C1340 Lineaarialgebra ja differentiaaliyhtälöt

Luento 1: Optimointimallin muodostaminen; optimointitehtävien luokittelu

MS-A0205/MS-A0206 Differentiaali- ja integraalilaskenta 2 Luento 6: Ääriarvojen luokittelu. Lagrangen kertojat.

Kokonaislukuoptimointi

6. Luennon sisältö. Lineaarisen optimoinnin duaaliteoriaa

4. Kokonaislukutehtävän ja LP:n yhteyksiä

Keskeiset tulokset heikko duaalisuus (duaaliaukko, 6.2.1) vahva duaalisuus (6.2.4) satulapisteominaisuus (6.2.5) yhteys KKT ehtoihin (6.2.

Transkriptio:

Mat-2.3140 Lineaarinen ohjelmointi 4.10.2007 Luento 4 Ekstreemipisteiden optimaalisuus ja Simplex (kirja 2.4-2.6, 3.1-3.2) Lineaarinen ohjelmointi - Syksy 2007 / 1

Luentorunko Degeneroituvuus Ekstreemipisteiden olemassaolo ja optimaalisuus Yhteenveto tähän asti Simplex Periaate Kantasuunnat Redusoidut kustannukset Optimaalisuusehdot Menetelmä Lineaarinen ohjelmointi - Syksy 2007 / 2

Degeneroituvuus (1/3) Edellinen luento: ratkaisun kiinnittää n kpl lineearisesti riippumattomia aktiivisia rajoitteita Kantaratkaisussa aktiivisia rajoitteita saattaa olla enemmän kuin n kpl usea tapa valita näistä n lineaarisesti riippumatonta, eli kannan valinta ei 1- käs! Tällöin sanotaan, että kantaratkaisu on degeneroitunut Standardimuotoisessa tehtävässä = yksi tai useampi kantamuuttuja nollassa Lineaarinen ohjelmointi - Syksy 2007 / 3

Degeneroituvuus (2/3) Esimerkki kakkutehtävästä Kylän leipomusvirasto päättää, ettei päivittäin leivottavien kinuskikakkujen lukumäärä saa ylittää suklaakakkujen määrää enemmällä kuin kolmella kakulla. Leipomo lisää siis rajoitteen x1 + x2+ x6 = 3 LP-tehtäväänsä: x 6 x 4 x 5 x 1 x 3 x 2 Nyt kantaratkaisussa D aktiivisina kolme rajoitetta x1 = x4 = x6, eli D on degeneroitunut (3>2) Kolme eri kantaa johtavat samaan ratkaisuun! Mitkä? Lineaarinen ohjelmointi - Syksy 2007 / 4

Degeneroituvuus (3/3) Degeneroituvuus on Simplexin kannalta kiusallinen ongelma Joakin degeneroituvuutta aiheuttavaa rajoitetta hieman poikkeuttamalla voidaan ongelmasta päästä eroon Esim. kinuskikakkujen määrä saa ylittää suklaakakkujen määrän enintään 2,9:llä... 3 2,9 Lineaarinen ohjelmointi - Syksy 2007 / 5

Ekstreemipisteiden olemassaolo (1/2) Teoreema 2.6: { i=1,...,m} n Ol. P= x R a i' x bi, seuraavat ovat ekvivalentteja: a) P:llä on ainakin yksi ekstreemipiste b) P ei sisällä suoraa a 1,...,a m c) Joukosta löytyy n kpl lineaarisesti riippumattomia vektoreita. Tällöin Lineaarinen ohjelmointi - Syksy 2007 / 6

Ekstreemipisteiden olemassaolo (2/2) Rajoitettu monitahokas ei sisällä suoraa Positiivisten akselien rajaama alue ei sisällä suoraa Siispä rajoitetulle monitahokkaalle ja monitahokkaalle standardimuodossa löytyy ainakin yksi käypä kantaratkaisu eli ekstreemipiste! Lineaarinen ohjelmointi - Syksy 2007 / 7

Ekstreemipisteiden optimaalisuus Seurauslause 2.3 Olkoon tehtävänä minimoida kustannusta c x monitahokkaassa P. Tällöin joko optimikustannus on - tai P:llä on olemassa ekstreemipiste, joka on optimaalinen Lineaarinen ohjelmointi - Syksy 2007 / 8

Yhteenveto tähän asti (1/2) LP-tehtävän ratkaisusta: Jos käypä joukko on epätyhjä ja rajoitettu, optimaalinen ratkaisu on olemassa ja löytyy ekstreemipisteestä Jos käypä joukko on rajoittamaton i) Optimi on olemassa ja löytyy ekstreempisteestä ii) Optimi on olemassa, mutta ei ekstreemipistettä (ei voi käydä standarimuodossa) iii) Optimaalinen kustannus on Lineaarinen ohjelmointi - Syksy 2007 / 9

Yhteenveto tähän asti (2/2) Kantaratkaisu saatiin kiinnittämällä kaksi lineaarisesti riippumatonta rajoitetta aktiivisiksi Rajoitteita vastaavat muuttujat nollassa loput muuttujat kannassa Kantamatriisi = kantamuuttujia vastavaavat sarakkeet matriisista A x 2 x 4 x 5 x 1 x 3 x 2 x x 1 3 = x5 x1,x2, x Aktiiviset rajoitteet Kannassa loput muuttujat 4 Lineaarinen ohjelmointi - Syksy 2007 / 10

Simplex: periaate (1/3) Standardimuotoisen tehtävän ratkaisu löytyy siis aina ekstreemipisteestä käydään ne kaikki läpi ja valitaan paras? Ekstreemipisteiden lkm on äärellinen, mutta voi kuitenkin kasvaa eksponentiaalisesti rajoitteiden lkm:n kanssa Tarvitaan menetelmä, joka siirtyy ekstreemipisteestä toiseen vain ratkaisun parantuessa Lineaarinen ohjelmointi - Syksy 2007 / 11

Simplex: periaate (2/3) Konveksin funktion lokaali minimi on konveksissa joukossa myös globaali Monitahokas on konveksi joukko, ja kustannusfunktio lineaarisena myös konveksi Riittää siis tutkia ratkaisun lähiympäristöä jos kustannus ei parane, ollaan lokaalissa eli globaalissa optimissa. Tehtävän ratkaisu löytyy aina kulmapisteestä - rajoitutaan tutkimaan liikkumista alueen reunoja pitkin kulmasta toiseen Lineaarinen ohjelmointi - Syksy 2007 / 12

Simplex: periaate (3/3) Simplex: 1) Etsitään mikä tahansa käypä kantaratkaisu 2) Siirrytään sellaiseen vierekkäiseen käypään kantaratkaisuun, joka antaa paremman arvon kustannukselle. Jatketaan tätä, kunnes parannusta ei enää tapahdu, ja ollaan optimissa. x 2 (0,0), kustannus 0 (2,0), kustannus -30 c ' x= 15x1+ 10x (2,2), kustannus -50, optimi (1,3), kustannus -45 x 1 Lineaarinen ohjelmointi - Syksy 2007 / 13 2

Simplex: kantasuunnat (1/4) Simplexissä liikutaan käyvän alueen reunoja pitkin Kulmapisteessä aktiivisia rajoitteita vastaavat muuttujat (siis ei-kantamuuttujat) nollassa poistuttaessa jokin x j näistä kasvaa (astuu kantaan) muiden pysyessä nollassa Kulmapisteestä lähdetään siis suuntaan d, jossa d j =1 ja d i kaikille muille eikantamuuttujien indekseille i x 2 x 1 x 4 x 2 x 5 x 3 Aktiivisina rajoitteet x 2. Lähdetään kasvattamaan x1 :ä, joten d1=1 ja d 2. x 1 x 1 Lineaarinen ohjelmointi - Syksy 2007 / 14

Simplex: kantasuunnat (2/4) Kantamuuttujia vastaa suunta = d,..., d. Jotta pysyttäisiin käyvässä alueessa, kun suuntaan d on liikuttu θ :n verran, tulee toteutua A ( x+θd) = b. Koska x on käypä (Ax=b), tarkoittaa edellinen Ad=0 Siis: 0 kääntyvä, eli j:s kantasuunta ( ) x d ( 1) ( m) n m = Ad = A d = A d + A = d + i i i= 1 i= 1 d = 1 A j A ( i) ( i) j j Lineaarinen ohjelmointi - Syksy 2007 / 15

Simplex: kantasuunnat (3/4) Jos lähtöpiste x ei ole degeneroitunut, toteutuvat suunnassa d myös muuttujien ei-negatiivisuusehdot : x 0 Ei-kantamuuttujien kohdalla selvästi, sillä j:s muuttuja kasvaa ja muut pysyvät nollassa Kantamuuttujien kohdalla riittävän pienellä θ x > 0, joten x θd 0 + Lineaarinen ohjelmointi - Syksy 2007 / 16

Simplex: kantasuunnat (4/4) Degeneroituneessa tilanteessa jokin kantamuuttuja on nollassa, eli saatetaan joutua pois käyvästä alueesta x ( ) Jos i, siirtyminen negatiiviseen suuntaan johtaa välittömästi ei-käyvään alueeseen x, Olkoot 1 x 6 eikantamuuttujia. Tuodaan x 1 kantaan, jolloin sitä kasvatetaan pitämällä x 6 nollassa. Tämä suunta vie välittömästi ulos käyvästä alueesta x 4 < 0 ( ) x 6 x 4 x 5 x 1 x 3 d ( i) Lineaarinen ohjelmointi - Syksy 2007 / 17

Simplex: redusoidut kustannukset (1/2) Siirryttäessä yksikön verran suuntaan d, kustannus muuttuu c ' d = c ' d + c Sijoitetaan tähän d :n yhtälö, jolloin saadaan muuttujaa x j vastaava redusoitu kustannus : c j j c j = c j c ' 1 A j Mudostavat vektorin c' = c' c ' 1 A Lineaarinen ohjelmointi - Syksy 2007 / 18

Simplex: redusoidut kustannukset (2/2) Ei-kantamuuttujan tapauksessa kertoo, miten muuttujan x j kantaan tuominen vaikuttaa kustannukseen Kantamuuttujan tapauksessa : c ( i ) = sillä c ( i ) c ' 1 A ( i ) c c Ts. ei hyödytä tuoda kantaan muuttujaa, joka siellä jo on = [ A,..., A ] = ( 1 ) ( m ) c ( i ) c j ' c j e i = c ( i ) ( i ) = 0 Lineaarinen ohjelmointi - Syksy 2007 / 19

Simplex: optimaalisuusehdot x j Muuttuja kannattaa tuoda kantaan, jos se aiheuttaa kustannuksen pienenemisen Optimiratkaisussa tällaista muuttujaa ei löydy Määritelmä 3.3: Kanta on optimaalinen, jos: 1 x = b 0 1 c' = c' c ' A 0 a) (käypyys) b) (ei kustannusta vähentäviä suuntia) Lineaarinen ohjelmointi - Syksy 2007 / 20

Simplex: menetelmä (1/6) Siirtyminen vierekkäiseen ratkaisuun: 1) Kasvatetaan kantaan astuvan, kustannusta pienentävän eikantamuuttujan arvoa 2) Suunta vähentää kustannusta, eli kannattaa siirtyä sitä pitkin niin pitkälle kuin mahdollista, t.s. alueen reunalle 3) Reunalla uusi rajoite aktiiviseksi = vastaava kantamuuttuja nollaksi eli pois kannasta: vierekkäinen ratkaisu! x 2 x 1 x 4 x 5 x 3 x x1 2 Aktiivisina rajoitteet x1 = x2 Tuodaan x 1 kantaan eli kasvatetaan sen arvoa kunnes törmätään alueen reunaan, jossa, siis pois kannasta x3 x3 Lineaarinen ohjelmointi - Syksy 2007 / 21

Simplex: menetelmä (2/6) Etsitään siis sellaista askelpituutta θ *, jolla juuri ja juuri pysytään alueessa: { θ 0 A( x+ θd) = b, x+ 0} θ* = max θd Koska Ad=0, on huolehdittava vain muuttujien einegatiivisuusehdoista Jos d 0, voidaan suuntaan d liikkua mielivaltaisen pitkälle, eli θ* =. Lineaarinen ohjelmointi - Syksy 2007 / 22

Simplex: menetelmä (3/6) Jos < 0 jollakin i, d i x i + θd 0 θ i x d i i Edellisen täytyy toteutua kaikilla i, θ :n arvo on: x { } = i θ* min i d i< 0 di { } < 0, joten suurin Koska ei-kantamuuttujille d i 0, 1, voidaan edellinen mininmointi rajoittaa kantamuuttujia vastaaviin indekseihin 1,..., m. ( ) ( ) d i Lineaarinen ohjelmointi - Syksy 2007 / 23

Simplex: menetelmä (4/6) Muuttujien päivitys: x j : = θ * x ( ) : = x ( ) + θ * d ( ), i=,..., m i i i 1 x ( l) menee nollaksi, eli poistuu kannasta; taas poikkeaa nollasta, eli astuu kantaan Uusi kantamatriisi saadaan korvaamalla :n muuttujaa x ( l) vastaava sarake A ( l ) kantaan otettua muuttujaa vastaavalla sarakkeella. x j x j A j Lineaarinen ohjelmointi - Syksy 2007 / 24

Simplex: menetelmä (5/6) Merkitään selkeyden vuoksi u= d Menetelmä: 1) Aloitetaan jostain käyvästä kantaratkaisusta x ja kantamatriisista 2) Lasketaa redusoidut kustannukset j j j jos kaikki positiivisia, ollaan optimissa. Jos ei, valitaan jokin neg. kustannusta vastaava kantaan astuvaksi u = 1 A j c 3) Lasketaan. Jos kaikki u:n komponentit einegatiivisia, on optimikustannus. x j c = c ' 1 A Lineaarinen ohjelmointi - Syksy 2007 / 25

Simplex: menetelmä (6/6) 4) Jos u:lla pos. komponentteja, lasketaan θ* 5) Edellisen minimoivaa indeksiä ( l ) vastaava muuttuja x ( poistuu kannasta. Uusi kantamatriisi saadaan l ) korvaamalla :n sarake A ( l ) sarakkeella A j. Uudet kantamuuttujien arvot ovat x j : = θ * ja : = x θ * u, i l. Ei-kantamuuttujat nollassa. x ( i ) ( i ) ( i ) x { } ( i ) = min i= 1,...,m u > ( i ) 0 u( i ) Lineaarinen ohjelmointi - Syksy 2007 / 26