
Constraint handler for the set partitioning / packing / covering constraints .
 Author
 Tobias Achterberg

Michael Winkler
This constraint handler handles three special classes of linear constraints, namely set partitioning, set packing, and set covering constraints. For a set of binary variables , a set partitioning constraint has the form
a set packing constraint has the form
and a set covering constraint has the form
Definition in file cons_setppc.h.
Go to the source code of this file.

SCIP_RETCODE  SCIPincludeConshdlrSetppc (SCIP *scip) 

SCIP_RETCODE  SCIPcreateConsSetpart (SCIP *scip, SCIP_CONS **cons, const char *name, int nvars, SCIP_VAR **vars, SCIP_Bool initial, SCIP_Bool separate, SCIP_Bool enforce, SCIP_Bool check, SCIP_Bool propagate, SCIP_Bool local, SCIP_Bool modifiable, SCIP_Bool dynamic, SCIP_Bool removable, SCIP_Bool stickingatnode) 

SCIP_RETCODE  SCIPcreateConsBasicSetpart (SCIP *scip, SCIP_CONS **cons, const char *name, int nvars, SCIP_VAR **vars) 

SCIP_RETCODE  SCIPcreateConsSetpack (SCIP *scip, SCIP_CONS **cons, const char *name, int nvars, SCIP_VAR **vars, SCIP_Bool initial, SCIP_Bool separate, SCIP_Bool enforce, SCIP_Bool check, SCIP_Bool propagate, SCIP_Bool local, SCIP_Bool modifiable, SCIP_Bool dynamic, SCIP_Bool removable, SCIP_Bool stickingatnode) 

SCIP_RETCODE  SCIPcreateConsBasicSetpack (SCIP *scip, SCIP_CONS **cons, const char *name, int nvars, SCIP_VAR **vars) 

SCIP_RETCODE  SCIPcreateConsSetcover (SCIP *scip, SCIP_CONS **cons, const char *name, int nvars, SCIP_VAR **vars, SCIP_Bool initial, SCIP_Bool separate, SCIP_Bool enforce, SCIP_Bool check, SCIP_Bool propagate, SCIP_Bool local, SCIP_Bool modifiable, SCIP_Bool dynamic, SCIP_Bool removable, SCIP_Bool stickingatnode) 

SCIP_RETCODE  SCIPcreateConsBasicSetcover (SCIP *scip, SCIP_CONS **cons, const char *name, int nvars, SCIP_VAR **vars) 

SCIP_RETCODE  SCIPaddCoefSetppc (SCIP *scip, SCIP_CONS *cons, SCIP_VAR *var) 

int  SCIPgetNVarsSetppc (SCIP *scip, SCIP_CONS *cons) 

SCIP_VAR **  SCIPgetVarsSetppc (SCIP *scip, SCIP_CONS *cons) 

SCIP_SETPPCTYPE  SCIPgetTypeSetppc (SCIP *scip, SCIP_CONS *cons) 

SCIP_Real  SCIPgetDualsolSetppc (SCIP *scip, SCIP_CONS *cons) 

SCIP_Real  SCIPgetDualfarkasSetppc (SCIP *scip, SCIP_CONS *cons) 

SCIP_ROW *  SCIPgetRowSetppc (SCIP *scip, SCIP_CONS *cons) 

int  SCIPgetNFixedonesSetppc (SCIP *scip, SCIP_CONS *cons) 

int  SCIPgetNFixedzerosSetppc (SCIP *scip, SCIP_CONS *cons) 

type of setppc constraint: set partitioning, set packing, or set covering
 Enumerator:
SCIP_SETPPCTYPE_PARTITIONING 
constraint is a set partitioning constraint: sum(x) == 1

SCIP_SETPPCTYPE_PACKING 
constraint is a set packing constraint: sum(x) <= 1

SCIP_SETPPCTYPE_COVERING 
constraint is a set covering constraint: sum(x) >= 1

Definition at line 51 of file cons_setppc.h.
creates the handler for set partitioning / packing / covering constraints and includes it in SCIP
 Parameters

SCIP_RETCODE SCIPcreateConsSetpart 
( 
SCIP * 
scip, 


SCIP_CONS ** 
cons, 


const char * 
name, 


int 
nvars, 


SCIP_VAR ** 
vars, 


SCIP_Bool 
initial, 


SCIP_Bool 
separate, 


SCIP_Bool 
enforce, 


SCIP_Bool 
check, 


SCIP_Bool 
propagate, 


SCIP_Bool 
local, 


SCIP_Bool 
modifiable, 


SCIP_Bool 
dynamic, 


SCIP_Bool 
removable, 


SCIP_Bool 
stickingatnode 

) 
 
