Optimize Monte Carlo Simulation

I have a monte carlo simulation that runs in an external program that I can call using julia. I would like to optiize the simulation result with respect to parameters in the simulation input.
The values I get out of it, of course have a certain error, so there might not be a disctinct maximum at the current resolution and running the code twice will not give you the same result. However the error is within the 1% range.
Depending on the resulution the simulation can take several seconds to run.

What would be a good way to tackle this challenge? Are there any julia packages that can help me?

Key questions:

  • How many parameters are there to optimize?
  • Is there a way to get gradients of your simulation code?

At first glance this sounds like a typical use case for Bayesian Optimization but I’m no expert in this part of the ecosystem

1 Like

Thanks for the tip :smiley:. We will focus on 4 parameters, two of which should allready be pretty optimal. No unfortunately it is impossible to get the gradient, as the code is written in C++.

Thanks a lot, basian optimization seems to be what I am looking for!

Honestly for such a low-dimensional input you may even want to look at black box, derivative-free optimization

Concur. I suggest the OP have a look at NOMAD, which is designed for expensive black box optimization.

1 Like