[ << ] [ < ] [ Up ] [ > ] [ >> ]         [Top] [Contents] [Index] [ ? ]

3.6 Project3 : Evolutionary Algorithms

3a: Setting up

As before, work in a new directory (3/a) and start by exporting my code from my (3/a).

What to do:

Note that you can generate distributions using simple ascii graphics (see the dist function in 3/a’s tricks.lisp). e.g.

> (dist '((apple . 30) (dogs . 40) (beds . 20)))
                                        ******************** : BEDS
                              ****************************** : APPLE
                    **************************************** : DOGS"

In this extension, animals have four preference wheels (right now, they only have one: genes). One of them controls direction (taken from the current code). Wheels two and three controls what happens when two animals are side my side. For these two wheels, the zero pos is aligned to neighbor and then the animal moves in a direction according the weights in that wheel (so this overrides the current wheel in Conrad’s code). Wheel two controls same gender meetings and wheel tree controls different gender meetings. Moving in position 0 means "stay".

If an animal has more than two neighbors, then a random pair is picked at the others are ignored.

What to hand-in:

3b: Baselining

As before, work in a new directory (3/b) and start by exporting my code from my (3/b).

WARNING: this is an exploratory project for code that has never run before. I have no idea what will happen when they new, sexed-up, animals get running. So there is an X% chance that all your animals will instantly die and we’ll have to think about the direction of this project.

Anyway, enough hedging...

What to do:

  1. Get your code running from 3a. Remember to run things with nice -n 20 (as done in ‘go’).
  2. Optimize your code. For a small number of days (say 100,000) run evolution inside the watch command in tricks.lisp. See if you can find any hotspots that can be optimized.
  3. Run your optimized system for 5,000,000 days (and if that is too slow, go for smaller numbers). Generate distributions for the preference wheels. See if you can find multiple species evolving in this space.

What to hand in:

3c: Improvements

In the GA lecture, there are some standard settings for GAs:

All generalities are false. But, just to get you started:

  1. Population size: 50
  2. Number of generations: 1,000
  3. Crossover type: typically two point
  4. Crossover rate: 60%
  5. Mutation type: bit flip
  6. Mutation rate: 0.001

Using the new sexier animals, see which (if any) of the above matter.

You’ll need to define a success function: minimize population variance over the generations while increasing population and life expectancy,

What to hand in:


[ << ] [ < ] [ Up ] [ > ] [ >> ]         [Top] [Contents] [Index] [ ? ]

This document was generated on March 1, 2011 using texi2html 5.0.