01.12.2014 Views

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

SHOW MORE
SHOW LESS

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.

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!