I was up late practicing one of my favorite hobbies, web surfing, and after a chain of clicks on tonight’s topic of interest, optimization, I stumbled upon something I thought I’d share.
I’ve been a practitioner/advocate of simulation for some time now and recently I’ve decided to educate myself beyond what the typical software packages provide. Not that these products aren’t sufficient, most of them are more than I’d ever need, I just want to know more about the science behind them. Anyway, in my exploration I came across a mathematical programming (optimization) technique for solving computational problems called ant colony optimization. I’ll save you the trouble and give you the wikipedia summary of the idea here:
In the real world, ants (initially) wander randomly, and upon finding food return to their colony while laying down pheromone trails. If other ants find such a path, they are likely not to keep traveling at random, but to instead follow the trail; returning and reinforcing it if they eventually find food.
Over time, however, the pheromone trail starts to evaporate, thus reducing its attractive strength. The more time it takes for an ant to travel down the path and back again, the more time the pheromones have to evaporate. A short path, by comparison, gets marched over faster, and thus the pheromone density remains high as it is laid on the path as fast as it can evaporate. Pheromone evaporation has also the advantage of avoiding the convergence to a locally optimal solution. If there were no evaporation at all, the paths chosen by the first ants would tend to be excessively attractive to the following ones. In that case, the exploration of the solution space would be constrained.
Thus, when one ant finds a good (short, in other words) path from the colony to a food source, other ants are more likely to follow that path, and positive feedback eventually leaves all the ants following a single path. The idea of the ant colony algorithm is to mimic this behavior with “simulated ants” walking around the graph representing the problem to solve.
What struck me as cool about this was not so much the technical aspect of the idea as it relates to mathematical programming, but the simplicity of the idea itself, especially when it comes to problem solving in an organization. The ants find the simplest solution, have built in feedback loops for the rest of the organization, and proceed with their work in a standardized fashion. Amazing!
Now I’m wondering if the ants are looking up at us as we pass by andquestioning why we need computers to find simple solutions. Maybe I need to do a search on ant psychology or possibly run out and buy myself a copy of A Bug’s Life.
March on, Michael