Jak vytvářet grafy a odevzdávat úkoly

Odevzdávání úkolů

Evoluční algoritmy jsou založeny na náhodě, tzn. že každý běh může dopadnout trochu jinak a není tedy možné porovnávat pouze výsledky jednoho běhu. Místo toho je potřeba běh několikrát zopakovat, a podívat se, jak se algoritmus chová v průměrném/nejlepším/nejhorším případě.

Grafy, které odevzdáváte s vaší implementací, by tedy měly vždy ukazovat optimalizované kritérium jako funkci počtu vyhodnocení fitness. Graf musí ukazovat průměrnou (nebo mediánovou) hodnotu a první a třetí kvartil. Pokud porovnáváte více algoritmů, všechny by měly být v jednom grafu.

Skripty pro vytváření grafů

V repozitáři na Githubu můžete najít soubor plotting.py. Ten můžete použít jako základ pro vytváření grafů. Hlavní funkcí je utils.plot_experiments, která vyžaduje dva argumenty – cestu do adresáře s logy vašich běhů a seznam ID experimentů, které chcete vykreslit (ID experimentu lze nastavit v každém ze skriptů, které dostanete pro každé cvičení v proměnné EXP_ID.) Navíc můžete také přidat rename_dict, kde můžete zadat čitelnější názvy pro vaše experimenty, které budou zobrazeny v legendě. Pokud jste například použili EXP_ID = 'pop100m0.3' pro váš experiment s velikostí populace 100 jedinců a pravděpodobností mutace 0,3, můžete přidat parametr rename_dict={'pop100m0.3': 'Velikost populace = 100, pravděpodobnost mutace = 0,3'}.

Možná budete muset mírně upravit skript, pokud budete chtít změnit škálování nebo rozsah os. Výsledný graf můžete upravit pomocí dalších matplotlib funkcí. Například pokud chcete změnit škálování vertikální osy na logaritmické, můžete přidat plt.yscale('log') před řádek s plt.show().

Snažte se grafy dělat co možná nejpřehlednější. Pár tipů, jak na to: