
Go to the source code of this file.

SCIP_RETCODE  SCIPincludeConshdlrIndicator (SCIP *scip) 

SCIP_RETCODE  SCIPcreateConsIndicator (SCIP *scip, SCIP_CONS **cons, const char *name, SCIP_VAR *binvar, int nvars, SCIP_VAR **vars, SCIP_Real *vals, SCIP_Real rhs, SCIP_Bool initial, SCIP_Bool separate, SCIP_Bool enforce, SCIP_Bool check, SCIP_Bool propagate, SCIP_Bool local, SCIP_Bool dynamic, SCIP_Bool removable, SCIP_Bool stickingatnode) 

SCIP_RETCODE  SCIPcreateConsBasicIndicator (SCIP *scip, SCIP_CONS **cons, const char *name, SCIP_VAR *binvar, int nvars, SCIP_VAR **vars, SCIP_Real *vals, SCIP_Real rhs) 

SCIP_RETCODE  SCIPcreateConsIndicatorLinCons (SCIP *scip, SCIP_CONS **cons, const char *name, SCIP_VAR *binvar, SCIP_CONS *lincons, SCIP_VAR *slackvar, SCIP_Bool initial, SCIP_Bool separate, SCIP_Bool enforce, SCIP_Bool check, SCIP_Bool propagate, SCIP_Bool local, SCIP_Bool dynamic, SCIP_Bool removable, SCIP_Bool stickingatnode) 

SCIP_RETCODE  SCIPcreateConsBasicIndicatorLinCons (SCIP *scip, SCIP_CONS **cons, const char *name, SCIP_VAR *binvar, SCIP_CONS *lincons, SCIP_VAR *slackvar) 

SCIP_RETCODE  SCIPaddVarIndicator (SCIP *scip, SCIP_CONS *cons, SCIP_VAR *var, SCIP_Real val) 

SCIP_CONS *  SCIPgetLinearConsIndicator (SCIP_CONS *cons) 

SCIP_RETCODE  SCIPsetLinearConsIndicator (SCIP *scip, SCIP_CONS *cons, SCIP_CONS *lincons) 

SCIP_RETCODE  SCIPsetBinaryVarIndicator (SCIP *scip, SCIP_CONS *cons, SCIP_VAR *binvar) 

SCIP_VAR *  SCIPgetBinaryVarIndicator (SCIP_CONS *cons) 

SCIP_VAR *  SCIPgetSlackVarIndicator (SCIP_CONS *cons) 

SCIP_Bool  SCIPisViolatedIndicator (SCIP *scip, SCIP_CONS *cons, SCIP_SOL *sol) 

SCIP_RETCODE  SCIPmakeIndicatorFeasible (SCIP *scip, SCIP_CONS *cons, SCIP_SOL *sol, SCIP_Bool *changed) 

SCIP_RETCODE  SCIPmakeIndicatorsFeasible (SCIP *scip, SCIP_CONSHDLR *conshdlr, SCIP_SOL *sol, SCIP_Bool *changed) 

SCIP_RETCODE  SCIPaddLinearConsIndicator (SCIP *scip, SCIP_CONSHDLR *conshdlr, SCIP_CONS *lincons) 

SCIP_RETCODE  SCIPaddRowIndicator (SCIP *scip, SCIP_CONSHDLR *conshdlr, SCIP_ROW *row) 

creates the handler for indicator constraints and includes it in SCIP
 Parameters

SCIP_RETCODE SCIPcreateConsIndicator 
( 
SCIP * 
scip, 


SCIP_CONS ** 
cons, 


const char * 
name, 


SCIP_VAR * 
binvar, 


int 
nvars, 


SCIP_VAR ** 
vars, 


SCIP_Real * 
vals, 


SCIP_Real 
rhs, 


SCIP_Bool 
initial, 


SCIP_Bool 
separate, 


SCIP_Bool 
enforce, 


SCIP_Bool 
check, 


SCIP_Bool 
propagate, 


SCIP_Bool 
local, 


SCIP_Bool 
dynamic, 


SCIP_Bool 
removable, 


SCIP_Bool 
stickingatnode 

) 
 
