Pages

Tuesday, 29 September 2009

Population Growth Model

I got into making this kind of stuff a few years ago after reading a book called "Critical Mass - How One Thing Leads To Another" by Philip Ball (ex-editor of the Nature journal). The book discusses the application of Physics to some social phenomena, and takes you on a journey through some amazing social science discoveries that have been made. My favourite chapters concentrated on crowd dynamics, and population growth/movement.

I wrote a small program in flash which took some of the points mentioned in the book on population growth - which incidentally can be compared to bacterial growth and many of the shapes produced on a large scale are very similar! These similarities can be explained by a process called emergence, whereby complex patterns - for example the shape of a city - can arise from simple mathematical rules - for example people prefer to live near water. To the right is a nice image showing some outcomes of emergence.

Back to the flash side of it - I wrote some software which models two populations. The populations could be bacteria, they could be human, or animal - it doesn't really matter. On the screen any red pixels represent some kind of natural resources. The populations spread onto the red pixels whenever they can. If a population encounters another population they cross breed, creating hybrids of the two.

If you run the program you'll notice the button on the bottom left can be set to various modes - obstacle creates physical blockades which block populations from growing, and immigration allows new populations to randomly appear across the screen.

Of course there are lots of other factors that could be taken into account like populations dying, different populations, one population having genetic advantage and so on - but I've found the best way to build up a model is to start simple with only a few rules and then build up more rules until you have a fit that matches real world observations.

Just click below to run the app:



Enjoy!

No comments:

Post a Comment