![]() |
An ant family is a group of ants that behave in a similar manner (a family is then defined by its behavior). Each ant family is evaluated in a 2-dimensional environment E, for a duration of t time units. At the beginning of each evaluation run, the environment contains particules of food.
Some family behaviors might cause some ants to pick up food and bring it back to the nest. Other family behaviors might cause some ants to cooperate (using pheromones to transmit information). We want to encourage such behavior and reward the families that have them.
We want to evolve a family that brings back a maximum amount of food from any randomly created environment (actually, what we really want to do is have fun and explore group behavior emergence, but for now let's say we just want to have ants that collect as much food as possible)
The behavior of each ant in a given family is defined by an algorithm. An example of such an algorithm could be from an individual ant's perspective:
The example algorithm above is simple algorithm and seems to make sense. But is it really the best one? Does the manner by which ants use their capacity to produce and sense pheromones in that algorithm fully optimize the total gathering of food (team work). Might it not be more efficient if instead of carrying the food straight home, the ants dropped it on the way for other ants to pick up ? Or used a strategy that was more complicated ?
The purpose of crossover is the production of a genetically diverse population of behaviors. Because each behavior is coded as a tree, it is imperative that the crossover operator that is used forces the production of syntactically valid offspring.
There are two ways of induring syntactic validity: either by reparing faulty trees that are produced by random crossover or setting rules of formation that prohibit the formation of faulty trees.
It is the second approach that was chosen for this task. The specification of the typed language called Antze that was used can be downloaded here is because during the evolution process In order to evolve behavior that were complicated, ....evolving valid program trees using type theory
In order to avoid behavior evolution that overfits a specific environment, every time a new environment is created, the food distribution and quantity is different. There is no most efficient algorithm that applies to all the environments.
Each family is evaluated in by the objective function within time units. At the beginning of the run, contains units of food and at the end. For each families, returns a real value proportional to where is the number of ants in the family. The population size (the number of families being evaluated) is
There are three modes:
When the simulation is paused, the indicator in the toolbar giving the amount of food left in the environment is updated (not while it is running). Make sure that the simulation is paused before changing any settings while a simulation is running.
Each GP is represented as an entry in the main view, and double clicking on its ID number will open it in Tree Mode. When a GP is selected it can be either:
Franck J.L. Binard
School of Information Technology and Engineering (SITE)
University of Ottawa
800 King Edward Ave.
Ottawa, Ontario, Canada, K1N 6N5
Tel: (613) 562-5800 x6727, Fax: (613) 562-5664
Office: 4-035 SITE
Email: fbinard@site.uottawa.ca
Contactez: L'École d'ingénierie et de technologie de l'information
Contact: School of Information Technology and Engineering
Copyright © 2001 Université d'Ottawa / University of Ottawa
Webmestre / Webmaster