WHAT IS IT? -----------

This is an evolutionary biology model. It models population genetics with respect
to the fitness of traits that are affected by social and environmental
conditions. The model has two breeds of patch agents:  altruistic agents and
selfish agents. The basic premise of the model is that the selfish agents and the
altruistic agents are competing for each spot in the world by entering into a
genetic lottery.  You can imagine these agents as plants who "seed" for a spot,
and the dominant seed generally wins.  The details of the lottery are explained
below in 'Understanding the Model' Under normal (non-interfering) environmental
conditions, the selfish agents win, and the altruistic population is driven to
extinction.  However, as outlined in 'HOW TO USE IT:  Environmental Variables',
when the environmental conditions are made more harsh, the altruistic population
is able to survive, and even dominate the selfish population.

Understanding the Model 1.Each patch is a cell that has a fitness.  Each patch is
the locus of a lottery for its space.  It and the four surrounding patches put in
"seeds" to try to get the patch turned to their type of patch, altruist or
selfish.  Being successful in the lottery is getting patches to turn to your type
of breed.  We're assuming here that the breed (altruistic or selfish) is the
important genetic trait. 2.Patches live in five-cell, plus-shaped neighborhoods. 
Whenever a patch is calculating something about its fitness, it is the center of
the neighborhood.  For another patch, when that patch is calculating, it becomes
merely one of the neighbors. 3.Each patch calculates its own fitness using
equation: if it is an A: 1 - cost + (NumberAltruists in Neighborhood/5 * benefit
from Altruists) if it is an S: 1 + (NumberAltruists in Neighborhood/5 * benefit
from Altruists) Thus, the fitness of the S patch will be higher than the fitness
of the A's. If the cost is .2 and benefit is .5, for an A surrounded by two S's
and two A's, then the fitness of this spot is 1 - .2 + (3/5 * .5) = 1.1 4.Each
patch has calculated its fitness this way. Now, A patch looks to its four
neighbors.  Each of the five patches, including itself, puts a weighted seed into
a genetic lottery for this center spot.  So, for example, if the neighborhood is
ASASA, each of the three A's register their fitness value, and each of the two
S's put in their fitness.  The A's are added, and the S's are added.  Let us
assume that the A's add up to 3.2 (this includes the A in the center spot), and
the S's add up to 2.6.  These two numbers are the altruistweight and
selfishweight respectively, in the lottery for the center spot.  Now, the larger
number, whichever it is, is called the Major seed; it is divided by the sum of
all the fitnesses.  Thus, 3.2/(3.2 + 2.6) = .552  This number is the Altruism
seed in the lottery.  The minor seed is 2.6/(3.2 + 2.6) = .448. (Notice that the
Altruism seed of the parent is 3/5 = .600, while the child's is .552.  Even
though altruism is dominating, it is losing ground.) 5.There are a number of ways
of doing the lottery itself.  Currently, we choose a random number between 0 and
the sum of fitness.  In the above example, this is a number between 0 and .999.
Now, if the Number is below the Minor seed, the minor weight gets the spot, and
if it is above the major seed, the major seed gets the spot.  So, in the example,
if the random number is anywhere from .449 to .999, then the Major seed gets it.
If it is between 0 and .448, the minor seed gets it.

HOW TO USE IT -------------

Basic Controls 1.The SETUP button sets up the model by creating the agents. 2.The
GO button runs the model. 3.The DEN%_ALT slider lets you determine the percentage
of overall altruists in the model.  This value is weighed against the
DEN%_SELFISH value, which determines the percentage of overall selfish agents.
4.The ALTRUISM_COST slider determines the value of cost in the above fitness
equations. 5.The BENEFIT_FROM_A slider determines the value of benefit in the
above fitenss equations.

Environmental Variables There are two environmental variables:  Harshness and
Disease. 1.The HARSHNESS slider sets the value for the resistance of empty patch
spots to being populated by agents.  The value for this slider determines a
corresponding value in the lottery for each empty (black) spot on the grid; the
higher this value, the more difficult it is to populate. 2.The DISEASE slider
sets the value for the possibility that the agents in occupied spots will die. 
The value for this slider is factored into the genetic lottery, and determines
the percentage chance that each agent will die out from their spot.

THINGS TO TRY ----------------

1.At first, run the model with Harshness and Disease both at 0.  Notice that the
selfish population quickly dominates the world, driving the alrtuistic population
to extinction.  How do respective population sizes affect the outcome? 2.Play
with the values of cost and benefit.  What are realistic values for actual
genetic competition?  How does initial population size effect the significance of
these values? 3.Increase the Harshness and Disease values, independently, and
with respect to one another.  What are the effects of the Harshness Model?  of
Disease?  How are the values dependent on one another?  At what values does the
altruistic population begin to have greater success? 4.Consider why the
introduction of Harshness and Disease conditions affects the success of the
altruistic population.  How does each population, run alone, respond to the
Harshness and Disease conditions?  If you imagine the black spots as Voids (a
third type of competing agent), what is the fitness relationship between
Altruists and Voids?  Selfish agents and Voids?

EXTENDING THE MODEL -------------------

This model is based on a paper by Mittledorf and Wilson, in press, and has thus
been developed under its auspices.  However, the model can be extended in a
number of interesting directions, including adding new environmental variables,
adding different types of agents, and changing the altruistic and selfish
weighting under different environmental conditions.  This model does not address
the behaviors of individuals, but only the relative weights of genetic traits.  A
next step in considering the evolution of altruism is to model altruistic
behaviors.  See the related model:  Cooperation (Altruistic Behavior).

STARLOGOT FEATURES ------------------

This model uses only patch agents. The fitness of the agents is determined by
setting a 'fitness' variable.  Each agent then compares its type of fitness
(altruistic or selfish) to the total value of fitness in its neighborhood. 
Because each patch can talk to one another, they can find out the fitness of each
member of their neighborhood, and use that value in calculating the total weights
of altruism and selfishness in the neighborhood. The use of commas in the code
allows all of the agents to synchronize in their fitness-checking, and thus to
keep the neighborhood values accurate.

RELATED MODELS -------------- Cooperation (Altruism Behavior) Model
Divide-the-Cake Model