NAME
Algorithm::Evolutionary::Run - Class for setting up an experiment with algorithms and population
SYNOPSIS
use Algorithm::Evolutionary::Run;
my $algorithm = new Algorithm::Evolutionary::Run 'conf.yaml';
#or
my $conf = {
'fitness' => {
'class' => 'MMDP'
},
'crossover' => {
'priority' => '3',
'points' => '2'
},
'max_generations' => '1000',
'mutation' => {
'priority' => '2',
'rate' => '0.1'
},
'length' => '120',
'max_fitness' => '20',
'pop_size' => '1024',
'selection_rate' => '0.1'
};
my $algorithm = new Algorithm::Evolutionary::Run $conf;
#Run it to the end
$algorithm->run();
#Print results
$algorithm->results();
#A single step
$algorithm->step();
DESCRIPTION
This is a no-fuss class to have everything in a single class, although for the time being it's reduced to fitness functions in the A::E::F namespace, and binary strings. Mostly for demo purposes, but can be an example of class for other stuff
METHODS
new
Creates the whole stuff needed to run an algorithm. Can be called from a hash with t options, as per the example. All of them are compulsory. See also the C<examples> subdir for examples of the YAML conf file.
step
Runs a single step of the algorithm, that is, a single generation
run
Applies the different operators in the order that they appear; returns the population as a ref-to-array.
random
Returns a random guy from the population
results
Returns results in a hash that contains the best, total time so far and the number of evaluations.
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: 2008/04/01 08:24:13 $
$Header: /cvsroot/opeal/Algorithm-Evolutionary/lib/Algorithm/Evolutionary/Run.pm,v 1.5 2008/04/01 08:24:13 jmerelo Exp $
$Author: jmerelo $
$Revision: 1.5 $
$Name $