Evolving ant behaviour

Example of simple ant behaviour - spiralling

I've been thinking for a while about how to program ant behaviour in my simulation. The difficulty is that even relatively simple behaviours (such as following a pheromone trail) are difficult to code as a behaviour at the agent (or ant) level. While I probably could come with a reasonable behaviour if I thought about it and tested various parameters, it seems a lot simpler to evolve a suitable behaviour. After all, that’s what ants did.

Starting an ant colony

The ants move randomly, leaving a trail of pheromones.

I have started to remake a simulation of an ant colony that I once made in QBASIC. The idea (which I am by no measure, the first to contemplate) is to create an ant colony that can harvest surrounding food (seeds or leaves – the green ovals in the picture) in an intelligent manner, despite the individual ants having very limited intelligence or information to work with.

A random walk through some programming projects

I planned to write about the moderate progress I had made in improving the program I have to organise data from the Guardian Data Store, and a few of the more interesting correlations I have found by analysing the data. However, I got slightly sidetracked on a related project of learning how various clustering algorithms work (specifically k-means clustering).