Matemaattinen optimointi

Tähän artikkeliin tai osioon ei ole merkitty lähteitä, joten tiedot kannattaa tarkistaa muista tietolähteistä.
Voit auttaa Wikipediaa lisäämällä artikkeliin tarkistettavissa olevia lähteitä ja merkitsemällä ne ohjeen mukaan.

Matemaattinen optimointi tarkoittaa määritellyn parhaan ratkaisun valintaa kaikkien mahdollisten ratkaisujen joukosta. Yleensä matemaattinen optimointi liittyy funktioihin: kohde-, hyöty- tai kustannusfunktioihin. Kun kohdefunktio kuvaa ratkaisusta saatavaa hyötyä, jonka halutaan olevan mahdollisimman suuri, kutsutaan optimointitehtävää maksimoinniksi. Kun taas halutaan ratkaisusta koituvan mahdollisimman vähän kustannuksia tai haittaa, kutsutaan tehtävää minimoinniksi.

Formaalisti optimointi on sellaisen pisteen x {\displaystyle x^{*}} etsiminen ratkaisujoukosta A {\displaystyle \in A} , missä funktio f : A R {\displaystyle f:A\to \mathbb {R} } saa joko pienimmän tai suurimman arvonsa. Tätä pistettä x {\displaystyle x^{*}} kutsutaan minimipisteeksi.

Jokaista maksimointiongelmaa vastaa tietty minimointiongelma, joka ratkaisee maksimointiongelman. Funktion g {\displaystyle g} maksimointi on sama tehtävä kuin funktion f = g {\displaystyle f=-g} minimointi. Näin ollen matemaattisen optimointiteorian riittää tarkastella vain minimointiongelmaa.

Merkintätapa

Tehtävää, jonka tarkoituksena on etsiä f {\displaystyle f} pienin arvo, kutsutaan minimointitehtäväksi. Tehtäväkuvaus merkitään formaalisti

min x R f ( x ) {\displaystyle \min _{x\in \mathbb {R} }f(x)}

missä f {\displaystyle f} on tehtävän kohdefunktio.

Vastaavasti kohdefunktion maksimointitehtävää merkitään

max x R f ( x ) {\displaystyle \max _{x\in \mathbb {R} }f(x)}

Optimointitehtävässä

min f ( x )   ,   x S {\displaystyle \min f(\mathbf {x} )~,~\mathbf {x} \in S}

joukkoa S {\displaystyle S} kutsutaan käyväksi ratkaisujoukoksi tai vain käyväksi joukoksi. Käypä joukko voidaan määritellä esimerkiksi

S = [ 0 , 5 ] {\displaystyle S=[0,5]}

Monen muuttujan tehtävässä käypä ratkaisujoukko voidaan määritellä esimerkiksi

S = { ( x , y ) | x > 0  ja  y <= 5 2 x } {\displaystyle S=\{(x,y)|x>0{\text{ ja }}y<=5-2x\}}

Optimointitehtävän globaali minimi on piste x {\displaystyle \mathbf {x} ^{*}} , jolle pätee f ( x ) f ( x ) {\displaystyle f(\mathbf {x} ^{*})\leq f(\mathbf {x} )} kaikilla x {\displaystyle \mathbf {x} } , jotka kuuluvat käypään alueeseen. Tätä pienempää funktion arvoa ei voida saavuttaa käyvässä joukossa.

