Algorithm::Evolutionary::Run - Class for setting up an experiment with
algorithms and population
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();
This is a no-fuss class to have everything needed to run an algorithm
in a single place, 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.
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
"examples" subdir for examples of the YAML
conf file.
Resets the population size to the $new_size. It does not
do anything to the actual population, just resests the number. You should do a
"reset_population" afterwards.
Resets population, creating a new one; resets fitness counter to 0
Runs a single step of the algorithm, that is, a single generation
Applies the different operators in the order that they appear; returns the
population as a ref-to-array.
Returns a random guy from the population
Returns results in a hash that contains the best, total time so far
and the number of evaluations.
Returns the portion of population that has been evaluated (all but the new ones)
Computes the average hamming distance to the population
Computes the average hamming distance to the population
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