Warning
This page is located in archive. Go to the latest version of this course pages.

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
Last revision Both sides next revision
courses:a0m33eoa:cviceni:tyden_03 [2018/10/15 14:52]
xposik [Fitness funkce]
courses:a0m33eoa:cviceni:tyden_03 [2018/10/15 15:22]
xposik [Vizualizace]
Line 56: Line 56:
 Funkce se obvykle optimalizuje v rozsahu $\langle -512.03, 511.97 \rangle^D$ a její minimální hodnota je cca -418.9829. ​ Funkce se obvykle optimalizuje v rozsahu $\langle -512.03, 511.97 \rangle^D$ a její minimální hodnota je cca -418.9829. ​
  
-/* 
  
-===== Perturbace ===== 
-Implementujte operaci perturbace pro binární reprezentaci. Operátor by se měl pro každý bit nezávisle rozhodovat, zda jej invertuje nebo ne. Je tedy možné, že dojde k inverzi více než 1 bitu při jediné operaci perturbace. 
-^ Parametr | Pravděpodobnost inverze bitu | 
-^ Vstup | Binární chromozom | 
-^ Výstup | Pozměněný binární chromozom | 
-Promyslete si a rozhodněte se, zda budete přímo měnit datovou strukturu, která je vstupem operátoru, nebo zda budete vracet její pozměněnou kopii. 
  
-===== Mapování bin->​real ​===== +===== Perturbace, mutace ​===== 
-Implementujte ​funkci ​pro převod binárního řetězce na vektor ​reálných čísel. + 
-^ Parametr | Dolní a horní mez všech souřadnic v reálném prostoru ​+** S normálním rozdělením ** 
-^ Vstup | Binární řetězec ​+ 
-^ Výstup | Vektor ​reálných čísel |+Implementujte ​operaci perturbace/​mutace ​pro vektory reálných čísel. Operátor by měl vektor reálných čísel pozměněnit ​ičtením stejně velkého vektoru ​reálných čísel ​pocházejícího z normálního rozdělení $N(0, \sigma)$
 +^ Parametr | $\sigma$, směrodatná odchylka použitého normálního rozdělení. ​
 +^ Vstup | Vektor reálných čísel. ​
 +^ Výstup | Pozměněný vektor. | 
 +Podobně jako u binární reprezentace promyslete, zda budete přímo měnit datovou strukturu, která je vstupem operátoru, nebo zda budete vracet její pozměněnou kopii. 
 + 
 +** Libovolná jiná ** 
 + 
 +Implementujte ještě alespoň jeden další operátor mutace pro vektory ​reálných čísel. Např. 
 +  * využijte jiné rozdělení než normální:​ 
 +    * rovnoměrné na hyperintervalu se středem v mutovaném bodě, parametrem bude rozměr hyperintervalu,​ nebo 
 +    * [[https://​en.wikipedia.org/​wiki/​Cauchy_distribution|Cauchyho rozdělení]] v každé souřadnici s parametrem $\gamma$, nebo 
 +  * využijte vzor bodů v okolí mutovaného bodu, např. 
 +    * výsledkem mutace může být vždy náhodně vybraný bod z $2D$ bodů ve vzdálenosti $\pm d$ od mutovaného bodu v každé z $D$ souřadnic, apod.   
  
 ===== Lokální prohledávání ===== ===== Lokální prohledávání =====
-Implementujte ​algoritmus lokálního prohledávání ​pro binární reprezentaci +Aplikujte ​algoritmus lokálního prohledávání, který jste implementovali minulou hodinu, na výše uvedené funkcePokud jste algoritmus implementovali vhodným způsobem, nemělo by být nutné ho měnit, mělo by stačit vyměnit účelovou funkciinicializační proceduru a operátor ​perturbace. 
-^ Parametr | Účelová funkcekterou chcete optimalizovat | + 
-^ Parametr | Perturbační operátor, ​který chcete ​použít | + 
-^ Parametr | Ukončovací podmínky | +===== Lokální prohledávání a pravidlo 1/5 ===== 
-^ Vstup | Počáteční ​řešení (bin. vektor+Patrně jste si již uvědomiliže lokální prohledávání s '​first-improving'​ strategií je vlastně (1+1)-ES. Vytvořte adaptivní verzi algoritmu lokálního prohledávání,​ která bude používat pravidlo 1/5 k adaptaci rozměrového parametru u operátoru mutace. Pravidlo 1/5 je popsáno v {{ :​courses:​a0m33eoa:​prednasky:​eoa03_realeas_slides.pdf ​|přednášce o reálných EA}} (slide 23-24). 
-^ Výstup | Výsledek optimalizace (binvektor) | + 
-^ Výstup | Statistiky o optimalizaci |+===== Vizualizace =====
  
-Pokuste se š algoritmus aplikovat na všechny výše uvedené ​účelové funkce. +Pokuste se spustit simulace, nasbírat data a vytvořit grafy podobné těm ze slidu 22 přednášky o reálných EA, a to pro různé ​účelové funkce.
-*/+
  
 +Na zvolené vizualizační knihovně nezáleží. Máte-li nějakou oblíbenou, použijte ji. Pokud vámi vybraný jazyk žádnou nedisponuje nebo ji neovládáte,​ doporučuji uložit data do souboru a ta vizualizovat v MATLABu, v Pythonu s využitím matplotlibu,​ nebo přinejhorším v Excelu/​Google sheets.
courses/a0m33eoa/cviceni/tyden_03.txt · Last modified: 2018/11/04 17:53 by xposik