How to handle simulation error within optimization (gamultiobj)

4 visualizaciones (últimos 30 días)
Amitava Guha
Amitava Guha el 1 de Jun. de 2015
Comentada: Amitava Guha el 3 de Jun. de 2015
I am working on an optimization project where the objective function is calculated based on motion simulation performed using third party applications. This involves complications such as automated CAD modeling and conversion of input files in multiple stages. In other words, a lot of things can go wrong while obtaining the objective function value.
I am primarily using genetic algorithm (ga and gamultiobj). Is there a way to set the objective function value to be something so that the optimizer understand that something went wrong and continue?

Respuestas (1)

Alan Weiss
Alan Weiss el 2 de Jun. de 2015
Is there a reason that you are using ga instead of patternsearch? The patternsearch solver is quite robust to evaluation failures. Unless you need multiobjective optimization, I strongly recommend patternsearch over ga, because it is faster, more robust, and easier to tune.
The only place where ga is better than patternsearch is that it chooses its own starting population. But you can easily set random initial points for patternsearch within bounds by using
x0 = lb + rand(size(lb)).*(ub - lb);
Good luck,
Alan Weiss
MATLAB mathematical toolbox documentation
  1 comentario
Amitava Guha
Amitava Guha el 3 de Jun. de 2015
Thank you Alan. I chose the genetic algorithm since I do need to use gamultiobj. For single objective I will try patternsearch. But for the time being I followed the same method used in patternsearch algorithm to set the objective function value to a very large number (in my case 1E9) if my simulation fails. It seems to be working.

Iniciar sesión para comentar.

Categorías

Más información sobre Surrogate Optimization en Help Center y File Exchange.

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by