How to find the best combination of parameters from a very large sets?

103 Views Asked by At

I have a processing logic which has 11 parameters(let's say from parameter A to parameter K) and different combinations of theses parameters can results in different outcomes.

Processing Logic Example:

if x > A:
    x = B
else:
    x = C

y = math.sin(2x*x+1.1416)-D

# other logic involving parameter E,F,G,H,I,J,K

return outcome

Here are some examples of the possible values of the parameters(others are similar, discrete):

A ∈ [0.01, 0.02, 0.03, ..., 0.2]
E ∈ [1, 2, 3, 4, ..., 200]

I would like to find the combination of these parameters that results in the best outcome.

However, the problem I am facing is that there are in total 10^19 possible combinations while each combination takes 700ms processing time per CPU core. Obviously, the time to process the whole combinations is unacceptable even I have a large computing cluster.

Could anyone give some advice on what is the correct methodology to handle this problem?


Here is some of my thoughts:

Step 1. Minimize the step interval of each parameter that reduces the total processing time to an acceptable scope, for example:

A ∈ [0.01, 0.05, 0.09, ..., 0.2]
E ∈ [1, 5, 10, 15, ..., 200]

Step 2. Starting from the best combination resulted from step 1, doing a more meticulous research around that combination to find the best combination

But I am afraid that the best combination might hide somewhere that step 1 is not able to perceive, so step 2 is in vain