Algorithm-Evolutionary
view release on metacpan or search on metacpan
lib/Algorithm/Evolutionary/Fitness/Base.pm view on Meta::CPAN
use strict; #-*-cperl-*-
use warnings;
use lib qw( ../../../../lib );
=head1 NAME
Algorithm::Evolutionary::Fitness::Base - Base class for fitness functions
=head1 SYNOPSIS
Shouldn't be used directly, it's an abstract class whose siblings are
used to implement fitness functions.
=head1 DESCRIPTION
This module includes functionality that should be common to all fitness. Or at least it
would be nice to have it in common. It counts the number of evaluations and includes a common API for caching evaluations.
=head1 METHODS
=cut
package Algorithm::Evolutionary::Fitness::Base;
use Carp;
our $VERSION = '3.1';
=head2 new()
Initializes common variables, like the number of evaluations. Cache is not initialized.
=cut
sub new {
my $class = shift;
my $self = {};
bless $self, $class;
$self->initialize();
return $self;
}
=head2 initialize()
Called from new, initializes the evaluations counter.
=cut
sub initialize {
my $self = shift;
$self->{'_counter'} = 0;
$self->{'_cache'} = {}; # This is optional; should be used from derived classes
}
=head2 apply( $individual )
Applies the instantiated problem to a chromosome. Actually it is a
wrapper around C<_apply>
=cut
( run in 0.473 second using v1.01-cache-2.11-cpan-5735350b133 )