Algorithm::Evolutionary::Op::Novelty_Mutation - Mutation guaranteeing new
individual is not in the population
my $mmdp = new Algorithm::Evolutionary::Fitness::MMDP;
my $bits = 36;
my @population;
for ( 1..100 ) { #Create and evaluate a population
my $indi = new Algorithm::Evolutionary::Individual::BitString $bits;
$indi->evaluate( $mmdp );
push @population, $indi;
}
my $nm = new Algorithm::Evolutionary::Op::Novelty_Mutation $mmdp->{'_cache'}; #Initialize using cache
$nm->apply($population[$i]);
Algorithm::Evolutionary::Op::Base
Attempts all possible mutations in order, until a "novelty" individual
is found. Generated individuals are checked against the population hash, and
discarded if they are already in the population.
Creates a new mutation operator with an operator application rate (general for
all ops), which defaults to 1, and stores the reference to population hash.
Applies mutation operator to a "Chromosome", a bitstring, really. Can
be applied only to victims composed of [0,1] atoms, independently of
representation; but it checks before application that the operand is of type
BitString.
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
CVS Info: $Date: 2011/02/14 06:55:36 $
$Header: /media/Backup/Repos/opeal/opeal/Algorithm-Evolutionary/lib/Algorithm/Evolutionary/Op/Novelty_Mutation.pm,v 3.1 2011/02/14 06:55:36 jmerelo Exp $
$Author: jmerelo $
$Revision: 3.1 $
$Name $