Evolution of socialness

- by Johannes Knabe (www.panmental.de) and Hauke Strasdat (www.strasdat.de) -

Files available for download:

Sourcecode:
evocoop.jar (~12kb)
evocoop.mds (~56kb)
Presentation:
evocoop-presentation.pdf (~164kb)
Report:
report.pdf (~694kb)

Introduction to the model:

Here the behaviour of two groups of individuals ('farmers') is modelled and compared in various settings; one group being social, i.e. willing to help needy agents, while the other is egoistic and does in no way cooperate with other agents.

This browser does not have a Java Plug-in.
Get the latest Java Plug-in here.

Basic info:

Press the green "Play" button to start the processing and the "Back to start" button to its right to stop. To edit parameters click the "Component Form" button which is the second button from the right in the same row as "Play". Click on the "GridObserver" text to see statistical data.

Quickstart for using our model:

1)

To see that the carrying capacity is higher for social agents you need to make two runs: Set the mutation rate parameter to 0.0 - other parameters can be left at their default.

First experiment: Set the initial probabality of a farmer being social to 0, this will make all farmers initially egoistic, since mutation is turned off their children will be like them. In the observer you can see a graph showing the total number of agents on the grid. After about 1000 steps this should have converged (with more or less variance) to a value.

Second experiment: Set the initial probabality of an agent being social to 1 and do the same as above.

Compare the results: The value of the second experiment is slightly higher than in the first. This result is robust against changes in the environment; you could for example vary the parameter density, i.e. how many corn-fields there are on the grid.

2)

In a situation of direct competition social agents dominate after some time. Leave the mutation rate parameter at 0.0 but set the initial probabality of a farmer being social to 0.5 and altruism to false. After running for about 1000 steps (depending on the chosen density) it should be obvious from the graphs in the observer that the number of social agents is much higher than the number of egoistic agents.

3)

Finally one can set the initial probabality of a farmer being social to 0.0 again and the mutation rate to some small value like 0.01, i.e. the probability for a social farmer's child to be egoistic (social) is 1% (99%) and the other way round. This allows to see how cooperative behaviour might have prevailed during evolution, since you will see that there is initially a 'species' of agents not taking care of each other. After some time one of their children mutates to being social. This alone changes nothing but by chance there might be two social agents close to each other, for example a child of the first one. Those can support each other now in 'bad times' and eventually they prevail (this might take up to 10000 steps!).