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
© Copyright 2026 Paperzz