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.
26<br />
Všechny potřebné struktury a metody ke správné funkci jádra jsou uvedeny na<br />
následujícím obrázku:<br />
Hlavní datové struktury:<br />
Konverzní metody:<br />
Důležité parametry:<br />
nParam<br />
1<br />
iParam<br />
ActVect<br />
ActValue<br />
sVect<br />
Gray/Bin ⇔ Int ⇔ Real<br />
Podpora XML:<br />
Save/Load XML,<br />
ReinitXMLCore,<br />
FreeXMLCore<br />
Kompatibilita s GATE:<br />
nParam<br />
nBitParam<br />
nIndi<br />
mCode<br />
funcOpt<br />
funcName<br />
iParam<br />
sVect<br />
Get/SetBinPool,<br />
Get/SetActVect,<br />
ExportParams<br />
Podpora distrib. výpočtů:<br />
nIndi<br />
PopArr<br />
Fz<br />
AddClient,<br />
GetClientStatus<br />
Výkonné metody:<br />
nParam ⋅ nBitParam<br />
1<br />
Fitness,<br />
Selection,<br />
Cross,<br />
Mutation,<br />
FitnessHC,<br />
MutationHC<br />
Obr. 7 Důležité metody a struktury jádra COptMethod<br />
Popis důležitých parametrů:<br />
nParam - počet parametrů optimalizační úlohy<br />
nBitParam - udává, kolika bity je kódován každý parametr<br />
nIndi - počet jedinců populace (liší se u jednotlivých metod HCA a GA)<br />
mCode - druh použitého kódování chromozomů – binární nebo Grayův kód<br />
funcOpt - požadavek optimalizace – minimum nebo maximum<br />
funcName - jméno účelové funkce (Matlab „m“ souboru)<br />
Popis důležitých struktur:<br />
PopArr - hlavní binární struktura pro populaci jedinců ( nIndi× nParam ⋅nBitParam<br />
)<br />
Fz - fitness, tedy ohodnocení jedinců ( nIndi × 1)<br />
ActVect - aktuální, nejlepší nalezený jedinec ( 1 × nParam ⋅ nBitParam )<br />
ActValue - ohodnocení nejlepšího jedince ( 1× 1)<br />
iParam - rozsahy kódovaných parametrů (omezující podmínky) ( nParam × 2 )<br />
sVect - vektor reálných čísel použitý pro start HCA ( 1 × nParam )<br />
Binární populace jedinců PopArr je řešena jako dvourozměrné dynamické pole typu<br />
unsigned char, takže každá binární hodnota je uchovávána v jednobajtové buňce. Toto řešení se<br />
mi jevilo jako nejlepší, uvažoval jsem i o implementaci typu „bit na bit“. Ovšem adresace<br />
takového pole by byla extrémně složitá a pole by muselo by být „slepeno“ z mnoha např. 32<br />
bitových neznaménkových buněk, musel by se řešit plynulý přechod bitů mezi jednotlivými<br />
buňkami, atp. Celá implementace by se zřejmě dosti zpomalila, ovšem za cenu osminásobně<br />
menšího obsazení paměti. Vzhledem k tomu, že dnešní počítače jsou vybaveny operační pamětí