For what it's worth:
John Nash (original author of the Pascal implementations of (most of)
the available algorithms in optim() (including the Nelder-Mead)) has
long maintained that these implementations could be updated. (Any update
that changed solutions, rather than adding new functionality, would need
to be handled carefully for back-compatibility reasons ...)
Solving the problem of box constraints by transformation to an
unconstrained space is problematic when the constraints are binding
(i.e. the minimum is on the boundary of the allowed space) -- the
transformation essentially moves the solution to a point at infinity,
leading to infinite flatness ...
FWIW the Nelder-Mead implementation (?lme4::Nelder_Mead), and the
one in NLopt (accessible via the nloptr package:
https://nlopt.readthedocs.io/en/latest/NLopt_Algorithms/#local-derivative-free-optimization
) both allow box constraints. (The author of NLopt suggests that the
'subplex' algorithm is generally preferable ...) According to the CRAN
optimization task view
<https://cran.r-project.org/web/views/Optimization.html#general-purpose-continuous-solvers>,
the dfoptim package also has a box-constrained variant of Nelder-Mead ...
cheers
Ben Bolker
On 9/17/25 17:36, ivo welch wrote:
Title says it all.
I know this can be done by transformations by the user, but given that
interval is so prominent in the ?doc and given that Nelder-Mead is the
default method for optim(), it would be nice if the default method would
honor this one, too.
[could be done (even by me) within the R code because the C code through
the arctan transforms]
[[alternative HTML version deleted]]
______________________________________________
R-devel@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-devel
______________________________________________
R-devel@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-devel