2.2 Agent-Based Models 23
• the agents,
• the agents’ environment,
• the rules defining how agents interact with one another and with their environ-
ment.
2.2.1.1 Agents
Agents are the fundamental part of any ABM, representing the entities that act in
the world being modeled. These agents are the central units of the model and their
aggregate behavior will determine the outcome of the model. In an ABM of a pack
of lions, we would most likely choose the individual lions as agents. Models will
often have more than one type of agent with, typically, many instantiations of each
particular type of agent. So, for example our model may have the agent-types: lion,
springbok, oryx, etc., and there will exist many instances of each agent type in the
model. A particular agent type is characterized by the set of internal states it can
take, the ways it can impact its environment, and the way it interacts with other
agents of all types, including its own. A lion’s state, for example, might include its
gender, age, hunger level and whether it is currently hunting; its interactions would
likely include the fact that it can eat oryxes and springboks. On the other hand,
a springbok’s interactions would not involve it preying on either of the other two
species. In a model of a biochemical system, the agents of interest might be proteins,
whose internal state values could represent different conformations. Depending on
the model, the number of internal states for a particular type of agent could be very
large. While all agents of a specific type share the same possible behaviors and
internal states, at any particular time agents in a population may differ in their actual
behaviors. So, one oryx may get eaten by a lion while another one escapes; one lion
is older than another one, and so on.
In the context of ABMs in biology, it is often useful to limit the life-time of
agents. This requires some rules specifying the conditions under which agents die.
In order to avoid the population of agents shrinking to zero, death processes need
to be counterbalanced by birth or reproduction processes. Normally the reproduc-
tion of agents is tied to some criterion, typically the collection of sufficient amounts
of “food” or some other source of energy. Models with birth and death (more gen-
erally: creation and destruction) processes allow a particularly interesting kind of
effect: If the agents can have hereditary variations of their behavior (and possibly
their internal states) then this could make it possible to model evolutionary pro-
cesses. In order for the evolutionary process to be efficient, one would need one
more feature, namely competition for resources. Resources need not necessarily be
nutrient, but could be space, or even computational time. An example of the latter is
the celebrated simulation program Tierra [34], where evolving and self-reproducing
computer programs compete against one another. Each program is assigned a certain
amount of CPU-time and needs to reproduce as often as possible within the allot-
ted time. The faster a program reproduces, the more offspring it has. This, together
with mutations—i.e., random changes of the program code—leads to very efficient
reproducers over time.