Flags and Lollipops

Tuesday, November 29, 2005

Natural Computation

As bioinformaticians we spend our time solving biological problems through computation (yeah, so occasionally wet lab people help out). There's a flipside to this coin: Natural Computation, the field in which systems inspired by biology are applied to computational problems.

Genetic algorithms, used to quickly find approximate solutions in search and optimization problems, are probably the most well known form of natural computation. Inspired by genetics, the idea behind them is relatively simple: you represent solutions by strings of parameters (genomes), which are ranked according to fitness (where fitness measures how good the solution is). Selected genomes - a set biased towards but not exclusively made up of those genomes with the highest fitness - then "breed" to produce a new generation of solutions. Breeding involves recombining the parents to produce child solutions whose genome contains a mix of both parents genetic material. Each generation a small amount of mutation will also take place, with parameters randomly changed in some children. In theory, the overall fitness of each generation gradually improves until you end up with a set of good solutions to your problem. GAs are commonly used to solve timetabling problems, amongst other things.

Artificial immune systems are based loosely on the human immune system, which has all sorts of properties that software engineers like:
The immune system is highly distributed, highly adaptive, self-organizing in nature, maintains a memory of past encounters and has the ability to continually learn about new encounters.
AIS research has been applied mostly to feature selection and change or anomaly detection for the last fifteen years - probably because it's an easy metaphor to understand if you're, say, interested in detecting viruses on a computer network. Jason Brownlee at the Swinburne University of Technology has some papers on the subject and a Weka implementation, if you're interested in learning more.

Finally, swarm intelligence leverages the sort of swarm behavior you see in nature - ant colonies, flocks of birds, herds of wildebeest and so on - where complex global behavior emerges from the interactions of many simple agents interacting locally with one another and with the environment. Ant Colony Optimization is one popular swarm intelligence algorithm, capable of quickly finding good paths through complex graphs (like the Traveling Salesman problem). ACO works by simulating "ants" walking randomly through the graph. Ants start off at the colony - the start point - and wander around until they find food - the desired end point. They then return to the colony while laying down a pheromone trail, which evaporates over time. If other wandering ants come across a pheromone trail they are likely to follow it to the end point instead of taking a random path through the graph, depending on how strong the pheromone density is. Shorter paths are more likely to have dense pheromone trails and positive feedback eventually leads to all of the ants following the same short path.

Apparently swarm intelligence is relatively popular in the bioinformatics machine learning community (though I can't think of any papers which refer to it: possibly because AI researchers don't publish in genetics journals)...

Comments and trackbacks Feel free to post your comments Anonymous Anonymous Anonymous Anonymous Anonymous Anonymous Anonymous Anonymous . This post has trackbacks.

Trackbacks:

4 Comments:

At September 02, 2006 5:18 AM, Anonymous Anonymous said...

This post has been removed by a blog administrator.

 
At September 02, 2006 5:18 AM, Anonymous Anonymous said...

This post has been removed by a blog administrator.

 
At September 02, 2006 5:18 AM, Anonymous Anonymous said...

This post has been removed by a blog administrator.

 
At October 09, 2007 3:50 PM, Anonymous Anonymous said...

This post has been removed by a blog administrator.

 

Post a Comment

<< Home


See all posts from: July 2005 August 2005 September 2005 October 2005 November 2005 December 2005 January 2006 February 2006 March 2006 April 2006 May 2006 June 2006 July 2006 September 2006 October 2006 November 2006 December 2006 January 2007 February 2007 March 2007 April 2007 May 2007 June 2007 July 2007 August 2007 October 2007 November 2007 December 2007 January 2008 February 2008 March 2008 April 2008 May 2008