propeller.variation

crossover

(crossover plushy-a plushy-b)
Crosses over two individuals using uniform crossover, one Push instruction at a time.
Pads shorter one from the end of the list of instructions.

diploid-crossover

(diploid-crossover plushy-a plushy-b)
Crosses over two individuals using uniform crossover with pairs of Push instructions.
Pads shorter one from the end of the list of instructions.

diploid-flip

(diploid-flip plushy flip-rate)
Randomly flips pairs in a diploid plushy at some rate.

diploid-uniform-addition

(diploid-uniform-addition plushy instructions umad-rate)
Returns plushy with new instructions possibly added before or after each
existing instruction.

diploid-uniform-deletion

(diploid-uniform-deletion plushy umad-rate)
Randomly deletes instructions from plushy at some rate.

diploid-uniform-silent-replacement

(diploid-uniform-silent-replacement plushy instructions replacement-rate)
Returns plushy with new instructions possibly replacing existing
instructions, but only among the silent member of each pair.

new-individual

(new-individual pop argmap)
Returns a new individual produced by selection and variation of
individuals in the population.

tail-aligned-crossover

(tail-aligned-crossover plushy-a plushy-b)
Crosses over two individuals using uniform crossover, one Push instruction at a time.
Pads shorter one from the beginning of the list of instructions.

tail-aligned-diploid-crossover

(tail-aligned-diploid-crossover plushy-a plushy-b)
Crosses over two individuals using uniform crossover with pairs of Push instructions.
Pads shorter one from the beginning of the list of instructions.

uniform-addition

(uniform-addition plushy instructions umad-rate)
Returns plushy with new instructions possibly added before or after each
existing instruction.

uniform-deletion

(uniform-deletion plushy umad-rate)
Randomly deletes instructions from plushy at some rate.

uniform-replacement

(uniform-replacement plushy instructions replacement-rate)
Returns plushy with new instructions possibly replacing existing
instructions.