<div dir="ltr">I agree that a single unified function for all the routines would be neater since all the algorithms have black-box functions as input anyway. I believe that any extra optional arguments to the global optimisation functions not already defined by `minimize` can be handled with the `options` dictionary object passed to the `minimize` function<div><br><div>One additional thought is the possibility of adding a unified `Minimizer` class to scipy.optimize. There are two reasons for this: </div><div>(i) Manual control of iterations and/or memoization of progress. For example, sometimes the stopping criteria for a global optimisation problem is unknown and the optimisation practitioner would like to continue iterations according to some external criteria not definable in the algorithm itself (this is something that is often requested by `shgo` users to me through e-mail correspondence). Another example is with objective functions that have very long evaluations and the practitioner would like save the progress possibly including all evaluations/current best solution(s) and then continue the routine. </div><div>(ii) More importantly to skip a few initiation steps in algorithm selection and initiation. This is useful when the function is called thousands to millions of times and only a few arguments/parameters need to be changed while the algorithm selection etc. remain unchanged. I'm not sure if this will have a significant effect for the local routines in `minimize` though.</div><div><div><br></div></div></div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Sun, Sep 8, 2019 at 5:57 AM Andrew Nelson <<a href="mailto:andyfaff@gmail.com">andyfaff@gmail.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr">I'd like to gauge the support for adding the global minimizers (dual_annealing, shgo, differential_evolution, basinhopping) as new `minimize` methods.<div><br></div><div>The problems the the 'local' and 'global' optimizers are trying to solve are very similar and both are specified in the same way, so my thought is that it would be nice to access them via the same unified interface that `minimize` offers (but not deprecating the `shgo` function, etc).<br clear="all"><div><br></div><div>It's important that the users are able to understand the distinction between local and global optimisation and how they go about finding a minimum. I'm hoping that this could be made plain in the documentation.</div><div><br></div><div>The change would allow the following:</div><div><br></div><div>```</div><div># global minimizer</div><div><div>minimize(func, x0, bounds=bounds, method='differential-evolution', constraints=constraints)</div></div><div><div># local minimizers</div><div>minimize(func, x0,  bounds=bounds, method='SLSQP', constraints=constraints)</div></div><div><div><div>minimize(func, x0, bounds=bounds, method='trust-constr', constraints=constraints)</div></div></div><div>minimize(func, x0, bounds=bounds, method='L-BFGS-B')</div><div>```</div><div><br></div><div>Please chip in with what your thoughts are, is it a bad idea, good idea, etc.</div><div><br></div>-- <br><div dir="ltr" class="gmail-m_-7349460120045648688gmail_signature">_____________________________________<br>Dr. Andrew Nelson<br><br><br>_____________________________________</div></div></div>
_______________________________________________<br>
SciPy-Dev mailing list<br>
<a href="mailto:SciPy-Dev@python.org" target="_blank">SciPy-Dev@python.org</a><br>
<a href="https://mail.python.org/mailman/listinfo/scipy-dev" rel="noreferrer" target="_blank">https://mail.python.org/mailman/listinfo/scipy-dev</a><br>
</blockquote></div><br clear="all"><div><br></div>-- <br><div dir="ltr" class="gmail_signature"><div dir="ltr"><div><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr">Stefan Endres (M<span style="font-size:12.8px">Eng,</span><span style="font-size:12.8px"> </span><span style="color:rgb(51,51,51);font-family:arial,verdana,sans-serif;font-size:12px">AMIChemE</span><span style="font-size:12.8px">,</span><span style="font-size:12.8px"> BEng </span><span style="font-size:12.8px">(Hons) Chemical Engineering)</span></div><div dir="ltr">Postgraduate Student: Institute of Applied Materials<br>Department of Chemical Engineering, University of Pretoria<span><br>Cell: +27 (0) 82 972 42 89<br>E-mail: <a href="mailto:Stefan.C.Endres@gmail.com" target="_blank">Stefan.C.Endres@gmail.com</a><br>St. Number: 11004968<br></span><span><span style="color:rgb(0,0,0)"></span></span></div></div></div></div></div></div></div></div>