Adaptace v algoritmu diferenciáln´ı evoluce
Transkript
OSTRAVSKÁ UNIVERZITA V OSTRAVĚ PŘÍRODOVĚDECKÁ FAKULTA KATEDRA MATEMATIKY Adaptace v algoritmu diferenciálnı́ evoluce Doktorská disertačnı́ práce Autor: Mgr. Radka Poláková Vedoucı́ práce: doc. Ing. Josef Tvrdı́k, CSc. 2014 UNIVERSITY OF OSTRAVA FACULTY OF SCIENCE DEPARTMENT OF MATHEMATICS Adaptation in differential evolution algorithm Ph.D. Thesis Author: Mgr. Radka Poláková Supervisor: doc. Ing. Josef Tvrdı́k, CSc. 2014 Já, nı́že podepsaná studentka, tı́mto čestně prohlašuji, že text mnou odevzdané závěrečné práce v pı́semné podobě i na CD nosiči je totožný s textem závěrečné práce vloženým v databázi DIPL2. Prohlašuji, že předložená práce je mým původnı́m autorským dı́lem, které jsem vypracovala samostatně. Veškerou literaturu a dalšı́ zdroje, z nichž jsem při zpracovánı́ čerpala, v práci řádně cituji a jsou uvedeny v seznamu použité literatury. V Ostravě dne 14. 8. 2014 podpis studentky . . . . . . . . . . . . . . . . . . . Děkuji mému vedoucı́mu práce docentu Josefu Tvrdı́kovi za podnětné rady při výzkumu během doktorského studia i při tvorbě této závěrečné práce. Velký dı́k patřı́ také mé rodině, která se mnou měla během sepisovánı́ práce velikou trpělivost a která mi v tomto procesu byla neocenitelnou podporou. V neposlednı́ řadě také děkuji mému tatı́nkovi za přečtenı́ práce a pomoc při odstraněnı́ jazykových chyb. Radka Poláková ABSTRAKT Optimalizace je úloha objevujı́cı́ se ve spoustě oblastı́ lidské činnosti. Jednı́m z velmi úspěšných stochastických algoritmů pro globálnı́ optimalizaci je relativně mladý algoritmus diferenciálnı́ evoluce. Jedná se o algoritmus jednoduchý a populárnı́. Efektivita tohoto algoritmu však velmi záležı́ na nastavenı́ jeho vstupnı́ch parametrů. Často se stává, že při jeho praktickém použitı́ je největšı́m problémem nastavenı́ vhodných hodnot vstupnı́ch parametrů. Z tohoto důvodu se od vzniku algoritmu objevila v literatuře řada návrhů adaptivnı́ch verzı́ tohoto algoritmu. Vzhledem k tomu, že existujı́ různě náročné optimalizačnı́ problémy a také, že každý z adaptivnı́ch návrhů se jevı́ jako vhodný jen pro nějakou podskupinu optimalizačnı́ch problémů, stále vznikajı́ nové verze algoritmu. Úkolem disertačnı́ práce je studium algoritmu diferenciálnı́ evoluce, existujı́cı́ch adaptivnı́ch mechanismů navržených k adaptaci jeho řı́dı́cı́ch parametrů a konvergence tohoto algoritmu. Dalšı́m z cı́lů práce je vlastnı́ návrh na adaptaci parametrů algoritmu nebo modifikace algoritmu, která zvýšı́ jeho efektivitu. Kapitola 1 je úvodem do problematiky, kapitola 2 zpřesňuje cı́le disertačnı́ práce, kapitola 3 se věnuje definici problému globálnı́ optimalizace. Kapitola 4 obsahuje krátký přehled nejznámějšı́ch optimalizačnı́ch algoritmů. V kapitole 5 je podrobně popsán samotný algoritmus diferenciálnı́ evoluce. V kapitolách 6 a 7 jsou popsány nejznámějšı́ adaptivnı́ verze a modifikace algoritmu diferenciálnı́ evoluce. Kapitola 8 se věnuje základnı́m otázkám konvergence algoritmu diferenciálnı́ evoluce. V kapitole 9 je popsáno porovnávánı́ efektivity optimalizačnı́ch algoritmů. V kapitole 10 je uvedena definice optimalizačnı́ho problému s vázanými extrémy a popis některých známých mechanismů k řešenı́ problémů tohoto typu. Kapitola 11 se věnuje původnı́m výsledkům autorky, porovnánı́m stávajı́cı́ch adaptivnı́ch verzı́ studovaného algoritmu a návrhům vlastnı́ch adaptivnı́ch verzı́ a modifikacı́ diferenciálnı́ evoluce. Klı́čová slova: globálnı́ optimalizace, stochastický algoritmus, diferenciálnı́ evoluce, adaptace v diferenciálnı́ evoluci, konvergence diferenciálnı́ evoluce, globálnı́ optimalizace s vázanými extrémy. ABSTRACT As optimization is the task appearing in many fields of human activity, the global optimization deserves an attention of computer scientists since 1980s. There are many stochastic algorithms that perform the global optimization task. Differential evolution algorithm is simple yet very powerful stochastic algorithm for the global optimization that is relatively young. It is well-known, that efficiency of any stochastic algorithm strongly depends on the setting of its control parameters. It is often the case that the setting of suitable values of input parameters is the most time-consuming process in real-world global optimization problems. It was the motivation for development of several adaptive versions of differential evolution that have appeared in literature recently. As there are various optimization problems and each adaptive design is suitable only to a certain subset of optimization problems, new versions of the differential evolution algorithm are appearing permanently in literature. The aim of the thesis is to study the existing adaptive mechanisms proposed for differential evolution algorithm and the problem of convergence of this algorithm. Additional aim of the thesis is to propose a novel adaptation mechanism which increases the efficiency of differential evolution. Chapter 1 is introduction, Chapter 2 specifies the aims of thesis more precisely, and Chapter 3 formulates the definition of the global optimization problem. Chapter 4 provides a brief survey of evolutionary algorithms. The algorithm of differential evolution is described in detail in Chapter 5. The state-of-the-art of adaptive versions and the modifications of differential evolution algorithm are described in Chapters 6 and 7. Chapter 8 addresses basic questions about convergence of the differential evolution algorithm. Experimental comparison of efficiency of optimization algorithms is explained in Chapter 9. The definition of constrained optimization problem and the description of some known methods for solving of these problems are introduced in Chapter 10. Chapter 11 provides origin results of author, new proposals of adaptive versions and modifications of the algorithm are presented and experimentally compared with existing adaptive versions of differential evolution. Keywords: global optimization, stochastic algorithm, differential evolution, adaptation in differential evolution, convergence of differential evolution algorithm, global optimization of constrained problems. Obsah 1 Úvod 17 2 Cı́le disertačnı́ práce 19 3 Problém globálnı́ optimalizace 20 4 Evolučnı́ algoritmy 22 5 Diferenciálnı́ evoluce (DE) 24 5.1 Mutace . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27 5.2 Křı́ženı́ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31 5.2.1 Binomické křı́ženı́ . . . . . . . . . . . . . . . . . . . . 31 5.2.2 Exponenciálnı́ křı́ženı́ . . . . . . . . . . . . . . . . . . 32 6 Adaptace parametrů 36 6.1 Adaptace parametrů DE . . . . . . . . . . . . . . . . . . . . . 36 6.2 Algoritmus jDE . . . . . . . . . . . . . . . . . . . . . . . . . . 38 6.3 Soutěživá DE . . . . . . . . . . . . . . . . . . . . . . . . . . . 41 6.4 Algoritmus JADE . . . . . . . . . . . . . . . . . . . . . . . . 46 6.5 Algoritmus SADE . . . . . . . . . . . . . . . . . . . . . . . . 49 6.6 Algoritmus EPSDE . . . . . . . . . . . . . . . . . . . . . . . . 52 6.7 Algoritmus CoDE . . . . . . . . . . . . . . . . . . . . . . . . . 55 6.8 Algoritmus SHADE . . . . . . . . . . . . . . . . . . . . . . . 57 6.9 Adaptace velikosti populace v DE 61 . . . . . . . . . . . . . . . 7 Algoritmus ODE 64 8 Konvergence algoritmu diferenciálnı́ evoluce 67 15 9 Porovnávánı́ efektivity algoritmů, sady testovacı́ch problémů 71 10 Optimalizačnı́ problémy s vázanými extrémy 78 10.1 Některé mechasnismy pro algoritmy k optimalizaci problémů s vázanými extrémy . . . . . . . . . . . . . . . . . . 80 10.2 Algoritmy pro optimalizačnı́ problémy s vázanými extrémy založené na DE . . . . . . . . . . . . . . 11 Původnı́ výsledky 83 88 11.1 Porovnánı́ EPSDE a soutěživé DE . . . . . . . . . . . . . . . 88 11.2 Efektivita adaptivnı́ch verzı́ DE, aplikace ODE na adaptivnı́ verze DE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95 11.3 Navržené adaptivnı́ přı́stupy v DE . . . . . . . . . . . . . . . 102 11.3.1 Comp3jDE . . . . . . . . . . . . . . . . . . . . . . . . 102 11.3.2 Soutěživá DE s oživenı́m populace . . . . . . . . . . . 110 11.4 Návrhy algoritmů pro optimalizačnı́ problémy s vázanými extrémy . . . . . . . . . . . . . . . . . . . . . . . 116 12 Závěr a zhodnocenı́ práce 123 Použitá literatura 125 Seznam pracı́ autorky 136 Seznam obrázků 139 Seznam tabulek 140 Seznam algoritmů 142 16 1 Úvod V mnoha oborech lidské činnosti se řešı́ tzv. problém globálnı́ optimalizace. Podstatou tohoto problému je minimalizovat nebo maximalizovat nějakou známou funkci. Často se jedná o funkce, pro které nelze použı́t analytický způsob hledánı́ optima, např. když funkce nenı́ diferencovatelná. V takovéto situaci existuje možnost použı́t nějaký stochastický optimalizačnı́ algoritmus a pokusit se nalézt optimum pomocı́ něho. Jednı́m ze stochastických algoritmů řešı́cı́ch problém globálnı́ optimalizace je i diferenciálnı́ evoluce. Jedná se o relativně mladý stochastický algoritmus, byl navržen Stornem a Pricem v roce 1995 [49, 50], tento algoritmus patřı́ mezi algoritmy evolučnı́. Experimentálnı́ výzkumy ukazujı́, že jde o algoritmus, který často konverguje (najde přijatelné řešenı́ problému) rychleji, než jiné stochastické algoritmy. Jeho rychlost konvergence, a tedy i efektivita, však silně závisı́ na nastavenı́ parametrů. Pokusné nastavovánı́ parametrů algoritmu na hodnoty vhodné pro aktuálně řešený problém může být zdlouhavé a navı́c k efektivitě algoritmu mohou v každé fázi evoluce přispı́vat různá nastavenı́ algoritmu. Od navrženı́ algoritmu byla z těchto důvodů předložena spousta jeho adaptivnı́ch variant či modifikacı́. Z nichž nejznámějšı́ a v praxi nejpoužı́vanějšı́ jsou [6, 30, 43, 44, 55, 59, 71, 79]. Diferenciálnı́ evoluce byla původně navržena jako algoritmus pro řešenı́ jednoduchých optimalizačnı́ch problémů, tedy problémů, jejichž jedinou podmı́nkou pro hledaný extrém je definice oblasti, v nı́ž se má extrém nacházet, přesto však existujı́ také modifikace algoritmu určené k řešenı́ optimalizačnı́ch problémů s vázanými extrémy [3, 20, 28, 52], tedy optimalizačnı́ problémy, u nichž je hledaný globálnı́ extrém kromě oblasti v nı́ž má být nalezen, omezen ještě dalšı́mi podmı́nkami, které musı́ splňovat. 17 V předkládané práci je podrobně popsán algoritmus diferenciálnı́ evoluce a jeho nejznámějšı́ adaptivnı́ varianty [6, 30, 43, 44, 55, 59, 71, 79]. Dále je zde popsán vlastnı́ návrh na adaptaci parametrů algoritmu diferenciálnı́ evoluce v kap. 11.3.1 a také návrh úpravy algoritmu lépe využı́vajı́cı́ poskytnutý výpočetnı́ čas v kap. 11.3.2. V práci jsou dále popsány vlastnı́ návrhy úpravy algoritmu diferenciálnı́ evoluce pro řešenı́ optimalizačnı́ch problémů s vázanými extrémy. Autorka se v práci věnuje také diskuzi otázek konvergence algoritmu diferenciálnı́ evoluce. 18 2 Cı́le disertačnı́ práce Této disertačnı́ práci byly při zadávánı́ vytýčeny následujı́cı́ cı́le. • Studium algoritmu diferenciálnı́ evoluce. • Studium dřı́ve navržených adaptivnı́ch verzı́ algoritmu diferenciálnı́ evoluce. • Studium konvergence algoritmu diferenciálnı́ evoluce a jevů s nı́ souvisejı́cı́ch. • Návrh alternativnı́ho adaptivnı́ho přı́stupu v diferenciálnı́ evoluci. • Implementace navrženého přı́stupu a jeho porovnánı́ na testovacı́ch problémech s dřı́ve navrženými přı́stupy. 19 3 Problém globálnı́ optimalizace Problém globálnı́ optimalizace je problém nalezenı́ souřadnic takového bodu v definičnı́m oboru funkce, ve kterém má funkce globálnı́ extrém neboli globálnı́ optimum, tedy globálnı́ minimum či globálnı́ maximum. Úlohu nalezenı́ globálnı́ho minima můžeme formulovat následovně. Mějme reálnou funkci f : S → R, S ⊂ Rd . (1) Funkci f nazýváme účelovou funkcı́, d je dimenze problému. Omezı́me se na situaci, kdy globálnı́ minimum hledáme ve spojité oblasti S= d Y [aj , bj ]; aj < bj , j = 1, 2, . . . , d (2) j=1 a účelovou funkci f umı́me vyhodnotit v každém bodě x z oblasti S. Bod x∗ je bod globálnı́ho minima účelové funkce f v oblasti S, jestliže pro něj platı́ ∀x ∈ S f (x∗ ) ≤ f (x). (3) Spočı́vá-li problém optimalizace v nalezenı́ bodu globálnı́ho maxima, jednoduše úlohu maximalizace účelové funkce f (x) převedeme na úlohu minimalizace funkce g(x) = −f (x). Existujı́ obecně známé analytické postupy, jak nalézt řešenı́ takto definovaného problému a zdálo by se, že jeho řešenı́ bude vždy jednoduché. Často je ale nutné řešit optimalizačnı́ problém pro účelovou funkci, pro nı́ž je použitı́ analytické metody obtı́žné nebo zcela nemožné. Jedná se o účelové funkce, které majı́ v řešené oblasti vı́ce lokálnı́ch minim, nebo účelové funkce, které nejsou diferencovatelné. 20 Analýza problému globálnı́ optimalizace [1] ukazuje, že neexistuje deterministický algoritmus pro řešenı́ obecné úlohy tohoto problému v polynomiálnı́m čase. K řešenı́ optimalizačnı́ho problému se proto využı́vajı́ stochastické algoritmy, zejména evolučnı́ho typu. Stochastické algoritmy nenaleznou přesné řešenı́ problému globálnı́ optimalizace, ale dokážı́ se k řešenı́ problému většinou přiblı́žit s přijatelnou přesnostı́. 21 4 Evolučnı́ algoritmy Nedeterministický algoritmus využı́vajı́cı́ náhodu, zkušenost, intuici a analogii se nazývá stochastický algoritmus nebo také heuristika. Takový algoritmus však na rozdı́l od deterministického algoritmu nezajišt’uje nalezenı́ řešenı́. Stochastické algoritmy se použı́vajı́ také k řešenı́ optimalizačnı́ch problémů. Stochastické algoritmy k řešenı́ optimalizačnı́ch problémů však nezaručujı́ poskytnutı́ přesného řešenı́ takového problému, často jsou ale schopné se k tomuto řešenı́ přiblı́žit a poskytnout tak řešenı́ sice nepřesné, ale prakticky použitelné. Heuristiky k řešenı́ optimalizačnı́ch problémů často vznikajı́ na základě znalostı́ týkajı́cı́ch se přı́rodnı́ch nebo sociálnı́ch systémů, většina z nich v sobě obsahuje jakousi formu procesu učenı́. Z běžně známých stochastických optimalizačnı́ch algoritmů v sobě proces učenı́ neobsahuje pouze algoritmus slepého náhodného prohledávánı́ [19]. Algoritmus simulovaného žı́hánı́ [19] je modelem pomalého ochlazovánı́ tuhého tělesa, algoritmus tabu” search“ [19] modeluje hledánı́ předmětu člověkem. Velká část stochastických optimalizačnı́ch algoritmů pracuje najednou se skupinou potenciálnı́ch řešenı́ problému, tedy s vı́ce body z prohledávaného prostoru S současně. Každý z těchto bodů měnı́ svou polohu v prohledávaném prostoru a posouvá se tak vždy na lepšı́ pozici vzhledem k pozici předchozı́ a vzhledem k typu optimalizačnı́ úlohy. Mezi stochastické algoritmy využı́vajı́cı́ poznatků výzkumů různých sociálnı́ch skupin patřı́ např. PSO [10], SOMA [78], algoritmus mravenčı́ kolonie [12] a také algoritmus ABC [18]. Algoritmus PSO využı́vá znalostı́ zı́skaných studiem ptačı́ch a rybı́ch hejn. Algoritmus SOMA modeluje chovánı́ smečky divokých zvı́řat pronásledujı́cı́ kořist a algoritmus mravenčı́ kolonie 22 využı́vá k hledánı́ optima model chovánı́ a spolupráce mravenců v mraveništı́ch. Algoritmus ABC pracuje jako model včelı́ho roje. Dalšı́ třı́dou stochastických algoritmů řešı́cı́ch optimalizačnı́ problém a pracujı́cı́ch najednou se skupinou potenciálnı́ch řešenı́ problému, tedy s vı́ce body z prohledávaného prostoru S současně, jsou algoritmy evolučnı́. Tyto algoritmy jsou v podstatě jednoduchými modely evolučnı́ teorie vývoje populacı́, využı́vajı́ poznatků přednı́ch vědců v oblasti biologie a genetiky, Johanna Gregora Mendela a Charlese Darwina. Množina potenciálnı́ch řešenı́ se v nich nazývá populace. Populace se v těchto algoritmech vyvı́jı́ z generace na generaci s využitı́m operátorů křı́ženı́, mutace, výběru a migrace. Každý prvek populace je v každém okamžiku běhu algoritmu jednı́m z možných řešenı́ optimalizačnı́ho problému. K evolučnı́m algoritmům se řadı́ např. genetické algoritmy [19], evolučnı́ strategie [19], evolučnı́ programovánı́ [19], řı́zené náhodné prohledávánı́, tzv. algoritmus CRS [42] a také algoritmus diferenciálnı́ evoluce. 23 5 Diferenciálnı́ evoluce (DE) Diferenciálnı́ evoluce (DE) [16, 41, 49, 50] je efektivnı́ a velmi jednoduchý algoritmus. Vzhledem k jeho jednoduchosti a s nı́ spojené jednoduchosti jeho implementace se jedná o v praxi velmi široce využı́vaný algoritmus. Algoritmus DE byl navržen v polovině devadesátých let, jedná se tedy o relativně mladý algoritmus. Těšı́ se poměrně vysokému zájmu nejen po stránce využitı́ k řešenı́ konkrétnı́ch optimalizačnı́ch problémů, ale i po stránce využitı́ při vývoji nových algoritmů řešı́cı́ch optimalizačnı́ problém. DE pracuje s uspořádanou N -ticı́ bodů z prohledávané oblasti S, které se řı́ká populace bodů a bývá označována P . Každý z bodů populace P je adeptem na řešenı́ optimalizačnı́ho problému. Populace bodů se za běhu algoritmu vyvı́jı́. Tedy z g-té generace populace P se vyvine (g+1)-nı́ generace populace P . Na proces vývoje populace může být nazı́ráno i tak, že každý prvek populace se vyvı́jı́ – hledá si v po sobě jdoucı́ch generacı́ch populace neustále lepšı́ a lepšı́ umı́stěnı́ v prohledávané oblasti S, tedy posouvá se do mı́sta s nižšı́ hodnotou účelové funkce f (za předpokladu jejı́ minimalizace). Vývoj prvků populace a tedy vývoj populace probı́há s využitı́m evolučnı́ch operátorů mutace, křı́ženı́ a výběru. Přesněji, nejdřı́ve se vytvořı́ počátečnı́ generace P0 populace P , která se skládá z N bodů. Každý z bodů počátečnı́ generace P0 je vybrán náhodně (s využitı́m rovnoměrného rozdělenı́) z oblasti S. Ve všech bodech, které se takto stanou prvky počátečnı́ generace populace P , se spočı́tá hodnota účelové funkce f . Poté se opakuje cyklus, v jehož těle se k aktuálnı́ generaci Pg populace bodů P vytvářı́ nová generace Qg . Když je Qg kompletnı́, stává se Qg následujı́cı́ generacı́ Pg+1 populace. Opakovánı́ cyklu probı́há až do splněnı́ ukončovacı́ podmı́nky. 24 Nová generace Qg se uvnitř zmı́něného cyklu tvořı́ následujı́cı́m způsobem. Ke každému bodu xi aktuálnı́ generace Pg je vytvořen pokusný bod (konkurent) y, který vznikne postupnou aplikacı́ operacı́ mutace a křı́ženı́ s využitı́m některých bodů Pg . Poté je vyhodnocena účelová funkce f v tomto nově zı́skaném bodě y. Do nové generace Qg populace pak vstupuje lepšı́ (ve smyslu řešené optimalizace) z dvojice: původnı́ bod xi , jeho konkurent y. Tedy platı́-li podmı́nka f (y) ≤ f (xi ), vstupuje do nové generace Qg populace nově vytvořený bod y, v opačném přı́padě do generace Qg vstupuje původnı́ bod xi , tedy y xi,g+1 = x i,g jestliže f (y) ≤ f (xi,g ) jinak. Diferenciálnı́ evoluce je v pseudokódu zapsána v Algoritmu 1. 25 (4) Algoritmus 1 Diferenciálnı́ evoluce 1: vygeneruj počátečnı́ generaci P0 = (x1 , x2 , . . . , xN ) populace P ; 2: vypočı́tej hodnotu účelové funkce ve všech bodech generace P0 ; 3: g=0; 4: repeat 5: Qg = Pg ; 6: for i = 1 to N do 7: vytvoř pokusný bod y k bodu xi ; 8: vypočı́tej hodnotu účelové funkce v bodě y; 9: if f (y) ≤ f (xi ) then 10: 11: do Qg vlož na mı́sto bodu xi bod y; end if 12: end for 13: Pg+1 = Qg ; 14: g=g+1; 15: until ukončovacı́ podmı́nka; 26 Pokusný bod y, tzv. konkurent, k bodu xi se v DE vytvářı́ pomocı́ operacı́ mutace a křı́ženı́. Společně s návrhem algoritmu bylo předloženo několik druhů mutace a dva typy křı́ženı́ [49, 50], dalšı́ návrhy na mutace se objevily v pozdějšı́ch pracech různých autorů [17, 41, 79]. Při vytvářenı́ konkrétnı́ho pokusného bodu y se využı́vá jeden konkrétnı́ typ mutace a jeden konkrétnı́ typ křı́ženı́. Mutacı́ vznikne mutant u, křı́ženı́m pak z mutanta u a původnı́ho bodu xi vznikne pokusný bod y. Kombinaci konkrétnı́ho typu mutace a konkrétnı́ho typu křı́ženı́ budeme nazývat DE-strategiı́. DEstrategii lze jednoznačně popsat zkratkou ve tvaru DE/a/b/c, kde a je použitý typ mutace, b je počet diferencı́ náhodně vybraných bodů (r 2 − r 3 apod.) přičı́taných v mutaci a, c je zkratka použitého křı́ženı́. Parametr přı́slušejı́cı́ k operaci mutace, resp. křı́ženı́ budeme označovat F , resp. CR. Při splněnı́ ukončovacı́ podmı́nky se cyklus v němž se opakuje tvorba dalšı́ generace populace P ukončı́ a výstupem algoritmu je pak nejlepšı́ bod poslednı́ vytvořené generace populace P , nejlepšı́ ve smyslu optimalizačnı́ho problému. Tedy za předpokladu minimalizace účelové funkce f je řešenı́m problému ten prvek poslednı́ vytvořené generace populace P, v němž je hodnota účelové funkce f nejnižšı́. 5.1 Mutace Mutacı́ vzniká k bodu xi populace jeho mutant u. Pro DE bylo navženo mnoho typů operace mutace [17, 50, 41, 79]. Zde uvádı́me jen některé z nich. Předpokládejme, že r 1 , r 2 , r 3 , r 4 , r 5 jsou navzájem různé body, náhodně vybrané z aktuálnı́ generace Pg populace, různé od bodu xi , F > 0 je vstupnı́ parametr, xbest je nejlepšı́ bod aktuálnı́ generace Pg populace. Tedy xbest je takový bod aktuálnı́ generace Pg populace, že pro něj platı́, že hodnota 27 7 6 u r 5 1 x 2 4 3 r2 2 r3 1 0 0 1 2 3 4 5 6 7 x1 Obrázek 1: Mutace rand/1 v prostoru dimenze d = 2 účelové funkce f je v něm menšı́ nebo rovna hodnotám účelové funkce v ostatnı́ch bodech aktuálnı́ generace Pg populace. Typy mutace: • rand/1 [50] u = r 1 + F (r 2 − r 3 ) (5) Tato mutace je v praxi nejčastěji použı́vanou mutacı́. Jak mutace pracuje, je zřejmé z obrázku 1. • rand/2 [50] u = r 1 + F (r 2 − r 3 ) + F (r 4 − r 5 ) (6) Mutace rand/2 je téměř shodná s mutacı́ rand/1, jen se v nı́ k náhodně vybranému bodu r 1 z aktuálnı́ generace Pg populace přičı́tajı́ F -násobky 28 dvou diferenčnı́ch vektorů na rozdı́l od mutace rand/1, kde se k vektoru r 1 přičı́tá pouze F -násobek jediného diferenčnı́ho vektoru. • best/1 [50] u = xbest + F (r 1 − r 2 ) (7) u = xbest + F (r 1 − r 2 ) + F (r 3 − r 4 ) (8) • best/2 [50] V mutacı́ch best/1 a best/2 se F -násobek resp. F -násobky diferenčnı́ch vektorů nepřičı́tajı́ k náhodně vybranému bodu, ale k nejlepšı́mu bodu populace xbest . • current-to-best/1 [13] u = xi + F (xbest − xi ) + F (r 1 − r 2 ) (9) • current-to-best/2 [13] u = xi + F (xbest − xi ) + F (r 1 − r 2 ) + F (r 3 − r 4 ) (10) V mutacı́ch current-to-best/1 a current-to-best/2 je zahrnuto tzv. aritmetické křı́ženı́, a proto se v DE použı́vajı́ také samostatně, bez dalšı́ho křı́ženı́. Pak negenerujı́ mutanta u, ale přı́mo pokusný bod y. Aritmetickým křı́ženı́m vzniká ze dvou bodů bod třetı́ takovou lineárnı́ kombinacı́, že součet koeficientů v lineárnı́ kombinaci je roven 1, zde xi + F (xbest − xi ) = (1 − F ) xi + F xbest . • rand-to-best/1 [50, 43] u = r 1 + F (xbest − r 1 ) + F (r 2 − r 3 ) 29 (11) • rand-to-best/2 [50] u = r 1 + F (xbest − r 1 ) + F (r 2 − r 3 ) + F (r 4 − r 5 ) (12) • randrl/1 [17] u = r ∗1 + F (r ∗2 − r ∗3 ) (13) Mutace randrl/1 vycházı́ z mutace rand/1. V mutaci randrl/1 se, na rozdı́l od mutace rand/1, tři body náhodně vybrané z aktuálnı́ generace Pg populace setřı́dı́ podle hodnoty účelové funkce a k nejlepšı́mu z nich (ve smyslu optimalizačnı́ úlohy) se přičte F -násobek vektoru, který vznikne rozdı́lem zbývajı́cı́ch dvou bodů z vybrané trojice bodů. Platı́ tedy, že f (r ∗1 ) ≤ f (r ∗2 ), f (r ∗3 ), a současně platı́, že (r ∗1 , r ∗2 , r ∗3 ) je permutacı́ (r 1 , r 2 , r 3 ). Kaelo a Ali v [17] experimentálně ověřili, že využitı́ mutace randrl/1 ve srovnánı́ s mutacı́ rand/1 zvyšuje rychlost výpočtu algoritmu DE až o 30% a to bez snı́ženı́ spolehlivosti výpočtu. • current-to-rand/1 [30] y = xi + rand(0, 1) × (r 1 − xi ) + F (r 2 − r 3 ) (14) rand(0, 1) je náhodné čı́slo z rovnoměrného rozdělenı́ na intervalu (0, 1). V tomto typu mutace je také zahrnuto tzv. aritmetické křı́ženı́. Většinou se při jejı́m použitı́ žádné dalšı́ křı́ženı́ neaplikuje, mutace current-to-rand/1 tudı́ž přı́mo generuje pokusný bod y. • current-to-pbest/1 [79] u = xi + F (xpbest − xi ) + F (r 1 − r 6 ) 30 (15) xpbest je náhodně vybraný bod z podmnožiny aktuálnı́ generace Pg populace, která obsahuje 100p% lepšı́ch prvků. p ∈ (0, 1] je vstupnı́ parametr a jeho autory doporučená hodnota je p ∈ (0.05, 0.2] ([79]). Bod r 6 se náhodně vybı́rá z Pg ∪ A, kde A je archı́v, do něhož se ukládajı́ body, které byly v populaci nahrazeny svými (úspěšnými) konkurenty. 5.2 Křı́ženı́ Křı́ženı́m se v DE vytvářı́ pokusný bod y, potomek rodičů mutanta u a bodu populace xi a to záměnou některých souřadnic bodu xi za hodnoty přı́slušných souřadnic mutanta u. V diferenciálnı́ evoluci se použı́vajı́ dva typy křı́ženı́, binomické a exponenciálnı́, oba navržené Stornem a Pricem [50]. Binomické křı́ženı́ je v praktických aplikacı́ch DE použı́váno častěji než křı́ženı́ exponenciálnı́. 5.2.1 Binomické křı́ženı́ Binomické křı́ženı́ DE/././bin probı́há podle následujı́cı́ho předpisu: uj jestliže Uj ≤ CR nebo j=l yj = x jestliže Uj > CR a zároveň j 6= l , ij (16) ∀j ∈ {1, 2, . . . d}. l je náhodně vybraný prvek z {1, 2, . . . , d}. Uj , ∀j ∈ {1, 2, . . . d} jsou rovnoměrně rozdělené nezávislé náhodné proměnné z [0, 1]. CR ∈ [0, 1] je vstupnı́ parametr, parametr křı́ženı́, ovlivňujı́cı́ počet souřadnic bodu y, které jsou převzaty z mutanta u. Všimněme si, že tento počet je vždy nejméně 1, dokonce i když CR = 0. Tzn., že při vytvářenı́ bodu y z bodu xi je vždy zajištěna změna alespoň jedné souřadnice bodu xi . 31 Z předpisu, kterým se toto křı́ženı́ řı́dı́, je zřejmé, že křı́žené souřadnice bodu xi jsou náhodně vybı́rány z rovnoměrného rozdělenı́. Schematicky je binomické křı́ženı́ znázorněno na obrázku 2. Označı́me-li pm pravděpodobnost, že se hodnota jedné konkrétnı́ souřadnice bodu xi změnı́ na hodnotu odpovı́dajı́cı́ souřadnice mutantu u, pak můžeme řı́ct, že tato pravděpodobnost pm je u binomického křı́ženı́ v lineárnı́m vztahu s parametrem křı́ženı́ CR. Vztah mezi touto dvojicı́ parametrů odvodila Zaharie v [74, 76] a lze jej vyjádřit následujı́cı́m výrazem. pm = CR (1 − 1/d) + 1/d. xi xi,1 xi,2 ↑ xi,3 xi,4 ↑ xi,5 xi,6 xi,7 ↑ (17) xi,8 xi,9 xi,10 ↑ u u1 u2 u3 u4 u5 u6 u7 u8 u9 u10 y u1 xi,2 u3 xi,4 u5 xi,6 xi,7 u8 xi,9 xi,10 Obrázek 2: Binomické křı́ženı́ (d = 10) 5.2.2 Exponenciálnı́ křı́ženı́ Exponenciálnı́ křı́ženı́ DE/././exp pracuje následujı́cı́m způsobem. Počátečnı́ pozice křı́ženı́ p0 se vybere náhodně z množiny {1, 2, . . . , d}, L po sobě jdoucı́ch souřadnic (za d-tou souřadnicı́ následuje prvnı́) je převzato z mutanta u, ostatnı́ souřadnice přecházejı́ do pokusného bodu y z původnı́ho bodu xi . Pravděpodobnost nahrazenı́ prvnı́ složky v posloupnosti 1, 2, . . . , L, tj. složky na pozici p0 je rovna CR. Pravděpodobnost nahrazenı́ k-té složky 32 v posloupnosti 1, 2, . . . , L (L ≤ d) klesá exponenciálně s rostoucı́m k. Exponenciálnı́ křı́ženı́ je schematicky znázorněno na obrázku 3. Křı́ženı́ tohoto typu je velmi podobné dvoubodovému křı́ženı́ z genetických algoritmů [19]. xi xi,1 xi,2 xi,3 xi,4 xi,5 xi,6 xi,7 xi,8 xi,9 ↑ ↑ ↑ ↑ xi,10 u u1 u2 u3 u4 u5 u6 u7 u8 u9 u10 y xi,1 xi,2 xi,3 xi,4 xi,5 u6 u7 u8 u9 xi,10 Obrázek 3: Exponenciálnı́ křı́ženı́ (d = 10) Vztah mezi pravděpodobnostı́ křı́ženı́ pm (pravděpodobnost, že se hodnota jedné konkrétnı́ souřadnice bodu xi změnı́ na hodnotu odpovı́dajı́cı́ souřadnice mutantu u) a vstupnı́m parametrem CR je pro exponenciálnı́ křı́ženı́ nelineárnı́ a závisı́ také na dimenzi problému d. Vztah mezi těmito třemi veličinami Zaharie odvodila v [74, 76] a je popsán následujı́cı́ rovnicı́ CRd − dpm CR + dpm − 1 = 0. (18) Vztah proměnné pm a parametru křı́ženı́ CR je pro d = 30 graficky znázorněn na obrázku 4. Je zřejmé, že je-li pm ∈ [1/d, 1] má polynom (18) v intervalu [0, 1] jediný kořen. Je-li pm = 1/d, pak CR = 0 a v takovém přı́padě, by se pokusný bod y rovnal původnı́mu bodu xi , což je nežádoucı́. V druhém krajnı́m bodě intervalu [1/d, 1] je situace následujı́cı́, pro pm = 1 je CR = 1 a křı́ženı́ pak pracuje tak, že mutant u zcela nahradı́ původnı́ bod xi , do pokusného bodu přecházı́ všechny souřadnice mutantu u. Naposledy zmı́něné lze zı́skat také binomiálnı́m křı́ženı́m s parametrem CR = 1. Tento fakt je 33 1 0.9 0.8 0.7 exponenciální CR 0.6 0.5 0.4 binomické 0.3 0.2 0.1 0 0 0.1 0.2 0.3 0.4 0.5 pm 0.6 0.7 0.8 0.9 1 Obrázek 4: Porovnánı́ závislosti CR na pravděpodobnosti mutace pm pro binomické a exponenciálnı́ křı́ženı́, d = 30 34 potřeba si uvědomovat předevšı́m při současném použitı́ obou typů křı́ženı́ v přı́padných navrhovaných adaptivnı́ch verzı́ch algoritmu DE. 35 6 Adaptace parametrů Eiben [14] zavádı́ dělenı́ řı́zenı́ hodnot parametrů evolučnı́ch algoritmů na následujı́cı́ tři typy: • deterministické – způsob řı́zenı́ hodnot parametrů, ve kterém se uplatňujı́ pravidla pro nastavenı́ hodnot závislá např. na čase, tzn. již před spuštěnı́m algoritmu vı́me, že parametr bude např. na začátku běhu algoritmu mı́t hodnotu vysokou, uprostřed běhu algoritmu hodnotu nižšı́ a na konci běhu algoritmu nejnižšı́; k nastavenı́ hodnot parametrů se využı́vajı́ deterministická pravidla a nevyužı́vá se žádná forma zpětné vazby z vyhledávacı́ho procesu, • adaptivnı́ – tento typ řı́zenı́ hodnot parametrů využı́vá zpětnou vazbu z vyhledávacı́ho procesu, tedy parametry jsou upravovány za základě hodnot charakteristik popisujı́cı́ch okamžitý stav vyhledávacı́ho procesu, • samo-adaptivnı́ – toto řı́zenı́ hodnot parametrů spočı́vá v tom, že parametry se vyvı́jı́ spolu s prvky populace, parametry jsou zakódovány spolu s prvky populace, na takto zakódované parametry jsou společně s body aplikovány evolučnı́ operátory; takový systém vede k tomu, že lepšı́ hodnoty parametrů generujı́cı́ lepšı́ jedince – body přežı́vajı́ spolu s těmito lepšı́mi body. 6.1 Adaptace parametrů DE Parametry algoritmu diferenciálnı́ evoluce jsou: velikost populace N , typ mutace, parametr mutace F , typ křı́ženı́, parametr křı́ženı́ CR a ukončovacı́ podmı́nka. Efektivita algoritmu při řešenı́ konkrétnı́ho optimalizačnı́ho 36 problému velmi závisı́ na nastavenı́ jeho parametrů a to jak na zvolené DEstrategii (kombinaci konkrétnı́ mutace a konkrétnı́ho typu křı́ženı́) použité ke generovánı́ pokusného bodu, tak i na hodnotách parametrů F a CR a na velikosti populace N . Storn a Price doporučovali nastavit F = 0.8 a CR = 0.5. Oni sami ale již v práci, která DE představovala [50], použı́vali 0.5 ≤ F ≤ 1 a 0 ≤ CR ≤ 1. Také velikost populace N v některých testovacı́ch úlohách nastavovali nižšı́ než sami doporučovali, tedy nižšı́ než 10d. Zaharie odvodila kritický interval pro řı́dı́cı́ parametry DE, zajišt’ujı́cı́ fakt, že průměrný populačnı́ rozptyl bude neklesajı́cı́ [73]. Ukázala, že platı́ vztah 2pF 2 − 2p p2 + >0 N N (19) kde p = max(1/d, CR). Z tohoto vztahu pak plyne, že průměrný populačnı́ rozptyl (střednı́ hodnota populačnı́ho rozptylu) bude neklesajı́cı́, jestliže p F > 1/N . Praktický význam tohoto výsledku je ale omezený, poněvadž nepřinášı́ zásadně novou informaci ve srovnánı́ s obvykle užı́vanou minimálnı́ hodnotou F = 0.5. Ze zkušenostı́ plyne, že různým optimalizačnı́m problémům odpovı́dá různé optimálnı́ nastavenı́ parametrů DE. Je samozdřejmě možné pokusit se toto optimálnı́ nastavenı́ parametrů algoritmu DE pro řešenı́ konkrétnı́ho optimalizačnı́ho problému nalézt metodou pokus-omyl, tento proces však bývá velmi zdlouhavý. Navı́c často různým fázı́m vyhledávacı́ho procesu odpovı́dá různé optimálnı́ nastavenı́ DE. Dalšı́ možnost tedy je měnit hodnoty parametrů za běhu algoritmu, přı́padně je přizpůsobit aktuálnı́ situaci ve vyhledávacı́m procesu, nebo je nechat vyvı́jet z generace na generaci společně s body populace, tedy možnost parametry DE nějakým způsobem adaptovat. 37 Fakta, týkajı́cı́ se nejednotných doporučenı́ k nastavenı́ parametrů algoritmu DE, velká časová náročnost nalezenı́ vhodných hodnot parametrů DE před jeho aplikacı́ na konkrétnı́ optimalizačnı́ problém a fakt, že různým fázı́m vyhledávacı́ho procesu mohou odpovı́dat různá optimálnı́ nastavenı́ vedly ke vzniku mnoha různých adaptivnı́ch verzı́ algoritmu DE. Ve zbývajı́cı́ části této kapitoly uvádı́me ty z nich, které se řadı́ k nejznámějšı́m. V prvnı́ch sedmi následujı́cı́ch podkapitolách jsou popsány adaptivnı́ verze DE, ve kterých se adaptuje DE-strategie, hodnoty parametrů mutace a křı́ženı́, přı́padně obojı́. Závěr kapitoly se věnuje adaptaci velikosti populace. 6.2 Algoritmus jDE Tento samo-adaptivnı́ přı́stup v DE navrhli Brest a kol. v [6]. Je v něm použita jediná DE-strategie, a to strategie DE/rand/1/bin a adaptujı́ se pouze hodnoty parametrů F a CR. Hodnoty těchto dvou parametrů jsou na začátku procesu hledánı́ optima inicializovány náhodně pro každý bod xi (1 ≤ i ≤ N ) počátečnı́ generace populace a žijı́ s přı́slušným jedincem populace. V každé dalšı́ generaci mohou být změněny s pravděpodobnostmi τ1 a τ2 . Pokud tato změna nastane a s využitı́m nových hodnot parametrů F a CR je vytvořen úspěšný pokusný bod y, nová kombinace hodnot parametrů se stává novou kombinacı́ hodnot parametrů přı́slušných k danému bodu xi , tedy bodu, který je nynı́ roven úspěšně vytvořenému pokusnému bodu y. V opačném přı́padě, tj. s využitı́m nových hodnot parametrů F a CR je vytvořen pokusný bod y, který nenı́ úspěšný, pak hodnoty parametrů F a CR přı́slušné k bodu xi zůstávajı́ nezměněny, tedy s bodem xi přežı́vajı́ dál staré“ hodnoty parametrů F a CR. ” 38 Každá nová hodnota parametru křı́ženı́ CR je zde vybı́rána z rovnoměrného rozdělenı́ na intervalu [0, 1] a každá nová hodnota parametru mutace F z rovnoměrného rozdělenı́ na intervalu [Fl , Fu ], kde Fl a Fu jsou vstupnı́ parametry algoritmu. Autoři doporučujı́ nastavit je takto: τ1 = τ2 = 0.1 a Fl = 0.1 a Fu = 0.9. Samo-adaptivnı́ verze diferenciálnı́ evoluce jDE je v pseudokódu zapsána v Algoritmu 2. 39 Algoritmus 2 jDE 1: vygeneruj počátečnı́ generaci P0 = (x1 , x2 , . . . , xN ) populace P ; 2: vypočı́tej hodnotu funkce f ve všech bodech generace P0 ; 3: přiřad’ ke každému bodu xi dvojici parametrů F a CR; 4: g=0; 5: repeat 6: Qg = Pg ; 7: for i = 1 to N do 8: uchovej původnı́ hodnoty parametrů F a CR bodu xi ; 9: s pravděpodobnostı́ τ1 změň F bodu xi ; 10: s pravděpodobnostı́ τ2 změň CR bodu xi ; 11: vytvoř pokusný bod y k bodu xi , použij jeho F a CR; 12: vypočı́tej hodnotu účelové funkce v bodě y; 13: if f (y) ≤ f (xi ) then 14: 15: 16: do Qg vlož na mı́sto bodu xi bod y; else pro xi nastav F a CR na původnı́ hodnoty; 17: end if 18: end for; 19: Pg+1 = Qg ; 20: g=g+1; 21: until ukončovacı́ podmı́nka; 40 6.3 Soutěživá DE Tento adaptivnı́ přı́stup v DE navrhnul v roce 2006 Tvrdı́k, [59, 60]. Pracuje se v něm s několika konkrétnı́mi nastavenı́mi algoritmu DE. Tato nastavenı́ spolu v průběhu hledánı́ řešenı́ optimalizačnı́ho problému soutěžı́. Čı́m je nastavenı́ úspěšnějšı́, tı́m má většı́ šanci být vybráno ke generovánı́ aktuálně potřebného pokusného bodu y. V tomto přı́stupu se neadaptuje velikost populace N . Podrobný popis mechanismu adaptace následuje. Mějme H nastavenı́ algoritmu DE. Před každým vytvořenı́m pokusného bodu y se vybere náhodně jedno z těchto H nastavenı́. Každé z H nastavenı́ DE může být vybráno s pravděpodobnostı́ qh , 1 ≤ h ≤ H. h-té nastavenı́ DE je úspěšné, generuje-li pokusný bod y k původnı́mu bodu xi aktuálnı́ generace populace P takový, že f (y) ≤ f (xi ). Pravděpodobnosti qh jsou upravovány podle podı́lů úspěchů všech H nastavenı́ v předchozı́ch krocı́ch takto: nh + n0 qh = PH , h ∈ {1, 2, . . . , H} k=1 (nj + n0 ) (20) nh je aktuálnı́ počet úspěchů h-tého nastavenı́, n0 > 1 je konstanta zabraňujı́cı́ přı́liš velkým změnám qh způsobeným náhodným úspěchem h-tého nastavenı́ DE. Když se nějaká z qh (h ∈ {1, 2, . . . , H}) snı́žı́ tak, že platı́ qh < δ pro δ > 0 (δ je vstupnı́ parametr algoritmu), pak jsou hodnoty qh (h ∈ {1, 2, . . . , H}) znovu nastaveny na své počátečnı́ hodnoty, qh = 1/H, h ∈ {1, 2, . . . , H}, a také hodnoty nh , 1 ≤ h ≤ H jsou znovu nastaveny na 0. Tı́mto se předcházı́ degeneraci procesu adaptace. Vstupnı́mi parametry algoritmu soutěživé DE tedy jsou: velikost populace N , parametry soutěže δ a n0 a sada použitých nastavenı́ DE (DEstrategie spolu s hodnotami parametrů F a CR), z nı́ž pak plyne hodnota parametru H. Soutěživá DE je v pseudokódu zapsána v Algoritmu 3. 41 Algoritmus 3 Soutěživá DE 1: vygeneruj počátečnı́ generaci P0 = (x1 , x2 , . . . , xN ) populace P ; 2: vypočı́tej hodnotu funkce f ve všech bodech generace P0 ; 3: nastav pravděpodobnosti qh na hodnoty 1/H; 4: g=0; 5: repeat 6: Qg = Pg ; 7: for i = 1 to N do 8: vyber z H-nastavenı́ DE s ohledem na qh (h = 1, 2, . . . , H); 9: vytvoř y k bodu xi s použitı́m vybraného nastavenı́ DE; 10: vypočı́tej hodnotu účelové funkce v bodě y; 11: if f (y) ≤ f (xi ) then 12: do Qg vlož na mı́sto bodu xi bod y; 13: zvětši přı́slušnou četnost úspěchů nh o 1; 14: přepočı́tej pravděpodobnosti qh ; 15: end if 16: end for 17: Pg+1 = Qg ; 18: g=g+1; 19: until ukončovacı́ podmı́nka; 42 Doporučená nastavenı́ parametrů algoritmu soutěživé DE jsou: n0 = 2, δ = 1/(5 H); velikost populace autor doporučuje nastavit v rozmezı́ od N = 20 do N = 5 d pro problémy s menšı́ dimenzı́ a N ≤ 100 pro problémy s většı́ dimenzı́. Na doporučenı́ch týkajı́cı́ch se výběru nastavenı́ DE soutěžı́cı́ch v tomto algoritmu se pracuje od jeho navrženı́ [34, 59, 62, 63]. Podle autora se zatı́m nejefektivněji jevı́ varianta algoritmu nazvaná b6e6rl [59]. Tato varianta algoritmu soutěživé DE využı́vá 12 různých nastavenı́ DE, platı́ tedy, že H = 12. Polovina z těchto 12-ti nastavenı́ DE využı́vá DE-strategii DE/randrl/1/bin a druhá polovina DE-strategii DE/randrl/1/exp. V polovině z šesti nastavenı́ využı́vajı́cı́ch DE-strategii DE/randrl/1/bin je parametr F nastaven na hodnotu 0.5 a ve zbývajı́cı́ polovině na hodnotu 0.8. Stejně tak v polovině z šesti nastavenı́ využı́vajı́cı́ch DE-strategii DE/randrl/ 1/exp je parametr F nastaven na hodnotu 0.5 a ve zbývajı́cı́ polovině na hodnotu 0.8. Každé ze třı́ použitých nastavenı́ DE využı́vajı́cı́ch tutéž DEstrategii a tutéž hodnotu parametru F se lišı́ nastavenı́m hodnoty parametru CR. Pro binomálnı́ křı́ženı́ jsou, jak s hodnotou 0.5, tak s hodnotou 0.8 parametru F , použity tyto tři hodnoty parametru CR: 0, 0.5, 1. Pro křı́ženı́ exponenciálnı́ jsou, jak s hodnotou 0.5, tak s hodnotou 0.8 parametru F , použity tři hodnoty parametru CR: CR1, CR2, CR3. Hodnoty CR1, CR2, CR3 jsou kořeny polynomu (18) pro pm postupně nastavené na pm1 , pm2 , pm3 , kde pm2 = 1 + 1/d , 2 pm1 = 1/d + pm2 , 2 pm3 = pm2 + 1 . 2 (21) Hodnoty pm1 , pm2 , pm3 jsou znázorněny na obrázku 5 vyjadřujı́cı́m závislost CR a pm pro d = 30. Přehledně jsou nastavenı́ DE použitá v b6e6rl popsána v tabulce 1. 43 1 0.9 0.8 0.7 CR 0.6 0.5 0.4 0.3 p 0.2 pm pm m 1 3 2 0.1 0 0 0.1 0.2 0.3 0.4 0.5 pm 0.6 0.7 0.8 0.9 1 Obrázek 5: Závislost CR na pravděpodobnosti mutace pm pro exponenciálnı́ křı́ženı́ a hodnoty pm1 , pm2 , pm3 , d = 30 44 Tabulka 1: Nastavenı́ DE soutěžı́cı́ v b6e6rl h h-té nastavenı́ DE použitá DE-strategie F CR 1 DE/randrl/1/bin 0.5 0 2 DE/randrl/1/bin 0.5 0.5 3 DE/randrl/1/bin 0.5 1 4 DE/randrl/1/bin 0.8 0 5 DE/randrl/1/bin 0.8 0.5 6 DE/randrl/1/bin 0.8 1 7 DE/randrl/1/exp 0.5 CR1 8 DE/randrl/1/exp 0.5 CR2 9 DE/randrl/1/exp 0.5 CR3 10 DE/randrl/1/exp 0.8 CR1 11 DE/randrl/1/exp 0.8 CR2 12 DE/randrl/1/exp 0.8 CR3 Algoritmus b6e6rl se v červnu 2013 zúčastnil soutěže organizované v rámci mezinárodnı́ho kongresu CEC2013 [68]. Algoritmy soutěžily za podmı́nek definovaných v [24] na třech úrovnı́ch dimenze, d = 10, d = 30 a d = 50. Účastnı́ků soutěže, kteřı́ splnily všechny stanovené podmı́nky, bylo celkem 21. Algoritmy založené na diferenciálnı́ evoluci se umı́stily na 4. [54], 7. [8], 8. [2], 9. [33], 10. [68], 11. [77], 14. [5], 15. [15] a 18. [11] mı́stě. Algoritmus b6e6rl se tedy v této soutěži umı́stil na 10. mı́stě. Nejúspěšnějšı́ adaptivnı́ verzı́ DE v této soutěži byla varianta nazvaná SHADE. Této adaptivnı́ verzi DE se budeme věnovat v kapitole 6.8. 45 6.4 Algoritmus JADE Algoritmus JADE [79] autorů Zhanga a Sandersona, je dalšı́ z adaptivnı́ch verzı́ algoritmu diferenciálnı́ evoluce. V tomto přı́stupu se adaptujı́ hodnoty parametrů F a CR, pracuje se v něm s jedinou DE-strategiı́ DE/current-topbest/1/bin a využı́vá se archı́v A. Mutace current-to-pbest/1 (15) je jakýmsi zobecněnı́m mutace current-to-best/1 (9), při jejı́mž využitı́ má diferenciálnı́ evoluce sklony k předčasné konvergenci (kap. 8). Praděpodobnost nastoupenı́ tohoto jevu se autoři algoritmu JADE pokusili snı́žit zavedenı́m archı́vu A a výběru jednoho z bodů množiny 100p% lepšı́ch prvků populace, který nahrazuje využitı́ pouze jediného nejlepšı́ho prvku populace. p ∈ (0, 1] je vstupnı́ parametr a autory doporučená hodnota je p ∈ (0.05, 0.2]. Archı́v A je inicializován jako prázdná množina a během procesu hledánı́ optima se do něj ukládá každý bod xi populace, k němuž byl vytvořen úspěšný pokusný bod y a který byl tudı́ž v populaci právě tı́mto pokusným bodem nahrazen. Archı́v A je po každé generaci upraven tak, aby jeho velikost byla nejvýše N . Přı́padné zmenšenı́ rozsahu archı́vu A se provádı́ vypuštěnı́m potřebného počtu prvků, vypouštěné prvky jsou vybrány náhodně. Adaptace parametrů F a CR se provádı́ následujı́cı́m způsobem. Hodnoty obou parametrů jsou v každé generaci populace nezávisle generovány pro každý bod xi aktuálnı́ generace populace Pg samostatně. Hodnoty parametru CR jsou generovány z normálnı́ho rozdělenı́ se střednı́ hodnotou µCR a směrodatnou odchylkou 0.1, po vygenerovánı́ jsou ořezány“ do in” tervalu [0, 1]. Hodnoty parametru F jsou generovány z Cauchyho rozdělenı́ s parametry (µF , 0.1). Je-li vygenerovaná hodnota F > 1, F je nastaveno na hodnotu F = 1, v přı́padě, že vygenerovaná hodnota F < 0, se F generuje znovu. V každé generaci se do množiny SCR uložı́ všechny úspěšné hodnoty 46 parametru CR a do množiny SF všechny úspěšné hodnoty parametru F . Obě množiny jsou na začátku vytvářenı́ každé jednotlivé generace znovu vyprázdněny“ (SCR = ∅, SF = ∅). Hodnoty µCR a µF jsou na začátku běhu ” algoritmu nastaveny na hodnotu 0.5 a po každé generaci jsou upravovány s využitı́m hodnot uložených v množinách SCR a SF následujı́cı́m způsobem. µCR ← (1 − c) µCR + c meanA (SCR ), (22) µF ← (1 − c) µF + c meanL (SF ), kde c je parametr algoritmu, c ∈ [0, 1], meanA je aritmetický průměr, neboli Lehmerův průměr (23) prvnı́ho řádu, tj. meanL1 (24), a meanL je Lehmerův průměr druhého řádu, tj. meanL2 (25). Lehmerův průměr druhého řádu je ve výpočtu nové hodnoty µF na rozdı́l od výpočtu nové hodnoty µCR , kde je použit Lehmerův průměr prvnı́ho řádu, zřejmě použit kvůli faktu, že hodnoty z množiny SF jsou hodnoty generované z Cauchyho rozdělenı́, toto rozdělenı́ nemá střednı́ hodnotu a aritmetický průměr je odhadem střednı́ hodnoty. Lehmerův průměr řádu ρ je pro y = (y1 , y2 , . . . , yn ) definován takto: Pn (ys )ρ meanLρ (y) = Pns=1 . (23) ρ−1 s=1 (ys ) Lehmerův průměr řádu 1 pro množinu SF (meanL1 (SF )) je tedy definován takto: P F∈ meanL1 (SF ) = P SF F ∈ SF F 1 (24) a je roven aritmetickému průměru. Lehmerův průměr řádu 2 pro množinu SF (meanL2 (SF )) je definován následovně: P F∈ meanL2 (SF ) = P SF F ∈ SF F2 . F (25) Struktura právě popsané adaptivnı́ varianty diferenciálnı́ evoluce je v pseudokódu zapsána v Algoritmu 4. 47 Algoritmus 4 JADE 1: vygeneruj počátečnı́ generaci P0 = (x1 , x2 , . . . , xN ) populace P ; 2: vypočı́tej hodnotu funkce f ve všech bodech generace P0 ; 3: inicializuj archı́v A = ∅; 4: nastav parametr µF Cauchyho rozdělenı́ (µF = 0.5); 5: nastav parametr µCR normálnı́ho rozdělenı́ (µCR = 0.5); 6: g=0; 7: repeat 8: Qg = Pg ; 9: vyprázdni množinu SF (SF = ∅); 10: vyprázdni množinu SCR (SCR = ∅); 11: for i = 1 to N do 12: vyber F z Cauchyho rozdělenı́ (Cauch(µF , 0.1)); 13: vyber CR z normálnı́ho rozdělenı́ (N (µCR , 0.1)) ; 14: vytvoř y k bodu xi (s využitı́m DE/current-to-pbest/1/bin); 15: vypočı́tej hodnotu účelové funkce f v bodě y; 16: if f (y) ≤ f (xi ) then 17: xi vlož do archı́vu A; 18: do Qg vlož na mı́sto bodu xi bod y; 19: hodnotu F vlož do SF ; 20: hodnotu CR vlož do SCR ; 21: end if 22: end for 23: if velikost A je většı́ než N then 24: zmenši archı́v (na velikost N ); 25: end if 26: uprav µF (pro Cauchyho rozdělenı́, s využitı́m SF ); 27: uprav µCR (pro normálnı́ rozdělenı́, s využitı́m SCR ); 28: Pg+1 = Qg ; 29: g=g+1; 30: until ukončovacı́ podmı́nka; 48 6.5 Algoritmus SADE V této adaptivnı́ verzi algoritmu DE [43] se adaptujı́ DE-strategie tvorby pokusného bodu y i hodnoty parametrů mutace a křı́ženı́ a to vzhledem k jejich předcházejı́cı́m úspěchům v rámci evoluce. V algoritmu se využı́vá sada K DE-strategiı́, která zahrnuje strategie s různými charakteristikami. Před generovánı́m pokusného bodu y se vybere jedna ze strategiı́ z uvedené sady K DE-strategiı́ a to v závislosti na aktuálnı́ch pravděpodobnostech výběru strategiı́ pk , 1 ≤ k ≤ K, které se upravujı́ podle úspěchů strategiı́ v LP předchozı́ch generacı́ch. Pravděpodobnosti pk , 1 ≤ k ≤ K jsou inicializovány na hodnotu 1/K a v průběhu evoluce se upravujı́ následujı́cı́m způsobem. V každé generaci G se zjist’uje počet úspěšných pokusných bodů generovaných k-tou strategiı́ nsk,G a také počet pokusných bodů neúspěšně vygenerovaných k-tou strategiı́ nfk,G . Tyto hodnoty se pamatujı́ z poslednı́ch LP generacı́ a uchovávajı́ se v tzv. paměti úspěchů a neúspěchů. Po prvnı́ch LP generacı́ch (naplňovánı́ paměti) se v každé dalšı́ generaci pravděpodobnosti pk výběru strategiı́ upravı́ na základě obsahu pamětı́ úspěchů a neúspěchů. Pro každou generaci G, G > LP, je pak pravděpodobnost výběru k-té strategie Sk,G pk,G = PK m=1 Sm,G (26) kde PG−1 Sk,G = PG−1 g=G−LP nsk,g PG−1 g=G−LP nsk,g + g=G−LP nfk,g + ², 1 ≤ k ≤ K, (27) Sk,G reprezentuje podı́l pokusných bodů úspěšně generovaných k-tou strategiı́ za poslednı́ch LP generacı́. Nastavenı́ ² = 0.01 předcházı́ možnosti 49 nulového podı́lu úspěchů. Zřejmě většı́ podı́l úspěchů v předchozı́ch LP generacı́ch vede k většı́ pravděpodobnosti aplikovánı́ dané DE-strategie v generaci G. Dále se v algoritmu SADE adaptivně nastavujı́ hodnoty parametrů F a CR. Hodnoty parametru F se generujı́ z normálnı́ho rozdělenı́ N (0.5, 0.3). Hodnoty parametru CRk , k = 1, 2, . . . , K se vybı́rajı́ z normálnı́ho rozdělenı́ N (CRmk , 0.1), CRmk se zde upravuje na základě hodnot CRk , které vedly v předchozı́ch generacı́ch ke generovánı́ úspěšného pokusného bodu. CRmk je pro každou z použitých DE-strategiı́ (k = 1, 2, . . . , K) inicializována na hodnotu 0.5. Poslednı́ch LP hodnot CRk , které vedly v přechozı́ch generacı́ch ke generovánı́ úspěšného pokusného bodu k-tou DE-strategiı́ se ukládá do paměti CRMemoryk . Po inicializaci paměti se hodnoty CRmk upravujı́ tak, že se nastavı́ na hodnotu, která je rovna mediánu hodnot uložených v danou chvı́li v paměti CRMemoryk . V SADE, navrženém, popsaném a testovaném v [43], Qin, Huang a Suganthan použili následujı́cı́ čtveřici DE strategiı́: DE/rand/1/bin, DE/randto-best/2/bin, DE/rand/2/bin, DE/current-to-rand/1. Využity byly tedy mutace rand/1 (5), rand-to-best/2 (12), rand/2 (6), current-to-rand/1 (14) a pouze binomické křı́ženı́ (kap. 5.2.1). Struktura adaptivnı́ varianty SADE je v pseudokódu popsána v Algoritmu 5. 50 Algoritmus 5 SADE 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35: 36: vygeneruj počátečnı́ generaci P0 = (x1 , x2 , . . . , xN ) populace P ; vypočı́tej hodnotu funkce f ve všech bodech generace P0 ; nastav pravděpodobnosti pk , k = 1, 2, . . . , K na hodnoty 1/K; inicializuj CRmk = 0.5 pro k = 1, 2, . . . , K; inicializuj pamět’ úspěchů a neúspěchů; inicializuj CRMemoryk ; inicializuj počı́tadla generacı́ G = 0, g = 0; repeat Qg = Pg ; G = G + 1; nastav nsk,G = 0, nfk,G = 0 pro k = 1, 2, . . . , K; for i = 1 to N do vyber r (1 ≤ r ≤ K) s ohledem na pk , k = 1, 2, . . . , K; vygeneruj hodnotu F z normálnı́ho rozdělenı́ N (0.5, 0.3); if pamět’ CRMemoryr je dostatečně velká then uprav CRmr ; end if vygeneruj hodnotu CR z N (CRmr , 0.1); vytvoř pokusný bod y k bodu xi ; vypočı́tej hodnotu účelové funkce f v bodě y; if f (y) ≤ f (xi ) then do Qg vlož na mı́sto bodu xi bod y; zvětši přı́slušné nsr,G o 1; ulož aktuálnı́ CR do CRMemoryr ; else zvětši přı́slušné nfr,G o 1; end if end for Pg+1 = Qg ; ulož nsk,G a nfk,G pro k = 1, 2, . . . , K; if G > LP then spočı́tej Sk,G a pk,G pro k = 1, 2, . . . , K; pk = pk,G pro k = 1, 2, . . . , K; end if g=g+1; until ukončovacı́ podmı́nka; 51 6.6 Algoritmus EPSDE Tento samo-adaptivnı́ přı́stup navrhl Mallipeddi a kol. v roce 2011 [30]. Jedná se o přı́stup, u kterého se předpokládá existence množiny možných hodnot parametru F , množiny možných hodnot parametru CR a množiny možných DE-strategiı́. Připomeňme, že DE-strategiı́ je mı́něna kombinace konkrétnı́ mutace a konkrétnı́ho křı́ženı́. Do množiny možných DE-strategiı́ se zařazujı́ takové DE-strategie, o kterých je známo, že majı́ navzájem různé charakteristiky. V tomto přı́stupu se neadaptuje velikost populace N . Adaptace v algoritmu EPSDE spočı́vá v tom, že pro každý bod xi počátečnı́ generace populace P je náhodně vybrána DE-strategie z množiny možných DE-strategiı́, hodnota parametru F z množiny možných hodnot tohoto parametru a hodnota parametru CR z množiny možných hodnot parametru CR. Takto vytvořená trojice parametrů DE (DE-strategie, F , CR) se stává trojicı́ parametrů přı́slušnou k bodu xi . Pro každý bod xi populace se pak pokusný bod y tvořı́ s využitı́m trojice parametrů k němu přı́slušné. V přı́padě, že se takto vytvořı́ úspěšný pokusný bod y, tento bod y nahradı́ v populaci původnı́ bod xi a stává se tak novým xi . Trojicı́ parametrů přı́slušnou k tomuto novému xi zůstává trojice parametrů DE právě přepsaného původnı́ho bodu xi . V opačném přı́padě, tedy v přı́padě, že pokusný bod y nenı́ úspěšný, se bodu xi přiřadı́ nová trojice parametrů jednı́m z následujı́cı́ch způsobů. Bud’ se vygeneruje stejně jako se to provádělo v počátečnı́ generaci populace, nebo je nová trojice parametrů náhodně vybrána z trojic parametrů uložených v paměti úspěšných trojic parametrů. Každá z uvedených možnostı́ má stejnou pravděpodobnost. Každá úspěšná trojice parametrů se ukládá do paměti úspěšných trojic parametrů. Velikost této paměti je omezena hodnotou LP. S pamětı́ 52 úspěšných trojic parametrů se pracuje následovně. Na začátku vyhledávacı́ho procesu je prázdná. Pokud má pamět’ úspěšných trojic parametrů při vkládánı́ nějaké úspěšné trojice, zatı́m neobsažené v této paměti, již LP prvků, nová úspěšná trojice nahrazuje v paměti náhodně vybranou v nı́ uloženou trojici parametrů. LP je vstupnı́ parametr algoritmu a doporučené nastavenı́ je LP = N. Struktura právě popsané adaptivnı́ varianty diferenciálnı́ evoluce je v pseudokódu zapsána v Algoritmu 6. Konkrétnı́ varianta algoritmu EPSDE popsaná v [30] pracuje se třemi DE-strategiemi v množině možných DE-strategiı́. Jsou to DE/best/2/bin, DE/rand/1/bin, DE/current-to-rand/1/-. Množina možných hodnot parametru F je rovna množině {0.4, 0.5, 0.6, 0.7, 0.8, 0.9}. Množina možných hodnot parametru CR je rovna množině {0.1, 0.2, 0.3, 0.4, 0.5, 0, 6, 0.7, 0.8, 0.9}. 53 Algoritmus 6 EPSDE 1: vygeneruj počátečnı́ generaci P0 = (x1 , x2 , . . . , xN ) populace P ; 2: vypočı́tej hodnotu funkce f ve všech bodech generace P0 ; 3: přiřad’ ke každému bodu trojici parametrů (DE-strategie, F , CR); 4: připrav pamět’ k ukládánı́ úspěšných trojic parametrů; 5: g=0; 6: repeat 7: Qg = Pg ; 8: for i = 1 to N do 9: vytvoř y k xi , použij jeho trojici (DE-strategie, F , CR); 10: vypočı́tej hodnotu účelové funkce f v bodě y; 11: if f (y) ≤ f (xi ) then 12: do Qg vlož na mı́sto bodu xi bod y; 13: trojici param. bodu xi vlož do paměti úspěšných trojic parametrů; 14: 15: 16: else k xi přiřad’ novou trojici parametrů; end if 17: end for 18: Pg+1 = Qg ; 19: g=g+1; 20: until ukončovacı́ podmı́nka; 54 6.7 Algoritmus CoDE Algoritmus CoDE navrhl v roce 2011 Wang a kol. [71]. Tento adaptivnı́ přı́stup je založen na velmi jednoduchém systému adaptace parametrů DE, DE-strategie a hodnot parametrů F a CR. Také zde se neadaptuje velikost populace N . V této verzi adaptace v DE je k dispozici r DE-strategiı́ a r dvojic parametrů (F ,CR), adaptace probı́há následovně. Vždy, při potřebě vytvořenı́ nového pokusného bodu y, se vytvořı́ r pokusných bodů y 1 ,y 2 , . . . , y r , každý s využitı́m jiné DE-strategie z r možných společně s náhodně vybranou dvojicı́ hodnot parametrů F a CR z r možných dvojic. Jako definitivnı́ pokusný bod y se vybere a použije nejlepšı́ z těchto r pokusných bodů, ve smyslu řešené optimaližačnı́ úlohy. V přı́padě minimalizace dané účelové funkce, ten bod, v němž je hodnota účelové funkce nejnižšı́. V algoritmu popsaném a testovaném v [71] je r = 3 a jsou použity DE-strategie: DE/rand/1/bin, DE/rand/2/bin, DE/current-to-rand/1/- a dvojice hodnot parametrů (F ,CR): (1,0.1), (1,0.9), (0.8,0.2). Strukturu adaptivnı́ varianty CoDE zachycuje Algoritmus 7. Adaptivnı́ variantou diferenciálnı́ evoluce CoDE se velmi podrobně zabývá Tvrdı́k v článku [64]. Důvodem tohoto výzkumu je velmi nepřesný a nejednoznačný popis algoritmu CoDE v [71]. V [64] je popsáno několik variant algoritmu CoDE, porovnány jsou na základnı́ testovacı́ sadě (kap. 9), podle provedených experimentů je nejefektivnějšı́ variantou verze označovaná v [64] CoDE0, která vznikla dı́ky nepřesnému popisu původnı́ho návrhu adaptace. Tento fakt svědčı́ o tom, že výkonné stochastické algoritmy pro globálnı́ optimalizaci nemusı́ vznikat pouze na základě spojenı́ optimalizačnı́ch prostředků, pro jejichž využitı́ existuje racionálnı́ vysvětlenı́. 55 Algoritmus 7 CoDE 1: vygeneruj počátečnı́ generaci P0 = (x1 , x2 , . . . , xN ) populace P ; 2: vypočı́tej hodnotu účelové funkce ve všech bodech generace P0 ; 3: g=0; 4: repeat 5: Qg = Pg ; 6: for i = 1 to N do 7: vytvoř pokusné body y 1 ,y 2 , . . . , y r k bodu xi ; 8: vypočı́tej hodnoty funkce f v bodech y 1 ,y 2 , . . . , y r ; 9: jako y vyber nejlepšı́ z bodů y 1 ,y 2 , . . . , y r ; 10: 11: 12: if f (y) ≤ f (xi ) then do Qg vlož na mı́sto bodu xi bod y; end if 13: end for 14: Pg+1 = Qg ; 15: g=g+1; 16: until ukončovacı́ podmı́nka; 56 6.8 Algoritmus SHADE Dalšı́ adaptivnı́ verzı́ diferenciálnı́ evoluce je algoritmus SHADE [55]. Jedná se o velmi mladý algoritmus, který navrhli Tanabe a Fukanaga v roce 2013. SHADE vycházı́ z adaptivnı́ verze JADE (kap. 6.4), použı́vá všechny prostředky adaptace implementované v JADE (strategii DE/current-to-pbest /1/bin, archı́v A, adaptaci parametrů F a CR). V SHADE se však adaptace parametrů F a CR navı́c opı́rá o tzv. historickou kruhovou pamět’. Jedná se vlastně o dvě kruhové paměti, v každé z nich je vždy uloženo poslednı́ch k nově vypočı́taných prvnı́ch parametrů jednoho z využı́vaných rozdělenı́ pravděpodobnosti. Tyto paměti se označujı́ MF a MCR , velikost obou pamětı́ je rovna H, autory doporučená hodnota je H = N. Na začátku procesu vyhledávánı́ jsou paměti nastaveny takto: MFj = 0.5, MCRj = 0.5, 1 ≤ j ≤ H. Každá z hodnot uložená do pamětı́ MF a MCR během vyhledávacı́ho procesu je spočı́tána z hodnot parametru F (v přı́padě MF ) nebo z hodnot parametru CR (v přı́padě MCR ) úspěšně použitých v průběhu vytvářenı́ jediné generace populace P . Dalšı́ věc, kterou se algoritmy JADE a SHADE lišı́, je nastavenı́ parametru p pro mutaci current-to-pbest/1. V JADE je p nastaveno na konstantnı́ hodnotu, naopak v SHADE se p před každým dalšı́m vytvořenı́m pokusného bodu y nastavı́ na novou hodnotu. Tato hodnota je vždy vybrána z rovnoměrného rozdělenı́ na intervalu [1/N, 0.2]. Podobně jako v JADE, také v SHADE se před každým vytvořenı́ nového pokusného bodu y generujı́ nové hodnoty parametrů F a CR a to následovně. Vybere se náhodně index r, 1 ≤ r ≤ H, hodnota parametru F je pak náhodné čı́slo z Cauchyho rozdělenı́ s parametry MFr a 0.1 (Cauchy(MFr , 0.1)) a hodnota parametru CR je generována z normálnı́ho rozdělenı́ s parametry 57 MCRr a 0.1 (N (MCRr , 0.1)). Je-li pokusný bod y vytvořený s využitı́m těchto hodnot úspěšný, pak se přı́slušná hodnota parametru F uložı́ do množiny SF a hodnota parametru CR se uložı́ do množiny SCR . Tı́mto způsobem se stejně jako v JADE uložı́ všechny v jedné generaci úspěšně použité hodnoty parametrů F a CR. Na začátku výpočtu nové generace se SF a SCR rovnajı́ ∅. Po vytvořenı́ celé této nové generace populace P se z hodnot uložených v množinách SF a SCR vypočı́tajı́ nové hodnoty prvnı́ch parametrů přı́slušných rozdělenı́ µF a µCR , které se uložı́ na aktuálnı́ k-tou pozici v kruhových pamětech MF a MCR . Hodnoty těchto prvnı́ch parametrů použitých pravděpodobnostnı́ch rozdělenı́ µF a µCR , které se v JADE počı́tajı́ jako průměry, se v algoritmu SHADE počı́tajı́ jako vážené průměry a vážı́ se velikostı́ rozdı́lu hodnoty účelové funkce v pokusném bodě y a hodnoty účelové funkce v bodě xi , který byl v populaci tı́mto úspěšným pokusným bodem y nahrazen. Hodnoty MFk a MCRk se po ukončenı́ vytvářenı́ nové generace počı́tajı́ pouze v přı́padě, že byl během této generace vytvořen alespoň jeden úspěšný pokusný bod, pak SF = {F1 , F2 , . . . , F|SF | } a SCR = {CR1 , CR2 , . . . , CR|SF | }. Poznamenejme, že platı́ |SF | = |SCR |. MFk = meanWL (SF ) když SF 6= ∅, (28) MCRk = meanWA (SCR ) když SCR 6= ∅, (29) meanWL je vážený Lehmerův průměr řádu 2, tj. P|SF | 2 m=1 wm Fm , meanWL (SF ) = P|S F| w F m m m=1 (30) a meanWA je vážený Lehmerův průměr řádu 1 (vážený aritmetický průměr), tj. |SCR | meanWA (SCR ) = X m=1 58 wm CRm , (31) kde ∆fm wm = P|S | CR h=1 ∆fh (32) ∆fm = |f (xm ) − f (y m )|, (33) a y m je úspěšný pokusný bod a xm je bod populace, který byl bodem y m nahrazen. Na začátku výpočtu algoritmu je k = 1. V přı́padě, že se do kruhových pamětı́ po ukončenı́ vytvářenı́ dané generace zapisuje, k se po tomto zápisu nastavı́ o jedničku vyššı́. V přı́padě, že takto zvýšené k je většı́ než H, se k nastavı́ na hodnotu 1. S archı́vem A se v SHADE pracuje podobně jako v JADE. Do archı́vu se ukládá každý bod xi jehož pokusný bod y byl úspěšný, tedy lepšı́ než xi . Při každém vepisovánı́ bodu do archı́vu A, který již dosáhl své maximálnı́ velikosti, se vybere náhodně prvek archı́vu A a ten je přepsán nově vkládaným bodem xi . Adaptivnı́ varianta diferenciálnı́ evoluce SHADE je zapsána v pseudokódu v Algoritmu 8. 59 Algoritmus 8 SHADE 1: vygeneruj počátečnı́ generaci P0 = (x1 , x2 , . . . , xN ) populace P ; 2: vypočı́tej hodnotu účelové funkce f ve všech bodech generace P0 ; 3: H = N (velikost historických kruhových pamětı́ MF a MCR ); 4: inicializuj archı́v A = ∅; 5: MF = (0.5, . . . , 0.5) (pro prvnı́ parameter Cauchyho rozdělenı́), MCR = (0.5, . . . , 0.5) (pro prvnı́ parameter normálnı́ho rozdělenı́); 6: k = 1; 7: g = 0; 8: repeat 9: SF = ∅, SCR = ∅, Qg = Pg ; 10: for i = 1 to N do 11: vyber r náhodně z {1, 2, . . . , H}; 12: generuj F z Cauch(MFr , 0.1) a CR z rozdělenı́ N (MCRr , 0.1) ; 13: generuj p z rovnoměrného rozdělenı́ na intervalu [1/N, 0.2]; 14: vytvoř y pro xi , použij strategii DE/current-to-pbest/1/bin; 15: spočı́tej f (y); 16: if f (y) ≤ f (xi ) then 17: do Qg vlož na mı́sto bodu xi bod y; 18: end if 19: if f (y) < f (xi ) then 20: vlož xi do archı́vu A; 21: vlož F do SF a CR do SCR ; 22: end if 23: end for 24: if SF 6= ∅ then 25: spočı́tej novou hodnotu prvnı́ho parametru pro obě rozdělenı́, ulož je do MFk a MCRk ; 26: zvětši k o jedničku; 27: if k > H then 28: k = 1; 29: end if 30: end if 31: Pg+1 = Qg ; 32: g=g+1; 33: until ukončovacı́ podmı́nka; 60 6.9 Adaptace velikosti populace v DE Mezi adaptivnı́ verze algoritmu diferenciálnı́ evoluce, ve kterých se adaptuje parametr velikost populace N , patřı́ např. algoritmus nazvaný dynNP-DE, který užı́vá mechanismus redukce velikosti populace [7]. Algoritmus dynNPDE i mechanismus redukce velikosti populace navrhli v roce 2008 Brest a Maučecová. Mechanismus redukce velikosti populace pracuje následovně. Algorimus začne pracovat s populacı́ velikosti N , po určitém čase t (po provedenı́ t výpočtů účelové funkce) se velikost populace zmenšı́ na polovinu původnı́ velikosti, tedy N ← N/2. Po dalšı́m časovém úseku délky t se velikost populace opět zmenšı́ na polovinu a tento proces se stále opakuje až do využitı́ celkového času poskytnutého algoritmu k výpočtu. Využitý princip zmenšovánı́ velikosti populace vycházı́ z myšlenky, že v počátečnı́ch fázı́ch výpočtu je zapotřebı́ dostatečně prozkoumat prohledávanou oblast S, zatı́mco v pozdějšı́ch fázı́ch výpočtu algoritmu je již důkladné prohledávánı́ celé oblasti S méně důležité a tudı́ž nenı́ zapotřebı́ tak veliká populace. V pozdějšı́ch fázı́ch výpočtu lze využı́t populaci s menšı́m počtem prvků a tı́m dovolit algoritmu, aby vytvořil vı́ce generacı́ populace a měl tak možnost nalézt řešenı́ přesnějšı́. Tedy, čas T poskytnutý k výpočtu algoritmu je rozdělen na Np stejných částı́, T /Np = t, hodnota parametru Np je rovna počtu navzájem různých hodnot parametru velikosti populace, které se rozhodneme v algoritmu využı́t. Algoritmus začne pracovat s populacı́ velikosti N a po t-výpočtech účelové funkce upravı́ velikost populace na polovinu jejı́ aktuálnı́ velikosti N ← N/2. Tato úprava probı́há tak, že se populace P = (x1 , x2 , . . . , xN ) rozdělı́ na dvě podpopulace, P1 = (x1 , x2 , . . . , xN/2 ) a P2 = (xN/2+1 , xN/2+2 , . . . , xN ) a z těchto dvou podpopulacı́ se vytvořı́ nová populace P , která bude tvořena 61 N/2 prvky. Prvkem nové populace P bude vždy lepšı́ z dvojice xi a xN/2+i , pro 1 ≤ i ≤ N/2. Uvedený mechanismus redukce velikosti populace lze využı́t v jakékoli modifikaci či adaptivnı́ verzi DE. V práci [57] navrhl Teo dvě verze samo-adaptivnı́ho mechanismu adaptace velikosti populace N v algoritmu differenciálnı́ evoluce. V prvnı́ z nich využil metodiku absolutnı́ho kódovánı́ velikosti populace N , algoritmus nazval DESAP-Abs. V druhé využil metodiku relativnı́ho kódovánı́ velikosti populace N a algoritmus nazval DESAP-Rel. V obou navržených algoritmech se adaptuje nejen velikost populace N , ale i parametry mutace a křı́ženı́ ηF a ηCR . K adaptaci velikosti populace je v obou verzı́ch algoritmu použit pomocný parametr π. Oba algoritmy DESAP se chovajı́ velmi podobně. S každým prvkem populace se vždy uchovávajı́ i hodnoty ηF , ηCR a π. Na začátku běhu algoritmu se provede inicializace všech proměnných, vytvořı́ se počátečnı́ populace o velikosti N = 10∗d, parametry ηF a ηCR každého bodu populace se nastavı́ na náhodnou hodnotu z rovnoměrného rozdělenı́ na intervalu [0, 1]. V algoritmu DESAP-Abs se π pro každého jedince populace nastavı́ na hodnotu N + c zaokrouhlenou na celé čı́slo, c je náhodná hodnota z normovaného normálnı́ho rozdělenı́ N (0, 1). V algoritmu DESAP-Rel se pro každý prvek populace parametr π nastavı́ na hodnotu vybranou náhodně z rovnoměrného rozdělenı́ na intervalu [−0.5, 0.5]. Po provedenı́ inicializace se v cyklu opakuje vytvářenı́ nové generace populace bodů až do vyčerpánı́ času přiděleného běhu algoritmu (do splněnı́ ukončovacı́ podmı́nky). Nová generace populace se tvořı́ v cyklu po jednom prvku až do dosaženı́ aktuálnı́ hodnoty parametru velikosti populace N . Každý z prvků se vytvořı́ následujı́cı́m způsobem. Nejdřı́ve se vyberou náhodně tři prvky aktuálnı́ β1 populace s indexy β1 , β2 a β3 . Pak se s pravděpodobnostı́ ηCR provede křı́ženı́ jak vybraných bodů, tak jejich parametrů ηF , ηCR i π. Vytvořı́ se 62 tak nový bod y se svými hodnotami parametrů ηF , ηCR a π. Pak se provede mutace tohoto bodu y i jeho parametrů ηF , ηCR , π s pravděpodobnostı́ ηFβ1 . Následně se jako prvek nové populace vybere lepšı́ z bodů xβ1 a y. Po vytvořenı́ populace o velikosti N se spočı́tá nová hodnota parametru velikosti populace Nn . Pro DESAP-Abs je Nn rovna aritmetickému průměru z hodnot parametrů π všech bodů aktuálnı́ populace zaokrouhleného na celé čı́slo. Pro algoritmus DESAP-Rel se spočı́tá průměr π z hodnot parametrů π všech prvků aktuálnı́ generace populace P a Nn se pak rovná hodnotě N (1 + π) zaokrouhlené na celé čı́slo. Jeli Nn < N , pak se do dalšı́ generace přesouvá pouze Nn nejlepšı́ch prvků právě vytvořené populace. Je-li Nn > N , pak se do právě vytvořené populace navı́c (Nn − N )-krát přidá jejı́ nejlepšı́ bod. Nakonec se změnı́ hodnota parametru N na novou hodnotu, tj. na Nn . Algoritmus se vracı́ na začátek cyklu a začne generovat dalšı́ generaci populace P . Po otestovánı́ obou navržených modifikacı́ DE adaptujı́cı́ch velikost populace a porovnánı́ jejich účinnosti s účinnostı́ konvenčnı́ DE s různými nastavenı́mi velikosti populace jejich autor vyslovil závěr, že účinnost konvenčnı́ DE a DE s adaptacı́ velikosti populace jı́m navrženou je v podstatě srovnatelná. Teo dále konstatoval [57], že použitı́ absolutnı́ho kódovánı́ v algoritmu DESAP vede k většı́ stabilitě výsledků než použitı́ relativnı́ho kódovánı́. 63 7 Algoritmus ODE Kromě mnoha adaptivnı́ch verzı́ algoritmu DE existujı́ i jiné modifikace tohoto algoritmu. Jednou z nich je algoritmus ODE, který vznikl spojenı́m DE a mechanismu OBL (z anglického: Opposition-based Learning). Tuto modifikaci algoritmu DE navrhl v roce 2008 Rahnamayan a kol. [44]. Při jejı́m návrhu se autoři nechali vést následujı́cı́ myšlenkou. Při řešenı́ optimalizačnı́ho problému začne DE pracovat s populacı́ počátečnı́ch řešenı́ problému (náhodně vybraných z oblasti S) a snažı́ se tuto populaci zlepšovat směrem k optimálnı́mu řešenı́ problému. Proces vyhledávánı́ skončı́, když populace splňuje předem danou ukončovacı́ podmı́nku. Délka výpočtu algoritmu DE záležı́, kromě jiného, na bodech vybraných pro počátečnı́ generaci populace a např. na jejich vzdálenosti od skutečného řešenı́ problému. Prověřenı́m takzvaných protějšı́ch řešenı́ může výpočet začı́t s vhodnějšı́mi body z oblasti S a tudı́ž je šance na zkrácenı́ výpočtu algoritmu, tedy na zvýšenı́ rychlosti jeho konvergence. Stejnou myšlenku je možné aplikovat v každé z generacı́ populace P . K přesnému popisu algoritmu ODE je nutné zavést pojmy protějšı́ čı́slo, protějšı́ bod a protějšı́ množina. Je-li x ∈ [a, b] reálné čı́slo, protějšı́m čı́slem x̆ čı́sla x v intervalu [a, b] budeme nazývat čı́slo x̆ = a + b − x. Je-li x = (x1 , x2 , . . . , xd ) bod dQ dimenzionálnı́ oblasti Z = dj=1 [aj , bj ]; aj < bj , j = 1, 2, . . . , d, tedy xj ∈ R, xj ∈ [aj , bj ], j = 1, 2, . . . , d. Protějšı́m bodem x̆ bodu x vzhledem k oblasti Z budeme nazývat bod x̆ = (x˘1 , x˘2 , . . . , x˘d ), když x˘j je protějšı́ čı́slo čı́sla xj v intervalu [aj , bj ], ∀j, 1 ≤ j ≤ d. Protějšı́ množinou OM množiny M vzhledem k oblasti Z budeme nazývat množinu protějšı́ch bodů všech bodů množiny M vzhledem k oblasti Z. 64 Popisovaná modifikace diferenciálnı́ evoluce ODE je v pseudokódu zapsána v Algoritmu 9. Algoritmus ODE [44] pracuje podobně jako algoritmus DE. Jen s tı́m rozdı́lem, že po vytvořenı́ počátečnı́ generace P0 populace se vytvořı́ jejı́ protějšı́ množina OP0 vzhledem k oblasti S a pro definitivnı́ počátečnı́ generaci populace P se použije N nejlepšı́ch z 2N bodů sjednocenı́ množin P0 a OP0 . Podobně se provede prověřenı́ protějšı́ch bodů po vytvořenı́ každé dalšı́ generace populace P s pravděpodobnostı́ Jr , tentokrát však vzhledem k dynamické oblasti, v nı́ž se nacházı́ body aktuálnı́ generace populace P . Tato oblast se generuje jako nejmenšı́ d-dimenzionálnı́ kvádr v němž ležı́ body aktuálnı́ generace populace P . Jr je vstupnı́ parametr algoritmu a jeho autory doporučovaná hodnota je Jr = 0.3. Na základě experimentálnı́ch porovnánı́ Rahnamayan, Tizhoosh a Salama v práci [44] vyslovili závěr, že algoritmus ODE je vhodnějšı́ pro řešenı́ optimalizačnı́ch problémů vyššı́ch dimenzı́. Celkový závěr uvedené práce je konstatovánı́, že ODE je na autory použité sadě testovacı́ch problémů efektivnějšı́ nebo alespoň stejně efektivnı́ jako DE. Z výsledků práce [70] je ale patrné, že aplikacı́ mechanismu OBL na zde testované adaptivnı́ verze diferenciálnı́ evoluce se jejich efektivita nezvýšı́. 65 Algoritmus 9 ODE 1: vygeneruj počátečnı́ generaci P0 = (x1 , x2 , . . . , xN ) populace P ; 2: vypočı́tej hodnotu účelové funkce ve všech bodech generace P0 ; 3: vygeneruj protějšı́ množinu OP0 k množině bodů P0 vzhledem k oblasti S; 4: vypočı́tej hodnoty účelové funkce ve všech bodech množiny OP0 ; 5: vyber N nejlepšı́ch bodů z P0 ∪ OP0 a vytvoř tak definitivnı́ počátečnı́ generaci P0 populace P ; 6: g=0; 7: repeat 8: Qg = Pg ; 9: for i = 1 to N do 10: vytvoř pokusný bod y k bodu xi ; 11: vypočı́tej hodnotu účelové funkce v bodě y; 12: if f (y) ≤ f (xi ) then 13: 14: do Qg vlož na mı́sto bodu xi bod y; end if 15: end for 16: Pg+1 = Qg ; 17: g=g+1; 18: if rand(0, 1) < Jr then 19: vytvoř protějšı́ množinu OPg k množině bodů Pg ; 20: nová Pg je množina N nejlepšı́ch bodů Pg ∪ OPg ; 21: 22: end if until ukončovacı́ podmı́nka; 66 8 Konvergence algoritmu diferenciálnı́ evoluce Konvergencı́ algoritmu DE se rozumı́ jeho přibližovánı́ se k řešenı́ při běhu pro konkrétnı́ optimalizačnı́ problém, tedy podoba závislosti chyby řešenı́ na čase. Čas se v tomto přı́padě nejčastěji udává v jednotkách počtu výpočtů optimalizované účelové funkce. Prvnı́m z důvodů pro výběr této jednotky k měřenı́ času v oblasti optimalizačnı́ch algoritmů je častá jednoduchost těchto algoritmů a s tı́m souvisejı́cı́ fakt, že výpočet hodnoty účelové funkce pak bývá jednou z časově nejnáročnějšı́ch operacı́ optimalizačnı́ho algoritmu. Druhým důvodem pro výběr této jednotky pro měřenı́ času je potřeba možnosti porovnánı́ optimalizačnı́ch algoritmů běžı́cı́ch na různých počı́tačı́ch, přı́padně v jiných prostředı́ch. Konvergencı́ algoritmu DE se ale také rozumı́ tzv. teoretická konvergence algoritmu. Tento termı́n popisuje fakt, kdy za předpokladu nekonečného času poskytnutého výpočtu algoritmu, tedy nekonečného počtu možných provedenı́ výpočtu optimalizované funkce, neboli nekonečného počtu G vytvořených generacı́ populace P se nalezené řešenı́ xG daného optimalizačnı́ho problému blı́žı́ skutečnému bodu globálnı́ho minima x∗ optimalizované účelové funkce f s pravděpodobnostı́ 1. lim P (xG → x∗ ) = 1, G→∞ (34) xG je řešenı́ algoritmu v G-té generaci populace P . S konvergencı́ DE, tak jako i jiných evolučnı́ch algoritmů, úzce souvisı́ jevy stagnace a předčasná konvergence. Tyto dva pojmy se v pracech týkajı́cı́ch se evolučnı́ch algorimů běžně použı́vajı́, přestože jejich význam nebyl přesně stanoven. V oblasti teoretického výzkumu algoritmu diferenciálnı́ evoluce se také často zmiňuje pojem diverzita populace a s nı́ souvisejı́cı́ 67 pojmy populačnı́ průměr a populačnı́ rozptyl [75]. Populace bodů v DE je množina d-rozměrných vektorů. Populace se vyvı́jı́ v každém z d rozměrů nezávisle na ostatnı́ch rozměrech, proto je možné uvažovat pouze jediný z rozměrů a populaci vnı́mat jako jednorozměrnou náhodnou veličinu. Pak lze uvažovat i populačnı́ průměr a populačnı́ rozptyl. Pojem diverzita populace pak souvisı́ s populačnı́m rozptylem, se snižujı́cı́m se populačnı́m rozptylem se snižuje diverzita populace a naopak. Pojmy stagnace a předčasná konvergence se nejčastěji použı́vajı́ v následujı́cı́m významu. Pojem stagnace se pojı́ s výpočtem evolučnı́ho algoritmu pro konkrétnı́ optimalizačnı́ problém a popisuje situaci, kdy se populace bodů neblı́žı́ (nekonverguje) k žádnému bodu, populace tedy neztratila diverzitu, ale nijak se dál nevyvı́jı́. Tzn. existuje G-tá generace PG populace P a platı́, že každá z generacı́ PG+1 , PG+2 , PG+3 , . . . populace P následujı́cı́ch po G-té generaci PG je s generacı́ PG totožná. Riziko nastoupenı́ tohoto jevu při běhu DE ovlivňuje spousta faktorů. Jsou to hodnoty řı́dı́cı́ch parametrů DE, tedy N , F , CR, použitá strategie (kombinace mutace a křı́ženı́), ale i tvar účelové funce f a aktuálnı́ složenı́ populace. Účelová funkce je však při řešenı́ konkrétnı́ho optimalizačnı́ho problému dána a aktuálnı́ složenı́ populace velmi závisı́ na náhodě. Uživatel je tedy schopen řı́dit pouze výběr strategie a hodnoty parametrů N , F a CR. Uvažujme zde nastavenı́ DE s DE-strategiı́ DE/rand/1/bin. Nastavenı́m vhodné, tj. dostatečně vysoké, hodnoty parametru N lze stagnaci, jak v [21] uvádějı́ Lampinen a Zelinka, úspěšně předcházet. Nastoupenı́ tohoto jevu totiž do značné mı́ry souvisı́ s počtem všech možných různých pokusných bodů y, které lze k bodu xi vytvořit. Tento počet zase velmi úzce souvisı́ s počtem bodů v populaci. Čı́m menšı́ je hodnota parametru N , tı́m většı́ je riziko stagnace algoritmu DE. V souvislosti s možnostı́ objevenı́ se jevu stagnace se také nedoporučuje 68 volit hodnotu parametru mutace F rovnu 1, hodnotu parametru křı́ženı́ CR se doporučuje volit různou od hodnot 0 a 1 [21]. Totiž, při nastavenı́ CR = 0 lze z každé náhodně vybrané trojice bodů populace r 1 , r 2 , r 3 k bodu xi vytvořit pouze d různých pokusných bodů. Při nastavenı́ CR = 1 se počet různých pokusných bodů y vytvořených k bodu xi pomocı́ vybrané trojice r 1 , r 2 a r 3 dokonce rovná 1. Nastavenı́ F = 1 (opět za předpokladu nastavenı́ DE s DE-strategiı́ DE/rand/1/bin) také snižuje počet možných různých pokusných bodů y k bodu xi v aktuálnı́ populaci. Představme si situaci, že se k bodu xi jako r 1 , r 2 , r 3 poprvé vybere uspořádaná trojice bodů (xA , xB , xC ) a jindy uspořádaná trojice bodů (xB , xA , xC ). Pak v přı́padě, že F = 1, platı́ xA + F (xB − xC ) = xB + F (xA − xC ) a tedy dva různě vytvořené pokusné body se rovnajı́. Z výše uvedeného plyne, že nastavenı́ F = 1 se z hlediska stagnace nedoporučuje, protože také snižuje počet všech možných různých pokusných bodů y, které lze k danému bodu xi vytvořit. Pojem předčasná konvergence se použı́vá pro jev, který je charakterizován tı́m, že populace ztratila diverzitu a konverguje (blı́žı́ se) k bodu lokálnı́ho optima, nebo k jinému bodu, který nenı́ globálnı́m optimem. Na tomto mı́stě je zapotřebı́ zmı́nit, že důkaz teoretické konvergence algoritmu diferenciálnı́ evoluce zatı́m v literatuře nebyl předložen. Co se týká důkazu teoretické konvergence jiných stochastických optimalizačnı́ch algoritmů, tak např. v [65] Mišı́k předložil důkaz teoretické konvergence algoritmu CRS se soutěžı́cı́mi heuristikami. Uvažujme algoritmus slepého náhodného prohledávánı́, jednoduchou úvahou lze ukázat, že se také jedná o teoreticky konvergentnı́ optimalizačnı́ algoritmus. Otázkou však zůstává to, jak důležitá je existence formálnı́ho důkazu konvergence optimalizačnı́ho algoritmu pro jeho praktické využitı́. Vezměme tedy např. algoritmus slepého 69 náhodného prohledávánı́, který je teoreticky konvergentnı́, tento fakt však nijak nezvyšuje efektivitu tohoto algoritmu při jeho praktickém použitı́ pro konkrétnı́ optimalizačnı́ problém. 70 9 Porovnávánı́ efektivity algoritmů, sady testovacı́ch problémů Podle tzv. No Free Lunch“ teorému [72] neexistuje univerzálně nejlepšı́ op” timalizačnı́ algoritmus. Tzn., neexistuje optimalizačnı́ algotimus, který by v porovnánı́ s ostatnı́mi pracoval nejefektivněji při řešenı́ jakéhokoli optimalizačnı́ho problému. I tento fakt vede k neustálému zdokonalovánı́ existujı́cı́ch optimalizačnı́ch algoritmů a vývoji dalšı́ch nových. Protože existuje spousta optimalizačnı́ch algoritmů a stále vznikajı́ dalšı́, existuje i potřeba je porovnávat, resp. porovnávat jejich efektivitu. K porovnávánı́ efektivity optimalizačnı́ch algoritmů se využı́vajı́ testovacı́ problémy, častěji sady takovýchto testovacı́ch problémů. Sadou testovacı́ch problémů je množina optimalizačnı́ch problémů, u kterých je známo řešenı́. Pro každý z množiny optimalizačnı́ch problémů je definována účelová funkce f , drozměrná prohledávaná oblast S a bod x∗ , který je bodem globálnı́ho minima účelové funkce f v oblasti S. Testovacı́ problémy, resp. sady testovacı́ch problémů se pak využı́vajı́ tak, že všechny porovnávané algoritmy necháme po řadě řešit všechny testovacı́ problémy, zpravidla v několika úrovnı́ch dimenze. Testované algoritmy jsou algoritmy stochastické, proto každý z porovnávaných algoritmů necháme každý z testovacı́ch optimalizačnı́ch problémů řešit n-krát. Poté přicházı́ na řadu statistické porovnánı́ dosažených výsledků jednotlivých algoritmů pro každý z testovacı́ch problémů. Experimentálnı́ porovnánı́ dvou nebo vı́ce optimalizačnı́ch algoritmů se nejčastěji provádı́ na některé z širšı́ komunitou uznávaných testovacı́ch sad optimalizačnı́ch problémů. V každé z testovacı́ch sad bývajı́ obsaženy různě složité optimalizačnı́ problémy, a to jak z hlediska modality účelové funkce 71 f (unimodálnı́ i multimodálnı́), tak i z hlediska jejı́ separability (separabilnı́ i neseparabilnı́). Unimodálnı́ funkcı́ se rozumı́ funkce f , která má v prohledávané oblasti S jediné lokálnı́ minimum a to je tedy i globálnı́m minimem. Multimodálnı́ funkcı́ se rozumı́ funkce, která má v prohledávané oblasti vı́ce než jedno lokálnı́ minimum. Funkce f je separabilnı́, když existujı́ funkce f1 , f2 , . . . , fd a platı́: f (x) = f (x1 , x2 , . . . , xd ) = d X fj (xj ). (35) j=1 V opačném přı́padě se jedná o funkci neseparabilnı́. Jedna z dřı́ve často využı́vaných testovacı́ch sad optimalizačnı́ch problémů sestává z šesti testovacı́ch problémů. Jedná se o optimalizačnı́ problémy, které řešı́ optimalizačnı́ problém s účelovými funkcemi známými pod jmény De Jong, Ackley, Griewangk, Rastrigin, Schwefel, Rosenbrock. Uvedené optimalizačnı́ problémy jsou definovány následovně (účelová funkce f , prohledávaná oblast S, bod globálnı́ho minima x∗ , hodnota účelové funkce v bodě globálnı́ho minima f (x∗ )): • Prvnı́ De Jongova funkce (unimodálnı́, separabilnı́) f (x) = d X x2j (36) j=1 xj ∈ [−5.12, 5.12], x∗ = (0, 0, . . . , 0), f (x∗ ) = 0 • Ackleyho funkce (multimodálnı́, neseparabilnı́) v u d u1 X f (x) = −20 exp −0.2t x2j − d j=1 72 − exp d 1X d cos 2πxj + 20 + exp(1) (37) j=1 xj ∈ [−30, 30], x∗ = (0, 0, . . . , 0), f (x∗ ) = 0 • Griewankova funkce (multimodálnı́, neseparabilnı́) µ ¶ d d X Y x2j xj f (x) = − cos √ +1 4000 j j=1 (38) j=1 xj ∈ [−400, 400], x∗ = (0, 0, . . . , 0), f (x∗ ) = 0 • Rastriginova funkce (multimodálnı́, separabilnı́) f (x) = 10d + d X [x2j − 10 cos (2πxj )] (39) j=1 xj ∈ [−5.12, 5.12], x∗ = (0, 0, . . . , 0), f (x∗ ) = 0 • Rosenbrockova funkce (unimodálnı́, neseparabilnı́) f (x) = d−1 X [100(x2j − xj+1 )2 + (1 − xj )2 ] (40) j=1 xj ∈ [−2048, 2048], x∗ = (1, 1, . . . , 1), f (x∗ ) = 0 • Schwefelova funkce (multimodálnı́, separabilnı́) f (x) = − d X q xj sin j=1 xj ∈ [−500, 500], x∗ = (s, s, . . . , s), . s = 420.9687, f (x∗ ) = −418.982887 d 73 |xj | (41) 60 f(x) 40 20 0 5 5 0 0 −5 x −5 2 x1 Obrázek 6: Část grafu Prvnı́ De Jongovy funkce, d = 2 25 f(x) 20 15 10 5 0 30 30 20 20 10 x 10 0 0 2 x1 Obrázek 7: Část grafu Ackleyho funkce, d = 2 74 2.5 2 f(x) 1.5 1 0.5 0 20 10 0 x 20 15 10 5 0 x1 2 Obrázek 8: Část grafu Griewankovy funkce, d = 2 80 f(x) 60 40 20 0 4 2 x2 0 1 0 2 3 4 x1 Obrázek 9: Část grafu Rastriginovy funkce, d = 2 75 5 f(x) 1500 1000 500 0 2 1.5 1 0.5 0 0 1 0.5 x x2 1.5 1 Obrázek 10: Část grafu Rosenbrockovy funkce, d = 2 Obrázek 11: Část grafu Schwefelovy funkce, d = 2 76 2 Na obrázcı́ch 6 až 11 jsou zobrazeny části grafů funkcı́ uvedených šesti optimalizačnı́ch problémů pro d = 2 v části prohledávané oblasti S. Dalšı́ často využı́vanou sadou testovacı́ch problémů je sada navržená pro mezinárodnı́ soutěž CEC2005 [51]. Tato sada, poněkud obsáhlejšı́ než prvnı́ zmı́něná, zahrnuje 25 různě složitých testovacı́ch problémů. Provedenı́ testů na této sadě problémů je v současné době často jednou z podmı́nek vydánı́ článku zabývajı́cı́ho se optimalizačnı́mi algoritmy ve světových vědeckých časopisech. Sada testovacı́ch problémů navržená pro soutěž CEC2013 [68] obsahuje jiných 28 testovacı́ch problémů. Sada testovacı́ch problémů navržená pro soutěž CEC2014 [23] obsahuje 30 různých testovacı́ch problémů. Lze očekávat, že testovacı́ sada navržená pro soutěž CEC2013 přı́p. sada navržená pro soutěž CEC2014 brzy v požadavcı́ch světových vědeckých časopisů nahradı́ testovacı́ sadu navrženou pro mezinárodnı́ soutěž CEC2005. 77 10 Optimalizačnı́ problémy s vázanými extrémy Algoritmus diferenciálnı́ evoluce byl původně navržen k řešenı́ optimalizačnı́ch problémů, kde jediným omezenı́m pro hledaný bod jsou hranice spojité oblasti S, v nı́ž se optimum hledá. Od doby zrodu tohoto algoritmu se ale objevilo i několik jeho modifikacı́ pro optimalizačnı́ problémy s vázanými extrémy. Jedná se o algoritmy řešı́cı́ optimalizačnı́ problém v následujı́cı́m tvaru [29]: Mějme funkci f : S → R, S ⊂ Rd (42) x ∈ S, x = (x1 , x2 , . . . , xd ), f (x) ∈ R. (43) kde Úkolem je nalézt globálnı́ minimum funkce f v oblasti S s podmı́nkou, že platı́ gi (x) ≤ 0, i = 1, . . . , r (44) hj (x) = 0, j = r + 1, . . . , m. Libovolné řešenı́ x ∈ S lze označit jako přijatelné, jestliže gi (x) ≤ 0, pro i = 1, . . . , r, a |hj (x)| − ε ≤ 0, pro j = r + 1, . . . , m a ε > 0. V mnoha algoritmech řešı́cı́ch optimalizačnı́ problém ve tvaru popsaném vztahy (42)-(44) se využı́vá funkce v̄ nazývaná průměrné porušenı́ podmı́nek, která je pro libovolný bod x oblasti S definována takto: Pr Pm i=1 Gi (x) + j=r+1 Hj (x) v̄(x) = m kde gi (x) Gi (x) = 0 78 když gi (x) > 0 když gi (x) ≤ 0 (45) (46) |hj (x)| Hj (x) = 0 když |hj (x)| − ε > 0 když |hj (x)| − ε ≤ 0 (47) Podle Takahamy a Sakaie [9] lze algoritmy pro optimalizaci problémů s vázanými extrémy rozdělit následujı́cı́m způsobem podle toho, jak se v nich pracuje s podmı́nkami pro extrémy. • Algoritmy, v nichž se omezenı́ na extrémy použı́vajı́ pouze k zjištěnı́, zda bod je či nenı́ přijatelný – v těchto algoritmech začı́ná vyhledávacı́ proces s jednı́m nebo vı́ce přijatelnými body a pokračuje v oblasti přijatelných bodů. Když tedy nový, algoritmem nagenerovaný bod, nenı́ přijatelný, je vyřazen z vyhledávacı́ho procesu a je nagenerován dalšı́ nový bod. U těchto algoritmů bývá problémem najı́t počátečnı́ přijatelné body. • Algoritmy, v nichž je průměrné porušenı́ podmı́nek v̄ kombinováno s účelovou funkcı́ f – sem patřı́ např. algoritmy využı́vajı́cı́ penalizačnı́ funkci. V takových algoritmech je definována jakási rozšı́řená účelová funkce, tj. účelová funkce, do které je jako penalizace zahrnuto i průměrné porušenı́ podmı́nek. U těchto algoritmů bývá problémem stanovit vhodnou hodnotu penalizačnı́ho koeficientu a nastavit tak vhodnou mı́ru penalizace. • Algoritmy, v nichž jsou průměrné porušenı́ podmı́nek v̄ a účelová funkce f optimalizovány samostatně – v těchto algoritmech jsou obě zmı́něné funkce optimalizovány v lexikografickém pořadı́, ve kterém průměrné porušenı́ podmı́nek v̄ předcházı́ účelovou funkci f . 79 • Algoritmy, v nichž jsou podmı́nky pro extrémy a účelová funkce f optimalizovány tak, jako by se jednalo o optimalizačnı́ problém s vı́ce účelovými funkcemi. Podobně jako existujı́ testovacı́ sady pro optimalizačnı́ algoritmy řešı́cı́ optimalizačnı́ problém definovaných v kapitole 3, tak také existujı́ sady testovacı́ch problémů pro optimalizačnı́ algoritmy řešı́cı́ optimalizačnı́ problém s vázanými extrémy. Takovouto testovacı́ sadou je např. sada problémů definovaná pro soutěž CEC2010 [29], která obsahuje 18 různých testovacı́ch problémů. 10.1 Některé mechasnismy pro algoritmy k optimalizaci problémů s vázanými extrémy V literatuře se objevili návrhy několika mechanismů k řešenı́ optimalizačnı́ch úloh s vázanými extrémy (vztahy (42)-(44)) a algoritmů na těchto mechanismech založených. Často použı́vaným mechanismem je penalizačnı́ funkce [14], Takahama a Sakai navrhli ε-constrained“ metodu [9, 52], Runarsson a Yao ” navrhli stochastic ranking“ metodu [46]. ” Při použitı́ mechanismu penalizačnı́ funkce se konstruuje nová účelová funkce f 0 na základě původnı́ účelové funkce f a penalizačnı́ funkce Pe takto: f 0 (x) = f (x) + Pe (dP (x, Fe )), (48) kde, dP je metrika a Fe je množina přijatelných řešenı́ daného optimalizačnı́ho problému, Pe je nezáporná rostoucı́ funkce taková, že P e(0) = 0. Problém optimalizace funkce f s vázanými extrémy se využitı́m mechanismu penalizačnı́ funkce stává optimalizačnı́m problémem funkce f 0 definovaným v kapitole 3 a lze jej řešit algoritmy navrženými k řešenı́ problémů tohoto 80 typu. Penalizačnı́ funkce se nejčastěji použı́vá ve tvaru váženého součtu všech dı́lčı́ch porušenı́ podmı́nek (44), tedy váženého součtu všech Gi (x), i = 1, . . . , r (46) a všech Hj (x), j = r + 1, . . . , m (47). Tato metoda je často použı́vanou metodou, jejı́ úspěch však velmi záležı́ na volbě tvaru metriky dP a penalizačnı́ funkce Pe . V práci publikované v knize [9] autoři Takahama a Sakai využı́vajı́ pojem porušenı́ podmı́nek pro bod x ∈ S (nenı́ zde použito průměrné porušenı́ podmı́nek v̄(x) zavedené v (45)-(47)) a uvádı́, že jej lze definovat bud’ jako maximum všech dı́lčı́ch porušenı́ nebo jako jejich součet. Dále budeme porušenı́ podmı́nek definované pro bod x v knize [9] značit φ(x). V práci je dále definováno ε-uspořádánı́ na množině uspořádaných dvojic (f (x), φ(x)) na základě lexikografického pořadı́, ve kterém porušenı́ podmı́nek φ předcházı́ účelovou funkci f . Platı́-li pro bod x, že jeho φ(x) je většı́ než 0, pak bod x nenı́ považován za přijatelný. Definice ε-uspořádánı́ předpokládá, že f1 , f2 a φ1 , φ2 jsou po řadě funkčnı́ hodnoty účelové funkce a hodnoty porušenı́ podmı́nek pro body x1 , x2 . Pak pro jakékoli ε, ε ≥ 0, jsou ε-uspořádánı́ <ε a ≤ε mezi (f1 , φ1 ) a (f2 , φ2 ) definovány následovně: f < f2 , když φ1 , φ2 ≤ ε 1 (f1 , φ1 ) <ε (f2 , φ2 ) ⇔ f1 < f2 , když φ1 = φ2 φ <φ , jinak 1 2 f ≤ f2 , 1 (f1 , φ1 ) ≤ε (f2 , φ2 ) ⇔ (49) když φ1 , φ2 ≤ ε f1 ≤ f2 , když φ1 = φ2 φ <φ , jinak 1 2 (50) V přı́padě, že ε = ∞, pak ε-uspořádánı́ <∞ a ≤∞ jsou ekvivalentnı́ uspořádánı́ < a ≤ na hodnotách účelové funkce. Když ε = 0, pak uspořádánı́ <0 a 81 ≤0 odpovı́dajı́ lexikografickému uspořádánı́, ve kterém porušenı́ podmı́nek φ předcházı́ účelovou funkci f . Využitı́ ε-constrained“ metody měnı́ optimalizačnı́ problém s vázaný” mi extrémy P r na problém P rε globálnı́ optimalizace definovaný v kapitole 3 (vztahy (1),(3),(2)) nahrazenı́m relace uspořádánı́ ≤ (přı́p. <) relacı́ uspořádánı́ ≤ε definovanou formulı́ (50) (přı́p. relacı́ <ε definovanou výrazem (49)). V práci [46] navrhli Runarsson a Yao stochastic ranking“ metodu. ” Tato metoda vycházı́ z analýzy mechanismu penalizačnı́ funkce a spočı́vá ve správném vyváženı́ důležitosti mezi účelovou funkcı́ f a průměrným porušenı́m podmı́nek v̄. Použitý evolučnı́ algoritmus (evolučnı́ strategie) stále udržuje body své populace setřı́děné od nejlepšı́ho k nejhoršı́mu. Při řešenı́ problému globálnı́ optimalizace (1)-(2) nenı́ problém setřı́děnı́ v populaci udržovat, v přı́padě optimalizačnı́ho problému s vázanými extrémy však je třeba rozhodnout, na základě které z funkcı́ se bude třı́děnı́ provádět. Přesněji, na základě hodnot které z funkcı́ (f či v̄) se dva body populace, u nichž je potřeba určit, který z nich je lepšı́ adept na řešenı́ problému, budou porovnávat. Mechanismus stochastic ranking“ využı́vá parametr pf , ” pravděpodobnost, že se dva sousednı́ body, nejedná-li se o dva přijatelné body, porovnávajı́ na základě hodnot účelové funkce f . Pravděpodobnost, že se takové dva sousednı́ body porovnávajı́ na základě průměrného porušenı́ podmı́nek je pak (1 − pf ). Jedná-li se o dva přijatelné body, porovnajı́ se na základě hodnot účelové funkce f . Uspořádánı́ bodů populace se v algoritmu udržuje pomocı́ autory navržené stochastické úpravy algoritmu bubble” sort“, viz [46]. Doporučené nastavenı́ parametru pf je pf ∈ (0.4, 0.5). 82 10.2 Algoritmy pro optimalizačnı́ problémy s vázanými extrémy založené na DE Nejčastěji použı́vanou metodou práce s problémy s vázanými extrémy při aplikaci algoritmu DE byla v prvnı́ch letech jeho existence penalizačnı́ funkce (popsaná v kapitole 10.1). Jednu z prvnı́ch modifikacı́ algoritmu DE pro problémy uvedeného typu navrhl Lampinen [20]. Tato modifikace algoritmu spočı́vala pouze v předefinovánı́ pravidla pro výběr z dvojice bodů aktuálnı́ bod xi a pokusný bod y do následujı́cı́ generace populace (4). Uvedený návrh se týká optimalizačnı́ch problémů, které majı́ extrémy vázány mnerovnostmi gj (x) ≤ 0, j = 1, . . . , m. Předefinované pravidlo vypadá následovně: xi,g+1 = y x i,g když ∀j ∈ {1, . . . , m} : gj (y) ≤ 0 ∧ gj (xi,g ) ≤ 0 ∧ f (y) ≤ f (x ) i,g nebo ∀j ∈ {1, . . . , m} : gj (y) ≤ 0 ∧ ∃k ∈ {1, . . . , m} : g (x ) > 0 k i,g nebo ∃j ∈ {1, . . . , m} : gj (y) > 0 ∧ ∀k ∈ {1, . . . , m} : g 0 (y) ≤ g 0 (x ) i,g k k jinak, (51) 83 kde gk0 (x) = max(gk (x), 0) pro k ∈ {1, . . . , m} a x ∈ S. Uvedené pravidlo tedy řı́ká, že bod xi je v následujı́cı́ generaci nahrazen pokusným bodem y pokud platı́ jedna z podmı́nek: • pro všechny nerovnosti gj platı́, že pokusný bod y i bod xi je splňujı́ a současně funkčnı́ hodnota v bodě y je lepšı́ než funkčnı́ hodnota v xi , • pokusný bod y všechny podmı́nky splňuje a existuje podmı́nka, kterou bod xi nesplňuje, • existuje podmı́nka, která je pro pokusný bod y porušena a současně pro všechny podmı́nky platı́, že pokud ji bod y porušuje, tak ne vı́ce než-li ji porušuje bod xi . • v ostatnı́ch přı́padech zůstává bod xi v populaci i pro dalšı́ generaci. Takahama a Sakai v [9] navrhli modifikaci algoritmu diferenciálnı́ evoluce nazvanou εDE. Tato modifikace DE je založena na ε-constrained“ metodě ” navržené taktéž v práci uvedené v knize [9], autoři v nı́ mı́sto průměrného porušenı́ podmı́nek v̄ použı́vajı́ porušenı́m podmı́nek φ. ε-constrained“ ” metoda je popsána v kapitole 10.1. Struktura varianty εDE diferenciálnı́ evoluce je v pseudokódu zapsána v Algoritmu 10. Autoři uvádějı́, že většinu problémů s vázanými extrémy lze algoritmem εDE řešit s konstantnı́m nastavenı́m, ε = 0, po celou délku jeho běhu. Problémy, jejichž extrémy jsou omezeny také rovnostmi, je však podle autorů výhodné řešit tak, že na začátku vyhledávacı́ho procesu je ε nastaveno na poměrně vysokou hodnotu a tato se postupně se zvyšujı́cı́m se časem běhu algoritmu snižuje až na 0. Navrženy byly statická a dynamická varianta tohoto nastavovánı́ parametru ε. Ve statickém nastavovánı́ se ε na začátku procesu nastavı́ na hodnotu φ(xθ ), kde bod xθ je θ-tý nejlepšı́ 84 Algoritmus 10 εDE 1: vygeneruj počátečnı́ generaci P0 = (x1 , x2 , . . . , xN ) populace P ; 2: vypočı́tej hodnotu účelové funkce ve všech bodech generace P0 ; 3: nastav počı́tadlo generacı́, g=0; 4: nastav počátečnı́ hodnotu ε, ε(0); 5: repeat 6: Qg = Pg ; 7: for i = 1 to N do 8: vytvoř pokusný bod y k bodu xi ; 9: vypočı́tej hodnoty f a φ v bodě y; 10: 11: 12: if (f (y), φ(y)) ≤ε (f (xi ), φ(xi )) then do Qg vlož na mı́sto bodu xi bod y; end if 13: end for 14: Pg+1 = Qg ; 15: g=g+1; 16: uprav hodnotu ε; 17: until ukončovacı́ podmı́nka; 85 prvek počátečnı́ populace, doporučené nastavenı́ je θ = 0.2N . V každé dalšı́ generaci, do dosaženı́ generace Gc , se pak ε upravı́ v závislosti na aktuálnı́m čase, od generace Gc je ε nastaveno na 0. Čas je zde vyjádřen počtem již vytvořených generacı́ populace (počı́tadlo generacı́ g). Statické nastavenı́ ε se řı́dı́ předpisem: εs (0) = φ(xθ ) εs (0)(1 − g/Gc )cp , 0 < g < Gc , εs (g) = 0, g ≥ Gc , (52) kde cp je vhodná konstanta. Dynamické nastavovánı́ ε se řı́dı́ velmi podobným předpisem [9], velikost ε zde však nezávisı́ pouze na aktuálnı́m čase běhu algoritmu, ale také na hodnotách porušenı́ φ bodů aktuálnı́ populace. V [3] navrhl Brest adaptivnı́ algoritmus ε-jDE, tento algoritmus je modifikacı́ algoritmu jDE (kap. 6.2) pro problémy s vázanými extrémy. V algoritmu se použı́vá ε-constrained“ metoda navržená v [9, 52], čili jakési řı́zenı́ ” stupně přı́snosti“ dodržovánı́ omezenı́ extrémů účelové funkce f . Velikost ” parametru ε je do dosaženı́ dané generace Gc (Gc je vstupnı́ parametr) v každé generaci upravována vzhledem k hodnotám průměrného porušenı́ podmı́nek v̄ bodů obsažených v aktuálnı́ generaci, po dosaženı́ generace Gc je hodnota ε nastavena na nulu. ε0 = 0 v0 = v̄(xθ ) γ1 vG−1 , když γ2 v̄(x ) < vG−1 , 0 < G < Gc β vG = v , jinak G−1 max{vG (1 − G/Gc )cp , εG−1 }, 0 < G < Gc , εG = 0, G≥G , c 86 (53) kde bod xθ je θ-tý nejlepšı́ prvek počátečnı́ populace, zde doporučované nastavenı́ je θ = 0.3N . Podobně, xβ je β-tý nejlepšı́ prvek aktuálnı́ populace a doporučená hodnota je β = 0.7N . Jak parametr cp , tak i proměnná vG sloužı́ k nastavovánı́ stupně přı́snosti“ dodržovánı́ omezenı́ extrémů ” účelové funkce. Parametry γ1 < 1 a γ2 > 1 pomáhajı́ adaptivně nastavovat proměnnou vG . Bod xi je v algoritmu ε-jDE při operaci výběr nahrazen bodem y, jestliže platı́ v̄(y) < v̄(xi ) nebo (f (y) < f (xi ) ∧ v̄(xi ) = 0 ∧ v̄(y) = 0), (54) jinak prvkem následujı́cı́ populace zůstává bod xi . V [28] Mallipeddi a Suganthan navrhli algoritmus ECHT-DE pro řešenı́ optimalizačnı́ch problémů s vázanými extrémy, který je založen na využitı́ čtyř různých dřı́ve navržených přı́stupů, mezi nimi i adaptivnı́ úpravu penalizačnı́ho mechanismu a výše popsané mechanismy stochastic ranking“ ” a ε-constrained“ metodu. Každý ze čtyř použitých přı́stupů je v algoritmu ” ECHT-DE aplikován na samostatnou populaci bodů. Při výběru bodu do následujı́cı́ generace je bod xi aktuálnı́ generace dané populace porovnáván nejen s k němu vytvořeným (aplikacı́ přı́slušného přı́stupu) pokusným bodem y, ale i s náhodně vybraným potomkem z každé z ostatnı́ch třech populacı́ přı́slušejı́cı́ch ke zbývajı́cı́m třem aplikovaným přı́stupům. 87 11 Původnı́ výsledky 11.1 Porovnánı́ EPSDE a soutěživé DE Porovnánı́ algoritmů EPSDE (kap. 6.6) a soutěživé DE - varianty b6e6rl (kap. 6.3) naleznete v práci [37]. Porovnánı́ efektivity těchto dvou algoritmů bylo prevedeno na základě porovnánı́ čtyř pomocných“ algoritmů, které ” vznikly jako kombinace částı́ původnı́ch algoritmů EPSDE a b6e6rl. Oba zkoumané algoritmy, EPSDE i soutěživou DE, lze logicky rozdělit na dvě části, systém adaptace parametrů a množinu použitých nastavenı́ DE. Adaptivnı́ přı́stup v EPSDE spočı́vá v přı́slušnosti trojice parametrů DE ke každému bodu a tato trojice parametrů bud’ s bodem přežı́vá, nebo je generována nová trojice parametrů a to v přı́padě neúspěchu stávajı́cı́ trojice. Adaptivnı́ přı́stup v soutěživé DE spočı́vá v soutěži použitých nastavenı́ DE, podle četnostı́ úspěchů použitých nastavenı́ DE v předchozı́ fázi běhu algoritmu se upravujı́ pravděpodobnosti jejich dalšı́ho použitı́. V každém z porovnávaných algoritmů je použita konkrétnı́ množina DE nastavenı́. Kombinacı́ dvou částı́ (systém adaptace, množina DE nastavenı́) obou algoritmů vznikly pomocné algoritmy: C-C, E-E, C-E, E-C. Prvnı́ pı́smeno ve zkratce označuje, který systém adaptace byl v algoritmu použit a pı́smeno za pomlčkou označuje, která množina nastavenı́ byla v algoritmu použita. Algoritmus C-C je tedy původnı́ b6e6rl a algoritmus E-E je původnı́ EPSDE. C-E je algoritmus, ve kterém spolu soutěžı́ všechna možná nastavenı́ DE z EPSDE, tedy 114 možných nastavenı́ algoritmu DE, H = 114. Nastavenı́ byla odvozena z množin možných hodnot parametrů v ESPDE. Algoritmus E-C je algoritmus se systémem adaptace z EPSDE a množina strategiı́ v tomto algoritmu obsahuje pouze DE-strategie DE/randrl/1/bin a DE/randrl/1/exp, které jsou jedinými dvěma strategiemi použitými v b6e6rl. 88 Množina možných hodnot parametru F je rovna {0.5, 0.8} a množina možných hodnot parametru CR zde má dvě části, jednu pro DE-strategii DE/ randrl/1/bin, množinu {0, 0.5, 1} a druhou pro DE-strategii DE/randrl/1/ exp, množinu {CR1, CR2, CR3}. K porovnánı́ efektivity těchto čtyř algoritmů bylo využito sady šesti základnı́ch testovacı́ch problémů (viz kap. 9). Testy byly provedeny ve dvou úrovnı́ch dimenze d testovacı́ch problémů, d = 30 a d = 100, velikost populace byla nastavena na N = 60. Ukončovacı́ podmı́nka byla nastavena následovně: fmax − fmin < εf nebo nfe > d × maxevals , (55) kde fmax − fmin je rozdı́l mezi hodnotou funkce v nejlepšı́m a nejhoršı́m bodě aktuálnı́ generace populace P , nfe je aktuálnı́ počet výpočtů účelové funkce, jı́mž se zde měřı́ délka výpočtu, εf a maxevals jsou konstanty, εf = 1 × 10−6 a maxevals = 2 × 104 . Pro každý testovaný algoritmus a pro každý testovacı́ problém bylo provedeno 100 nezávislých běhů, výstupem každého běhu byl počet nfe vyhodnocenı́ účelové funkce f , tedy délka výpočtu a minimálnı́ funkčnı́ hodnota, jı́ž bylo v běhu dosaženo, ftmin . Hodnota ftmin byla považována za správnou, když se nelišila od známého řešenı́ problému vı́ce než o 1 × 10−4 . Spolehlivost algoritmu R pro daný testovacı́ problém jsme pak vyjádřili jako procentuálnı́ podı́l běhů se správným řešenı́m ze všech provedených běhů algoritmu pro daný testovacı́ problém. V tomto přı́padě se R přı́mo rovnalo počtu běhů se správným řešenı́m, provedených běhů algoritmu bylo vždy 100. Pro d = 30 jsou průměrné hodnoty nfe a spolehlivost R uvedeny v tabulce 2 a pro d = 100 v tabulkách 3 a 4. Výsledky statistického porovnánı́ dvojic pomocných algoritmů zachycujı́ tabulky 5, 6, 7. V tabulce 5 jsou znázorněny výsledky statistického 89 Tabulka 2: Průměrné délky běhů nfe a spolehlivost R algoritmů C-C, E-E, C-E, E-C pro d = 30 Ackl nfe Dejo1 R nfe R Griew nfe Rast R nfe Rosen R nfe Schw R nfe R C-C 71297 100 37472 100 51934 100 73402 100 147185 100 64243 100 E-E 44899 100 23818 100 32438 100 251678 100 163082 100 74555 99 E-C 72894 100 40142 100 56475 94 112639 100 153244 99 76888 100 C-E 54967 100 28793 100 40669 97 111616 100 155491 99 62018 100 Tabulka 3: Průměrné délky běhů nfe a spolehlivost R algoritmů C-C, E-E, C-E, E-C pro d = 100 (Ackleyho, Prvnı́ De Jongova a Griewankova funkce) Ackl Dejo1 Griew nfe R nfe R nfe R C-C 258244 100 145163 100 178750 99 E-E 102604 89 61112 100 76005 82 E-C 225699 100 128734 100 159421 95 C-E 115202 100 67567 100 83472 93 90 Tabulka 4: Průměrné délky běhů nfe a spolehlivost R algoritmů C-C, E-E, C-E, E-C pro d = 100 (Rastriginova, Rosenbrockova a Schwefelova funkce) Rast Rosen Schw nfe R nfe R nfe R C-C 271464 100 910790 97 248053 98 E-E 2000040 0 1548091 82 612686 98 E-C 410656 100 852464 91 293149 98 C-E 1996477 6 1286119 76 232939 100 porovnánı́ původnı́ch algoritmů C-C a E-E, v tabulce 6 výsledky porovnánı́ pomocných algoritmů se stejnou množinou nastavenı́ DE, tedy algoritmů CC a E-C a také algoritmů E-E a C-E. V tabulce 7 jsou znázorněny výsledky statistického porovnánı́ pomocných algoritmů se stejným systémem adaptace a různou množinou nastavenı́ DE, tedy dvojice algoritmů C-C a C-E a dvojice algoritmů E-E a E-C. Shoda výpočetnı́ náročnosti dvou algoritmů byla testována Wilcoxonovým dvouvýběrovým testem. Shoda spolehlivosti dvou algoritmů byla otestována Fisherovým exaktnı́m testem. Symbol +“ ” v tabulkách výsledků statistických testů znamená, že prvnı́ z uvedených algoritmů je významně lepšı́ než druhý uvedený. Symbol −“ v těchto ta” bulkách znamená, že prvnı́ z uvedených algoritmů je významně horšı́ než druhý uvedený algoritmus a symbol =“ znamená, že v daném přı́padě ne” byly porovnávané algoritmy významně statisticky odlišné. Všechny testy byly provedeny na hladině významnosti 0.05. Z tab. 5 je zřejmé, že algoritmus b6e6rl je na použité testovacı́ sadě spolehlivějšı́ než algoritmus EPSDE (d = 100). 91 Tabulka 5: Porovnánı́ původnı́ch algoritmů C-C (b6e6rl) a E-E (EPSDE), výsledky statistických testů Ackl Dejo1 Griew Rast Rosen Schw d = 30 Fisher R = = = = = = Wilcoxon nfe − − − + + + + = + + + = − − − + + + d = 100 Fisher R Wilcoxon nfe Tabulka 6: Porovnánı́ pomocných algoritmů s různými adaptivnı́mi přı́stupy a stejnou množinou možných nastavenı́ DE, výsledky statistických testů Ackl Dejo1 Griew Rast Rosen Schw C-C a E-C d = 30 Fisher R = = + = = = Wilcoxon nfe + + + + + + = = = = = = − − − + − + Fisher R = = = = = = Wilcoxon nfe + + + − − − − = − − = = + + + − − − d = 100 Fisher R Wilcoxon nfe E-E a C-E d = 30 d = 100 Fisher R Wilcoxon nfe 92 Tabulka 7: Porovnánı́ pomocných algoritmů se stejným adaptivnı́m přı́stupem a různými množinami možných nastavenı́ DE, výsledky statistických testů Ackl Dejo1 Griew Rast Rosen Schw C-C a C-E D = 30 Fisher R = = = = = = − − − + + − = = = + + = − − − + + − Fisher R = = + = = = Wilcoxon nfe + + + − − + − = − − = = + + + − − − Wilcoxon nfe d = 100 Fisher R Wilcoxon nfe E-E a E-C d = 30 d = 100 Fisher R Wilcoxon nfe Tabulka 6 ukazuje, že s množinou možných nastavenı́ DE využı́vaných v b6e6rl je v dimenzi d = 30 z hlediska rychlosti výpočtu výhodnějšı́ použı́t mechanismus adaptace parametrů DE z téhož algoritmu. Z této tabulky lze také vyčı́st, že s množinou možných nastavenı́ DE využı́vaných v algoritmu EPSDE by bylo výhodnějšı́, z hlediska spolehlivosti algoritmu použı́t systém adaptace z b6e6rl. Z tab. 7 je zřejmé, že systém adaptace parametrů navržený pro algoritmus b6e6rl využitý společně s množinou možných nastavenı́ parametrů DE původně navrženou pro tento algoritmus je v porovnánı́ s kombinacı́ tohoto 93 systému adaptace s množinou možných nastavenı́ parametrů DE využı́vanou v algoritmu EPSDE sice pro některé optimalizačnı́ problémy pomalejšı́, ale o něco spolehlivějšı́. Z druhé části této tabulky je patrné, že při využitı́ algoritmu EPSDE dostaneme záměnou možných nastavenı́ DE v něm použitých za možná nastavenı́ DE z b6e6rl algoritmus spolehlivějšı́. Porovnáváme-li tedy algoritmy EPSDE a b6e6rl, můžeme řı́ct, že algoritmus b6e6rl je spolehlivějšı́ nejen dı́ky využitým nastavenı́m DE, ale také dı́ky systému adaptace, který je v něm použit. 94 11.2 Efektivita adaptivnı́ch verzı́ DE, aplikace ODE na adaptivnı́ verze DE V [69] a [70] byly porovnány adaptivnı́ verze diferenciálnı́ evoluce jDE, soutěživá DE, JADE, SaDE, EPSDE a CoDE. Poslednı́ zmı́něný algoritmus byl do porovnánı́ zařazen ve dvou verzı́ch a to z důvodu jeho ne zcela jasné charakterizace v práci, která jej představovala [71]. Jeho verze, popsaná v kapitole 6.7, je v tabulkách 8 až 13 zachycujı́cı́ch výsledky těchto testů označována CoDE2. Druhá verze algoritmu CoDE zahrnutá do porovnánı́, dále v textu označovaná CoDE0, se od CoDE2 lišı́ pouze využitı́m binomického křı́ženı́ spolu s mutacı́ current-to-rand/1, tedy mı́sto DE-strategie DE/current-to-rand/1/-, použité v CoDE2, je v CoDE0 použita DE/currentto-rand/1/bin. Porovnánı́ adaptivnı́ch verzı́ proběhlo na sadě šesti základnı́ch testovacı́ch funkcı́ (kap. 9), z nichž u testovacı́ch funkcı́ Prvnı́ De Jongova, Ackleyho, Griewankova a Rastriginova byla použita jejich posunutá varianta. V rámci práce [70] proběhly testy ve dvou dimenzı́ch d = 30 a d = 100, v práci [69] byly algoritmy porovnány ve třech dimenzı́ch d = 10, d = 30 a d = 200. Parametry algoritmů byly nastaveny na doporučené hodnoty. Pro všechny testované algoritmy byla nastavena stejná velikost populace, N = 60, i stejná ukončovacı́ podmı́nka fmax − fmin < εf nebo nfe > d × maxevals , (56) kde fmax − fmin je rozdı́l funkčnı́ch hodnot v nejlepšı́m a nejhoršı́m bodě aktuálnı́ populace, nfe počet provedených výpočtů účelové funkce, εf a maxevals jsou vstupnı́ parametry, které byly v těchto experimentech nastaveny na hodnoty εf = 1 × 10−6 a maxevals = 2 × 104 . Ve všech testovaných dimenzı́ch, s vyjı́mkou dimenze d = 200, bylo pro každý algoritmus provedeno 95 100 nezávislých výpočtů. Pro dimenzi d = 200 bylo pro každý algoritmus provedeno 25 nezávislých výpočtů. Výstupy z každého běhu algoritmu byly: provedený počet výpočtů účelové funkce nfe a minimálnı́ hodnota účelové funkce v poslednı́ vytvořené generaci ftmin . Hodnota ftmin byla považována za správné řešenı́ problému, pokud se od známého řešenı́ nelišila o vı́ce než 1 × 10−4 ((ftmin − f (x∗ )) < 1 × 10−4 ). Spolehlivost R algoritmu je relativnı́ četnost běhů se správným řešenı́m. Výsledky testů provedených v rámci práce [69] pro dimenzi d = 10 jsou uvedeny v tabulkách 8 a 9, pro dimenzi d = 30 v tabulkách 10 a 11 a pro dimenzi d = 200 v tabulkách 12 a 13. Tabulky 14 a 15 výsledky těchto testů shrnujı́. Jsou zde uvedeny průměrné spolehlivosti a průměrné počty výpočtů funkce pro každý z testovaných algoritmů v každé z testovaných dimenzı́. Z tabulek lze také rychle vyčı́st pořadı́ úspěšnosti algoritmů jak podle průměrné spolehlivosti, tak podle průměrného počtu výpočtů optimalizované funkce, tedy podle rychlosti výpočtu, a to pro každou z testovaných dimenzı́. Z tabulek 14 a 15 je zřejmé, že z hlediska spolehlivosti mezi úspěšné algoritmy v tomto porovnánı́ patřı́ algoritmy CoDE a soutěživá DE. Zajı́má-li nás rychlost výpočtu, pak mezi úspěšné algoritmy můžeme řadit algoritmus JADE a znovu soutěživou DE. Modifikace algoritmu diferenciálnı́ evoluce ODE navržená v práci [44] a popsaná také v kapitole 7, je podle jejı́ch autorů Rahnamayana, Tizhooshe a Salamy efektivnějšı́ nebo alespoň stejně efektivnı́ jako původnı́ algoritmus DE. Tento fakt byl důvodem k průzkumu vlivu použitı́ mechanismu OBL, použitého v ODE, na efektivitu adaptivnı́ch verzı́ algoritmu diferenciálnı́ evoluce. Testy modifikacı́ adaptivnı́ch algoritmů jDE, soutěživá DE, JADE, SaDE, EPSDE a CoDE, které v sobě v porovnánı́ s původnı́m návrhem adaptace 96 Tabulka 8: Výsledky testů adaptivnı́ch variant DE na základnı́ testovacı́ sadě – průměrné délky běhů nfe, d = 10 Ackley Dejong1 Griewank Rastrigin Rosenbrock Schwefel jDE 48887 5526 19032 10357 56554 8557 SaDE 48521 4966 35194 14351 54790 10255 JADE 15041 3992 41123 12233 12643 10723 EPSDE 36410 5146 28961 14781 20775 9971 b6e6rl 18863 5210 18966 10640 27819 8648 CoDE2 77938 16328 61753 31670 49526 27189 CoDE0 63547 10473 49763 25650 39437 20207 Tabulka 9: Výsledky testů adaptivnı́ch variant DE na základnı́ testovacı́ sadě – spolehlivost R, d = 10 Ackley Dejong1 Griewank Rastrigin Rosenbrock Schwefel jDE 100 100 94 99 100 98 SaDE 100 100 95 99 98 100 JADE 100 100 90 99 98 53 EPSDE 100 100 100 99 100 96 b6e6rl 100 100 87 99 98 97 CoDE2 100 100 100 100 100 100 CoDE0 100 100 100 100 99 100 97 Tabulka 10: Výsledky testů adaptivnı́ch variant DE na základnı́ testovacı́ sadě – průměrné délky běhů nfe, d = 30 Ackley Dejong1 Griewank Rastrigin Rosenbrock Schwefel jDE 599967 25345 33682 58757 376445 43742 SaDE 600000 20947 28312 79901 241504 53004 JADE 299425 13405 31348 69612 77119 65743 EPSDE 600000 23818 32438 251678 163082 74555 b6e6rl 230179 37472 51934 73402 147185 64243 CoDE2 600000 158413 247159 385303 600000 276142 CoDE0 600000 47670 68010 268062 359860 149849 Tabulka 11: Výsledky testů adaptivnı́ch variant DE na základnı́ testovacı́ sadě – spolehlivost R, d = 30 Ackley Dejong1 Griewank Rastrigin Rosenbrock Schwefel jDE 0 100 96 100 96 100 SaDE 0 100 87 100 95 100 JADE 93 100 95 100 97 83 0 100 100 100 100 100 100 100 100 100 100 100 CoDE2 0 100 100 100 100 100 CoDE0 0 100 100 100 100 100 EPSDE b6e6rl 98 Tabulka 12: Výsledky testů adaptivnı́ch variant DE na základnı́ testovacı́ sadě – průměrné délky běhů nfe, d = 200 Ackley Dejong1 Griewank Rastrigin Rosenbrock Schwefel jDE 4000020 120338 142841 341263 3850013 235800 SaDE 4000020 168137 206618 744722 3847135 404503 JADE 1065043 85003 107210 446057 2074718 383952 EPSDE 4000020 134177 161983 4000020 4000020 3109006 b6e6rl 900871 274296 324108 539076 2821274 491016 CoDE2 4000020 857227 1022345 4000020 4000020 4000020 CoDE0 4000020 243715 295894 4000020 4000020 4000020 Tabulka 13: Výsledky testů adaptivnı́ch variant DE na základnı́ testovacı́ sadě – spolehlivost R, d = 200 Ackley Dejong1 Griewank Rastrigin Rosenbrock Schwefel jDE 0 100 44 88 0 76 SaDE 0 100 28 32 0 64 JADE 0 100 36 84 16 36 EPSDE 0 100 64 0 0 96 b6e6rl 0 100 88 100 92 100 CoDE2 0 100 100 0 0 0 CoDE0 0 100 80 0 0 0 99 Tabulka 14: Shrnutı́ porovnánı́ testovaných adaptivnı́ch variant DE – průměrné spolehlivosti algoritmů a pořadı́ algoritmů podle průměrné spolehlivosti d = 10 d = 30 d = 200 prům. poř. prům. poř. prům. poř. jDE 98.5 5 82.0 6 51.3 2 SaDE 98.7 4 80.3 7 37.3 5 JADE 90.0 7 94.7 2 45.3 3 EPSDE 99.2 3 83.3 4 43.3 4 b6e6rl 96.8 6 100.0 1 80.0 1 CoDE2 100.0 1 83.3 4 33.3 6 CoDE0 99.8 2 83.3 4 30.0 7 Tabulka 15: Shrnutı́ porovnánı́ testovaných adaptivnı́ch variant DE – průměrné počty výpočtů účelové funkce algoritmů a pořadı́ algoritmů podle průměrného počtu výpočtů účelové funkce d = 10 d = 30 d = 200 prům. poř. prům. poř. prům. poř. jDE 24819 4 189656 4 1448379 3 SaDE 28013 5 170611 3 1561856 4 JADE 15959 2 92775 1 693664 1 EPSDE 19341 3 190929 5 2567538 5 b6e6rl 15024 1 100736 2 891774 2 CoDE2 44067 7 377836 7 2979942 7 CoDE0 34846 6 248909 6 2756615 6 100 navı́c zahrnovaly mechanismus OBL, byly provedeny v práci [70] za stejných podmı́nek jako právě popsané testy původnı́ch návrhů těchto adaptivnı́ch verzı́. Z výsledků testů se ukazuje, že aplikace mechanismu OBL do testovaných adaptivnı́ch verzı́ DE jejich efektivitu nezvýšı́. 101 11.3 Navržené adaptivnı́ přı́stupy v DE Jednı́m z cı́lů této práce bylo navrženı́ vlastnı́ho adaptivnı́ho algoritmu založeného na diferenciálnı́ evoluci. V této kapitole jsou uvedeny dva takové návrhy optimalizačnı́ho algoritmu. Prvnı́ z navržených algoritmů je založen na dvou existujı́cı́ch adaptivnı́ch verzı́ch algoritmu diferenciálnı́ evoluce, jDE a soutěživé DE. Druhý z navrhovaných algoritmů se pokoušı́ řešit problémy spojené s fenoménem předčasné konvergence (viz kapitola 8). 11.3.1 Comp3jDE Optimalizačnı́ algoritmus Comp3jDE [38] byl navržen na základě dvou úspěšných adaptivnı́ch verzı́ algoritmu DE. Jedná se o algoritmy jDE (kap. 6.2) a soutěživá DE (kap. 6.3). V soutěživé diferenciálnı́ evoluci se při vytvářenı́ pokusného bodu y vybı́rá z několika nastavenı́ DE a to v závislosti na úspěšı́ch jednotlivých použitých nastavenı́ DE v předchozı́ch krocı́ch běhu algoritmu. Nevýhodou algoritmu soutěživé DE je, že v nı́ jednu konkrétnı́ DE-strategii lze použı́t pouze s několika pevně stanovenými kombinacemi konkrétnı́ch hodnot parametrů F a CR. Naopak, jDE použı́vá adaptivnı́ nastavenı́ hodnot F a CR, CR v intervalu [0, 1] a F v intervalu [Fl , Fu ], kde Fl a Fu jsou vstupnı́ parametry algoritmu. Nevýhoda algoritmu jDE naopak spočı́vá v tom, že jDE použı́vá pouze jedinou DE-strategii DE/rand/1/bin. Z výsledků různých experimentálnı́ch porovnánı́, např. [32, 39, 69, 70], je zřejmé, že oba optimalizačnı́ algoritmy, z nichž vycházı́ návrh optimalizačnı́ho algoritmu Comp3jDE, jsou velmi efektivnı́mi adaptivnı́mi verzemi algoritmu DE. Ze zmı́něných experimentálnı́ch testů se ale také ukazuje, že existujı́ optimalizačnı́ problémy, jež je výhodnějšı́ optimalizovat algoritmem 102 jDE a také, že existujı́ optimalizačnı́ problémy, jež je výhodnějšı́ optimalizovat nějakou verzı́ soutěživé DE, např. algoritmem b6e6rl. Předpokládáme, že k úspěchům obou algoritmů přispı́vajı́ jejich výše popsané vlastnosti, jimiž se vyznačujı́. U soutěživé DE možnost zařadit vı́ce DE-strategiı́ a u jDE možnost adaptivnı́ho nastavenı́ hodnot parametrů F a CR. Tento předpoklad byl důvodem k vytvořenı́ adaptivnı́ho přı́stupu Comp3jDE, který vznikl spojenı́m přednostı́ obou algoritmů. Algoritmus Comp3jDE je spojenı́m dvou systémů, z algoritmu soutěživé DE byl do Comp3jDE převzat systém výběru nastavenı́ DE soutěžı́ a aplikován na výběr mezi DE-strategiemi. Z jDE byl do Comp3jDE převzat systém adaptivnı́ho nastavenı́ hodnot parametrů F a CR a aplikován odděleně na všechny použité DE-strategie. V nově navrženém algoritmu Comp3jDE jsou použity tři různé DEstrategie: DE/rand/1/bin, DE/randrl/1/exp a DE/current-to-rand/1/-. Při výběru DE-strategiı́ do nově vznikajı́cı́ho algoritmu bylo zapotřebı́ vybrat skupinu DE-strategiı́, které majı́ pro různé optimalizačnı́ problémy různou efektivitu a které se tak navzájem budou vhodně doplňovat. Předpokládáme, že uvedený výběr DE-strategiı́ tento požadavek alespoň částečně splňuje. S využitı́m DE-strategie DE/rand/1/bin je algoritmus jDE na různých testovacı́ch sadách velmi úspěšný, tato DE-strategie je také v aplikacı́ch algoritmu DE nejčastěji použı́vanou. Uvedené skutečnosti byly důvodem k využitı́ této strategie v algoritmu Comp3jDE. K použitı́ DE-strategie DE/randrl/1/exp vedl fakt, že mutace randrl/1 (13) je v některých přı́padech podle výsledků experimentů předložených v [17] Kaelem a Alim až o 30% rychlejšı́ než mutace rand/1 (5) a to bez ztráty spolehlivosti. Důvodem pro zařazenı́ uvedené mutace společně s exponenciálnı́m křı́ženı́m je, že podle Tvrdı́ka [61] je zařazenı́ tohoto typu křı́ženı́ pro úspěšné řešenı́ optimalizačnı́ch problémů 103 velmi přı́nosné. Poslednı́ použitá DE-strategie DE/current-to-rand/1/- byla zařazena z důvodu jejı́ v mnoha pracech zmiňované vlastnosti, rotačnı́ invariance (nezávislosti na zvolené soustavě souřadnic). Algoritmus jDE využı́vá jedinou DE-strategii DE/rand/1/bin a s každým bodem populace se uchovávajı́ dvě hodnoty, hodnota parametru F a hodnota parametru CR. V Comp3jDE se s každým bodem populace uchovává pět různých hodnot, tyto jsou ukládány společně se souřadnicemi bodu. Prvnı́ dvě hodnoty, hodnoty F a CR, přı́slušı́ k DE-strategii DE/rand/1/bin, dalšı́ dvě hodnoty jsou opět hodnoty parametrů F a CR a použijı́ se v přı́padě, že se ke generovánı́ pokusného bodu y přı́slušného k xi využije DE-strategie DE/randrl/1/exp. Poslednı́ hodnota, hodnota parametru F se použije v přı́padě, že se ke generovánı́ pokusného bodu y bodu xi využije DE-strategie DE/current-to-rand/1/-. Hodnota parametru CR se u této DE-strategie neadaptuje, protože current-to-rand/1 mutace již v sobě obsahuje tzv. aritmetické křı́ženı́ a tudı́ž se s nı́ často žádné dalšı́ křı́ženı́ již nepoužı́vá. Algoritmus Comp3jDE byl otestován [38] na sadě 25 optimalizačnı́ch problémů sestavené pro soutěž CEC2005 [51], a to v souladu s podmı́nkami definovanými v uvedené technické zprávě. Testovánı́ algoritmu proběhlo ve dvou fázı́ch, prvnı́ fáze v dimenzi d = 30 s jediným nastavenı́m velikosti populace N = 60. Výsledky tohoto experimentánı́ho testu vedly k myšlence otestovat algoritmus v této dimenzi pro různé hodnoty velikosti populace N . Experimenty proběhly v rámci práce [38]. Comp3jDE zde byl otestován pro velikosti populace N = 30, 60, 90, 120. Pro každou variantu algoritmu a pro každý optimalizačnı́ problém ze sady CEC2005 bylo spuštěno 25 nezávislých běhů. Každý z těchto běhů byl ukončen, dosáhl-li počet provedených výpočtů účelové funkce f hodnoty FES = 3 × 105 . Po ukončenı́ každého z běhů jsme zjistili chybu nalezené hodnoty, tj. chybu řešenı́, definovanou jako f (xmin ) − 104 f (x∗ ), kde xmin je řešenı́ optimalizačnı́ho problému nalezené v přı́slušném běhu přı́slušného algoritmu a x∗ je známý bod globálnı́ho minima daného optimalizačnı́ho problému. Hodnoty vstupnı́ch parametrů řı́dı́cı́ch adaptaci F a CR a hodnoty parametrů mechanismu soutěže byly nastaveny podle doporučenı́ autorů původnı́ch algoritmů, tedy τ1 = τ2 = 0.1, Fl = 0.1, Fu = 0.9 a n0 = 2, δ = 1/(H × 5), pro H = 3, tedy δ = 1/15. Za uvedených podmı́nek byl otestován jak algoritmus Comp3jDE, tak pro porovnánı́ také algoritmus jDE. Pro oba algoritmy jsme hledali nejvhodnějšı́ nastavenı́ hodnoty N . Algoritmus b6e6rl do porovnánı́ vstupoval ve verzi s nastavenı́m N = 60, což je již dřı́ve Tvrdı́kem ověřená [59] vhodná hodnota parametru N . Zvlášt’ pro každý z algoritmů jDE a Comp3jDE a každý optimalizačnı́ problém jsme výsledky porovnali analýzou rozptylu, použili jsme KruskalWallisův test společně s neparametrickým mnohonásobným porovnánı́m. Požadované přesnosti pro řešenı́ všech 25 optimalizačnı́ch problémů zahrnutých v sadě CEC2005 jsou uvedeny v tabulce 16. Všechna řešenı́, která splňovala uvedené přesnosti, byla před provedenı́m porovnánı́ nahrazena nulovou chybou. V tabulkách 17 a 18 jsou uvedeny mediány řešenı́ a pořadı́ algoritmů pro každý z testovacı́ch optimalizačnı́ch problémů. Pokud se nějaké z variant významně nelišily, bylo jim přiřazeno průměrné pořadı́. Z tabulky 17 je zřejmé, že jDE nejlépe pracuje s velikostı́ populace nastavenou na hodnotu N = 60. Z tabulky 18 lze vyčı́st, že Comp3jDE pracuje na dané testovacı́ sadě nejlépe s velikostı́ populace N = 120. Tyto dvě vı́tězné“ va” rianty a algoritmus b6e6rl s nastavenı́m N = 60 byly porovnány a výsledky lze čı́st z tabulky 19. Celkově skončil algoritmus Comp3jDE v tomto porovnánı́ na 3. mı́stě. Je však zřejmé, že ve zvolené sadě testovacı́ch optimalizačnı́ch problémů (CEC2005) existujı́ nejen takové, na nichž algoritmus 105 Tabulka 16: Požadovaná přesnost pro účelové funkce optimalizačnı́ch problémů ze sady CEC2005 Funkce přesnost f1 – f5 1 × 10−6 f6 – f16 1 × 10−2 f17 – f25 1 × 10−1 Comp3jDE vı́tězı́ nad jednı́m ze soupeřů, ale i takové na nichž Comp3jDE vı́tězı́ nad oběma soupeři. Závěrem můžeme shrnout, že spojenı́m mechanismu soutěže navrženého pro algoritmus soutěživá DE aplikovaného na strategie a mechanismu samoadaptace parametrů F a CR navrženého v jDE vznikl poměrně efektivnı́ algoritmus Comp3jDE. 106 Tabulka 17: Porovnánı́ testovaných variant jDE – mediány řešenı́ a pořadı́ verzı́ algoritmu jDE s různými velikostmi populace medián řešenı́ func. N=30 N=60 pořadı́ N=90 N=120 N=30 N=60 N=90 N=120 f1 0 0 0 0 2.5 2.5 2.5 2.5 f2 0 0 1.50E-06 4.58E-05 1.5 1.5 3 4 f3 1.44E+05 1.24E+05 1.43E+05 1.99E+05 2 2 2 4 f4 2.97E+00 8.14E-02 4 2.5 2.5 3 f5 1.49E+03 8.97E+02 3.45E+02 3.87E+02 4 3 1.5 1.5 9.74E-03 1.90E-02 f6 0 4.79E-01 8.72E+00 1.41E+01 1.5 1.5 3 4 f7 0 1.48E-02 0 3.5 3.5 1.5 1.5 2.09E+01 2.09E+01 2.09E+01 2.10E+01 2.5 2.5 2.5 2.5 0 4 2 2 2 f10 3.18E+01 4.21E+01 4.81E+01 5.53E+01 1 2 3 4 f11 2.53E+01 2.65E+01 2.73E+01 2.81E+01 1.5 1.5 3.5 3.5 f12 4.60E+03 3.26E+03 1.47E+04 1.52E+04 1.5 1.5 3.5 3.5 f13 9.93E-01 1.31E+00 1.48E+00 1.63E+00 1 2.5 2.5 4 f14 1.27E+01 1.29E+01 1.30E+01 1.31E+01 1 3 3 4 400 2.5 2.5 2.5 2.5 f16 7.00E+01 6.52E+01 6.75E+01 7.35E+01 3 1 3 3 f17 9.10E+01 1.04E+02 1.20E+02 1.35E+02 1.5 1.5 3.5 3.5 f18 9.07E+02 9.04E+02 9.04E+02 9.04E+02 4 2 2 2 f19 9.07E+02 9.05E+02 9.04E+02 9.04E+02 4 3 1.5 1.5 f20 9.07E+02 9.05E+02 9.04E+02 9.04E+02 4 2 2 2 f21 5.00E+02 5.00E+02 5.00E+02 5.00E+02 2.5 2.5 2.5 2.5 f22 8.81E+02 8.84E+02 8.76E+02 8.67E+02 2.5 2.5 2.5 2.5 f23 5.34E+02 5.34E+02 5.34E+02 5.34E+02 4 2 2 2 200 4 2 2 2 2.13E+02 2.11E+02 2.11E+02 2.10E+02 4 3 1.5 1.5 průměrné pořadı́ 2.70 2.22 2.44 2.76 f8 f9 f15 f24 f25 0 400 200 0 400 200 0 0 400 200 107 Tabulka 18: Porovnánı́ testovaných variant Comp3jDE – mediány řešenı́ a pořadı́ verzı́ algoritmu Comp3jDE s různými velikostmi populace medián řešenı́ func. N=30 N=60 pořadı́ N=90 N=120 N=30 N=60 N=90 N=120 f1 0 0 0 0 4 2 2 2 f2 8.76E-02 0 0 0 4 2 2 2 f3 1.65E+06 8.20E+05 5.12E+05 3.91E+05 4 3 1.5 1.5 f4 2.69E+03 2.97E+01 5.00E-05 4 3 2 1 f5 5.66E+03 3.47E+03 2.54E+03 2.25E+03 4 3 1.5 1.5 f6 8.21E+01 1.18E+01 1.65E+01 1.75E+01 4 2 2 2 1.97E-02 2.5 2.5 2.5 2.5 f8 2.10E+01 2.09E+01 2.09E+01 2.09E+01 2.5 2.5 2.5 2.5 f9 3.98E+00 0 4 3 1.5 1.5 f10 9.55E+01 5.47E+01 4.58E+01 3.48E+01 4 2.5 2.5 1 f11 2.14E+01 1.76E+01 1.37E+01 1.25E+01 4 3 1.5 1.5 f12 1.18E+04 5.60E+03 3.52E+03 4.42E+03 4 2 2 2 f13 1.24E+00 1.63E+00 1.86E+00 1.95E+00 1 2.5 2.5 4 f14 1.21E+01 1.24E+01 1.26E+01 1.27E+01 1 2 3.5 3.5 f15 4.17E+02 4.00E+02 4.02E+02 4.00E+02 2.5 2.5 2.5 2.5 f16 1.58E+02 7.45E+01 6.08E+01 5.32E+01 4 3 1.5 1.5 f17 1.17E+02 7.35E+01 6.25E+01 5.44E+01 4 3 1.5 1.5 f18 9.56E+02 9.19E+02 9.15E+02 9.09E+02 4 3 1.5 1.5 f19 9.38E+02 9.20E+02 9.11E+02 9.11E+02 4 3 1.5 1.5 f20 9.46E+02 9.16E+02 9.14E+02 9.08E+02 4 2.5 2.5 1 f21 1.18E+03 5.00E+02 5.00E+02 5.00E+02 4 3 1.5 1.5 f22 9.51E+02 9.22E+02 8.99E+02 9.04E+02 3.5 3.5 1.5 1.5 f23 1.06E+03 5.57E+02 5.40E+02 5.34E+02 4 3 1.5 1.5 200 4 2 2 2 2.28E+02 2.13E+02 2.13E+02 2.12E+02 4 3 1.5 1.5 průměrné pořadı́ 3.56 2.66 1.94 1.84 f7 f24 f25 1.48E-02 200 1.23E-02 0 200 2.76E-02 0 0 200 108 Tabulka 19: Porovnánı́ nově navrženého algoritmu Comp3jDE s adaptivnı́mi verzemi jDE a soutěživá DE medián řešenı́ func. b6e6rl60 jDE60 pořadı́ Comp3jDE120 b6e6rl60 jDE60 Comp3jDE120 f1 0 0 0 2 2 2 f2 0 0 0 2 2 2 f3 7.69E+04 1.24E+05 3.91E+05 1 2 3 f4 0 9.74E-03 5.00E-05 1 3 2 f5 2.87E+02 8.97E+02 2.25E+03 1 2 3 f6 0 4.79E-01 1.75E+01 1 2 3 f7 0 1.48E-02 1.97E-02 1 2.5 2.5 f8 2.10E+01 2.09E+01 2.09E+01 2 2 2 f9 0 0 0 2 2 2 f10 6.52E+01 4.21E+01 3.48E+01 3 1.5 1.5 f11 2.66E+01 2.65E+01 1.25E+01 2.5 2.5 1 f12 1.63E+04 3.26E+03 4.42E+03 3 1.5 1.5 f13 1.42E+00 1.31E+00 1.95E+00 2 1 3 f14 1.27E+01 1.29E+01 1.27E+01 1.5 3 1.5 f15 400 400 400 1.5 1.5 3 f16 9.51E+01 6.52E+01 5.32E+01 3 2 1 f17 1.38E+02 1.04E+02 5.44E+01 3 2 1 f18 9.05E+02 9.04E+02 9.09E+02 1.5 1.5 3 f19 9.05E+02 9.05E+02 9.11E+02 1.5 1.5 3 f20 9.05E+02 9.05E+02 9.08E+02 1.5 1.5 3 f21 5.00E+02 5.00E+02 5.00E+02 2 2 2 f22 8.87E+02 8.84E+02 9.04E+02 1.5 1.5 3 f23 5.34E+02 5.34E+02 5.34E+02 1.5 1.5 3 f24 200 200 200 2 2 2 f25 2.11E+02 2.11E+02 2.12E+02 2 2 2 průměrné pořadı́ 1.84 1.92 2.24 počet vı́tězstvı́ 5 1 3 109 11.3.2 Soutěživá DE s oživenı́m populace Zatı́m nejúspěšnějšı́ verzı́ domácı́ho“ algoritmu soutěživé diferenciálnı́ evo” luce je verze označovaná b6e6rl (kapitola 6.3). Tato verze algoritmu DE byla otestována na sadě testovacı́ch problémů definované pro soutěž CEC2013 [68] za podmı́nek stanovených v technické zprávě [24] a této světové soutěže se taky zúčastnila. Soutěže se účastnilo okolo 30 algoritmů, celkem 24 účastnı́ků splnilo podmı́nky soutěže a bylo tak zahrnuto do závěrečného pořadı́ algoritmů podle úspěšnosti na sadě testovacı́ch problémů vytvořené pro CEC2013. Algoritmus b6e6rl se umı́stil na celkově 10. mı́stě. Je tedy zřejmé, že patřı́ k velmi efektivnı́m optimalizačnı́m algoritmům. Přes všechny úspěchy tohoto algoritmu je však jistě možné jej vylepšit, resp. navrhnout v něm takovou úpravu, aby vznikl algoritmus ještě efektivnějšı́. Zaharie v práci [73] o diverzitě populace navrhuje nastavenı́ takových hodnot parametrů diferenciálnı́ evoluce, aby se populace bodů udržovala rovnoměrně rozložená v oblasti S, kde optimum účelové funkce f hledáme. V přı́padě algoritmu b6e6rl, v němž soutěžı́ 12 různých nastavenı́ DE (kombinacı́ mutace, křı́ženı́, hodnoty parametru F a hodnoty parametru CR) nelze splnit podmı́nku udrženı́ diverzity populace pomocı́ nastavenı́ hodnot parametrů F a CR podle doporučenı́ uvedených v [73]. Výpočet soutěživé DE, stejně jako jiných adaptivnı́ch verzı́ DE a i dalšı́ch evolučnı́ch algoritmů, může při řešenı́ konkrétnı́ho optimalizačnı́ho problému dospět ke stagnaci nebo předčasné konvergenci (kapitola 8). Nastoupenı́ stagnace lze, jak v [21] uvádı́ Lampinen a Zelinka, předcházet využitı́m dostatečně velké populace bodů. Přes veškerou snahu vyhnout se předčasné konvergenci (v tomto přı́padě také zařazenı́m několika různých soutěžı́cı́ch nastavenı́ DE) je z výsledků empirických testů na sadě CEC2013 zřejmé, že 110 existujı́ optimalizačnı́ problémy, pro které výpočet soutěživé DE k předčasné konvergenci dospěje, tedy ve výpočtu algoritmu nastane situace, kdy se populace soustředı́ v nějakém malém okolı́ jednoho z bodů, v němž účelová funkce nabývá lokálnı́ho minima. Jednou z možnostı́ vylepšenı́ výsledků algoritmu je úprava, která v takovéto situaci zajistı́ efektivnı́ využitı́ přiděleného času. Navrhovaná úprava algoritmu je následujı́cı́. Při výpočtu algoritmu probı́há sledovánı́ složenı́ populace bodů a v přı́padě, že populace konverguje k jednomu bodu, tento bod je zapamatován a výpočet algoritmu začı́ná znovu. V této situaci upravený algoritmus neinicializuje populaci jako na začátku výpočtu náhodně, ale využije předchozı́ populaci v generaci, kdy byla ještě dostatečně rozptýlena v oblasti S. Vše je zařı́zeno tak, že algoritmus má stále uloženu poslednı́ generaci, pro kterou platı́ podmı́nka dostatečného rozptýlenı́ v oblasti S. Pro každou nově vytvořenou generaci populace P se zjistı́ objem nejmenšı́ho d-dimenzionálnı́ho kvádru Kn , který obsahuje všechny jejı́ body. Je-li poměr velikostı́ objemů kvádrů Kn a S většı́ než meznı́ poměr mp, aktuálnı́ generace populace P má dostatečné rozptýlenı́ a ukládá se. mp je parametr algoritmu, zde nastavený na hodnotu mp = (1/2)d . Dojde-li ve výpočtu algoritmu ke konvergenci k jedinému bodu, nalezený bod i hodnota účelové funkce f v tomto bodě se zaznamená a dojde k tzv. oživenı́ populace, tj. aktuálnı́ generacı́ populace P se stane poslednı́ uložená generace populace P , která splňovala podmı́nku dostatečného rozloženı́ v prohledávané oblasti S, a proces hledánı́ optima pak pokračuje na této množině bodů. Algoritmus b6e6rl se zařazenı́m nástroje k efektivnějšı́mu využitı́ poskytnutého času je dále označován mb6e6rl, vznikl při studiu konvergence algoritmu diferenciálnı́ evoluce a je zapsán v Algoritmu 11. 111 Algoritmus 11 mb6e6rl 1: vygeneruj počátečnı́ generaci P0 = (x1 , x2 , . . . , xN ) populace P ; 2: vypočı́tej hodnotu účelové funkce ve všech bodech generace P0 ; 3: nastav pravděpodobnosti qh na hodnoty 1/H; 4: g=0; 5: Pdo = Pg ; 6: repeat 7: Qg = Pg ; 8: for i := 1 to N do 9: vyber z H-nastavenı́ DE s ohledem qh (h = 1, 2, . . . , H); 10: vytvoř y k xi s použitı́m vybraného nastavenı́ DE; 11: vypočı́tej hodnotu účelové funkce v bodě y; 12: if f (y) ≤ f (xi ) then 13: 14: do Qg vlož na mı́sto bodu xi bod y; end if 15: end for 16: Pg+1 = Qg ; 17: g=g+1; 18: if Pg je dostatečně rozložená v S then 19: Pdo = Pg ; 20: end if 21: if Pg konverguje k jedinému bodu then 22: 23: 24: 25: if nastává-li tato situace poprvé then zapamatuj tento bod jako xmin a hodnotu fmin = f (xmin ); else porovnej tento bod s uloženým xmin a uchovej lepšı́ z nich; 26: end if 27: Pg = Pdo ; 28: 29: end if until ukončovacı́ podmı́nka; 112 Algoritmy mb6e6rl a b6e6rl byly otestovány na sadě testovacı́ch problémů navržené pro CEC2013 v dimenzı́ch d = 2, 5, 10, v každé z uvedených dimenzı́ pro dvě úrovně MaxFES. Pro dimenzi d = 2 s MaxFES1 = 1 × 105 a MaxFES2 = 5×105 , pro dimenzi d = 5 s MaxFES1 = 2.5×105 a MaxFES2 = 1 × 106 , pro dimenzi d = 10 s MaxFES1 = 5 × 105 a MaxFES2 = 5 × 106 . Proměnná MaxFES byla tedy v každém z testovaných přı́padů nastavena na dosti vysokou hodnotu, nebot’ existoval předpoklad, že při takto vysokých hodnotách MaxFES bude u většiny testovacı́ch problémů efektivita mb6e6rl významně lepšı́ než efektivita b6e6rl. Řı́dı́cı́ parametry obou algoritmů byly nastaveny podle doporučenı́ autora návrhu soutěživé DE [59], n0 = 2, δ = 1/(H × 5), pro H = 12 tedy δ = 1/60. Pro každou z variant obou testovaných algoritmů a každý testovacı́ problém bylo provedeno 50 nezávislých běhů, po skončenı́ každého běhu jsme zaznamenali jeho řešenı́. V tabulce 20 je uvedeno, pro které z 28 testovacı́ch optimalizačnı́ch problémů ze sady CEC2013 byl algoritmus mb6e6rl významně lepšı́ než původnı́ algoritmus b6e6rl. Výsledky obou algoritmů jsme pro každý problém z testovacı́ sady statisticky porovnali s využitı́m Wilcoxonova dvouvýběrového testu. Symbol +“ v tabulce 20 znamená, že mb6e6rl byl statisticky ” významně lepšı́ než původnı́ algormitmus b6e6rl, symbol =“ znamená, že ” na přı́slušném testovacı́m problému byly mb6e6rl a b6e6rl statisticky srovnatelně efektivnı́. Hladina významnosti provedených testů byla 0.05. Z tabulky 20 je zřejmé, že s časem efektivita algoritmu mb6e6rl vzhledem k efektivitě b6e6rl roste. Čı́m většı́ dovolený čas pro výpočet, tı́m výraznějšı́ zlepšenı́ v porovnánı́ s původnı́m algoritmem b6e6rl. Růst efektivity však nenı́ tak vysoký, jak se očekávalo. Vyššı́ efektivita mb6e6rl v porovnánı́ s b6e6rl je výraznějšı́ u nižšı́ch dimenzı́. Závěrem lze tedy řı́ct, že mb6e6rl je 113 Tabulka 20: Porovnánı́ efektivity algoritmu soutěživé DE b6e6rl a soutěživé DE s oživenı́m populace mb6e6rl na testovacı́ sadě CEC2013 d=2 d=5 d=10 5 5 5 6 Funkce/MaxFES 1 × 10 5 × 10 2.5 × 10 1 × 10 5 × 105 5 × 106 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 = = = = = = = = = = = = = = + + + = = = = = + = + = + + = = = = = = = = = = = = = = + + + + = = = = + = + = + + = = = = = = + = = = = = = = = + = + = = = = = = = = = = = = = = = = + = = = = = = = = = = + = = = = = + = + + + = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = + + = = = = = = = = = = = = = = = = + + = = = 7x 8x 3x 6x 0x 4x 114 na použité testovacı́ sadě o něco efektivnějšı́ než původnı́ algoritmus, avšak na potvrzenı́ tohoto vzrůstu efektivity potřebuje poměrně velký čas. Jakémusi oživenı́, resetu či restartu populace se věnujı́ i jinı́ autoři, např. Loshchilov v [26]. Techniky oživenı́ se lišı́. Pro vytvořenı́ efektivnı́ho algoritmu je potřeba umět v algoritmu správně rozpoznat situaci, kdy došlo k předčasné konvergenci a navrhnout vhodný systém pro oživenı́ populace. Z předběžných empirických testů na různých testovacı́ch sadách se ukazuje, že tento směr výzkumu by mohl vést k navrhům velmi efektivnı́ch optimalizačnı́ch algoritmů. Tento fakt dokládá i úspěšné umı́stěnı́ algoritmu b6e6rl s restarty [40] na soutěži CEC2014 [23]. 115 11.4 Návrhy algoritmů pro optimalizačnı́ problémy s vázanými extrémy Jeden z vlastnı́ch algoritmů pro řešenı́ optimalizačnı́ch úloh s vázanými extrémy byl navržen v [66]. Tento algoritmus je založen na soutěživé diferenciálnı́ evoluci, využı́vá jejı́ variantu nazvanou b6e6rl (6.3). Algoritmus vznikl v roce 2010 a zúčastnil se mezinárodnı́ soutěže CEC. Efektivita algoritmu byla v [66] ověřena na testovacı́ sadě vytvořené pro uvedenou soutěž [29]. V navrženém algoritmu se střı́dá minimalizace účelové funkce f s minimalizacı́ průměrného porušenı́ podmı́nek v̄. Soutěživá DE pro problémy s vázanými extrémy je v pseudokódu zapsána v Algoritmu 12. Výběr jedAlgoritmus 12 Soutěživá DE pro problémy s vázanými extrémy 1: vygeneruj počátečnı́ generaci P0 a spočı́tej hodnoty účelové funkce f a hodnoty průměrného porušenı́ podmı́nek v̄ v bodech P0 ; 2: 3: 4: 5: 6: 7: 8: repeat if v̄max > 0 then vytvoř jednu generaci s minimalizacı́ v̄ else vytvoř jednu generaci s minimalizacı́ f end if until ukončovacı́ podmı́nka; noho z dvojice původnı́ bod xi a jeho pokusný bod y do dalšı́ generace populace se při minimalizaci průměrného porušenı́ podmı́nek v̄ řı́dı́ podmı́nkou v̄(y) ≤ v̄(xi ). Při minimalizaci účelové funkce f se řı́dı́ podmı́nkou: (v̄(y) ≤ v̄(xi ) ∧ f (y) < f (xi )) nebo (v̄(xi ) > 0 ∧ v̄(y) = 0). 116 (57) v̄max je maximum z v̄(xi ) pro všechna xi z aktuálnı́ generace populace. V konkurenci dalšı́ch jedenácti algoritmů přijatých k publikaci [53, 27, 4, 22, 25, 48, 56, 47, 31, 58, 45] se algoritmus soutěživá DE pro problémy s vázanými extrémy na mezinárodnı́ soutěži CEC2010 umı́stil na 8. mı́stě. Dalšı́m námi navrženým algoritmem řešı́cı́m problém globálnı́ optimalizace s vázanými extrémy je tzv. enhanced“ algoritmus popsaný v [67]. Ten ” vznikl na základě výše popsaného algoritmu soutěživá DE pro problémy s vázanými extrémy [66]. Při návrhu tohoto nového algoritmu bylo hlavnı́m cı́lem zı́skat algoritmus efektivnějšı́. Předpokládali jsme, že při hledánı́ oblasti s přijatelnými body dosáhneme zvýšenı́ efektivity zařazenı́m heuristiky nebo heuristik odlišných od DE. Do algoritmu tak byly zařazeny mechanismus OBL (kap. 7) a algoritmus řı́zeného náhodného prohledávánı́ – CRS [42] v adaptivnı́ variantě se čtyřmi soutěžı́cı́mi heuristikami [65]. Tyto dvě odlišné heuristiky jsou v enhanced“ algoritmu zkombinovány opět s úspěšnou vari” antou b6e6rl soutěživé DE. Enhanced“ algoritmus je v pseudokódu zapsán ” v Algoritmu 13. V tomto algoritmu se minimalizuje f pouze při využitı́ b6e6rl (algoritmus 13, řádek 9), při využitı́ ostatnı́ch heuristik zařazených do algoritmu se minimalizuje průměrné porušenı́ podmı́nek v̄. Výběr jednoho z dvojice původnı́ bod xi populace a k němu vytvořený pokusný bod y do dalšı́ generace populace se při minimalizaci v̄ i zde řı́dı́ podmı́nkou v̄(y) ≤ v̄(xi ). Při minimalizaci f se výběr z dvojice xi , y řı́dı́ podmı́nkou (54). JRC , JRO jsou vstupnı́ parametry algoritmu, v testech provedených v [67] byly nastaveny na hodnoty JRC = 0.1, JRO = 0.3. V práci [67], v nı́ž byl enhanced“ algoritmus navržen, jsme porovnávali ” několik variant tohoto algoritmu a také soutěživou DE pro problémy s vázanými extrémy [66]. Porovnávané varianty vycházely z algoritmu popsaného v Alg. 13 a každá z nich vznikla vynechánı́m jedné nebo vı́ce heuristik 117 Algoritmus 13 Enhanced“ algoritmus ” 1: vygeneruj počátečnı́ generaci P0 a spočı́tej hodnoty funkce f a hodnoty průměrného porušenı́ podmı́nek v̄ v bodech P0 ; 2: 3: 4: 5: repeat if ∀i v̄(xi ) > 0 then if rand(0, 1) < JRC then občerstvi populaci P pomocı́ mechanismu OBL (vzhledem k S); 6: end if 7: vytvoř jednu generaci s využitı́m CRS; 8: end if 9: vytvoř jednu generaci s využitı́m b6e6rl (minimalizace f ); 10: 11: 12: 13: if (∀i v̄(xi ) > 0) ∧ (rand(0, 1) < JRO ) then občerstvi populaci P , použij OBL (vzhledem k dynamické oblasti); end if until ukončovacı́ podmı́nka; 118 zařazených do enhanced“ algoritmu k optimalizaci průměrného porušenı́ ” podmı́nek v̄. Testy algoritmů proběhly na sadě 18 testovacı́ch problémů vytvořené pro mezinárodnı́ soutěž CEC2010 v dimenzı́ch d = 10 a d = 30 za podmı́nek definovaných v technické zprávě [29]. Nejefektivněji se jevil enhanced“ algoritmus ve verzi, která je popsána v pseudokódu v Algo” ritmu 13. Tabulka 21 znázorňuje počty běhů, v nichž bylo nalezeno přijatelné řešenı́ (z 25 uskutečněných běhů pro každý algoritmus a testovacı́ problém), pro algoritmus navržený pro CEC2010 [66] a pro enhanced“ algoritmus. Z této ” tabulky je zřejmé, že aplikacı́ vylepšeného hledánı́ oblastı́ s přijatelnými body se pro d = 10 počet běhů s přijatelným řešenı́m snı́žil pouze u problémů 2 a 18, naproti tomu se ale u jiných sedmi problémů počet běhů s přijatelným řešenı́m zvýšil a zvýšil se i průměrný počet běhů s přijatelným řešenı́m. Pro dimenzi d = 30 aplikace vylepšeného hledánı́ oblastı́ s přijatelným řešenı́m počet běhů s přijatelným řešenı́m zvýšila u šesti problémů, snı́žila u pěti problémů a tento počet se nezměnil u sedmi problémů. Pokud nastalo zvýšenı́ tohoto počtu běhů, bylo často podstatně většı́ než v přı́padech kdy došlo k jeho snı́ženı́. I v této dimenzi aplikace vylepšeného hledánı́ oblastı́ s přijatelným řešenı́m výrazně zvýšila průměrný počet běhů s přijatelným řešenı́m. V práci [36] byl zkoumán vliv použité mutace na efektivitu enhan” ced“ algoritmu. V původnı́m návrhu algoritmu [67] je použita verze b6e6rl (kap. 6.3) algoritmu soutěživé DE a tedy pro minimalizaci účelové funkce f je použita pouze mutace randrl/1 (13). V [36] byla tato verze porovnána s třemi dalšı́mi verzemi enhanced“ algoritmu. Dvě z nich se lišily pouze ” v mutaci použité v algoritmu soutěživé DE, prvnı́ použı́vala tytéž nastavenı́ DE jako b6e6rl, jen mı́sto mutace randrl/1 byla použita mutace rand/1, 119 Tabulka 21: Počty běhů s nalezeným přijatelným řešenı́m pro algoritmus navržený pro CEC2010 a enhanced“ algoritmus ” Problém d=10 d=30 CEC2010 Enhanced CEC2010 Enhanced 1 25 25 25 25 2 25 21 25 24 3 25 25 25 24 4 25 25 25 17 5 4 16 0 14 6 2 20 4 17 7 25 25 25 25 8 25 25 25 25 9 3 22 1 20 10 3 17 2 21 11 20 24 25 23 12 25 25 13 23 13 25 25 25 25 14 25 25 25 25 15 24 24 25 25 16 19 24 25 25 17 19 21 23 25 18 22 20 25 24 18.94 22.72 19.06 22.61 Průměr 120 druhá použı́vala znovu tytéž nastavenı́ DE jako b6e6rl, jen mı́sto mutace randrl/1 použı́vala mutaci current-to-rand/1. Poslednı́ verzı́ enhanced“ al” goritmu testovanou v [36] byla verze užı́vajı́cı́ soutěživou DE ve variantě, v nı́ž soutěžilo 9 různých nastavenı́ diferenciálnı́ evoluce. Těchto 9 nastavenı́ DE (viz tabulka 22) bylo vybráno na základě výsledků předběžných testů, v nichž se sledovalo využı́tı́ jednotlivých nastavenı́ DE v různých fázı́ch běhu algoritmu v ostatnı́ch třech testovaných modifikacı́ch enhanced“ algo” ritmu. Testy výše popsaných čtyř algoritmů v [36] proběhly na testovacı́ sadě navržené pro CEC2010 [29], a to v dimenzı́ch d = 10 a d = 30. Provedenými testy se zjistilo, že vliv mutace použité v algoritmu soutěživé DE v rámci enhanced“ algoritmu je z hlediska efektivity navrhovaného algoritmu zaned” batelný. Dalšı́m důležitým výsledkem, který poskytly tyto testy, je závěr, že efektivita enhanced“ algoritmu je srovnatelná s efektivitou algoritmů, které ” na soutěži CEC2010 patřily k nejúspěšnějšı́m. 121 Tabulka 22: Nastavenı́ DE soutěžı́cı́ v čtvrté variantě enhanced“ algoritmu ” testované v [36] h h-té nastavenı́ DE použitá DE-strategie F CR 1 DE/randrl/1/bin 0.5 1 2 DE/randrl/1/bin 0.8 1 3 DE/randrl/1/exp 0.5 CR3 4 DE/randrl/1/exp 0.8 CR3 5 DE/current-to-rand/1/bin 0.5 1 6 DE/current-to-rand/1/bin 0.8 1 7 DE/current-to-rand/1/bin 0.5 0 8 DE/current-to-rand/1/bin 0.8 0 9 DE/current-to-rand/1/exp 0.5 CR3 122 12 Závěr a zhodnocenı́ práce Disertačnı́ práce se zabývá algoritmem diferenciálnı́ evoluce a adaptačnı́mi mechanismy jeho řı́dı́cı́ch parametrů. V rešeršnı́ části práce jsou podrobně popsány základnı́ principy algoritmu a je uveden přehled publikovaných variant diferenciálnı́ evoluce. Vzhledem k tomu, že výzkum adaptace v diferenciálnı́ evoluci je téma, kterému se věnuje řada výzkumných týmů z celého světa a každý rok přibývajı́ nové adaptivnı́ varianty diferenciálnı́ evoluce, nenı́ možné, aby výčet těchto pracı́ byl vyčerpávajı́cı́. Základnı́mi otázkami konvergence algoritmu diferenciálnı́ evoluce se zabývá kapitola 8. V rámci práce byla navržena vlastnı́ adaptivnı́ verze studovaného algoritmu, která je kombinacı́ dvou úspěšných existujı́ch adaptacı́ algoritmu [38]. Tato nově navržená adaptivnı́ verze algoritmu diferenciálnı́ evoluce na některých funkcı́ch z použité testovacı́ sady v efektivitě řešenı́ předčila výchozı́ varianty algoritmu. Dalšı́ zde předloženou novou verzı́ algoritmu diferenciálnı́ evoluce je modifikace úspěšné adaptivnı́ verze soutěživé varianty tohoto algoritmu, b6e6rl. Jde o modifikaci, která vznikla z potřeby vypořádat se v algoritmu s fenoménem předčasné konvergence užitı́m oživenı́ populace [35]. Obměna tohoto algoritmu [40] se zůčastnila soutěže CEC2014 a umı́stila se mezi 17 účastnı́ky na 7. mı́stě. Výsledkem našeho výzkumu v této oblasti jsou také návrhy dvou verzı́ algoritmu diferenciálnı́ evoluce pro optimalizačnı́ problémy s vázanými extrémy. Prvnı́ z uvedených verzı́ [66], v nı́ž se střı́dá minimalizace účelové funkce a minimalizace průměrného porušenı́ podmı́nek, se úspěšně zůčastnila mezinárodnı́ soutěže CEC2010 (8. mı́sto z 12 účastnı́ků). Druhá z verzı́ [67], tzv. enhanced“ algoritmus, vznikla obohacenı́m původnı́ho návrhu algoritmu ” 123 o dokonalejšı́ vyhledávánı́ oblastı́ s přijatelnými body s užitı́m řı́zeného náhodného prohledávánı́ a mechanismu OBL. Tento algoritmus je schopen konkurovat algoritmům, které se v soutěži CEC2010 umı́stili v prvnı́ třetině. V rámci práce vzniklo několik článků v časopisech a sbornı́cı́ch mezinárodnı́ch konferencı́, avšak mnoho problémů v této oblasti zůstává otevřených. Aktuálnı́ otázkou výzkumu je vhodný způsob prevence stagnace a předčasné konvergence. 124 Použitá literatura [1] T. Bäck. Evolutionary algorithms in theory and practice. Oxford University Press, New York, 1996. [2] S. Biswas, S. Kundu, S. Das, and A. V. Vasilakos. Teaching and learning based differential evolution with self adaptation for real parameter optimization. In IEEE Congress on Evolutionary Computation 2013 Proceedings, pages 1115–1122, 2013. [3] J. Brest. Constrained real-parameter optimization with ε-self-adaptive differential evolution. In Efren Mezura-Montez, editor, Constraint- Handling in Evolutionary Optimization, pages 73–93. Springer, 2009. [4] J. Brest, B. Boškovič, and V. Žumer. An improved self-adaptive differential evolution algorithm in single objective constrained realparameter optimization. In IEEE Congress on Evolutionary Computation, pages 1073–1080, 2010. [5] J. Brest, B. Boškovič, A. Zamuda, I. Fister, and E. Mezura-Montes. Real parameter single objective optimization using self-adaptive differential evolution algorithm with more strategies. In IEEE Congress on Evolutionary Computation 2013 Proceedings, pages 377–383, 2013. [6] J. Brest, S. Greiner, B. Boškovič, M. Mernik, and V. Žumer. Selfadapting control parameters in differential evolution: A comparative study on numerical benchmark problems. IEEE Transactions on Evolutionary Computation, 10:646–657, 2006. [7] J. Brest and M. S. Maučec. Population size reduction for the differential evolution algorithm. Appl Intell, 29:228–247, 2008. 125 [8] F. Caraffini, F. Neri, J. Cheng, G. Zhang, L. Picinali, G. Iacca, and E. Mininno. Super-fit multicriteria adaptive differential evolution. In IEEE Congress on Evolutionary Computation 2013 Proceedings, pages 1678–1685, 2013. [9] U. K. Chakraborty. Advances in Differential Evolution. Springer, 2008. [10] M. Clerc. Particle Swarm Optimization. ISTE, 2006. [11] L. D. S. Coelho, H. V. H. Ayala, and R. Z. Freire. Population’s variancebased adaptive differential evolution for real parameter optimization. In IEEE Congress on Evolutionary Computation 2013 Proceedings, pages 1672–1677, 2013. [12] A. Colorni, M. Dorigo, and V. Maniezzo. Distributed optimization by ant colonies. In European Conference on Artificial Life, pages 134–142, 1991. [13] S. Das and P. N. Suganthan. Differential evolution: A survey of the state-of-the-art. IEEE Transactions on Evolutionary Computation, 15:4–31, 2010. [14] A. E. Eiben and J. E. Smith. Introduction to evolutionary computing. Springer, 2003. [15] S. M. Elsayed, R. A. Sarker, and T. Ray. Differential evolution with automatic parameter configuration for solving the CEC2013 competition on real-parameter optimization. In IEEE Congress on Evolutionary Computation 2013 Proceedings, pages 1932–1937, 2013. [16] V. Feoktistov. Differential evolution: In search of solution. Springer, 2006. 126 [17] P. Kaelo and M. M. Ali. A numerical study of some modified differential evolution algorithms. European J. Operational Research, 169:1176– 1184, 2006. [18] D. Karaboga and B. Akay. A comparative study of artificial bee colony algorithm. Applied Mathematics and Computation, 214:108–132, 2009. [19] V. Kvasnička, J. Pospı́chal, and P. Tiňo. Evolučné algoritmy. Slovenská Technická Univerzita, Bratislava, 2000. [20] J. Lampinen. A constrained handling approach for differential evolution algorithm. In IEEE Congress on Evolutionary Computation, pages 1468–1473, 2002. [21] J. Lampinen and I. Zelinka. On stagnation of differential evolution algorithm. In MENDEL 2000, 6th International Conference on Soft Computing, pages 76–83, 2000. [22] Z. Li, J. J. Liang, X. He, and Z. Shang. Differential evolution with dynamic constraint-handling mechanism. In IEEE Congress on Evolutionary Computation, pages 1899–1906, 2010. [23] J. J. Liang, B.Y. Qu, and P. N. Suganthan. Problem definitions and evaluation criteria for the CEC 2014 special session and competition on single objective real-parameter numerical optimization. [online] http://www.ntu.edu.sg/home/epnsugan/, 2013. [24] J. J. Liang, B.Y. Qu, P. N. Suganthan, and A. G. HernándezDı́az. Problem definitions and evaluation criteria for the CEC 2013 special session on real-parameter optimization. http://www.ntu.edu.sg/home/epnsugan/, 2013. 127 [online] [25] J. J. Liang, Z. Shang, and Z. Li. Coevolutionary comprehensive learning particle swarm optimizer. In IEEE Congress on Evolutionary Computation, pages 1505–1512, 2010. [26] I. Loshchilov. CMA-ES with restarts for solving CEC 2013 benchmark problems. In IEEE Congress on Evolutionary Computation 2013 Proceedings, pages 369–376, 2013. [27] R. Mallipeddi and P. N. Suganthan. Differential evolution with ensemble of constraint handling techniques for solving CEC 2010 benchmark problems. In IEEE Congress on Evolutionary Computation, pages 1907–1914, 2010. [28] R. Mallipeddi and P. N. Suganthan. Ensemble of constraint handling techniques. IEEE Transactions on Evolutionary Computation, 14:561– 579, 2010. [29] R. Mallipeddi and P. N. Suganthan. Problem definition and evaluation criteria for the CEC 2010 competition and special session on single objective constrained real-parameter optimization. [online] http://www.ntu.edu.sg/home/epnsugan/, 2010. [30] R. Mallipeddi, P. N. Suganthan, Q. K. Pan, and M. F. Tasgetiren. Differential evolution algorithm with ensemble of parameters and mutation strategies. Applied Soft Computing, 11:1679–1696, 2011. [31] E. Mezura-Montes and R. E. Velez-Koeppel. Elitist artificial bee colony for constrained real-parameter optimization. In IEEE Congress on Evolutionary Computation, pages 2068–2075, 2010. 128 [32] F. Neri and V. Tirronen. Recent advances in differential evolution: A survey and experimental analysis. Artificial Intelligence Review, 33:61–106, 2010. [33] I. Poikolainen and F. Neri. Differential evolution with concurrent fitness based local search. In IEEE Congress on Evolutionary Computation 2013 Proceedings, pages 384–391, 2013. [34] R. Poláková. A variant of competitive differential evolution algorithm with exponential crossover. Neural Network World, 20:159–169, 2010. [35] R. Poláková. A modification of adaptive differential evolution. In ISCAMI 2013, page 57, 2013. [36] R. Poláková and J. Tvrdı́k. Various mutation strategies in enhanced competitive differential evolution for constrained optimization. In IEEE SSCI2011, Symposium on Differential Evolution (SDE) 2011 Proceedings, pages 17–24, 2011. [37] R. Poláková and J. Tvrdı́k. A comparison of two adaptation approaches in differential evolution. In Lecture Notes in Computer Science 7269, pages 317–324. Springer, 2012. [38] R. Poláková and J. Tvrdı́k. A combined approach to adaptive differential evolution. Neural Network World, 23:3–15, 2013. [39] R. Poláková and J. Tvrdı́k. Competitive differential evolution algorithm in comparison with other adaptive variants. In V. Snasel, A. Abraham, and E. S. Corchado, editors, Soft Computing Models in Industrial and Environmental Applications, pages 133–142, 2013. 129 [40] R. Poláková, J. Tvrdı́k, and P. Bujok. Controlled restart in differential evolution applied to CEC2014 benchmark functions. In IEEE Congress on Evolutionary Computation 2014 Proceedings, pages 2230–2236, 2014. [41] K. V. Price, R. Storn, and J. Lampinen. Differential evolution: A practical approach to global optimization. Springer, 2005. [42] W. L. Price. A controlled random search procedure for global optimization. Computer J., 20:367–370, 1977. [43] A. K. Qin, V. L. Huang, and P. N. Suganthan. Differential evolution algorithm with strategy adaptation for global numerical optimization. IEEE Transactions on Evolutionary Computation, 13:398–417, 2009. [44] S. Rahnamayan, H. R. Tizhoosh, and M. M. A. Salama. Oppositionbased differential evolution. IEEE Transactions on Evolutionary Computation, 12:64–79, 2008. [45] G. Reynoso-Meza, X. Blasco, J. Sanchis, and M. Martinez. Multiobjective optimization algorithm for solving constrained single objective problems. In IEEE Congress on Evolutionary Computation, pages 3418–3424, 2010. [46] T. P. Runarsson and X. Yao. Stochastic ranking for constrained evolutionary optimization. IEEE Transactions on Evolutionary Compu- tation, 4:284–294, 2000. [47] A. Saha, R. Datta, and K. Deb. Hybrid gradient projection based genetic algorithms for constrained optimization. In IEEE Congress on Evolutionary Computation, pages 2851–2858, 2010. 130 [48] H. K. Singh, T. Ray, and W. Smith. Performance of infeasibility empowered memetic algorithm for CEC 2010 constrained optimization problems. In IEEE Congress on Evolutionary Computation, pages 3770–3777, 2010. [49] R. Storn and K. V. Price. Differential evolution – a simple and efficient adaptive scheme for global optimization over continuous spaces. [online] http://www1.icsi.berkeley.edu/ftp/pub/techreports/1995, 1995. [50] R. Storn and K. V. Price. Differential evolution - a simple and efficient heuristic for global optimization over continuous spaces. J. Global Optimization, 11:341–359, 1997. [51] P. N. Suganthan, N. Hansen, J. J. Liang, K. Deb, Y. P. Chen, A. Auger, and S. Tiwari. Problem definitions and evaluation criteria for the CEC 2005 special session on real-parameter optimization. [online] http://www.ntu.edu.sg/home/epnsugan/, 2005. [52] T. Takahama and S. Sakai. Constrained optimization by the constrained differential evolution with gradient-based mutation and feasible elites. In IEEE Congress on Evolutionary Computation, pages 1–8, 2006. [53] T. Takahama and S. Sakai. Constrained optimization by the constrained differential evolution with an archive and gradient-based mutation. In IEEE Congress on Evolutionary Computation, pages 2068–2075, 2010. [54] R. Tanabe and A. Fukunaga. Evaluating the performance of SHADE on CEC 2013 benchmark problems. In IEEE Congress on Evolutionary Computation 2013 Proceedings, pages 1952–1959, 2013. 131 [55] R. Tanabe and A. Fukunaga. Success-history based parameter adaptation for differential evolution. In IEEE Congress on Evolutionary Computation 2013 Proceedings, pages 71–78, 2013. [56] M. F. Tasgetiren, P. N. Suganthan, Q.-K. Pan, R. Mallipeddi, and S. Sarman. An ensemble of differential evolution algorithms for constrained function optimization. In IEEE Congress on Evolutionary Computation, pages 967–975, 2010. [57] J. Teo. Exploring dynamic self-adaptive populations in differential evolution. Soft Computing, 10:673–686, 2006. [58] L.-Y. Tseng and C. Chen. Multiple trajectory search for single objective constrained real-parameter optimization problems. In IEEE Congress on Evolutionary Computation, pages 3433–3439, 2010. [59] J. Tvrdı́k. Competitive differential evolution. In R. Matoušek and P. Ošmera, editors, MENDEL 2006, 12th International Conference on Soft Computing, pages 7–12, 2006. [60] J. Tvrdı́k. Differential evolution with competitive setting of its control parameters. TASK Quarterly, 11:169–179, 2007. [61] J. Tvrdı́k. Adaptive differential evolution and exponential crossover. In M. Ganzha, M. Paprzycki, and T. Pelech-Pilichowski, editors, IMCSIT 2008, pages 863–867, 2008. [62] J. Tvrdı́k. Adaptation in differential evolution: A numerical comparison. Applied Soft Computing, 9:1149–1155, 2009. 132 [63] J. Tvrdı́k. Self-adaptive variants of differential evolution with ex- ponential crossover. Analele of West University Timisoara, Series Mathematics-Informatics, 47:151–168, 2009. [64] J. Tvrdı́k. Modifications of differential evolution with composite trial vector generation strategies. In V. Snasel, A. Abraham, and E. S. Corchado, editors, Soft Computing Models in Industrial and Environmental Applications, pages 113–122, 2013. [65] J. Tvrdı́k, I. Křivý, and L. Mišı́k. Adaptive population-based search: Application to estimation of nonlinear regression parameters. Computational Statistics and Data Analysis, 52:713–724, 2007. [66] J. Tvrdı́k and R. Poláková. Competitive differential evolution for constrained problems. In 2010 IEEE Congress on Evolutionary Computation (CEC), pages 1632–1639, 2010. [67] J. Tvrdı́k and R. Poláková. Enhanced competitive differential evolution for constrained optimization. In Proceedings of the International Multiconference on Computer Science and Information Technology, pages 909–915, 2010. [68] J. Tvrdı́k and R. Poláková. Competitive differential evolution applied to CEC 2013 problems. In IEEE Congress on Evolutionary Computation 2013 Proceedings, pages 1651–1657, 2013. [69] J. Tvrdı́k, R. Poláková, and P. Bujok. A comparison of adaptive differential evolution variants for single-objective optimization. In 18th International Conference on Soft Computing MENDEL 2012, pages 132–137, 2012. 133 [70] J. Tvrdı́k, R. Poláková, J. Veselský, and P. Bujok. Adaptive variants of differential evolution: Towards control-parameter-free optimizers. In Handbook of Optimization, pages 423–449. Springer, 2012. [71] Y. Wang, Z. Cai, and Q. Zhang. Differential evolution with com- posite trial vector generation strategies and control parameters. IEEE Transactions on Evolutionary Computation, 15:55–66, 2011. [72] D. H. Wolpert and W.G. Macready. No free lunch theorems for optimization. IEEE Transactions on Evolutionary Computation, 1:67–82, 1997. [73] D. Zaharie. Critical values for the control parameters of differential evolution algorithms. In MENDEL 2002, 8th International Conference on Soft Computing, pages 62–67, 2002. [74] D. Zaharie. A comparative analysis of crossover variants in differential evolution. In Proceedings of IMCSIT 2007, pages 171–181, 2007. [75] D. Zaharie. Statistical properties of differential evolution and related random search algorithms. In Proceedings in Computational Statistics, pages 473–485, 2008. [76] D. Zaharie. Influence of crossover on the behavior of differential evolution algorithms. Applied Soft Computing, 9:1126–1138, 2009. [77] A. Zamuda, J. Brest, and E. Mezura-Montes. Structured population size reduction differential evolution with multiple mutation strategies on CEC 2013 real parameter optimization. In IEEE Congress on Evolutionary Computation 2013 Proceedings, pages 1925–1931, 2013. 134 [78] I. Zelinka and J. Lampinen. Soma – self-organizing migrating algorithm. In MENDEL 2000, 6th International Conference on Soft Computing, pages 177–187, 2000. [79] J. Zhang and A. C. Sanderson. JADE: Adaptive differential evolution with optional external archive. IEEE Transactions on Evolutionary Computation, 13:945–958, 2009. 135 Seznam pracı́ autorky Články v časopisu s impakt faktorem [1] R. Poláková. A variant of competitive differential evolution algorithm with exponential crossover. Neural Network World, 20:159–169, 2010. [2] R. Poláková and J. Tvrdı́k. A combined approach to adaptive differential evolution. Neural Network World, 23:3–15, 2013. Články evidované v databázi Web of Science [1] J. Tvrdı́k and R. Poláková. Competitive differential evolution for constrained problems. In 2010 IEEE Congress on Evolutionary Computation (CEC), pages 1632–1639, 2010. [2] R. Poláková and J. Tvrdı́k. Various mutation strategies in enhanced competitive differential evolution for constrained optimization. In IEEE SSCI2011, Symposium on Differential Evolution (SDE) 2011 Proceedings, pages 17–24, 2011. [3] R. Poláková and J. Tvrdı́k. A comparison of two adaptation approaches in differential evolution. In Lecture Notes in Computer Science 7269, pages 317–324. Springer, 2012. [4] R. Poláková and J. Tvrdı́k. Competitive differential evolution algorithm in comparison with other adaptive variants. In V. Snasel, A. Abraham, and E. S. Corchado, editors, Soft Computing Models in Industrial and Environmental Applications, pages 133–142, 2013. 136 [5] J. Tvrdı́k, R. Poláková, and P. Bujok. A comparison of adaptive differential evolution variants for single-objective optimization. In 18th International Conference on Soft Computing MENDEL 2012, pages 132– 137, Brno, 2012. [6] J. Tvrdı́k and R. Poláková. Competitive differential evolution applied to CEC 2013 problems. In IEEE Congress on Evolutionary Computation 2013 Proceedings, pages 1651–1657, 2013. [7] J. Tvrdı́k, P. Bujok, and R. Poláková. A comparison of adaptive differential evolution algorithms on CEC 2013 benchmark problems. In 19th International Conference on Soft Computing MENDEL 2013, pages 123– 128, Brno, 2013. [8] R. Poláková, J. Tvrdı́k, and P. Bujok. Controlled restart in differential evolution applied to CEC2014 benchmark functions. In IEEE Congress on Evolutionary Computation 2014 Proceedings, pages 2230–2236, 2014. [9] P. Bujok, J. Tvrdı́k, and R. Poláková. Differential evolution with rotation-invariant mutation and competing-strategies adaptation. In IEEE Congress on Evolutionary Computation 2014 Proceedings, pages 2253–2258, 2014. [10] J. Tvrdı́k and R. Poláková. Competitive-adaptive differential evolution with rotation-invariant strategies. In 20th International Conference on Soft Computing MENDEL 2014, pages 59–64, Brno, 2014. 137 Kapitola v knize [1] J. Tvrdı́k, R. Poláková, J. Veselský, and P. Bujok. Adaptive variants of differential evolution: Towards control-parameter-free optimizers. In Handbook of Optimization, pages 423–449. Springer, 2012. Ostatnı́ články a abstrakty [1] J. Tvrdı́k and R. Poláková. Enhanced competitive differential evolution for constrained optimization. In Proceedings of the International Multiconference on Computer Science and Information Technology, pages 909–915, 2010. [2] R. Poláková. A new variant of competitive differential evolution algorithm. In ISCAMI 2009, page 55, 2009. [3] R. Poláková. Constrained problems solved by competitive differential evolution. In ISCAMI 2010, page 35, 2010. [4] R. Poláková. A modification of enhanced competitive differential evolution for constrained optimization. In ISCAMI 2011, page 64, 2011. [5] R. Poláková. Adaptation in DE. In ISCAMI 2012, page 69, 2012. [6] R. Poláková. A modification of adaptive differential evolution. In ISCAMI 2013, page 57, 2013. [7] R. Poláková. Various strategies in an adaptive differential evolution. In ISCAMI 2014, page 47, 2014. 138 Seznam obrázků 1 Mutace rand/1 v prostoru dimenze d = 2 . . . . . . . . . . . 28 2 Binomické křı́ženı́ (d = 10) . . . . . . . . . . . . . . . . . . . 32 3 Exponenciálnı́ křı́ženı́ (d = 10) . . . . . . . . . . . . . . . . . 33 4 Porovnánı́ závislosti CR na pravděpodobnosti mutace pm pro binomické a exponenciálnı́ křı́ženı́, d = 30 . . . . . . . . . . . 5 34 Závislost CR na pravděpodobnosti mutace pm pro exponenciálnı́ křı́ženı́ a hodnoty pm1 , pm2 , pm3 , d = 30 . . . . . . . . . . . . 44 6 Část grafu Prvnı́ De Jongovy funkce, d = 2 . . . . . . . . . . 74 7 Část grafu Ackleyho funkce, d = 2 . . . . . . . . . . . . . . . 74 8 Část grafu Griewankovy funkce, d = 2 . . . . . . . . . . . . . 75 9 Část grafu Rastriginovy funkce, d = 2 . . . . . . . . . . . . . 75 10 Část grafu Rosenbrockovy funkce, d = 2 . . . . . . . . . . . . 76 11 Část grafu Schwefelovy funkce, d = 2 . . . . . . . . . . . . . . 76 139 Seznam tabulek 1 Nastavenı́ DE soutěžı́cı́ v b6e6rl . . . . . . . . . . . . . . . . . 2 Průměrné délky běhů nfe a spolehlivost R algoritmů C-C, E-E, C-E, E-C pro d = 30 . . . . . . . . . . . . . . . . . . . . 3 45 90 Průměrné délky běhů nfe a spolehlivost R algoritmů C-C, E-E, C-E, E-C pro d = 100 (Ackleyho, Prvnı́ De Jongova a Griewankova funkce) . . . . . . . . . . . . . . . . . . . . . . . 4 90 Průměrné délky běhů nfe a spolehlivost R algoritmů C-C, E-E, C-E, E-C pro d = 100 (Rastriginova, Rosenbrockova a Schwefelova funkce) . . . . . . . . . . . . . . . . . . . . . . . . 5 Porovnánı́ původnı́ch algoritmů C-C (b6e6rl) a E-E (EPSDE), výsledky statistických testů . . . . . . . . . . . . . . . . . . . 6 91 92 Porovnánı́ pomocných algoritmů s různými adaptivnı́mi přı́stupy a stejnou množinou možných nastavenı́ DE, výsledky statistických testů . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 92 Porovnánı́ pomocných algoritmů se stejným adaptivnı́m přı́stupem a různými množinami možných nastavenı́ DE, výsledky statistických testů . . . . . . . . . . . . . . . . . . . . . . . . . . 8 Výsledky testů adaptivnı́ch variant DE na základnı́ testovacı́ sadě – průměrné délky běhů nfe, d = 10 . . . . . . . . . . . . 9 97 Výsledky testů adaptivnı́ch variant DE na základnı́ testovacı́ sadě – průměrné délky běhů nfe, d = 30 . . . . . . . . . . . . 11 97 Výsledky testů adaptivnı́ch variant DE na základnı́ testovacı́ sadě – spolehlivost R, d = 10 . . . . . . . . . . . . . . . . . . 10 93 98 Výsledky testů adaptivnı́ch variant DE na základnı́ testovacı́ sadě – spolehlivost R, d = 30 . . . . . . . . . . . . . . . . . . 140 98 12 Výsledky testů adaptivnı́ch variant DE na základnı́ testovacı́ sadě – průměrné délky běhů nfe, d = 200 . . . . . . . . . . . . 13 Výsledky testů adaptivnı́ch variant DE na základnı́ testovacı́ sadě – spolehlivost R, d = 200 . . . . . . . . . . . . . . . . . . 14 99 99 Shrnutı́ porovnánı́ testovaných adaptivnı́ch variant DE – průměrné spolehlivosti algoritmů a pořadı́ algoritmů podle průměrné spolehlivosti . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100 15 Shrnutı́ porovnánı́ testovaných adaptivnı́ch variant DE – průměrné počty výpočtů účelové funkce algoritmů a pořadı́ algoritmů podle průměrného počtu výpočtů účelové funkce . . . . . . . 100 16 Požadovaná přesnost pro účelové funkce optimalizačnı́ch problémů ze sady CEC2005 . . . . . . . . . . . . . . . . . . . . . . . . . 106 17 Porovnánı́ testovaných variant jDE – mediány řešenı́ a pořadı́ verzı́ algoritmu jDE s různými velikostmi populace . . . . . . 107 18 Porovnánı́ testovaných variant Comp3jDE – mediány řešenı́ a pořadı́ verzı́ algoritmu Comp3jDE s různými velikostmi populace . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 108 19 Porovnánı́ nově navrženého algoritmu Comp3jDE s adaptivnı́mi verzemi jDE a soutěživá DE . . . . . . . . . . . . . . . . . . . 109 20 Porovnánı́ efektivity algoritmu soutěživé DE b6e6rl a soutěživé DE s oživenı́m populace mb6e6rl na testovacı́ sadě CEC2013 . 114 21 Počty běhů s nalezeným přijatelným řešenı́m pro algoritmus 22 navržený pro CEC2010 a enhanced“ algoritmus . . . . . . . 120 ” Nastavenı́ DE soutěžı́cı́ v čtvrté variantě enhanced“ algo” ritmu testované v [36] . . . . . . . . . . . . . . . . . . . . . . 122 141 Seznam algoritmů 1 Diferenciálnı́ evoluce . . . . . . . . . . . . . . . . . . . . . . . 26 2 jDE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40 3 Soutěživá DE . . . . . . . . . . . . . . . . . . . . . . . . . . . 42 4 JADE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48 5 SADE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51 6 EPSDE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54 7 CoDE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56 8 SHADE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60 9 ODE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66 10 εDE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85 11 mb6e6rl . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112 12 Soutěživá DE pro problémy s vázanými extrémy . . . . . . . 116 13 Enhanced“ algoritmus ” . . . . . . . . . . . . . . . . . . . . . 118 142
Podobné dokumenty
6 - TVOYO TV
Po absolvování tohoto kroku můžete začít implementovat, jak je popsáno v kapitole 3 za podmínek
uvedených v kapitole 5, a provádět testovací transakce, jak je popsáno v kapitole 3.7.
Vaz_os (3)
děje (např. kruhy na vodě, šı́řenı́ zvuku). Lidé se těmito úkazy zabývali již od pradávna
a snažili se tyto jevy popsat a vysvětlit. Prvnı́m fyzikálnı́m úspěchem byl Galileův a
Huy...
Analýza a návrh systému pro SelfTesty
e-learningu, narazíme na spoustu různých a často nesourodých definic, které se pokouší pojem e-learning co nejvýstižněji popsat. Hlavní příčinou je velká různorodost prostředí, pro
které lze tento ...
F1 - Natura
život na Zemi zřejmě vznikal a zanikal opakovaně, než k jeho evoluci byly přı́znivé podmı́nky po
dostatečně dlouhou dobu.
Podle postupné endosymbiotické teorie, jı́ž vypracovala Lynn Ma...
Uživatelská technická dokumentace Verze 3.1
bychom však upozornili na to, že použití těchto parametrů velmi zjednoduší proces platby v případě, kdy
Zákazník provádí úhradu platební kartou prostřednictvím stránky společnosti Skrill (bývalé Mo...
Výsledková listina kategorie M-oř (Peanuts) ve
ADAM JENIK
MICHAL KREPELKA
PAVEL FORMANEK
ONDREJ KRUCKY
ROBERT COK
MILOS HYL
PAVEL FORMANEK
MICHAL KREPELKA
MICHAL KREPELKA
VIKTOR LUKAC
Prvoc´ısla - BRKOS - Masarykova univerzita
Fermatův test odhalı́ složenost N, pro některá výjimečná N
dokonce jediná taková a jsou soudělná s N, jejich nalezenı́ je tedy
ekvivalentnı́ s rozkladem N na prvočı́sla.
Skutečně exis...