Detailed Descriptionconstraint handler for indicator constraints An indicator constraint is given by a binary variable and an inequality . It states that if then holds. This constraint is handled by adding a slack variable with . The constraint is enforced by fixing to 0 if .
This constraint is equivalent to a linear constraint and an SOS1 constraint on and (at most one should be nonzero). In the indicator context we can, however, separate more inequalities. The name indicator apparently comes from CPLEX. Separation MethodsWe now explain the handling of indicator constraints in more detail. The indicator constraint handler adds an inequality for each indicator constraint. We assume that this system (with added slack variables) is , where are the original variables and are the slack variables added by the indicator constraint. Variables are the binary variables corresponding to the indicator constraints.
We separate inequalities by using the so-called alternative polyhedron. Separation via the Alternative PolyhedronWe now describe the separation method of the first method in more detail. Consider the LP-relaxation of the current subproblem:
As above contains all inequalities corresponding to indicator constraints, while the system contains all other inequalities (which are ignored in the following). Similarly, variables not appearing in indicator constraints are ignored. Bounds for the variables can be given, in particular, variables can be fixed. Note that renders the system infeasible. To generate cuts, we construct the so-called alternative polyhedron:
Here, and correspond to the lower and upper bounds on , respectively. It turns out that the vertices of correspond to minimal infeasible subsystems of , . If is the index set of such a system, it follows that not all for can be 0, i.e., can be 1. In other words, the following cut is valid:
Separation heuristicWe separate the above inequalities by a heuristic described in Branch-And-Cut for the Maximum Feasible Subsystem Problem, The first step in the separation heuristic is to apply the transformation , which transforms the above inequality into the constraint
that is, it is a set covering constraint on the negated variables. The basic idea is to use the current solution to the LP relaxation and use it as the objective, when optimizing of the alternative polyhedron. Since any vertex corresponds to such an inequality, we can check whether it is violated. To enlarge the chance that we find a violated inequality, we perform a fixing procedure, in which the variable corresponding to an arbitrary element of the last IIS is fixed to zero, i.e., cannot be used in the next IISs. This is repeated until the corresponding alternative polyhedron is infeasible, i.e., we have obtained an IIS-cover. For more details see the paper above. PreprocessingSince each indicator constraint adds a linear constraint to the formulation, preprocessing of the linear constraints change the above approach as follows. The system as present in the formulation is the following (ignoring variables that are not contained in indicator constraints and the objective function):
Note again that the requirement leads to an infeasible system. Consider now the preprocessing of the linear constraint (aggregation, bound strengthening, etc.) and assume that this changes the above system to the following:
Note that we forbid multi-aggregation of the variables in order to be able to change their bounds in propagation/branching. The corresponding alternative system is the following:
where the second form arises by substituting . A closer look at this system reveals that it is not larger than the original one:
Taken together, these two observations yield the conclusion that the new system is roughly as large as the original one.
Definition in file cons_indicator.c. #include <assert.h> #include <string.h> #include "scip/cons_indicator.h" #include "scip/cons_linear.h" #include "scip/cons_logicor.h" #include "scip/cons_varbound.h" #include "scip/cons_quadratic.h" #include "scip/heur_trysol.h" #include "scip/heur_indicator.h" #include "scip/pub_misc.h" Go to the source code of this file.
Macro Definition Documentation
Definition at line 208 of file cons_indicator.c. Referenced by addAltLPConstraint(), addAltLPRow(), addObjcut(), consdataEnsureAddLinConsSize(), deleteAltLPConstraint(), initAlternativeLP(), SCIP_DECL_CONFLICTEXEC(), SCIP_DECL_CONSCHECK(), SCIP_DECL_CONSCOPY(), SCIP_DECL_CONSDELETE(), SCIP_DECL_CONSDISABLE(), SCIP_DECL_CONSENABLE(), SCIP_DECL_CONSENFOLP(), SCIP_DECL_CONSENFOPS(), SCIP_DECL_CONSEXIT(), SCIP_DECL_CONSEXITSOL(), SCIP_DECL_CONSFREE(), SCIP_DECL_CONSGETDIVEBDCHGS(), SCIP_DECL_CONSHDLRCOPY(), SCIP_DECL_CONSINIT(), SCIP_DECL_CONSINITLP(), SCIP_DECL_CONSINITPRE(), SCIP_DECL_CONSINITSOL(), SCIP_DECL_CONSLOCK(), SCIP_DECL_CONSPRESOL(), SCIP_DECL_CONSPRINT(), SCIP_DECL_CONSPROP(), SCIP_DECL_CONSRESPROP(), SCIP_DECL_CONSSEPALP(), SCIP_DECL_CONSSEPASOL(), SCIP_DECL_CONSTRANS(), SCIPaddLinearConsIndicator(), SCIPaddRowIndicator(), SCIPaddVarIndicator(), SCIPcreateConsIndicator(), SCIPcreateConsIndicatorLinCons(), SCIPgetBinaryVarIndicator(), SCIPgetLinearConsIndicator(), SCIPgetSlackVarIndicator(), SCIPincludeConshdlrIndicator(), SCIPmakeIndicatorFeasible(), SCIPmakeIndicatorsFeasible(), SCIPsetBinaryVarIndicator(), and SCIPsetLinearConsIndicator().
Definition at line 209 of file cons_indicator.c. Referenced by SCIPincludeConshdlrIndicator().
priority of the constraint handler for separation Definition at line 210 of file cons_indicator.c. Referenced by SCIPincludeConshdlrIndicator().
priority of the constraint handler for constraint enforcing Definition at line 211 of file cons_indicator.c. Referenced by SCIPincludeConshdlrIndicator().
priority of the constraint handler for checking feasibility Definition at line 212 of file cons_indicator.c. Referenced by SCIPincludeConshdlrIndicator().
frequency for separating cuts; zero means to separate only in the root node Definition at line 213 of file cons_indicator.c. Referenced by SCIPincludeConshdlrIndicator().
frequency for propagating domains; zero means only preprocessing propagation Definition at line 214 of file cons_indicator.c. Referenced by SCIPincludeConshdlrIndicator().
frequency for using all instead of only the useful constraints in separation, propagation and enforcement, -1 for no eager evaluations, 0 for first only Definition at line 215 of file cons_indicator.c. Referenced by SCIPincludeConshdlrIndicator().
maximal number of presolving rounds the constraint handler participates in (-1: no limit) Definition at line 218 of file cons_indicator.c. Referenced by SCIPincludeConshdlrIndicator().
Should separation method be delayed, if other separators found cuts? Definition at line 219 of file cons_indicator.c. Referenced by SCIPincludeConshdlrIndicator().
Should propagation method be delayed, if other propagators found reductions? Definition at line 220 of file cons_indicator.c. Referenced by SCIPincludeConshdlrIndicator().
Should the constraint handler be skipped, if no constraints are available? Definition at line 221 of file cons_indicator.c. Referenced by SCIPincludeConshdlrIndicator().
Definition at line 223 of file cons_indicator.c. Referenced by SCIPincludeConshdlrIndicator().
Definition at line 224 of file cons_indicator.c. Referenced by SCIPincludeConshdlrIndicator().
Definition at line 228 of file cons_indicator.c. Referenced by SCIP_DECL_EVENTEXEC(), and SCIPincludeConshdlrIndicator().
Definition at line 229 of file cons_indicator.c. Referenced by SCIPincludeConshdlrIndicator().
Definition at line 231 of file cons_indicator.c. Referenced by SCIP_DECL_EVENTEXEC(), and SCIPincludeConshdlrIndicator().
Definition at line 232 of file cons_indicator.c. Referenced by SCIPincludeConshdlrIndicator().
Definition at line 236 of file cons_indicator.c. Referenced by SCIP_DECL_CONFLICTEXEC(), SCIP_DECL_CONFLICTFREE(), and SCIPincludeConshdlrIndicator().
Definition at line 237 of file cons_indicator.c. Referenced by SCIPincludeConshdlrIndicator().
Definition at line 238 of file cons_indicator.c. Referenced by SCIPincludeConshdlrIndicator().
priority of the constraint handler for upgrading of linear constraints Definition at line 241 of file cons_indicator.c. Referenced by SCIPincludeConshdlrIndicator().
Branch on indicator constraints in enforcing? Definition at line 244 of file cons_indicator.c. Referenced by SCIPincludeConshdlrIndicator().
Generate logicor constraints instead of cuts? Definition at line 245 of file cons_indicator.c. Referenced by SCIPincludeConshdlrIndicator().
Add coupling constraints if big-M is small enough? Definition at line 246 of file cons_indicator.c. Referenced by SCIPincludeConshdlrIndicator().
maximum coefficient for binary variable in coupling constraint Definition at line 247 of file cons_indicator.c. Referenced by SCIPincludeConshdlrIndicator().
Add initial coupling inequalities as linear constraints, if 'addcoupling' is true? Definition at line 248 of file cons_indicator.c. Referenced by SCIPincludeConshdlrIndicator().
Should the coupling inequalities be separated dynamically? Definition at line 249 of file cons_indicator.c. Referenced by SCIPincludeConshdlrIndicator().
Allow to use local bounds in order to separated coupling inequalities? Definition at line 250 of file cons_indicator.c. Referenced by SCIPincludeConshdlrIndicator().
maximum coefficient for binary variable in separated coupling constraint Definition at line 251 of file cons_indicator.c. Referenced by SCIPincludeConshdlrIndicator().
Separate using the alternative LP? Definition at line 252 of file cons_indicator.c. Referenced by SCIPincludeConshdlrIndicator().
Try to construct a feasible solution from a cover? Definition at line 253 of file cons_indicator.c. Referenced by SCIPincludeConshdlrIndicator().
Try to upgrade linear constraints to indicator constraints? Definition at line 254 of file cons_indicator.c. Referenced by SCIPincludeConshdlrIndicator().
Collect other constraints to alternative LP? Definition at line 255 of file cons_indicator.c. Referenced by SCIPincludeConshdlrIndicator().
Use objective cut with current best solution to alternative LP? Definition at line 256 of file cons_indicator.c. Referenced by SCIPincludeConshdlrIndicator().
Update bounds of original variables for separation? Definition at line 257 of file cons_indicator.c. Referenced by SCIPincludeConshdlrIndicator().
max. estimated condition of the solution basis matrix of the alt. LP to be trustworthy (0.0 to disable check) Definition at line 258 of file cons_indicator.c. Referenced by SCIPincludeConshdlrIndicator().
maximal number of cuts separated per separation round Definition at line 259 of file cons_indicator.c. Referenced by SCIPincludeConshdlrIndicator().
maximal number of cuts separated per separation round in the root node Definition at line 260 of file cons_indicator.c. Referenced by SCIPincludeConshdlrIndicator().
Remove indicator constraint if corresponding variable bound constraint has been added? Definition at line 261 of file cons_indicator.c. Referenced by SCIPincludeConshdlrIndicator().
Do not generate indicator constraint, but a bilinear constraint instead? Definition at line 262 of file cons_indicator.c. Referenced by SCIPincludeConshdlrIndicator().
Scale slack variable coefficient at construction time? Definition at line 263 of file cons_indicator.c. Referenced by SCIPincludeConshdlrIndicator().
Decompose problem (do not generate linear constraint if all variables are continuous)? Definition at line 264 of file cons_indicator.c. Referenced by SCIPincludeConshdlrIndicator().
Try to make solutions feasible by setting indicator variables? Definition at line 265 of file cons_indicator.c. Referenced by SCIPincludeConshdlrIndicator().
In enforcing try to generate cuts (only if sepaalternativelp is true)? Definition at line 266 of file cons_indicator.c. Referenced by SCIPincludeConshdlrIndicator().
Should dual reduction steps be performed? Definition at line 267 of file cons_indicator.c. Referenced by SCIPincludeConshdlrIndicator().
Add opposite inequality in nodes in which the binary variable has been fixed to 0? Definition at line 268 of file cons_indicator.c. Referenced by SCIPincludeConshdlrIndicator().
Try to upgrade bounddisjunction conflicts by replacing slack variables? Definition at line 269 of file cons_indicator.c. Referenced by SCIPincludeConshdlrIndicator().
Force restart if we have a max FS instance and gap is 1? Definition at line 270 of file cons_indicator.c. Referenced by SCIPincludeConshdlrIndicator().
fraction of binary variables that need to be fixed before restart occurs (in forcerestart) Definition at line 271 of file cons_indicator.c. Referenced by SCIPincludeConshdlrIndicator().
value to add to objective in alt. LP if the binary variable is 1 to get small IISs Definition at line 275 of file cons_indicator.c. Referenced by setAltLPObj(), and setAltLPObjZero().
only separate IIS cuts if the number of separated coupling cuts is less than this value Definition at line 276 of file cons_indicator.c. Referenced by separateIndicators().
maximal number of rounds that produced cuts in separation Definition at line 277 of file cons_indicator.c. Referenced by initConshdlrData().
Value:
/*lint -e527 */ do \ { \ SCIP_RETCODE _restat_; \ if ( (_restat_ = (x)) != SCIP_OKAY && (_restat_ != SCIP_PARAMETERUNKNOWN) ) \ { \ SCIPerrorMessage("[%s:%d] Error <%d> in function call\n", __FILE__, __LINE__, _restat_); \ SCIPABORT(); \ return _restat_; \ } \ } \ while ( FALSE )
Definition: type_retcode.h:33 Definition: type_retcode.h:46 Definition at line 375 of file cons_indicator.c. Referenced by checkAltLPInfeasible(), extendToCover(), initAlternativeLP(), and SCIP_DECL_CONSCHECK(). Function Documentation
Definition at line 395 of file cons_indicator.c. References EVENTHDLR_BOUND_NAME, NULL, SCIP_EVENTTYPE_LBRELAXED, SCIP_EVENTTYPE_LBTIGHTENED, SCIP_EVENTTYPE_UBRELAXED, SCIP_EVENTTYPE_UBTIGHTENED, SCIP_INVALIDDATA, SCIP_OKAY, SCIP_Real, SCIPABORT, SCIPdebugMessage, SCIPerrorMessage, SCIPeventGetNewbound(), SCIPeventGetOldbound(), SCIPeventGetType(), SCIPeventGetVar(), SCIPeventhdlrGetName(), SCIPisFeasNegative(), SCIPisFeasPositive(), and SCIPvarGetName().
Definition at line 479 of file cons_indicator.c. References EVENTHDLR_RESTART_NAME, NULL, REALABS, SCIP_CALL, SCIP_DECL_CONFLICTFREE(), SCIP_EVENTTYPE_BESTSOLFOUND, SCIP_EVENTTYPE_GLBCHANGED, SCIP_EVENTTYPE_GUBCHANGED, SCIP_INVALIDDATA, SCIP_OKAY, SCIP_Real, SCIP_STAGE_SOLVING, SCIP_VARTYPE_BINARY, SCIP_VERBLEVEL_NORMAL, SCIPABORT, SCIPdebugMessage, SCIPdropEvent(), SCIPerrorMessage, SCIPeventGetNewbound(), SCIPeventGetOldbound(), SCIPeventGetType(), SCIPeventGetVar(), SCIPeventhdlrGetName(), SCIPfindBranchrule(), SCIPgetDualbound(), SCIPgetPrimalbound(), SCIPgetStage(), SCIPisEQ(), SCIPisGE(), SCIPisIntegral(), SCIPisParamFixed(), SCIPisZero(), SCIPrestartSolve(), SCIPsetIntParam(), SCIPvarGetName(), SCIPvarGetType(), SCIPverbMessage(), and TRUE.
destructor of conflict handler to free conflict handler data (called when SCIP is exiting) Definition at line 585 of file cons_indicator.c. References CONFLICTHDLR_NAME, NULL, SCIP_DECL_CONFLICTEXEC(), SCIP_OKAY, SCIPconflicthdlrGetData(), SCIPconflicthdlrGetName(), and SCIPfreeMemory. Referenced by SCIP_DECL_EVENTEXEC().
conflict processing method of conflict handler (called when conflict was found) In this conflict handler we try to replace slack variables by binary indicator variables and generate a logicor constraint if possible. Definition at line 608 of file cons_indicator.c. References checkParam(), CONFLICTHDLR_NAME, CONSHDLR_NAME, FALSE, NULL, SCIP_Bool, SCIP_BOUNDTYPE_LOWER, SCIP_CALL, SCIP_CONSADDED, SCIP_DIDNOTFIND, SCIP_DIDNOTRUN, SCIP_MAXSTRLEN, SCIP_OKAY, SCIP_VARTYPE_CONTINUOUS, SCIP_VARTYPE_IMPLINT, SCIPaddConsNode(), SCIPallocBufferArray, SCIPbdchginfoGetBoundtype(), SCIPbdchginfoGetNewbound(), SCIPbdchginfoGetVar(), SCIPboundtypeOpposite(), SCIPconflicthdlrGetData(), SCIPconflicthdlrGetName(), SCIPconshdlrGetConss(), SCIPconshdlrGetName(), SCIPconshdlrGetNConss(), SCIPcreateConsLogicor(), SCIPdebugMessage, SCIPfreeBufferArray, SCIPgetBinaryVarIndicator(), SCIPgetNConflictConssApplied(), SCIPgetNegatedVar(), SCIPgetNRuns(), SCIPgetSlackVarIndicator(), SCIPinfoMessage(), SCIPisFeasZero(), SCIPprintCons(), SCIPreleaseCons(), SCIPsnprintf(), SCIPvarGetName(), SCIPvarGetType(), SCIPvarIsBinary(), and TRUE. Referenced by SCIP_DECL_CONFLICTFREE().
reset parameter to This function avoids changing crucial parameters.
Definition at line 777 of file cons_indicator.c. References NULL, paramname, SCIP_CALL, SCIP_DECL_PARAMCHGD(), SCIP_OKAY, SCIP_STAGE_PROBLEM, SCIPchgBoolParam(), SCIPgetStage(), SCIPparamGetName(), and SCIPwarningMessage(). Referenced by SCIP_DECL_CONFLICTEXEC(), and SCIP_DECL_PARAMCHGD().
called after a parameter has been changed Definition at line 816 of file cons_indicator.c. References checkParam(), NULL, SCIP_Bool, SCIP_CALL, SCIP_ERROR, SCIP_MAXSTRLEN, SCIP_OBJSEN_MINIMIZE, SCIP_OKAY, SCIP_Real, SCIP_VARSTATUS_AGGREGATED, SCIP_VARSTATUS_MULTAGGR, SCIPABORT, SCIPallocBufferArray, SCIPblkmem(), SCIPcalcHashtableSize(), SCIPconsGetData(), SCIPconsGetHdlr(), SCIPconsGetName(), SCIPconshdlrGetConss(), SCIPconshdlrGetData(), SCIPconshdlrGetName(), SCIPconshdlrGetNConss(), SCIPconsIsActive(), SCIPconsIsEnabled(), SCIPconsIsLocal(), SCIPdebugMessage, SCIPerrorMessage, SCIPfindConshdlr(), SCIPfreeBufferArray, SCIPgetConss(), SCIPgetLhsLinear(), SCIPgetMessagehdlr(), SCIPgetNConss(), SCIPgetNVars(), SCIPgetNVarsLinear(), SCIPgetProbvarSum(), SCIPgetRhsLinear(), SCIPgetValsLinear(), SCIPgetVarsLinear(), SCIPhashmapCreate(), SCIPhashmapExists(), SCIPhashmapFree(), SCIPhashmapGetImage(), SCIPhashmapInsert(), SCIPinfinity(), SCIPisFeasZero(), SCIPisInfinity(), SCIPisZero(), SCIPlpiAddCols(), SCIPlpiAddRows(), SCIPlpiCreate(), SCIPlpiFree(), SCIPlpiInfinity(), SCIPlpiIsPrimalInfeasible(), SCIPlpiSolvePrimal(), SCIPlpiWriteLP(), SCIPsnprintf(), SCIPvarGetLbLocal(), SCIPvarGetName(), SCIPvarGetStatus(), SCIPvarGetUbLocal(), sign(), and varGetObjDelta(). Referenced by checkParam(). return objective contribution of variable Special treatment of negated variables: return negative of objective of original variable. SCIPvarGetObj() would return 0 in these cases.
Definition at line 1240 of file cons_indicator.c. References consdataEnsureAddLinConsSize(), NULL, SCIP_VARSTATUS_AGGREGATED, SCIPvarGetAggrScalar(), SCIPvarGetAggrVar(), SCIPvarGetNegatedVar(), SCIPvarGetObj(), SCIPvarGetStatus(), SCIPvarIsBinary(), and SCIPvarIsNegated(). Referenced by enforceCuts(), extendToCover(), presolRoundIndicator(), propIndicator(), SCIP_DECL_CONSINITSOL(), SCIP_DECL_PARAMCHGD(), SCIPmakeIndicatorFeasible(), and separateIISRounding().
ensures that the addlincons array can store at least num entries
Definition at line 1261 of file cons_indicator.c. References CONSHDLR_NAME, initAlternativeLP(), NULL, SCIP_CALL, SCIP_OKAY, SCIPcalcMemGrowSize(), SCIPconshdlrGetData(), SCIPconshdlrGetName(), and SCIPreallocBlockMemoryArray. Referenced by SCIPaddLinearConsIndicator(), and varGetObjDelta().
initialize alternative LP The alternative system is organized as follows:
Definition at line 1301 of file cons_indicator.c. References checkLPBoundsClean(), CONSHDLR_NAME, FALSE, NULL, SCIP_CALL, SCIP_CALL_PARAM, SCIP_LPPAR_FASTMIP, SCIP_LPPAR_FROMSCRATCH, SCIP_LPPAR_PRESOLVING, SCIP_LPPAR_SCALING, SCIP_OBJSEN_MINIMIZE, SCIP_OKAY, SCIP_Real, SCIPblkmem(), SCIPcalcHashtableSize(), SCIPconshdlrGetData(), SCIPconshdlrGetName(), SCIPdebugMessage, SCIPgetMessagehdlr(), SCIPgetNVars(), SCIPhashmapCreate(), SCIPlpiAddRows(), SCIPlpiCreate(), SCIPlpiSetIntpar(), and TRUE. Referenced by addAltLPColumn(), and consdataEnsureAddLinConsSize().
Check whether the bounds int given (alternative) LP are set correctly (for debugging)
Definition at line 1351 of file cons_indicator.c. References FALSE, NULL, SCIP_Bool, SCIP_CALL, SCIP_OKAY, SCIP_Real, SCIPABORT, SCIPallocBufferArray, SCIPconsGetData(), SCIPfreeBufferArray, SCIPisFeasZero(), SCIPlpiGetBounds(), SCIPlpiGetNCols(), SCIPlpiIsInfinity(), setAltLPObj(), and TRUE. Referenced by enforceCuts(), initAlternativeLP(), SCIP_DECL_CONSCHECK(), and separateIISRounding().
Set the alternative system objective function We assume that the objective function coefficients of the variables other than the binary indicators are always 0 and hence do not have to be changed. We already use the tranformation .
Definition at line 1429 of file cons_indicator.c. References NULL, OBJEPSILON, SCIP_CALL, SCIP_OKAY, SCIP_Real, SCIPallocBufferArray, SCIPconsGetData(), SCIPfreeBufferArray, SCIPgetSolVal(), SCIPisFeasEQ(), SCIPlpiChgObj(), and setAltLPObjZero(). Referenced by checkLPBoundsClean(), and separateIISRounding().
Set the alternative system objective function to some small value
Definition at line 1482 of file cons_indicator.c. References fixAltLPVariables(), NULL, OBJEPSILON, SCIP_CALL, SCIP_OKAY, SCIP_Real, SCIPallocBufferArray, SCIPconsGetData(), SCIPfreeBufferArray, and SCIPlpiChgObj(). Referenced by enforceCuts(), SCIP_DECL_CONSCHECK(), and setAltLPObj().
Fix variable given by S to 0
Definition at line 1530 of file cons_indicator.c. References fixAltLPVariable(), NULL, SCIP_CALL, SCIP_OKAY, SCIP_Real, SCIPallocBufferArray, SCIPconsGetData(), SCIPfreeBufferArray, and SCIPlpiChgBounds(). Referenced by enforceCuts(), SCIP_DECL_CONSCHECK(), separateIISRounding(), and setAltLPObjZero().
Fix variable ind to 0
Definition at line 1589 of file cons_indicator.c. References SCIP_CALL, SCIP_OKAY, SCIP_Real, SCIPlpiChgBounds(), and unfixAltLPVariable(). Referenced by deleteAltLPConstraint(), extendToCover(), fixAltLPVariables(), and SCIP_DECL_CONSDISABLE().
unfix variable ind to 0
Definition at line 1606 of file cons_indicator.c. References SCIP_CALL, SCIP_OKAY, SCIP_Real, SCIPlpiChgBounds(), SCIPlpiInfinity(), and unfixAltLPVariables(). Referenced by fixAltLPVariable(), and SCIP_DECL_CONSENABLE().
unfix variable given by S to 0
Definition at line 1622 of file cons_indicator.c. References NULL, SCIP_CALL, SCIP_OKAY, SCIP_Real, SCIPallocBufferArray, SCIPconsGetData(), SCIPfreeBufferArray, SCIPlpiChgBounds(), SCIPlpiInfinity(), and updateFirstRow(). Referenced by enforceCuts(), SCIP_DECL_CONSCHECK(), separateIISRounding(), and unfixAltLPVariable().
update bounds in first row to the current ones
Definition at line 1681 of file cons_indicator.c. References FALSE, NULL, SCIP_CALL, SCIP_OKAY, SCIPdebugMessage, SCIPgetNVars(), SCIPgetVars(), SCIPhashmapExists(), SCIPhashmapGetImage(), SCIPisEQ(), SCIPlpiChgCoef(), SCIPvarGetLbGlobal(), SCIPvarGetLbLocal(), SCIPvarGetUbGlobal(), SCIPvarGetUbLocal(), and updateFirstRowGlobal(). Referenced by separateIISRounding(), and unfixAltLPVariables().
update bounds in first row to the global bounds
Definition at line 1745 of file cons_indicator.c. References checkIISlocal(), NULL, SCIP_CALL, SCIP_OKAY, SCIPdebugMessage, SCIPgetNVars(), SCIPgetVars(), SCIPhashmapExists(), SCIPhashmapGetImage(), SCIPlpiChgCoef(), SCIPvarGetLbGlobal(), and SCIPvarGetUbGlobal(). Referenced by enforceCuts(), SCIP_DECL_CONSCHECK(), and updateFirstRow().
Check whether IIS defined by vector corresponds to a local cut
Definition at line 1806 of file cons_indicator.c. References FALSE, NULL, scaleFirstRow(), SCIP_CALL, SCIP_OKAY, SCIPgetNVars(), SCIPgetVars(), SCIPhashmapExists(), SCIPhashmapGetImage(), SCIPisEQ(), SCIPisFeasZero(), SCIPlpiGetNCols(), SCIPvarGetLbGlobal(), SCIPvarGetLbLocal(), SCIPvarGetUbGlobal(), SCIPvarGetUbLocal(), and TRUE. Referenced by extendToCover(), and updateFirstRowGlobal().
compute scaling for first row If the coefficients in the first row are large, a right hand side of -1 might not be adequate. Here, we replace the right hand side by the sum of the coefficients divided by the number of nonzeros.
Definition at line 1895 of file cons_indicator.c. References addAltLPColumn(), NULL, REALABS, SCIP_CALL, SCIP_OKAY, SCIP_Real, SCIPallocBufferArray, SCIPfreeBufferArray, SCIPlpiChgSides(), SCIPlpiGetNCols(), SCIPlpiGetRows(), and TRUE. Referenced by checkIISlocal(), enforceCuts(), SCIP_DECL_CONSCHECK(), and separateIISRounding().
add column to alternative LP See the description at the top of the file for more information.
Definition at line 1948 of file cons_indicator.c. References addAltLPConstraint(), FALSE, initAlternativeLP(), NULL, SCIP_Bool, SCIP_CALL, SCIP_OKAY, SCIP_Real, SCIPallocBufferArray, SCIPdebugMessage, SCIPfreeBufferArray, SCIPhashmapExists(), SCIPhashmapGetImage(), SCIPhashmapInsert(), SCIPisEQ(), SCIPisFeasZero(), SCIPisInfinity(), SCIPisZero(), SCIPlpiAddCols(), SCIPlpiAddRows(), SCIPlpiGetNCols(), SCIPlpiGetNRows(), SCIPlpiInfinity(), SCIPlpiWriteLP(), SCIPvarGetLbGlobal(), SCIPvarGetName(), SCIPvarGetUbGlobal(), sign(), and TRUE. Referenced by addAltLPConstraint(), addAltLPRow(), addObjcut(), and scaleFirstRow().
add column corresponding to constraint to alternative LP See the description at the top of the file for more information.
Definition at line 2218 of file cons_indicator.c. References addAltLPColumn(), addAltLPRow(), CONSHDLR_NAME, FALSE, NULL, SCIP_CALL, SCIP_OKAY, SCIP_Real, SCIP_VARSTATUS_AGGREGATED, SCIP_VARSTATUS_MULTAGGR, SCIPallocBufferArray, SCIPconshdlrGetData(), SCIPconshdlrGetName(), SCIPconsIsActive(), SCIPdebugMessage, SCIPfreeBufferArray, SCIPgetLhsLinear(), SCIPgetNVarsLinear(), SCIPgetProbvarSum(), SCIPgetRhsLinear(), SCIPgetValsLinear(), SCIPgetVarsLinear(), SCIPinfinity(), SCIPisEQ(), SCIPisInfinity(), SCIPisZero(), SCIPvarGetStatus(), and TRUE. Referenced by addAltLPColumn(), consdataCreate(), and SCIP_DECL_CONSINITSOL().
add column corresponding to row to alternative LP See the description at the top of the file for more information.
Definition at line 2319 of file cons_indicator.c. References addAltLPColumn(), addObjcut(), CONSHDLR_NAME, FALSE, NULL, SCIP_CALL, SCIP_OKAY, SCIP_Real, SCIPallocBufferArray, SCIPcolGetVar(), SCIPconshdlrGetData(), SCIPconshdlrGetName(), SCIPfreeBufferArray, SCIPisEQ(), SCIPisInfinity(), SCIProwGetCols(), SCIProwGetConstant(), SCIProwGetLhs(), SCIProwGetNNonz(), SCIProwGetRhs(), SCIProwGetVals(), SCIProwIsLocal(), and TRUE. Referenced by addAltLPConstraint(), and SCIPaddRowIndicator().
try to add objective cut as column to alternative LP
Definition at line 2392 of file cons_indicator.c. References addAltLPColumn(), CONSHDLR_NAME, deleteAltLPConstraint(), FALSE, NULL, SCIP_CALL, SCIP_OKAY, SCIP_Real, SCIPallocBufferArray, SCIPconshdlrGetData(), SCIPconshdlrGetName(), SCIPdebugMessage, SCIPfreeBufferArray, SCIPgetVarsData(), SCIPisInfinity(), SCIPisZero(), and SCIPvarGetObj(). Referenced by addAltLPRow(), and updateObjUpperbound().
delete column corresponding to constraint in alternative LP We currently just fix the corresponding variable to 0.
Definition at line 2462 of file cons_indicator.c. References CONSHDLR_NAME, FALSE, fixAltLPVariable(), NULL, SCIP_CALL, SCIP_OKAY, SCIPconsGetData(), SCIPconsGetName(), SCIPconshdlrGetData(), SCIPconshdlrGetName(), SCIPdebugMessage, and updateObjUpperbound(). Referenced by addObjcut(), and SCIP_DECL_CONSDELETE().
Definition at line 2501 of file cons_indicator.c. References addObjcut(), checkAltLPInfeasible(), NULL, SCIP_CALL, SCIP_OKAY, SCIP_Real, SCIPcutoffbounddelta(), SCIPdebugMessage, SCIPfeasCeil(), SCIPgetUpperbound(), SCIPisEQ(), SCIPisInfinity(), SCIPisLT(), SCIPisObjIntegral(), SCIPlpiChgCoef(), SCIPlpiGetCoef(), and SCIPlpiWriteLP(). Referenced by deleteAltLPConstraint(), enforceCuts(), and separateIISRounding().
Check whether the given LP is infeasible If primal is false we assume that the problem is dual feasible, e.g., the problem was only changed by fixing bounds! This is the workhorse for all methods that have to solve the alternative LP. We try in several ways to recover from possible stability problems.
Definition at line 2577 of file cons_indicator.c. References extendToCover(), FALSE, NULL, SCIP_CALL, SCIP_CALL_PARAM, SCIP_INVALID, SCIP_LPERROR, SCIP_LPPAR_FROMSCRATCH, SCIP_LPPAR_PRESOLVING, SCIP_LPPAR_SCALING, SCIP_LPSOLQUALITY_ESTIMCONDITION, SCIP_OKAY, SCIP_Real, SCIPdebugMessage, SCIPlpiExistsPrimalRay(), SCIPlpiGetInternalStatus(), SCIPlpiGetRealSolQuality(), SCIPlpiIsOptimal(), SCIPlpiIsPrimalInfeasible(), SCIPlpiIsPrimalUnbounded(), SCIPlpiIsStable(), SCIPlpiSetIntpar(), SCIPlpiSolveDual(), SCIPlpiSolvePrimal(), SCIPwarningMessage(), and TRUE. Referenced by extendToCover(), SCIP_DECL_CONSCHECK(), and updateObjUpperbound().
Tries to extend a given set of variables to a cover. At each step we include a variable which covers a new IIS. Ties are broken according to the number of IISs a variable is contained in. The corresponding IIS inequalities are added to the LP if this not already happened.
Definition at line 2725 of file cons_indicator.c. References checkAltLPInfeasible(), checkIISlocal(), consdataCreate(), FALSE, fixAltLPVariable(), NULL, SCIP_Bool, SCIP_CALL, SCIP_CALL_PARAM, SCIP_LPPAR_FROMSCRATCH, SCIP_MAXSTRLEN, SCIP_OKAY, SCIP_PLUGINNOTFOUND, SCIP_Real, SCIPABORT, SCIPaddCons(), SCIPaddCut(), SCIPaddPoolCut(), SCIPaddVarToRow(), SCIPallocBufferArray, SCIPcacheRowExtensions(), SCIPconsGetData(), SCIPcreateConsLogicor(), SCIPcreateEmptyRowCons(), SCIPdebugMessage, SCIPerrorMessage, SCIPfindHeur(), SCIPflushRowExtensions(), SCIPfreeBufferArray, SCIPgetNBinVars(), SCIPgetNegatedVar(), SCIPgetNIntVars(), SCIPgetRowSolFeasibility(), SCIPgetSolVal(), SCIPheurPassIndicator(), SCIPinfinity(), SCIPinfoMessage(), SCIPisEfficacious(), SCIPisFeasNegative(), SCIPisFeasZero(), SCIPlpiGetNCols(), SCIPlpiGetSol(), SCIPlpiSetIntpar(), SCIPprintCons(), SCIPprintRow(), SCIPreleaseCons(), SCIPreleaseRow(), SCIPsnprintf(), sqrt(), TRUE, and varGetObjDelta(). Referenced by checkAltLPInfeasible(), enforceCuts(), and separateIISRounding().
creates and initializes consdata
Definition at line 3040 of file cons_indicator.c. References addAltLPConstraint(), createVarUbs(), FALSE, NULL, SCIP_CALL, SCIP_ERROR, SCIP_EVENTTYPE_BOUNDCHANGED, SCIP_EVENTTYPE_GBDCHANGED, SCIP_OKAY, SCIP_STAGE_INITSOLVE, SCIP_VARTYPE_BINARY, SCIPallocBlockMemory, SCIPcaptureCons(), SCIPcaptureVar(), SCIPcatchVarEvent(), SCIPdebugMessage, SCIPerrorMessage, SCIPgetStage(), SCIPgetTransformedVar(), SCIPinfoMessage(), SCIPisFeasPositive(), SCIPisTransformed(), SCIPprintCons(), SCIPvarGetLbLocal(), SCIPvarGetName(), and SCIPvarGetType(). Referenced by extendToCover(), SCIP_DECL_CONSTRANS(), SCIPcreateConsIndicator(), and SCIPcreateConsIndicatorLinCons().
create variable upper bounds for constraints
Definition at line 3158 of file cons_indicator.c. References FALSE, NULL, presolRoundIndicator(), SCIP_CALL, SCIP_OKAY, SCIP_Real, SCIPaddCons(), SCIPconsAddUpgradeLocks(), SCIPconsGetData(), SCIPconsGetName(), SCIPconsGetNUpgradeLocks(), SCIPconsIsActive(), SCIPconsIsModifiable(), SCIPcreateConsVarbound(), SCIPdebugMessage, SCIPdelCons(), SCIPinfinity(), SCIPisNegative(), SCIPreleaseCons(), SCIPsnprintf(), SCIPvarGetUbGlobal(), and TRUE. Referenced by consdataCreate(), and SCIP_DECL_CONSPRESOL().
perform one presolving round
Definition at line 3238 of file cons_indicator.c. References FALSE, NULL, propIndicator(), SCIP_Bool, SCIP_BOUNDTYPE_LOWER, SCIP_BOUNDTYPE_UPPER, SCIP_CALL, SCIP_EVENTTYPE_BOUNDCHANGED, SCIP_OKAY, SCIP_Real, SCIP_VARSTATUS_AGGREGATED, SCIPaddVarLocks(), SCIPcaptureVar(), SCIPcatchVarEvent(), SCIPconsAddUpgradeLocks(), SCIPconsGetName(), SCIPconsGetNUpgradeLocks(), SCIPconsIsActive(), SCIPconsIsModifiable(), SCIPdebugMessage, SCIPdelCons(), SCIPdropVarEvent(), SCIPfixVar(), SCIPisEQ(), SCIPisFeasPositive(), SCIPisFeasZero(), SCIPisGE(), SCIPreleaseVar(), SCIPvarGetLbGlobal(), SCIPvarGetLbLocal(), SCIPvarGetName(), SCIPvarGetNLocksDown(), SCIPvarGetNLocksUp(), SCIPvarGetProbvarBinary(), SCIPvarGetProbvarBound(), SCIPvarGetStatus(), SCIPvarGetUbGlobal(), SCIPvarGetUbLocal(), SCIPvarIsActive(), SCIPvarIsNegated(), TRUE, and varGetObjDelta(). Referenced by createVarUbs(), and SCIP_DECL_CONSPRESOL().
propagate indicator constraint
Definition at line 3541 of file cons_indicator.c. References enforceCuts(), FALSE, NULL, REALABS, SCIP_Bool, SCIP_CALL, SCIP_MAXSTRLEN, SCIP_OKAY, SCIP_Real, SCIP_STAGE_SOLVING, SCIP_VARSTATUS_MULTAGGR, SCIPaddConflictBinvar(), SCIPaddConflictLb(), SCIPaddCons(), SCIPallocBufferArray, SCIPanalyzeConflictCons(), SCIPconsAddUpgradeLocks(), SCIPconsGetName(), SCIPconsGetNUpgradeLocks(), SCIPconsIsActive(), SCIPconsIsModifiable(), SCIPcreateConsLinear(), SCIPdebugMessage, SCIPdebugPrintCons, SCIPdelConsLocal(), SCIPfreeBufferArray, SCIPgetDepth(), SCIPgetNVarsLinear(), SCIPgetRhsLinear(), SCIPgetStage(), SCIPgetValsLinear(), SCIPgetVarsLinear(), SCIPincConsAge(), SCIPinferVarLbCons(), SCIPinferVarUbCons(), SCIPinfinity(), SCIPinitConflictAnalysis(), SCIPinProbing(), SCIPinRepropagation(), SCIPisConflictAnalysisApplicable(), SCIPisEQ(), SCIPisFeasGE(), SCIPisFeasPositive(), SCIPisFeasZero(), SCIPisInfinity(), SCIPisIntegral(), SCIPisPositive(), SCIPisZero(), SCIPreleaseCons(), SCIPresetConsAge(), SCIPsnprintf(), SCIPvarGetLbLocal(), SCIPvarGetName(), SCIPvarGetNLocksDown(), SCIPvarGetNLocksUp(), SCIPvarGetStatus(), SCIPvarGetUbLocal(), SCIPvarIsIntegral(), TRUE, and varGetObjDelta(). Referenced by enforceIndicators(), presolRoundIndicator(), and SCIP_DECL_CONSPROP().
enforcement method that produces cuts if possible This is a variant of the enforcement method that generates cuts/constraints via the alternative LP, if possible.
Definition at line 3833 of file cons_indicator.c. References checkLPBoundsClean(), enforceIndicators(), extendToCover(), FALSE, fixAltLPVariables(), NULL, scaleFirstRow(), SCIP_Bool, SCIP_CALL, SCIP_LPERROR, SCIP_OKAY, SCIP_Real, SCIPallocBufferArray, SCIPconsGetData(), SCIPconshdlrGetData(), SCIPdebugMessage, SCIPfreeBufferArray, SCIPgetSolVal(), SCIPisFeasIntegral(), SCIPisFeasZero(), setAltLPObjZero(), TRUE, unfixAltLPVariables(), updateFirstRowGlobal(), updateObjUpperbound(), and varGetObjDelta(). Referenced by enforceIndicators(), and propIndicator().
enforcement method We check whether the current solution is feasible, i.e., if binvar = 1 implies that slackvar = 0. If not, we branch as follows: In one branch we fix binvar = 1 and slackvar = 0. In the other branch we fix binvar = 0 and leave slackvar unchanged.
Definition at line 3954 of file cons_indicator.c. References branchCons(), enforceCuts(), FALSE, NULL, propIndicator(), SCIP_Bool, SCIP_BRANCHED, SCIP_CALL, SCIP_CONSADDED, SCIP_CUTOFF, SCIP_FEASIBLE, SCIP_INFEASIBLE, SCIP_OKAY, SCIP_Real, SCIP_REDUCEDDOM, SCIP_SEPARATED, SCIP_VARSTATUS_MULTAGGR, SCIPallowDualReds(), SCIPcalcChildEstimate(), SCIPchgVarLbNode(), SCIPchgVarUbNode(), SCIPconsGetData(), SCIPconsGetName(), SCIPconshdlrGetData(), SCIPconshdlrGetName(), SCIPcreateChild(), SCIPdebugMessage, SCIPgetSolVal(), SCIPinfoMessage(), SCIPisFeasNegative(), SCIPisFeasZero(), SCIPprintCons(), SCIPresetConsAge(), SCIPvarGetLbLocal(), SCIPvarGetStatus(), SCIPvarGetUbLocal(), SCIPwriteTransProblem(), separateIISRounding(), and TRUE. Referenced by enforceCuts(), SCIP_DECL_CONSENFOLP(), and SCIP_DECL_CONSENFOPS().
separate IIS-cuts via rounding
Definition at line 4142 of file cons_indicator.c. References checkLPBoundsClean(), extendToCover(), FALSE, fixAltLPVariables(), NULL, scaleFirstRow(), SCIP_Bool, SCIP_CALL, SCIP_OKAY, SCIP_Real, SCIPallocBufferArray, SCIPconsGetData(), SCIPconshdlrGetData(), SCIPdebugMessage, SCIPfreeBufferArray, SCIPgetVarSol(), SCIPhashmapExists(), SCIPisFeasEQ(), SCIPisFeasLT(), SCIPisFeasZero(), SCIPvarGetNegatedVar(), separateIndicators(), setAltLPObj(), TRUE, unfixAltLPVariables(), updateFirstRow(), updateObjUpperbound(), and varGetObjDelta(). Referenced by enforceIndicators(), and separateIndicators().
separation method We first check whether coupling inequalities can be separated (if required). If not enough of these could be generated, we check whether IIS inequalities can be separated.
Definition at line 4338 of file cons_indicator.c. References FALSE, initConshdlrData(), NULL, SCIP_Bool, SCIP_CALL, SCIP_CONSADDED, SCIP_CUTOFF, SCIP_DIDNOTFIND, SCIP_DIDNOTRUN, SCIP_OKAY, SCIP_Real, SCIP_SEPARATED, SCIPaddCut(), SCIPaddVarToRow(), SCIPcacheRowExtensions(), SCIPconsGetData(), SCIPconsGetHdlr(), SCIPconsGetName(), SCIPconshdlrGetData(), SCIPcreateEmptyRowCons(), SCIPdebugMessage, SCIPflushRowExtensions(), SCIPgetDepth(), SCIPgetSolVal(), SCIPinfinity(), SCIPisEfficacious(), SCIPisFeasNegative(), SCIPprintRow(), SCIPreleaseRow(), SCIPresetConsAge(), SCIPsnprintf(), SCIPvarGetUbGlobal(), SCIPvarGetUbLocal(), SEPAALTTHRESHOLD, separateIISRounding(), and TRUE. Referenced by SCIP_DECL_CONSSEPALP(), SCIP_DECL_CONSSEPASOL(), and separateIISRounding().
initializes the constraint handler data
Definition at line 4481 of file cons_indicator.c. References FALSE, MAXROUNDINGROUNDS, NULL, SCIP_DECL_LINCONSUPGD(), SCIPinfinity(), and TRUE. Referenced by SCIP_DECL_CONSINIT(), SCIPincludeConshdlrIndicator(), and separateIndicators().
tries to upgrade a linear constraint into an indicator constraint For some linear constraint of the form with , we can upgrade it to an indicator constraint if for the residual value , we have : in this case, the constraint is always satisfied if . Similarly, for a linear constraint in the form with , we can upgrade it to an indicator constraint if for the residual value , we have . Definition at line 4531 of file cons_indicator.c. References FALSE, NULL, REALABS, SCIP_Bool, SCIP_CALL, SCIP_DECL_CONSHDLRCOPY(), SCIP_OKAY, SCIP_Real, SCIPallocBufferArray, SCIPconsGetHdlr(), SCIPconsGetName(), SCIPconshdlrGetData(), SCIPconshdlrGetName(), SCIPconsIsChecked(), SCIPconsIsDynamic(), SCIPconsIsEnforced(), SCIPconsIsInitial(), SCIPconsIsLocal(), SCIPconsIsModifiable(), SCIPconsIsPropagated(), SCIPconsIsRemovable(), SCIPconsIsSeparated(), SCIPconsIsStickingAtNode(), SCIPcreateConsIndicator(), SCIPdebugMessage, SCIPfindConshdlr(), SCIPfreeBufferArray, SCIPgetLinearConsIndicator(), SCIPgetNegatedVar(), SCIPinfinity(), SCIPinfoMessage(), SCIPisEQ(), SCIPisGE(), SCIPisInfinity(), SCIPisLE(), SCIPisZero(), SCIPprintCons(), SCIPvarGetLbGlobal(), SCIPvarGetUbGlobal(), SCIPvarIsBinary(), and TRUE. Referenced by initConshdlrData().
copy method for constraint handler plugins (called when SCIP copies plugins) Definition at line 4757 of file cons_indicator.c. References CONSHDLR_NAME, NULL, SCIP_CALL, SCIP_DECL_CONSINIT(), SCIP_OKAY, SCIPconshdlrGetName(), SCIPincludeConshdlrIndicator(), and TRUE. Referenced by SCIP_DECL_LINCONSUPGD().
initialization method of constraint handler (called after problem was transformed) Definition at line 4775 of file cons_indicator.c. References CONSHDLR_NAME, initConshdlrData(), NULL, SCIP_DECL_CONSEXIT(), SCIP_OKAY, SCIPconshdlrGetData(), SCIPconshdlrGetName(), and SCIPfindHeur(). Referenced by SCIP_DECL_CONSHDLRCOPY().
deinitialization method of constraint handler (called before transformed problem is freed) Definition at line 4800 of file cons_indicator.c. References CONSHDLR_NAME, NULL, SCIP_DECL_CONSFREE(), SCIP_OKAY, SCIPconshdlrGetData(), SCIPconshdlrGetName(), SCIPfreeBlockMemoryArrayNull, and SCIPhashmapFree(). Referenced by SCIP_DECL_CONSINIT().
destructor of constraint handler to free constraint handler data (called when SCIP is exiting) Definition at line 4824 of file cons_indicator.c. References CONSHDLR_NAME, NULL, SCIP_DECL_CONSINITSOL(), SCIP_OKAY, SCIPconshdlrGetData(), SCIPconshdlrGetName(), SCIPfreeBlockMemoryArrayNull, and SCIPfreeMemory. Referenced by SCIP_DECL_CONSEXIT().
solving process initialization method of constraint handler (called when branch and bound process is about to begin) Definition at line 4857 of file cons_indicator.c. References addAltLPConstraint(), SCIP_QuadElement::coef, CONSHDLR_NAME, FALSE, SCIP_QuadElement::idx1, SCIP_QuadElement::idx2, NULL, REALABS, SCIP_Bool, SCIP_CALL, SCIP_DECL_CONSEXITSOL(), SCIP_ERROR, SCIP_EVENTTYPE_BESTSOLFOUND, SCIP_OKAY, SCIP_Real, SCIP_REAL_MAX, SCIP_STATUS_INFEASIBLE, SCIP_STATUS_INFORUNBD, SCIP_STATUS_OPTIMAL, SCIP_STATUS_UNBOUNDED, SCIP_VERBLEVEL_MINIMAL, SCIPaddNlRow(), SCIPallocBufferArray, SCIPblkmem(), SCIPcalcHashtableSize(), SCIPcatchEvent(), SCIPconsGetData(), SCIPconsGetHdlr(), SCIPconsGetName(), SCIPconshdlrGetData(), SCIPconshdlrGetNActiveConss(), SCIPconshdlrGetName(), SCIPconshdlrGetSepaFreq(), SCIPconsIsActive(), SCIPconsIsChecked(), SCIPconsIsTransformed(), SCIPcreateNlRow(), SCIPdebugMessage, SCIPdisableCons(), SCIPerrorMessage, SCIPfindConshdlr(), SCIPfreeBufferArray, SCIPgetCharParam(), SCIPgetConss(), SCIPgetNConss(), SCIPgetNVars(), SCIPgetStatus(), SCIPgetTransformedCons(), SCIPgetVars(), SCIPhashmapCreate(), SCIPhashmapExists(), SCIPhashmapInsert(), SCIPinfoMessage(), SCIPisGE(), SCIPisIntegral(), SCIPisNLPConstructed(), SCIPisZero(), SCIPprintCons(), SCIPreleaseNlRow(), SCIPsetIntParam(), SCIPvarGetNegatedVar(), SCIPvarGetObj(), SCIPvarGetProbindex(), SCIPvarIsNegated(), SCIPverbMessage(), TRUE, and varGetObjDelta(). Referenced by SCIP_DECL_CONSFREE().
solving process deinitialization method of constraint handler (called before branch and bound process data is freed) Definition at line 5172 of file cons_indicator.c. References CONSHDLR_NAME, NULL, SCIP_CALL, SCIP_DECL_CONSDELETE(), SCIP_OKAY, SCIPconsGetData(), SCIPconshdlrGetData(), SCIPconshdlrGetName(), SCIPgetMessagehdlr(), SCIPhashmapFree(), SCIPhashmapPrintStatistics(), SCIPinfoMessage(), and SCIPlpiFree(). Referenced by SCIP_DECL_CONSINITSOL().
frees specific constraint data Definition at line 5244 of file cons_indicator.c. References CONSHDLR_NAME, deleteAltLPConstraint(), NULL, SCIP_CALL, SCIP_DECL_CONSTRANS(), SCIP_EVENTTYPE_BOUNDCHANGED, SCIP_EVENTTYPE_GBDCHANGED, SCIP_OKAY, SCIP_STAGE_SOLVED, SCIP_STAGE_TRANSFORMING, SCIPconsGetName(), SCIPconshdlrGetData(), SCIPconshdlrGetName(), SCIPconsIsTransformed(), SCIPdebugMessage, SCIPdropVarEvent(), SCIPfreeBlockMemory, SCIPgetStage(), SCIPreleaseCons(), and SCIPreleaseVar(). Referenced by SCIP_DECL_CONSEXITSOL().
transforms constraint data into data belonging to the transformed problem Definition at line 5308 of file cons_indicator.c. References consdataCreate(), CONSHDLR_NAME, NULL, SCIP_CALL, SCIP_DECL_CONSINITPRE(), SCIP_INVALIDDATA, SCIP_MAXSTRLEN, SCIP_OKAY, SCIPblkmem(), SCIPcalcHashtableSize(), SCIPconsGetData(), SCIPconsGetName(), SCIPconshdlrGetData(), SCIPconshdlrGetName(), SCIPconsIsChecked(), SCIPconsIsDynamic(), SCIPconsIsEnforced(), SCIPconsIsInitial(), SCIPconsIsLocal(), SCIPconsIsModifiable(), SCIPconsIsPropagated(), SCIPconsIsRemovable(), SCIPconsIsSeparated(), SCIPconsIsStickingAtNode(), SCIPcreateCons(), SCIPdebugMessage, SCIPerrorMessage, SCIPgetNOrigVars(), SCIPhashmapCreate(), SCIPhashmapExists(), SCIPhashmapInsert(), and SCIPsnprintf(). Referenced by SCIP_DECL_CONSDELETE().
presolving initialization method of constraint handler (called when presolving is about to begin) Definition at line 5388 of file cons_indicator.c. References CONSHDLR_NAME, FALSE, NULL, SCIP_CALL, SCIP_DECL_CONSPRESOL(), SCIP_OKAY, SCIP_STATUS_UNKNOWN, SCIPcaptureCons(), SCIPconsGetData(), SCIPconsGetHdlr(), SCIPconshdlrGetData(), SCIPconshdlrGetName(), SCIPconsIsTransformed(), SCIPdebugMessage, SCIPgetStatus(), SCIPgetTransformedCons(), and SCIPreleaseCons(). Referenced by SCIP_DECL_CONSTRANS().
presolving method of constraint handler For an indicator constraint with binary variable and slack variable the coupling inequality (equivalently: ) is inserted, where is an upper bound on the value of . If is too large the inequality is not inserted. Depending on the parameter addcouplingcons we add a variable upper bound or a row (in consInitlpIndicator()).
Definition at line 5454 of file cons_indicator.c. References CONSHDLR_NAME, createVarUbs(), FALSE, NULL, presolRoundIndicator(), SCIP_Bool, SCIP_BOUNDTYPE_UPPER, SCIP_CALL, SCIP_CUTOFF, SCIP_DECL_CONSINITLP(), SCIP_DIDNOTFIND, SCIP_DIDNOTRUN, SCIP_OKAY, SCIP_Real, SCIP_SUCCESS, SCIP_VARTYPE_CONTINUOUS, SCIP_VARTYPE_IMPLINT, SCIPaddVarImplication(), SCIPallowDualReds(), SCIPchgVarType(), SCIPconsGetData(), SCIPconsGetHdlr(), SCIPconsGetName(), SCIPconshdlrGetData(), SCIPconshdlrGetName(), SCIPconsIsModifiable(), SCIPconsIsTransformed(), SCIPdebugMessage, SCIPgetNVarsLinear(), SCIPgetValsLinear(), SCIPgetVarsLinear(), SCIPisInfinity(), SCIPisIntegral(), SCIPvarGetLbGlobal(), SCIPvarGetName(), SCIPvarGetType(), SCIPvarGetUbGlobal(), SCIPvarIsIntegral(), and TRUE. Referenced by SCIP_DECL_CONSINITPRE().
LP initialization method of constraint handler (called before the initial LP relaxation at a node is solved) For an indicator constraint with binary variable and slack variable the coupling inequality (equivalently: ) is inserted, where is an upper bound on the value of . If is too large the inequality is not inserted. Definition at line 5637 of file cons_indicator.c. References CONSHDLR_NAME, FALSE, NULL, SCIP_Bool, SCIP_CALL, SCIP_DECL_CONSSEPALP(), SCIP_OKAY, SCIP_Real, SCIPaddCons(), SCIPaddCut(), SCIPaddPoolCut(), SCIPaddVarToRow(), SCIPcacheRowExtensions(), SCIPconsGetData(), SCIPconsGetName(), SCIPconshdlrGetData(), SCIPconshdlrGetName(), SCIPcreateConsVarbound(), SCIPcreateEmptyRowCons(), SCIPdebugMessage, SCIPflushRowExtensions(), SCIPinfinity(), SCIPisNegative(), SCIPprintRow(), SCIPreleaseCons(), SCIPreleaseRow(), SCIPsnprintf(), SCIPvarGetUbGlobal(), and TRUE. Referenced by SCIP_DECL_CONSPRESOL().
separation method of constraint handler for LP solutions Definition at line 5735 of file cons_indicator.c. References CONSHDLR_NAME, NULL, SCIP_CALL, SCIP_DECL_CONSSEPASOL(), SCIP_OKAY, SCIPconshdlrGetName(), and separateIndicators(). Referenced by SCIP_DECL_CONSINITLP().
separation method of constraint handler for arbitrary primal solutions Definition at line 5752 of file cons_indicator.c. References CONSHDLR_NAME, NULL, SCIP_CALL, SCIP_DECL_CONSENFOLP(), SCIP_OKAY, SCIPconshdlrGetName(), and separateIndicators(). Referenced by SCIP_DECL_CONSSEPALP().
constraint enforcing method of constraint handler for LP solutions Definition at line 5769 of file cons_indicator.c. References CONSHDLR_NAME, enforceIndicators(), NULL, SCIP_CALL, SCIP_DECL_CONSENFOPS(), SCIP_FEASIBLE, SCIP_OKAY, SCIPconshdlrGetData(), and SCIPconshdlrGetName(). Referenced by SCIP_DECL_CONSSEPASOL().
constraint enforcing method of constraint handler for pseudo solutions Definition at line 5797 of file cons_indicator.c. References CONSHDLR_NAME, enforceIndicators(), NULL, SCIP_CALL, SCIP_DECL_CONSCHECK(), SCIP_DIDNOTRUN, SCIP_FEASIBLE, SCIP_OKAY, SCIPconshdlrGetName(), and TRUE. Referenced by SCIP_DECL_CONSENFOLP().
feasibility check method of constraint handler for integral solutions Definition at line 5825 of file cons_indicator.c. References checkAltLPInfeasible(), checkLPBoundsClean(), CONSHDLR_NAME, FALSE, fixAltLPVariables(), NULL, scaleFirstRow(), SCIP_Bool, SCIP_CALL, SCIP_CALL_PARAM, SCIP_DECL_CONSPROP(), SCIP_FEASIBLE, SCIP_INFEASIBLE, SCIP_LPERROR, SCIP_LPPAR_FROMSCRATCH, SCIP_OKAY, SCIP_STAGE_PROBLEM, SCIP_STAGE_SOLVED, SCIPallocBufferArray, SCIPconsGetData(), SCIPconshdlrGetData(), SCIPconshdlrGetName(), SCIPcreateSolCopy(), SCIPdebugMessage, SCIPfreeBufferArray, SCIPfreeSol(), SCIPgetSolVal(), SCIPgetStage(), SCIPheurPassSolTrySol(), SCIPinfoMessage(), SCIPisFeasIntegral(), SCIPisFeasZero(), SCIPlpiSetIntpar(), SCIPmakeIndicatorFeasible(), SCIPprintCons(), SCIPresetConsAge(), SCIPvarGetName(), setAltLPObjZero(), TRUE, unfixAltLPVariables(), and updateFirstRowGlobal(). Referenced by SCIP_DECL_CONSENFOPS().
domain propagation method of constraint handler Definition at line 6017 of file cons_indicator.c. References CONSHDLR_NAME, NULL, propIndicator(), SCIP_Bool, SCIP_CALL, SCIP_CUTOFF, SCIP_DECL_CONSRESPROP(), SCIP_DIDNOTFIND, SCIP_DIDNOTRUN, SCIP_OKAY, SCIP_REDUCEDDOM, SCIPallowDualReds(), SCIPconsGetData(), SCIPconsGetName(), SCIPconshdlrGetData(), SCIPconshdlrGetName(), SCIPdebugMessage, and SCIPisTransformed(). Referenced by SCIP_DECL_CONSCHECK().
propagation conflict resolving method of constraint handler We check which bound changes were the reason for infeasibility. We use that inferinfo is 0 if the binary variable has bounds that fix it to be nonzero (these bounds are the reason). Likewise inferinfo is 1 if the slack variable has bounds that fix it to be nonzero. Definition at line 6084 of file cons_indicator.c. References CONSHDLR_NAME, FALSE, NULL, SCIP_CALL, SCIP_DECL_CONSLOCK(), SCIP_DIDNOTFIND, SCIP_OKAY, SCIP_SUCCESS, SCIPaddConflictLb(), SCIPaddConflictUb(), SCIPallowDualReds(), SCIPallowObjProp(), SCIPconsGetData(), SCIPconsGetName(), SCIPconshdlrGetData(), SCIPconshdlrGetName(), SCIPdebugMessage, SCIPisFeasZero(), SCIPisPositive(), SCIPvarGetLbAtIndex(), and SCIPvarGetUbAtIndex(). Referenced by SCIP_DECL_CONSPROP().
variable rounding lock method of constraint handler The up-rounding of the binary and slack variable may violate the constraint. If the linear constraint is not active, we lock all variables in the depending constraint - otherwise they will be fixed by dual presolving methods. Definition at line 6140 of file cons_indicator.c. References CONSHDLR_NAME, NULL, REALABS, SCIP_Bool, SCIP_CALL, SCIP_DECL_CONSPRINT(), SCIP_OKAY, SCIP_Real, SCIPaddVarLocks(), SCIPconsGetData(), SCIPconsGetName(), SCIPconshdlrGetName(), SCIPdebugMessage, SCIPgetLhsLinear(), SCIPgetNVarsLinear(), SCIPgetRhsLinear(), SCIPgetValsLinear(), SCIPgetVarsLinear(), SCIPisInfinity(), SCIPisPositive(), and SCIPisZero(). Referenced by SCIP_DECL_CONSRESPROP().
constraint display method of constraint handler Definition at line 6215 of file cons_indicator.c. References CONSHDLR_NAME, NULL, SCIP_DECL_CONSCOPY(), SCIP_OKAY, SCIP_VARSTATUS_NEGATED, SCIPconsGetData(), SCIPconshdlrGetName(), SCIPinfoMessage(), SCIPvarGetName(), SCIPvarGetNegatedVar(), and SCIPvarGetStatus(). Referenced by SCIP_DECL_CONSLOCK().
constraint copying method of constraint handler Definition at line 6249 of file cons_indicator.c. References CONSHDLR_NAME, FALSE, NULL, SCIP_CALL, SCIP_DECL_CONSPARSE(), SCIP_OKAY, SCIP_VERBLEVEL_MINIMAL, SCIPaddCons(), SCIPcaptureCons(), SCIPconsGetData(), SCIPconsGetHdlr(), SCIPconsGetName(), SCIPconshdlrGetName(), SCIPconsIsChecked(), SCIPconsIsDeleted(), SCIPconsIsDynamic(), SCIPconsIsEnforced(), SCIPconsIsInitial(), SCIPconsIsLocal(), SCIPconsIsModifiable(), SCIPconsIsPropagated(), SCIPconsIsRemovable(), SCIPconsIsSeparated(), SCIPconsIsStickingAtNode(), SCIPconsIsTransformed(), SCIPcreateConsIndicatorLinCons(), SCIPcreateConsLinear(), SCIPdebugMessage, SCIPfindConshdlr(), SCIPgetConsCopy(), SCIPgetTransformedCons(), SCIPgetVarCopy(), SCIPinfinity(), SCIPisTransformed(), SCIPreleaseCons(), SCIPverbMessage(), SCIPwarningMessage(), and TRUE. Referenced by SCIP_DECL_CONSPRINT().
constraint parsing method of constraint handler Definition at line 6375 of file cons_indicator.c. References FALSE, NULL, SCIP_CALL, SCIP_DECL_CONSENABLE(), SCIP_OKAY, SCIP_VERBLEVEL_MINIMAL, SCIPcreateConsIndicatorLinCons(), SCIPfindCons(), SCIPfindVar(), SCIPgetLhsLinear(), SCIPgetNegatedVar(), SCIPgetRhsLinear(), SCIPisInfinity(), SCIPsnprintf(), SCIPverbMessage(), and TRUE. Referenced by SCIP_DECL_CONSCOPY().
constraint enabling notification method of constraint handler Definition at line 6472 of file cons_indicator.c. References CONSHDLR_NAME, NULL, SCIP_CALL, SCIP_DECL_CONSDISABLE(), SCIP_OKAY, SCIPconsGetData(), SCIPconsGetName(), SCIPconshdlrGetData(), SCIPconshdlrGetName(), SCIPdebugMessage, and unfixAltLPVariable(). Referenced by SCIP_DECL_CONSPARSE().
constraint disabling notification method of constraint handler Definition at line 6508 of file cons_indicator.c. References CONSHDLR_NAME, fixAltLPVariable(), NULL, SCIP_CALL, SCIP_DECL_CONSGETVARS(), SCIP_OKAY, SCIPconsGetData(), SCIPconsGetName(), SCIPconshdlrGetData(), SCIPconshdlrGetName(), and SCIPdebugMessage. Referenced by SCIP_DECL_CONSENABLE().
constraint method of constraint handler which returns the variables (if possible) Definition at line 6544 of file cons_indicator.c. References NULL, SCIP_CALL, SCIP_DECL_CONSGETNVARS(), SCIP_INVALIDDATA, SCIP_OKAY, SCIPconsGetData(), SCIPconsIsDeleted(), SCIPgetConsVars(), and TRUE. Referenced by SCIP_DECL_CONSDISABLE().
constraint method of constraint handler which returns the number of variables (if possible) Definition at line 6590 of file cons_indicator.c. References NULL, SCIP_CALL, SCIP_DECL_CONSGETDIVEBDCHGS(), SCIP_OKAY, SCIPconsGetData(), SCIPconsIsDeleted(), SCIPgetConsNVars(), and TRUE. Referenced by SCIP_DECL_CONSGETVARS().
constraint handler method to suggest dive bound changes during the generic diving algorithm Definition at line 6633 of file cons_indicator.c. References CONSHDLR_NAME, FALSE, NULL, SCIP_Bool, SCIP_BRANCHDIR_DOWNWARDS, SCIP_BRANCHDIR_UPWARDS, SCIP_CALL, SCIP_DIVETYPE_INTEGRALITY, SCIP_OKAY, SCIP_Real, SCIP_REAL_MIN, SCIPaddDiveBoundChange(), SCIPconshdlrGetConss(), SCIPconshdlrGetName(), SCIPconshdlrGetNConss(), SCIPgetBinaryVarIndicator(), SCIPgetDivesetScore(), SCIPgetSolVal(), SCIPincludeConshdlrIndicator(), SCIPisFeasIntegral(), SCIPisViolatedIndicator(), SCIPvarGetLbLocal(), SCIPvarGetUbLocal(), and TRUE. Referenced by SCIP_DECL_CONSGETNVARS().
creates the handler for indicator constraints and includes it in SCIP
Definition at line 6702 of file cons_indicator.c. References CONFLICTHDLR_DESC, CONFLICTHDLR_NAME, CONFLICTHDLR_PRIORITY, CONSHDLR_CHECKPRIORITY, CONSHDLR_DELAYPROP, CONSHDLR_DELAYSEPA, CONSHDLR_DESC, CONSHDLR_EAGERFREQ, CONSHDLR_ENFOPRIORITY, CONSHDLR_MAXPREROUNDS, CONSHDLR_NAME, CONSHDLR_NEEDSCONS, CONSHDLR_PRESOLTIMING, CONSHDLR_PROP_TIMING, CONSHDLR_PROPFREQ, CONSHDLR_SEPAFREQ, CONSHDLR_SEPAPRIORITY, DEFAULT_ADDCOUPLING, DEFAULT_ADDCOUPLINGCONS, DEFAULT_ADDOPPOSITE, DEFAULT_BRANCHINDICATORS, DEFAULT_CONFLICTSUPGRADE, DEFAULT_DUALREDUCTIONS, DEFAULT_ENFORCECUTS, DEFAULT_FORCERESTART, DEFAULT_GENERATEBILINEAR, DEFAULT_GENLOGICOR, DEFAULT_MAXCONDITIONALTLP, DEFAULT_MAXCOUPLINGVALUE, DEFAULT_MAXSEPACUTS, DEFAULT_MAXSEPACUTSROOT, DEFAULT_NOLINCONSCONT, DEFAULT_REMOVEINDICATORS, DEFAULT_RESTARTFRAC, DEFAULT_SCALESLACKVAR, DEFAULT_SEPAALTERNATIVELP, DEFAULT_SEPACOUPLINGCUTS, DEFAULT_SEPACOUPLINGLOCAL, DEFAULT_SEPACOUPLINGVALUE, DEFAULT_TRYSOLFROMCOVER, DEFAULT_TRYSOLUTIONS, DEFAULT_UPDATEBOUNDS, DEFAULT_UPGRADELINEAR, DEFAULT_USEOBJECTIVECUT, DEFAULT_USEOTHERCONSS, EVENTHDLR_BOUND_DESC, EVENTHDLR_BOUND_NAME, EVENTHDLR_RESTART_DESC, EVENTHDLR_RESTART_NAME, FALSE, initConshdlrData(), LINCONSUPGD_PRIORITY, NULL, SCIP_CALL, SCIP_OKAY, SCIP_REAL_MAX, SCIPaddBoolParam(), SCIPaddIntParam(), SCIPaddRealParam(), SCIPallocMemory, SCIPcreateConsIndicator(), SCIPfindConshdlr(), SCIPincludeConflicthdlrBasic(), SCIPincludeConshdlrBasic(), SCIPincludeEventhdlrBasic(), SCIPincludeLinconsUpgrade(), SCIPsetConflicthdlrFree(), SCIPsetConshdlrCopy(), SCIPsetConshdlrDelete(), SCIPsetConshdlrDisable(), SCIPsetConshdlrEnable(), SCIPsetConshdlrExit(), SCIPsetConshdlrExitsol(), SCIPsetConshdlrFree(), SCIPsetConshdlrGetDiveBdChgs(), SCIPsetConshdlrGetNVars(), SCIPsetConshdlrGetVars(), SCIPsetConshdlrInit(), SCIPsetConshdlrInitlp(), SCIPsetConshdlrInitpre(), SCIPsetConshdlrInitsol(), SCIPsetConshdlrParse(), SCIPsetConshdlrPresol(), SCIPsetConshdlrPrint(), SCIPsetConshdlrProp(), SCIPsetConshdlrResprop(), SCIPsetConshdlrSepa(), SCIPsetConshdlrTrans(), and TRUE. Referenced by SCIP_DECL_CONSGETDIVEBDCHGS(), SCIP_DECL_CONSHDLRCOPY(), and SCIPincludeDefaultPlugins().
creates and captures an indicator constraint
Definition at line 6948 of file cons_indicator.c. References consdataCreate(), CONSHDLR_NAME, FALSE, NULL, REALABS, SCIP_Bool, SCIP_CALL, SCIP_INVALIDDATA, SCIP_MAXSTRLEN, SCIP_OKAY, SCIP_PLUGINNOTFOUND, SCIP_Real, SCIP_VARTYPE_CONTINUOUS, SCIP_VARTYPE_IMPLINT, SCIPaddCoefLinear(), SCIPaddCons(), SCIPaddVar(), SCIPceil(), SCIPconsAddUpgradeLocks(), SCIPconsGetNUpgradeLocks(), SCIPconshdlrGetData(), SCIPcreateCons(), SCIPcreateConsBasicIndicator(), SCIPcreateConsLinear(), SCIPcreateConsQuadratic(), SCIPcreateVar(), SCIPerrorMessage, SCIPfindConshdlr(), SCIPinfinity(), SCIPisIntegral(), SCIPisZero(), SCIPmarkDoNotMultaggrVar(), SCIPreleaseCons(), SCIPreleaseVar(), SCIPsnprintf(), SCIPvarGetType(), SCIPvarIsIntegral(), and TRUE. Referenced by createIndicatorConstraint(), readIndicators(), SCIP_DECL_CONSINITPRE(), SCIP_DECL_LINCONSUPGD(), SCIPcreateConsBasicIndicator(), SCIPincludeConshdlrIndicator(), and upgradeIndicatorSuperindicator().
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 SCIPsetConsFLAGNAME-methods in scip.h
Definition at line 7142 of file cons_indicator.c. References FALSE, NULL, SCIP_CALL, SCIP_OKAY, SCIPcreateConsIndicator(), SCIPcreateConsIndicatorLinCons(), and TRUE. Referenced by SCIPcreateConsIndicator().
creates and captures an indicator constraint with given linear constraint and slack variable
Definition at line 7171 of file cons_indicator.c. References consdataCreate(), CONSHDLR_NAME, FALSE, NULL, SCIP_Bool, SCIP_CALL, SCIP_INVALIDDATA, SCIP_OKAY, SCIP_PLUGINNOTFOUND, SCIP_Real, SCIP_VARTYPE_CONTINUOUS, SCIP_VARTYPE_IMPLINT, SCIPconsAddUpgradeLocks(), SCIPconsGetHdlr(), SCIPconsGetNUpgradeLocks(), SCIPconshdlrGetData(), SCIPconshdlrGetName(), SCIPcreateCons(), SCIPcreateConsBasicIndicatorLinCons(), SCIPcreateConsQuadratic(), SCIPerrorMessage, SCIPfindConshdlr(), SCIPgetNVarsLinear(), SCIPgetVarsLinear(), SCIPmarkDoNotMultaggrVar(), SCIPvarGetType(), and TRUE. Referenced by createSubSCIP(), readIndicators(), SCIP_DECL_CONSCOPY(), SCIP_DECL_CONSPARSE(), SCIPcreateConsBasicIndicator(), and SCIPcreateConsBasicIndicatorLinCons().
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 SCIPsetConsFLAGNAME-methods in scip.h
Definition at line 7309 of file cons_indicator.c. References FALSE, NULL, SCIP_CALL, SCIP_OKAY, SCIPaddVarIndicator(), SCIPcreateConsIndicatorLinCons(), and TRUE. Referenced by SCIPcreateConsIndicatorLinCons().
adds variable to the inequality of the indicator constraint
Definition at line 7328 of file cons_indicator.c. References CONSHDLR_NAME, NULL, SCIP_Bool, SCIP_CALL, SCIP_OKAY, SCIP_VARTYPE_CONTINUOUS, SCIPaddCoefLinear(), SCIPchgVarType(), SCIPconsGetData(), SCIPconsGetHdlr(), SCIPconshdlrGetName(), SCIPgetLinearConsIndicator(), SCIPisIntegral(), SCIPvarGetType(), and SCIPvarIsIntegral(). Referenced by SCIPcreateConsBasicIndicatorLinCons(). gets the linear constraint corresponding to the indicator constraint (may be NULL)
Definition at line 7359 of file cons_indicator.c. References CONSHDLR_NAME, NULL, SCIPconsGetData(), SCIPconsGetHdlr(), SCIPconshdlrGetName(), and SCIPsetLinearConsIndicator(). Referenced by computeRanks(), createSubSCIP(), SCIP_DECL_LINCONSUPGD(), SCIP_DECL_READERWRITE(), SCIPaddVarIndicator(), SCIPwriteLp(), and writeOpbConstraints().
sets the linear constraint corresponding to the indicator constraint (may be NULL)
Definition at line 7376 of file cons_indicator.c. References CONSHDLR_NAME, FALSE, NULL, SCIP_Bool, SCIP_CALL, SCIP_INVALIDCALL, SCIP_OKAY, SCIP_STAGE_PROBLEM, SCIP_VARTYPE_CONTINUOUS, SCIP_VARTYPE_IMPLINT, SCIPcaptureCons(), SCIPconsGetData(), SCIPconsGetHdlr(), SCIPconshdlrGetData(), SCIPconshdlrGetName(), SCIPdelCons(), SCIPerrorMessage, SCIPgetBinaryVarIndicator(), SCIPgetNVarsLinear(), SCIPgetStage(), SCIPgetVarsLinear(), SCIPreleaseCons(), SCIPvarGetType(), and TRUE. Referenced by SCIPgetLinearConsIndicator(). gets binary variable corresponding to indicator constraint
Definition at line 7447 of file cons_indicator.c. References CONSHDLR_NAME, NULL, SCIPconsGetData(), SCIPconsGetHdlr(), SCIPconshdlrGetName(), and SCIPsetBinaryVarIndicator(). Referenced by computeRanks(), createCoveringProblem(), createSubSCIP(), SCIP_DECL_CONFLICTEXEC(), SCIP_DECL_CONSGETDIVEBDCHGS(), SCIP_DECL_HEUREXEC(), SCIP_DECL_READERWRITE(), SCIPsetLinearConsIndicator(), SCIPwriteGms(), SCIPwriteLp(), tryOneOpt(), trySolCandidate(), and writeOpbConstraints().
sets binary indicator variable for indicator constraint
Definition at line 7464 of file cons_indicator.c. References CONSHDLR_NAME, NULL, SCIP_CALL, SCIP_ERROR, SCIP_EVENTTYPE_BOUNDCHANGED, SCIP_EVENTTYPE_GBDCHANGED, SCIP_INVALIDCALL, SCIP_OKAY, SCIP_VARTYPE_BINARY, SCIPcatchVarEvent(), SCIPconsGetData(), SCIPconsGetHdlr(), SCIPconsGetName(), SCIPconshdlrGetData(), SCIPconshdlrGetName(), SCIPconsIsTransformed(), SCIPerrorMessage, SCIPgetSlackVarIndicator(), SCIPgetTransformedVar(), SCIPvarGetLbLocal(), SCIPvarGetName(), and SCIPvarGetType(). Referenced by SCIPgetBinaryVarIndicator(). gets slack variable corresponding to indicator constraint
Definition at line 7538 of file cons_indicator.c. References CONSHDLR_NAME, NULL, SCIP_Bool, SCIPconsGetData(), SCIPconsGetHdlr(), SCIPconshdlrGetName(), and SCIPisViolatedIndicator(). Referenced by createSubSCIP(), SCIP_DECL_CONFLICTEXEC(), SCIP_DECL_READERWRITE(), SCIPsetBinaryVarIndicator(), SCIPwriteGms(), SCIPwriteLp(), and writeOpbConstraints(). checks whether indicator constraint is violated w.r.t. sol
Definition at line 7555 of file cons_indicator.c. References FALSE, NULL, SCIPconsGetData(), SCIPconsIsDeleted(), SCIPgetSolVal(), SCIPisFeasPositive(), SCIPmakeIndicatorFeasible(), and TRUE. Referenced by SCIP_DECL_CONSGETDIVEBDCHGS(), and SCIPgetSlackVarIndicator().
Based on values of other variables, computes slack and binary variable to turn constraint feasible It will also clean up the solution, i.e., shift slack variable, as follows: If the inequality is , the value of the slack variable to achieve equality is
where is the given solution. In case of , we arrive at
The typical values of in the first case is -1 and +1 in the second case. Now, let be the sign of in the first case and in the second case. Thus, if and , the inequality cannot be satisfied by a nonnegative value for the slack variable; in this case, we have to leave the values as they are. If and , the solution violates the indicator constraint (we can set the slack variable to value ). If and or and , the constraint is satisfied, and we can set the slack variable to 0.
Definition at line 7610 of file cons_indicator.c. References CONSHDLR_NAME, FALSE, NULL, REALABS, SCIP_CALL, SCIP_OKAY, SCIP_Real, SCIP_STAGE_INITPRESOLVE, SCIP_VARSTATUS_FIXED, SCIP_VARSTATUS_NEGATED, SCIPconsGetData(), SCIPconsGetHdlr(), SCIPconshdlrGetName(), SCIPconsIsActive(), SCIPgetLhsLinear(), SCIPgetNVarsLinear(), SCIPgetRhsLinear(), SCIPgetSolVal(), SCIPgetStage(), SCIPgetValsLinear(), SCIPgetVarsLinear(), SCIPisFeasEQ(), SCIPisFeasGE(), SCIPisFeasNegative(), SCIPisFeasPositive(), SCIPisFeasZero(), SCIPisInfinity(), SCIPisZero(), SCIPmakeIndicatorsFeasible(), SCIPsetSolVal(), SCIPvarGetLbLocal(), SCIPvarGetNegationVar(), SCIPvarGetNLocksDown(), SCIPvarGetNLocksUp(), SCIPvarGetStatus(), TRUE, and varGetObjDelta(). Referenced by SCIP_DECL_CONSCHECK(), SCIPisViolatedIndicator(), and SCIPmakeIndicatorsFeasible().
Based on values of other variables, computes slack and binary variable to turn all constraints feasible
Definition at line 7784 of file cons_indicator.c. References CONSHDLR_NAME, FALSE, NULL, SCIP_Bool, SCIP_CALL, SCIP_OKAY, SCIP_STAGE_INITPRESOLVE, SCIPaddLinearConsIndicator(), SCIPconsGetData(), SCIPconshdlrGetConss(), SCIPconshdlrGetName(), SCIPconshdlrGetNConss(), SCIPgetStage(), and SCIPmakeIndicatorFeasible(). Referenced by SCIPmakeIndicatorFeasible(), and SCIPperformGenericDivingAlgorithm().
adds additional linear constraint that is not connected with an indicator constraint, but can be used for separation
Definition at line 7831 of file cons_indicator.c. References consdataEnsureAddLinConsSize(), CONSHDLR_NAME, NULL, SCIP_CALL, SCIP_OKAY, SCIPaddRowIndicator(), SCIPconshdlrGetData(), SCIPconshdlrGetName(), and SCIPconsIsLocal(). Referenced by SCIPmakeIndicatorsFeasible().
adds additional row that is not connected by an indicator constraint, but can be used for separation
Definition at line 7863 of file cons_indicator.c. References addAltLPRow(), CONSHDLR_NAME, NULL, SCIP_CALL, SCIP_OKAY, SCIPconshdlrGetData(), SCIPconshdlrGetName(), SCIPdebugMessage, SCIProwGetName(), and SCIProwIsLocal(). Referenced by SCIP_DECL_CONSINITLP(), SCIPaddLinearConsIndicator(), and separatePoint(). |