Simplex-algoritmi. T Informaatiotekniikan seminaari , Susanna Moisala

Samankaltaiset tiedostot
Luento 3: Simplex-menetelmä

Mat Lineaarinen ohjelmointi

Lineaarinen optimointitehtävä

4.5 Kaksivaiheinen menetelmä simplex algoritmin alustukseen

Demo 1: Simplex-menetelmä

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

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ä

Kokonaislukuoptiomointi Leikkaustasomenetelmät

Yhtälöryhmä matriisimuodossa. MS-A0007 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ä

Mat Lineaarinen ohjelmointi

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

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

Johdatus verkkoteoriaan luento Netspace

Malliratkaisut Demot

Luento 4: Lineaarisen tehtävän duaali

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

Vektoreiden virittämä aliavaruus

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

Ennakkotehtävän ratkaisu

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

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!

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

Mat Lineaarinen ohjelmointi

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

1 Kertaus. Lineaarinen optimointitehtävä on muotoa:

Kaksirivisen matriisin determinantille käytämme myös merkintää. a 11 a 12 a 21 a 22. = a 11a 22 a 12 a 21. (5.1) kaksirivine

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

Insinöörimatematiikka D

Lineaarialgebra II, MATH.1240 Matti laaksonen, Lassi Lilleberg

Käänteismatriisin ominaisuuksia

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

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

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

Malliratkaisut Demot

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.

Lineaarisen kokonaislukuoptimointitehtävän ratkaiseminen

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

2.5. Matriisin avaruudet ja tunnusluvut

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

Ratkaisuehdotukset LH 7 / vko 47

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.

Numeeriset menetelmät

Harjoitus 8: Excel - Optimointi

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

Harjoitus 3 ( )

4.6 Matriisin kääntäminen rivioperaatioilla

1 Matriisit ja lineaariset yhtälöryhmät

Matriisilaskenta Luento 8: LU-hajotelma

BM20A0700, Matematiikka KoTiB2

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

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

Numeeriset menetelmät

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

Johdatus verkkoteoriaan 4. luento

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

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

Lineaarikombinaatio, lineaarinen riippuvuus/riippumattomuus

s = 11 7 t = = 2 7 Sijoittamalla keskimmäiseen yhtälöön saadaan: k ( 2) = 0 2k = 8 k = 4

Malliratkaisut Demot

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

3 Toisen kertaluvun lineaariset differentiaaliyhtälöt

5 OMINAISARVOT JA OMINAISVEKTORIT

Malliratkaisut Demot 5,

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

1.1. Määritelmiä ja nimityksiä

Insinöörimatematiikka D

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

MS-C1340 Lineaarialgebra ja

802118P Lineaarialgebra I (4 op)

MS-C1340 Lineaarialgebra ja differentiaaliyhtälöt

Yhteenlaskun ja skalaarilla kertomisen ominaisuuksia

Insinöörimatematiikka D

Matriisilaskenta Luento 16: Matriisin ominaisarvot ja ominaisvektorit

Aiheet. Kvadraattinen yhtälöryhmä. Kvadraattinen homogeeninen YR. Vapaa tai sidottu matriisi. Vapauden tutkiminen. Yhteenvetoa.

1. LINEAARISET YHTÄLÖRYHMÄT JA MATRIISIT. 1.1 Lineaariset yhtälöryhmät

2 Konveksisuus ja ratkaisun olemassaolo

Harjoitus 3 ( )

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

Lineaarinen yhtälöryhmä

Insinöörimatematiikka D

Insinöörimatematiikka D

Lineaarinen optimointitehtävä

Käänteismatriisin. Aiheet. Käänteismatriisin ominaisuuksia. Rivioperaatiot matriisitulona. Matriisin kääntäminen rivioperaatioiden avulla

Operatioanalyysi 2011, Harjoitus 3, viikko 39

Matematiikka B2 - Avoin yliopisto

ax + y + 2z = 0 2x + y + az = b 2. Kuvassa alla on esitetty nesteen virtaus eräässä putkistossa.

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

Matematiikan tukikurssi, kurssikerta 3

Aiheet. Kvadraattinen yhtälöryhmä. Kvadraattinen homogeeninen YR. Vapaa tai sidottu matriisi. Vapauden tutkiminen. Yhteenvetoa.

7 Vapaus. 7.1 Vapauden määritelmä

