5 Lineaarinen optimointi T 055403 Yleist Optimoinnissa pyritn
- Slides: 24
5. Lineaarinen optimointi T 055403
Yleistä Optimoinnissa pyritään löytämään joko maksimi tai minimiarvo. n Aikaisemmin on perehdytty rajoittamattomaan optimointiin ja minimin hakuun käyttäen Newtonin menetelmää. n On mahdollista asettaa ns. rajoiteyhtälöitä, ja tilanteesta riippuen nämä ovat joko lineaarisia tai epälineaarisia. n T 055403
Seuraavassa epälineaarisiin optimointitehtäviin ei puututa, mutta tarkastellaan lineaarista optimointitehtävää. n Käytännön ratkaisun kannalta on tärkeää, että ongelma voidaan saattaa matemaattiseen muotoon, jossa kohdefunktiolle l. tavoite- l. objektiivifunktiolle haetaan joko maksimitai minimiarvoa. n T 055403
Lineaarinen optimointi Jos sekä kohdefunktio että rajoitteet ovat lineaarisia, on kyseessä lineaarisen optimoinnin tehtävä (Linear Programming). n Kun optimointitehtävässä on vain kaksi muuttujaa, ongelmaa voidaan havainnollistaa helposti xykoordinaatistossa. n T 055403
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). n Simplex-algoritmin matriisimuodon käsittely sivuutetaan. n Seuraavan yksinkertaisen ongelman avulla on helppo kuvat lineaariseen optimointiin liittyviä peruskäsitteitä. n T 055403
n Esimerkki. min -3 x 1 – x 2 ehdoilla x 1 – 2 x 2 ≤ 4 2 x 1 + x 2 ≤ 18 x 2 ≤ 10 x 1, x 2 ≥ 0 T 055403
Jokaista epäyhtälöä vastaa tietty puoliavaruus. Käypä joukko on rajoiteepäyhtälöiden muodostama joukko, jossa kaikki ehdot toteutuvat. n x on ratkaisu, jos se toteuttaa standardimuotoisen tehtävän ehtoyhtälöt. n x on käypä ratkaisu, jos edellisen lisäksi x ≥ 0. n x on optimaalinen käypä ratkaisu, jos se edellisten lisäksi minimoi kustannusfunktion. n T 055403
Optimointitehtävässä pyritään löytämään optimaalista ratkaisua, joka saavutetaan tiettyjen ehtojen vallitessa. n Matemaattisesti voidaan osoittaa, että LPongelman optimiratkaisu löytyy käyvän joukon reunapisteistä. n Itseasiassa riittää määrittää käyvän joukon ääripisteet (eli 2 ul. tehtävissä nurkkapisteet) n T 055403
n LP-optimointitehtävät voidaan esittää standardimuodossa subject to T 055403
n Usein käytännössä rajoiteyhtälöiden sijasta ainakin osa on epäyhtälömuotoisia. T 055403
T 055403
T 055403
Tällöin joko lisäämällä pelivara (slack) - tai ylijäämämuuttujia(surplus), muutetaan tehtävä standardimuotoon. n Tarkastellaan ensin tilannetta, jossa rajoite -epäyhtälöt ovat tyyppiä ≤. n T 055403
T 055403
n 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ää. T 055403
n Tarkastellaan seuraavaksi tehtävää T 055403
n Ottamalla käyttöön pelivara- l. surplus muuttujat (wj ≥ 0), j = 1, …, m, saadaan kukin epäyhtälöistä esitettyä muodossa n Tämä on siis jälleen standardimuotoinen esitys. T 055403
n 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. T 055403
Simplex-algoritmi taulukoiden avulla n Algoritmi 1. 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 T 055403
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. T 055403
n Esimerkki. Ratkaise LP-tehtävä max 5 x 1 + 9 x 2 ehdoilla 3 x 1 + 4 x 2 ≤ 2400 x 1 + 2 x 2 ≤ 900 2 x 1 + 3 x 2 ≤ 1600 x 2 ≤ 1200 x 1, x 2 ≥ 0 T 055403
n Algoritmi 2. Vaihe I. 1. Määrittele pelivara- ja ylijäämämuuttujat. 2. Ota mukaan keinotekoiset muuttujat liittyen ylijäämämuuttujiin. 3. Aseta keinotekoisten muuttujien avulla keinotekoinen kohdefunktio z~. 4. Vähennä keinotekoisia muuttujia sisältävät rivit keinotekoisen kohdefunktiosta z~. T 055403
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. T 055403
n Esimerkki. Ratkaise LP-tehtävä max 5 x 1 + 9 x 2 ehdoilla -x 1 + 2 x 2 ≤ 6 x 1 ≤ 4 2 x 1 + x 2 ≥ 4 x 1, x 2 ≥ 0 T 055403