vysoké uÄenà technické v brnÄ evoluÄnà algoritmy - matlab gate toolbox
vysoké uÄenà technické v brnÄ evoluÄnà algoritmy - matlab gate toolbox
vysoké uÄenà technické v brnÄ evoluÄnà algoritmy - matlab gate toolbox
You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
29<br />
ρ H =1<br />
00000<br />
ρ H = 2<br />
00000<br />
10000<br />
01000<br />
00100<br />
00010<br />
00001<br />
11000<br />
10100<br />
10010<br />
10001<br />
01100<br />
01010<br />
01001<br />
00110<br />
00101<br />
00011<br />
Obr. 8 Příklad generování šířky okolí ρ = 1 a ρ = 2 pro nulový vektor<br />
H<br />
H<br />
Parametry optimalizační úlohy jsou uloženy za sebou v binárním řetězci, ze kterého se<br />
následně generuje okolí. Pracuje se s celou délkou řetězce, tedy s parametry uloženými<br />
postupně vedle sebe, jak je vidět z následujícího obrázku.<br />
Hodnoty parametrů<br />
x 3 =+1.9898039216<br />
x 2 =+0.9996078431<br />
x 1 =+0.4847058824<br />
iParam<br />
[-5.100;5.000]<br />
[-5.100;5.000]<br />
[-5.100;5.000]<br />
nParam = 3<br />
nBitparam = 8<br />
10000011 10001010 10000101<br />
Aktuální binární vektor<br />
Obr. 9 Reprezentace parametrů v binárním řetězci algoritmu HCA<br />
Inicializace algoritmů HCA může být provedena dvěma způsoby: buď pomocí<br />
startvektoru nebo náhodného vektoru. Při inicializaci startvektorem uživatel zadá požadavek<br />
počátečních bodů pro každý parametr. Pro druhý případ se vygeneruje náhodný startvektor.<br />
Algoritmy HCA pracují podle následujících kroků:<br />
F Z =+0.169896039984621210<br />
Hodnota účelové funkce<br />
1) Na začátku je uživatelem zadán startvektor nebo je vygenerován náhodně, který se<br />
stává zároveň vektorem aktuálním.<br />
2) Provede se vygenerování dané šířky okolí pro aktuální vektor.<br />
3) Pošle se požadavek na ohodnocení okolí systému Matlab v podobě matice reálných<br />
čísel (matice rozměru nInd × nParam ).<br />
4) Systém Matlab ohodnotí vygenerované okolí pomocí vektorizované účelové funkce.<br />
5) Ohodnocené okolí je posláno zpět do knihovny DLL ve formě vektoru reálných čísel<br />
a uloží se do dynamického pole Fz.<br />
6) DLL knihovna vyhledá pomocí pole Fz nejlepší binární vektor a ten překopíruje na<br />
místo aktuálního vektoru.<br />
7) Pokračuje se znovu bodem 2, ukončení se provádí omezením počtu iteračních cyklů.<br />
Algoritmy HC2 a HC12 generují okolí s relativně mnoha řádky matice, zvlášť pokud je<br />
potřeba optimalizovat více parametrů s velkým počtem bitů na parametr. Např. při optimalizaci<br />
pěti parametrů s 64 bity na parametr generuje HC2 binární matici o rozměru 51360× 320 . Pro<br />
optimalizaci více parametrů je proto vhodnější použít nějakou efektivnější metodu, např.<br />
genetický algoritmus.