Grupos de Google ya no admite nuevas publicaciones ni suscripciones de Usenet. El contenido anterior sigue siendo visible.

Problems with small initial population

Visto 2 veces
Saltar al primer mensaje no leído

Stephen Wright

no leída,
9 feb 1994, 16:29:529/2/94
a
Hi, I'm hoping that some of you can give me some suggestions with a problem that I'm
having.

I'm writing an artificial life program. The environment consists of up to 10
different objects, and each object has an appearance and a food value.
Each 'creature' in the simulation has an 1100 bit chromsome. The chromosome instructs
the creature as to how to build its neural network. After evolving for some time,
the creatures should be able to associate different objects with different food values
(poisonous objects have a negative food value). In addition, the simulation may
have up to five different creature types (species), and a creature should eventually
evolve to reproduce with other creatures (each creature also has an appearance).
To reproduce, the creature must share the same location as another creature, and the
output from its neural network must tell the creature to reproduce.

Note: the neural network does not learn; it is constructed when the creature is
created and remains the same. A genetic algorithm is used to evolve the networks.

My problem is that due to memory constraints on my PC, I can't start off with a very
large initial population, and I'd like to keep all creature constructs in RAM. As a
result, it is rare that a creature in the initial population is lucky enough to have
a chromosome (randomly generated at the beginning of the simulation) that creates a
neural network that will allow the creature to survive. What I do now is that
whenever the population drops below a minimum number, I duplicate the most successful
chromosome with a small chance for mutation, and wait for a minimally successful
chromosome to come about. Then I let the creatures pick their reproduction partners
by themselves. If I don't do this, all the creatures die, and I'm left with a
stagnant environment and a guilty conscience (poor little creatures).

Does anyone have any advice on a better way to solve this problem. Should I at first
inject some minimally successful chromosomes into the environment? All advice is very
much appreciated.

Thank you.

-------------------------------------------------------------------------------
Stephen Wright, Software Engineer | If builders built buildings the way
Ericsson Business Communications, Inc. | programmers wrote programs, then the
Cypress, California | first woodpecker that came along
ebu...@ebu.ericsson.se | would destroy civilization.
-------------------------------------------------------------------------------


J.J. Merelo Guervos

no leída,
17 feb 1994, 7:34:0617/2/94
a
Well, there are 2 ways:
1. Used by PolyWorld; is to use an "on line genetic algorithm". Many creatures are
created from scratch, and reproduced or cloned according to success. If they die, more
creatures are created; after running this on line genetic algorithms for a while, the
most succesful creatures are chosen to live in the world. Then normal operation takes
place (i.e. reproduction as result neural net decision).

2. Used by MbitiWorld: to include neural net learning. Stupid as the creatures may be
born, they have some learning capability, and some way to change its initial behavior.
In this way, it is very difficult to find creatures not only not able to behave well
initially, but also to keep on doing so, and the population usually survives.

However, if you don't wanna change your program, just try a different codification of
genomes and NNs. For instance, use ints instead of floats, and so on. Or, better yet,
try with another box: UNIX boxes are great!

JJ

0 mensajes nuevos