Hey,
in our company, we have a well-grown MIQP and are currently thinking about a reformulation using the indicator constraints introduced in Gurobi 7.
We have lots of constraints of the form "if binary variable is 1, then continuous variable should be at least X (constant), else it should be 0". Right now we are using big-M formulations to model such constraints, but this seems like a perfect task for indicator constraints for me. We frequently tackle numerical issues since those continuous variable can take on very small values.
Since such a reformulation is going to be a significant effort, we would like to find out in advance how Gurobi handles such constraints internally. In particular, we are looking for answers for the following questions:
1) Does Gurobi simply transform indicator constraints into their equivalent big-M forms? If so, I guess we don't gain anything in our case and the numerical issues remain.
2) If not, does Gurobi introduce additional binary variables?
3) Are these constraints somehow incorporated into the branch-and-bound procedure? For example, the solver could branch between the cases that the constraint holds and that it does not hold. If so, how does the root-relaxation then look like?
Thanks in advance!