GOOeFloys Description


Contents

  1. Overview
  2. Rules of Behavior
  3. Rules of Evolution
  4. Changing the Population Characteristics
  5. Discussion
  6. Download

Overview

GOOeFloys belong to the flocking Artificial life creatures variety, sharing with them the social tendency to stick together, and the lifelike emergent behavior which is based on a few simple, local rules. They differ from most other Alife flocking (Boids-type) implementations by having to survive as either predator or prey. GOOeFloys is implemented as a Java applet. The applet allows the changing of traits and personality of the population, and also breeding and evolving the population.

The description below covers the GOOeFloys applet. The applet was heavily modified from the original written by Ariel Dolan aridolan@netvision.net.il

 

Rules of Behavior

GOOeFloys behavior is governed by two rules:

  1. A rule specifying how to relate to one's own kind.
  2. A rule specifying how to relate to strangers.

1. How to relate to one's own kind

2. How to relate to strangers

Rules of Evolution

GOOeFloys evolve sexually, where each GOOeFloy is the descendent of two parents. Mother and father are selected according to the mechanism of 'Survival of the Fittest by Unnatural Selection'. Asexual reproduction can occur with the last of the species. Fitness is defined by three attributes; energy, safety, and cooperation. If you are a GOOeFloy, you can gain or lose these during your lifetime, and the more you have, the fitter you are.

These are the Rewards and Penalties that influence fitness:

(The overall fitness is calculated as a weighted function of energy, safety, and cooperation)

Changing the Population Characteristics

How to use the applet

Modifying the static population

You can do the following:

Modifying the evolutionary factors

Evolution occurs when new generations are formed from older ones. You can either create generations manually (click the Breed button) or start a continuous process where every time the last predator dies a new generation is created (click the Start Evolution button)

You can do the following:

Discussion

The Emergent Behavior

The simple behavioral rules produce interesting emergent behavior. When prey GOOeFloys are not disturbed by predators they stick more or less together and swim playfully in their home area. However, when a predator is introduced it will begin to chase and attack them. The emergent flocking behavior they exhibit seems by its inherent mechanics to disrupt the process of predation. The effect also takes place in nature; in schools of fish, herds of gazelle, and flocks of birds. One of the goals was to see if this behavior evolves over time. As you use the GOOeFloys Tank you can draw your own conclusions. The behavior is also present in the predators, although they make no attempt to move toward each other, their sharing of common goals and penalties for colliding with each other result in cooperative predation. Whether this too models the world of nature is left as a consideration.

The Evolutionary Process

The evolution mechanism is built on three layers:

So we have this chain:
Evolutionary selection is done by fitness, fitness depends on the phenotypic traits, and these are defined by the genetic string. The evolutionary operators themselves (reproduction, crossover and mutation), act on the chromosome string. The whole process is quite involved and indirect.

And the result can be unpredictable:
By modifying specific traits, we influence the emergent behavior in ways that are not always easy to predict. When the evolution mechanism throws its blind operators, there is almost nothing we can tell in advance. Therefore it is quite interesting to watch the behavior and evolution of GOOeFloys, even in this very simple system.

Download

Both source code and compiled classes are available for Download for the GOOeFloys Tank.

For non-programmers:

Even if you do not program in Java you can use the compiled classes for running the applet off-line. So if you want to play with the GOOeFloys Tank applet, download the zip file, unzip it into a directory of your choice, and load alife.html to your Java capable browser.


J. Groff
groffj@neocoretechs.com