In this highly abstract model, agents occupy the nodes of a static network and exhibit an arbitrary “tag” that can be observed by others in the agent’s local environment. During the simulation agents pair with others in the local neighborhood and in each pairing one agent takes on the role of donor and the other of recipient. The donor first determines how similar it is to the recipient by calculating the difference between their tag values. If this difference is too great, the donor ignores the recipient. But if they are sufficiently similar, the donor pays a cost in order for the recipient to receive a benefit. Thus a donation is altruistic.
To make a determination of whether similarity is sufficient in a pairing, each agent has an internal tag “tolerance” - a threshold of tag difference below which the agent will altruistically donate to another.
Furthermore, cheaters may emerge in the population that display tags but never act altruistically, even when they are a donor and paired with recipient that is sufficiently similar.
The model is used to explore how different population parameters affect the ability of the simulated society to evolve relatively high levels of altruism.