I'll not copy all the previous material on this thread to avoid overload.

The summary is that all the methods Spencer has tried have some issues.

The bad news: This is not uncommon with optimization methods, in part because 
the problems are "hard",
in part because getting them implemented and linked to an interfacing approach 
like R is very tedious
and prone to omissions and errors.

The good news: I've been working on a revision to optimx, having noted the 
implementation issues just
mentioned. There is now a package optimr on CRAN, but that's just to reserve 
the name. The real package
is optimrx on R-forge (dependencies can fail, then the poor maintainer gets 
"your package doesn't work",
with no hope of fixing it). Moreover, Harry Joe recently pointed out to me a 
bug and in the last few
weeks I think I've resolved issues where Rvmmin and other packages got NA 
results when numerical gradient
approximations were used in certain ways.

optimrx came about because I realized that optimx() has just enough difference 
in syntax from optim()
to be a nuisance and was heavy to maintain. Also I wanted parameter scaling to 
work for all methods,
as in optim(). However, Ravi's efforts easily convinced me that trying multiple 
methods was a
good idea, so there is an opm() function. We also had an option for 
polyalgorithms and at one point
for multiple starts. I've put them in polyopt() and multistart() -- the 
combination in optimx was
driving me nuts when doing any work on the code. Ravi, I hope this doesn't 
offend. The optimx
ideas are still there, but the restructuring will, I hope, lead to easier 
maintenance and development.
As the package is very new, I fully expect there are some deficiencies, and ask 
that users send
executable examples so I can address same.

optimrx doesn't (yet) have nloptr. It's on the todo list, but I've not been 
able despite many tries to
get any response from its maintainer (Jelmer Ypma), who seems to have largely 
dropped out of R work, though
there was a fairly recent minor adjustment on Github. However, no communication 
is a
worry, as nloptr and also ipoptr are important tools that could use support. 
I've offered, but I don't
have C++ expertise. If anyone is willing to work with me, this can be moved 
forward soon.

Spencer: Can you prepare your problem in a way that the optimization bit is 
replaceable and send to
me? I'll see if I can figure out what is the actual source of the error as well 
as figure out what
methods "work" and how well.

Note that the Rtnmin package (a translation I made of my brother's Matlab code) 
also will handle
bounds, but optimrx probably makes the call easier. If you send the example, 
I'll make sure it gets
tried also.

Best, JN

______________________________________________
R-devel@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-devel

Reply via email to