creates and captures a set partitioning constraint
 Note
 the constraint gets captured, hence at one point you have to release it using the method SCIPreleaseCons()
 Parameters

scip  SCIP data structure 
cons  pointer to hold the created constraint 
name  name of constraint 
nvars  number of variables in the constraint 
vars  array with variables of constraint entries 
initial  should the LP relaxation of constraint be in the initial LP? Usually set to TRUE. Set to FALSE for 'lazy constraints'. 
separate  should the constraint be separated during LP processing? Usually set to TRUE. 
enforce  should the constraint be enforced during node processing? TRUE for model constraints, FALSE for additional, redundant constraints. 
check  should the constraint be checked for feasibility? TRUE for model constraints, FALSE for additional, redundant constraints. 
propagate  should the constraint be propagated during node processing? Usually set to TRUE. 
local  is constraint only valid locally? Usually set to FALSE. Has to be set to TRUE, e.g., for branching constraints. 
modifiable  is constraint modifiable (subject to column generation)? Usually set to FALSE. In column generation applications, set to TRUE if pricing adds coefficients to this constraint. 
dynamic  is constraint subject to aging? Usually set to FALSE. Set to TRUE for own cuts which are separated as constraints. 
removable  should the relaxation be removed from the LP due to aging or cleanup? Usually set to FALSE. Set to TRUE for 'lazy constraints' and 'user cuts'. 
stickingatnode  should the constraint always be kept at the node where it was added, even if it may be moved to a more global node? Usually set to FALSE. Set to TRUE to for constraints that represent node data. 
creates and captures a set partitioning constraint in its most basic variant, i. e., with all constraint flags set to their default values, which can be set afterwards using SCIPsetConsFLAGNAME() in scip.h
 See Also
 SCIPcreateConsSetpart() for the default constraint flag configuration
 Note
 the constraint gets captured, hence at one point you have to release it using the method SCIPreleaseCons()
 Parameters

scip  SCIP data structure 
cons  pointer to hold the created constraint 
name  name of constraint 
nvars  number of variables in the constraint 
vars  array with variables of constraint entries 
SCIP_RETCODE SCIPcreateConsSetpack 
( 
SCIP * 
scip, 


SCIP_CONS ** 
cons, 


const char * 
name, 


int 
nvars, 


SCIP_VAR ** 
vars, 


SCIP_Bool 
initial, 


SCIP_Bool 
separate, 


SCIP_Bool 
enforce, 


SCIP_Bool 
check, 


SCIP_Bool 
propagate, 


SCIP_Bool 
local, 


SCIP_Bool 
modifiable, 


SCIP_Bool 
dynamic, 


SCIP_Bool 
removable, 


SCIP_Bool 
stickingatnode 

) 
 
creates and captures a set packing constraint
 Note
 the constraint gets captured, hence at one point you have to release it using the method SCIPreleaseCons()
 Parameters

scip  SCIP data structure 
cons  pointer to hold the created constraint 
name  name of constraint 
nvars  number of variables in the constraint 
vars  array with variables of constraint entries 
initial  should the LP relaxation of constraint be in the initial LP? Usually set to TRUE. Set to FALSE for 'lazy constraints'. 
separate  should the constraint be separated during LP processing? Usually set to TRUE. 
enforce  should the constraint be enforced during node processing? TRUE for model constraints, FALSE for additional, redundant constraints. 
check  should the constraint be checked for feasibility? TRUE for model constraints, FALSE for additional, redundant constraints. 
propagate  should the constraint be propagated during node processing? Usually set to TRUE. 
local  is constraint only valid locally? Usually set to FALSE. Has to be set to TRUE, e.g., for branching constraints. 
modifiable  is constraint modifiable (subject to column generation)? Usually set to FALSE. In column generation applications, set to TRUE if pricing adds coefficients to this constraint. 
dynamic  is constraint subject to aging? Usually set to FALSE. Set to TRUE for own cuts which are separated as constraints. 
removable  should the relaxation be removed from the LP due to aging or cleanup? Usually set to FALSE. Set to TRUE for 'lazy constraints' and 'user cuts'. 
stickingatnode  should the constraint always be kept at the node where it was added, even if it may be moved to a more global node? Usually set to FALSE. Set to TRUE to for constraints that represent node data. 
creates and captures a set packing constraint in its most basic variant, i. e., with all constraint flags set to their default values, which can be set afterwards using SCIPsetConsFLAGNAME() in scip.h
 See Also
 SCIPcreateConsSetpack() for the default constraint flag configuration
 Note
 the constraint gets captured, hence at one point you have to release it using the method SCIPreleaseCons()
 Parameters

