4

I am trying to solve a two dimensional combinatorial problem. Hereis my input space {{RA1,RA2},{RB1,RB2},{RC1,RC2}} and i have to choose two out of three elements{A,B,C} and one out of two possible variations for each of these elements {1,2}. I have an objective function to maximize and i have some constraints. Based on these i have to make above selections. Can anyone please tell me if there is any optimization algorithm already available which serves my purpose. In reality i have a huge input space, so any existing algorithm is prefered

Jiterika
  • 41
  • 1

1 Answers1

1

Sure, try integer linear programming. Let $x_{RA1}$ be a zero-or-one variable that is 1 if you select RA1, or 0 if you don't. Then each of your constraints can be expressed as linear inequalities with these variables. You can then try applying an off-the-shelf ILP solver.

There are a bunch of other questions on this site with further examples of using ILP to solve combinatorial problems (e.g., Express boolean logic operations in zero-one integer linear programming (ILP)), so feel free to look around.

D.W.
  • 159,275
  • 20
  • 227
  • 470
  • Thank You D.W. Can you point me to any existing python packages which provide the solver. I was planning on using cvxpy but i have been running into installation issues. I am receiving 'ModuleNotFoundError: No module named 'cvxpy.expressions.variables' error. I am solving an optimization problem for the first time, hence the hiccups. Any help is greatly appreciated. – Jiterika Jul 26 '18 at 20:40