|
Algorithm::Evolutionary::Op::Easy - evolutionary algorithm, single generation, with variable operators. |
Algorithm::Evolutionary::Op::Easy - evolutionary algorithm, single generation, with
variable operators.
my $easyEA = Algorithm::Evolutionary::Op::Base->fromXML( $ref->{initial}{section}{pop}{op} );
# Parsed XML fragment, see samples
for ( my $i = 0; $i < $ref->{initial}{section}{pop}{op}{param}{maxgen}{value}; $i++ ) {
print "<", "="x 20, "Generation $i", "="x 20, ">\n";
$easyEA->apply(\@pop );
for ( @pop ) {
print $_->asString, "\n";
}
}
#Define a default algorithm with predefined evaluation function, #Mutation and crossover. Default selection rate ls 4 my $algo = new Algorithm::Evolutionary::Op::Easy( $eval );
#Define an easy single-generation algorithm with predefined mutation and crossover my $m = new Algorithm::Evolutionary::Op::Bitflip; #Changes a single bit my $c = new Algorithm::Evolutionary::Op::Crossover; #Classical 2-point crossover my $generation = new Algorithm::Evolutionary::Op::Easy( $rr, 0.2, [$m, $c] );
Algorithm::Evolutionary::Op::Base
``Easy'' to use, single generation of an evolutionary algorithm. Takes
an arrayref of operators as input, or defines bitflip-mutation and
2-point crossover as default. The apply method applies a single
iteration of the algorithm to the population it takes as input
Creates an algorithm, with the usual operators. Includes a default mutation and crossover, in case they are not passed as parameters
Sets the instance variables. Takes a ref-to-hash as input
Applies the algorithm to the population; checks that it receives a ref-to-array as input, croaks if it does not. Returns a sorted, culled, evaluated population for next generation.
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: 2002/09/24 12:38:29 $ $Header: /cvsroot/opeal/opeal/Algorithm/Evolutionary/Op/Easy.pm,v 1.4 2002/09/24 12:38:29 jmerelo Exp $ $Author: jmerelo $ $Revision: 1.4 $ $Name $
|
Algorithm::Evolutionary::Op::Easy - evolutionary algorithm, single generation, with variable operators. |