Algorithm::Evolutionary::Op::DeltaTerm - Termination condition for an algorithm; checks that the difference of the best to a target is less than a delta
my $target = 1; my $epsilon = 0.01; my $dt = new Algorithm::Evolutionary::Op::DeltaTerm $target, $epsilon; #$dt->apply( \@pop ) when the best fitness is 1 plus/minus 0.1
Algorithm::Evolutionary::Op::Base
Termination condition for evolutionary algorithm loops; the apply
method returns false when the first element in the array is as close
to the target as the differente indicated.
Creates a new terminator. Takes as parameters the target and the epsilon (or delta, whatever you want to call it):
my $target = 1; my $epsilon = 0.01; my $dt = new Algorithm::Evolutionary::Op::DeltaTerm $target, $epsilon;
Delta can be 0, which means that application of this operator will return true only when the first element fitness is the same as the target. Use this judiciously when your fitness is floating point.
Will return true while the difference between the fitness of the first element
in the population and the target is less than $delta
, true otherwise
$dt->apply( \@pop ) == 1
if the target has not been reached
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: 2002/06/18 12:21:13 $ $Header: /cvsroot/opeal/opeal/Algorithm/Evolutionary/Op/DeltaTerm.pm,v 1.1 2002/06/18 12:21:13 jmerelo Exp $ $Author: jmerelo $