Harjoitus 4: Matlab - Optimization Toolbox Mat-2.2107 Sovelletun matematiikan tietokonetyöt Syksy 2006 Mat-2.2107 Sovelletun matematiikan tietokonetyöt 1
Harjoituksen aiheita Optimointimallin muodostaminen Optimointitehtävien luokittelu Optimointitehtävien numeerinen ratkaiseminen Matlabin Optimization Toolbox Mat-2.2107 Sovelletun matematiikan tietokonetyöt 2
Mitä on optimointi? Optimoinnissa pyritään hakemaan ongelmalle paras (eli optimaalinen) ratkaisu. Optimointimallin osat Päätösmuuttujat Mahdolliset rajoitukset (koskien päätösvaihtoehtoja) Kohdefunktio (jota maksimoidaan tai minimoidaan) Mat-2.2107 Sovelletun matematiikan tietokonetyöt 3
Optimointimallin muodostaminen Esimerkki 1... Päätöksenteko-ongelma: Sinulla on viiden viikon työsopimus Jyväskylässä ja asut Helsingissä. Lennät Jyväskylään maanantaina ja palaat Helsinkiin keskiviikkona. Lentolippuvaihtoehtoja: Meno-paluu lippu 100e; jos meno- ja paluupäivän väliin jää viikonloppu 20 % :n alennus; pelkkä menolippu (paluulippu) 70e. Kuinka ostaa liput? Mat-2.2107 Sovelletun matematiikan tietokonetyöt 4
... Esimerkki 1... Päätösvaihtoehtoja: a) 5 meno-paluu lippua Helsinki-Jyväskylä-Helsinki b) 1 Helsinki-Jyväskylä; 4 Jyväskylä-Helsinki-Jyväskylä yli viikonlopun 1 Jyväskylä-Helsinki c) 1 Helsinki-Jyväskylä-Helsinki (1. maanantai, 5. keskiviikko) 4 Jyväskylä-Helsinki-Jyväskylä yli viikonlopun Rajoitukset: joka viikko pitää lähteä Helsingistä maanantaina ja palata keskiviikkona. Mat-2.2107 Sovelletun matematiikan tietokonetyöt 5
... Esimerkki 1 Kohdefunktio: vaihtoehdon kustannus. - Paras vaihtoehto pienin kustannus vaihtoehto a: kustannus = 5 100e = 500e vaihtoehto b: kustannus = 70e + 4 0,8 100e + 70e = 460e vaihtoehto c: kustannus = 5 (0,8 100e) = 400e Vaihtoehto c on siis optimaalinen vaihtoehto ja 400e on tätä vastaava optimikustannus. Mat-2.2107 Sovelletun matematiikan tietokonetyöt 6
Esimerkki 2... Optimaalinen suunnittelu (optimal design): L pituisesta rautalangasta on väännettävä suorakaide, jonka pinta-ala on suurin mahdollinen. - optimointimuuttujat: x := leveys [m] y := korkeus [m] - rajoitukset: 2(x + y) = L x, y 0 - kohdefunktio: f(x, y) := xy Mat-2.2107 Sovelletun matematiikan tietokonetyöt 7
... Esimerkki 2 Optimointimalli: maksimoi xy ehdolla: 2(x + y) = L (yhtälörajoitus) Kirjoitetaan muotoon st. := subject to. x, y 0 (epäyhtälörajoitus) max x,y f(x,y) = xy st. 2(x + y) = L x, y 0 Tehtävän ratkaisu: x = y = L/4. Mat-2.2107 Sovelletun matematiikan tietokonetyöt 8
Optimointitehtävien luokittelu Optimointitehtävät voidaan jakaa moneen eri tyyppiin. Lineaarinen optimointi (ks. Mat-2.140 Lineaarinen ohjelmointi) Kohdefunktio ja rajoitukset lineaarisia min x c t x = n i=1 c ix i st. Ax = b x 0 Mat-2.2107 Sovelletun matematiikan tietokonetyöt 9
Lineaarinen optimointi Yo. optimointitehtävässä x i :t ovat optimointimuuttujia, x := c := x 1. x n c 1.. c n, ja x 0, x i 0 i;, b := b 1.. b m ja m n matriisi A ovat vakioita. Mat-2.2107 Sovelletun matematiikan tietokonetyöt 10
Epälineaarinen optimointi (ks. Mat-2.139 Optimointioppi) Kohdefunktio ja rajoitukset epälineaarisia min f(x) st. g i (x) 0, i = 1,...,m h i (x) = 0, i = 1,...,l a i x i b i missä f, g i ja h i sisältävät epälineaarisia funktioita. Mat-2.2107 Sovelletun matematiikan tietokonetyöt 11
Muita optimointitehtäviä 1/2 Monitavoiteoptimointi - Yhden kohdefunktion sijasta monta kohdefunktiota. - Esim. Portfolion optimointi: Halutaan sekä maksimoida tuottoa että minimoida riskiä. Verkko-optimointi (ks. Mat-2.143 Verkko-optimointi) - Esim. Määrättävä kahden kaupungin välinen lyhin tie olemassaolevaan tieverkostoon. Mat-2.2107 Sovelletun matematiikan tietokonetyöt 12
Muita optimointitehtäviä 2/2 Kokonaislukuoptimointi (ks. Mat-2.146 Kokonaislukuoptimointi) - Päätösmuuttujat kuuluvat kokonaislukuihin. - Esim. Halutaan määrittää optimaalinen tilauserien määrä, jolla yrityksen voitto maksimoituu. Dynaaminen optimointi (ks. Mat-2.148 Dynaaminen optimointi) - Päätösmuuttujat ovat eivät ole vakioita, vaan ovat esim. ajan funktioita. - Esim. Etsi lentokoneelle ohjaus s.e. lentoaika paikasta a paikkaan b minimoituu. Stokastinen optimointi - Tehtävä sisältää satunnaismuuttujia. Mat-2.2107 Sovelletun matematiikan tietokonetyöt 13
Optimointitehtävien ratkaiseminen 1/2 Optimointitehtävien numeerinen ratkaisu perustuu iterointiin. - Lähdetään tietystä alkupisteestä liikkeelle. - Lasketaan uusi piste tietyn algoritmin mukaisesti. - Jatketaan kunnes löydetään (lokaali) optimipiste. Esim. funktion g lokaali minimi löydetään Newtonin iteroinnilla. x k+1 = x k g (x k )/g (x k ) missä g ja g ovat funktion g ensimmäinen ja toinen derivaatta. Mat-2.2107 Sovelletun matematiikan tietokonetyöt 14
Optimointitehtävien ratkaiseminen 2/2 Historiallisista syistä tiettyjä numeerisia ratkaisumenetelmiä kutsutaan ohjelmoinniksi. Esim. - Lineaarinen ohjelmointi: lineaarisen optimoinnin Simplex-menetelmä. - Dynaaminen ohjelmointi: Dynaamisen optimointitehtävän ratkaisemismenetelmä, joka perustuu rekursioon. Mat-2.2107 Sovelletun matematiikan tietokonetyöt 15
Ohjelmistoja Yleiskäyttöisiä ohjelmistoja - Matlab - Optimization Toolbox - Excel - Solver (ks. harjoitus 8) Lisäksi on olemassa paljon eri optimointitehtävätyypeille räätälöityjä ohjelmia ja ohjelmakirjastoja. Mat-2.2107 Sovelletun matematiikan tietokonetyöt 16
Matlab - Optimization Toolbox Matlabin laajennnus, jokta koostuu kokoelmasta funktioita. Toolboxin funktiot ovat Matlabin m-tiedostoja. - Koodin saa näkymiin komennolla type funktion_nimi Toolboxia voidaan myös käyttää yhdessä muiden Matlabin toolboxien tai Simulinkin kanssa. Mat-2.2107 Sovelletun matematiikan tietokonetyöt 17
Joitakin funktioita Optimization Toolbox sisältää rutiineja erilaisia optimointitehtäviä varten, mm. - fminbnd: Find minimum of single-variable function on fixed interval - fmincon: Find a minimum of constrained nonlinear multivariable function - fminsearch: Find minimum of unconstrained multivariable function using derivative-free method - fminunc: Find minimum of unconstrained multivariable function - linprog: Solve linear programming problems - quadprog: Solve quadratic programming problems Mat-2.2107 Sovelletun matematiikan tietokonetyöt 18
Kysymyksiä 1. Mitkä ovat optimointimallin osat? (3 eri osaa) 2. Mainitse esimerkki numeerisesta optimointialgoritmista. 3. Millainen on lineaarinen optimointitehtävä? 4. Miten dynaamiset optimointitehtävät eroavat muista optimointitehtävistä? 5. Mihin Simplex-menetelmää käytetään? 6. Mihin kahteen eri optimointitehtävien luokkaan portfolion optimointi voidaan sijoittaa? Mat-2.2107 Sovelletun matematiikan tietokonetyöt 19