creates and captures an indicator constraint
 Note
 binvar is checked to be binary only later. This enables a change of the type in procedures reading an instance.

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 (indicator or quadratic) 
name  name of constraint 
binvar  binary indicator variable (or NULL) 
nvars  number of variables in the inequality 
vars  array with variables of inequality (or NULL) 
vals  values of variables in inequality (or NULL) 
rhs  rhs of the inequality 
initial  should the LP relaxation of constraint be in the initial LP? Usually set to TRUE. 
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. 
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 an indicator constraint in its most basic version, i. e., all constraint flags are set to their basic value as explained for the method SCIPcreateConsIndicator(); all flags can be set via SCIPsetConsFLAGNAMEmethods in scip.h
 See Also
 SCIPcreateConsIndicator() for information about the basic 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 (indicator or quadratic) 
name  name of constraint 
binvar  binary indicator variable (or NULL) 
nvars  number of variables in the inequality 
vars  array with variables of inequality (or NULL) 
vals  values of variables in inequality (or NULL) 
rhs  rhs of the inequality 
SCIP_RETCODE SCIPcreateConsIndicatorLinCons 
( 
SCIP * 
scip, 


SCIP_CONS ** 
cons, 


const char * 
name, 


SCIP_VAR * 
binvar, 


SCIP_CONS * 
lincons, 


SCIP_VAR * 
slackvar, 


SCIP_Bool 
initial, 


SCIP_Bool 
separate, 


SCIP_Bool 
enforce, 


SCIP_Bool 
check, 


SCIP_Bool 
propagate, 


SCIP_Bool 
local, 


SCIP_Bool 
dynamic, 


SCIP_Bool 
removable, 


SCIP_Bool 
stickingatnode 

) 
 
creates and captures an indicator constraint with given linear constraint and slack variable
 Note
 binvar is checked to be binary only later. This enables a change of the type in procedures reading an instance.

we assume that slackvar actually appears in lincons and we also assume that it takes the role of a slack variable!

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 
binvar  binary indicator variable (or NULL) 
lincons  linear constraint 
slackvar  slack variable 
initial  should the LP relaxation of constraint be in the initial LP? Usually set to TRUE. 
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. 
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 an indicator constraint with given linear constraint and slack variable in its most basic version, i. e., all constraint flags are set to their basic value as explained for the method SCIPcreateConsIndicator(); all flags can be set via SCIPsetConsFLAGNAMEmethods in scip.h
 Note
 binvar is checked to be binary only later. This enables a change of the type in procedures reading an instance.

we assume that slackvar actually appears in lincons and we also assume that it takes the role of a slack variable!

the constraint gets captured, hence at one point you have to release it using the method SCIPreleaseCons()
 See Also
 SCIPcreateConsIndicatorLinCons() for information about the basic 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 
binvar  binary indicator variable (or NULL) 
lincons  linear constraint 
slackvar  slack variable 
adds variable to the inequality of the indicator constraint
 Parameters

scip  SCIP data structure 
cons  indicator constraint 
var  variable to add to the inequality 
val  value of variable 
gets the linear constraint corresponding to the indicator constraint (may be NULL)
 Parameters

sets the linear constraint corresponding to the indicator constraint (may be NULL)
 Parameters

scip  SCIP data structure 
cons  indicator constraint 
lincons  linear constraint 
sets binary indicator variable for indicator constraint
 Parameters

scip  SCIP data structure 
cons  indicator constraint 
binvar  binary variable to add to the inequality 
gets binary variable corresponding to indicator constraint
 Parameters

gets slack variable corresponding to indicator constraint
 Parameters

checks whether indicator constraint is violated w.r.t. sol
 Parameters

scip  SCIP data structure 
cons  indicator constraint 
sol  solution, or NULL to use current node's solution 
Based on values of other variables, computes slack and binary variable to turn constraint feasible
 Parameters

scip  SCIP data structure 
cons  indicator constraint 
sol  solution 
changed  pointer to store whether the solution has been changed 
Based on values of other variables, computes slack and binary variable to turn all constraints feasible
 Parameters

scip  SCIP data structure 
conshdlr  indicator constraint handler 
sol  solution 
changed  pointer to store whether the solution has been changed 
adds additional linear constraint that is not connected by an indicator constraint, but can be used for separation
 Parameters

scip  SCIP data structure 
conshdlr  indicator constraint handler 
lincons  linear constraint 
adds additional globally valid row that is not connected by an indicator constraint, but can be used for separation
 Parameters

scip  SCIP data structure 
conshdlr  indicator constraint handler 
row  row to add 
