Esittely latautuu. Ole hyvä ja odota

Esittely latautuu. Ole hyvä ja odota

4. Lineaarinen optimointi

Samankaltaiset esitykset


Esitys aiheesta: "4. Lineaarinen optimointi"— Esityksen transkriptio:

1 4. Lineaarinen optimointi

2 Yleistä Optimoinnissa pyritään löytämään joko maksimi tai minimiarvo.
Aikaisemmin on perehdytty rajoittamattomaan optimointiin ja minimin hakuun käyttäen Newtonin menetelmää. On mahdollista asettaa ns. rajoiteyhtälöitä, ja tilanteesta riippuen nämä ovat joko lineaarisia tai epälineaarisia. T051403

3 Seuraavassa epälineaarisiin optimointitehtäviin ei puututa, mutta tarkastellaan lineaarista optimointitehtävää. Käytännön ratkaisun kannalta on tärkeää, että ongelma voidaan saattaa matemaattiseen muotoon, jossa kohdefunktiolle l. objektiivifunktiolle haetaan joko maksimi- tai minimiarvoa. T051403

4 Lineaarinen optimointi
Jos sekä kohdefunktio että rajoitteet ovat lineaarisia, on kyseessä lineaarisen optimoinnin tehtävä (Linear Programming). Kun optimointitehtävässä on vain kaksi muuttujaa, ongelmaa voidaan havainnollistaa helposti xy-koordinaatistossa. T051403

5 Simplex-algoritmin matriisimuodon käsittely sivuutetaan.
Kun muuttujia on useita, ei havainnollistusta voida tehdä. Tehtävän ratkaisuun tarvitaan ns. Simplex-algoritmi, jonka eräs muoto voidaan esittää ns. Simplex-taulujen avulla (tableaus). Simplex-algoritmin matriisimuodon käsittely sivuutetaan. Seuraavan yksinkertaisen ongelman avulla on helppo kuvat lineaariseen optimointiin liittyviä peruskäsitteitä. T051403

6 Esimerkki. min -3x1 – x2 ehdoilla x1 – 2x2 ≤ 4 2x1 + x2 ≤ 18 x2 ≤ 10
T051403

7 x on ratkaisu, jos se toteuttaa standardimuotoisen tehtävän.
Jokaista epäyhtälöä vastaa tietty puoliavaruus. Käypä joukko on rajoite-epäyhtälöiden muodostama joukko, jossa kaikki ehdot toteutuvat. x on ratkaisu, jos se toteuttaa standardimuotoisen tehtävän. x on käypä ratkaisu, jos edellisen lisäksi x ≥ 0. x on optimaalinen käypä ratkaisu, jos se edellisten lisäksi minimoi kustannusfunktion. T051403

8 Optimointitehtävässä pyritään löytämään optimaalista ratkaisua, joka saavutetaan tiettyjen ehtojen vallitessa. Matemaattisesti voidaan osoittaa, että LP-ongelman optimiratkaisu löytyy käyvän joukon reunapisteistä. Itseasiassa riittää määrittää käyvän joukon ääripisteet (eli 2 ul. tehtävissä nurkkapisteet) T051403

9 Katsotaan vielä esimerkki Maplen help-sivustolta.
Monissa yksinkertaisissa käsin laskettavissa tehtävissä viimeisen esimerkin tapa käsitellä on havainnollinen, kun muuttujia on vain kaksi ja rajoitteita sopivan vähän. Siksi pyritään tehtävien ratkaisuun matriisien avulla. T051403

10 LP-optimointitehtävät voidaan esittää standardimuodossa
subject to T051403

11 Now matrix A is size m x n and vectors

12 Now the standard form of the LP-problem can be stated as min cTx
subject to Ax = b x ≥ 0 T051403

13 Usein käytännössä rajoiteyhtälöiden sijasta ainakin osa on epäyhtälömuotoisia, ja ne muutetaan käsinlaskennassa yhtälömuotoisiksi. Maplella laskettaessa riittää esittää vain tehtävän vaatima matriisimuoto. T051403

14 T051403

