This is a simple scenario meant to illustrate basic HexSim concepts. It should provide a good starting point for users who are beginning with HexSim. A single population experiences a series of events starting with an increase of every individual's age, progressing through reproduction, movement, survival, and other events, and ending with three censuses. Individuals use a map of habitat availability, and a second map allows the model to gather occupancy and source-sink information across an array of sampling locations.
The Basic scenario is a single-sex model of a solitary population (individuals do not form groups). The population has three traits: Stage Class, Resource Class, and Location. The survival and reproductive rates depend on both stage class and resource class. The population starts out small, but grows until it runs out of available habitat. The population's ability to fill the landscape is limited by habitat pattern because dispersing individuals are unable to cross zero-values hexagons. This simulation's small initial population size (10 individuals) quickly grows to carrying capacity. The events in the Event Sequence have been parameterized to accomplish the following:
Accumulate (Increment Age)
This event increments each individual's Age accumulator. This will cause Juveniles to move into the Subadult stage class, and Subadults to move into the Adult stage class.
Reproduction (Stage x Resource)
As seen in the Properties tab, this event stratifies reproduction by both stage and resource class. The maximum reproductive output is set to two offspring per individual. The Rates tab shows the actual reproductive rates used when the event runs. Note that users will likely have to adjust the column and row header sizes to fully display the cell labels.
This can most easily be done by double-clicking on the vertical and horizontal separators in the upper-left corner of the Rates tab.
The values in the rates table are probabilities. Each row must sum to 1.0 (not including the Expected Value column, which is read-only). Because this is a single-sex simulation, the expected values can be treated as fecundities (mean number of female offspring per female). Individuals in the Low resource class will not reproduce because their probability is collected in the zero-births column. The same is true for all individuals in the Juvenile stage class. Subadults and adults in the medium or high resource classes possess non-zero probabilities of having one or two births. Newborn individuals are initially placed into the juvenile stage class, and the high resource class. This simply results from the way that the Age and Acquired Resources accumulators have been parameterized.
Floater Creation (Recruits Only)
The Basic scenario has a maximum group size of one (see the Population Parameters' Range tab). Successful reproduction will cause this maximum to be exceeded because recruits become members of their parents group. The Floater Creation event is set up to operate on every individual in the juvenile stage class. These individuals will be forced to leave the group, thus becoming floaters. The Movement event will disperse them away from their natal groups.
Movement (All Floaters)
The Movement event disperses each recruit away from its natal site, plus any older individuals who have not yet found resources to claim for themselves (floaters). Individuals move between 5 and 25 steps (from one hexagon to a neighbor).
They are repulsed from low quality hexagons, and will not enter a hexagon with a score of zero. They are slightly attracted to the better quality hexagons (the maximum attraction is set to correspond to a score of 15, but the highest score in the HexMap being used is 10). The auto-correlation is set moderately-high. After dispersal, individual search an area of up to 10 hexagons in hopes of starting a new group. If possible, they acquire a range, and become a group member. Otherwise, they remain floaters.
Accumulate (Get Location)
This event uses an Individual Locations updater function to set the value of the Location trait based on the data found in the Habitat Patches Hexmap. Each individual identifies the hexagon in which it currently resides, finds this hexagon's value in the Habitat Patches map, assigns that value to the Location accumulator, and then HexSim automatically sets its Location trait based on its accumulator value. After the event has run, each individual has a location trait value that corresponds to the patch it currently occupies.
Accumulate (Set Resource Class)
This event uses a Resources (Allocated) updater function to assign a value to each individual's Acquired Resources accumulator. Use of this updater function ensures that individual resource class designations (low, medium, high) will vary based on both habitat quality and individual resource needs (which in this simulation are all the same). Each individual's Resource Class trait will be re-evaluated after its Acquired Resources accumulator is modified.
This Survival event is stratified by the Stage Class trait. Juveniles, subadults, and adults are assigned survival rates of 0.5, 0.7, and 0.9, respectively. For each individual, a random number is drawn from a uniform distribution bounded by zero and one. If the random number exceeds the survival probability, then the individual dies. This Survival event could easily have been combined with the one below, to create a single event that accomplished everything.
This Survival event is stratified by the Resource Class trait. Low, medium, and high resource class individuals are assigned survival rates of 0.6, 0.8, and 1.0, respectively. For each individual, a random number is drawn from a uniform distribution bounded by zero and one. If the random number exceeds the survival probability, then the individual dies. This Survival event could easily have been combined with the one above, to create a single event that accomplished everything.
The Census Events
Census events write CSV files to the Results folder. All census events record the Replicate, Time Step, Population size, number of Group Members and Floaters, and an instantaneous Lambda value. Census events also track the number of individuals possessing each possible permutation of the values of the selected trait or traits.
In the CSV files written by Census events, the columns indicating trait value permutations will be labeled Trait Index 0, Trait Index 1, and Trait Index 2, respectively. The mapping between trait value permutations and CSV file labels is displayed in the Census event itself.