Mitä on optimointi?

Matemaattinen optimointi

Matematiikka, operaatiotutkimus, Data Science vai edistynyt analytiikka? 

Optimointi on kokoelma erilaisia menetelmiä, joissa jonkinlainen organisaation toiminnan tavoitetila käännetään sellaiseen muotoon joka voidaan ratkaista matemaattisen optimoinnin algoritmeilla.  

Matemaattinen optimointi itsessään on vanha matematiikan osa-alue ja sen sovellusalue on esimerkiksi operaatiotutkimus. Suomessa on aktiivinen operaatiotutkimuksen seura, joka järjestää hyödyllisiä tapahtumia.  

Nykyisin kattokäsitteen Data Science alla voidaan mielestäni keskustella myös optimoinnista. Muutenkin Data Science on luonteeltaan useita erilaisia menetelmiä eri tieteenaloilta yhdistävää toimintaa. Tieteestä ei kuitenkaan ole kysymys vaan liiketoiminnan kehittämisestä.  

Peruskäsitteet  

Tavoitefunktio on matemaattisessa muodossa oleva toiminnan ongelman tavoitteen kuvaus, se asia mitä optimoinnilla pyritään ratkaisemaan. Tavoitefunktiossa voi olla sisällä kiinteitä parametriarvoja sekä toisaalta kontrollimuuttujat.  

Kontrollimuuttujat ovat syötteitä tavoitefunktioon sekä rajoitteet muodostavaan funktioiden ryhmään. Kontrollimuuttujat ovat niitä muuttujia joiden arvoihin voidaan suoraan vaikuttaa ja ratkaisuvektori on se kontrollimuuttujien arvojen joukko, joka on optimaalinen tavoitefunktion näkökulmasta.  

Rajoitteet liittyvät siihen että optimointiongelmaan voi liittyä taloudellinen budjettirajoite ja / tai ilmiöön liittyy kokoelma joitain teknisiä / fyysisiä rajoitteita. Sekin on rajoite että ratkaisuvektorin alkiot voivat olla vain positiivisia kokonaislukuja.  

Optimoinnissa on keskeistä että liiketoiminnallinen ongelma voidaan muuntaa sellaiseen muotoon että se on ratkaistavissa optimointia tekevien käytettävissä olevilla työkaluilla ja toisaalta ei tehdä liian monta vahvaa oletusta jotka voivat olla kyseenalaisia. Matemaattinen malli on kuitenkin pohjimmiltaan abstraktio todellisuudesta. 

Mitä ylipäätään voidaan optimoida? 

Keskeistä on organisaation toiminnan ongelman muuttaminen matemaattiseen muotoon, muoto on sellainen että annettua tavoitetta optimoiva algoritmi pystyy sen ratkaisemaan. Yleisesti ratkaistaan ongelma ei-analyyttisessa muodossa, ratkaisu on siis tuotettava numeerisen optimoinnin keinoin.  

Globaali optimi on sellainen osajoukko joka on paras mahdollinen tai vähintään yhtä hyvä kuin kaikki muut osajoukot potentiaalisten ratkaisujen joukossa. Lokaali optimi on optimaalisin tai vähintään yhtä hyvä rajatussa osajoukossa potentiaalisten ratkaisujen joukkoa. Valitettavasti monien optimointiongelmien tapauksessa emme voi taata globaalia optimia.  

Tarvitaan toimintaan liittyvä ongelma, rajoitteet sekä tietyt kiinteät arvot parametreille ja rajoitteille. Lopputuotoksena usein tuleva ratkaisuvektori on näiden annettujen taustatietojen vallitessa saatu tavoitefunktion optimoiva vektori.  

Varjohinnat ja optimointiongelman analyysi  

Sen lisäksi että algoritmi tuottaa ratkaisuvektorin on usein mahdollista analysoida alkuperäistä ongelmaa käänteisestä näkökulmasta, jos alkuperäinen ongelma on resurssien allokaation ongelma niin sen käänteinen näkökulma voisi olla resurssien valuaation näkökulma.  

