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