Paralta is a simulation that runs in the Moveable Feast Machine, a robust-first, spatially distributed computational environment.
Model Description
The Paralta simulation consists of two elements from the MFM: DREGs and RES, and introduces one new element: Sytizen, which represents a denizen of the simulation world. The DREG parameters are kept primarily the same with the exception of spawning RES with probability 0.02. This allows a sufficient amount of RES to sustain a meaningful population of Sytizens, which use the RES for energy.
Each Sytizen is represented by the following parameters:
- Team - a three-bit value representing the in-group of the Sytizen.
- Energy - a nine-bit value 0 =< e =< 511, and initialized to 20.
- res grant 10 energy when consumed by the Sytizen.
- Genotype - the genetic makeup of the Sytizen that determines its overall behavior in the world. This is represented by two, four-bit values:
- Parochialism - a Sytizen with Parochial value 0 =< p =< 7 is considered non-parochial, while a value 7 > p >= 15 is considered parochial.
- Altruism - a Sytizen with Altruism value 0 =< a =< 7 is considered non-altruistic, while a value 7 > a >= 15 is considered altruistic.
The Genotype parameter combinations translate to four discrete phenotype categories:
Parochial Altruist (PA) will take on the genetic behavior of both Parochials and Altruists.
Parochial Non-Altruists (PNA) will take on the genetic behavior of Parochials.
Non-Parochial Altruists (NPA) will take on the genetic behavior of Altruists.
Non-Parochial Non-Altruists (NPNA) exhibit no specialized behavior.
Genetic Behavior
A Sytizen that falls into the Altruist category will engage in their genetic behavior once per simulation event, if the energy of the Sytizen is greater than the threshold set before the simulation begins. If so, the Sytizen will choose an in-group member at random within two Manhattan distance from herself. If the energy of that member is less than the energy of the active Sytizen (less the threshold amount) then the active Sytizen will share half the difference in the two energy amounts to a maximum of 10 energy. The chosen member gains energy in that amount and the active Sytizen will lose energy in the same amount.
Any Sytizen that is considered Parochial will engage in Parochial behavior once per simulation event, if the energy of the Sytizen is greater than the threshold set before the simulation begins. This behavior will happen in addition to the Altruistic behavior, if the Sytizen is considered to be both. The Sytizen will choose one out-group member within Manhattan distance two uniformly at random. The victim will be killed with probability 0.5. If the victim is not killed, the attacker herself has a 0.5 probability of dying in the attempt.
Simulation Events
At the beginning of an event, a Sytizen will first pay a metabolism cost of 1 energy. If this depletes the energy to 0, the Sytizen is removed and the event ended. The neighborhood of the Sytizen is then scanned, and the location and type of any Element or empty space is recorded within a Manhattan distance of four. The Sytizen will then consume one neighboring RES within two Manhattan distance from them. A consumed RES bestows 10 energy on the Sytizen. Then, any genetic-specific behavior is performed as described above.
If the Sytizen is still alive and their total energy is greater than 30, they will attempt to procreate. Any in-group members within a Manhattan distance of four are sorted by energy. If the highest energy amount is greater than 40 RES, that Sytizen is selected to breed. If an empty location is available, an offspring will appear with a starting energy of 20, and the energy of each parent reduced by 10. The offspring will inherit one of the parent's Altruism values and Parochial values with 0.5 probability each. Thus, a PA and an NPNA could produce any of the 4 categories of phenotype. Once the genes are established, the parochial and altruism values are each subject to mutation with probability 0.02. If a mutation occurs, the new value is increased or decreased by 1 with 0.5 probability.
Finally, the Sytizen engages in movement. All Sytizens are movement-biased towards any RES visible to them in a given event. The normalized locations of any RES within manhattan distance four are summed, and a vector is determined from the average of those locations. They take a single step, and the event is concluded.
Methodology
The energy threshold by which a Sytizen will engage in genetic behavior was adjusted over several runs. Initially, this threshold is set to 0, and genetic behavior will be engaged in every turn, if all other conditions are met. Then, we conduct runs at thresholds of 100, 250, 400, and 512 (effectively turning off the genetic behavior). We make 4 simulation runs per threshold.