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
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
37<br />
Funkce<br />
Popis<br />
FitnessHC(*FzHC)<br />
Odeslání ohodnocení bloku jedinců, kteří jsou optimalizovaní HCA algoritmem, zpět do DLL<br />
Parametr Popis Možné hodnoty<br />
- Matice ohodnocení jedinců, typu double<br />
Parametry - Rozměru (Y x 1)<br />
jednorozměrné<br />
*FzHC<br />
- Rozměr Y zjistíme voláním funkce<br />
double pole<br />
HowMuchAlloc(CoreSize,Method)<br />
Algoritmus GA-HC pracuje stejně jako algoritmus GA, pouze mutace je vylepšena.<br />
V populaci jsou náhodně vybírána jádra o předem zvolené šířce a tato jádra jsou optimalizována<br />
pomocí definovaného algoritmu HCA. Poté je třeba tento nový blok jedinců (blok populace<br />
celých chromozomů se změněnými jádry) ohodnotit v systému Matlab a hodnocení odeslat zpět<br />
do knihovny DLL. Metoda MutationHC tedy není pouze jenom jedna exportní funkce, ale je<br />
součástí tří metod (MutationHC,GetRealHC,FitnessHC). Bez dalších dvou metod by ji nebylo<br />
možné realizovat (vzhledem k tomu, že DLL jádro pracuje interně, ale ohodnocování provádí<br />
externě systém Matlab).<br />
4.3.4 Funkce pro kompatibilitu s původním GATE<br />
Tyto funkce jsou implementovány proto, aby zůstal nový GATE-DLL kompatibilní<br />
s původním GATE <strong>toolbox</strong>em. Uvážíme-li, že knihovna DLL pracuje interně naprosto<br />
autonomně (veškeré struktury a nastavení jsou modifikovány pouze uvnitř), je třeba doplnit<br />
několik funkcí, které by dokázaly exportovat některé struktury do systému Matlab. Jedná se<br />
hlavně o binární populaci jedinců, která je nutná, pokud by se uživatel rozhodl pokračovat ve<br />
výpočtu v původním GATE <strong>toolbox</strong>u. Rozhodnutí udržovat struktury po celou dobu<br />
optimalizačního procesu pouze v DLL knihovně bylo učiněno na základě rychlostních testů.<br />
Když si uvědomíme, že v každém kroku libovolného algoritmu by bylo třeba exportovat celou<br />
binární populaci (jedná se většinou o matici dost velkého rozměru) do systému Matlab, je jasné,<br />
že rychlost výpočtů nového GATE-DLL by zřejmě nebyla o moc vyšší, než u původního<br />
GATE. A GATE-DLL byl zadán s jasným cílem: urychlit stávající výpočty.<br />
Funkce<br />
Popis<br />
Parametry *BinArr<br />
Funkce<br />
Popis<br />
GetBinPool(*BinArr)<br />
- Získání populace jedinců z DLL v binárním tvaru<br />
- Je třeba volat s parametrem naalokované matice správného rozměru!<br />
Parametr Popis Možné hodnoty<br />
SetBinPool(*BinArr)<br />
- Ukazatel na matici typu double<br />
- Matice musí být předem naalokována!<br />
- Rozměr matice musí být (nInd x nParam ∙ nBitParam)<br />
Nastavení interní binární populace jedinců DLL na určité hodnoty<br />
jednorozměrné<br />
double pole<br />
Parametr Popis Možné hodnoty<br />
Parametry - Matice typu double<br />
jednorozměrné<br />
*BinArr<br />
- Rozměr matice musí být (nInd x nParam ∙ nBitParam) double pole<br />
Funkce<br />
Popis<br />
Parametry *BinArr<br />
GetBinActVec(*BinArr)<br />
- Získání nejlepšího chromozmu z DLL v binárním tvaru<br />
- Je třeba volat s parametrem naalokované matice správného rozměru!<br />
Parametr Popis Možné hodnoty<br />
- Ukazatel na matici typu double<br />
- Matice musí být předem naalokována!<br />
- Rozměr matice musí být (1 x nParam ∙ nBitParam)<br />
jednorozměrné<br />
double pole