[SCIP] The rule of the slack variable in an indicator constraint

Mathieu Besançon mathieu.besancon at gmail.com
Mon Aug 21 08:55:20 CEST 2023


Dear Abbas,

The top-level description of the indicator constraint handler of SCIP
should be a good start:
https://www.scipopt.org/doc/html/cons__indicator_8c.php

There are three ways indicator constraints are handled, separation,
preprocessing, and a heuristic. Separation is based on this paper in
particular: https://doi.org/10.1137/050645828

Performance with a big M approach will typically differ. In my experience,
if you have a good bound M, a big M approach won't perform too bad, but may
be numerically more unstable.

SCIP only supports
*LHS - slack <= RHS*
At least for now.

Hope this helps,
Mathieu

On Mon, Aug 21, 2023 at 8:34 AM Abbas Omidi <abb.omidi at gmail.com> wrote:

> Dear support team,
>
> In the SCIP the indicator constraint can be written as indcons(expression,
> binary_var). Then it is interpreted as follows: (based on ".cip" format)
>
> *LHS - slack (<=/=/>=) RHS*
> *If: (binary_var = 1) -> (slack = 0)*
>
> As far as I know, CPLEX and maybe Gurobi have used binary variables and
> whose linking to linearize the logical constraints. I am actually not aware
> of their internal mechanism. Now, I would like to know how the SCIP can
> deal with indicator constraint internally, and also the rule of the slack
> variable in this form, and if is it necessary to use that instead of
> using e.g. a *BigM* approach.
>
>
> Best regards
> Abbas
> _______________________________________________
> Scip mailing list
> Scip at zib.de
> https://listserv.zib.de/mailman/listinfo/scip
>


-- 
Mathieu Besançon
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://listserv.zib.de/pipermail/scip/attachments/20230821/1b2b5237/attachment.html>


More information about the Scip mailing list