Yhden muuttujan funktion minimointi Aloitetaan yhden muuttujan tapauksesta Tarpeellinen myös useamman muuttujan tapauksessa Tehtävä on muotoa min kun f(x) x S R 1
Sallittu alue on muotoa S = [a, b] tai S = (a, b) S = [a, b) tai S = (a, b] S = (, b] tai S = (, b) S = [a, ) tai S = (a, ) S = R 2
Globaaliminimi: pienin lokaaleista minimeistä Optimiratkaisua ei välttämättä ole, jos - sallittu alue on avoin - sallittu alue on rajoittamaton Minimi voi sijaita - tarkasteluvälin sisäpisteessä x (f (x ) = 0) - pisteessä, jossa f ei ole differentioituva - tarkasteluvälin päätepisteessä (jos väli suljettu) 3
Lause 2.1 Olkoon f : R R jatkuvasti derivoituva. Jos pisteessä x R on funktion lokaali minimi, niin f (x ) = 0. Jos toisaalta pätee f (x ) = 0 ja lisäksi f (x ) > 0, niin kyseessä on minimipiste. Jos tarkasteluväli on [a, b] ja f (a) > 0, niin a lokaali minimipiste Jos f (b) < 0, niin b lokaali minimipiste Numeerisessa minimoinnissa ei aina etsitä derivaatan nollakohtaa suo- Huom. raan! 4
Numeerinen ratkaiseminen Hyödynnetään objektifunktion unimodaalisuutta f on unimodaalinen, jos on täsmälleen yksi piste x s.e. kaikille x 1, x 2 [a, b], x 1 < x 2, pätee jos x 2 < x, niin f(x 1 ) > f(x 2 ) ja jos x 1 > x, niin f(x 1 ) < f(x 2 ) 5
Etsitään ensin väli [a, b], jolla f on unimodaalinen Minimipisteen sisältämää väliä voidaan pienentää laskemalla funktion arvot kahdessa apupisteessä Valitaan apupisteet x 1 ja x 2 s.e. a x 1 x 2 b ja lasketaan f(x 1 ) ja f(x 2 ) (1) Jos f(x 1 ) < f(x 2 ), niin minimi kuuluu välille [a, x 2 ). (2) Jos f(x 1 ) > f(x 2 ), niin minimi kuuluu välille (x 1, b]. (3) Jos f(x 1 ) = f(x 2 ), niin minimi kuuluu välille (x 1, x 2 ). 6
a x1 x2 x* b 7
Menetelmät Yhdenmuuttujan funktion minimoinnin numeeriset menetelmät voidaan jakaa kahteen luokkaan (1) eliminointimenetelmät - perustuvat unimodaalisuuteen ja hakuvälin asteittaiseen pienentämiseen (2) interpolointimenetelmät - perustuvat unimodaalisuuteen ja objektifunktion approksimointiin polynomeilla 8
Unimodaalisen välin hakeminen Ennen varsinaista minimointia etsitään väli, jolla f on unimodaalinen Olkoon (A, B) väli, jolla funktiota halutaan tarkastella Unimodaalista väliä voidaan hakea esim. tasavälisellä tai askelittaisella haulla Saatua väliä voidaan kutsua myös epävarmuusväliksi 9
Tasavälinen haku Lasketaan f:n arvot P :ssä välin (A, B) pisteessä x i = A + i (B A), P + 1 i = 1,..., P Kun löydetään pisteet x j, x j+1 ja x j+2, joille f(x j ) > f(x j+1 ) < f(x j+2 ), niin välillä (x j, x j+2 ) on ainakin yksi minimi Saadut kaksi osaväliä voidaan vielä jakaa pienemmiksi 10
Haku askelittain Lähdetään A:sta tietyllä askelpituudella Askelpituutta voidaan muuttaa, jos funktion käyttäytyminen ei muutu Jos vähenevä funktio alkaa kasvaa on minimi ohitettu Peräännytään pienemmällä askelpituudella Tarkemmin kvadraattisen interpoloinnin yhteydessä 11
Eliminointimenetelmiä Oletetaan, että f on unimodaalinen välillä [a, b] Tasavälinen haku (myös eliminointimenetelmänä) Jatketaan jakamalla [x j, x j+2 ] tasaväleihin kunnes haluttu tarkkuus on saavutettu Yksinkertainen, mutta vaatii paljon laskentaa 12
a x 1 x 2 x 3 x 4 x 5 b 13
Numeerisessa minimoinnissa ei etsitä tarkkaa minimiratkaisua, vaan approksimaatiota, joka on riittävän lähellä tarkkaa minimiä Menetelmiä kontrolloidaan lopullisen tarkasteluvälin pituudella L Jos f unimodaalinen tarkasteluvälillä, niin äärellisellä askelmäärällä löydetään ratkaisu x, jolle x x L, missä x on tarkka ratkaisu Mitä nopeammin tarkasteluväli lyhenee sitä tehokkaampi menetelmä 14
Puolitusmenetelmä Jokaisella kierroksella tarvitaan vain kaksi uutta funktion arvon laskua Sijoitetaan uudet pisteet symmetrisesti välin keskipisteen (a + b)/2 ympärille, ε > 0 etäisyydelle Säästetään funktion arvojen laskemisessa verrattuna tasaväliseen hakuun 15
Agoritmi (1) Valitse vakio 2ε > 0, ja haluttu lopullinen tarkasteluvälin pituus L. Aseta kierroslaskuri h = 1. (2) Jos b h a h < L, lopeta. Minimipiste sijaitsee välillä [a h, b h ]. Muuten, laske uudet pisteet x h = ah + b h 2 ε ja y h = ah + b h 2 + ε. (3) Jos f(x h ) < f(y h ), aseta a h+1 = a h ja b h+1 = y h. Muuten aseta a h+1 = x h ja b h+1 = b h. Aseta h = h + 1 ja mene kohtaan (2). 16
Menetelmän tehokkuus Tarkasteluvälin pituus pienenee melkein puolella joka kierroksella Pituus h kierroksen jälkeen on 1 2 h(b a) + ε ( 1 1 2 h ) Haluttu tarkkuus: 2 h (b a) + 2ε(1 2 h ) L 2 h (b a 2ε) L 2ε hln2 ln(l 2ε) ln(b a 2ε) h ln ( ) L 2ε b a 2ε /ln2 h = L 2ε b a 2ε Funktion arvojen lasku: Joka kierroksella 2 eli h kierroksen jälkeen 2h 17
Esimerkki Minimoidaan funktiota f(x) = x 2 +2x välillä [ 3,5]. Lopullinen tarkasteluvälin pituus L = 0.3 ja 2ε = 0.001. Kierrosmäärä edellisestä kaavasta h = 5. a h b h x h y h f(x h ) f(y h ) 3.0000000 5.0000000 0.9995000 1.0005000 2.9980000 3.0020000 3.0000000 1.0005000 1.0000250 0.9992500 1.0000000 0.9999995 3.0000000 0.9992500 2.0001250 1.9991250 0.0002500 0.0017493 2.0001250 0.9992500 1.5001875 1.4991875 0.7498125 0.7508119 1.5001875 0.9992500 1.2502188 1.2492188 0.9373906 0.9378900 Minimipisteen estimaatti esim. ( 0.99925 1.2502188)/2 = 1.1247344 Funktion arvo f( 1.1247344) = 0.9844414 (todellinen f( 1) = 1) 18
35 x**2+2*x 30 25 20 15 10 5 0-5 -3-2 -1 0 1 2 3 4 5 19