MATLAB Answers


Optimization: Which algorithms I should choose when it's difficult to define an objective function?

Asked by Yu-Yun
on 18 Jul 2012
Dear All,
I have no much experience about optimization. Recently I have a project about optimizing parameters in a system simulation. Apparently the design variables of the optimization are those parameters, and the value I'd like to minimize can be obtained from simulation results. However, I don't really know how to define the objective function for this complicated system. So I would like to know if it's possible that I optimize the parameters without defining an objective function. Which algorithms I should use? Genetic algorithm? or any other recommendations? Thanks!


Sign in to comment.

2 Answers

Answer by Sean de Wolski
on 18 Jul 2012
 Accepted Answer

If the function will be discontinuous and have local minima you want to avoid then a genetic algorithm or pattern search is probably a good bet.
doc ga
doc patternsearch
Of course we can be of more assistance if you provide us with more information...

  1 Comment

Thank you so much! I'll try GA first. :)

Sign in to comment.

Answer by Sargondjani on 18 Jul 2012
Edited by Sargondjani on 18 Jul 2012

...and if your problem is continuous, then the other optimizers are more usefull (fminsearch, fminunc, fsolve, fmincon,...).
that you get the value of the objective function from a simulation does not matter (as long as it is continuous).
the problem that i can think of (when the objective comes from simulations) is that you can only determine the gradient with finite differences, but some of these optimizers dont even use gradients (ie. fminsearch, which is only suited for a couple of variables at most)


I see. I will also read some materials about fminsearch to see which one could be the best for my project. Thank you guys! :)

Sign in to comment.