15 T051403

16 Tällöin joko lisäämällä pelivara (slack) - tai ylijäämämuuttujia(surplus), muutetaan tehtävä standardimuotoon. Tarkastellaan ensin tilannetta, jossa rajoite-epäyhtälöt ovat tyyppiä ≤. T051403

17 T051403

18 jolloin päästään käsittelemään standardimuotoista tehtävää.
Kaikki epäyhtälöt muutetaan pelivara- eli slack-muuttujien avulla (yj ≥ 0), j = 1, …, m muotoon jolloin päästään käsittelemään standardimuotoista tehtävää. T051403

19 Tarkastellaan seuraavaksi tehtävää

20 Tämä on siis jälleen standardimuotoinen esitys.
Ottamalla käyttöön pelivara- l. surplus -muuttujat (wj ≥ 0), j = 1, …, m, saadaan kukin epäyhtälöistä esitettyä muodossa Tämä on siis jälleen standardimuotoinen esitys. T051403

21 Käytännössä harvat tehtävät ovat puhtaasti jommankumman tyyppisiä epäyhtälömuotoisia rajoitteita sisältäviä, vaan samassa tehtävässä esiintyy molemmanlaisia rajoitteita ja lisäksi osa rajoitteista voi olla myös suoraan yhtälömuotoisia. T051403

22 Simplex-algoritmi taulukoiden avulla
1. Etsi rivin z eniten negatiivinen alkio, ja olkoon se ci. Jos kaikki ci ≥ 0 algoritmi päättyy. 2. Laske tarkistettavan sarakkeen alkioille aki >0 jaokset bi/aki 1 ≤ k ≤ m. Valitse näistä luvuista pienin ja sitä vastaava indeksi j T051403

23 3. Korvaa xn+j muuttujalla xi vasemmassa sarakkeessa .
4. Rivillä j korvaa 5. Suorita eliminointiaskel niin, että kaikki sarakkeen i alkiot nollautuvat. 6. Palaa kohtaan 1. T051403

24 Esimerkki. Ratkaise LP-tehtävä max 5x1 + 9x2 ehdoilla 3x1 + 4x2 ≤ 2400

25 1. Määrittele pelivara- ja ylijäämämuuttujat.
Algoritmi 2. Vaihe I. 1. Määrittele pelivara- ja ylijäämämuuttujat. 2. Ota mukaan keinotekoiset muuttujat liittyen ylijäämämuuttujiin. 3. Aseta keinoteeoisten muuttujien avulla keinotekoinen kohdefunktio z~. 4. Vähennä keinotekoisia muuttujia sisältävät rivit keinotekoisen kohdefunktiosta z~. T051403

26 5. Sovelletaan algoritmia I kunnes z~ =0 ja keinotekoiset muuttujat ovat poistuneet ensimmäisestä sarakkesta. Vaihe II 1. Poista taulukosta rivi z~ ja keinotekoisia muuttujia vastaavat sarakkeet. 2. Sovella algoritmia I. T051403

27 Esimerkki. Ratkaise LP-tehtävä max 5x1 + 9x2 ehdoilla -x1 + 2x2 ≤ 6

28 Ratkaisualgoritmeista
Yksi suosituimpia on Simplex-algoritmi, jollaisen saa ainakin vielä simplex-paketilla havainnollistettua. LPSolve-komento käyttää ns. branch and bound tekniikkaa. Matriisimuotoinen esitys on laskennallisesti tehokas. T051403

29 Tarkastellaan esimerkkiä.

30 Aeq:=Matrix([[1,2,3,-1,1,0],[2,1,1,0,0,1]]); beq:=Vector([2,5]);
c:=Vector([4,0.5,1,0,0,0]); Aeq:=Matrix([[1,2,3,-1,1,0],[2,1,1,0,0,1]]); beq:=Vector([2,5]); LPSolve(c, [NoUserValue, NoUserValue, Aeq, beq],assume = nonnegative,maximize); T051403


Lataa ppt "4. Lineaarinen optimointi"

Samankaltaiset esitykset


Iklan oleh Google