optimizationopenmdaomultimodal

Multi-start in OpenMDAO


Is there any straightforward way to use a multi-start option for solving optimization problems in OpenMDAO? I am currently using the SLSQP driver of ScipyOptimize, and would like to start the search from multiple initial points (either in a sequence of in parallel, although that is not necessary), and choose the best of the results, to increase confidence that the minimum found is a good minimum (or likely global). Is there any clever way to achieve this in OpenMDAO rather than implementing a loop "by hand"?


Solution

  • The "by hand" method (i.e. putting a for-loop around a call to run_driver()) is the way to do it. No fancy tricks needed.

    One feature you might find helpful is the manual case recording at the problem level. At the end of each point, you can manually record a case with ALL the variables in it. You get to name that case yourself, so you can give it a descriptive name if keeping track of which point is which would be useful to you.