Competition and Evolution of Behavioral Strategies in an Image

Competition and Evolution of Behavioral Strategies in an Image Scoring IndividualBased Model
Gavin M. Leighton1
1
University of Miami, Department of Biology, 1301 Memorial Drive, Coral Gales, FL
Corresponding e-mail: [email protected]
Cooperation as Signal Model Validation
Setup Validation
Turtle Initialization
Model setup was verified using the observer command line. Both the number of
showOffs and crowdPleasers were coded to be initialized to 25 individuals with an
average reputation of 0. These setup conditions were confirmed using the following
command line inputs:
observer> show count showOffs
observer: 25
observer> show mean [reputation] of showOffs
observer: 0
Patch Initialization
The patches are initialized with most patches being black while a small subset of patches
with an item are initialized to green using the built in random number generator. The
variable “itemAvailability” codes the number of patches that will have items. With
itemAvailability set to 1.0E-4, 50 steps were performed and the mean number of items
was calculated. The expected mean was 4 (40000 patches x 0.0001).
Mean of 50 setup steps: 3.8 with a standard deviation of 1.8
Runtime Validation
Audience
To make sure the random normal was producing values consistent with the specified
mean of 25 and standard deviation of 10, 50 samples were taken from model runs and a
mean and standard deviation were taken on these samples. The mean was 25.96 and the
standard deviation was 8.08. These values are close to the expected values of 25 and 10
and confirm that the random normal is producing appropriate values.
1
The model has temporal autocorrelation built into the audience as the audience would not
be fully random from time point to time point in natural systems. Therefore, the audience
is updated every five time steps using the mod function in NetLogo.
Yearly Reproduction
Individuals reproduce every 8760 time steps using the “mod” function. This is confirmed
by having individuals print that they reproduced when they produce an offspring. As
coded, individuals only produce offspring in multiples of 8760.
Increasing Reputation
Individuals increase reputation by being at the stage and holding an item. The increase in
reputation is based on a linear predictor. To confirm this, an individual was followed for
the first several time steps while it gather an item and returned to the center stage. The
individual’s reputation increased to 5.2478 after displaying for one time step. The
audience at this time was 6.5598. Since the diagnosis probability was 0.8, I confirm that
6.5598 * 0.8 is 5.2478.
Searching For Item
If individuals do not have an item, they will look around a circular set of patches to see if
there is a green patch, i.e. a patch with an item. If yes, they will move to the patch, set it
to black and return to the stage. This is confirmed by following an individual, seeing it
move to a green patch, see the patch turned to black and the individual return to the stage.
If the individual does not find an item, it moves in a random heading by 15 patch lengths.
This is confirmed in the first step of the model when individuals often don’t have items to
find and will move randomly. In the second step, individuals are distributed in a circle
with a radius of 15.
Leaving stage to look for items
Individuals leave the stage according to a linear probability function. The function is as
follows for crowdPleasers: 0.1 + 0.018 * audience. Therefore, individuals are more
likely to stay with a larger audience. The function for showOffs is 1 – 0.018 * audience.
Therefore the functions produced different behaviors based on audience size.
Both of these functions produce a value that will be bounded by 0 and 1 in the large
majority of cases due to the constraints on the random normal distribution parameters.
To confirm that the functions are producing appropriate values, individuals were
followed while time steps were incremented individually.
A showOff calculated a probability of staying of 0.49294. This value is correct when
including the audience value of 28.17086. 1 – 0.018 * 28.17086 = 0.49294.
Reproduction
Individuals reproduce on set intervals (every 8760 time steps) using the mod function.
2
Individual reproductive output is dictated by simple replicator dynamics; specifically, the
overall mean of the population is computed and each individual determines their relative
fitness by taking their reputation value and dividing it by the mean reputation of the
population. This value is then rounded to an integer and the individual will produce that
number of offspring without mutation. The individual then dies at the end of
reproduction.
To check the rounding, each individual printed their fitness, relative fitness, and rounded
value for the number of offspring produced. There was a perfect correspondence
between the integer value of offspring produced by NetLogo and Excel.
The relative fitness values were checked by having individuals print their overall fitness
and dividing by the mean fitness of the population. Again, there were no errors found
when the values were double-checked using excel.
An extra complication is added to reproduction in the model build that includes the
evolution of the weighting factor. In this case, mutations must lead to new weighting
factor values in offspring. To confirm that mutations were arising in offspring, the
parental value of the weighting factor was checked and then the offspring’s value of the
weighting factor was checked if the individual randomly mutated. To check this, after
one round of reproduction, all parents printed the value of their weighting factor, and if
an offspring was going to mutate, it first printed it’s inherited value plus the mutated
value. First, 30/150 individuals born mutated, thus exactly matching the expected 0.20
mutation expectation that was controlled by a variable in the model. Second, in all 30
cases of mutation, the pre-mutation value of the offspring exactly matched the parent’s
value. Finally, the mean mutation was -0.007 with a standard deviation of 0.12. The
mean is as expected because the code calls for the mutation value to equal
(mutationStrength – randomfloat (mutationStrength * 2)) which would yield values both
below and above the parent’s value of weightingFactor. The standard deviation of 0.12 is
expected as ±SDs will encompass most of the values surrounding the mean of 0.
All of this shows that the weightingFactor values will not increase because of code, but
because of selection.
3