[SCIP] Creation of (more general) logior constraint

michael.winkler at zib.de michael.winkler at zib.de
Sun Aug 25 21:12:56 CEST 2019


Chuen,

actually while C1 is a logicor constraint (at least one element out of a
list of (negated) binaries needs to be 1) C2 is not a logicor constraint
(and cannot be transformed in a single logicor constraint).

But:

C2: x1 - x2 + x3 >= 1  <=> x1 + ~x2 + x3 >= 2
                       <=> ~x1 + x2 + ~x3 <= 1

The last form is a set-packing constraint (at most one element out of a
list of (negated) binaries can be 1).
So what you can do is to use SCIPgetNegatedVar() on necessary variables
and create a set-packing constraint directly.

Best,
Michael


> Dear Chuen,
>
> you could use SCIPgetNegatedVar(...) to get/create a negated variable
> and use this variable to model C2 as logic-OR constraint.
>
> Best,
> Benjamin
>
> On 8/15/19 4:02 AM, Chuen Teck See wrote:
>> Dear Scip,
>>
>> C1: x1 + x2 + x3 >= 1, all var binary. This is a standard logic cons
>> C2: x1 - x2 + x3 >= 1, all var binary
>>
>> SCIPcreateConsLogicor() is designed for users to handle creation of C1.
>> This is a function createNormalizedLogicor(), which handles C2 & it is
>> called by SCIP_DECL_LINCONSUPGD(linconsUpgdLogicor). Is there a way for
>> user to create C2 directly, as per creation of C1 using
>> SCIPcreateConsLogicor()?
>>
>>
>> _______________________________________________
>> Scip mailing list
>> Scip at zib.de
>> https://listserv.zib.de/mailman/listinfo/scip
>>
>
> --
> ______________________________
> Benjamin Müller
> Zuse Institute Berlin
> Takustr. 7, 14195 Berlin
> benjamin.mueller at zib.de
> +49 30 841 85-195
> _______________________________________________
> Scip mailing list
> Scip at zib.de
> https://listserv.zib.de/mailman/listinfo/scip
>




More information about the Scip mailing list