PDL::Opt::Simplex

Simplex optimization routines
Download

PDL::Opt::Simplex Ranking & Summary

Advertisement

  • Rating:
  • License:
  • Perl Artistic License
  • Price:
  • FREE
  • Publisher Name:
  • Chris Marshall
  • Publisher web site:

PDL::Opt::Simplex Tags


PDL::Opt::Simplex Description

Simplex optimization routines PDL::Opt::Simplex is a Perl module with Simplex optimization routines.SYNOPSIS use PDL::Opt::Simplex; ($optimum,$ssize) = simplex($init,$initsize,$minsize, $maxiter, sub {evaluate_func_at($_)}, sub {display_simplex($_)} );This package implements the commonly used simplex optimization algorithm. The basic idea of the algorithm is to move a "simplex" of N+1 points in the N-dimensional search space according to certain rules. The main benefit of the algorithm is that you do not need to calculate the derivatives of your function.$init is a 1D vector holding the initial values of the N fitted parameters, $optimum is a vector holding the final solution.$initsize is the size of $init (more...)$minsize is some sort of convergence criterion (more...) - e.g. $minsize = 1e-6The sub is assumed to understand more than 1 dimensions and threading. Its signature is 'inp(nparams); out()'. An example would be sub evaluate_func_at { my($xv) = @_; my $x1 = $xv->slice("(0)"); my $x2 = $xv->slice("(1)"); return $x1**4 + ($x2-5)**4 + $x1*$x2; }Here $xv is a vector holding the current values of the parameters being fitted which are then sliced out explicitly as $x1 and $x2.$ssize gives a very very approximate estimate of how close we might be - it might be miles wrong. It is the euclidean distance between the best and the worst vertices. If it is not very small, the algorithm has not converged. Requirements: · Perl


PDL::Opt::Simplex Related Software