-
Notifications
You must be signed in to change notification settings - Fork 114
Divide settings
emilydolson edited this page Jan 30, 2014
·
2 revisions
These place limits on when an organism can successfully issue a divide command to produce an offspring.
OFFSPRING_SIZE_RANGE |
This is the maximal difference in genome size between a parent and offspring. The default of 2.0 means that the genome of the child must be between one-half and twice the length of the parent. This it to prevent out-of-control size changes. Setting this to 1.0 will ensure fixed length organisms (as long as you also change the other settings detailed in How to Set Up Fixed-Length Organisms). |
MIN_COPIED_LINES |
These settings place limits on what the parent must have done before the offspring can be born; they set the minimum fraction of instructions that must have been copied into the offspring (vs. left as default) and the minimum fraction of instructions in the parent that must have been executed. If either of these are not met, the divide will fail. These settings prevent organisms from producing pathological offspring. In practice, either of them can be set to 0.0 to turn them off. |
REQUIRE_ALLOCATE |
Is an allocate required between each successful divide (in virtual hardware types where allocate is meaningful)? If so, this will limit the flexibility of how organisms produce children (they can't make multiple copies and divide them off all at once, for example). But if we don't require allocates, the resulting organisms can be a lot more difficult to understand. |
REQUIRED_TASK |
This is a bit of a hack. It allows the user to set the ID number for a task that must occur for a divide to be successful. At -1, no tasks are required. Ideally, this should be incorporated into the environment configuration file. NOTE: A task can fire without triggering a reaction. To add a required reaction see below. |
IMMUNITY_TASK |
Allows user to set the ID number for a task which, if it occurs, provides immunity from the required task (above) -- divide will proceed even if the REQUIRED_TASK is not done if IMMUNITY_TASK is done. Defaults to -1, no immunity task present. |
REQUIRED_REACTION |
Allows the user to set the ID number for a reaction that must occur for a divide to be successful. At -1, no reactions are required. |
IMMUNITY_REACTION |
Allows the user to set the ID number for a reaction that, if it occurs, provides immunity from the required reaction (above) -- divide will proceed even if the REQUIRED_REACTION has not been performed as long as the IMMUNITY_REACTION has been performed. Defaults to -1, no immunity reaction present. |
REQUIRE_EXACT_COPY |
Requires the offspring to be an exact copy of the parent -- before divide mutations are imposed. At first glance this setting looks very similar to the STERILIZE_UNSTABLE setting in the Mutation Reversion group of settings. However, REQUIRE_EXACT_COPY allows any kind of divide mutation (see Mutation Settings)-- point, insertion, deletion, slip, etc. It does not allow before-divide mutations such as copy mutations. On the other hand, STERILIZE_UNSTABLE allows any kind of mutation, as long as the organism would be able to perfectly copy itself in the absence of mutations. |
Many other requirements can be imposed. See avida.cfg for MIN_GENOME_SIZE, MAX_GENOME_SIZE, REQUIRE_SINGLE_REACTION, REQUIRED_BONUS, REQUIRED_RESOURCE, REQUIRED_RESOURCE_LEVEL, REQUIRED_PRED_HABITAT, REQUIRED_PRED_HABITAT_VALUE, IMPLICIT_REPRO_BONUS, IMPLICIT_REPRO_CPU_CYCLES, IMPLICIT_REPRO_TIME, IMPLICIT_REPRO_END
, and IMPLICIT_REPRO_ENERGY
.