I have $8$ independent variables, out of which:
$6$ variables have $63$ states
one variable has $200$ states
one variable has $3$ states
Thus, in total, they create a search space of $63^6 \cdot 200 \cdot 3 \approx 32$ trillion. How can I find the optimal rows that minimize a custom objective function? Can we use combinatorial optimization algorithms? If so, what categories of algorithm, I need to look into for problems with such huge search spaces?
I am not much familiar in the field of optimization, but with some preliminary googling, I came across, google OR-tools, particularly constraints optimization. But, from my initial thoughts, I think it is bit hard to analytically describe my objective function. But, I haven’t tried it.
EDITED
This is how my objective function will look like.
$$\min y = x_1 - \frac{x_2-1}{x_1} + \frac{x_3-1}{x_1 x_2} - \frac{x_4-1}{x_1 x_2 x_3} + \frac{x_5-1}{x_1 x_2 x_3 x_4} - \frac{x_6-1}{x_1 x_2 x_3 x_4 x_5} + \frac{x_7-1}{x_1 x_2 x_3 x_4 x_5 x_6} - \frac{x_8-1}{x_1 x_2 x_3 x_4 x_5 x_6 x_7} $$
Constraints:
$$1\leq x_1\leq 200$$ $$1\leq x_2,x_3,x_4,x_5,x_6,x_7\leq 63$$ $$0\leq x_8\leq 2$$
$$0.01x_1+0.5(x_2+x_3+x_4+x_5+x_6+x_7)+15x_8=C$$
where $x_1,x_2,x_3,x_4,x_5,x_6,x_7,x_8$ are integers and $C$ is a constant.
So, from the above, I am guessing it mostly falls under MINLP or Constraints Optimization? But, in most of the online examples the objective functions are much simpler. Hence, what kind of algorithms is suitable for such complex objective functions?
"There is no free lunch": this applies also to optimization. You have to characterize your multi-variable objective function in order to get better algorithms than random picking.
You may want to look at:
Your search space is actually not that big: with a few orders of magnitude simplification, it may be reachable by exhaustive search. That depends also upon the time it takes to compute the objective function, and the computation hardware you have.
Another thing to consider is the problem context: usually some heuristics come to mind, relying on "physical" properties of the domain.
If the problem can be expressed as a sequence of choices, dynamic programming may be possible. You need to define a state that includes all necessary data to make further choices, and have a limited number of states. See knapsack problem as a typical example.
If there is no simplification, there are still elaborate algorithms to deal with. The general idea is to try a few combinations at random, then balance between exploration (of new zones in the search space) and exploitation (of the zones that have already given good results); MCTS (Monte-Carlo Tree Search) is an example.
If nothing goes or you do not have time to code algorithms, you may look at Black-Box optimization softwares: they apply all tricks of the trade for you. Well, not really: a good home made algorithm is usually vastly better, but it also takes vastly more time to code it, so that's a trade-off.