In this dialog you to set the rate at which background, 'Cosmic' mutations occur in the soup, the probability of a copy errors occurring during replication, and the rate at which instruction execution is flawed. The popup menus provide some sensible values, though if you wish to specify another value, choose 'Other...' in the menu, and type the number in.
The figures in this dialog represent the mean time between mutations. In other words, on average, an error will occur every X instructions, where X is the value in the box. In actuality, these numbers specify the mean of a exponential distribution of inter-mutation times. Alternatively you can specify the mutation rate in terms of the probability of a mutation at each time step, which is the right-hand figure in this box. If you change one of these figures, the other will be automatically recalculated for you.
The popup menus on the right hand side allow you to specify some reasonable predetermined settings, qualitatively described as 'High', 'medium', 'low' etc.
The 'Instruction mutation type' setting specified how instructions are changed when they are hit by a cosmic ray, or a copy error. 'Bit flip' is the standard setting, and this may change an instruction to any of 5 others (since the instruction contains 5 bits, each of which may be flipped). 'Adjacent instruction' changes an instruction to one of its neighbours; i.e. each instruction can be changed to only 2 others. 'Random choice' simply changes an instruction to any of the others, so there are 31 possible neighbours here.
There are two alternative strategies for size selection. The simplest is 'Constant size' (top option in the dialog) -- each creature gets the same number of instructions, irrespective of size. You can specify that number of instructions in the 'Slice size' box in the dialog.
The second strategy is to have the slice size a function of creature size, so that it can be scaled to select preferentially for small or large creatures. This is the second option, the parameter 'x' setting the size preference. Set 'x' to 1.0 to cause selection to be size neutral -- each creature gets a number of instructions proportional to its size. x < 1 selects for small things, and x > 1 for large things.
The 'Random variation in slice size' value specifies the bounds, in terms of the proportion of the slice size specified by the above settings, within which the actual slice sizes are randomly, uniformly distributed. Slice sizes are allowed to vary to avoid periodic effects, when creature reproduction is synchronized. Set this to 0 to disable this random variation in slice size.
'Select for lean creatures' also weights the slice size of the creature based on a measure of how 'lean' that creature is, in other words, what proportion of its total genome it actually uses in producing offspring. This is to counter a problem when selection is size-neutral, that creatures evolve which are large (so they get lots of slicer time) but actually only use a small proportion of their space.
On the 'Control' menu is a 'Random seeds...' menu item. This brings up a dialog in which you can specify whether new soups should used a fixed seed, or a seed generated from the current time. As with the other settings dialogs, to set the default options, close all open soups and then bring up this dialog. If a soup is open or running, then the 'New soups' options are disabled, and you can just change the current seed for the foremost soup.
Even though new soups start with the random seed specified in this dialog, making a new soup window and then showing this dialog reveals that the soup's current random seed is no the specified initial seed. This is because, as the soup is being created, the random number generator is called to determine when the next mutations will take place.
axregister when allocation (i.e. the
malinstruction) is executed.
Check 'Clear daughter cell' to zero out the space allocated for a new offspring. This reduces code exchange via 'dead code' in the soup, which constitutes a form of primitive sexuality. If both this, and 'Clear killed cells' (below) are checked, then all code exchange via dead code is prevented.
'Transfer register contents to offspring' causes the four registers in a creature to be
initialized to those of the parent (instead of to zero) when the parent executes the
instruction. This may represent some form of 'cultural transmission'.
When creatures die, their details can be logged to a file for later analysis. Check the 'Log deaths to file' box, and click the button, and specify the name of a new file into which logging information will be saved. This produces a tab-delimited text file, which can be simply dropped onto a wordprocessor or spreadsheet application to read and analyse.
Turning this option on will slow down execution rates a little, although the genebanking code has been carefully optimized to make lookups and insertions as quickly as possible. (The genebank uses an extensible hashing table, that requires only two disk accesess to load a genebank from the file.)
|Table of contents||Installation||Running||Soup settings||Preferences||Statistics|
|Assembling||Interface||How it works||c.f. Tierra||Bugs and features||Legal stuff|