Generating and saving statistics
MacTierra allows you to track and save to disk statistics about each run. The
'Collect statistics' item on the Control menu brings up
the soup statistics dialog, and stats can be saved to disk with the 'Save stats'
and 'Save genebank' options. These create tab-delimited files, which can be read
directly into a spreadsheet for analysis.
The soup statistics dialog.
The Soup statistics dialog enables you to specify what statistics
you wish to be saved as the soup runs and how often to collect them.
To log these data to a file while the soup is running, check the 'Log
data to file' box, click 'Set file...' and specify a filename in the
dialog that appears.
Stats collection is timed by cycles of the slicer queue, rather than simply
the number of instructions executed. This is a more realistic metric of elapsed
'time', since it reflects how many time slices each creature has recieved since
the last stats collection.
The various statistics are as follows:
- Total population size
- The total number of creatures in the soup.
- Number of species
- The number of different genotypes in the soup.
- Mean number of offspring
- The overall average number of offspring that creatures currently in
the soup have had. This is one measure of their fitness.
- Fitness of most common genotype
- The fitness of the most abundant genotype currently in the soup, where
fitness is measured as gestation time (mean number of instructions to produce
each offspring) multiplied by the mean number of instructions recieved by each
creature of that genotype.
- Creature sizes
- Every time a new creature is entered into the genebank, its size is added
to these data, along with the time (in number of instructions). Note that these
data are currently not logged to the file, for technical reasons.
- Two genotypes
- This collects data on the population sizes of the two genotypes
that are loaded into the graph window. This is useful if you suspect
that they interact (e.g. predator/prey relationships).
- Speciation and Extinction rates
- This will track the rates at which new genotypes enter the soup, and
old ones go extinct. The rates are simply speciations or extinctions since
the last data collection (i.e. over the number of cycles specified in the
box below it).
- Genotype diversity
- Genotype diversity is calculated as -[Sum of (p * log(p))], where p is the
proportion of creatures in the soup of each genotype, summed over all the genotypes
in the soup. In reality, only genotypes with two or more representatives are counted,
to avoid spurious diversity counts which include the many dysfunctional species.
- Save frequency
- Use this number to specify how often you want statistics to be collected
for the current soup. It is calibrated in terms of cycles of the slicer queue,
where each creature in the soup gets a time slice once for each cycle.
Be aware that collecting statistics more often than the time it takes for a
creature to replicate will give erroneous measures of creature fitness. For
example, the original ancestor takes about 800 instructions to produce its
first offspring, so, at 10 instructions per slicer cycle (as set in the
Preferences), 80aaa reproduces after about 80 slicer cycles. Fitness data collected every, say,
200 cycles will make more sense.
Note also that frequent stats collection can slow the soup down and cause you to run
out of space for data.
Log data to file
If the 'Log data to file' option is enabled, and you have specified a file to save
into, then data will be written to the file each time they are collect. The file is
a tab-delimited TEXT file, readable by Excel, and is sufficiently well labelled that
it does not need to be described here.
N.B. Currently, creature sizes data are not logged to this file, owing to a difference
in the way these data are collected.
Log activity to file
This saves data in a special format, for tracing the evolutionary activity of genotypes
through time. The output data consist of a list of genotypes alive for a given time,
and what proportion of the creatures alive in the soup is made up of each genotype.
Saving statistics on-the-fly
As well as logging data to file, you can save any of the data types that are currently
being collected, and the frequency data that are currently showing the graph window, using
the 'Save stats' menu option. Use the popup menu at the bottom
of the resulting dialog to choose the stats to save; types that you are
currenly collecting are enabled in that menu. To save any of the frequency distributions,
make the desired distribution active in the graph window before saving. There is currently
no way of logging these frequency distributions to file.