For details read Perl NOC. After June 25

J. J. Merelo-Guervós >
Algorithm-Evolutionary-0.79_1 >
Algorithm::Evolutionary::Op::FullAlgorithm

Module Version: 3.0
Algorithm::Evolutionary::Op::FullAlgorithm - Skeleton class for a fully-featured evolutionary algorithm

use Algorithm::Evolutionary qw( Op::Base Op::Bitflip Op::Crossover Op::RouletteWheel Op::GeneralGeneration Op::GenerationalTerm Op::FullAlgorithm ); # Using the base class as factory my $easyEA = Algorithm::Evolutionary::Op::Base->fromXML( $ref->{$xml} ); $easyEA->apply(\@pop ); #Or using the constructor my $m = new Algorithm::Evolutionary::Op::Bitflip; #Changes a single bit my $c = new Algorithm::Evolutionary::Op::Crossover; #Classical 2-point crossover my $replacementRate = 0.3; #Replacement rate my $popSize = 20; my $selector = new Algorithm::Evolutionary::Op::RouletteWheel $popSize; #One of the possible selectors my $onemax = sub { my $indi = shift; my $total = 0; my $len = $indi->length(); my $i = 0; while ($i < $len ) { $total += substr($indi->{'_str'}, $i, 1); $i++; } return $total; }; my $generation = new Algorithm::Evolutionary::Op::GeneralGeneration( $onemax, $selector, [$m, $c], $replacementRate ); my $g100 = new Algorithm::Evolutionary::Op::GenerationalTerm 10; my $f = new Algorithm::Evolutionary::Op::FullAlgorithm $generation, $g100; print $f->asXML(); $f->apply( $pop ); # Pop should be defined else where

Algorithm::Evolutionary::Op::Base

Class for a configurable evolutionary algoritm. It takes a single-generarion object, and mixes it with a termination condition to create a full algorithm. Includes a sensible default (100-generation generational algorithm) if it is issued only an object of class Algorithm::Evolutionary::Op::GeneralGeneration.

Takes an already created algorithm and a terminator, and creates an object

Sets the instance variables. Takes hashes to the different options of the algorithm: parameters, fitness functions and operators

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.

More or less in the same ballpark, alternatives to this one

Classes you can use within FullAlgorithm:

- Algorithm::Evolutionary::Op::Convergence_Terminator
- Algorithm::Evolutionary::Op::GenerationalTerm
- Algorithm::Evolutionary::Op::Generation_Skeleton

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: 2009/07/24 08:46:59 $ $Header: /media/Backup/Repos/opeal/opeal/Algorithm-Evolutionary/lib/Algorithm/Evolutionary/Op/FullAlgorithm.pm,v 3.0 2009/07/24 08:46:59 jmerelo Exp $ $Author: jmerelo $

syntax highlighting: