Search
Cílem dnešního cvičení je implementace evolučního algoritmu pro úlohy s omezeními. Podobně jako u vícekriteriálního algoritmu NSGA-II i teď stačí implementovat jednoduché úpravy základního evolučního algoritmu. Vyzkoušíme si dvě varianty adaptivní penalizace, které jsem probrali na přednášce:
Pokud úkoly nestihnete na cvičení, dokončete je doma.
Tato metoda adaptuje váhu $r_g(t)$ v čase následujícím způsobem:
$\beta_1, \beta_2 > 1$ a $\beta_1 \neq \beta_2$
Implementujte tuto adaptivní metodu.
Implementujte metodu pro výpočet fitness daného jedince ve tvaru $fitness(x) = f(x) + r_g(t)*\sum_{i=1}^{m+p}G_i(x)$, kde
Implementujte evoluční algoritmus s generační náhradovou strategií, používající implementovanou fitness funkci s adaptovanou váhou penalizace nepřípustných řešení.
Tato metoda nejprve seřadí jedince v populaci od nejlepšího po nejhoršího pomocí stochastické metody podobné Bubble-sort. Na takto seřazenou populaci potom můžeme aplikovat např. turnajovou selekci, ve které jedinec s nižším pořadím vítězí nad jedincem s vyšším pořadím.
Implementujte metodu stochastického Bubble-sortu, viz přednáška.
Implementujte evoluční algoritmus s generační náhradovou strategií, používající implementovanou metodu stochastického řazení a pořadovou turnajovou selekci.
Jako testovací problém použijeme optimalizaci reálných funkcí se spojitými parametry. Konkrétně problémy g06, g08, g11 a g24 z článku problem_definitions.
Použijte již naimplementované operátory pro reálnou reprezentaci.
Problém g06:
Problém g08:
Problém g11:
Problém g24: