Skip to content
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
MIN_EXE_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.

Clone this wiki locally