scip  SCIP data structure 
cons  pointer to hold the created constraint 
name  name of constraint 
nvars  number of variables in the constraint 
vars  array with variables of constraint entries 
SCIP_RETCODE SCIPcreateConsSetcover 
( 
SCIP * 
scip, 


SCIP_CONS ** 
cons, 


const char * 
name, 


int 
nvars, 


SCIP_VAR ** 
vars, 


SCIP_Bool 
initial, 


SCIP_Bool 
separate, 


SCIP_Bool 
enforce, 


SCIP_Bool 
check, 


SCIP_Bool 
propagate, 


SCIP_Bool 
local, 


SCIP_Bool 
modifiable, 


SCIP_Bool 
dynamic, 


SCIP_Bool 
removable, 


SCIP_Bool 
stickingatnode 

) 
 
creates and captures a set covering constraint
 Note
 the constraint gets captured, hence at one point you have to release it using the method SCIPreleaseCons()
 Parameters

scip  SCIP data structure 
cons  pointer to hold the created constraint 
name  name of constraint 
nvars  number of variables in the constraint 
vars  array with variables of constraint entries 
initial  should the LP relaxation of constraint be in the initial LP? Usually set to TRUE. Set to FALSE for 'lazy constraints'. 
separate  should the constraint be separated during LP processing? Usually set to TRUE. 
enforce  should the constraint be enforced during node processing? TRUE for model constraints, FALSE for additional, redundant constraints. 
check  should the constraint be checked for feasibility? TRUE for model constraints, FALSE for additional, redundant constraints. 
propagate  should the constraint be propagated during node processing? Usually set to TRUE. 
local  is constraint only valid locally? Usually set to FALSE. Has to be set to TRUE, e.g., for branching constraints. 
modifiable  is constraint modifiable (subject to column generation)? Usually set to FALSE. In column generation applications, set to TRUE if pricing adds coefficients to this constraint. 
dynamic  is constraint subject to aging? Usually set to FALSE. Set to TRUE for own cuts which are separated as constraints. 
removable  should the relaxation be removed from the LP due to aging or cleanup? Usually set to FALSE. Set to TRUE for 'lazy constraints' and 'user cuts'. 
stickingatnode  should the constraint always be kept at the node where it was added, even if it may be moved to a more global node? Usually set to FALSE. Set to TRUE to for constraints that represent node data. 
creates and captures a set packing constraint in its most basic variant, i. e., with all constraint flags set to their default values, which can be set afterwards using SCIPsetConsFLAGNAME() in scip.h
 See Also
 SCIPcreateConsSetpack() for the default constraint flag configuration
 Note
 the constraint gets captured, hence at one point you have to release it using the method SCIPreleaseCons()
 Parameters

scip  SCIP data structure 
cons  pointer to hold the created constraint 
name  name of constraint 
nvars  number of variables in the constraint 
vars  array with variables of constraint entries 
adds coefficient in set partitioning / packing / covering constraint
 Parameters

scip  SCIP data structure 
cons  constraint data 
var  variable to add to the constraint 
gets number of variables in set partitioning / packing / covering constraint
 Parameters

scip  SCIP data structure 
cons  constraint data 
gets array of variables in set partitioning / packing / covering constraint
 Parameters

scip  SCIP data structure 
cons  constraint data 
gets type of set partitioning / packing / covering constraint
 Parameters

scip  SCIP data structure 
cons  constraint data 
gets the dual solution of the set partitioning / packing / covering constraint in the current LP
 Parameters

scip  SCIP data structure 
cons  constraint data 
gets the dual Farkas value of the set partitioning / packing / covering constraint in the current infeasible LP
 Parameters

scip  SCIP data structure 
cons  constraint data 
returns the linear relaxation of the given set partitioning / packing / covering constraint; may return NULL if no LP row was yet created; the user must not modify the row!
 Parameters

scip  SCIP data structure 
cons  constraint data 
returns current number of variables fixed to one in the constraint
 Parameters

scip  SCIP data structure 
cons  constraint data 
returns current number of variables fixed to zero in the constraint
 Parameters

scip  SCIP data structure 
cons  constraint data 
