I am interested in globally maximizing a function of many ($\approx 30$) real parameters (a result of a complex simulation). However, the function in question is relatively expensive to evaluate, requiring about 2 days for each parameter set. I am comparing different options, and was wondering if anyone had suggestions.
I know there is a suite of methods for this sort of process that involve developing approximate functions and then maximizing those (e.g. Jones et al. "Efficient Global Optimization of Expensive Black-Box Functions"). However, this seems to be relatively involved to code.
I do have the ability to run a large number of simulations in parallel (50+). This seemed to suggest using something like genetic algorithms to do this optimization - since I can create a population of candidate solutions just as quickly as I can make one.
Here are my questions: 1) Does anyone have experiences with freely available implementations of this sort of global solvers / recommendations? 2) Are there reasons to either prefer or avoid genetic algorithms here?
This is a physical problem, and my early experiments have shown the figure of merit changes fairly smoothly as I change the parameters.
UPDATE:
Thank you for the help! A few more details: I do not need any information beyond the location of the maximum. The simulation is deterministic, not Monte Carlo, so that complication isn't a big deal. There are no explicit bounds or constraints on the parameters. One other piece of information I have (and didn't mention before) is a sense of the size of the maximum required. While I am looking for a global maximum, I would also be happy with anything of this scale or larger - I don't know if this would provide any help. Hopefully if I do the screening more systematically (Latin hypercubes as suggested by Brian Borchers), this will show up.