Sunday, 2 February 2014
Swarm Intelligence and Data Mining
Some years ago, I experimented with swarm intelligence as a way to search out optimal solutions for non-linear problems. The idea behind this is that rather than taking a straight computational approach, you use a swam of entities that 'search' the computational space for the optimal solution, each entity following a set of search rules and communicating with the other entities in order to quickly find the best result. Its used for problems where there may be multiple 'sorta right' answers and where its easy to get an answer that is better than the others, but not the best possible answer. Think of problems such as the travelling salesman problem, where the is one best solution, but it could take a long time to find it, and there are lots of suboptimal solutions that look right (better than most) but aren't the best.
The inspiration for this approach is taken directly from nature... ants are an obvious type of animal that uses swarm intelligence, as are flocking birds and schooling fishes. Using simple rules of proximity, they maintain a structure and move as a unit (or in the case of ants, move towards a goal) without an overarching intelligence. On this video below, look at the way these grunts change their movement and shift direction together as I swim through the school... they do it almost automatically, with no pauses to reassess their location and speed. Imagine trying to do this if you were driving in a 'swarm' of cars... without the instinct to automatically judge neighbors distance and adjust speed and direction, it would be a disaster.