PDL::Opt::SimplexSimplex optimization routines | |
Download |
PDL::Opt::Simplex Ranking & Summary
Advertisement
- 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