facebookresearch / nevergrad

A Python toolbox for performing gradient-free optimization
https://facebookresearch.github.io/nevergrad/
MIT License
3.89k stars 349 forks source link

Powell's DFO methods: the Fortran 77 implementation of COBYLA / NEWUOA is unmaintained and buggy; Switch to PRIMA? #1567

Open zaikunzhang opened 8 months ago

zaikunzhang commented 8 months ago

Dear Nevergrad 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 (DFO) solvers of the late Professor M.J.D. Powell. I am the author of PRIMA, which provides the modernized reference implementation for these solvers.

Thank you for making COBYLA and NEWUOA available in Nevergrad. I note that the current version is based on the original Fortran 77 implementation, which is not maintained anymore.

Although the Fortran 77 code 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 below.

Expected Results

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 current version of PRIMA implements these 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.

I also note that there was an interest to include BOBYQA into Nevergrad, but it was not possible due to the license. PRIMA is licensed under the 3-Clause BSD, which I suppose is compatible with MIT.

See the GitHub repo of PRIMA for more information. I will be glad to assist if help is needed.

Thanks.

Best regards, Zaikun Zhang, Ph.D. and Assistant Professor Department of Applied Mathematics The Hong Kong Polytechnic University

bottler commented 8 months ago

Thanks for letting us know about this. I think for nevergrad we should wait and see how the scipy issue gets resolved.