home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
The Datafile PD-CD 5
/
DATAFILE_PDCD5.iso
/
utilities
/
b
/
breederca
/
!BreederCA
/
Files
/
Help
< prev
next >
Wrap
Text File
|
1993-11-25
|
8KB
|
159 lines
!BreederCA Help File
---Introduction---
!BreederCA is a program for genetically breeding Cellular Automata rules.
Initially a random set of 12 rules are set up, from these a pair can be
selected and bred together, or a single specimen can be bred from asexually.
The 12 specimens then become the parent(s) plus 11 (or 10) offspring. These
can then be selected and bred from etc.
Using this method interesting rules can be found, offspring often having
genuine traits from both parents, and random mutations in the breeding
process producing new varieties.
More technical information will be given at the end of this file for those
interested.
---Instructions---
When run, the !BreederCA icon will appear on the icon bar.
Pointing at this icon you can click :
- Select to run the main part of the program (exiting the desktop).
- Menu to Save rules that you have previously marked for saving
in the main program.
The Main program.
You are presented with 12 seperate Cellular Automata running
simultaneously on the screen, these run from a random start, as is the norm
for cellular automata programs. Below are some icons, all control of the
program is with the mouse via these icons. From left to right these icons
are :
QUIT - Double click to return to desktop.
( nothing is reset by this action ).
RESTART - Double click to randomly reset the rules of all 12 CAs.
( except protected ones, see below ).
RANDOM - Click to select/deselect this function.
START icon becomes highlighted, other functions are deselected.
When this is selected clicking LEFT button on the mouse while
pointing at one of the 12 CAs randomises the cells. i.e running
the same rule from another random start.
Note : The MIDDLE button of the mouse always performs this
function anyway, for ease of use.
FREEZE - Click to select/deselect this function.
icon becomes highlighted, other functions are deselected.
When this is selected, clicking LEFT button on the mouse while
pointing at one of the 12 CAs stops it from operating, i.e.
'freezes' it at the current stage. This can be used for
examining structures that may have appeared, and also for
speeding up the operation of the other CAs ( gliders etc.are
much easier to spot on faster running CAs )
Note: The RIGHT button of the mouse always performs this
function anyway, for ease of use.
PROTECT - Click to select/deselect this function.
icon becomes highlighted, other functions are deselected.
If you spot an interesting CA but wish to carry on breeding with
some others and not overwrite it, this function will 'protect'
it. Click LEFT button on the mouse to protect the CA pointed at,
( or toggle protection off if it is already marked as protected )
Protected CAs are shown with a DOTTED box around them. They will
carry on operating ( or being 'frozen' ) whilst other lineages
can be bred. Also they will unaffected by a restart.
--- Saving to Disc ---
Protected CAs can also be saved to disc by Quiting to the desktop
and saving from the !BreederCA menu. All the CAs marked as
protected will be collected together and saved as one file.
These can be reloaded by dragging from a dirctory viewer on to
the !BreederCA icon. They will be added to any protected CAs
already in the program, and more can be loaded until there is no
room left, i.e. there are 12 protected CAs in the program.
SELECT - Click to select/deselect this funtion.
icon becomes highlighted, other functions are deselected.
This functiom selects the parent(s) for breeding from. Clicking
LEFT button on the mouse whilst pointing at a CA selects it ( or
deselects it, if it is already marked as selected ). Selected CAs
are shown by a SOLID box around them. Only up to two CAs may be
selected at once.
BREED - Click to create a new generation from the selected parent(s).
If only one parent is selected the offspring will be produced
asexually with some random mutation of the genes.
If two parents are selected the genes will be randomly mixed
together from them, and some random mutation will be added as
well.
As many offspring will be produced as possible, without
writing over any 'protected' CAs, or the parents. The new CA
rules and the parents will then begin operating from a random
start.
---More Technical Information---
I have assumed in wrinting these instructions the reader is familiar with
Cellular Automata in general, and I refer those who are not to Help files of
other Cellular Automata or 'LIFE' programs ( such as my own !Splodge ), or
to books such as "The Armchair Universe" by A.K. Dewdeny.
The CA rules in this program are all 64-state (numbered 0-63) and are
stored in a 32k lookup table. The sum of the 8 nieghbours of a cell (0-504)
combined with the state of the cell itself (0-63) uniquely define where to
look in the table. It can be shown that all possible CA rules with total
number of states less than 64 are a subset of the set of all possible rules
with 64 states. (i.e. their all 'out there' somewhere, including LIFE, Hodge
Podge type CAs, Chris Langtons 8 state CA with its self replicating loops
etc.)
Unfortunatly I think the emergent possibilities are limited by the initial
randomising of the rule. Filling the tables entirely at random produces CAs
that just look like white noise, nothing can be discerned between them, and
their offspring are no better. In order to get a reasonable set of CAs as a
basis, the tables are filled with strings of the same state, of random
length ( between 1 to 4000 bytes each time ). Breeding sexually randomally
chops between the two genomes at intervals ( between 1 to 4000 bytes each
time ). Also random mutations are added of several kinds :
Edge mutations : Finds border between one string of numbers and the next,
and randomly shifts forward or backward.
New mutations : Puts a few bytes in the table of random state at a random
location.
Shift Mutations : As above, but the states of the new bytes are derived as
the state already present plus or minus a random
value (constant for each clump of mutations).
Repeat Mutations : Long strings of numbers are copied from one place to
another in the rule, overwriting any data present at
new location.
Roughly 3 times as much mutation occurs for asexual breeding to keep the
variety produced about the same for each type of reproduction.
Basically all these values and methods have been chosen to produce an
aesthetically pleasing and useable amount of variation, and initial CA
rules. But it would be very hard to breed out very complex CAs that may have
rule tables with large scale patterning of a different kind to strings of
the same number ( Maybe patterns of repetition with slight variations each
time, for example ).
Other types of mutation / breeding may produce a remarkably different
'feel' to the program. Anyone who is interested in trying things like that
may feel free to use my program as a basis ( sorry it's not very well
documented but the structure's OK ). I'd be very interested to see the
results, I haven't got time myself because I've got a million and one other
programs to write, most of which won't be of a distributable nature, except
possibly a 3D CA breeder. Thanks a lot
John Hedley
15 Hill Rise
Trowell
Nottingham
NG9 3PE