UNIVERZITA SV. CYRILA A METODA V TRNAVE FAKULTA PRÍRODNÝCH VIED STOCHASTICKÁ SIMPLEXOVÁ METÓDA, JEJ POUŽITIE PRE HĽADANIE GLOBÁLNEHO MINIMA FUNKCIÍ 3 PREMENNÝCH V REÁLNEJ REPREZENTÁCII SEMESTRÁLNA PRÁCA 2016 Ivo Šmidt
1. Formulácia problému globálnej optimalizácie Riešením problému globálnej optimalizácie je nájdenie súradníc takého bodu v definičnom obore funkice v ktorom má funkcia extrémnu (najmenšiu alebo najväčšiu) hodnotu. Problém nájdenia globálneho minima funkcie s jedným argumentom (argument je jedno reálne číslo) môžme ilustrovať pomocou jednoduchého obrázku: (obr. 1) globálne minimum obr. 1 Je vidieť, že funkcia na obrázku má v obore [0,20] viacero miním, ale len jedno je globálne. To je také minimum, že funkčná hodnota v tomto bode je najmenšia zo všetkých v obore [0,20]. Existuje známy postup ako nájsť extrémy funkcií, pri ktorých existuje prvá a druhá derivácia. Avšak nájsť všeobecné riešenie takto jednoducho pochopiteľného problému je obtiažne, hlavne v prípadoch keď účelová funkcia má viacero lokálnych miním alebo argument funkcie nie je jedno reálne číslo, ale vektor reálnych čísel, viď nasledujúci obrázok funkcie s dvoma argumentami (obr. 2). Navyše nie každá funkcia je diferencovateľná a napriek tomu potrebujeme nájsť jej globálne minimum alebo sa mu aspoň priblížiť s prijateľnou presnosťou. 2
obr. 2 (1 Stochastické algoritmy pro globalní optimalizaci, str. 4) Úlohu nájdenia globálneho minima môžeme formulovať takto: Máme účelovú funkciu ƒ: D R, D R d (1.1) Je potrebné nájsť bod x * D, pre ktoré platí, že ƒ(x * ) ƒ(x), pre x, x D. Nájdenie bodu x * D je riešením globálnej optimalizácie. Bodu x * hovoríme bod globálneho minima (global minimum point), definičnému oboru sa vraví doména alebo prehľadávaný priestor (domain, search space), prirodzené číslo d je dimenzia úlohy. Formulácia problému golobálnej optimalizácie ako nájdenie globálneho minima nie je na úkor obecnosti, pretože ak chceme nájsť globálne maximum, nájdeme ho ako globálne minimum funkcie g(x) = ƒ(x). Analýza problému globálnej optimalizácie ukazuje, že neexistuje deterministický algoritmus riešiaci všeobecnú úlohu globálnej optimalizácie v polynomiálnom čase, to znamená problém globálnej optimalizácie je NP-obtiažny. (1 Stochastické algoritmy pro globalní optimalizaci, str. 3 str. 4) 3
2. Stochastické algoritmy pre globálnu optimalizáciu Nemožnosť nájsť deterministický algoritmus všeobecne riešiaci úlohu globálnej optimalizácie v polynomiálnom čase viedla k využitiu stochastických algoritmov, ktoré síce nemôžu garantovať nájdenie riešenia v konečnom počte krokov, ale často pomôžu nájsť v prijateľnom čase prakticky použiteľné riešenie. Stochastické algoritmy pre globálnu optimalizáciu heuristicky prehľadávajú priestor D. Heuristikou rozumieme postup, v ktorom sa využíva náhoda, intuícia, analógia a skúsenosť. Rozdiel medzi heuristikou a deterministickým algoritmom je v tom, že na rozdiel od deterministického algoritmu heuristika nezaistuje nájdenie riešenia. Heuristiky sú v praktickom živote úplne samozrejme užívané postupy, ako príklad môžeme uviesť zbieranie hríbov, lov rýb na udicu, výber partnera, pokus o výhru v športovom zápase a pod. Väčšina stochastických algoritmov pre hľadanie globálneho minima v sebe obsahuje zjavne či skryte proces učenia. Inšpirácie k využitiu heuristík sú často odvodené zo znalostí prírodných alebo sociálnych procesov. Napr. simulované žíhanie je modelom pomalého ochladzovania tuhého telesa, tabu-search modeluje hľadanie predmetu človekom tak, že v krátkodobej pamäti si zapamätáva zakázané kroky vedúce k už skôr prejdeným miestam. Podstatná časť stochastických algoritmov pracuje súčasne s viacero kandidátmi riešenia, to znamená s viacerými bodmi v prehľadávanom priestore. Tieto body vytvárajú skupinu (populáciu), ktorá sa v priebehu hľadania nejako v prehľadávanom priestore pohybuje a pritom nachádza lepších kandidátov riešenia. Stochastické algoritmy pre globálnu optimalizáciu sú príkladom soft computingu pre riešenie úloh, ktoré hard computingom riešiť nevieme. (1 Stochastické algoritmy pro globalní optimalizaci, str. 6) vhodné pre riešenie viac-parametrového optimalizačného problému s tzv. divokým priebehom, t.j. s mnohými lokálnymi extrémami a neznámym gradientom štandardné = deterministické metódy gradientné metódy (metóda najstrmšieho zostupu, LMS algoritmus) a negradientné metódy (simplexová) sú nevhodné vtedy, keď požadujeme nájdenie optimálneho, alebo blízkooptimálneho riešenia pre funkciu s mnohými extrémami. Vzhľadom na charakter optimalizovanej funkcie tieto metódy konvergujú iba v okolí štartovacieho bodu a zvyčajne uviaznu v blízkom lokálnom minime. 4
o jednou z metód na odstránenie tohto problému je opakované náhodné nastreľovanie počiatočných hodnôt si zachovávajú svoju stochasticitu počas celého svojho behu, nielen pri inicializácii sú schopné vždy nájsť globálne minimum alebo maximum, ale v nekonečnom čase dokážu vyviaznuť z lokálneho minima alebo maxima (extrému) sú nezávislé od riešeného problému sú to univerzálne metódy aplikovateľné na ľubovoľný optimalizačný problém, pre ktorý možno definovať funkciu vhodnosti fitness ich princíp je založený na analógiách prevzatých zo živej a neživej prírody (2 Stochastické optimalizačné algoritmy, str. 1) Stochastické optimaliza né algoritmy Peter Kortiš - 2012 Optimalizačné algoritmy deterministické stochastické gradientné metódy (LMS, ) simplex horolezecký algoritmus metóda zakázaného hľadania slepý algoritmus simulované žíhanie evolučné stratégie genetický algoritmus genetické programovanie... obr. 3, Zjednodušený prehľad optimalizačných algoritmov, (2 Stochastické optimalizačné algoritmy, str. 2) 3. Simplexová metóda Simplexová metóda je veľmi jednoduchý a populárny algoritmus pre hľadanie globálneho minima. Pôvodnú verziu algoritmu publikovali Nelder a Mead v roku 1965. Od tej doby bolo navrhnutých viacero modifikácií simplexovej metóty. Jej základné myšlienky: Pre účelovú funkciu ƒ: R, D R d 5
Hľadáme jej globálne minimum v súvislej oblasti D = d i=1 a i,b i,, a účelovú funkciu ƒ(x) vieme vyhodnotiť s požadovanou presnosťou v každom ností bode v každé x D. Funkcia nemusí byť diferencovateľná. Kľúčovým pojmom algoritmu je takzvaný simplex S, čo je množina nekomplanárnych d + 1 bodov v D, S = {x 1, x 2,..., x d+1 } V simplexe nájdeme body s najvyššou a najnižšou funkčnou hodnotou x H = arg max x S f(x) x L = arg min x S f(x) a dalej spočítame ťažisko, tj. priemer bodov d, ktoré ostanú v simplexe po odstránení bodu x H, teda g = 1 d ( x S x x H ) Pomocou tohto simplexu hľadáme nový bod y, ktorý v prípade, že ƒ(y) < ƒ(x H ) nahradí v simplexe doposiaľ najhorší bod x H a pokračuje sa znovu. Na hľadanie nového bodu y sa používa reflexia. Reflexia znamená preklopenie bodu x H cez ťažisko g podľa vzťahu y = g + (g x H ) = 2g - x H Graficky je reflexia znázornená na nasledujúcom obrázku obr. 4, (3 EVOLUCNÍ ALGORITMY, str. 29) 6
Pokial nový bod y získaný reflexiou nesplňuje podmienku ƒ(y) < ƒ(x H ), využije sa redukcia, čo je v podstate zmenšenie simplexu smerom k bodu x L, to znamená, že vzdialenosti bodov simplexu budú polovičné. Formálne zapísané: x 1 2 (x + x L), x S, x x L. Na nasledujúcom obrázku (obr. 5) je vidieť grafické znázornenie redukcie. Body pôvodného označené krúžkami sa posunú k bodu x L do pozící označených krížikmi. obr. 5, (3 EVOLUCNÍ ALGORITMY, str. 29) Najjednoduchší variant algoritmu simplexovej metódy môžme zapísať nasledujúcim spôsobom (obr. 6). (3 EVOLUCNÍ ALGORITMY, str. 30) generuj simplex S, tj. d + 1 bodů náhodně v D repeat y := reflexe(s); (y D) if f(y) <f(x H ) then x H := y else redukce(s); until podmínka ukončení; obr. 6, (3 EVOLUCNÍ ALGORITMY, str. 28 30) 4. Riadené náhodné prehľadávanie (Stochastická simplexová metóda) Riadené náhodné prehľadávanie (controlled random search, CRS) je príkladom veľmi jednoduchého a pritom efektívneho stochastického algoritmu (heuristiky) pre hľadanie minima v súvislej oblasti D. Prvú verziu navrhol Price v sedemdesiatych rokoch 7
minulého storočia. Pracuje s populáciou N bodov kandidátov riešenia v prehľadávanom priestore D a z nich sa za pomoci nejakej lokálnej heuristiky generuje nový bod y, ktorý môže byť zaradený do populácie namiesto doposiaľ najhoršieho bodu. Počet vygenerovaných bodov populácie N je väčší ako dimenzia d prehľadávaného priestoru D. Price ako lokálnu heuristiku na generovanie nového bodu y využíval reflexiu simplexu, ktorá je známa z veľmi populárnej simplexovej metódy hľadania minima, ktorú navrhli Nelder a Mead. Reflexia simplexu sa v CRS realizuje takto: Z populácie veľkosti N, N > d sa náhodne vyberie d + 1 bodov tvoriacich simplex. Potom bod simplexu s najväčšou funkčnou hodnotou preklopíme cez ťažisko zostávajúcich bodov simplexu a získame tak nového potencionálneho kandidáta riešenia y. Reflexia simplexu je vyjadrená vzťahom: y = g + (g x H ) = 2g - x H (4.1) kde x H je bod simplexu s najväčšou hodnotou účelovej funkcie a g je ťažisko zostávajúcich d bodov simplexu, ktorého súradnice spočítame ako priemery týchdo d bodov simplexu. Graficky je reflexia znázornená na nasledujúcom obrázku (obr. 7). 8 7 6 x L 5 x H 4 3 g y 2 1 0 0 1 2 3 4 5 6 7 8 obr. 7, (1 Stochastické algoritmy pro globalní optimalizaci, str. 24) Pokial je v novom bode y funkčná hodnota ƒ(y) menšia než v najhoršom bode celej populácie, potom je tento najhoší bod nahradený bodom y. Nahradením nahhoršieho bodu populácie novým bodom y dosahujeme toho, že populácia sa koncentruje v okolí doposiaľ nájdeného bodu s najmenšou funkčnou hodnotou. Algoritmus môžeme jednoducho zapísať v štrukturovanom pseudokóde nasledujúcim spôsobom (obr. 8). 8
generuj populaci P, tj. N bodů náhodně v D repeat najdi x worst P takové, že f(x worst ) f(x), repeat vyber z P simplex y := reflexe simplexu, y D until f(y) <f(x worst ); x worst := y; until podmínka ukončení; x P obr. 8, (1 Stochastické algoritmy pro globalní optimalizaci, str. 24) Reflexia simplexu podľa rovnice (4.1) samozrejme nie je jediná možnosť, ako v algoritme CRS generovať nový bod. Price neskôr navrhol inú lokálnu heuristiku, kde nový bod y sa generuje podľa vzorca (4.1), ale do simplexu je vždy zaradený najlepší bod populácie x min s funkčnou hodnotou ƒ min, ƒ min ƒ x, x P a zostávajúce d body simplexu sa potom náhodne vyberú z ostatných bodov populácie. Ďaľšia možnosť je znáhodnená reflexia, ktorá bola navrhnutá v 90. rokoch. Znáhodnená reflexia simplexu je popísaná vzťahom y = g + U (g x H ), (4.2) U je náhodná veličina vhodného rozdelenia. Graficky je taká reflexia znázornená na nasledujúcom obrázku (obr. 9). 10 9 8 D 7 6 5 4 x H g U(g x) y 3 2 1 0 1 0 2 4 6 8 10 obr. 8, (1 Stochastické algoritmy pro globalní optimalizaci, str. 25) 9
Zoznam použitej literatúry 1. Stochastické algoritmy pro globalní optimalizaci, Josef Tvrdík, Ostravská univerzita v Ostravě, 2010, [Studijní materiály pro distanční kurz: Stochastické algoritmy pro globální optimalizaci]. 2. Stochastické optimalizačné algoritmy, Peter Kortiš, 2012, [PDF]. 3. EVOLUCNÍ ALGORITMY, Josef Tvrdík, Ostravská univerzita, 2004, [UCEBNÍ TEXTY OSTRAVSKÉ UNIVERZITY]. 10