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

Evoluce klasifikačních pravidel

Vícekriteriální optimalizace

Problém obchodního cestujícího

Knihovna DEAP

Genetické programování

Další materiály