Funktiolla voi olla yksi tai useampi paikallinen optimipiste, lokaali optimi. Paikallinen minimi määritellään pisteeksi x l o k {\displaystyle \mathbf {x} _{\mathrm {lok} }^{*}} , jolle on olemassa ε > 0 {\displaystyle \varepsilon >0} siten, että f ( x l o k ) f ( x l o k + h )   , h ,   | | h | | ε {\displaystyle f(\mathbf {x} _{\mathrm {lok} }^{*})\leq f(\mathbf {x} _{\mathrm {lok} }^{*}+\mathbf {h} )~,\forall \mathbf {h} ,~||\mathbf {h} ||\leq \varepsilon } ja x l o k + h {\displaystyle \mathbf {x} _{\mathrm {lok} }^{*}+\mathbf {h} } kuuluu käypään joukkoon. Toisin sanoen on olemassa jokin alue eli ympäristö, jossa piste x l o k {\displaystyle \mathbf {x} _{\mathrm {lok} }^{*}} antaa pienempiä funktion arvoja kun muut pisteet.

Optimointitehtävätyyppejä

  • Konveksin optimointitehtävän kohdefunktio sekä mahdolliset rajoitusehdot ovat konvekseja. Konveksin minimointitehtävän tärkeä ominaisuus on, että paikallinen minimipiste on myös tehtävän globaali minimipiste.
    • Lineaarisen optimointitehtävän (engl. lyh. LP) kohdefunktio ja rajoitusehdot ovat lineaarisia funktioita. Lineaarinen tehtävä on laajasti tutkittu ja tälle on kehitetty paljon tehokkaita ratkaisualgoritmeja kuten George Dantzigin vuonna 1947 lähde?.
    • Neliöllinen optimointitehtävä on konveksin optimointitehtävän erikoistapaus, missä kohdefunktio on neliöllinen ja käypä ratkaisujoukko monitahokas.
  • Epälineaarinen optimointi on yleisnimitys optimointitehtävälle, jonka kohdefunktio ja mahdolliset rajoitusehdot ovat epälineaarisia
  • Stokastisen optimointitehtävän kohdefunktiossa ja rajoitusehdoissa esiintyy yksi tai useampi satunnaismuuttuja.
  • Kokonaislukuoptimointitehtävän käypä ratkaisujoukko kuuluu kokonaislukujen joukkoon. Kokonaislukuoptimointitehtävän ratkaiseminen on laskennallisesti haastavaa ja usein tyydytään riittävän hyvään ratkaisuun globaalin optimiratkaisun sijasta.
    • Dynaaminen ohjelmointitehtävä on tehokas kokonaislukutehtävän ratkaisumalli, jota voidaan soveltaa vain jos tehtävä on mahdollista esittää toisistaan riippumattomia alitehtävien yhdistelmänä. Ns. Bellmanin yhtälö määrää välttämättömät ehdot kohdetehtävlle, johon voidaan soveltaa dynaamisen ohjelmoinnin periaatetta.

Lineaarinen optimointi

Lineaarinen optimointi tarkoittaa optimointia kun kohdefunktio ja käypää aluetta rajoittavat ehdot ovat lineaarisia. Lineaarista optimointia kutsutaan myös lineaariseksi ohjelmoinniksi. Yleinen lineaarinen tehtävä voidaan esittää muodossa

min c T x {\displaystyle \min \mathbf {c} ^{T}\mathbf {x} }
A 1 x b 1 {\displaystyle \mathbf {A_{1}x} \leq \mathbf {b_{1}} }
A 2 x b 2 {\displaystyle \mathbf {A_{2}x} \geq \mathbf {b_{2}} }
A 3 x = b 3 {\displaystyle \mathbf {A_{3}x} =\mathbf {b_{3}} }

Tässä {\displaystyle \leq } ja {\displaystyle \geq } merkeillä tarkoitetaan, että jokaista alkiota verrataan riveittäin toisiinsa. Voidaan osoittaa, että kaikki lineaariset optimointitehtävät voidaan esittään ali- ja ylijäämämuuttujien (engl. slack variable) avulla ns. standardimuodossa

min c T x {\displaystyle \min \mathbf {c} ^{T}\mathbf {x} }
A x = b {\displaystyle \mathbf {Ax} =\mathbf {b} }
x 0 {\displaystyle \mathbf {x\geq 0} }

