Evoluční algoritmy
Cílem cvičení je především vyzkoušet si, jak se evoluční algoritmy chovají na jednoduchých úlohách. K tomu budeme používat Python a v něm napsanou jednoduchou „knihovnu“. Vaším úkolem potom typicky bude upravit/napsat nějaký operátor tak, aby algoritmus fungoval lépe. Pokud jste Python nikdy neviděli, není třeba se toho bát, na cvičení si vystačíte s úplnými základy (které jsou navíc stejné ve většině podobných jazyků).
Úkoly se odevzdávají v Sově.
Požadavky na zápočet
Během semestru proběhne celkem 12 cvičení, na 11 z nich budeme řešit nějaký úkol a bude možné získat 5 bodů, tj. celkem 55 bodů za semestr. Zároveň na mnoha cvičeních bude možné získat další bonusové body např. za nejlepší řešení nebo za splnění rozšířeného zadání.
Cvičení jsou rozdělena do skupin po 1–3 cvičeních, která se věnují podobným tématům. Úkoly budete odevzdávat vždy po posledním cvičení ze skupiny najednou. Termín pro odevzdání úkolu lze najít u zadání a vždy bude nastaven na přibližně dva týdny po zadání úkolu. Pro získání plného počtu bodů za úkol je potřeba jej odevzdat před tímto termínem. Za odevzdání maximálně dva týdny po termínu je možné získat polovinu bodů. Některé bonusové body budou omezeny odevzdáním před dalším cvičením.
Pro získání zápočtu je třeba mít aspoň 36 bodů na konci semestru.
Podmínky pro odevzdávání úkolů
Součástí každého odevzdaného úkolu musí být krátký popis toho, co jste udělali, graf (porovnání) konvergence různých verzí algoritmu a komentář, proč si myslíte, že výsledky jsou takové, jaké jsou. Snažte se být co nejstručnější, neopisujte znovu zadání problému, nevysvětlujte standardní genetické operátory (probírané na přednášce nebo cvičení). Naopak nezapomeňte zmínit použité parametry, případně jak jste je změnili. Každý úkol má zvláštní šablonu k vyplnění – vyplněnou Markdown šablonu zkopírujte jako text do Sovy, grafy nahrajte jako přílohu v jednom souboru .zip.
Použití generativní AI
Použití generativní AI pro implementaci není zakázané, ale musíte ho u každého úkolu deklarovat. Pro psaní textu o tom, co jste udělali, AI pokud možno nepoužívejte, případně jen omezeně (například ke kontrole gramatiky). Snažte se, aby výsledný text byl co nejkratší. Veškerá pozorování a analýzy musí být vaše.
Průběh cvičení
Jednoduchý genetický algoritmus
Problém loupežníků
Spojitá optimalizace
- Spojitá optimalizace I – adaptivní operátory
- Spojitá optimalizace II – diferenciální evoluce
- Lamarckismus a baldwinismus
Evoluce klasifikačních pravidel
Vícekriteriální optimalizace
Problém obchodního cestujícího
- Problém obchodního cestujícího I – kódování a operátory
- Problém obchodního cestujícího II – chytré operátory