Lineaarisen optimoinnin algoritmit tuottavat helposti myös analyysin siitä näkökulmasta mikä on tiettyjen rajoitteiden arvojen vaikutus tavoitefunktioon optimissa.  

Rajoitteen arvon marginaalista vaikutusta tavoitefunktioon voi yleisesti pitää eräänlaisena varjohintana, se kuvaa sitä arvonmuutosta mikä rajoitteen höllentämisellä päätöksentekijälle olisi.  

Ratkaisimet ja optimoinnissa käytettävät ohjelmistokirjastot 

Optimointiin löytyy paljon kaupallisia sekä myöskin open source – ohjelmistoja, ongelman haastavuus sekä päätöksentekijän budjetti ratkaisee millaisia menetelmiä on käytettävissä.  

Monet kaupalliset ohjelmistot tarjoavat lukuisan joukon erilaisia ratkaisimia erilaisiin optimointiongelmiin ja usein myös Python – rajapinnat niiden hyödyntämiseen. Optimointiohjelmistoja voidaan ostaa myös pilvipalveluina joissain tapauksissa.  

Esimerkki optimoinnista, kulutusjousto  

Optimointiongelmaa käytännössä voisi lähestyä alla olevan esimerkin kautta.  

Omakotitaloasukas haluaa minimoida sähkönkulutuksensa arvon päivittäin tekemällä säätöjä manuaalisesti heti kun seuraavan päivän spot – hinnat ovat tiedossa. Oletetaan että asukkaan energian yksikkökustannus sisältää sekä verkkopalvelun että ostettavan sähkön. Asukkaan on käytettävä x kWh sähköä päivän aikana ja tunnista tuntiin muutoksiin liittyy tietynlainen muutosrajoite. Lisäksi pitää olla jatkuvasti päällä tietyn verran minimitehoa.  

Kontrollimuuttujina olisi tässä tapauksessa 24 – alkioinen vektori joka sisältää kunkin tunnin energiankulutuksen. Se kerrotaan hintavektorilla ja näin saadaan tavoitefunktio jota minimoidaan. Tai käänteisesti maksimoidaan näiden tuloa arvolla -1 kerrottuna.  

Rajoitteet sisältävät kaikki yllä mainitut tekniset ja taloudelliset rajoitteet.  

Optimoinnin tuottamaa säästöä suhteessa alkuperäiseen tilanteeseen voi verrata euromääräisesti taikka suhteuttamalla optimoidun kulutuksen arvon alkuperäiseen arvoon. Optimoinnin tuloksena saadaan helposti myös annettujen rajotteiden vaikutus optimissa energiankulutuksen säästöön.  

Tarkempaa tietoa aiheesta löytyy vaikkapa täältä käytännöllisen markkinakuvauksen kanssa. 

Kirjoittajasta  

Kirjoittaja on Ready Solutions Oy:n konsultti ja koulutustaustaltaan ekonomisti jolla on vahvaa menetelmällistä osaamista liiketoiminnan ongelmien ratkaisemisessa.  

Lisää ajankohtaisia julkaisuja:

Kunnan toiminnan kehittäminen data-analytiikan avulla
Tutustu tarinaan
Tekoälyavustettu OpenAI – sovelluskehitys Azuressa
Tutustu tarinaan
Energia-alan analytiikka
Tutustu tarinaan
Myynnin data-analytiikka
Tutustu tarinaan
Markkinoinnin data-analytiikka
Tutustu tarinaan

Lisää ajankohtaisia julkaisuja:

Kunnan toiminnan kehittäminen data-analytiikan avulla
Tutustu tarinaan
Tekoälyavustettu OpenAI – sovelluskehitys Azuressa
Tutustu tarinaan
Energia-alan analytiikka
Tutustu tarinaan
Myynnin data-analytiikka
Tutustu tarinaan
Markkinoinnin data-analytiikka
Tutustu tarinaan