missä c R n × 1 {\displaystyle \mathbf {c} \in \mathbb {R} ^{n\times 1}} , b R m × 1 {\displaystyle \mathbf {b} \in \mathbb {R} ^{m\times 1}} ja A R m × n {\displaystyle \mathbf {A} \in \mathbb {R} ^{m\times n}} . Ts. aina kun tarkastellan yleistä lineaarista tehtävää, voidaan tarkastella pelkästään standarditehtävää menettämättä tuloksien yleispätevyyttä. Huomaa, että myös vektorit c {\displaystyle \mathbf {c} } ja x {\displaystyle \mathbf {x} } muuttuvat tehtävätyypin muunnoksessa.

Tuloksia

  • Lineaarisen optimointitehtävän käypä alue on n dimensioisen avaruuden monitahokas (engl. polyhedra).
  • Oletetaan, että tehtävänä on minimoida lineaarista kohdefunktiota epätyhjän monitahokkaan sisällä (ts. kyseessä on lineaarinen optimointitehtävä). Tällöin kohdefunktion optimaalinen arvo on {\displaystyle -\infty } tai on olemassa optimaalinen ratkaisu x {\displaystyle \mathbf {x} ^{*}} . Huomaa, että optimipisteen x {\displaystyle \mathbf {x} ^{*}} yksikäsitteisyyttä ei ole taattu.
  • Jos lineaarisen optimointitehtävän ratkaisu x {\displaystyle \mathbf {x} ^{*}} on äärellinen, tulee yksi ratkaisu löytymään jostain rajoittavan monitahokkaan S kulmasta. Jos kaksi pistettä x 1 {\displaystyle \mathbf {x} _{1}} ja x 2 {\displaystyle \mathbf {x} _{2}} ovat optimaalisia ovat myös pisteet muotoa λ x 1 + ( 1 λ ) x 2   , λ ( 0 , 1 ) {\displaystyle \lambda \mathbf {x} _{1}+(1-\lambda )\mathbf {x} _{2}~,\lambda \in (0,1)} optimaalisia. Tämän voi tulkita siten, että kahden kulman välillä oleva särmä on optimaalinen, jos kummatkin kulmat ovat optimaalisia. Todistus: Oletetaan, että annetut pisteet minimoivat kohdefunktion f. Voidaan osoittaa, että monitahokas on konveksi joukko, eli kaikilla x 1 , x 2 S {\displaystyle \mathbf {x_{1},x_{2}} \in S} pätee λ x 1 + ( 1 λ ) x 2 S   , λ ( 0 , 1 ) {\displaystyle \lambda \mathbf {x} _{1}+(1-\lambda )\mathbf {x} _{2}\in S~,\lambda \in (0,1)} . Koska annetut pisteet ovat optimaalisia, eli niitä pienempiä arvoja funktio ei voi monitahokkaassa saada, pätee f ( x 1 ) = f ( x 2 ) =: z {\displaystyle f(\mathbf {x} _{1})=f(\mathbf {x} _{2})=:z} . Toisaalta f ( λ x 1 + ( 1 λ ) x 2 ) = c T ( λ x 1 + ( 1 λ ) x 2 ) = c T λ x 1 = λ f ( x 1 ) + c T ( 1 λ ) x 2 = ( 1 λ ) f ( x 2 ) {\displaystyle f(\lambda \mathbf {x} _{1}+(1-\lambda )\mathbf {x} _{2})=\mathbf {c} ^{T}(\lambda \mathbf {x} _{1}+(1-\lambda )\mathbf {x} _{2})=\underbrace {\mathbf {c} ^{T}\lambda \mathbf {x} _{1}} _{=\lambda f(\mathbf {x} _{1})}+\underbrace {\mathbf {c} ^{T}(1-\lambda )\mathbf {x} _{2}} _{=(1-\lambda )f(\mathbf {x} _{2})}} , mikä voidaan kirjoittaa f ( λ x 1 + ( 1 λ ) x 2 ) = λ z + ( 1 λ ) z = z   .   {\displaystyle f(\lambda \mathbf {x} _{1}+(1-\lambda )\mathbf {x} _{2})=\lambda z+(1-\lambda )z=z~.~\square } . Helposti voidaan huomata, että tapaus voidaan yleistää koskemaan n:ää pistettä, eli jos pisteet x i , i = 1 , . . . n {\displaystyle \mathbf {x} _{i},i=1,...n} ovat optimaalisia, niin ovat myös niiden ns. konveksikombinaatiot i = 1 n a n x n , i = 1 n a n = 1 , a n 0 {\displaystyle \sum _{i=1}^{n}a_{n}\mathbf {x} _{n},\sum _{i=1}^{n}a_{n}=1,a_{n}\geq 0} myös optimaalisia. Todistus on analoginen kahden pisteen tapauksen kanssa.

