Luento 1: Optimointimallin muodostaminen; optimointitehtävien luokittelu Merkintöjä := vasen puoli määritellään oikean puolen lausekkeella s.e. ehdolla; siten että (engl. subject to, s.t.) vasemman puolen lausekkeesta seuraa oikean puolen lauseke vasemman puolen lauseke on yhtä pitävä oikean puolen lausekkeen kanssa on voimassa jokaisella on olemassa ei ole olemassa A T matriisin A transpoosi Optimointimallin muodostaminen Esimerkki. 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 100 e; jos meno- ja paluupäivän väliin jää viikonloppu 20 %:n alennus; pelkkä menolippu (paluulippu) 70 e. Kuinka ostaa liput? Optimointimallissa määritellään tehtävän (1) päätösvaihtoehdot eli optimointimuuttujat (2) rajoitusehdot (3) kohdefunktio vaihtoehtojen arvioimiseksi Päätösvaihtoehdot ovat tässä erilaisia lippuvaihtoehtoja: 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 1
Rajoitusehdot: ylläolevissa lippuvaihtoehdoissa on jo huomioitu rajoitus, jonka mukaan kunakin viikkona lähdetään Helsingistä maanantaina ja palataan keskiviikkona. Kohdefunktio: vaihtoehdon kustannus. Paras vaihtoehto pienin kustannus vaihtoehto A: kustannus = 5 100 e = 500 e vaihtoehto B: kustannus = 70 e + 4 0,8 100 e + 70 e = 460 e vaihtoehto C: kustannus = 5 (0,8 100 e) = 400 e Vaihtoehto C on siis optimaalinen vaihtoehto ja 400 e on tätä vastaava optimikustannus. Optimointimalli muodostuu päätösvaihtoehtojen eli optimointimuuttujien joukosta, näitä koskevista rajoituksista ja kohdefunktiosta. Mallin ratkaisu antaa sen päätösmuuttujan arvon, joka optimoi (maksimoi tai minimoi) kohdefunktion arvon ja toteuttaa rajoitukset. Sanomme, että optimointimuuttuja on käypä, kun se toteuttaa rajoitusehdot. Esimerkki. Optimaalinen suunnittelu (optimal design): L pituisesta rautalangasta on väännettävä suorakaide, jonka pinta-ala on suurin mahdollinen. (1) optimointimuuttujat (päätösvaihtoehdot): x := leveys y := korkeus (2) rajoitukset: 2(x + y) = L x, y 0 (3) kohdefunktio: f(x, y) := xy Optimointimalli: maksimoi xy ehdolla 2(x + y) = L (yhtälörajoitus) x, y 0 (epäyhtälörajoitus) 2
Kirjoitetaan muotoon: max x,y f(x, y) := xy s.e. 2(x + y) = L x, y 0 Tehtävän ratkaisu: x = y = L/4. Optimointitehtävien luokittelu Lineaarinen tehtävä (ks. MS-E2140 Linear Programming) Kohdefunktio ja rajoitukset lineaarisia min c T x = n i=1 c ix i s.e. Ax = b x 0 missä x i :t ovat optimointimuuttujia, x :=. c 1 c n b 1 x i 0 i); c :=., b :=. b m x 1 x n, ja x 0 (merkintä tarkoittaa, että ja m n matriisi A ovat vakioita. Epälineaarinen tehtävä (ks. MS-E2139 Nonlinear Programming) Kohdefunktio ja rajoitukset epälineaarisia min f(x) st. g i (x) 0, i = 1,...,m h i (x) = 0, i = 1,...,l x X missä X R n sisältää muotoa a i x i b i i olevia rajoituksia ja f, g i ja h i mahdollisesti epälineaarisia funktioita R n R. Epälineaarisen tehtävän erikoistapauksena on konveksi optimointitehtävä, jossa f ja g i :t ovat konvekseja ja h i :t lineaarisia. 3
Monitavoitetehtävä (ks. MS-E2153 Multiple Criteria Optimization) Optimoitavana on samanaikaisesti monta kohdefunktiota. Esimerkki: Portfolion eli arvopaperien i = 1,..., n optimointi. Olkoon c i satunnaismuuttuja, joka kuvaa arvopaperin i tuottoa per sijoitettu rahayksikkö ko. aikavälillä. Olkoon E(c i ) sen odotusarvo, ja E(c) T := [E(c 1 ),..., E(c n )]. Olkoon V satunnaisvektori c:n kovarianssimatriisi. Nyt voidaan maksimoida hyödyn odotusarvoa f 1 (x) := E(c) T x, missä x i on kohteeseen i sijoitettu rahamäärä, i = 1,..., n; tai minimoida pelkästään c i :den varianssista aiheutuvaa riskiä f 2 (x) := x T Vx; tai voidaan samanaikaisesti yrittää sekä maksimoida hyötyä, että minimoida riskiä, jolloin saadaan monitavoitetehtävä. Monitavoiteoptimointia käsitellään luennossa 6, ja portfolion optimointia laskuharjoituksessa 12. Kokonaislukutehtävä (ks. MS-E2146 Integer Programming) Tällöin osa optimointimuuttujista vai saada vain kokonaislukuarvoja, esim. x i on on-off muuttuja x i {0, 1}. Kokonaislukutehtäviä käsitellään luennossa 7. Verkkotehtävä (ks. MS-E2143 Network Optimization) Tyypillisesti tehtävä on samaa muotoa kuin lineaarinen tehtävä. Lisäksi on mukana yleensä kokonaislukumuuttujia. Perinteisiä verkkotehtäviä syntyy, kun tiettyjä paikkoja linkitetään optimaalisesti joihinkin toisiin paikkoihin; määrätään kahden kaupungin välinen lyhin reitti tieverkostossa; tai maksimivirtaus putkiverkostossa; tai tuotteiden minimikustannuskuljetukset tehtaista kauppoihin. Verkkotehtäviä ratkaistaan eri tehtävätyyppeihin kehitetyillä verkkoalgoritmeilla. Dynaaminen tehtävä (ks. MS-E2148 Dynamic Optimization) Esimerkki: Määrää L pituisen köyden x(s) rajoittama maksimipinta-ala s.e. köyden päät ovat pisteissä a ja b, x(a) = x(b) = 0. Tämä on Tyyrian prinsessa Didon ongelma. Kerrotaan, että prinsessa ratkaisi ongelman ja sai eräältä heimopäälliköltä Pohjois-Afrikan rannikolta maapalstan, jolla oli ko. maksimipinta-alaominaisuus. Näin syntyi muinainen Karthago eli nykyinen Tunisia. 4
Optimointitehtävät ratkaistaan numeerisesti iteroimalla x k+1 = f(x k, x k 1,...). Historiallisista syistä tiettyjä numeerisia ratkaisumenetelmiä kutsutaan ohjelmoinniksi. Lineaarisella ohjelmoinnilla tarkoitettiin alunperin lineaarisen optimoinnin simplex-menetelmää. Nykyään lineaarinen ohjelmointi ja lineaarinen optimointi ovat synonyymeja. Dynaamisella ohjelmoinnilla tarkoitetaan dynaamisen optimointitehtävän ratkaisemista rekursiolla siten, että jokaisessa vaiheessa ns. Bellmannin optimaalisuusperiaate toteutuu. Yleensä teknillistaloudellisiin järjestelmiin liittyvät suuret optimointimallit muodostetaan yhdessä OR-asiantuntijan ja asiakkaan välisenä vuorovaikutteisena prosessina (OR := Operations Research = Operaatiotutkimus). Optimointimallia, mutta myös muita matemaattisia malleja, muodostettaessa on hyvä pitää mielessä ainakin seuraavat mallinrakennuksen vaiheet: (1) Tehtävän sanallinen määrittely (2) Mallin muodostaminen matematiikan ja laskennan kielelle (3) Mallin numeerinen ratkaiseminen (4) Validointi (5) Ratkaisun käyttöönotto Vaiheet (1), (2) ja (5) muodostavat mallinrakennuksen ns. art -osan. Tällainen osaaminen tulee yleensä vain kokemuksen myötä. Vaiheet (3) ja (4) vaativat melko suoraviivaista science osaamista, jota opitaan mm. tällä kurssilla. 5