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.

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í

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

Saved successfully!

Ooh no, something went wrong!