Esimerkkejä

Lineaarinen optimointitehtävä

min   x 1 + x 2 {\displaystyle \min ~-x_{1}+x_{2}}
x 1 + x 2 0 {\displaystyle x_{1}+x_{2}\leq 0}
x 1 1 {\displaystyle x_{1}\geq 1}

voidaan esittää standardimuodossa muunnoksella x i = x i + x i {\displaystyle x_{i}=x_{i}^{+}-x_{i}^{-}} , missä x i + {\displaystyle x_{i}^{+}} ja x i   0 {\displaystyle x_{i}^{-}~\geq 0} . Kun lisätään vielä ali- ja ylijäämämuuttujat s 1 {\displaystyle s_{1}} ja s 2 {\displaystyle s_{2}} saadaan tehtäväksi

min x 1 + + x 1 + x 2 + x 2 {\displaystyle \min -x_{1}^{+}+x_{1}^{-}+x_{2}^{+}-x_{2}^{-}}
x 1 + x 1 + x 2 + x 2 + s 1 + 0 s 2 = 0 {\displaystyle x_{1}^{+}-x_{1}^{-}+x_{2}^{+}-x_{2}^{-}+s_{1}+0\cdot s_{2}=0}
x 1 + x 1 + 0 x 2 + 0 x 2 + 0 s 1 s 2 = 1 {\displaystyle x_{1}^{+}-x_{1}^{-}+0\cdot x_{2}^{+}-0\cdot x_{2}^{-}+0\cdot s_{1}-s_{2}=1}
x i ± , s i 1   , i = 1 , 2 {\displaystyle x_{i}^{\pm },s_{i}\geq 1~,i=1,2}

Jos siis valitaan c = [ 1 , 1 , 1 , 1 , 0 , 0 ] T {\displaystyle \mathbf {c} =[-1,1,1,-1,0,0]^{T}} , b = [ 0 , 1 ] T {\displaystyle \mathbf {b} =[0,1]^{T}} , x = [ x 1 + , x 1 , x 2 + , x 2 , s 1 , s 2 ] T {\displaystyle \mathbf {x} =[x_{1}^{+},x_{1}^{-},x_{2}^{+},x_{2}^{-},s_{1},s_{2}]^{T}} ja

A = [ 1 1 1 1 1 0 1 1 0 0 0 1 ]   , {\displaystyle \mathbf {A} ={\begin{bmatrix}1&-1&1&-1&1&0\\1&-1&0&0&0&-1\\\end{bmatrix}}~,}

on tehtävä saatu standardimuotoon. Huomaa, että optimipisteessä vain toinen muuttujista x i + {\displaystyle x_{i}^{+}} ja x i {\displaystyle x_{i}^{-}} on nollasta poikkeava, joten ylimääräiset muuttujat eivät vaikuta rajoitusehtoihin.

Epälineaarinen optimointi

Epälineaarisella optimoinnilla tarkoitetaan sellaisen optimointitehtävän ratkaisemista, joka on muotoa

