We first started out with a genetic algorithms generating ant populations by randomly modifying an initial program, merging two programs, and selecting the fittest ants. This approach was possible thanks to our ultimately fast ant simulator running on the institutes super computers. We saw hatching ant populations that were very good in killing other ants, but weren't able to collect food fast enough. We submitted two bred ant programs to the lightning contest. Some examples can be found here.
We abandoned the genetic idea and started writing a compiler for a higher level ant control language. In retrospect, we spent too much time in evolving the language and the compiler. So there was not enough time left to use this powerful weapon for the development of an ultimate all-collecting total-killing ant population. Our ant control language is fully fledged - with local variables, if-then-else control flow statements, expression evaluation, and procedures.
Our finalist ants nevertheless have a nice algorithm engraved into their brains for finding their home, if they have collected some food. When the simulation starts, all ants start painting the whole world in three colors as shown in the picture below:
After the world is three-colored in this way, an ant knows its way home, no matter where it currently is in the world. the only thing it has to do is to follow the colors in the order 2-1-0-2:
When an ant has found some food, it has several choices for bringing it home. All arrows mark one shortest way home:
After an ant finds food (while painting the floor), it caries it home and leaves another marker which others can follow from the home to the food source (like real ants do).
Unfortunately, we do not defend our home against blockade and killer-invaders. So it will happen as always, the bad ones win... :-)
Download of our simulator, compiler, and visual debugger is available from the "Language and Compiler" page.