++ed by:
EGOR

1 PAUSE user
1 non-PAUSE user.

J. J. Merelo-Guervós
and 1 contributors

NAME

Algorithm::Evolutionary::Op::Novelty_Mutation - Mutation guaranteeing new individual is not in the population

SYNOPSIS

  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]);
 

Base Class

Algorithm::Evolutionary::Op::Base

DESCRIPTION

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.

METHODS

new( $ref_to_population_hash [,$priority] )

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.

apply( $chromosome )

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.

Copyright

  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 $