l'ÉITI Recherche Nouvelles HREF= Répertoires Ressources Génie/Engineering Ud'O/UofO SITE Search News Directories Resources SITE

AntEvolver


Overview

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 f0E 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:

Every ant in a given family behaves the same way, but every family will code a different behavior. The best behaviors (see below for more on the objective function) will then be rewarded by having a higher chance of reappearing in the next round of evaluation.

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 ?

Crossover

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

The Language

Each ant can only move forward, to the left or to the right. Likewise, an ant can only sense for food to its right, left or front. The environment is toroidal (north wraps to south and east wraps to west).

The environmnet can do the following:

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.

The Evaluation function

Each family is evaluated in E by the objective function Fg within tg time units. At the beginning of the run, E contains f0E units of food and ft-1E at the end. For each families, Fg returns a real value proportional to (ft-1E-f0E)/ nF where nF is the number of ants in the family. The population size (the number of families being evaluated) is \lambda

The Software:
The ants behavior is coded in a tree like structure called a CDNAStatement. These are program tree, but they also happen to represent the genotype of the ants. AntEvolver evolves CDNAStatements. It then evaluates each CDNAStatements using an objective function whose primary input is the amount of food a family of ants whose genotype is a particular CDNAStatement gathers. A fitness based non-deterministic selection process is then applied, a bit of mutation is shaked up in the mix and vodka. I mean voila.

Using the software

There are three modes:

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