3 Agents
In this section, we move from the fixed laws of the universe
to the potential behaviour of agents acting in the universe.
3.1 Organs
An agent is a collection of organs.
Each organ performs a particular task on behalf of the agent.
Organs in an agent play a role analogous to that of organs in
an animal. However, organs in an animal consist of large numbers of cells.
Organs in an agent correspond to a single cell in that they contain a single
copy of the agent's genome.
Each organ of an agent has a position
represented by its coordinates in the space. Organs have discrete
positions in the following sense: if an organ is at (x, y, z) then an
adjacent organ is at one of the six positions (x ±
, y, z), (x,
y ± , z),
or (x, y, z ±
), where
is a small
constant. We will refer to this as the
-rule.
There is a unique initial organ that defines
the position of the agent as a whole. This is the organ that the agent is
created with; subsequent organs develop according to the
-rule,
with no two organs in the same position.
3.2 Links
When an agent constructs a new organ, the organ is
linked to one of the existing organs of the agent. The number of links
that an organ has determines its vulnerability. An organ with only
one link is highly vulnerable (e.g, it may easily be removed by another,
hostile, agent). An organ with six links (the maximum possible) cannot be
attacked.
The number of links also determines the sensitivity
of an organ. Organs with one link are most sensitive, organs with six links
are least sensitive to environmental conditions.
3.3 Genome
The agent has a genome that controls the
behaviour of each organ. Each organ selects segments of the genome (genes)
to control its own activities. Each gene may affect several organs.
A more elaborate approach is that the genome might simply
guide the development of the agent.
The simulation allows us to experiment with agents in the
universe:
. Experiments are performed with a populations of agents. The
size of the population should be large enough to ensure variation but small
enough that many generations can be simulated in a reasonable time.
. Agent behaviour is determined by the agent's genome, its
current state, and its environment.
. Agents perform activities that consume energy. The energy
balance must be maintained. For example, agents might acquire energy by
consuming 'food' from the environment and metabolizing it.
. Agents reproduce by pairing: two agents (parents) meet in
some way and create an offspring with a genome derived from the parents'
genomes. We can use standard techniques: crossover, mutation, etc.
. Agents may interact in other ways, such as: trading,
threatening, and fighting.
. Conventional experiments usually have a well-defined goal,
such as optimization. In these experiments, there is a well-defined fitness
function and (in biological terms) strong evolutionary pressure to maximize the
fitness function. Our experiments have no such goal, which makes them more
diffcult to design but (hopefully) more interesting. Some agents will survive,
others will not: survival is the implicit 'fitness function'.
3.4 Activities
The complexity of the experiment depends strongly on the
number of distinct activities an agent is capable of performing. Some possible
activities are listed here.
. Reproduction is essential. Two parents produce one
offspring. This is not 'sexual' because the parents do not have a sex (although
sex might evolve!).
Asexual reproduction (a single agent reproduces itself) might
be include as well (or instead). It is simpler to implement, but allows only
evolution by mutation.
. Interaction between two agents is important because it is
one path to reproduction. Also, a world in which there is no interaction between
agent is not much more interesting than a world with only one agent.
How many kinds of interaction should there be? Possibilities
include: reproducing (obviously); trading (i.e., exchanging resources to mutual
advantage); threatening; and fighting.
. Movement is not essential but increases realism. An agent
may move to obtain a richer source of energy or to meet new partners.
. Communication is not essential but increases realism.
Agents may emit and detect pheromones, for example.
Current Choices:
. Motion is continuous (i.e., not step-wise)
and in any direction. The universe is a viscous fluid: a moving agent that does
not expend energy in moving will eventually stop. Expending energy at a constant
rate causes motion with uniform velocity. Turning to change the direction of
motion also requires energy.
. Sensing needs further work. An agent needs to
measure the distribution of atoms of various kinds in its vicinity. What are the
primitive operations that it needs in order to do this? If the operations are
too primitive, evolving intelligent behaviour will take a long time. If the
operations are too rich, they will limit the directions that evolution can take.
. Communication is related to sensing. Agents
can communicate only be emitting atoms that are detected
by other agents.
. Interaction includes: mating (for sexual
reproduction); attacking (to obtain cheap energy); and possibly trading
(friendly exchange of resources).
3.5 Attributes
An agent has attributes, as described in this section, and
consists of the components described in the following sections. These sections
below suggest precise ways in which each part of an agent might be elaborated.
However, they are not meant to be definitive and may change as a result of
discussion.
3.
5.1
Communication
Animals communicate by many means, including light, sound,
vibration, smell, and touch. Some smells are accidental by-products of bodily
activity; others - the pheromones - are secreted for particular purposes.
Suppose that agents communicate with pheromones.
(a) The pheromone is emitted into space, drifts, and is
received.
(b) Emission of a pheromone by one agent increases the
probability of its detection by another agent.
The second alternative, (b), is much more efficient
computationally but it precludes adaptations such as:
. moving up a density gradient;
. shooting pheromones in a particular direction;
. pheromones drifting in the wind (i.e., being upwind or
downwind makes a difference).
Current Choice: The simulation computes which organs
receive pheromones from information about which organs emit pheromones. Using
organs rather than agents allows the agents to evolve specialized organs, etc.
3.5.2 Resources
Resources are finite and agents compete for them. Without
this restriction, agents get fat and populations expand without limit. If
resources are limited, fat agents will not be able to obtain what they need and
will be less likely to survive. Efficient agents will have a better chance of
survival.
Should there be one resource or many? If one, what should it
be? Energy seems a reasonable choice: each activity consumes a certain amount of
energy and an agent must obtain the energy need to perform its activities;
failure to do so leads to death.
One possibility is to equip the agent with a string and a
bag. The string defines the agent's behaviour (see §4) and includes its genome.
The bag contains atoms for food, storage, and embryos.
Resources should be both positive and negative. A positive
resource ("food") helps the agent. A negative resource ("poison") damages it.
Current Choice: One possibility is that an agent has a
single bag of resources that is shared amongst its organs. Another possilibity,
and the one that we will adopt at first, is that each organ has its own bag of
resources.
3.6 Components
This section is out of date, but I have not removed it. The
introduction of agents with multiple organs affects some of the discussion.
However, some aspects, such as the need for hormones, remain unchanged.
In this section we discuss the various aspects and components
that agents might have. These are possibilities; they should be distinguished
from more concrete proposals that appear later in this paper.
An agent has hormones. Each hormone is denoted
by a lower-case bold letter representing a vector. The tuple of hormones, (a,
f, x, t, . . .), determines the
state of the agent.
The components of an agent are not arbitrary. Their presence
is justified by two factors: a component must be useful to the agent and
it must be able to evolve. Thus we describe each component in terms of
four aspects:
. The definition states the purpose and nature
of the component.
. The requirement explains why the agent needs
the component.
. The representation describes how the agent
might store the component (e.g., as an atom, string, etc.).
. The evolution discusses ways in which the
component might evolve during the simulation.
3.6.1 Appearance
Definition.
The
appearance of one agent can be detected by the Sensor (§3.6.7) of a neighbouring
agent.
Requirement. Appearance is needed to provide agents with
a basis for engaging in interactions with one another.
Representation. The appearance of an agent is represented
by a vector a. For display purposes, a can be represented as a
colour with RGB components proportional to ax, ay,
and az, and brightness proportional to | a |.
An agent does not have complete and independent control over
its appearance. Appearance is based on various attributes of the agent. E.g., an
agent with many organs will emit many pheromones and cannot easily disguise the
fact that it is large.
Evolution. A simple agent would present the same
appearance all the time. An advanced agent would change its appearance in
response to internal state changes.
3.6.2 Motor
Definition.
The motor
component enables the agent to move around in the environment. Movement is
discrete: an agent is at a grid point of the space at any given time.
There are various pressures acting on an agent to make it
move. The agent will tend to move towards food, towards some agents, and away
from other agents.
Requirement. The Motor component enables the agent to
explore the environment. It is not needed as much as the other components
because we could simulate plants. Movement, however, enables the simulation of
richer behaviour.
Representation. Motion follows Newton's Laws. The
acceleration of the agent is a (a vector, since the direction of the
acceleration is not restricted to any one direction or the principle axes), and
the viscous fluid that fills space provides friction -k v, where
v is the velocity of the agent. The agent can exert a force F. The
equation of motion, ma - k v = F, is solved
by the simulation using first-order integration.
Exercise strengthens muscles. Should agents be able to build
their motor stuctures?
Evolution. The simplest agent would be able only to move
towards food. Complex agents would respond to other agents as well, either by
approaching or running away.
3.6.3 Genome
Definition.
The
Genome of an agent influences, but does not totally control, the behaviour of
the agent. When agents reproduce, their genomes are combined to produce the
genome of the offspring.
Requirement. The Genome is needed for reproduction and,
more importantly, evolution.
Representation. The Genome is a sequence of atoms (and
can therefore be represented as a character string). The Genome is not a
program.
Evolution. A simple agent would have a minimal genome
just suffcient to describe itself. Complex agents would have longer genomes with
duplication, junk, and genes that could be selected.
Simple agents reproduce without a genome. Complex agents need
a genome. Under what circumstances would a genome evolve?
In most work in EP, genes control behaviour directly. In some
cases, there is not even a genome as such: the agent is its own genome. In
biology, genes control the synthesis of proteins and the proteins, in turn,
determine the behaviour of the cell. Should the genes of our agents control
behaviour directly or indirectly, by synthesis?
A problem with our previous work (see §5.2) was that the
proportion of genomes that were viable was very small. This is realistic (a
random sequence of DNA would be unlikely to produce a viable organism) but
impractical for our experiments, because most mutations are lethal. Thus the
genome should be designed so that a reasonable proportion (perhaps 5% or more)
of genomes describe viable agents. This conflicts with our goal of minimizing
design.
In biology, genes can be broadly classified into two groups:
synthesizing and regulatory. Should this distinction be built into the
experiment (too much design) or left out (but it's unlikely to evolve)?
See §4.1 for further discussion of reproduction and the
genome.
3.6.4 Replicator
Definition.
The
Replicator builds a new agent under the control of the program and the genomes
of the parents.
The replicator's program component has the task of building a
new agent. It uses the child's genome to control the construction and it obtains
material (in the form of atoms) from the mother agent. §4.1 discusses
replication in detail.
Reproduction is "sexual": two parents are required to create
a child. The child needs help from its parents to grow. This suggests various
possibilities:
(1) There is a "mother" who rears the child and a "father"
who has little involvement.
(2) Both parents play an equal role.
(3) The role of the parents is controlled genetically.
Of these, (3) is the most interesting because it makes
evolution of sexual differentiation possible. However, it may be hard to
implement. See §4.1 for a proposal for implementing (1).
Requirement. The Replicator is needed so that agents can
be actively involved in reproduction rather than being magically created.
The reproduction mechanism is something that can evolve.
Representation. A "mother" agent reproduces by
constructing a new organ, providing it with sufficient resources to survive by
itself, and the breaking its link. The "baby" agent consists of a single organ
and grows by constructing new organs and linking them.
In general, all organs of an agent have the same genome. For
reproduction purposes, an agent must be able to construct a new organ with a
different genome; this organ becomes its offspring.
Evolution. A simple agent replicates by making a literal
copy of itself. A complex agent would create offspring that were similar to
itself but incorporated modifications specified by the genome.
3.6.5 Interactor
Definition.
Agents
moving around in the environment may encounter one another. When agents
interact, each must decide how to behave towards the other. The decisions are
independent, and the agents may choose incompatible responses. The Interactor
(for want of a better name) is the component of the agent that handles these
interactions. The Interactor chooses its response on the basis of messages
received from the Sensor (§3.6.7), which provides it with information about the
other agent. The possible responses are based on the F4 (flee, fight,
feed, or make love) principle of ecology and include: signal willingness to
reproduce; signal willingness to trade; fight; flee.
Reproduction needs no explanation; §4.1 describes the
mechanics.
Agents may have a surplus or a deficit of atoms of various
kinds. They can negotiate a trade in which atoms are exchanged,
hopefully to the benefit of both. The exchange might work as follows: each agent
has a trading vector, t. The effect of trading between agents A
and B is determined by the value of tA × tB.
If tA = tB, the result is that no trade takes place,
which is reasonable, because agents with identical desires have no need to
trade. Trading is maximized when tA?tB. We need a
suitable interpretation of the direction of tA × tB.
An agent may choose to fight the other agent.
If both agents agree to fight, a fight occurs and the winner gains some
material, leaving the loser wounded. The wound may or may not be fatal,
depending on whether the loser can continue to live after the removal of
material. (There are a lot of details to be worked out here.)
An agent that believes that the other agent has hostile
intentions may decide to flee. In this case, no fight (or other
form of encounter) takes place.
If one agent fled, the other agent might decide to chase it.
Agents can only interact when they are at the same point.
Agents at adjacent or nearby points may approach or retreat.
Two agents are never allowed to be at the same point. (This
simplifies the implementation slightly.) Agents interact only if they are at
adjacent points of the grid.
Requirement. The Interactor is needed because, without
it, agents would evolve in isolation: there would be no "gene pool".
Representation. Complicated.
Evolution. There is clearly a wide spectrum of
possibilities, from not responding at all to engaging in complex transactions.
3.6.6 Digester
Definition.
The
Digester obtains suitable food for the agent and converts it into
energy.
Requirement. The Digester is not strictly necessary.
However, it provides a way of ensuring that an agent must perform some kind of
activity in order to stay alive.
Representation. The environment provides a steady supply
of food, in the form of atoms. The agent has an "appetite vector" f. The
value of food v to agent A is v · fA.
Since it is an inner product, the value of food may be
positive (nutritious) or negative (poisonous). Agents do not necessarily know
this but have to figure it out pretty quickly if they wish to survive.
Evolution. Simple agents eat whatever they can get.
Complex agents have preferences for various kinds of food and can also
metabolize what they eat with varying degrees of efficiency. As mentioned above,
there could be both "food" and "poison". Agents might evolve so as to be
poisonous to others or even to inject poison into others. Other agents might
evolve defences against these tactics.
The role of digester can be split into two (or more) parts:
e.g., "mouth" and "stomach". Simple organisms have little or no control over
what they eat: their food consists of anything that drifts into their mouths. As
agents become more complex, they can become more selective about what they eat,
and can even go in search of prey.
3.6.7 Sensor
Definition. An agent can sense various properties of its
neighbourhood: the presence and type of food, and the presence and appearance
(§3.6.1) of other agents.
The sensor component can detect food and other agents. When
it detects food, it passes the appropriate information to the Digester.
Requirement. Sensors are essential for meaningful
interaction with other agents, as well as for detecting food.
Representation. For interaction with other agents, the
agent has a vector x; the attraction of agent A to agent B
is xA · aB. Note:
. In general, xA · aB 6= xB
· aA.
. Since lust is an inner product, it may be positive
(attraction) or negative (repulsion).
The above does not fit in with the model of agents
communicating by exchanging atoms (representing pheromones). In the new model:
. There are atoms in space.
. Agents emit atoms.
. Agents sense atoms and must interpret them. Some atoms will
be quite common, and represent energy sources. Other atoms will be rare, and may
represent predators, prey, or potential partners.
Evolution. The simplest agents can only detect particular
stimuli in one direction (straight ahead). Complex agents can detect a variety
of stimuli and determine the direction they are coming from.
Agents can evolve specialized organs, usually on the
periphery of their bodies, for sensing purposes.
Page 1, Page 2, Page 3,
Page 4, Page 5