I'm trying to understand what my options are for optimizing a black-box simulation (output from a commercial, closed source finite element solver).

An example problem is the following. We have a building composed of a large number of beams. The size of each beam comes from a discrete set of choices (depending on what is available from the manufacturer). We would like to minimize the weight under some constraints, for example the internal force in each beam needs to be lower than its maximum force capacity.

At the moment we simply start with the lowest-weight solution, and iteratively increase the sizes until the constraints are satisfied, but this can result in cycles (increasing the size of one beam and increase the load in an another). We are looking for something that is a bit more robust.

I think what I'm looking for is surrogate optimization. But ideally I would like to work with hundreds if not thousands of variables and I think methods like Bayesian optimization are limited to low dimensional problems. I'm happy with just finding 'good-enough' solutions instead of a global optimal.

  • $\begingroup$ If, still, you are interested to use the simulation method, would you try applying Mont-Carlo simulation? It is very good for complicated problems that will need to change the parameters and check the results in the many iterations. $\endgroup$ – A.Omidi Jan 8 at 19:46

Surrogate modeling is one of many options. Indeed, it usually does not scale to thousands of variables, unless you can incorporate some domain knowledge in a custom surrogate model. However, you have other options:

  • Surrogate modeling with fewer variables. For example, create a few size groups instead of independent beam sizes
  • A local search or evolutionary method without surrogate modeling. It can perform quite well, in particular if your finite-element model is fast enough (say less than a second)
  • Using gradient information if the finite-element solver can provide it. With it, a simple nonlinear optimization can yield good solutions with fewer calls to the solver

I used to work on the blackbox optimization algorithm in LocalSolver. It's powerful and user friendly, so I suggest trying it and the local search solver. For other options and ideas, you can have a look at the blackbox optimization competition. You can find many packages for surrogate modeling and evolutionary algorithms if you look around, particularly in the machine learning community.

  • $\begingroup$ I am aware of NOMAD, a black box solver developed by Canadians in Montreal. These guys really know what they are doing. Have you heard of them? $\endgroup$ – Kuifje Jan 8 at 12:35
  • $\begingroup$ Yes, they were well ranked in the last BBComp, but I've never used their solver $\endgroup$ – Gabriel Gouvine Jan 8 at 12:44

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.