Lineaarialgebra ja differentiaaliyhtälöt Laskuharjoitus 1 / vko 44

Neliömatriisi A on ortogonaalinen (eli ortogonaalimatriisi), jos sen alkiot ovat reaalisia ja

MS-C1340 Lineaarialgebra ja

Gaussin ja Jordanin eliminointimenetelmä

MS-A0003/A0005 Matriisilaskenta Malliratkaisut 4 / vko 47

5 Lineaariset yhtälöryhmät

Matematiikka B2 - TUDI

Determinantti 1 / 30

Transkriptio:

Simplex-algoritmi T-6.5 Informaatiotekniikan seminaari..8, Susanna Moisala

Sisältö Simplex-algoritmi Lähtökohdat Miten ongelmasta muodostetaan ns. Simplextaulukko Miten haetaan käypä aloitusratkaisu Mitä pivotointi on ja miten se toimii Artificial variable eli Two-phase metodi Menetelmä, jossa jo aloitusratkaisun etsimisessä käytetään Simplexiä

Simplexin lähtökohta (/) Standardimuotoinen LP: min z=c T x, s.e. Ax = b, x A on mxn kokoinen matriisi, oletus m<=n, rank(a)=m Merkitään: A = [A B A N ], jossa A B on A:n kanta, eli A:n lineaarisesti riippumattomat sarakkeet (m kpl) A N on A:n muut sarakkeet

Simplexin lähtökohta (/) Kantaratkaisu (bs): x=a B - b Käypä kantaratkaisu (bfs): x =A B - b, x LP:tä vastaa polytooppi (käypä alue), jonka kulmapisteissä on käyvät kantaratkaisut Optimiratkaisu on joku käyvistä kantaratkaisuista Tarvitaan äärellinen määrä askelia optimiratkaisun löytämiseksi

Taulukon muodostaminen Min z=c T x, s.e. Ax=b, x ns. Simplex-taulukko Esimerkki z=x +x +x +x 4 +x 5 =x +x +x ratkaisu x - x - x - x4 - x5 - =5x +x +x +x 4 5 4=x +5x +x +x 5 4 5 Huom. Kustannusfunktio muotoon -z=-x -x -x -x 4 -x 5

Käypä aloitusratkaisu Jos alussa Ax b, niin slack-muuttujat muodostavat käyvän aloitusratkaisun (bfs) Ax b -> ylijäämämuuttujat Muuten käypä aloitusratkaisu saadaan esim. Gaussin eliminoinnin avulla Kantasarakkeet muodostavat identiteettimatriisin, lisäksi kantasarakkeiden kustannusfunktion kerroin on nolla Gaussin eliminointi ei toimi aina, koska saatu ratkaisu ei välttämättä ole käypä, tällöin käytetään Two-phase metodia

Aloitusratkaisu slack-muuttujista Esimerkki: z = 5x + 4x 6x + 4x 4 x + x 6 x x, x z = 5x + 4x 6x + 4x + s = 4 x + x + s = 6 x + s = x, x, s, s, s Kannan muodostavat s,s,s Bfs: s =4, s =6, s = (x =, x = => z=) ratkaisu 4 6 x -5 6 x -4 4 s s s

Aloitusratkaisu Gaussin eliminoinnilla Gaussin eliminointi: suoritetaan perus rivioperaatioita, kunnes kantasarakkeet muodostaa identiteettimatriisin ratkaisu 4 x 5 x 5 x x4 x5 Esimerkki: vähennetään rivi rivistä ja rivistä ja sitten vähennetään saadut rivit, ja rivistä ratkaisu -6 x - - x - - x x4 x5

Pivotointi (periaate) Käyvästä kantaratkaisusta bfs x saadaan uusi bfs x pivotoinnilla Pystytään liikkumaan käyvän alueen kärkipisteistä toiseen Kanta siis muuttuu Kantaan tulevalla muuttujalla on z-rivillä itseisarvoltaan suurin negatiivinen kerroin Kannasta lähtevällä muuttujalla on pienin positiivinen ratkaisun ja tulevan muuttujan arvon suhde (ko. muuttujan rivillä) Kantaan tulevan rivin ja kannasta lähtevän sarakkeen risteymässä on pivot-alkio Kun jokaisen muuttujan kerroin -z-rivillä on positiivinen, eli, saatu ratkaisu on optimiratkaisu

