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

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

4.5.1 Struktura master XML souboru<br />

V dřívějších kapitolách jsem již zmínil, že komunikace probíhá netradičním způsobem,<br />

a to přes master XML soubor, který zakládá serverová aplikace. Klienty jsou jednotlivé<br />

GATE−DLL sady funkcí, spouštěné v systému Matlab. Zamezení kolizím při zápisu je řešeno<br />

pomocí archivního atributu souboru. Každá zapisující strana nejdříve testuje stav atributu a<br />

pokud není nastaven, nastaví jej a provede čtení/zápis z/do XML. Po dokončení operace jej zase<br />

vrátí do původního stavu.<br />

Popis položek master XML souboru:<br />

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

nBitParam - počet bitů, kolika bude kódován každý parametr<br />

nIndi - velikost populace jedinců<br />

mCode - typ binárního kódování – binární nebo Grayovo<br />

funcOpt - požadavek optimalizace – minimum nebo maximum<br />

funcName - jméno vektorizované účelové funkce (Matlab „m“ souboru)<br />

iParam - intervaly, na kterých jsou kódovány parametry (omezující podmínky)<br />

rndSeed - inicializační hodnota pro generátor náhodných čísel (vždy 0)<br />

GenStep - počet generací GA algoritmu, po kterých hlásí klienti svůj stav server aplikaci<br />

BestFit - celkově nejlepší fitness ze všech připojených klientů<br />

BestBinFit - celkově nejlepší chromozom ze všech připojených klientů<br />

Clients - počet klientů připojených k serveru<br />

Položky, které přidávají jednotliví klienti:<br />

ClientXFit - nejlepší fitness nalezené klientem číslo X<br />

ClientXBinFit - nejlepší chromozom nalezený klientem číslo X<br />

ClientXStatus - stav klienta číslo X (0, 1, 2, 3) ~ (working, restart, stop, starting)<br />

4.5.2 Průběh komunikace:<br />

Komunikace mezi serverem a klienty probíhá následujícím způsobem:<br />

1) Server aplikace založí master XML soubor s celkovým nastavením optimalizační úlohy.<br />

2) Master soubor musí být nasdílen na síti, aby byl pro klienty pracující na různých<br />

výpočetních strojích dostupný.<br />

3) Server poté monitoruje master XML v 3sekundových intervalech, zda se připojil nějaký<br />

nový klient.<br />

4) Spuštěný klient si ihned na začátku načte globální nastavení z XML souboru, zároveň<br />

zvětší hodnotu Clients o 1. Dále nastaví svůj ClientStatus na hodnotu 3 (starting), čímž<br />

dá najevo serveru, že se připojil nový klient a že ještě nemá vypočteno žádné řešení.<br />

Také si načte hodnotu GenStep, která udává, po kolika generacích GA má hlásit stav<br />

výpočtu serveru.<br />

5) Klient dokončí jeden výpočetní cyklus a předá nalezené řešení do XML. Svůj status<br />

nastaví na hodnotu 0 (runing).<br />

6) Server zaznamená při dalším intervalu monitoringu XML souboru, že se připojil nový<br />

klient a načte jeho řešení.<br />

7) Pokud nastane požadavek restartovat nebo zastavit klienta, zapíše do stavu klienta buď<br />

1 (restart), nebo 2 (stop).<br />

8) Klient si v dalším cyklu nejdříve testuje status, pokud je požadavek k ukončení, zastaví<br />

se. Pokud je požadavek k restartu, načte celkovou nejlepší hodnotu serveru BestFit a<br />

porovnává, zda mezitím on sám nenašel lepší hodnotu (komunikace je zpožděna o 1<br />

cyklus klienta). Pokud je celková hodnota serveru lepší, zařadí chromozom BestBinFit<br />

do populace místo nejhoršího jedince a pokračuje ve výpočtech.<br />

9) Při zastavení serveru se odešle všem klientům stav stop.<br />

47

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

Saved successfully!

Ooh no, something went wrong!