Paláncz Béla - Numerikus Módszerek - 211-4. Optimalizálás 4 Optimalizálás Bevezetés Az optimalizáció, egy függvény szélsőértéke helyének meghatározása, talán a legfontosabb numerikus eljárások közé tartozik. Ha valaki rendelkezik egy hatékony optimalizációs eljárással, akkor több más, első megközelítésben látszólag eltérő numerikus probémát is meg tud oldani. Mivel a szélsőérték feladatok típusai változatosak, így a megoldásukra kidolgozott módszerek is nagyon sokfélék lehetnek. 4-1 A szélsőérték-feladatok típusai A szélsőértéket (minimumot) mindig egy adott tartományban vizsgáljuk. Ha létezik a tartományban egy pont ahol igaz az, hogy ezen pont akármilyen kicsiny környezetében a függvényérték nagyobb, mint ezen pontban, akkor ott a függvénynek lokális minimuma van. Ha a tartományban több ilyen pont létezik és ezekben a függvényérték eltérők, akkor a legkisebb minimumhoz tartozó tartomány pontját globális minimumnak nevezzük, lásd 4.1 ábra. f(x) P 1 P 2 4.1 ábra Az f(x) függvény globális minimuma (P 1 ) és egy lokális minimuma (P 2 ). Ha a függvény minimumát úgy keressük, hogy közben a tartománybeli pontnak valamilyen feltételt ki kell elégítenie, akkor feltételes szélsőértékről beszélünk. A feltételeket vagy megkötéseket megkülönböztetik aszerint, hogy az egyenletekkel vagy (és) egyenlőtlenségekkel adott, lásd 4.2 és 4.3 ábrák.
2 Optimalizáció_4_211.nb f(x) P 2 g(x) P 1 4.2 ábra Az f(x) függvény minimuma megkötés nélkül (P 1 ) és a minimum g(x) = megkötéssel (P 2 ) f(x) P 2 P 1 g(x) 4.3 ábra Az f(x) függvény minimuma megkötés nélkül (P 1 ) és a minimum g(x) < egyenlőtlenséggel adott megkötéssel (P 2 ) Megjegyzések Az általunk vizsgált esetekben a keresési tartomány egy vektortér és a minimalizálandó függvény általánosan egy skalár-vektor függvény, a megkötés pedig egyenlet vagy egyenlőtlenség rendszer alakjában vektor-vektor függvénnyel adott. Gyakran előfordul, hogy a keresési tartomány végesszámú és diszkrétértékű elemekből áll, például gráfokkal reprezentálható problémák esetén, amikor a cél lehet egy optimális összefüggő élsorozat (út) megtalálása a gráfban (diszkrétértékű vagy kombinatorikus optimalizáció). Az optimalizáció kiterjeszthető olyan esetekre, amelynél a keresési tartomány a valós függvények tere, a minimalizálandó függvény egy funcionál és a megkötéseket differenciálegyenletek képviselik (variációszámítás). Előfordul, hogy nem csupán egy minimalizálandó függvényünk (célfüggvényünk) van hanem több és ezek "ellenérdekeltek" egymással szemben, azaz az egyik értékének csökkentése egy másik értékének növelését eredményezi (játékelmélet). Az is lehetséges, hogy a tartományt valószínűségi változók alkotják (sztohasztikus optimalizáció). Az optimalizációval legáltalánosabb értelemben az operációkutatás foglakozik, de a mesterséges intelligenciakutatásokban is fontos szerepet kap. A továbbiakban először a megkötés nélküli optimalizációs módszerek közül tekintünk át néhányat.
Optimalizáció_4_211.nb 3 4-2 Aranymetszés Az f (x) függvény r minimumhelyét gyakran egy [x A, x B D intervallumban keressük. A függvény az intervallumban unimodális, ha a minimumhelyig monoton csökken, attól kezdve pedig monoton nő. Az intervallum módszerek (vágáson alapuló módszerek) ezt a tulajdonságot használják ki. A módszerek alkalmazásánál két belső pontban számítjuk ki a függvény értékét. Legyen a két pont x 1 és x 2 (x A < x 1 < x 2 < x B ). Ha f (x 1 L f Hx 2 ), akkor a minimumhely az [x A, x 2 D intervallumban van, hiszen egyébként ellentmodásba kerülnénk azzal, hogy a függvény a minimumhelyig monoton csökkenő (4.4 ábra). Hasonló meggondolásból f (x 1 L f Hx 2 ) esetén a minimumhely az [x 1, x B D intervallumban van (4.1 ábra). 4.4 ábra A vágási módszerek alapelve Célszerűnek tűnik az x 1 és x 2 pontokat az intervallum középpontjához közel választani, így az egy vágással gyakorlatilag a felére csökkenthető. Egy klasszikus geometriai fogalom azonban jobb stratégiát kínál. Ez az aranymetszés módszere. Ebben az esetben illetve x 1 = l x A + H1 - ll x B ahol l az alábbi egyenlet pozitív megoldása (4.5 ábra) x 2 = H1 - ll x A + l x B λ 1- λ λ 4.5 ábra Az aranymetszés geometriai értelmezése 1 l = l 1 - l Ø l2 + l - 1 = Ø l = 5-1 2 =.6183... A módszer hatékonyságát az a speciális tulajdonsága adja, hogy az új [x 1, x B E =[x A 1, x B E intervallum, x 1 1 osztópontja azonos a korábbi x 2 osztóponttal (4.6 ábra),
4 Optimalizáció_4_211.nb f(x).382.618 1 x x A x 1 x 2 x B x A 1 x 1 1 x 2 1 x B 1 4.6 ábra Az aranymetszés módszere Az intervallum módszerek biztonságuk mellett lassúak, hiszen a felhasznált információ csupán a belső pontokban számolt két függvényérték összehasonlításából származik. 4-3 Newton-módszer Ha a függvény deriváltjának számítása nem okoz gondot akkor a Newton módszert most is alkalmazhatjuk, azzal az eltéréssel, hogy nem az f (x) = egyenletet, hanem az f '(x) = egyenletet oldjuk meg, azaz az iterációs formula, x k+1 = x k - f ' HxL f '' HxL 4-4 Többváltozós Newton-módszer A Newton módszer többváltozós esetben is alkalmazható. Ekkor f(x) egy skalár -vektor függvény, ahol xœr n. Most a Taylor-sor másodrendű tagját is figyelembe vesszük: azaz f Hx k+1 L º f Hx k L + f Hx k L T Hx k+1 - x k L + 1 2 Hx k+1 - x k L T H Hx k L Hx k+1 - x k L Df = f Hx k L T Dx + 1 2 DxT H Hx k L Dx ahol f(x) az f(x) függvény gradiens-vektora és H a Hesse- mátrix, az f(x) függvény második parciális deriváltjainak a mátrixa H HxL i,j = 2 f HxL x i x j = J fhxl N... x 1 x 1 J fhxl x n x 1............... J fhxl N... x 1 x n J fhxl x n x n A minimum szükséges feltétele alapján, azaz Df = f Hx k+1 L - f Hx k L -t deriválva Dx = x k+1 - x k szerint, a derivált zérus, N N azaz = f Hx k L T + H Hx k L Dx x k+1 = x k - HH Hx k LL -1 f Hx k L
Optimalizáció_4_211.nb 5 4-5 Gradiens módszer A Hesse-mátrix számításától eltekinthetünk, ha az ún. gradiens módszert (legmeredekebb irány módszere) alkalmazzuk, azaz egy x k pontból a legmeredekebb csökkenő irányba mozdulunk el, vagyis Tehát d k = - f Hx k L x k+1 = x k + a k d k ahol a k egy alkalmasan megválasztott pozitív lépéshossz úgy, hogy minden lépésben f Hx k+1 L < f Hx k L. 4.7 ábra A gradiens módszer elve Ez a választás helyes hiszen a megválasztott irány akkor megfelelő, ha f Hx k+1 L < f Hx k L azaz f Hx k + a k d k L < f Hx k L A baloldalt Taylor sorba fejtve azaz f Hx k L + a k Hõf Hx k LL T d k < f Hx k L a k Hõf Hx k LL T d k < Mivel a k > és véges, a d k irány akkor lejtő irányú, ha Hõf Hx k LL T d k < Az a k értékét úgy határozzuk meg, hogy az minimalizálja az f Hx k+1 L = f Hx k + a k f Hx k LL kifejezést. Ez minden lépésnél egy egyváltozós optimalizálást jelent. Megjegyzés A Newton módszer esetén és a k ª 1 d k = -HH Hx k LL -1 f Hx k L 4-6 Nelder-Mead-módszer Ha a deriváltak sem számíthatók könnyen, közvetlen kereső módszereket célszerű használni. Most itt a Nelder- Mead -féle szimplex módszert ismertetjük röviden. Az eljárás indításánál n +1 számú x 1,...,x n+1 indulópontot választunk úgy, hogy az n- dimenziós térben egy poliéder (szimplex) csúcsait alkossák (n =2 esetén ez egy háromszög). A következő pontokat és műveleteket értelmezzük, lásd 4.8 ábra.
6 Optimalizáció_4_211.nb 4.8 ábra Egy szimplex alakváltozásai 2D esetén. Az induló szimplex : f (a) < f (b) < f (c) 1) Legyen az induló szimplex (a, b, c) úgy, hogy f(a) < f(b) < f(c). 2) Ha a 3 pont elég közel van egymáshoz, akkor f(a) a minimum. 3) Különben az e pontot képezzük (c tükrözése m pontra és nyújtás) 4) ha f(e) < f(b) akkor e pontot választjuk új a c helyett, azaz az új szimplex (a, b, e), különben képezzük az r pontot (összehúzás) 5) ha f(r) < f(c) akkor az új szimplex (a, b, r) 6) ha f(r) f(b) képezzük az s 1 pontot (zsugorítás) 7) ha f(s 1 ) < f(c) akkor az új szimplex (a, s 1, b), különben az új szimplex (a, m, c 1 ) 8) az aktuális szimplex csúcsainak átnevezése: (a, b, c) és visszalépés 2)-re Az eljárás során, a fenti műveleteket alkalmazva a szimplex alakja a függvényfelület alakjához igazodik, az árkok mentén megnyúlik és szükség esetén elfordul, végül pedig a minimumhely környezetére zsugorodik. A leállás feltétele, hogy az utolsó két iterációban a szimplex súlypontjának változása egy előre definiált e hibakorlát alatt legyen. Az alábbi ábrákon az induló szimplexet és a végső, minimumot lefedő szimplexet látjuk 4.9 ábra Induló szimplex 4.1 ábra Végső szimplex
Optimalizáció_4_211.nb 7 4-7 Lagrange-módszer Keressük az f(x) függvény minimumát egy g(x) = feltétel kielégítése mellett, azaz ha g HxL = min x f HxL g 1 HxL g 2 HxL. g m HxL A Lagrange-módszer esetén az eredeti feladat helyett tekintsük az alábbi függvény megkötés nélküli minimalizálását, = L Hx, ll = f HxL + l T g HxL = f HxL + l i g i HxL ahol λ i -k a Lagrange- féle multiplikátorok (szorzók). A minimum szükséges feltétele a parciális deriváltak eltűnése, azaz és x L Hx, ll = x Hf HxLL + l T x Hg HxLL = x H f HxLL + l i g i x HHxLL = l L Hx, ll = g HxL = ahol L(x, l) egy skalár-vektor függvény, a gradiens-vektorok pedig m i=1 m i=1 x HùL = HùL x 1,..., HùL x n és l HùL = HùL l 1,..., HùL l m A minimum elégséges feltétele, hogy ezen kívül az L (x, l) függvény Hesse-mátrixa pozitív definit legyen, azaz a mátrix sajátértékei pozitívak legyenek a szélsőérték helyén. 4-9 Büntetésfüggvény-módszer A megkötéssel definiált minimalizáció helyett, most tekintsük a következő megkötés nélküli feladatot, F Hx, KL = f HxL + K Hg HxLL T g HxL ahol K egy skalár paraméter. A K paraméter értékének növelésével az új, megkötés nélküli probléma megoldása tart az eredeti egyenlőségi megkötéssel rendelkező probléma megoldásához, hiszen K növekvő értéke miatt a minimalizáló eljárás "kénytelen" csökkenteni g(x) normáját, mivel ennek súlya a célfüggvényben egyre nagyobb és ekkor a Hg HxLL T g(x) skalárszorzat nullától való kis eltérése is nagy értéket jelent a célfüggvényben, amit minimalizálni szeretnénk. Minél nagyobb a K annál nagyobb a "büntetés" a g(x) értékének a nullától történő eltérése miatt. Ezt az egyszerű kvadratikus büntetés-függvényt Courant-féle büntetés függvénynek nevezik. 1. Példa Tekintsünk egy adott V térfogatú kúpot, amelynek magasságát, h és alaplapjának sugarát, r, úgy kell meghatároznunk, hogy a kúp felülete A minimális legyen! A minimalizálandó függvény A megkötés pedig A Hr, hl = p r r 2 + h 2
8 Optimalizáció_4_211.nb g Hr, hl = 1 3 p h r2 - V = A minimalizálandó függvény a kvadratikus büntetés - függvénnyel, mint megkötés nélküli feladat, F Hr, hl = p r r 2 + h 2 + K 1 3 p h r2 - V A megkötés nélküli minimalizálás eredményét V = 15 esetén, növekvő K értékek mellett az alábbi táblázat szemlélteti. Az éles jegyeket kiemeltük. 1. Táblázat K r h 1 4.661122 527 454 753 6.591 822 727 173 977 1 4.661367 492 211 849 6.592169 226 591 7 1 4.661392 6 898 92 6.59223 813 96 156 1 4.661394463 338 137 6.59227257 573 435 1 4.6613947 467 22 6.59227626 12 582 1 4.661394746 79 536 6.5922761 21 399 Az exakt megoldás, amely a Lagrange- módszerrel adódik, 2 és r = 21ê6 15 2ê3 p 1ê3 = 4.6613947326646587456 h = 32ê3 = 6.592276558868914 1ê3 p 4-1 Karush-Kuhn-Tucker-feltételek Ha a megkötések az egyenlőség mellett egyenlőtlenségi feltételeket is tartalmaznak, azaz keressük az f(x) függvény minimumát, az alábbi megkötések mellett, A feladat Lagrange függvénye g HxL = g 1 HxL g 2 HxL. g m HxL min x f HxL = és h HxL = h 1 HxL h 2 HxL. h p HxL L Hx, l, ml = f HxL +l T g HxL +µ T h HxL Most a lokális minimum szükséges és elégséges feltételeit az ún. Karush-Kuhn- Tucker feltételek biztosítják. A szükséges feltételek: a) Egyrészt (L (x, l, m)) = vagyis
Optimalizáció_4_211.nb 9 m p Hf HxLL + l i Hg i HxLL + m i Hh i HxLL i=1 i=1 azaz a Lagrange függvény gradiens vektorának minden komponense zérus. Továbbá g (x) = és minden i = 1,..., p esetén m i h i = b) Másrészt h (x) és m azaz a m vektor egyik eleme sem negatív. Az elégséges feltétel az x minimum helyén, hogy tetszőleges dx változás esetén igaz, hogy m dx T H H f HxLL + l i H Hg i HxLL + m A H Hh A HxLL dx > i =1 A ahol h A azok az egyenlőtlenségi megkötések, amelyekre h A (x) =. Ezeket ún. aktív egyenlőtlenségi megkötésnek nevezzük. Amennyiben a m = H Hf HxLL + l i H Hg i HxLL + m A H Hh A HxLL i =1 A mátrix pozitív definit, a fenti elégséges feltétel igaz. (Lehet ettől függetlenül is igaz, de akkor a kérdés eldöntéséhez külön vizsgálat szükséges!) Megjegyzés à Ha az egyenlőségi megkötések lineárisak és a célfüggvény konvex, akkor a minimalizálási probléma konvex, azaz a KKT szükséges feltételelek elégségesek is. Ekkor a lokális minimum globális minimum is egyben. Egy függvény konvex, ha a Hesse mátrixa legalább pozitív szemidefinit. Egy mátrix akkor pozitív szemidefinit, ha nincs negatív sajátértéke. Természetesen ez a függvény egy lokális tulajdonsága. à Ha a célfüggvény és a megkötések egyaránt lineárisak akkor lineáris programozási feladatról beszélünk. 2. Példa Minimalizáljuk az függvényt a egyenlőségi és az x, azaz f Hx, y, zl = Hx - yl 2 + 5 z g 1 Hx, y, zl = x + y + z + 5 = g 2 Hx, y, zl = y - 3 z - 1 = h 1 (x,y,z) = -x egyenlőtlenségi feltételek mellett. Oldjuk meg a feladatot a KKT feltételek alapján! A Lagrange függvény L Hx, y, z, l 1, l 2, m 1 L = f Hx, y, zl + l 1 g 1 Hx, y, zl + l 2 g 2 Hx, y, zl - m 1 x
1 Optimalizáció_4_211.nb Az a) pontbeli szükséges feltételeknek megfelelő egyenletek: továbbá valamint L x Hx, y, z, l 1, l 2, m 1 L = l 1 - m 1 + 2 x - 2 y = L y Hx, y, z, l 1, l 2, m 1 L = l 1 + l 2-2 x + 2 y = L z Hx, y, z, l 1, l 2, m 1 L = l 1-3 l 2 + 5 = g 1 Hx, y, zl = x + y + z + 5 = g 2 Hx, y, zl = y - 3 z - 1 = -m 1 x = Ez egy nemlineáris egyenletrendszer az (x, y, z, l 1, l 2, m 1 ) változókra. Az egyenletrendszer megoldásai, x - 88 49 y - 7 2 z - 3 2-211 98-13 98 l 1 4-5 7 l 2 3 1 7 m 1 11 Ellenőrizzük, hogy melyik megoldás elégíti ki a b) pontbeli szükséges KKT feltételeket, azaz és Nyilván csak az első! -x m 1 Azt, hogy ez a szélsőérték valóban minimum, az elégséges KKT feltétel alapján döntjük el. Azonban esetünkben a megkötések lineárisak, tehát csak azt kell megnézni, hogy a célfüggvény a szélsőérték helyén konvex-e?! A célfüggvény Hesse-mátrixa, H (f (x,y,z))= Ennek értéke az x =, y = -3.5 és z = -1.5 helyen, Ennek sajátértékei, H = f 2 f 2 x 2 y x f 2 x y f 2 x z f 2 z x f 2 f 2 y 2 z y f 2 y z 2-2 -2 2 azaz a Hesse - mátrix szemidefinit, tehát a célfüggvény konvex, így a minimumjelölt valóban minimum! c = 4 f 2 z 2
Optimalizáció_4_211.nb 11 4-11 Genetikus algoritmus Bár a módszert elsősorban többváltozós esetben alkalmazzuk, az egyszerűség érdekében legyen a feladat egy f (x) egyváltozós függvény globális maximumának meghatározása egy adott xœ[a, b] intervallumban, azaz max f HxL x œ@a, bd Az intervallum valós számokból, de mint láttuk az intervallum elég jól lefedhető véges tizedestört alakú számokkal. Minél több jegyet alkalmazunk (minél finomabb a felbontás) annál jobb a lefedés. Most alkalmazzunk kettes számrendszert. Rögzített hosszúságú bitsorozat esetén, elvileg az összes függvényértéket a=... és b=1...11 közötti értékre kiszámítva kiválaszhatjuk azt a bitsorozatot (x értéket) amelynél a függvénynek maximuma van. Miután a maximum egy jó közelítését szeretnénk megkapni, azaz a felbontás nagy, vagyis a bitsorozat hosszú, így a kiszámítandó függvényértékek száma nagyon nagy. A számítási igény lényegesen csökkenthető ha egy keresési stratégiát alkalmazunk Mutáció A módszer lényege, hogy véletlenszerűen több kiindulási bitsorozatot (egyedet) hozunk létre. Ezek alkotják az induló populációt és egyben az első, kiinduló generációt. A populáció egyedeit aszerint értékeljük, hogy hozzájuk mekkora függvényérték tartozik. Minél nagyobb függvényérték tartozik egy egyedhez, annál nagyob az egyed fittségi indexe. Kiválasztjuk a legfittebb egyedet és belőle mutációval előállítunk egy új populációt, amely a következő generáció lesz. Az egyed mutációja, az egyed (bitsorozat) génjeinek (bit-jeiknek) kis valószínűséggel való megváltoztatását jelenti. Ezt a változtatási valószínűséget rögzítve (általában.1~.3), végighaladunk a biteken és vagy megváltozatjuk őket (-ról 1-re illetve megfordítva) vagy sem. Akkor választottuk meg helyesen a mutáció valószínűségét, ha ennek az új populációnak az átlagos fittsége nagyobb lesz, mint az előző populációjé volt. Ez módszer azonban még mindig meglehetősen lassú. Így a természet létrehozta a szexualitást. Szexualitás Ebben az esetben a populációból két egyedet választunk ki (szülők). A szülők kiválasztása nem determinisztikus, azaz nem a két legfittebb egyed lesz kiválasztva, de minél nagyobb egy egyed fittsége annál nagyobb valószínűséggel lehet szülő (rulett-módszer, amelynél az egyedet reprezentáló rulettkerék szegmense arányos az egyed fittségével)! Ha kiválasztottuk a szülőket, akkor létrehozzuk ezek utódait (gyerekek). Az utódok létrehozása valamilyen rögzített valószínűséggel (általában.5~.8) a szülők génjeinek keresztezésével (crossing) történik, különben klónozással. A két szülő két gyereket hoz létre. A keresztezés esetén rögzített valószínűséggel kiválasztunk egy bitpozíciót a szülők bitsorozatában, majd ettől a pozíciótól kezdve kicseréljük egymással a bitjeiket (génjeiket). A klónozásnál nincs csere, az utódok egyezőek a szülőkkel. Ezt követően, mindkét esetben még egy mutáció következik. A fenti módszerrel hozzuk létre az új generáció populációját. Az iteráció (generációk váltása) során figyeljük a populáció legfittebb egyede fittségi indexének változását. Ha ez a változás már elhanyagolható akkor befejezzük az iterációt. Biztonságként - arra az esetre ha az eljárás nem lenne konvergens - limitáljuk a generációk számát. A fenti algoritmus a legegyszerűbb BGA (Basic Genetic Algorithm), amelynek számos változata alakult ki az elmúlt 2 év folyamán. A mai rendszerek, pl. a Matlab és a Mathematica egyaránt tartalmazzák a módszert. 3. Példa Legyen a függvény, amelynek globális maximumát keressük a x 1 tartományban, f (x) = -mod (9 x, 1) sin (p x)) A feladat a hagyományos optimalizációs módszerekkel nem oldható meg könnyen, lásd 4.11 ábra.
12 Optimalizáció_4_211.nb 1..8.6 fhxl.4.2...2.4.6.8 1. 4.11 ábra Az f(x) = -mod(9x, 1) sin(p x)) függvény Az alábbi ábrákon a genetikus algoritmus eredményét látjuk standard paraméterekkel. x maximális fittségi index.4445.444.4435 2 4 6 8 iterációk száma 4.12 ábra A maximális fittségű egyed fittségi indexe az iterációk (generációk) számának függvényében 1..8.6.4.2...2.4.6.8 1. 4.13 ábra A generált generációk legfittebb egyedeinek elhelyezkedése