Next: Preliminary Issues
Up: Design Details of the
Previous: Design Details of the
Cosmos Design Philosophy
The basic approach employed in Cosmos to model an evolutionary process
is the same as in Tierra. However, many of the design details are
different, reflecting the slightly different goals motivating the two
systems.
One of the original goals of Cosmos was that it should be able to
support self-replicating programs with some of the features possessed
by simple cellular biological organisms, such as mechanisms for
communication and response to environmental stimuli (which may
potentially promote coevolution between organisms), and mechanisms for
regulating the genome (which may promote the evolution of
differentiated programs).
Before continuing, clarification should be given of some of the terms
that will be used when describing Cosmos. Biological terms will often
be used, as these tend to be somewhat more concise than the
associated terms relating to computer architectures.
While these biological terms suggest the analogy that was
in mind when Cosmos was designed, the analogies are certainly not
exact; many simplifications and modifications obviously have to be
made when designing such a system. With this is mind, the meanings
attached to some biological terms in the present context are listed in
Table 4.1.
Table 4.1:
Definitions of Biologically-Related Terms
Used for Describing Cosmos.
Term |
Meaning in context of Cosmos |
Genotype |
The instructions that make up a program (the host code within a
cell). |
Genome |
The structure within a program which stores the program's
instructions. In the current context, the terms genome and genotype
are used more or less interchangeably. |
Phenotype |
The action (behaviour) of a program as its instructions are being
executed. |
Organism |
A single program, which may be unicellular or multicellular. |
Cell |
A single process in an organism. This term encompasses the host code
and any foreign code that may be present, together with associated
working memory, buffers, registers and other structures. |
Unicellular |
An organism containing a single cell/process (in other words, a serial
program). |
Multicellular |
An organism containing multiple cells/processes (in other words, a parallel
program). |
|
Perhaps the most significant difference between Cosmos and Tierra is
that programs in Cosmos cannot directly read the code of their
neighbours. Cells can only communicate with each other (within or
between organisms) by message passing (described in
Sections 4.3.7 and 4.6.1).
Apart from this intercellular communication, each cell only has read,
write and execute access within its own cell boundary.
Among the other important differences between Cosmos and Tierra are a
number of features in Cosmos intended to encourage the evolution of
diversity and complexity4.2
in the competing programs, rather than just the optimisation of their
ancestral algorithms.
The most important of these are the energy token
allocation system, described in Sections 4.3.5 and
4.5.2, and the regulator system of promoters
and repressors which governs the execution of a program's
code, described in Section 4.3.3. The regulator system
is closely linked to the programming language in which the
self-replicators are written, introduced in Section 4.4.
Further differences between Cosmos and Tierra are discussed in
Section 4.10.
Next: Preliminary Issues
Up: Design Details of the
Previous: Design Details of the
Tim Taylor
1999-05-29