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.

s přímým voláním funkcí DLL knihovny). Toto zjednodušení si ovšem vybralo menší daň<br />

v podobě nepatrného zpomalení výpočtů (časové náklady na volání Matlab funkcí a návrat zpět<br />

do hlavního programu). Pro získání maximální rychlosti výpočtů by bylo potřeba sestavit hlavní<br />

program, který by volal přímo funkce DLL. Tímto by bylo možno dosáhnout dalšího, až<br />

50procentního urychlení oproti programu, který bude volat GATE-DLL funkce.<br />

4.4.1 Systém GATE-DLL<br />

Koncepce GATE-DLL je z pohledu uživatele tvořena sadou předdefinovaných Matlab<br />

funkcí, které je třeba volat v určitém smysluplném pořadí. GA a HCA <strong>algoritmy</strong> mají odlišnou<br />

strukturu volání funkcí, ale některé funkce jsou pro všechny <strong>algoritmy</strong> společné. GATE-DLL<br />

funkce mají téměř shodnou syntaxi jako zápis funkcí původního GATE. Snažil jsem se o<br />

maximální kompatibilitu funkcí. Také hlavní struktura je z větší části naprosto stejná. Některé<br />

funkce a parametry nebyly implementovány (externí DLL by v tomto případě nepřineslo žádné<br />

urychlení, nebo byla vhodnost parametrů posouzena jako ne moc výhodná, proto byl vývoj DLL<br />

zaměřen hlavně na ty funkce a parametry, které jsou důležitější).<br />

4.4.2 Popis hlavní struktury GATE-DLL<br />

Hlavní struktura GATE-DLL byla navržena tak, aby byla co nejvíce podobná původní<br />

GATE struktuře a uživatel mohl v případě nutnosti pokračovat ve výpočtu pomocí GATE. Jako<br />

strukturu pro GATE by však použil GATE-DLL strukturu.<br />

Jedná se o strukturu, ve které jsou uchovávány veškeré parametry a nastavení pro řešení<br />

dané optimalizační úlohy.<br />

Popis položek GATE-DLL Matlab struktury:<br />

nParam - počet parametrů optimalizační úlohy<br />

nBitParam - počet bitů, kolika jsou kódovány jednotlivé parametry<br />

nIndi - velikost populace jedinců GA algoritmů<br />

funName - jméno vektorizované účelové funkce<br />

funOpt - druh optimalizace, minimum nebo maximum {'min', 'max'}<br />

mCode - typ binárního kódování, binární nebo Grayovo {'BC', 'GC'}<br />

iParam - rozsahy, na kterých jsou kódovány jednotlivé parametry; matice rozměru<br />

nParam × 2<br />

mInit - typ inicializace, náhodná nebo startvektorem {'random', 'svect'}<br />

(inicializace startvektorem pouze pro HCA)<br />

rndSeed - inicializační hodnota pro generátor náhodných čísel<br />

Method - typ metody HCA {'HC1', 'HC2', 'HC12'}<br />

sVect - startvektor pro inicializaci HCA ve formě matice rozměru 1 × nParam<br />

GA.funName = 'f6';<br />

GA.funOpt = 'min';<br />

GA.iParam = [-5 5];<br />

GA.nParam = 2;<br />

GA.nBitParam = 16;<br />

GA.nIndi = 500;<br />

GA.mCode = 'BC';<br />

GA.mInit = 'random'<br />

GA.rndSeed = 156;<br />

HC.funName = 'f1';<br />

HC.funOpt = 'min';<br />

HC.iParam = [-5.1 5];<br />

HC.mCode = 'BC';<br />

HC.Method = 'HC12';<br />

HC.mInit = 'svect';<br />

HC.sVect = [1 1 2];<br />

HC.nParam = 3;<br />

HC.nBitParam = 63;<br />

HC.rndSeed = 156;<br />

Obr. 15 Příklady správně definovaných struktur pro GA a HCA<br />

41

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

Saved successfully!

Ooh no, something went wrong!