You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
This is Dr. Zaikun Zhang from the Hong Kong Polytechnic University. Together with Professor N.I.M. Gould, I am responsible for maintaining the derivative-free optimization solvers of late Professor M.J.D. Powell.
Thank you for making COBYLA, BOBYQA, and NEWUOA available in nloptr. I note that the current version is based on the original Fortran 77 implementation, the latter being not maintained anymore.
Although Powell's Fortran 77 implementation is truly a masterpiece, it contains many bugs, most of which are due to the language itself. For example, see Section 4.4 of our recent paper and the GitHub issues / requests listed at the end of this message (not all of them concern nloptr).
To avoid the problems originating from the Fortran 77 code, I suggest you use the PRIMA implementation of Powell's solvers. PRIMA provides the reference implementation for Powell's renowned derivative-free optimization methods, namely COBYLA, UOBYQA, NEWUOA, BOBYQA, and LINCOA. The "P" in the name stands for Powell, and "RIMA" is an acronym for "Reference Implementation with Modernization and Amelioration".
PRIMA provides the modern implementation of the solvers in Fortran 2008. It fixes bugs in the original Fortran 77 code. In addition, it introduces improvements that boost the performance in terms of the number of function evaluations, which is the standard measure of computational costs in derivative-free optimization.
See the GitHub repo of PRIMA for more information. I will be glad to provide assistance if help is needed.
Thanks.
Issues and requests raised due to bugs in the Fortran 77 implementation (and translation) of Powell's solvers
The Fortran 77 solvers may get stuck in infinite loops.
Fortran 77 COBYLA may not return the best point that is evaluated; sometimes, the returned point can have a
large constraint violation even though the starting point is feasible.
Hello @zaikunzhang. The nloptr package is merely an interface between the NLOPT algorithm suite and the R statistical language. The maintainer of the NLOPT algorithms themselves is @stevengj. I see you already opened an issue at NLOPT itself, so I would recommend to @astamm that this be closed as out-of-scope. Should the source code for NLOPT itself change, we will need to ensure that it flows properly through nloptr. Thank you.
Dear nloptr maintainers,
This is Dr. Zaikun Zhang from the Hong Kong Polytechnic University. Together with Professor N.I.M. Gould, I am responsible for maintaining the derivative-free optimization solvers of late Professor M.J.D. Powell.
Thank you for making COBYLA, BOBYQA, and NEWUOA available in nloptr. I note that the current version is based on the original Fortran 77 implementation, the latter being not maintained anymore.
Although Powell's Fortran 77 implementation is truly a masterpiece, it contains many bugs, most of which are due to the language itself. For example, see Section 4.4 of our recent paper and the GitHub issues / requests listed at the end of this message (not all of them concern nloptr).
To avoid the problems originating from the Fortran 77 code, I suggest you use the PRIMA implementation of Powell's solvers. PRIMA provides the reference implementation for Powell's renowned derivative-free optimization methods, namely COBYLA, UOBYQA, NEWUOA, BOBYQA, and LINCOA. The "P" in the name stands for Powell, and "RIMA" is an acronym for "Reference Implementation with Modernization and Amelioration".
PRIMA provides the modern implementation of the solvers in Fortran 2008. It fixes bugs in the original Fortran 77 code. In addition, it introduces improvements that boost the performance in terms of the number of function evaluations, which is the standard measure of computational costs in derivative-free optimization.
See the GitHub repo of PRIMA for more information. I will be glad to provide assistance if help is needed.
Thanks.
Issues and requests raised due to bugs in the Fortran 77 implementation (and translation) of Powell's solvers
The Fortran 77 solvers may get stuck in infinite loops.
optimize: COBYLA hangs / infinite loop #8998
BUG: Scipy.optimize / COBYLA hangs on some CPUs #15527
COBYLA freezes (though maxeval and maxtime are given) #370
COBYLA hangs #118
NEWUOA_BOUND stuck in infinite loop inside MMA #117
Cobyla freezes in 0T1.16rc1 #1651
Optimization freezes #25
BOBYQA gets stuck in infinite loop. #7
Algorithm turns into infinite loop and never finishes #3
The Fortran 77 solvers may crash with segmentation faults
due to uninitialized variables that are used as indices.
Fix all uninitialized variable warnings #134
BOBYQA uninitialised variables in rare cases #133
Use of uninitialized variable in BOBYQA altmov #36
Fortran 77 COBYLA may not return the best point that is evaluated; sometimes, the returned point can have a
large constraint violation even though the starting point is feasible.
nlopt COBYLA optimizer gives unexpected output #182
Last Result Returned Not Optimized Result #110
COBYLA returns last evaluated function which might not be minimum #57
Successful termination when constraints violated #1
The text was updated successfully, but these errors were encountered: