Final Project - Progress Report 4
Forrest Sondahl
Multi-Agent Modeling (2005)


Summary:

I decided that I had to drop Greedy Grazers.  At least... mostly.  The decision does not make me particularly happy, but the truth of the matter is that I just don't have time to make it while still polishing the maze models.  I will still have two models to present (well, three or four, if you count the Maze Maker model, and the GP Example Toolkit, but they're not really full models).  That is, there are two versions of the maze program -- one which evolves the full directions (right, left, forward) to find the solution to a given maze, and one that evolves the rules by which to move in each given step, based on the presence of walls, etc.   The two models exhibit fairly different behavior, and make use of the GP Library in slightly different ways.




fitness plot
(Sometimes it takes many generations to reach the goal...)

Details:

Last time I spoke enthusiastically about the "rule based" alternative.  And I am pleased with it.  But I am also somewhat inclined to believe that the non-rule-based or "full" version of the maze evolver may be a better use of GP, and demonstrate it better.  For one thing, the right hand rule (or left hand rule) is a small enough set of rules that it is possible to sometimes just run across it by generating random programs of a certain length.  So it is somewhat unclear how much benefit GP has on finding the solution.  Perhaps I will be able to run some tests that attempt to measure this, with BehaviorSpace.

BehaviorSpace reminds me of the "time" issues I've been having.  That is to say, the genetic programming process is fairly slow, and a single run can take as long as ten minutes, or more -- (maybe even never find a solution?).  Also, Josh and I confirmed today a suspicion that I have had for some time -- the "run" command is slow.  Quite slow.  To give you an idea of the overhead of the call, consider the following two peices of code.

ca
no-display
crt 1
reset-timer
ask turtles [ repeat 100000 [ run "fd 1 rt 1" ] ]
show timer
> 11.737

ca
no-display
crt 1
reset-timer
ask turtles [ repeat 100000 [ fd 1 rt 1 ] ]
show timer
> 0.23

As you can see, there is a difference of almost two orders of magnitude here.  As this relates to my project, the main thing to note is that I will probably be running BehaviorSpace overnight for several days this week, in order to get data for analysis.

Small change to the GP library:  color inheritence.  Namely, if codeturtle T of generation X is cloned into generation X+1, then the new turtle has the same color as T.  If crossover occurs, then the color of the resulting turtle is an RGB average of the color of the two turtles it was bred from.

Random Notes:

None this time.

Conclusion:

Forrest's NetLogo Main Page.