CourseWare Wiki
Switch Term
Winter 2023 / 2024
Winter 2022 / 2023
Winter 2021 / 2022
Winter 2020 / 2021
Winter 2019 / 2020
Winter 2018 / 2019
Older
Search
Log In
b181
courses
a0m33eoa
cviceni
tyden_03
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.
View differences:
Side by Side
Inline
Go
Link to this comparison view
Both sides previous revision
Previous revision
2018/11/04 17:53 xposik [Fitness funkce]
2018/10/15 15:22 xposik [Vizualizace]
2018/10/15 15:19 xposik [Vizualizace]
2018/10/15 15:17 xposik [Lokální prohledávání a pravidlo 1/5]
2018/10/15 15:16 xposik [Lokální prohledávání a pravidlo 1/5]
2018/10/15 15:15 xposik [Lokální prohledávání]
2018/10/15 15:09 xposik [Mapování bin->real]
2018/10/15 15:09 xposik [Fitness funkce]
2018/10/15 14:52 xposik [Fitness funkce]
2018/10/15 14:46 xposik [Fitness funkce]
2018/10/15 14:44 xposik [Fitness funkce]
2018/10/15 14:36 xposik [Fitness funkce]
2018/10/15 14:29 xposik [Fitness funkce]
2018/10/15 14:24 xposik [Fitness funkce]
2018/10/15 14:23 xposik [Fitness funkce]
2018/10/15 14:23 xposik created
Go
Next revision
Previous revision
2018/11/04 17:53 xposik [Fitness funkce]
2018/10/15 15:22 xposik [Vizualizace]
2018/10/15 15:19 xposik [Vizualizace]
2018/10/15 15:17 xposik [Lokální prohledávání a pravidlo 1/5]
2018/10/15 15:16 xposik [Lokální prohledávání a pravidlo 1/5]
2018/10/15 15:15 xposik [Lokální prohledávání]
2018/10/15 15:09 xposik [Mapování bin->real]
2018/10/15 15:09 xposik [Fitness funkce]
2018/10/15 14:52 xposik [Fitness funkce]
2018/10/15 14:46 xposik [Fitness funkce]
2018/10/15 14:44 xposik [Fitness funkce]
2018/10/15 14:36 xposik [Fitness funkce]
2018/10/15 14:29 xposik [Fitness funkce]
2018/10/15 14:24 xposik [Fitness funkce]
2018/10/15 14:23 xposik [Fitness funkce]
2018/10/15 14:23 xposik created
Go
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
př
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é funkce
.
Pokud jste algoritmus implementovali vhodným způsobem, nemělo by být nutné ho měnit, mělo by sta
č
it vyměnit účelovou funkci
,
inicializa
ční
proceduru a
operátor
perturbace.
-
^ Parametr | Ú
č
elová funkce
,
kterou 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 (bin
.
vektor) |
+
-
^ Výstup | Statistiky o optimalizaci |
+
===== Vizualizace =====
-
Pokuste se
vá
š
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