Detailed DescriptionConstraint handler for logic or constraints (equivalent to set covering, but algorithms are suited for depth first search). Definition in file cons_logicor.c. #include <assert.h> #include <string.h> #include <limits.h> #include "scip/cons_logicor.h" #include "scip/cons_linear.h" #include "scip/cons_setppc.h" #include "scip/pub_misc.h" Go to the source code of this file.
Macro Definition Documentation
Definition at line 35 of file cons_logicor.c. Referenced by addCoef(), enforcePseudo(), processWatchedVars(), SCIPaddCoefLogicor(), SCIPcreateConsLogicor(), SCIPgetDualfarkasLogicor(), SCIPgetDualsolLogicor(), SCIPgetNVarsLogicor(), SCIPgetRowLogicor(), SCIPgetVarsLogicor(), SCIPincludeConshdlrLogicor(), and separateCons().
Definition at line 36 of file cons_logicor.c. Referenced by SCIPincludeConshdlrLogicor().
priority of the constraint handler for separation Definition at line 37 of file cons_logicor.c. Referenced by SCIPincludeConshdlrLogicor().
priority of the constraint handler for constraint enforcing Definition at line 38 of file cons_logicor.c. Referenced by SCIPincludeConshdlrLogicor().
priority of the constraint handler for checking feasibility Definition at line 39 of file cons_logicor.c. Referenced by SCIPincludeConshdlrLogicor().
frequency for separating cuts; zero means to separate only in the root node Definition at line 40 of file cons_logicor.c. Referenced by SCIPincludeConshdlrLogicor().
frequency for propagating domains; zero means only preprocessing propagation Definition at line 41 of file cons_logicor.c. Referenced by SCIPincludeConshdlrLogicor().
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 42 of file cons_logicor.c. Referenced by SCIPincludeConshdlrLogicor().
maximal number of presolving rounds the constraint handler participates in (-1: no limit) Definition at line 45 of file cons_logicor.c. Referenced by SCIPincludeConshdlrLogicor().
should separation method be delayed, if other separators found cuts? Definition at line 46 of file cons_logicor.c. Referenced by SCIPincludeConshdlrLogicor().
should propagation method be delayed, if other propagators found reductions? Definition at line 47 of file cons_logicor.c. Referenced by SCIPincludeConshdlrLogicor().
should the constraint handler be skipped, if no constraints are available? Definition at line 48 of file cons_logicor.c. Referenced by SCIPincludeConshdlrLogicor().
Definition at line 50 of file cons_logicor.c. Referenced by SCIPincludeConshdlrLogicor().
Definition at line 51 of file cons_logicor.c. Referenced by SCIPincludeConshdlrLogicor().
priority of the constraint handler for upgrading of linear constraints Definition at line 53 of file cons_logicor.c. Referenced by SCIPincludeConshdlrLogicor().
Definition at line 55 of file cons_logicor.c. Referenced by SCIPincludeConshdlrLogicor().
Definition at line 56 of file cons_logicor.c. Referenced by SCIPincludeConshdlrLogicor().
Definition at line 58 of file cons_logicor.c. Referenced by SCIPincludeConshdlrLogicor().
Definition at line 59 of file cons_logicor.c. Referenced by SCIPincludeConshdlrLogicor().
Definition at line 60 of file cons_logicor.c. Referenced by SCIPincludeConshdlrLogicor().
should pairwise constraint comparison be performed in presolving? Definition at line 62 of file cons_logicor.c. Referenced by SCIPincludeConshdlrLogicor().
should pairwise constraint comparison try to strengthen constraints by removing superflous non-zeros? Definition at line 63 of file cons_logicor.c. Referenced by SCIPincludeConshdlrLogicor().
minimal size of hash table in logicor constraint tables Definition at line 65 of file cons_logicor.c. Referenced by detectRedundantConstraints().
should hash table be used for detecting redundant constraints in advance Definition at line 66 of file cons_logicor.c. Referenced by SCIPincludeConshdlrLogicor().
should dual presolving steps be performed? Definition at line 67 of file cons_logicor.c. Referenced by SCIPincludeConshdlrLogicor().
should negated clique information be used in presolving Definition at line 68 of file cons_logicor.c. Referenced by SCIPincludeConshdlrLogicor().
should we try to shrink the variables and derive global boundchanges by using cliques and implications Definition at line 69 of file cons_logicor.c. Referenced by SCIPincludeConshdlrLogicor().
Definition at line 75 of file cons_logicor.c. Referenced by processWatchedVars().
Definition at line 2821 of file cons_logicor.c. Referenced by removeRedundantConssAndNonzeros(), and SCIP_DECL_CONSINITPRE().
Definition at line 3070 of file cons_logicor.c. Referenced by shortenConss().
Definition at line 3266 of file cons_logicor.c. Referenced by removeConstraintsDueToNegCliques(). Function Documentation
installs rounding locks for the given variable in the given logic or constraint
Definition at line 144 of file cons_logicor.c. References FALSE, SCIP_CALL, SCIP_OKAY, SCIPlockVarCons(), TRUE, and unlockRounding(). Referenced by addCoef().
removes rounding locks for the given variable in the given logic or constraint
Definition at line 158 of file cons_logicor.c. References conshdlrdataCreate(), FALSE, SCIP_CALL, SCIP_OKAY, SCIPunlockVarCons(), and TRUE. Referenced by delCoefPos(), and lockRounding().
creates constraint handler data for logic or constraint handler
Definition at line 172 of file cons_logicor.c. References conshdlrdataFree(), NULL, SCIP_CALL, SCIP_OKAY, and SCIPallocMemory. Referenced by SCIPincludeConshdlrLogicor(), and unlockRounding().
frees constraint handler data for logic or constraint handler
Definition at line 197 of file cons_logicor.c. References consdataEnsureVarsSize(), NULL, SCIP_OKAY, and SCIPfreeMemory. Referenced by conshdlrdataCreate().
ensures, that the vars array can store at least num entries
Definition at line 212 of file cons_logicor.c. References consdataCreate(), NULL, SCIP_CALL, SCIP_OKAY, SCIPcalcMemGrowSize(), and SCIPreallocBlockMemoryArray. Referenced by addCoef(), and conshdlrdataFree().
creates a logic or constraint data object
Definition at line 236 of file cons_logicor.c. References consdataFree(), FALSE, NULL, SCIP_CALL, SCIP_OKAY, SCIP_VARSTATUS_MULTAGGR, SCIPallocBlockMemory, SCIPcaptureVar(), SCIPduplicateBlockMemoryArray, SCIPgetTransformedVars(), SCIPisTransformed(), SCIPvarGetProbvar(), SCIPvarGetStatus(), and TRUE. Referenced by consdataEnsureVarsSize(), and SCIPcreateConsLogicor().
frees a logic or constraint data
Definition at line 304 of file cons_logicor.c. References consdataPrint(), NULL, SCIP_CALL, SCIP_OKAY, SCIPfreeBlockMemory, SCIPfreeBlockMemoryArrayNull, SCIPreleaseRow(), and SCIPreleaseVar(). Referenced by consdataCreate().
prints logic or constraint to file stream
Definition at line 335 of file cons_logicor.c. References NULL, SCIP_CALL, SCIP_OKAY, SCIPinfoMessage(), SCIPwriteVarsList(), switchWatchedvars(), and TRUE. Referenced by applyFixings(), and consdataFree().
stores the given variable numbers as watched variables, and updates the event processing
Definition at line 361 of file cons_logicor.c. References addCoef(), NULL, SCIP_CALL, SCIP_EVENTTYPE_LBRELAXED, SCIP_EVENTTYPE_UBTIGHTENED, SCIP_OKAY, SCIPcatchVarEvent(), SCIPconsGetData(), and SCIPdropVarEvent(). Referenced by consdataPrint(), delCoefPos(), and processWatchedVars().
adds coefficient in logicor constraint
Definition at line 432 of file cons_logicor.c. References consdataEnsureVarsSize(), CONSHDLR_NAME, delCoefPos(), FALSE, lockRounding(), NULL, SCIP_Bool, SCIP_CALL, SCIP_EVENTTYPE_VARFIXED, SCIP_OKAY, SCIP_STAGE_INITPRESOLVE, SCIP_STAGE_PRESOLVING, SCIP_VARSTATUS_MULTAGGR, SCIPaddVarToRow(), SCIPcaptureVar(), SCIPcatchVarEvent(), SCIPconsGetData(), SCIPconshdlrGetData(), SCIPconsIsTransformed(), SCIPfindConshdlr(), SCIPgetStage(), SCIPgetTransformedVar(), SCIPvarGetProbvar(), SCIPvarGetStatus(), SCIPvarIsTransformed(), and TRUE. Referenced by applyFixings(), SCIPaddCoefLogicor(), and switchWatchedvars().
deletes coefficient at given position from logic or constraint data
Definition at line 502 of file cons_logicor.c. References dualPresolving(), FALSE, NULL, SCIP_CALL, SCIP_EVENTTYPE_VARFIXED, SCIP_OKAY, SCIP_STAGE_INITPRESOLVE, SCIP_STAGE_PRESOLVING, SCIPconsGetData(), SCIPconsIsTransformed(), SCIPdropVarEvent(), SCIPenableConsPropagation(), SCIPgetStage(), SCIPreleaseVar(), SCIPvarIsTransformed(), switchWatchedvars(), TRUE, and unlockRounding(). Referenced by addCoef(), applyFixings(), dualPresolving(), mergeMultiples(), removeConstraintsDueToNegCliques(), removeRedundantNonZeros(), and shortenConss().
in case a part (more than one variable) in the logic or constraint is independent of every else, we can perform dual reductions;
also added the special case were exactly one variable is locked by this constraint and another variable without any uplocks has a better objective value than this single variable
Note: the following dual reduction for logic or constraints is already performed by the presolver "dualfix"
Definition at line 584 of file cons_logicor.c. References applyFixings(), delCoefPos(), FALSE, NULL, SCIP_Bool, SCIP_CALL, SCIP_INVALID, SCIP_OKAY, SCIP_Real, SCIP_SUCCESS, SCIPconsGetData(), SCIPconsIsActive(), SCIPconsIsChecked(), SCIPconsIsModifiable(), SCIPdebugMessage, SCIPdelCons(), SCIPfixVar(), SCIPinfinity(), SCIPisGE(), SCIPisLT(), SCIPisNegative(), SCIPvarGetAggregatedObj(), SCIPvarGetLbGlobal(), SCIPvarGetName(), SCIPvarGetNLocksDown(), SCIPvarGetNLocksUp(), SCIPvarGetObj(), SCIPvarGetProbvarBinary(), SCIPvarGetUbGlobal(), and SCIPvarIsActive(). Referenced by delCoefPos().
deletes all zero-fixed variables, checks for variables fixed to one, replace all variables which are not active or not a negation of an active variable by there active or negation of an active counterpart
Definition at line 835 of file cons_logicor.c. References addCoef(), analyzeConflict(), consdataPrint(), delCoefPos(), FALSE, MAX, NULL, SCIP_Bool, SCIP_CALL, SCIP_ERROR, SCIP_MAXSTRLEN, SCIP_OKAY, SCIP_Real, SCIP_VARSTATUS_MULTAGGR, SCIP_VARSTATUS_NEGATED, SCIPaddCons(), SCIPallocBufferArray, SCIPconsGetData(), SCIPconsGetName(), SCIPconsIsAdded(), SCIPconsIsChecked(), SCIPconsIsDynamic(), SCIPconsIsEnforced(), SCIPconsIsInitial(), SCIPconsIsLocal(), SCIPconsIsModifiable(), SCIPconsIsPropagated(), SCIPconsIsRemovable(), SCIPconsIsSeparated(), SCIPconsIsStickingAtNode(), SCIPcreateConsLinear(), SCIPdebug, SCIPdebugMessage, SCIPdebugPrintCons, SCIPdelCons(), SCIPerrorMessage, SCIPfreeBufferArray, SCIPgetBinvarRepresentatives(), SCIPgetProbvarLinearSum(), SCIPinfinity(), SCIPisEQ(), SCIPisFeasEQ(), SCIPisZero(), SCIPreallocBufferArray, SCIPreleaseCons(), SCIPsnprintf(), SCIPvarGetLbGlobal(), SCIPvarGetNegatedVar(), SCIPvarGetNegationVar(), SCIPvarGetStatus(), SCIPvarGetUbGlobal(), SCIPvarIsActive(), SCIPvarIsBinary(), SCIPwarningMessage(), and TRUE. Referenced by dualPresolving(), fixDeleteOrUpgradeCons(), and prepareCons().
analyzes conflicting assignment on given constraint, and adds conflict constraint to problem
Definition at line 1088 of file cons_logicor.c. References disableCons(), NULL, SCIP_CALL, SCIP_OKAY, SCIP_STAGE_SOLVING, SCIPaddConflictBinvar(), SCIPanalyzeConflictCons(), SCIPconsGetData(), SCIPgetStage(), SCIPinitConflictAnalysis(), SCIPinProbing(), and SCIPisConflictAnalysisApplicable(). Referenced by applyFixings(), and processWatchedVars().
disables or deletes the given constraint, depending on the current depth
Definition at line 1118 of file cons_logicor.c. References mergeMultiples(), SCIP_CALL, SCIP_OKAY, SCIPconsGetName(), SCIPconsGetValidDepth(), SCIPdebugMessage, SCIPdelCons(), SCIPdisableCons(), and SCIPgetDepth(). Referenced by analyzeConflict(), and processWatchedVars().
find pairs of negated variables in constraint: constraint is redundant find sets of equal variables in constraint: multiple entries of variable can be replaced by single entry
Definition at line 1142 of file cons_logicor.c. References delCoefPos(), FALSE, NULL, processWatchedVars(), SCIP_Bool, SCIP_CALL, SCIP_OKAY, SCIP_VARSTATUS_NEGATED, SCIP_VARTYPE_BINARY, SCIP_VARTYPE_IMPLINT, SCIP_VARTYPE_INTEGER, SCIPallocBufferArray, SCIPconsGetData(), SCIPconsGetName(), SCIPdebugMessage, SCIPfreeBufferArray, SCIPgetNBinVars(), SCIPgetNImplVars(), SCIPgetNIntVars(), SCIPvarGetName(), SCIPvarGetNegationVar(), SCIPvarGetProbindex(), SCIPvarGetStatus(), SCIPvarGetType(), SCIPvarIsActive(), SCIPvarIsBinary(), SCIPvarIsNegated(), and TRUE. Referenced by disableCons(), and prepareCons().
checks constraint for violation only looking at the watched variables, applies fixings if possible
Definition at line 1291 of file cons_logicor.c. References AGEINCREASE, analyzeConflict(), checkCons(), CONSHDLR_NAME, disableCons(), FALSE, NULL, SCIP_Bool, SCIP_BRANCHDIR_DOWNWARDS, SCIP_CALL, SCIP_Longint, SCIP_LONGINT_MAX, SCIP_OKAY, SCIPaddConsAge(), SCIPconsGetData(), SCIPconsGetHdlr(), SCIPconsGetName(), SCIPconshdlrGetName(), SCIPconsIsModifiable(), SCIPdebugMessage, SCIPdisableConsPropagation(), SCIPgetDepth(), SCIPinferBinvarCons(), SCIPisFeasEQ(), SCIPresetConsAge(), SCIPvarGetLbLocal(), SCIPvarGetName(), SCIPvarGetNBranchingsCurrentRun(), SCIPvarGetUbLocal(), switchWatchedvars(), and TRUE. Referenced by enforcePseudo(), mergeMultiples(), and separateCons().
checks constraint for violation, returns TRUE iff constraint is feasible
Definition at line 1509 of file cons_logicor.c. References createRow(), FALSE, NULL, SCIP_OKAY, SCIP_Real, SCIPconsGetData(), SCIPgetSolVal(), SCIPisFeasGE(), SCIPisFeasLE(), SCIPisFeasLT(), and SCIPvarIsBinary(). Referenced by enforcePseudo(), processWatchedVars(), and separateCons().
creates an LP row in a logic or constraint data object
Definition at line 1552 of file cons_logicor.c. References addCut(), NULL, SCIP_CALL, SCIP_OKAY, SCIPaddVarsToRowSameCoef(), SCIPconsGetData(), SCIPconsGetHdlr(), SCIPconsGetName(), SCIPconsIsLocal(), SCIPconsIsModifiable(), SCIPconsIsRemovable(), SCIPcreateEmptyRowCons(), and SCIPinfinity(). Referenced by addCut(), and checkCons().
adds logic or constraint as cut to the LP
Definition at line 1573 of file cons_logicor.c. References createRow(), FALSE, NULL, SCIP_CALL, SCIP_OKAY, SCIPaddCut(), SCIPconsGetData(), SCIPconsGetName(), SCIPdebugMessage, SCIProwIsInLP(), and separateCons(). Referenced by createRow(), SCIP_DECL_CONSINITLP(), and separateCons().
checks constraint for violation, and adds it as a cut if possible
Definition at line 1607 of file cons_logicor.c. References addCut(), checkCons(), CONSHDLR_NAME, enforcePseudo(), FALSE, NULL, processWatchedVars(), SCIP_Bool, SCIP_CALL, SCIP_OKAY, SCIP_Real, SCIPconsGetData(), SCIPconsGetHdlr(), SCIPconsGetName(), SCIPconshdlrGetName(), SCIPconsIsPropagationEnabled(), SCIPdebugMessage, SCIPgetRowLPFeasibility(), SCIPisFeasNegative(), SCIPresetConsAge(), SCIProwIsInLP(), and TRUE. Referenced by addCut().
enforces the pseudo solution on the given constraint
Definition at line 1684 of file cons_logicor.c. References checkCons(), consdataSort(), CONSHDLR_NAME, FALSE, NULL, processWatchedVars(), SCIP_Bool, SCIP_CALL, SCIP_OKAY, SCIPconsGetHdlr(), SCIPconshdlrGetName(), SCIPconsIsPropagationEnabled(), SCIPhasCurrentNodeLP(), SCIPresetConsAge(), and TRUE. Referenced by separateCons().
sorts logicor constraint's variables by non-decreasing variable index
Definition at line 1743 of file cons_logicor.c. References NULL, SCIP_Bool, SCIP_DECL_HASHGETKEY(), SCIPsortedvecFindPtr(), SCIPsortPtr(), SCIPvarCompare(), and TRUE. Referenced by detectRedundantConstraints(), enforcePseudo(), removeRedundantConssAndNonzeros(), and removeRedundantNonZeros().
gets the key of the given element Definition at line 1824 of file cons_logicor.c. Referenced by consdataSort().
returns TRUE iff both keys are equal; two constraints are equal if they have the same variables Definition at line 1832 of file cons_logicor.c.
returns the hash value of the key Definition at line 1878 of file cons_logicor.c.
compares each constraint with all other constraints for a possible duplication and removes duplicates using a hash table; also
Definition at line 1905 of file cons_logicor.c. References consdataSort(), HASHSIZE_LOGICORCONS, MAX, NULL, removeRedundantCons(), SCIP_CALL, SCIP_OKAY, SCIPcalcHashtableSize(), SCIPconsGetData(), SCIPconsGetPos(), SCIPconsIsActive(), SCIPconsIsModifiable(), SCIPdelCons(), SCIPhashtableCreate(), SCIPhashtableFree(), SCIPhashtableInsert(), SCIPhashtableRetrieve(), and SCIPupdateConsFlags().
removes the redundant second constraint and updates the flags of the first one
Definition at line 1993 of file cons_logicor.c. References calcSignature(), NULL, SCIP_CALL, SCIP_OKAY, SCIPconsGetName(), SCIPdebugMessage, SCIPdebugPrintCons, SCIPdelCons(), and SCIPupdateConsFlags(). Referenced by detectRedundantConstraints(), and removeRedundantConss().
compute and return a signature for given variables
Definition at line 2020 of file cons_logicor.c. References consdataCalcSignature(), NULL, and SCIPvarGetIndex(). Referenced by consdataCalcSignature(), removeRedundantCons(), and removeRedundantNonZeros().
compute the constraint signature which is used to detect constraints, that contain potentially the same set of variables
Definition at line 2043 of file cons_logicor.c. References calcSignature(), removeConsFromOccurList(), and TRUE. Referenced by calcSignature(), removeRedundantConssAndNonzeros(), and removeRedundantNonZeros().
remove a constraint from the column representation
Definition at line 2056 of file cons_logicor.c. References findShortestOccurlist(), NULL, SCIPconsGetData(), SCIPconsIsActive(), SCIPhashmapExists(), and SCIPhashmapGetImage(). Referenced by consdataCalcSignature(), removeRedundantConss(), and removeRedundantNonZeros().
determine shortest constraint list in column representation
Definition at line 2116 of file cons_logicor.c. References NULL, removeRedundantConss(), SCIPhashmapExists(), and SCIPhashmapGetImage(). Referenced by removeConsFromOccurList(), removeRedundantConss(), and removeRedundantNonZeros().
run a pairwise comparison for detecting subset-constraints of other constraint while using a signature
Definition at line 2171 of file cons_logicor.c. References findShortestOccurlist(), NULL, removeConsFromOccurList(), removeRedundantCons(), SCIP_CALL, SCIP_DECL_SORTPTRCOMP(), SCIP_OKAY, SCIPconsGetData(), SCIPconsIsActive(), SCIPconsIsModifiable(), and SCIPvarCompare(). Referenced by findShortestOccurlist(), and removeRedundantConssAndNonzeros().
compararer for sorting constraints after their number of variables Definition at line 2289 of file cons_logicor.c. Referenced by removeRedundantConss().
add a constraint to the column representation
Definition at line 2308 of file cons_logicor.c. References NULL, removeRedundantNonZeros(), SCIP_CALL, SCIP_OKAY, SCIPallocBufferArray, SCIPcalcMemGrowSize(), SCIPconsGetData(), SCIPconsIsActive(), SCIPconsIsChecked(), SCIPhashmapExists(), SCIPhashmapGetImage(), SCIPhashmapInsert(), SCIPreallocBufferArray, SCIPvarGetNegatedVar(), SCIPvarGetNLocksDown(), and SCIPvarIsActive(). Referenced by removeRedundantConssAndNonzeros().
run a pairwise comparison for the given variables against all constraits to detect redundant non-zeros in these constraints
Definition at line 2407 of file cons_logicor.c. References calcSignature(), consdataCalcSignature(), consdataSort(), delCoefPos(), FALSE, findShortestOccurlist(), NULL, removeConsFromOccurList(), SCIP_CALL, SCIP_OKAY, SCIPconsGetData(), SCIPconsGetName(), SCIPconsIsActive(), SCIPconsIsModifiable(), SCIPdebugMessage, SCIPdebugPrintCons, SCIPdelCons(), SCIPhashmapExists(), SCIPhashmapGetImage(), SCIPupdateConsFlags(), SCIPvarCompare(), SCIPvarGetName(), SCIPvarGetNegatedVar(), strengthenConss(), and TRUE. Referenced by addConsToOccurList(), and strengthenConss().
find and remove redundant non-zero entries
Definition at line 2650 of file cons_logicor.c. References NULL, prepareCons(), removeRedundantNonZeros(), SCIP_Bool, SCIP_CALL, SCIP_OKAY, SCIPconsGetData(), SCIPconsIsActive(), SCIPconsIsDeleted(), SCIPconsIsModifiable(), SCIPhashmapExists(), and SCIPvarGetNegatedVar(). Referenced by removeRedundantConssAndNonzeros(), and removeRedundantNonZeros().
prepares a constraint by removing fixings and merge it
Definition at line 2741 of file cons_logicor.c. References applyFixings(), FALSE, mergeMultiples(), NULL, SCIP_Bool, SCIP_CALL, SCIP_OKAY, SCIPconsGetData(), SCIPconsIsDeleted(), SCIPdebugMessage, SCIPdelCons(), SCIPfixVar(), and TRUE. Referenced by removeConstraintsDueToNegCliques(), removeRedundantConssAndNonzeros(), shortenConss(), and strengthenConss().
find covered/subsumed constraints and redundant non-zero entries covered: e.g.: c1: x1 + x2 + x3 >= 1 c2: x1 + x2 + x3 + x4 >= 1 strengthen: e.g.: c1: x1 + x2 + x3 >= 1 c2: x1 + x2 + ~x3 + x4 >= 1 => c2: x1 + x2 + x4 >= 1
Definition at line 2838 of file cons_logicor.c. References addConsToOccurList(), BMSclearMemoryArray, consdataCalcSignature(), consdataSort(), FALSE, HASHTABLESIZE_FACTOR, NULL, prepareCons(), removeRedundantConss(), SCIP_Bool, SCIP_CALL, SCIP_OKAY, SCIPallocBufferArray, SCIPblkmem(), SCIPcalcHashtableSize(), SCIPconsGetData(), SCIPconsIsActive(), SCIPconsIsDeleted(), SCIPconsIsModifiable(), SCIPdebugMessage, SCIPduplicateBufferArray, SCIPfreeBufferArray, SCIPfreeBufferArrayNull, SCIPgetNContVars(), SCIPgetNVars(), SCIPhashmapCreate(), SCIPhashmapFree(), SCIPsortPtr(), strengthenConss(), and TRUE.
try to tighten constraints by reducing the number of variables in the constraints using implications and cliques, also derive fixations through them,
Definition at line 3076 of file cons_logicor.c. References BMSclearMemoryArray, delCoefPos(), FALSE, MAX_CONSLENGTH, NULL, prepareCons(), SCIP_Bool, SCIP_CALL, SCIP_OKAY, SCIP_Real, SCIP_VARSTATUS_NEGATED, SCIPallocBufferArray, SCIPallocCleanBufferArray, SCIPcleanupCliques(), SCIPconsGetData(), SCIPconsIsDeleted(), SCIPdebugMessage, SCIPdelCons(), SCIPfixVar(), SCIPfreeBufferArray, SCIPfreeCleanBufferArray, SCIPgetNCliques(), SCIPgetNContVars(), SCIPgetNImplications(), SCIPgetNVars(), SCIPshrinkDisjunctiveVarSet(), SCIPvarGetNegationVar(), SCIPvarGetStatus(), SCIPvarIsActive(), and TRUE.
try to find a negated clique in a constraint which makes this constraint redundant but we need to keep the negated clique information alive, so we create a corresponding set-packing constraint
Definition at line 3272 of file cons_logicor.c. References BMScopyMemoryArray, delCoefPos(), FALSE, fixDeleteOrUpgradeCons(), MAXCOMPARISONS, NULL, prepareCons(), SCIP_Bool, SCIP_CALL, SCIP_OKAY, SCIP_VARSTATUS_NEGATED, SCIPaddCons(), SCIPallocBufferArray, SCIPconsGetData(), SCIPconsGetName(), SCIPconshdlrGetData(), SCIPconsIsActive(), SCIPconsIsChecked(), SCIPconsIsDeleted(), SCIPconsIsDynamic(), SCIPconsIsEnforced(), SCIPconsIsInitial(), SCIPconsIsLocal(), SCIPconsIsModifiable(), SCIPconsIsPropagated(), SCIPconsIsRemovable(), SCIPconsIsSeparated(), SCIPconsIsStickingAtNode(), SCIPcreateConsSetpack(), SCIPdebugMessage, SCIPdebugPrintCons, SCIPdelCons(), SCIPfreeBufferArray, SCIPgetNCliques(), SCIPgetNContVars(), SCIPgetNImplications(), SCIPgetNVars(), SCIPisStopped(), SCIPreleaseCons(), SCIPvarGetName(), SCIPvarGetNCliques(), SCIPvarGetNegatedVar(), SCIPvarGetNegationVar(), SCIPvarGetNImpls(), SCIPvarGetStatus(), SCIPvarIsActive(), SCIPvarIsNegated(), SCIPvarsHaveCommonClique(), and TRUE.
handle all cases with less than three variables in a logicor constraint in case a constraint has zero variables left, we detected infeasibility in case a constraint has one variables left, we will fix it to one in case a constraint has two variables left, we will add the implication and upgrade it to a set-packing constraint
Definition at line 3545 of file cons_logicor.c. References applyFixings(), createNormalizedLogicor(), FALSE, NULL, SCIP_Bool, SCIP_CALL, SCIP_MAXSTRLEN, SCIP_OKAY, SCIP_Real, SCIP_VARSTATUS_MULTAGGR, SCIPaddClique(), SCIPaddCons(), SCIPconsGetData(), SCIPconsGetName(), SCIPconsIsChecked(), SCIPconsIsDeleted(), SCIPconsIsDynamic(), SCIPconsIsEnforced(), SCIPconsIsInitial(), SCIPconsIsLocal(), SCIPconsIsModifiable(), SCIPconsIsPropagated(), SCIPconsIsRemovable(), SCIPconsIsSeparated(), SCIPconsIsStickingAtNode(), SCIPcreateConsLinear(), SCIPcreateConsSetpack(), SCIPdebugMessage, SCIPdebugPrintCons, SCIPdelCons(), SCIPfixVar(), SCIPgetNegatedVar(), SCIPreleaseCons(), SCIPsnprintf(), SCIPvarGetName(), SCIPvarGetStatus(), and TRUE. Referenced by removeConstraintsDueToNegCliques().
creates and captures a normalized (with all coefficients +1) logic or constraint
Definition at line 3731 of file cons_logicor.c. References NULL, SCIP_CALL, SCIP_DECL_LINCONSUPGD(), SCIP_OKAY, SCIPallocBufferArray, SCIPcreateConsLogicor(), SCIPfreeBufferArray, and SCIPgetNegatedVar(). Referenced by fixDeleteOrUpgradeCons().
Definition at line 3797 of file cons_logicor.c. Referenced by createNormalizedLogicor().
copy method for constraint handler plugins (called when SCIP copies plugins) Definition at line 3842 of file cons_logicor.c.
destructor of constraint handler to free constraint handler data (called when SCIP is exiting) Definition at line 3858 of file cons_logicor.c.
presolving initialization method of constraint handler (called when presolving is about to begin) Definition at line 3880 of file cons_logicor.c.
presolving deinitialization method of constraint handler (called after presolving has been finished) Definition at line 3913 of file cons_logicor.c.
solving process deinitialization method of constraint handler (called before branch and bound process data is freed) Definition at line 3951 of file cons_logicor.c. References NULL, SCIP_CALL, SCIP_DECL_CONSDELETE(), SCIP_OKAY, SCIPconsGetData(), and SCIPreleaseRow().
frees specific constraint data Definition at line 3974 of file cons_logicor.c. Referenced by SCIP_DECL_CONSEXITSOL().
transforms constraint data into data belonging to the transformed problem Definition at line 4005 of file cons_logicor.c.
LP initialization method of constraint handler (called before the initial LP relaxation at a node is solved) Definition at line 4038 of file cons_logicor.c. References addCut(), NULL, SCIP_CALL, SCIP_DECL_CONSSEPALP(), SCIP_OKAY, and SCIPconsIsInitial().
separation method of constraint handler for LP solutions Definition at line 4056 of file cons_logicor.c. Referenced by SCIP_DECL_CONSINITLP().
separation method of constraint handler for arbitrary primal solutions Definition at line 4103 of file cons_logicor.c.
constraint enforcing method of constraint handler for LP solutions Definition at line 4150 of file cons_logicor.c.
constraint enforcing method of constraint handler for pseudo solutions Definition at line 4200 of file cons_logicor.c.
feasibility check method of constraint handler for integral solutions Definition at line 4247 of file cons_logicor.c.
domain propagation method of constraint handler Definition at line 4303 of file cons_logicor.c.
presolving method of constraint handler Definition at line 4348 of file cons_logicor.c.
propagation conflict resolving method of constraint handler Definition at line 4560 of file cons_logicor.c.
variable rounding lock method of constraint handler Definition at line 4613 of file cons_logicor.c.
constraint activation notification method of constraint handler Definition at line 4633 of file cons_logicor.c.
constraint deactivation notification method of constraint handler Definition at line 4672 of file cons_logicor.c.
constraint display method of constraint handler Definition at line 4713 of file cons_logicor.c.
constraint copying method of constraint handler Definition at line 4727 of file cons_logicor.c.
constraint parsing method of constraint handler Definition at line 4753 of file cons_logicor.c.
constraint method of constraint handler which returns the variables (if possible) Definition at line 4848 of file cons_logicor.c.
constraint method of constraint handler which returns the number of variables (if possible) Definition at line 4870 of file cons_logicor.c.
Definition at line 4888 of file cons_logicor.c.
Definition at line 4950 of file cons_logicor.c.
creates the handler for logic or constraints and includes it in SCIP
Definition at line 5019 of file cons_logicor.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, conshdlrdataCreate(), DEFAULT_DUALPRESOLVING, DEFAULT_IMPLICATIONS, DEFAULT_NEGATEDCLIQUE, DEFAULT_PRESOLPAIRWISE, DEFAULT_PRESOLUSEHASHING, DEFAULT_STRENGTHEN, EVENTHDLR_DESC, EVENTHDLR_NAME, LINCONSUPGD_PRIORITY, NULL, SCIP_CALL, SCIP_OKAY, SCIPaddBoolParam(), SCIPcreateConsLogicor(), SCIPfindConshdlr(), SCIPincludeConflicthdlrBasic(), SCIPincludeConshdlrBasic(), SCIPincludeEventhdlrBasic(), SCIPincludeLinconsUpgrade(), SCIPsetConshdlrActive(), SCIPsetConshdlrCopy(), SCIPsetConshdlrDeactive(), SCIPsetConshdlrDelete(), SCIPsetConshdlrExitpre(), SCIPsetConshdlrExitsol(), SCIPsetConshdlrFree(), SCIPsetConshdlrGetNVars(), SCIPsetConshdlrGetVars(), SCIPsetConshdlrInitlp(), SCIPsetConshdlrInitpre(), SCIPsetConshdlrParse(), SCIPsetConshdlrPresol(), SCIPsetConshdlrPrint(), SCIPsetConshdlrProp(), SCIPsetConshdlrResprop(), SCIPsetConshdlrSepa(), SCIPsetConshdlrTrans(), and TRUE. Referenced by SCIPincludeDefaultPlugins().
creates and captures a logic or constraint
Definition at line 5111 of file cons_logicor.c. References consdataCreate(), CONSHDLR_NAME, NULL, SCIP_CALL, SCIP_EVENTTYPE_VARFIXED, SCIP_INVALIDCALL, SCIP_OKAY, SCIP_STAGE_PRESOLVING, SCIPcatchVarEvent(), SCIPconshdlrGetData(), SCIPcreateCons(), SCIPcreateConsBasicLogicor(), SCIPerrorMessage, SCIPfindConshdlr(), SCIPgetStage(), and SCIPisTransformed(). Referenced by addLocalConss(), addSplitcons(), consdataLinearize(), createAndAddLinearCons(), createConflict(), createNormalizedLogicor(), extendToCover(), readCnf(), SCIP_DECL_CONFLICTEXEC(), SCIPcreateConsBasicLogicor(), SCIPincludeConshdlrLogicor(), SCIPreoptApplyGlbConss(), and upgradeCons().
creates and captures a logicor constraint in its most basic version, i. e., all constraint flags are set to their basic value as explained for the method SCIPcreateConsLogicor(); all flags can be set via SCIPsetConsFLAGNAME-methods in scip.h
Definition at line 5188 of file cons_logicor.c. References FALSE, NULL, SCIP_CALL, SCIP_OKAY, SCIPaddCoefLogicor(), SCIPcreateConsLogicor(), and TRUE. Referenced by SCIPcreateConsLogicor().
adds coefficient in logic or constraint
Definition at line 5205 of file cons_logicor.c. References addCoef(), CONSHDLR_NAME, NULL, SCIP_CALL, SCIP_INVALIDDATA, SCIP_OKAY, SCIPconsGetHdlr(), SCIPconshdlrGetName(), SCIPerrorMessage, and SCIPgetNVarsLogicor(). Referenced by addCoefTerm(), SCIPaddCoefPseudoboolean(), and SCIPcreateConsBasicLogicor(). gets number of variables in logic or constraint
Definition at line 5228 of file cons_logicor.c. References CONSHDLR_NAME, NULL, SCIPABORT, SCIPconsGetData(), SCIPconsGetHdlr(), SCIPconshdlrGetName(), SCIPerrorMessage, and SCIPgetVarsLogicor(). Referenced by addLogicOrConstraints(), checkLogicor(), correctPresoldata(), createPresoldata(), extractGates(), getLinearConsNVars(), getLinearConsVarsData(), SCIP_DECL_READERWRITE(), SCIPaddCoefLogicor(), SCIPmatrixCreate(), SCIPwriteCcg(), SCIPwriteGms(), SCIPwriteLp(), SCIPwritePbm(), SCIPwritePip(), SCIPwritePpm(), writeFzn(), and writeOpbConstraints(). gets array of variables in logic or constraint
Definition at line 5249 of file cons_logicor.c. References CONSHDLR_NAME, NULL, SCIP_Real, SCIPABORT, SCIPconsGetData(), SCIPconsGetHdlr(), SCIPconshdlrGetName(), SCIPerrorMessage, and SCIPgetDualsolLogicor(). Referenced by addLogicOrConstraints(), checkLogicor(), extractGates(), getLinearConsVarsData(), SCIP_DECL_READERWRITE(), SCIPgetNVarsLogicor(), SCIPmatrixCreate(), SCIPwriteCcg(), SCIPwriteGms(), SCIPwriteLp(), SCIPwritePbm(), SCIPwritePip(), SCIPwritePpm(), writeFzn(), and writeOpbConstraints(). gets the dual solution of the logic or constraint in the current LP
Definition at line 5270 of file cons_logicor.c. References CONSHDLR_NAME, NULL, SCIP_INVALID, SCIP_Real, SCIPABORT, SCIPconsGetData(), SCIPconsGetHdlr(), SCIPconshdlrGetName(), SCIPerrorMessage, SCIPgetDualfarkasLogicor(), and SCIProwGetDualsol(). Referenced by SCIPgetVarsLogicor(). gets the dual Farkas value of the logic or constraint in the current infeasible LP
Definition at line 5294 of file cons_logicor.c. References CONSHDLR_NAME, NULL, SCIP_INVALID, SCIPABORT, SCIPconsGetData(), SCIPconsGetHdlr(), SCIPconshdlrGetName(), SCIPerrorMessage, SCIPgetRowLogicor(), and SCIProwGetDualfarkas(). Referenced by SCIPgetDualsolLogicor(). returns the linear relaxation of the given logic or constraint; may return NULL if no LP row was yet created; the user must not modify the row!
Definition at line 5320 of file cons_logicor.c. References CONSHDLR_NAME, NULL, SCIPABORT, SCIPconsGetData(), SCIPconsGetHdlr(), SCIPconshdlrGetName(), and SCIPerrorMessage. Referenced by SCIPgetDualfarkasLogicor(). |