min f ( x ) {\displaystyle \min f(\mathbf {x} )}
g i ( x ) 0 , i = 1 , . . . , m {\displaystyle g_{i}(\mathbf {x} )\leq 0,i=1,...,m}
h j ( x ) = 0 , j = 1 , . . . , l {\displaystyle h_{j}(\mathbf {x} )=0,j=1,...,l}
x X R n {\displaystyle x\in X\subseteq \mathbb {R} ^{n}}

missä f , g i , h j : R n R {\displaystyle f,g_{i},h_{j}:\mathbb {R} ^{n}\mapsto \mathbb {R} } , f on mielivaltainen kohdefunktio, funktiot g i {\displaystyle g_{i}} epäyhtälörajoitukset, h j {\displaystyle h_{j}} yhtälörajoitukset ja X käypä joukko. Vaikka yhtälörajoitukset voidaan esittää epäyhtälörajoitusten avulla ( h i 0 {\displaystyle h_{i}\leq 0} ja h i 0 {\displaystyle -h_{i}\leq 0} ), tämä ei käytännössä aina ole mahdollista, sillä jotkin ratkaisumenetelmät olettavat tehtävän rajoitusten olevan optimipisteessä lineaarisesti riippumattomat.

Epälineaarinen ja lineaarinen tehtävä (LP) eroavat toisistaan seuraavasti. Epälineaarisessa tehtävässä käypä alue voi olla mielivaltainen, kun LP-tehtävän käypä joukko on aina monitahokas. Toiseksi LP-tehtävän lineaarinen kohdefunktio on aina myös konveksi, joten tehtävälle löydetään globaali optimi hyödyntämällä konveksin optimoinnin tuloksia. Epälineaarinen tehtävä on lineaarista tehtävää yleisempi, joten kaikki tulokset, jotka on johdettu epälineaariselle tehtävälle, pätevät myös lineaariselle tehtävälle.

Välttämättömät optimaalisuusehdot

Kun jokin optimointitehtävän käyvän alueen piste on optimaalinen, se täyttää välttämättömät optimaalisuusehdot. Lause ei päde toisin päin, eli tehtävälle voi olla mahdollista löytää optimaalisuusehdot täyttävä piste, joka ei välttämättä ole optimipiste.

Rajoittamattoman tehtävän välttämätön optimaalisuusehto optimointitehtävän ratkaisupisteelle x {\displaystyle \mathbf {x} ^{*}} on

f ( x ) = 0 {\displaystyle \nabla f(\mathbf {x} ^{*})=0}

Yleiselle rajoitetulle tehtävälle voidaan johtaa Karush-Kuhn-Tuckerin välttämättömät optimaalisuusehdot (välttämättömät KKT-ehdot), ja hieman yleisemmät Fritz Johnin välttämättömät optimaalisuusehdot (välttämättömät FJ-ehdot).

Fritz Johnin välttämättömät optimaalisuusehdot

Olkoon käypä joukko epätyhjä ja avoin sekä x {\displaystyle \mathbf {x} } jonkin epälineaarisen tehtävän lokaali optimi. Tällöin on olemassa vektori ( u 0 , u , v ) {\displaystyle (u_{0},\mathbf {u,v} )} siten, että

u 0 f ( x ) + i = 1 m u i g i ( x ) + i = 1 l v i h i ( x ) = 0 {\displaystyle u_{0}\nabla f(\mathbf {x} )+\sum _{i=1}^{m}u_{i}\nabla g_{i}(\mathbf {x} )+\sum _{i=1}^{l}v_{i}\nabla h_{i}(\mathbf {x} )=0}
u i g i ( x ) = 0 , i = 1 , . . . , m {\displaystyle u_{i}g_{i}(\mathbf {x} )=0,i=1,...,m}
u 0 0 , u i 0 , i = 1 , . . . , m {\displaystyle u_{0}\geq 0,u_{i}\geq 0,i=1,...,m}

