Sex in Sugarscape


16 Apr 2011 Code on Github

Introduction

Since the last time I wrote about Sugarscape, I've made a bit of progress. The biggest improvement is the introduction of sexual reproduction. I can therefore recapitulate more of the results of the original simulation, and test a number evolutionary ideas.

With the addition of sex, I also introduced death; more specifically a built-in lifetime for agents. It's not strictly necessary, as eventually the population would get so large that the rate of death by malnutrition would match the birth rate, but the world would be very crowded. As in the original simulation, lifespan is simply hard-coded as an agent attribute that determines how many ticks of the simulation an agent can exist before it is removed. In addition, two other ages are defined; the agent is only fertile between these two ages.

Sexual reproduction occurs when an agent in its fertile years is adjacent to an agent of the opposite sex, also of a fertile age, and if both agents have at least as much sugar as they started with (their initial endowment). If this is the case, then a new agent is created in the nearest available space; the amount of sugar both parents possess is halved. The sex of the new agent is random, but other attributes can be determined by the parent's attributes, thus creating hereditary characteristics.

Plans for future

Here's some features and experience I'd like to try, when I get some time.

Sexual asymmetry and selection

At the moment, there's no difference between the two sexes other than their colour. I'd like to see the effect of introducing an asymmetry, namely making the cost of having offspring far higher for females (which is basically the definition of a female). I imagine this difference would cause females to become more selective in their mates, only having sex with males that offer offspring a sufficiently large endowment of sugar. I would be interesting to simulate pair-bonding, but this would require agents to recognise and remember other agents, which could be difficult.

Resources with no inherent value

As well as introducing spice, a second resource that agents require to live (as in the original simulation), I'd also like to introduce silver, a finite resource that is not required for anything. I'd like to see whether, with the addition of trade, silver can acquire value. I can envision this occurring if females begin to select for males that can provide them with silver. Female might evolve to favour males that possess silver as it would mark out the male as being sufficiently fit to 'waste' time collecting an otherwise unnecessary resource. That's the theory at least.

Culture

Another feature I'd like to add is a way for agents to identify other agents. I'd like to try by giving each agent a random selection of, say, 8 numbers, which defines their culture. These numbers would be passed on like genes, such that children would get a random selection of their parents' cultural values, with a few mutations. Over time, a populution should become more homogeneous due to interbreeding and genetic drift fixing values in the population. Two isolated populations would probably drift apart to form two separate cultures. It would be interesting to see what happens with two almost-isolated populations.

The concept could be expanded in various ways. For example, agents could behave differently towards agents of significantly different cultures (as determined by the Euclidean difference between their cultural values - a strange concept), particularly if aggressive behaviours were possible. Another possibility is for agents' values to become more similar to any agent they interact with (trade, sex or whatever) and see what the effect that has on populations of different cultures. Perhaps agents' cultural values would become more different from one another if they have a negative interaction (some form of attack), leading to racial tension and xenophobia.

Comments (2)

Anonymous on 20 Apr 2011, 11:33 p.m.

I think you have an amazing vision of something here, recreating life in a computer programme all the way up from the simplest agent is brilliance! If you complete this it will be a revoltion in the gaming industry of computers, and indeed would have a significent impact on computers in general. Keep this brilliant work up, I shall be following this blog and hope to see many more advancements in this creation of yours.

Yours Sincerely

Smith

Peter on 28 Apr 2011, 11:58 p.m.

Wow, thanks for your enthusiasm. My ideas are not that revolutionary - I'm just building on work that others have done.