View on
MetaCPAN
search.cpan.org is shutting down
For details read Perl NOC. After June 25th this page will redirect to MetaCPAN.org
J. J. Merelo-Guervós > Algorithm-Evolutionary-0.79_1 > Algorithm::Evolutionary::Op::Generation_Skeleton

Download:
Algorithm-Evolutionary-0.79_1.tar.gz

Dependencies

Annotate this POD

CPAN RT

Open  0
View/Report Bugs
Module Version: 3.3   Source   Latest Release: Algorithm-Evolutionary-0.80

NAME ^

Algorithm::Evolutionary::Op::Generation_Skeleton - Even more customizable single generation for an evolutionary algorithm.

SYNOPSIS ^

    use Algorithm::Evolutionary qw( Individual::BitString 
                                Op::Mutation Op::Crossover
                                Op::RouletteWheel
                                Fitness::ONEMAX Op::Generation_Skeleton
                                Op::Replace_Worst);

    use Algorithm::Evolutionary::Utils qw(average);

    my $onemax = new Algorithm::Evolutionary::Fitness::ONEMAX;

    my @pop;
    my $number_of_bits = 20;
    my $population_size = 20;
    my $replacement_rate = 0.5;
    for ( 1..$population_size ) {
      my $indi = new Algorithm::Evolutionary::Individual::BitString $number_of_bits ; #Creates random individual
      $indi->evaluate( $onemax );
      push( @pop, $indi );
    }

    my $m =  new Algorithm::Evolutionary::Op::Mutation 0.5;
    my $c = new Algorithm::Evolutionary::Op::Crossover; #Classical 2-point crossover

    my $selector = new Algorithm::Evolutionary::Op::RouletteWheel $population_size; #One of the possible selectors

    my $generation = 
      new Algorithm::Evolutionary::Op::Generation_Skeleton( $onemax, $selector, [$m, $c], $replacement_rate );

    my @sortPop = sort { $b->Fitness() <=> $a->Fitness() } @pop;
    my $bestIndi = $sortPop[0];
    my $previous_average = average( \@sortPop );
    $generation->apply( \@sortPop );

Base Class ^

Algorithm::Evolutionary::Op::Base

DESCRIPTION ^

Skeleton class for a general single-generation (or single step) in an evolutionary algorithm; its instantiation requires a fitness function, a Selector, a reference to an array of operators and a replacement operator

METHODS ^

new( $evaluation_function, $selector, $ref_to_operator_array, $replacement_operator )

Creates an algorithm, with no defaults except for the default replacement operator (defaults to Algorithm::Evolutionary::Op::ReplaceWorst)

set( $ref_to_params_hash, $ref_to_code_hash, $ref_to_operators_hash )

Sets the instance variables. Takes a ref-to-hash as input. Not intended to be used from outside the class

apply( $population )

Applies the algorithm to the population, which should have been evaluated first; checks that it receives a ref-to-array as input, croaks if it does not. Returns a sorted, culled, evaluated population for next generation.

SEE ALSO ^

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

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: 2013/01/05 12:43:32 $ 
  $Header: /media/Backup/Repos/opeal/opeal/Algorithm-Evolutionary/lib/Algorithm/Evolutionary/Op/Generation_Skeleton.pm,v 3.3 2013/01/05 12:43:32 jmerelo Exp $ 
  $Author: jmerelo $ 
  $Revision: 3.3 $
syntax highlighting: