scippyscipopt

induction for SCIPopt's setppc


Regarding SCIP's "constraint handler for the set partitioning / packing / covering":

  1. Is it smart enough to deduce all forms that it supports without me having to call the setppc functions directly?
  2. Can it handle/detect forms of sum(x) == y where x is a list of binary variables and y is also a binary variable? Same question for less than or equal?
  3. The docs for it state that it requires a right-hand-side equal to 1. What about RHS=0?

Solution

    1. If I understand you correctly you are asking if SCIP will see that a linear constraint is a setppc constraint and automatically upgrade it? Yes.

    2. Yes, it should not matter how you write it.

    3. A sum of binary variables with rhs = 0 will just propagate and fix all variables to 0. (if only lhs is 0 then that is redundant)

    If some of the coefficients are -1 instead of +1 SCIP will still try to make it work by negating all negative variables (or all positive ones and multiply by -1 afterwards). SCIP will check for any linear constraint that has only binary variables and +1/-1 coefficients if it can be upgraded in such a way.