missä u {\displaystyle \mathbf {u} } ja v {\displaystyle \mathbf {v} } ovat m ja l vektoreita joiden i:nnet komponintit ovat u i {\displaystyle u_{i}} ja v i {\displaystyle v_{i}} . Luonnollisesti on oletettava, että gradientit ovat olemassa. FJ-ehdot saadaan toteutumaan mielivaltaiselle käyvälle pisteelle lisäämällä sopivia merkityksettömiä rajoituksia.

Karush-Kuhn-Tuckerin välttämättömät optimaalisuusehdot

Fritz Johnin ehdot redusoituvat tietyin ehdoin KKT-ehdoiksi. KKT-ehdot ovat FJ-ehtoja hyödyllisempiä, sillä ne karsivat pois turhia kandidaattipisteitä. Käytännössä näiden ehtojen on taattava, että FJ-ehtojen u 0 {\displaystyle u_{0}} on nollasta poikkeava, jolloin jakamalla sillä puolittain saadaan ns. KKT-ehdot.

Olkoon x {\displaystyle \mathbf {x} } jonkin epälineaarisen tehtävän lokaali optimi, jolla on sopivat rajoitusehdot. Tällöin on olemassa vektori ( u , v ) {\displaystyle (\mathbf {u,v} )} siten, että

f ( x ) + i = 1 m u i g i ( x ) + i = 1 l v i h i ( x ) = 0 {\displaystyle \nabla f(\mathbf {x} )+\sum _{i=1}^{m}u_{i}\nabla g_{i}(\mathbf {x} )+\sum _{i=1}^{l}v_{i}\nabla h_{i}(\mathbf {x} )=0}
u i g i ( x ) = 0 , i = 1 , . . . , m {\displaystyle u_{i}g_{i}(\mathbf {x} )=0,i=1,...,m}
u i 0 , i = 1 , . . . , m {\displaystyle u_{i}\geq 0,i=1,...,m}

missä u {\displaystyle \mathbf {u} } ja v {\displaystyle \mathbf {v} } ovat m ja l vektoreita joiden i:nnet komponentit ovat u i {\displaystyle u_{i}} ja v i {\displaystyle v_{i}} .

Esimerkkejä

  • Funktio f ( x ) = a x 2 + b x + c {\displaystyle f(x)=ax^{2}+bx+c} , kun a > 0 {\displaystyle a>0} , saavuttaa miniminsä pisteessä b 2 a {\displaystyle {\frac {-b}{2a}}} .
  • Funktiolla f ( x ) = x {\displaystyle f(x)=x} , kun x R {\displaystyle x\in \mathbb {R} } , ei ole minimipistettä, sillä jokaista pistettä x {\displaystyle x} kohden on aina olemassa pienempi piste y < x {\displaystyle y<x} .
  • Funktiolla f ( x ) = ( x + 1 ) 2 ( x 1 ) 2 {\displaystyle f(x)=(x+1)^{2}(x-1)^{2}} on kaksi nollakohtaa x 1 = 1 {\displaystyle x_{1}=-1} ja x 1 = 1 {\displaystyle x_{1}=1} . Se on aina ei-negatiivinen, joten funktion minimiarvo on nolla. Huomaa, että kaksi eri x {\displaystyle x} :n arvoa antavat saman optimin, eli optimi ei ole yksikäsitteinen. Jos optimointi tehdään rajoitetussa joukossa x 0 {\displaystyle x\geq 0} , niin optimi on yksikäsitteinen.

Kirjallisuutta

  • Kaleva, Osmo: Optimointi 1. Opintomoniste 138. Tampere: TTKK, 1993. ISBN 951-722-073-1.
  • Thompson, Jan & Martinsson, Thomas: Matematiikan käsikirja, s. 292. Helsinki: Tammi, 1994. ISBN 951-31-0471-0.