For a study, I have a system (black-box) that requires an input in the form of an array with 4 values (
input_array) and depending on their values it produces an output (response) signal.
input_array contains 4 real values (parameters P1-4), with given and separate ranges. The output signal's quality is measured by calculating its signal-to-noise ratio (SNR). Each
input_array variant can be applied to the system once every 3 seconds (not faster than 3 s).
I have to find the optimal
input_array that produces the greatest SNR (preferably, in the least amount of time). That is, the combination of the 4 real values that maximizes the SNR (an optimal solution is sufficient; an absolute solution is welcomed, but not necessarily required). If helpful in finding a solution, the 4 parameters can be discretized, but their ranges would include hundreds of possible (discrete) values.
The values can be considered independent, no prior knowledge is available for them except their ranges, and their individual influence on the SNR is unknown. The SNR is a real value that is influenced by noise (thus, for the same
input_array applied consecutively, it can have different (but close) values).
What solution(s) can be applied to this problem?
The simplest solution that comes to mind is to perform an exhaustive search of the parameters domain, but it is no applicable because the time required will be too long.
Initially, I was considering of applying reinforcement learning algorithms for continuous action spaces, by considering each parameter a separate action and returning a positive/negative reward when the SNR increases/decreases (e.g., +/-1). However, I think they would require too much time; nonetheless, I can stop the learning process at any time I consider that the
input_arrayproduces an acceptable SNR.
After further thinking, this problem seemed like a search problem, so I thought that (heuristic) searching algorithms may be appropriate.
Does anybody have an idea what would be the most appropriate solution to this problem?