For a while I've been meaning to study emergent behaviors, genetic algorithms and artificial life. The urge to do it began after I read Prey, by Michael Crichton, where he shows a combination of all that three things with nanotechnology, creating a frightening possibility that keeps the reader from putting the book down.
Since I'm always running out of time, the only thing I did about it since I read Prey, about one year ago, was to read another book about the same subject: Emergence (The Connected Lives of Ants, Brains, Cities and Software), by Steven Johnson. It's not a very technical book, so it can be read by anyone, but it's a very good book to start understanding what emergent behavior is.
Last week I decided I should dedicate some time to it again, so I read Prey and Emergence again, and started to do some searching in the Internet. I found some cool things, like a Java applet with a Swarm algorithm implemented (check it out here), that same algorithm implemented in C# (my programming language of choice - http://www.c-sharpcorner.com/Code/2003/March/SwarmSim.asp) and a good article on genetic programming, that you can read here.
Now I'm up to making my own attempts. I guess I'll start trying to remake my own David Jefferson's Tracker. It's a simple but good example of a genetic program, and it's the example used by the Genetic Programming article that I've read. Then I'll make my own Swarm, and then... well. Then I don't know what I'm gonna do, but of course I'm gonna combine genetic programming with my Swarm, or something like that. :)
Anyway, you are probably wondering... "What the hell is emergent behavior?! And genetic programming?!" If you are, don't panic... Wait for my next post. :) If you reeeeeaaaaally can't wait, start reading this. :)