Paralta is a simulation that runs in the Moveable Feast Machine, a robust-first, spatially distributed computational environment.
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:
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.
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.
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.
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.