[Martin Taylor 940923 12:00]
As I mentioned yesterday, I was trying out a little simulation in HyperCard
on the effect of selection and minor mutation in evolution within a fitness
space. Last night I extended that to a multidimensional space, as I had
proposed, and did a small run. Here's what I did, and what happened.
The experiment is a simplification of the setup I originally suggested.
The fitness space is defined by one parameter, distance from a target.
If the distance is D, the probability that an genome survives to the
next generation is given by p + (1-p)/(1+D). A genome is represented by
the existence of one organism that carries it. Organisms may have offspring,
and if they do, the offspring carry the same genome. The genome dies when
a carrier organism fails to have offspring.
The process is like this. On initial setup, the experimenter chooses
the size of population of organisms initially present. This size is retained
in all future generations--it represents resource availability limits.
For each generation, survival of the genome is first checked for each
organism, and some die. The remainder are mutated by changing the fitness
value of each gene by an amount chosen randomly from a rectangular distribution
+-0.1 D units. The population is then brought back to the fixed
limit value by giving extra children to organisms randomly chosen from
among the mutated survivors. Notice that every gene in an organism is
mutated each generation, which is quite unreal. It makes "life" noisy,
but it means that something happens in an overnight computing run in a
space of several dimensions.
The experimenter chooses a couple of other parameters for the experiment:
whether all the initial population have the same genome (occupy the same
location in the fitness space) or whether they are distributed randomly
around the space; the value of p in the survival formula (I have only
used 0.5); and the number of dimensions (independent genes that can mutate).
I've tried several runs in a 2-D space. What happens is always the same,
regardless of the parameter values, but the pattern is a bit different
if the initial population are all clones as compared to when they are
scattered around. In a randomly initialized population, after a very
few generations there are several distinct clumps (families, species)
of related organisms. These rapidly give way to a simple swarm centred
on the target fitness. In a population of clones, the population after
a few generations looks like the same kind of swarm, which very gradually
moves generation by generation toward the target. It takes a long time
for a monoclonal population to evolve to surround the target in this
experiment.
Last night I tried an 8-D run with a randomly initialized population
(random means scattered with a rectangular distribution in each gene over
the rectangular space of edge length 6, with the target at the centre).
The same clumping into families happened in the first few generations,
perhaps more markedly than in 2-D, but before long only one of the clumps
survived, at a substantial distance from the target, very much like one
of the swarms derived from a monoclonal initial population in the 2-D runs.
Over several hundred generations the swarm moved slowly toward the target,
but stalled at a distance of 3-4 units. In the morning, after almost 1000
generations, I found that all the organisms were distributed in the
hyperspherical shell between 3 and 4 units from the target, none closer.
I've since repeated a similar run for about 500 generations, with the same
result.
In retrospect, this result should not have been surprising, for two reasons.
One is simply that in a high-dimensional space, the volume of a shell goes
up fast as the radius increases. The shell between 1 and 2 units of distance
from the target has 255 times the volume of the central unit sphere. The
ratio between the volume of the shell from 2-3 units and the hypersphere
of radius 2 is 24.6. And so it goes. It is unlikely that a random move
of finite size will land within the smaller hypersphere when one is close
to the target. And the moves are non-trivial in this experiment, having
a standard deviation of about 0.245 distance units, on average orthogonal
to the direction toward the target. If the origin of the mutational move
is at 1 distance unit from the target, the expected distance of the end-point
of the move is about 1.03 distance units, an outward move.
And that brings up the second reason why the result should not have been
surprising: the toward-target movement of the population depends on the
differential survival of fitter and less fit genomes. If there is little
variety in the genome fitness, the movement will be slow. If it would
average less than the size of the outward move expected from a random
mutation, then the movement overall of the population would be outward.
The result is that the population becomes scattered around a shell surrounding
the target.
If this kind of result holds more generally than in the restricted
circumstances of the simulation, it suggests that populations of a species
will tend to have a variety of genome types, none truly optimum for the
current environment, but no matter how the enviroment changes (slowly),
some of the types would become more optimum, and the population variety
would track the movement of the environment, as a multidimensional shell
around the optimum. That's a speculation, but the reasons why the simulation
showed a shell seem to have validity beyond the conditions of the simulation.
E-coli types of approach to an optimum should be subject to similar effects
of high dimensionality. But they presumably would be faster.
Martin