4. ledna 2007
Optimální paleta - optimalizace počtu barev
- Pokračujeme v příkladu z minulého cvičení. Povolíme též evoluci počtu barev v paletě, budeme mít tedy jedince různé délky.
- V první populaci můžete nechat všechny jedince stejně dlouhé, nebo můžete délku generovat náhodně ve zvoleném intervalu.
- Upravte genetické operátory tak, aby uměly pracovat s různě dlouhými
jedinci.
- Křížení - jedinci vstupující do křížení nemusí mít stejnou délku. Co s tím?
- Mutace - přidejte další mutace: přidání a ubrání barvy.
MyMutation mutation1; AddColorMut mutation2; RemoveColorMut mutation3; // mutation1 se pouzije s psti 0.6, mutation2 s psti 0.2, // mutation3 s psti 0.2 eoPropCombinedMonOp<PaletteIndividual> mutation(mutation1,0.8); mutation.add(mutation2,0.2); mutation.add(mutation3,0.2);
- Fitness
- Po úpravě genetických operátorů si zkuste program pustit. Pravděpodobně uvidíte, že fitness rychle stoupá a stoupá i počet barev v jedinci.
- Upravte fitness tak, aby penalizovala delší jedince.
- Také je možné místo úpravy fitness napsat vlastní selekci, která bude se při souboji dvou jedinců podobné fitness bude rozhodovat podle délky jedinců.