Pivotointi - Selitys kaavoilla (/) Käypä kantaratkaisu on muotoa: x =A B - b, x => Sum i= to m (x i A B(i) )=b Mikä tahansa kantaan kuulumaton sarake voidaan esittää kantasarakkeiden lineaarikombinaationa: A N(k) =Sum i= to m (x ik A B(i) ) Kertomalla alempi yhtälö skalaarilla Q> ja vähentämällä se ylemmästä, saadaan: Sum i= to m (x i -Qx ik )A B(i) +QA N(k) =b Q =min t such that Xik> (x i /x ik ), sillä x i -Qx ik >

Pivotointi - Selitys kaavoilla (/) Saatiin siis: Q =min i such that X ik> (x i /x ik ) = x m /x ik (Q on pienin positiivinen ratkaisun ja kantaan tulevan muuttujan (k) arvon suhde, m on vastaavan rivin indeksi) kun i!= m Uusi bfs: x i = x i -Q x ik = Q kun i = m kun i!= m Uusi kanta: A B (i) = A B(i) = A B(k) kun i = m

Pivotointi (esimerkki) Bfs alussa : (z=6) x =, x 4 =, x 5 = ratkaisu x x x x4 x5 Kantaan tuleva: x -z -6 - - Kannasta lähtevä: x Q =/, m= Uusi pivot rivi = (nykyinen pivot rivi) / (pivot alkio) x x4 x5 - - Uusi muu rivi = (nykyinen rivi) (rivin pivot sarakkeen alkio)* (uusi pivot rivi) -z x ratkaisu -9/ / x / / x x / / x4 x5 Uusi bfs: (z=9/) x4 5/ 7/ / x =/, x 4 =5/, x 5 = / x5 / -/ -/

Two-phase metodi (periaate) Lineaarisen optimointitehtävän ratkaiseminen Tapauksiin, joissa aloitusratkaisu ei ole käypä (joku b:n arvo on negatiivinen) Vaiheet:. Haetaan käypä aloitusratkaisu keinotekoisten muuttujien ja Simplex-algoritmin avulla. Ratkaistaan alkuperäinen ongelma Simplexillä käyttäen saatua aloitusratkaisua

Two-phase metodi (/). vaihe: aloitusratkaisun bfs etsiminen Tarvittaessa kerrotaan alkuperäisiä yhtälöitä -:llä, että kaikki ratkaisu-sarakkeen arvot b i Lisätään keinotekoiset muuttujat (artificial variables) x a i Simplex-taulukon vasemmalle: z-rivin arvot nollia, muut identiteettimatriisina Saadaan bfs: x a i =b i z b x a... x a m x A x n

Two-phase metodi (/) Minimoidaan kustannusfunktiota P= Sum i= to m (x a i ) Simplex-algoritmilla Jos P:n minimoinnista seurasi:. Saatiin optimiratkaisu ja P>: bfs:ää alkuperäiseen ongelmaan ei löydy => lopetetaan (jotta bfs löytyisi, täytyy min P, eli keinotekoisten muuttujien summan minimi olla nolla). P meni nollaan ja yksikään x a i ei kuulu kantaan: ratkaisu on alkuperäisen ongelman bfs => jatketaan.vaiheeseen. P meni nollaan, mutta osa x a i:stä kuuluu kantaan nolla tasolla: a basic degenerate feasible solution"

Two-phase metodi (/).vaihe, tapaus (jatkuu) Ajatellaan, että saadun kannan i:s sarake on vastaavan keinotekoisen muuttujan x a i sarake ja x i = Ajetaan keinotekoinen muuttuja x a i pois kannasta pivotoimalla mitä tahansa alkiota x ik!= (koska Q =, kustannus P ei muutu) Toistetaan kunnes saadaan käypä kanta, jossa on alkuperäiset muuttujat => jatketaan.vaiheeseen. vaihe: ratkaistaan alkuperäinen ongelma Simplexalgoritmilla, käyttäen saatua aloitusratkaisua

Yhteenveto Optimiratkaisua etsitään käyvän alueen kulmapisteistä, eli bfs:eistä Aloitusratkaisu bfs saadaan slack-muuttujista, Gaussin eliminoinnilla tai Two-phase metodilla Pivotoinnin avulla voidaan siirtyä yhdestä bfs:stä toiseen, kunnes optimiratkaisu löytyy

Kysymyksiä?