Do MIP Solvers (e.g. CBC, Gurobi, ...) automatically decompose separable problems?

111 Views Asked by At

I have many optimization problems that I solve sequentially with CBC.

Alternatively, I throw all these problems into one optimization problem and just do one solve. The idea was to reduce overhead and I assumed that CBC automatically recognizes that the parts are separable.

The result was identical, so I did everything correct. Unfortunately, the solution time was much much higher. So my questions:

  1. CBC does not recognize that it can separate an optimization problem?
  2. Shouldn't it be easy to recognize separability in advance?
  3. Does Gurobi do that?

Thanks four your hints!

1

There are 1 best solutions below

0
Erwin Kalvelagen On

No. Solvers don't do decomposition automatically or by default. Cplex can do Benders automatically (using an option).

The special case where all subproblems are totally independent is not so common. So solvers don't detect this and thus ignore that and solve it as one big problem. If the subproblems are related there may be different ways to achieve better speed (e.g. by updating the problem).

For many small independent problems (like in DEA problems), it may make sense to batch a few problems together (e.g. instead of 100 tiny problems, solve 10 batches of 10). This can make some difference.