Technológiai folyamatok optimalizálása Direkt kereső (numerikus) optimalizálási módszerek Egyváltozós célfüggvények optimalizálása Ráduly Botond Mészáros Sándor
Mikor alkalmazzuk? ha lehetetlen az analitikus maximalizálás, mert 1) nem folytonos a célfüggvény és annak deriváltja, 2) mert a probléma túl komplex a változók nagy száma miatt, 3) a deriváltak felírásának nehézsége miatt, stb. a legtöbb technológiai folyamat matematikai modellje komplex nemlineáris függvényekből áll, amelyeket lehetetlen analitikus módszerekkel optimalizálni A direkt kereső módszerek általános jellemzői: egy előre meghatározott keresési terv szerint válogatják a döntési változók értékét és számolják ki a célfügvényt a keresés a megoldás egy (vagy több) lehetséges értékéről indul egy kereső algoritmus használatával a megoldás egy közelítő értékét találják meg. A megoldást tartalmazó intervallum nagyságát (azaz a keresés precizitását) a keresés kezdetén defináljuk.
1. Kizárásos módszerek (elimination methods) Egy döntési változót tartalmazó célfüggvények optimalizálására használatosak. Nem igényelik hogy a célfüggvény folytonos és deriválható legyen a keresési tartományban Még ha létezik is analitikus megoldása ezen célfügvényeknek, a numerikus módszerek kényelmesebben alkalmazhatók számítógépes környezetben, ezért nagyobb népszerűségnek örvendenek Ezek a módszerek a többdimenziós optimalizálásban mint szubrutinok lehetnek fontosak Általános algoritmus: meghatározunk egy intervallumot, amely biztosan tartalmazza az optimális megoldást és amelyen a célfüggvény unimodális az intervallumot lépésekben csökkentjük olyan intervallumok eltávolításával, amelyekről biztosan tudjuk, hogy nem tartalmazzák a megoldást
Az intervallum módszerek használatának feltétele, hogy a célfüggvény a keresési tartományon unimodális legyen. Ha a kezdeti keresési intervallumon a célfüggvény plurimodális, akkor olyan intervallumokra bontjuk le amelyeken a unimodális és mindegyiken alkalmazzuk a keresési módszert a lokális optimumok azonosítása érdekében. A globális optimum a lokális optimumok legjobbika lesz. x y xmin xmax y*
Az intervallum módszerek használatának feltétele, hogy a célfüggvény a keresési tartományon unimodális legyen. Ha a kezdeti keresési intervallumon a célfüggvény plurimodális, akkor olyan intervallumokra bontjuk le amelyeken a unimodális és mindegyiken alkalmazzuk a keresési módszert a lokális optimumok azonosítása érdekében. A globális optimum a lokális optimumok legjobbika lesz. y y2* y* = max(y1*, y2*) y1* xmin xmax x
Unimodális függvények unimodális függvények – az adott intervallumon csak egyetlen szélsőértéket tartalmaznak. A függvény ez esetben monoton növekvő a keresési intervallum kezdetétől a maximumig, majd monoton csökkenő a keresési intervallum végéig (minimum esetén fordítva) y* y* xmin x* xmax xmin x* xmax
y* ha y unimodális az [xmin xmax] intervallumon, akkor a célfüggvény két értékét két pontban vizsgálva mindig található egy intervallum, amely biztosan nem tartalmazza a maximumot xmin x* xmax xmin xmax x2 y 1 2 3 x1 az 1. intervallum eltávolítható, mert biztosan nem tartalmazza a maximumot egy következő lépésben már kisebb a keresési tartomány, vagyis xmin = x1
A maximumot nem tartalmazó intervallumokat addig távolítjuk el, amíg a keresési tartományt egy előre meghatározott ε intervallumra szűkítjük le, amely még biztosan tartalmazza a megoldást. Az optimum közelítő értéke e tartomány közepén lesz, azaz x* = x ± ε/2 precizitás xmin xmax y* ε = xmin - xmax x xmin xmax y ε
A döntési változók értékeinek választása történhet: egyszerre – egy előre meghatározott terv szerint, amikor is a kipróbálandó értékeket már kezdettől fogva tudjuk egymást követően – a keresési stratégia úgy van megalkotva, hogy az egymást követő próbák befolyásolják egymást, azaz a változók értékei az n+1 próbánál az n próbában elért eredménytől függenek. Nagyobb hatékonyságuknak köszönhetően ez utóbbiak az elterjedtebbek A keresési intervallum csökkentésére használt módszer szerint vannak 1. A célfüggvény deriváltját használó módszerek - az intervallum-felezés (Bolzano) módszere - az egymást követő párok módszere 2. A célfüggvény értékét használó módszerek - a Fibonacci sorozat módszere - az aranymetszet módszere
Az egyenlő távolságú keresés módszere Algoritmus: a keresési intervallumot n pont segítségével n+1 egyenlő szubintervallumra osztjuk a keresés bizonytalansági intervalluma (precizitása, ε): ε = 2/(n+1) Ha pl. a megoldást ε = 0.01 precizitással keressük, akkor n = 199 pontban kell megvizsgálni a célfüggvény értékét. xmin xmax A módszer nem túl hatékony, mert nagyon sok pontban meg kell vizsgálni a célfüggvény értékét.
Az intervallum-felezés módszere A célfüggvéy deriváltjának értékét számolja 3 pontban: a keresési intervallum két szélén és a közepén és ez alapján szűkíti a keresési intervallumot. Hogy alkalmazni lehessen, szükséges: - a célfüggvény deriváltjának kifejezése - a kezdeti keresési tartomány Δ0 = xmax – xmin (unimodalitás!) - az optimum-azonosítás kívánt precizitása ε Az unimodalitást úgy ellenőrizhetjük, hogy megvizsgáljuk a keresési tartomány két szélén (xmax-ban és xmin-ben) a célfüggvény deriváltjainak értékét. Ha ezek előjele különbözik, akkor a célfüggvény unimodális, ha előjelük azonos, akkor meg nem.
Algoritmus: elhelyezünk egy x pontot az aktuális keresési tartomány közepén, azaz x = (xmax – xmin )/2 kiszámoljuk a célfüggvény deriváltjainak értékét x-ben, xmax-ban és xmin-ben eltávolítjuk azt az intervallumot, amelyen a derivált nem változtat előjelt teszteljük, hogy elértük-e a kívánt precizitást. Amennyiben Δk > ε, úgy visszatérünk az 1. ponthoz és újabb intervallumot zárunk ki. Ha Δk ≤ ε, akkor a keresett megoldás x* = xk ± ε/2 Az intervallum-felezési módszer algoritmusa nagyon egyszerű és gyors, de a célfüggvény derivátjának analitikus formája nem mindig áll rendelkezésre. Ilyen esetben numerikus deriválási módszerrel lehet a derivált közelítő értékét megkapni.
Az egymást követő párok módszere y(x1+δ) y(x1) δ x1 x1 + δ x A célfüggvény deriváltja az x1 pontban megközelíthető a következő kifejezéssel: Az optimumkeresési algoritmus a továbbiakban megegyezik az intervallum-felezési módszer algoritmusával.
A célfüggvény értékét használó módszerek Olyan esetekben használhatóak, amikor nem áll rendelkezésre a célfüggvény deriváltjának analitikus kifejezése, de az optimalizálandó rendszer adott és a célfüggvény értéke kiszámítható vagy mérhető. Az aranymetszés módszere aranymetszés – a szemnek a leginkább tetsző metszetet jelenti (a művészetben is használt térbeli geometriai arány) a c b ha ab = 1 és ac = x, akkor x = 0.618 (jelölése: s) az optimumkeresés során a keresési intervallum szűkítése az aranymetszés szabályai szerint történik. A precizitás ε(k) = 0,618k
Algoritmus: Amennyiben a kezdeti keresési intervallum Δ0 és a kívánt precizitás ε kiszámolunk egy δ szubintervallumot a δ(i) = (1 - s)∙Δ(i-1) ahol i az aktuális kizárás száma, Δ pedig a keresési tartomány nagysága a k lépésben a Δ(k) = xmax (k) – xmin (k) felveszünk két pontot a keresési intervallumban: a(i) = xmin(i) + δ(i) és b(i) = xmax(i) - δ kiszámoljuk a célfüggvény értékét a-ban és b-ben kizárjuk azt az intervallumot amelyben a keresett maximum vagy minimum biztosan nem lehet teszteljük, hogy elértük-e a kívánt precizitást. Amennyiben Δk > ε, úgy visszatérünk az 1. ponthoz és újabb intervallumot zárunk ki (azaz egy újabb keresési lépést végzünk). Ha Δk ≤ ε, akkor a keresett megoldás
Példa: Adott egy szakaszos reaktor amely egy szűrőegységhez kapcsolódik. A reakció T órán keresztül történik, amely után a reaktor tartalma az elválasztóba töltődik. A keletkező termék mennyisége a t reakcióidőtől függ és x tömegaránnyal jellemezhető (kg termék/kg töltet). A szűrés hatásfoka a termék tömegarányától (vagyis az x érékétől függ). A reaktor működtetési költsége 1000 euro/óra, a termék ára 10 euro/kg. Egy töltet tömege 500 kg. A t és x közötti összefüggést az alábbi kísérleti görbe mutatja: 1 1 x x 2 4 6 100 200 300 t a szűrés költsége
Találjuk meg azt a t reakcióidőt amely maximalizálja a profitot A célfüggvény: profit = 1/t∙(10∙500∙x - 1000∙t – szűrés költsége) amely a görbék segítségével kifejezhető az x függvényében. A célfüggvény tehát nem fejezhető ki analitikusan, de kiszámítható az értéke, illetve egy poliomiális regresszió segítségével megközelíthető. Ha ε = 0.01 precizitással keressük az maximumot, akkor csupán 10 lépésben megtalálhatjuk azt, mivel ε(n) = 0,618n ε = 0.01 n = 10 ez 20-szor kevesebb mintha pl. az egyenlő távolságok módszerével dolgoztunk volna (ott n =199 lenne)
A Fibonacci sorozat módszere Fibonacci sorozat – a nyulak szaporodására használt természetes számsor (1202-ből). Az optimalizálási módszer sokkal későbbi (XX. sz.) Fi(n) = Fi(n-1) + Fi(n-2) ha n ≥ 2 Fi(0) = Fi(1) = 1 n Fi(n) 1 2 3 4 5 8 6 13 7 21 34 stb
Algoritmus: Amennyiben a kezdeti keresési intervallum Δ0 és a kívánt precizitás ε kiszámoljuk az elméletileg szükséges kizárási lépések számát. Ehhez kiszámoljuk az N = Δ0 / ε segédszámot kikeressük a Fibonacci sorból annak a fi számnak a rangját, amely rögtön az N fölött van. Ez lesz a szükséges lépések száma kiszámolunk egy δ szubintervallumot a képlet szerint, ahol i az aktuális kizárás száma, Δk pedig a keresési tartomány nagysága a k lépésben 3. felveszünk két pontot a keresési intervallumban: a(i) = xmin(i) + δ(i) és b(i) = xmax(i) - δ
4. kiszámoljuk a célfüggvény értékét a-ban és b-ben 5. kizárjuk azt az intervallumot amelyben a keresett maximum vagy minimum biztosan nem lehet 6. az aktuális lépésszámot az n-1 –hez hasonlítva teszteljük, hogy elértük-e a kívánt precizitást. Amennyiben k < n-1, úgy egy újabb intervallumot zárunk ki (azaz egy újabb keresési lépést végzünk). Ha k = n-1, akkor a keresett megoldás