AI-ParticleSwarmOptimization
view release on metacpan or search on metacpan
lib/AI/ParticleSwarmOptimization.pm view on Meta::CPAN
randStartVelocity
stallSpeed
themWeight
verbose
/;
die "-dimensions must be greater than 0\n"
if exists $params{-dimensions} && $params{-dimensions} <= 0;
if (defined $self->{verbose} and 'ARRAY' eq ref $self->{verbose}) {
my @log = map {lc} @{$self->{verbose}};
my %logTypes = (
better => kLogBetter,
stall => kLogStall,
iter => kLogIter,
detail => kLogDetail,
);
$self->{verbose} = 0;
exists $logTypes{$_} and $self->{verbose} |= $logTypes{$_} for @log;
}
$self->{numParticles} ||= $self->{dimensions} * 10
if defined $self->{dimensions};
$self->{numNeighbors} ||= int sqrt $self->{numParticles}
if defined $self->{numParticles};
$self->{iterations} ||= 1000;
$self->{exitPlateauDP} ||= 10;
$self->{exitPlateauWindow} ||= $self->{iterations} * 0.1;
$self->{exitPlateauBurnin} ||= $self->{iterations} * 0.5;
lib/AI/ParticleSwarmOptimization.pm view on Meta::CPAN
Determines how many iterations to run before checking for plateaus.
Defaults to 50% of the number of iterations (I<-iterations>).
=item I<-verbose>: flags, optional
If set to a non-zero value I<-verbose> determines the level of diagnostic print
reporting that is generated during optimization.
The following constants may be bitwise ored together to set logging options:
=over 4
=item * kLogBetter
prints particle details when its fit becomes bebtter than its previous best.
=item * kLogStall
prints particle details when its velocity reaches 0 or falls below the stall
threshold.
=item * kLogIter
Shows the current iteration number.
=item * kLogDetail
Shows additional details for some of the other logging options.
=item * kLogIterDetail
Shorthand for C<kLogIter | kLogIterDetail>
=back
=back
=item B<setParams (%parameters)>
( run in 1.146 second using v1.01-cache-2.11-cpan-49f99fa48dc )