use strict; #-*-cperl-*- use warnings; =head1 NAME Algorithm::Evolutionary::Op::Selector - Abstract base class for population selectors =head1 SYNOPSIS package My::Selector; use base ' Algorithm::Evolutionary::Op::Selector'; =head1 Base Class L =head1 DESCRIPTION Abstract base class for population selectors; defines a few instance variables and interface elements =head1 METHODS =cut package Algorithm::Evolutionary::Op::Selector; use Carp; our ($VERSION) = ( '$Revision: 3.0 $ ' =~ / (\d+\.\d+)/ ) ; use base 'Algorithm::Evolutionary::Op::Base'; =head2 new( $output_population_size ) Creates a new selector which outputs a fixed amount of individuals. This goes to the base class, since all selectors must know in advance how many they need to generate =cut sub new { my $class = shift; carp "Should be called from subclasses" if ( $class eq __PACKAGE__ ); my $self = {}; $self->{_outputSize} = shift || croak "I need an output population size"; bless $self, $class; return $self; } =head2 apply Applies the tournament selection to a population, returning another of the set size. This is an abstract method that should be implemented by descendants. =cut sub apply (@) { croak "To be redefined by siblings"; } =head1 Known descendants =over 4 =item * L =item * L =back =head1 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: 2009/07/24 08:46:59 $ $Header: /cvsroot/opeal/Algorithm-Evolutionary/lib/Algorithm/Evolutionary/Op/Selector.pm,v 3.0 2009/07/24 08:46:59 jmerelo Exp $ $Author: jmerelo $ =cut "C'mon Eileen";