All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
cons_xor.c File Reference Detailed DescriptionConstraint handler for "xor" constraints, . This constraint handler deals with "xor" constraint. These are constraint of the form:
where is a binary variable for all and is bool. The variables 's are called operators. This constraint is satisfied if is TRUE and an odd number of the operators are TRUE or if the is FALSE and a even number of operators are TRUE. Hence, if the sum of and operators is even. Definition in file cons_xor.c. #include <assert.h> #include <string.h> #include "scip/pub_misc.h" #include "scip/cons_xor.h" #include "scip/cons_setppc.h" #include "scip/cons_linear.h" #include "scip/heur_trysol.h" #include "scip/debug.h" Go to the source code of this file.
Macro Definition Documentation
Definition at line 48 of file cons_xor.c. Referenced by createConsXorIntvar(), SCIP_DECL_CONSHDLRCOPY(), SCIPcreateConsXor(), SCIPgetNVarsXor(), SCIPgetRhsXor(), SCIPgetVarsXor(), and SCIPincludeConshdlrXor().
Definition at line 49 of file cons_xor.c. Referenced by SCIPincludeConshdlrXor().
priority of the constraint handler for separation Definition at line 50 of file cons_xor.c. Referenced by SCIPincludeConshdlrXor().
priority of the constraint handler for constraint enforcing Definition at line 51 of file cons_xor.c. Referenced by SCIPincludeConshdlrXor().
priority of the constraint handler for checking feasibility Definition at line 52 of file cons_xor.c. Referenced by SCIPincludeConshdlrXor().
frequency for separating cuts; zero means to separate only in the root node Definition at line 53 of file cons_xor.c. Referenced by SCIPincludeConshdlrXor().
frequency for propagating domains; zero means only preprocessing propagation Definition at line 54 of file cons_xor.c. Referenced by SCIPincludeConshdlrXor().
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 55 of file cons_xor.c. Referenced by SCIPincludeConshdlrXor().
maximal number of presolving rounds the constraint handler participates in (-1: no limit) Definition at line 57 of file cons_xor.c. Referenced by SCIPincludeConshdlrXor().
should separation method be delayed, if other separators found cuts? Definition at line 58 of file cons_xor.c. Referenced by SCIPincludeConshdlrXor().
should propagation method be delayed, if other propagators found reductions? Definition at line 59 of file cons_xor.c. Referenced by SCIPincludeConshdlrXor().
should presolving method be delayed, if other presolvers found reductions? Definition at line 60 of file cons_xor.c. Referenced by SCIPincludeConshdlrXor().
should the constraint handler be skipped, if no constraints are available? Definition at line 61 of file cons_xor.c. Referenced by SCIPincludeConshdlrXor().
Definition at line 63 of file cons_xor.c. Referenced by SCIPincludeConshdlrXor().
Definition at line 65 of file cons_xor.c. Referenced by SCIPincludeConshdlrXor().
Definition at line 66 of file cons_xor.c. Referenced by SCIPincludeConshdlrXor().
should pairwise constraint comparison be performed in presolving? Definition at line 68 of file cons_xor.c. Referenced by SCIPincludeConshdlrXor().
should the extended formulation be added in presolving? Definition at line 69 of file cons_xor.c. Referenced by SCIPincludeConshdlrXor().
should the extended flow formulation be added (nonsymmetric formulation otherwise)? Definition at line 70 of file cons_xor.c. Referenced by SCIPincludeConshdlrXor().
should parity inequalities be separated? Definition at line 71 of file cons_xor.c. Referenced by SCIPincludeConshdlrXor().
frequency for applying the Gauss propagator Definition at line 72 of file cons_xor.c. Referenced by SCIPincludeConshdlrXor().
minimal size of hash table in logicor constraint tables Definition at line 73 of file cons_xor.c. Referenced by detectRedundantConstraints().
should hash table be used for detecting redundant constraints in advance Definition at line 74 of file cons_xor.c. Referenced by SCIPincludeConshdlrXor().
number for minimal pairwise presolving comparisons Definition at line 75 of file cons_xor.c. Referenced by SCIP_DECL_CONSPRESOL().
minimal gain per minimal pairwise presolving comparisons to repeat pairwise comparison round Definition at line 76 of file cons_xor.c. Referenced by SCIP_DECL_CONSPRESOL().
maximal number of active constraints for which checking the system over GF2 is performed Definition at line 77 of file cons_xor.c. Referenced by checkSystemGF2().
maximal number of variables in xor constraints for which checking the system over GF2 is performed Definition at line 78 of file cons_xor.c. Referenced by checkSystemGF2().
Definition at line 80 of file cons_xor.c. Referenced by addRelaxation(), allRowsInLP(), consdataCreate(), consdataFreeRows(), and separateCons(). Typedef Documentation
type used for matrix entries in function checkGauss() Definition at line 88 of file cons_xor.c. Definition at line 137 of file cons_xor.c. Enumeration Type Documentation
Definition at line 129 of file cons_xor.c. Function Documentation
installs rounding locks for the given variable in the given xor constraint
Definition at line 146 of file cons_xor.c. References SCIP_CALL, SCIP_OKAY, SCIPlockVarCons(), and TRUE. Referenced by addCoef(), and createRelaxation().
removes rounding locks for the given variable in the given xor constraint
Definition at line 160 of file cons_xor.c. References SCIP_CALL, SCIP_OKAY, SCIPunlockVarCons(), and TRUE. Referenced by delCoefPos().
creates constraint handler data
Definition at line 174 of file cons_xor.c. References NULL, SCIP_CALL, SCIP_OKAY, and SCIPallocMemory. Referenced by SCIPincludeConshdlrXor().
frees constraint handler data
Definition at line 194 of file cons_xor.c. References NULL, SCIP_OKAY, and SCIPfreeMemory. Referenced by SCIP_DECL_CONSFREE().
stores the given variable numbers as watched variables, and updates the event processing
Definition at line 209 of file cons_xor.c. References NULL, SCIP_CALL, SCIP_EVENTTYPE_BOUNDCHANGED, SCIP_OKAY, SCIPcatchVarEvent(), and SCIPdropVarEvent(). Referenced by consdataFree(), delCoefPos(), and propagateCons().
ensures, that the vars array can store at least num entries
Definition at line 273 of file cons_xor.c. References NULL, SCIP_CALL, SCIP_OKAY, SCIPcalcMemGrowSize(), and SCIPreallocBlockMemoryArray. Referenced by addCoef().
creates constraint data for xor constraint
Definition at line 297 of file cons_xor.c. References FALSE, NROWS, NULL, SCIP_CALL, SCIP_OKAY, SCIPallocBlockMemory, SCIPcaptureVar(), SCIPduplicateBlockMemoryArray, SCIPgetTransformedVar(), SCIPgetTransformedVars(), SCIPisTransformed(), and TRUE. Referenced by createConsXorIntvar(), SCIP_DECL_CONSTRANS(), and SCIPcreateConsXor().
releases LP row of constraint data
Definition at line 354 of file cons_xor.c. References NROWS, NULL, SCIP_CALL, SCIP_OKAY, and SCIPreleaseRow(). Referenced by consdataFree(), and SCIP_DECL_CONSEXITSOL().
frees constraint data for xor constraint
Definition at line 376 of file cons_xor.c. References consdataFreeRows(), consdataSwitchWatchedvars(), NULL, SCIP_CALL, SCIP_OKAY, SCIPfreeBlockMemory, SCIPfreeBlockMemoryArray, SCIPisEQ(), SCIPisTransformed(), SCIPreleaseVar(), and SCIPvarGetLbGlobal(). Referenced by SCIP_DECL_CONSDELETE().
prints xor constraint to file stream
Definition at line 437 of file cons_xor.c. References NULL, SCIP_CALL, SCIP_OKAY, SCIPinfoMessage(), SCIPwriteVarsList(), and TRUE. Referenced by applyFixings(), and SCIP_DECL_CONSPRINT().
adds coefficient to xor constraint
Definition at line 463 of file cons_xor.c. References consdataEnsureVarsSize(), lockRounding(), NULL, SCIP_Bool, SCIP_CALL, SCIP_INVALIDCALL, SCIP_OKAY, SCIPconsGetData(), SCIPconsIsTransformed(), SCIPerrorMessage, SCIPgetTransformedVar(), SCIPvarIsTransformed(), and TRUE. Referenced by applyFixings(), and preprocessConstraintPairs().
deletes coefficient at given position from xor constraint data
Definition at line 511 of file cons_xor.c. References consdataSwitchWatchedvars(), FALSE, NULL, SCIP_CALL, SCIP_OKAY, SCIPconsGetData(), SCIPconsIsTransformed(), SCIPvarIsTransformed(), TRUE, and unlockRounding(). Referenced by applyFixings().
sorts and constraint's variables by non-decreasing variable index
Definition at line 564 of file cons_xor.c. References NULL, SCIP_Bool, SCIPsortedvecFindPtr(), SCIPsortPtr(), SCIPvarCompareActiveAndNegated(), and TRUE. Referenced by applyFixings(), detectRedundantConstraints(), preprocessConstraintPairs(), and SCIP_DECL_HASHKEYEQ().
gets the key of the given element Definition at line 646 of file cons_xor.c.
returns TRUE iff both keys are equal; two constraints are equal if they have the same variables Definition at line 654 of file cons_xor.c. References consdataSort(), FALSE, NULL, SCIPconsGetData(), SCIPvarCompare(), SCIPvarCompareActiveAndNegated(), and TRUE.
returns the hash value of the key Definition at line 696 of file cons_xor.c. References NULL, SCIP_VARSTATUS_FIXED, SCIP_VARSTATUS_NEGATED, SCIPconsGetData(), SCIPvarGetIndex(), SCIPvarGetStatus(), and SCIPvarIsActive().
deletes all fixed variables and all pairs equal variables variables
Definition at line 731 of file cons_xor.c. References addCoef(), consdataPrint(), consdataSort(), delCoefPos(), MIN, NULL, SCIP_Bool, SCIP_CALL, SCIP_OKAY, SCIPconsGetData(), SCIPconsGetName(), SCIPdebug, SCIPdebugMessage, SCIPgetBinvarRepresentative(), SCIPisEQ(), SCIPvarGetLbGlobal(), SCIPvarGetName(), SCIPvarGetNegatedVar(), SCIPvarGetNegationVar(), SCIPvarGetProbvar(), SCIPvarGetUbGlobal(), SCIPvarIsBinary(), SCIPvarIsNegated(), and TRUE. Referenced by detectRedundantConstraints(), preprocessConstraintPairs(), and SCIP_DECL_CONSPRESOL().
adds extended flow formulation The extended flow formulation is built as follows: Let be the variables contained in the given XOR constraint. We construct a two layered flow network. The upper layer is called the north layer and the lower is called the south layer. For each , we add arcs that stay in the north and south layer (denoted by 'nn' and 'ss', respectively), as well as arcs that change the layers (denoted by 'ns' and 'sn'). For , we only add two arcs from the source to the two layers. The source is located on the north layer. For , we add two arcs connecting the two layers to the sink. Depending on the rhs of the constraint the sink is located on the north or south layer. A change in the layers corresponds to a parity change, i.e., the corresponding variable is 1 (and 0 otherwise).
Definition at line 860 of file cons_xor.c. References FALSE, NULL, SCIP_Bool, SCIP_CALL, SCIP_MAXSTRLEN, SCIP_OKAY, SCIP_Real, SCIP_VARTYPE_IMPLINT, SCIPaddCons(), SCIPaddVar(), SCIPaggregateVars(), SCIPallocBlockMemoryArray, SCIPconsGetData(), SCIPconsGetName(), SCIPconsIsInitial(), SCIPconsIsModifiable(), SCIPconsIsRemovable(), SCIPcreateConsLinear(), SCIPcreateVar(), SCIPdebugMessage, SCIPdebugPrintCons, SCIPlockVarCons(), SCIPreleaseCons(), SCIPsnprintf(), SCIPvarIsTransformed(), and TRUE. Referenced by SCIP_DECL_CONSPRESOL().
adds extended asymmetric formulation The extended asymmetric formulation is constructed as follows: Let be the variables contained in the given XOR constraint. We introduce variables with the following constraints: , , and for :
This formulation is described in Robert D. Carr and Goran Konjevod
Definition at line 1165 of file cons_xor.c. References FALSE, NULL, SCIP_Bool, SCIP_CALL, SCIP_MAXSTRLEN, SCIP_OKAY, SCIP_Real, SCIP_VARTYPE_IMPLINT, SCIPaddCons(), SCIPaddVar(), SCIPaggregateVars(), SCIPallocBlockMemoryArray, SCIPconsGetData(), SCIPconsGetName(), SCIPconsIsInitial(), SCIPconsIsModifiable(), SCIPconsIsRemovable(), SCIPcreateConsLinear(), SCIPcreateVar(), SCIPdebugMessage, SCIPdebugPrintCons, SCIPinfinity(), SCIPlockVarCons(), SCIPreleaseCons(), SCIPsnprintf(), SCIPvarIsTransformed(), and TRUE. Referenced by SCIP_DECL_CONSPRESOL().
creates LP row corresponding to xor constraint: x1 + ... + xn - 2q == rhs with internal integer variable q; in the special case of 3 variables and c = 0, the following linear system is created:
Definition at line 1344 of file cons_xor.c. References lockRounding(), NULL, SCIP_CALL, SCIP_MAXSTRLEN, SCIP_OKAY, SCIP_Real, SCIP_VARTYPE_BINARY, SCIP_VARTYPE_INTEGER, SCIPaddVar(), SCIPaddVarsToRowSameCoef(), SCIPaddVarToRow(), SCIPconsGetData(), SCIPconsGetHdlr(), SCIPconsGetName(), SCIPconsIsInitial(), SCIPconsIsLocal(), SCIPconsIsModifiable(), SCIPconsIsRemovable(), SCIPcreateEmptyRowCons(), SCIPcreateVar(), SCIPdebugAddSolVal, SCIPdebugGetSolVal, SCIPinfinity(), and SCIPsnprintf(). Referenced by addRelaxation(), and separateCons().
adds linear relaxation of or constraint to the LP
Definition at line 1459 of file cons_xor.c. References createRelaxation(), FALSE, NROWS, NULL, SCIP_Bool, SCIP_CALL, SCIP_OKAY, SCIPaddCut(), SCIPconsGetData(), and SCIProwIsInLP(). Referenced by SCIP_DECL_CONSINITLP().
returns whether all rows of the LP relaxation are in the current LP
Definition at line 1490 of file cons_xor.c. References FALSE, NROWS, NULL, SCIProwIsInLP(), and TRUE. Referenced by checkCons().
checks xor constraint for feasibility of given solution: returns TRUE iff constraint is feasible
Definition at line 1512 of file cons_xor.c. References allRowsInLP(), FALSE, NULL, SCIP_Bool, SCIP_CALL, SCIP_OKAY, SCIP_Real, SCIPconsGetData(), SCIPgetSolVal(), SCIPincConsAge(), SCIPisFeasIntegral(), SCIPresetConsAge(), and TRUE. Referenced by SCIP_DECL_CONSCHECK(), SCIP_DECL_CONSENFOLP(), and SCIP_DECL_CONSENFOPS().
separates current LP solution Consider a XOR-constraint
with and a solution to be cut off. Small XOR constraints are handled by adding the inequalities of the convex hull. The separation of larger XOR constraints has been described by We separate the inequalities
with as follows. That these inequalities are valid can be seen as follows: Let be a feasible solution and suppose that the inequality is violated for some . Then for all and for all . Thus we should have
which is not equal to as required by the XOR-constraint. Let . Suppose that has not the same parity as rhs. Then
is the only inequality that can be violated. We rewrite the inequality as
These inequalities are added. Otherwise let and check the inequality for and similarly for .
Definition at line 1607 of file cons_xor.c. References createRelaxation(), FALSE, NROWS, NULL, SCIP_CALL, SCIP_MAXSTRLEN, SCIP_OKAY, SCIP_Real, SCIPaddCut(), SCIPaddVarToRow(), SCIPcacheRowExtensions(), SCIPconsGetData(), SCIPconsGetHdlr(), SCIPconsGetName(), SCIPcreateEmptyRowCons(), SCIPdebug, SCIPdebugMessage, SCIPflushRowExtensions(), SCIPgetRowLPActivity(), SCIPgetRowSolFeasibility(), SCIPgetSolVal(), SCIPinfinity(), SCIPisEfficacious(), SCIPisFeasGT(), SCIPisFeasNegative(), SCIPisGT(), SCIPprintRow(), SCIPreleaseRow(), SCIProwIsInLP(), SCIPsnprintf(), and TRUE. Referenced by SCIP_DECL_CONSENFOLP(), SCIP_DECL_CONSSEPALP(), and SCIP_DECL_CONSSEPASOL().
Transform linear system into row echolon form via the Gauss algorithm with row pivoting over GF2
Here, . On exit, the vector
Definition at line 1820 of file cons_xor.c. References NULL, and SCIPisStopped(). Referenced by checkSystemGF2().
Construct solution from matrix in row echolon form over GF2 Compute solution of , which is already in row echolon form (
Definition at line 1929 of file cons_xor.c. References NULL. Referenced by checkSystemGF2().
solve equation system over GF 2 by Gauss algorithm and create solution out of it or return cutoff Collect all information in xor constraints into a linear system over GF2. Then solve the system by computing a row echolon form. If the system is infeasible, the current node is infeasible. Otherwise, we can compute a solution for the xor constraints given. We check whether this gives a solution for the whole problem. We sort the columns with respect to the product of the objective coefficients and 1 minus the current LP solution value. The idea is that columns that are likely to provide the steps in the row echolon form should appear towards the front of the matrix. The smaller the product, the more it makes sense to set the variable to 1 (because the solution value is already close to 1 and the objective function is small). Note that this function is called from propagation where usually no solution is available. However, the solution is only used for sorting the columns. Thus, the procedure stays correct even with nonsense solutions.
Definition at line 1993 of file cons_xor.c. References BMSclearMemoryArray, computeRowEcholonGF2(), FALSE, MAXXORCONSSSYSTEM, MAXXORVARSSYSTEM, NULL, SCIP_Bool, SCIP_CALL, SCIP_CUTOFF, SCIP_OKAY, SCIP_Real, SCIP_VARSTATUS_AGGREGATED, SCIP_VARSTATUS_MULTAGGR, SCIP_VARTYPE_BINARY, SCIPallocBufferArray, SCIPblkmem(), SCIPcalcHashtableSize(), SCIPcheckSol(), SCIPcomputeVarLbLocal(), SCIPcomputeVarUbLocal(), SCIPconsGetData(), SCIPconsGetName(), SCIPcreateSol(), SCIPdebug, SCIPdebugMessage, SCIPfindHeur(), SCIPfreeBufferArray, SCIPfreeSol(), SCIPgetNVars(), SCIPgetSolVal(), SCIPgetVars(), SCIPhashmapCreate(), SCIPhashmapExists(), SCIPhashmapFree(), SCIPhashmapGetImage(), SCIPhashmapInsert(), SCIPheurPassSolAddSol(), SCIPinfoMessage(), SCIPisGE(), SCIPisLE(), SCIPisStopped(), SCIPprintSol(), SCIPsetSolVal(), SCIPsortRealIntPtr(), SCIPvarGetLbGlobal(), SCIPvarGetName(), SCIPvarGetNegatedVar(), SCIPvarGetObj(), SCIPvarGetStatus(), SCIPvarGetType(), SCIPvarGetUbGlobal(), SCIPvarIsActive(), SCIPvarIsNegated(), solveRowEcholonGF2(), and TRUE. Referenced by SCIP_DECL_CONSPROP().
for each variable in the xor constraint, add it to conflict set; for integral variable add corresponding bound
Definition at line 2386 of file cons_xor.c. References FALSE, NULL, PROPRULE_0, PROPRULE_1, PROPRULE_INTLB, PROPRULE_INTUB, PROPRULE_INVALID, SCIP_CALL, SCIP_INVALIDDATA, SCIP_OKAY, SCIPABORT, SCIPaddConflictBinvar(), SCIPaddConflictLb(), SCIPaddConflictUb(), SCIPconsGetData(), SCIPconsGetName(), SCIPerrorMessage, SCIPisEQ(), SCIPvarGetLbAtIndex(), SCIPvarGetUbAtIndex(), and TRUE. Referenced by analyzeConflict(), and resolvePropagation().
analyzes conflicting assignment on given constraint, and adds conflict constraint to problem
Definition at line 2494 of file cons_xor.c. References addConflictBounds(), NULL, SCIP_CALL, SCIP_OKAY, SCIP_STAGE_SOLVING, SCIPanalyzeConflictCons(), SCIPgetStage(), SCIPinitConflictAnalysis(), SCIPinProbing(), and SCIPisConflictAnalysisApplicable(). Referenced by propagateCons().
propagates constraint with the following rules: (0) all variables are fixed => can fix integral variable (1) all except one variable fixed => fix remaining variable and integral variable (2) depending on the amount of fixed binary variables we can tighten the integral variable (3) depending on the lower bound of the integral variable one can fix variables to 1 (4) depending on the upper bound of the integral variable one can fix variables to 0
Definition at line 2525 of file cons_xor.c. References analyzeConflict(), consdataSwitchWatchedvars(), FALSE, NULL, PROPRULE_0, PROPRULE_1, PROPRULE_INTLB, PROPRULE_INTUB, SCIP_Bool, SCIP_CALL, SCIP_OKAY, SCIP_Real, SCIPconsGetData(), SCIPconsGetName(), SCIPconsIsModifiable(), SCIPdebugMessage, SCIPdelConsLocal(), SCIPincConsAge(), SCIPinferBinvarCons(), SCIPinferVarLbCons(), SCIPinferVarUbCons(), SCIPinRepropagation(), SCIPisEQ(), SCIPisFeasEQ(), SCIPisFeasIntegral(), SCIPresetConsAge(), SCIPvarGetLbLocal(), SCIPvarGetName(), SCIPvarGetUbLocal(), and TRUE. Referenced by SCIP_DECL_CONSPRESOL(), and SCIP_DECL_CONSPROP().
resolves a conflict on the given variable by supplying the variables needed for applying the corresponding propagation rules (see propagateCons())
Definition at line 2923 of file cons_xor.c. References addConflictBounds(), NULL, SCIP_CALL, SCIP_OKAY, SCIP_SUCCESS, and SCIPdebugMessage. Referenced by SCIP_DECL_CONSRESPROP().
try to use clique information to delete a part of the xor constraint or even fix variables
Definition at line 2944 of file cons_xor.c. References FALSE, NULL, SCIP_Bool, SCIP_CALL, SCIP_MAXSTRLEN, SCIP_OKAY, SCIPaddCoefSetppc(), SCIPaddCons(), SCIPconsGetData(), SCIPconsGetName(), SCIPconsIsChecked(), SCIPconsIsDynamic(), SCIPconsIsEnforced(), SCIPconsIsInitial(), SCIPconsIsLocal(), SCIPconsIsModifiable(), SCIPconsIsPropagated(), SCIPconsIsRemovable(), SCIPconsIsSeparated(), SCIPconsIsStickingAtNode(), SCIPcreateConsSetpart(), SCIPdebug, SCIPdebugMessage, SCIPdelCons(), SCIPfixVar(), SCIPgetNegatedVar(), SCIPprintCons(), SCIPreleaseCons(), SCIPsnprintf(), SCIPvarIsActive(), SCIPvarsHaveCommonClique(), and TRUE. Referenced by SCIP_DECL_CONSPRESOL().
compares each constraint with all other constraints for possible redundancy and removes or changes constraint accordingly; in contrast to preprocessConstraintPairs(), it uses a hash table
Definition at line 3195 of file cons_xor.c. References applyFixings(), consdataSort(), HASHSIZE_XORCONS, MAX, NULL, SCIP_CALL, SCIP_OKAY, SCIPcalcHashtableSize(), SCIPconsGetData(), SCIPconsGetHdlr(), SCIPconsGetPos(), SCIPconshdlrGetData(), SCIPconsIsActive(), SCIPconsIsModifiable(), SCIPdelCons(), SCIPhashtableCreate(), SCIPhashtableFree(), SCIPhashtableInsert(), SCIPhashtableRetrieve(), SCIPupdateConsFlags(), and TRUE. Referenced by SCIP_DECL_CONSPRESOL().
compares constraint with all prior constraints for possible redundancy or aggregation, and removes or changes constraint accordingly
Definition at line 3306 of file cons_xor.c. References addCoef(), applyFixings(), consdataSort(), FALSE, NULL, SCIP_Bool, SCIP_CALL, SCIP_INVALIDDATA, SCIP_OKAY, SCIP_Real, SCIPABORT, SCIPaggregateVars(), SCIPconsGetData(), SCIPconsGetHdlr(), SCIPconsGetName(), SCIPconshdlrGetData(), SCIPconsIsActive(), SCIPconsIsModifiable(), SCIPdebugMessage, SCIPdebugPrintCons, SCIPdelCons(), SCIPdoNotAggr(), SCIPerrorMessage, SCIPfixVar(), SCIPisStopped(), SCIPvarCompareActiveAndNegated(), SCIPvarGetName(), SCIPvarGetNegatedVar(), SCIPvarGetProbvar(), and TRUE. Referenced by SCIP_DECL_CONSPRESOL().
creates and captures a xor constraint x_0 xor ... xor x_{k-1} = rhs with a given artificial integer variable for the linear relaxation
Definition at line 3729 of file cons_xor.c. References consdataCreate(), CONSHDLR_NAME, NULL, SCIP_CALL, SCIP_OKAY, SCIP_PLUGINNOTFOUND, SCIPcreateCons(), SCIPerrorMessage, and SCIPfindConshdlr(). Referenced by SCIP_DECL_CONSCOPY().
copy method for constraint handler plugins (called when SCIP copies plugins) Definition at line 3790 of file cons_xor.c. References CONSHDLR_NAME, NULL, SCIP_CALL, SCIP_OKAY, SCIPconshdlrGetName(), SCIPincludeConshdlrXor(), and TRUE.
destructor of constraint handler to free constraint handler data (called when SCIP is exiting) Definition at line 3806 of file cons_xor.c. References conshdlrdataFree(), NULL, SCIP_CALL, SCIP_OKAY, SCIPconshdlrGetData(), and SCIPconshdlrSetData().
solving process deinitialization method of constraint handler (called before branch and bound process data is freed) Definition at line 3823 of file cons_xor.c. References consdataFreeRows(), SCIP_CALL, SCIP_OKAY, and SCIPconsGetData().
frees specific constraint data Definition at line 3841 of file cons_xor.c. References consdataFree(), NULL, SCIP_CALL, SCIP_OKAY, and SCIPconshdlrGetData().
transforms constraint data into data belonging to the transformed problem Definition at line 3856 of file cons_xor.c. References consdataCreate(), NULL, SCIP_CALL, SCIP_OKAY, SCIPconsGetData(), SCIPconsGetName(), SCIPconsIsChecked(), SCIPconsIsDynamic(), SCIPconsIsEnforced(), SCIPconsIsInitial(), SCIPconsIsLocal(), SCIPconsIsModifiable(), SCIPconsIsPropagated(), SCIPconsIsRemovable(), SCIPconsIsSeparated(), SCIPconsIsStickingAtNode(), and SCIPcreateCons().
LP initialization method of constraint handler (called before the initial LP relaxation at a node is solved) Definition at line 3882 of file cons_xor.c. References addRelaxation(), SCIP_CALL, SCIP_OKAY, and SCIPconsIsInitial().
separation method of constraint handler for LP solutions Definition at line 3898 of file cons_xor.c. References NULL, SCIP_Bool, SCIP_CALL, SCIP_CUTOFF, SCIP_DIDNOTFIND, SCIP_OKAY, SCIP_SEPARATED, SCIPconshdlrGetData(), and separateCons().
separation method of constraint handler for arbitrary primal solutions Definition at line 3929 of file cons_xor.c. References NULL, SCIP_Bool, SCIP_CALL, SCIP_CUTOFF, SCIP_DIDNOTFIND, SCIP_OKAY, SCIP_SEPARATED, SCIPconshdlrGetData(), and separateCons().
constraint enforcing method of constraint handler for LP solutions Definition at line 3960 of file cons_xor.c. References checkCons(), FALSE, NULL, SCIP_Bool, SCIP_CALL, SCIP_CUTOFF, SCIP_FEASIBLE, SCIP_OKAY, SCIP_SEPARATED, SCIPconshdlrGetData(), and separateCons().
constraint enforcing method of constraint handler for pseudo solutions Definition at line 3997 of file cons_xor.c. References checkCons(), NULL, SCIP_Bool, SCIP_CALL, SCIP_FEASIBLE, SCIP_INFEASIBLE, SCIP_OKAY, and TRUE.
feasibility check method of constraint handler for integral solutions Definition at line 4020 of file cons_xor.c. References checkCons(), NULL, SCIP_Bool, SCIP_CALL, SCIP_FEASIBLE, SCIP_INFEASIBLE, SCIP_OKAY, SCIPconsGetData(), SCIPgetSolVal(), SCIPinfoMessage(), and SCIPprintCons().
domain propagation method of constraint handler Definition at line 4063 of file cons_xor.c. References checkSystemGF2(), FALSE, NULL, propagateCons(), SCIP_Bool, SCIP_CALL, SCIP_CUTOFF, SCIP_DIDNOTFIND, SCIP_OKAY, SCIP_REDUCEDDOM, SCIPconshdlrGetData(), SCIPgetDepth(), and SCIPinProbing().
presolving method of constraint handler Definition at line 4114 of file cons_xor.c. References addExtendedAsymmetricFormulation(), addExtendedFlowFormulation(), applyFixings(), cliquePresolve(), detectRedundantConstraints(), FALSE, MINGAINPERNMINCOMPARISONS, NMINCOMPARISONS, NULL, preprocessConstraintPairs(), propagateCons(), SCIP_Bool, SCIP_CALL, SCIP_CUTOFF, SCIP_DELAYED, SCIP_DIDNOTFIND, SCIP_Longint, SCIP_OKAY, SCIP_Real, SCIP_SUCCESS, SCIPaggregateVars(), SCIPblkmem(), SCIPconsGetData(), SCIPconsGetName(), SCIPconshdlrGetData(), SCIPconsIsActive(), SCIPconsIsDeleted(), SCIPconsIsModifiable(), SCIPdebugMessage, SCIPdelCons(), SCIPdoNotAggr(), SCIPisEQ(), SCIPisPresolveFinished(), SCIPisStopped(), SCIPvarGetLbGlobal(), SCIPvarGetName(), SCIPvarGetUbGlobal(), and TRUE.
propagation conflict resolving method of constraint handler Definition at line 4314 of file cons_xor.c. References resolvePropagation(), SCIP_CALL, and SCIP_OKAY.
variable rounding lock method of constraint handler Definition at line 4324 of file cons_xor.c. References NULL, SCIP_CALL, SCIP_OKAY, SCIPaddVarLocks(), and SCIPconsGetData().
constraint display method of constraint handler Definition at line 4350 of file cons_xor.c. References consdataPrint(), FALSE, NULL, SCIP_CALL, SCIP_OKAY, and SCIPconsGetData().
constraint copying method of constraint handler Definition at line 4363 of file cons_xor.c. References createConsXorIntvar(), NULL, SCIP_CALL, SCIP_OKAY, SCIPallocBufferArray, SCIPconsGetData(), SCIPconsGetName(), SCIPdebugMessage, SCIPfreeBufferArray, SCIPgetRhsXor(), SCIPgetVarCopy(), SCIPvarGetLbGlobal(), SCIPvarGetLbLocal(), SCIPvarGetName(), SCIPvarGetUbGlobal(), SCIPvarGetUbLocal(), and TRUE.
constraint parsing method of constraint handler Definition at line 4454 of file cons_xor.c. References FALSE, NULL, SCIP_CALL, SCIP_OKAY, SCIP_Real, SCIPallocBufferArray, SCIPcreateConsXor(), SCIPdebugMessage, SCIPdebugPrintCons, SCIPerrorMessage, SCIPfreeBufferArray, SCIPisEQ(), SCIPisZero(), SCIPparseVarsList(), SCIPreallocBufferArray, SCIPstrToRealValue(), and TRUE.
constraint method of constraint handler which returns the variables (if possible) Definition at line 4533 of file cons_xor.c. References BMScopyMemoryArray, FALSE, NULL, SCIP_OKAY, SCIPconsGetData(), and TRUE.
constraint method of constraint handler which returns the number of variable (if possible) Definition at line 4575 of file cons_xor.c. References NULL, SCIP_OKAY, SCIPconsGetData(), and TRUE.
Definition at line 4599 of file cons_xor.c.
creates the handler for xor constraints and includes it in SCIP
Definition at line 4621 of file cons_xor.c. References CONSHDLR_CHECKPRIORITY, CONSHDLR_DELAYPRESOL, CONSHDLR_DELAYPROP, CONSHDLR_DELAYSEPA, CONSHDLR_DESC, CONSHDLR_EAGERFREQ, CONSHDLR_ENFOPRIORITY, CONSHDLR_MAXPREROUNDS, CONSHDLR_NAME, CONSHDLR_NEEDSCONS, CONSHDLR_PROP_TIMING, CONSHDLR_PROPFREQ, CONSHDLR_SEPAFREQ, CONSHDLR_SEPAPRIORITY, conshdlrdataCreate(), DEFAULT_ADDEXTENDEDFORM, DEFAULT_ADDFLOWEXTENDED, DEFAULT_GAUSSPROPFREQ, DEFAULT_PRESOLPAIRWISE, DEFAULT_PRESOLUSEHASHING, DEFAULT_SEPARATEPARITY, EVENTHDLR_DESC, EVENTHDLR_NAME, NULL, SCIP_CALL, SCIP_OKAY, SCIPaddBoolParam(), SCIPaddIntParam(), SCIPincludeConshdlrBasic(), SCIPincludeEventhdlrBasic(), SCIPsetConshdlrCopy(), SCIPsetConshdlrDelete(), SCIPsetConshdlrExitsol(), SCIPsetConshdlrFree(), SCIPsetConshdlrGetNVars(), SCIPsetConshdlrGetVars(), SCIPsetConshdlrInitlp(), SCIPsetConshdlrParse(), SCIPsetConshdlrPresol(), SCIPsetConshdlrPrint(), SCIPsetConshdlrProp(), SCIPsetConshdlrResprop(), SCIPsetConshdlrSepa(), SCIPsetConshdlrTrans(), and TRUE. Referenced by SCIP_DECL_CONSHDLRCOPY(), and SCIPincludeDefaultPlugins().
creates and captures a xor constraint x_0 xor ... xor x_{k-1} = rhs
Definition at line 4699 of file cons_xor.c. References consdataCreate(), CONSHDLR_NAME, NULL, SCIP_CALL, SCIP_OKAY, SCIP_PLUGINNOTFOUND, SCIPcreateCons(), SCIPerrorMessage, and SCIPfindConshdlr(). Referenced by CREATE_CONSTRAINT(), SCIP_DECL_CONSPARSE(), SCIPcreateConsBasicXor(), and tryUpgradingXor().
creates and captures a xor constraint x_0 xor ... xor x_{k-1} = rhs with all constraint flags set to their default values
Definition at line 4757 of file cons_xor.c. References FALSE, SCIP_CALL, SCIP_OKAY, SCIPcreateConsXor(), and TRUE. gets number of variables in xor constraint
Definition at line 4773 of file cons_xor.c. References CONSHDLR_NAME, NULL, SCIPABORT, SCIPconsGetData(), SCIPconsGetHdlr(), SCIPconshdlrGetName(), and SCIPerrorMessage. gets array of variables in xor constraint
Definition at line 4794 of file cons_xor.c. References CONSHDLR_NAME, NULL, SCIPABORT, SCIPconsGetData(), SCIPconsGetHdlr(), SCIPconshdlrGetName(), and SCIPerrorMessage. gets the right hand side of the xor constraint
Definition at line 4815 of file cons_xor.c. References CONSHDLR_NAME, NULL, SCIPABORT, SCIPconsGetData(), SCIPconsGetHdlr(), SCIPconshdlrGetName(), and SCIPerrorMessage. Referenced by SCIP_DECL_CONSCOPY(). |