
On Thu, Apr 30, 2020 at 4:43 AM Andrew Nelson <andyfaff@gmail.com> wrote:
But, I think there is another concern that may not have been expressed
yet. `x0` is a required, positional argument for `minimize()`, as an array of initial parameter values. Most of the global optimizers in scipy.optimize do not use `x0`. Instead, they require bounds and explore the range of values between those bounds. Would `x0` be required AND ignored for these global optimizers?
The call signature for required positional arguments for `minimize` is different to the global optimizers. Being able to call the global minimizers via `minimize` would alleviate that. As you say the global minimizers do explore within bounds, and don't use an `x0`. The PR (as it currently exists) would still require `x0`, and it would be ignored. It would be possible to change that behaviour for `differential_evolution`, but would require the modification of the code to accept an `x0` keyword.
Hmm, the signature issue seems quite problematic. The opposite is also true: `bounds` is optional for minimize(), and cannot be made non-optional, however for the global optimizers it is required. Ralf