The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

NAME

AI::Genetic::OpMutation - A class that implements various mutation operators.

SYNOPSIS

See AI::Genetic.

DESCRIPTION

This package implements a few mutation mechanisms that can be used in user-defined strategies. The methods in this class are to be called as static class methods, rather than instance methods, which means you must call them as such:

  AI::Genetic::OpCrossover::MethodName(arguments)

CLASS METHODS

There is really one kind of mutation operator implemented in this class, but it implemented for the three default individuals types. Each gene of an individual is looked at separately to decide whether it will be mutated or not. Mutation is decided based upon the mutation rate (or probability). If a mutation is to happen, then the value of the gene is switched to some other possible value.

For the case of bitvectors, an ON gene switches to an OFF gene.

For the case of listvectors, a gene's value is replaced by another one from the possible list of values.

For the case of rangevectors, a gene's value is replaced by another one from the possible range of integers.

Thus, there are only three methods:

bitVector(mut_prob, genes)

The method takes as input the mutation rate, and an anonymous list of genes of a bitvector individual. The return value is an anonymous list of mutated genes. Note that it is possible that no mutation will occur, and thus the returned genes are identical to the given ones.

listVector(mut_prob, genes, possibleValues)

The method takes as input the mutation rate, an anonymous list of genes of a listvector individual, and a list of lists which describe the possible values for each gene. The return value is an anonymous list of mutated genes. Note that it is possible that no mutation will occur, and thus the returned genes are identical to the given ones.

rangeVector(mut_prob, genes, rangeValues)

The method takes as input the mutation rate, an anonymous list of genes of a rangevector individual, and a list of lists which describe the range of possible values for each gene. The return value is an anonymous list of mutated genes. Note that it is possible that no mutation will occur, and thus the returned genes are identical to the given ones.

AUTHOR

Written by Ala Qumsieh aqumsieh@cpan.org.

COPYRIGHTS

(c) 2003,2004 Ala Qumsieh. All rights reserved. This module is distributed under the same terms as Perl itself.