Which optimization technique to use with noisy and slow black-box system? I have a complex physical system that depends on many continuous input parameters (let's say 10 important ones) and produces an output that I can boil down to one continuous figure of merit. I want to optimize this system and find the set of parameters that produces the best output.

The challenges are the following:


The system is sufficiently complicated that I cannot predict the behavior well enough to build a useful model. I have to treat it as a black box and do all tests with the actual system.
The input parameters are generally correlated. So, optimizing the parameters individually is not enough.
The system is slow to react. When changing the parameters it takes some time until an equilibrium state is reached again, depending also on the magnitude of the change.
The system is noisy. Even when not touching the system the output figure of merit will fluctuate strongly. I want to optimize the long-term average of the figure of merit, but in order to get a good estimate of that I have to measure for some time (many minutes if I wanted to bring the noise down to a negligible level).


On the other hand, the system is relatively well behaved when it comes to the shape of the function to optimize:


I know that I'm already close to the global optimum and there are probably no local optima to get stuck in.
I expect no sudden changes of the figure of merit. The gradients vary by not more than maybe two orders of magnitude over the permissible parameter space.


Question: What is a good technique to apply to this problem? Naïve approaches like a simple grid search are prohibitively time-intensive.

It seems like there will be a trade-off between long averaging and dealing with noisy data. So I would either need an algorithm that makes as few queries as possible, or one that's very robust to noise.
Are you a petroleum engineer by any chance? This sounds very like the sort of optimization you have to perform in oilfield waterflood operations; you have to allocate your limited budget of injection water and/or lift gas to maximize oil production, with the additional complication that the optimal set point changes as the reservoir depletes and/or wells get drilled or abandoned.

The oilfield case has the useful feature that the overall objective function (field oil flowrate) is a simple sum of well flow rates. Each production well is generally only sensitive (in the short term!) to a small local subset of the inputs (gas lift rate in the production well, and water injection rate in near-offset water injection wells).

I would generalise the solution employed in the oilfield as follows: 


Regularly perturb the inputs
Measure the affected local outputs
Maintain a simple linear or low-order polynomial model of the system and its parts
Use the model to optimize day to day
Keep good records to ensure that the model is up to date with reality
Monitor local and global model fidelity to decide what to perturb and recalibrate next


This works because the small perturbations that you keep on making (for model calibration purposes) are of short duration and local effect, so they don't take the overall system very far away from the optimum. The trade-off between keeping the system optimized, and "de-optimizing" it to calibrate the model, works out favorably. The system reacts on a timescale of days to months, and the measurements generally take a day or two to accomplish.

Try Googling waterflood optimization and gaslift optimization for some more detailed pointers, although a lot of the trade literature is paywalled.

Looking forward to learning what approaches have been taken in other fields with this kind of problem.