Thursday, December 04, 2003 8:31 AM
richard
Complex Adaptive... Gnats?
I was looking through a journal I keep of ideas for a particular project I'm working on and I saw an observation I wrote about while on vacation last year that was particularly relevant at the time, since I was thinking of how to implement my Particle Swarm Optimization in C# at the time:
What I wrote on Saturday, July 20, 2002:
I was watching a swarm of gnats today and I saw something interesting. Julie (my wife) called me up the hill at the cottage where she had a group of gnats in swarming in front of her. Everytime she spoke, the gnats buzzed into a very noticably higher energy state – buzzing around much faster than without the perturbations of her voice – very interesting! Anyway, I looked at them and it struck me that the paths they were flying were not entirely like the cannonical particle swarm. Instead, each seemed to swarm on two orders of movement – one a local, highly perterbated plane (their local oscillation) and one a more relaxed, longer, slower movement around one another (their 'orbits'). This action reminded me of memetic searches and I wonder if it would be possible to implement a successful particle swarm that accomplishes this (whether or not it would be more effective at searching is up for grabs, granted).
Anyway, since then I finished a decent version of the swarming algorithm, but haven't utilized the 'gnat mod' to try to further enhance it yet. Could you achieve 'second order' movements simply be having two Particle Swarms acting on the same particle-space, but with different goals and velocity ranges for each of the particles? In other words, each particle's position would be subject to independant movement algorithms, but each would still be evaluated on it's total fitness - would this add any value or a simple multi-objective particle swarm - i.e.. just folder other fitness objectives into the main swarming algorithm. I guess I'll try it out and see.