Hello,
I'm trying to decide on what type of solver I should use for my problem and I'm at a bit of an impasse.
To give an overview of my problem, I'm attempting to optimze for the best choice of parameters (between 3-4) of an ODE having a nonsmooth cost function (calculated by first solving the ODE). Moreover, the objective function has many local minima (some close to each other) and my goal is to try and find the parameters which minimze the objective function best. The only constraints on the problem are lower and upper bounds on the parameters.
Now, the 3 solvers I'm considering are fminsearchbnd, patternsearch, and surrogateopt. For fminsearchbnd, I know it can find local minimums, but can also get stuck, depending on where the initial guess is. From my understanding, a similar situation can arise from using patternsearch, and so if I where to sample the parameter space by randomly choosing 20 starting points, this may lead to the "best" solution using either fminsearchbnd or patternsearch. As for surrogateopt, it seems like this may be the best choice since it is made to handle costly nonsmooth objective functions and find a global minimum, if given enough time. I also think that based on the setup of my problem surrogate optimzation will probably take the least amount of time, but I'm unsure of if this is the case.
My question is, will fminsearchbnd (with 20 random initial points) give similar results (that is similarly sized cost function) as compared to using patternsearch or surrogate optimization? Or will I have to choose many more initial guesses (which can get computationally costly) to acheive similar results?
Thanks for any help!
Best Answer