Algorithm::Evolutionary::Op::Mutation - Bitflip mutation, changes several bits
in a bitstring, depending on the probability
use Algorithm::Evolutionary::Op::Mutation;
#Create from scratch
my $op = new Algorithm::Evolutionary::Op::Mutation (0.5 );
#All options
my $priority = 1;
my $mutation = new Algorithm::Evolutionary::Op::Mutation 1/$length, $priority;
Algorithm::Evolutionary::Op::Base
Mutation operator for a GA
Creates a new mutation operator with a bitflip application rate, which defaults
to 0.5, and an operator application rate (general for all ops), which defaults
to 1. Application rate will be converted in runtime to application
probability, which will eventually depend on the rates of all the other
operators. For instance, if this operator's rate is one and there's another
with rate=4, probability will be 20% for this one and 80% for the other; 1 in
5 new individuals will be generated using this and the rest using the other
one.
Creates a new mutation operator with an application rate. Rate defaults to 0.5
(which is rather high, you should not rely on it).
Called "create" to distinguish
from the classwide ctor, new. It just makes simpler to create a Mutation
Operator
Applies mutation operator to a "Chromosome", a bitstring, really. Can
be applied only to victims with the
"_str" instance variable; it checks before
application that the operand is of type
Algorithm::Evolutionary::Individual::BitString. It returns the victim.
This file is released under the GPL. See the LICENSE file included in this distribution,
or go to http://www.fsf.org/licenses/gpl.txt