Adaptace v algoritmu diferenciáln´ı evoluce

Transkript

Adaptace v algoritmu diferenciáln´ı evoluce
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

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.

Více

Vaz_os (3)

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...

Více

Analýza a návrh systému pro SelfTesty

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 ...

Více

F1 - Natura

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...

Více

Uživatelská technická dokumentace Verze 3.1

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íce

Výsledková listina kategorie M-oř (Peanuts) ve

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

Více

Prvoc´ısla - BRKOS - Masarykova univerzita

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...

Více