[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