All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
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(), SCIP_DECL_CONSACTIVE(), SCIP_DECL_CONSCHECK(), SCIP_DECL_CONSDEACTIVE(), SCIP_DECL_CONSDELETE(), SCIP_DECL_CONSENFOLP(), SCIP_DECL_CONSENFOPS(), SCIP_DECL_CONSFREE(), SCIP_DECL_CONSHDLRCOPY(), SCIP_DECL_CONSPRESOL(), SCIP_DECL_CONSPROP(), SCIP_DECL_CONSRESPROP(), SCIP_DECL_CONSSEPALP(), SCIP_DECL_CONSSEPASOL(), SCIP_DECL_CONSTRANS(), 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 44 of file cons_logicor.c. Referenced by SCIPincludeConshdlrLogicor().
should separation method be delayed, if other separators found cuts? Definition at line 45 of file cons_logicor.c. Referenced by SCIPincludeConshdlrLogicor().
should propagation method be delayed, if other propagators found reductions? Definition at line 46 of file cons_logicor.c. Referenced by SCIPincludeConshdlrLogicor().
should presolving method be delayed, if other presolvers 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().
priority of the constraint handler for upgrading of linear constraints Definition at line 52 of file cons_logicor.c. Referenced by SCIPincludeConshdlrLogicor().
Definition at line 54 of file cons_logicor.c. Referenced by SCIP_DECL_EVENTEXEC(), and SCIPincludeConshdlrLogicor().
Definition at line 55 of file cons_logicor.c. Referenced by SCIPincludeConshdlrLogicor().
Definition at line 57 of file cons_logicor.c. Referenced by SCIP_DECL_CONFLICTEXEC(), and 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().
should pairwise constraint comparison be performed in presolving? Definition at line 61 of file cons_logicor.c. Referenced by SCIPincludeConshdlrLogicor().
should pairwise constraint comparison try to strengthen constraints by removing superflous non-zeros? Definition at line 62 of file cons_logicor.c. Referenced by SCIPincludeConshdlrLogicor().
minimal size of hash table in logicor constraint tables Definition at line 64 of file cons_logicor.c. Referenced by detectRedundantConstraints().
should hash table be used for detecting redundant constraints in advance Definition at line 65 of file cons_logicor.c. Referenced by SCIPincludeConshdlrLogicor().
should dual presolving steps be performed? Definition at line 66 of file cons_logicor.c. Referenced by SCIPincludeConshdlrLogicor().
should negated clique information be used in presolving Definition at line 67 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 68 of file cons_logicor.c. Referenced by SCIPincludeConshdlrLogicor().
Definition at line 73 of file cons_logicor.c. Referenced by processWatchedVars().
Definition at line 2795 of file cons_logicor.c. Referenced by removeRedundantConssAndNonzeros().
Definition at line 3045 of file cons_logicor.c. Referenced by shortenConss().
Definition at line 3208 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 139 of file cons_logicor.c. References FALSE, SCIP_CALL, SCIP_OKAY, SCIPlockVarCons(), and TRUE. Referenced by addCoef().
removes rounding locks for the given variable in the given logic or constraint
Definition at line 153 of file cons_logicor.c. References FALSE, SCIP_CALL, SCIP_OKAY, SCIPunlockVarCons(), and TRUE. Referenced by delCoefPos().
creates constraint handler data for logic or constraint handler
Definition at line 167 of file cons_logicor.c. References NULL, SCIP_CALL, SCIP_OKAY, and SCIPallocMemory. Referenced by SCIPincludeConshdlrLogicor().
frees constraint handler data for logic or constraint handler
Definition at line 190 of file cons_logicor.c. References NULL, SCIP_OKAY, and SCIPfreeMemory. Referenced by SCIP_DECL_CONSFREE().
ensures, that the vars array can store at least num entries
Definition at line 205 of file cons_logicor.c. References NULL, SCIP_CALL, SCIP_OKAY, SCIPcalcMemGrowSize(), and SCIPreallocBlockMemoryArray. Referenced by addCoef().
creates a logic or constraint data object
Definition at line 229 of file cons_logicor.c. References FALSE, NULL, SCIP_CALL, SCIP_OKAY, SCIP_VARSTATUS_MULTAGGR, SCIPallocBlockMemory, SCIPcaptureVar(), SCIPduplicateBlockMemoryArray, SCIPgetTransformedVars(), SCIPisTransformed(), SCIPvarGetProbvar(), SCIPvarGetStatus(), and TRUE. Referenced by SCIP_DECL_CONSTRANS(), and SCIPcreateConsLogicor().
frees a logic or constraint data
Definition at line 297 of file cons_logicor.c. References NULL, SCIP_CALL, SCIP_OKAY, SCIPfreeBlockMemory, SCIPfreeBlockMemoryArrayNull, SCIPreleaseRow(), and SCIPreleaseVar(). Referenced by SCIP_DECL_CONSDELETE().
prints logic or constraint to file stream
Definition at line 328 of file cons_logicor.c. References NULL, SCIP_CALL, SCIP_OKAY, SCIPinfoMessage(), SCIPwriteVarsList(), and TRUE. Referenced by applyFixings(), SCIP_DECL_CONSACTIVE(), SCIP_DECL_CONSDEACTIVE(), and SCIP_DECL_CONSPRINT().
stores the given variable numbers as watched variables, and updates the event processing
Definition at line 354 of file cons_logicor.c. References NULL, SCIP_CALL, SCIP_EVENTTYPE_LBRELAXED, SCIP_EVENTTYPE_UBTIGHTENED, SCIP_OKAY, SCIPcatchVarEvent(), SCIPconsGetData(), and SCIPdropVarEvent(). Referenced by delCoefPos(), and processWatchedVars().
adds coefficient in logicor constraint
Definition at line 425 of file cons_logicor.c. References consdataEnsureVarsSize(), CONSHDLR_NAME, 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(), and SCIPaddCoefLogicor().
deletes coefficient at given position from logic or constraint data
Definition at line 495 of file cons_logicor.c. References 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 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;
Note: the following dual reduction for logic or constraints is already performed by the presolver "dualfix"
Definition at line 573 of file cons_logicor.c. References delCoefPos(), FALSE, NULL, SCIP_Bool, SCIP_CALL, SCIP_INVALID, SCIP_OKAY, SCIP_Real, SCIP_SUCCESS, SCIPconsGetData(), SCIPconsIsActive(), SCIPconsIsChecked(), SCIPconsIsModifiable(), SCIPdebugMessage, SCIPdelCons(), SCIPfixVar(), SCIPinfinity(), SCIPisLT(), SCIPvarGetLbGlobal(), SCIPvarGetName(), SCIPvarGetNLocksDown(), SCIPvarGetNLocksUp(), SCIPvarGetObj(), SCIPvarGetProbvarBinary(), SCIPvarGetUbGlobal(), and SCIPvarIsActive(). Referenced by SCIP_DECL_CONSPRESOL().
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 807 of file cons_logicor.c. References addCoef(), 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 fixDeleteOrUpgradeCons(), prepareCons(), SCIP_DECL_CONSEXITPRE(), and SCIP_DECL_CONSPRESOL().
analyzes conflicting assignment on given constraint, and adds conflict constraint to problem
Definition at line 1060 of file cons_logicor.c. References NULL, SCIP_CALL, SCIP_OKAY, SCIP_STAGE_SOLVING, SCIPaddConflictBinvar(), SCIPanalyzeConflictCons(), SCIPconsGetData(), SCIPgetStage(), SCIPinitConflictAnalysis(), SCIPinProbing(), and SCIPisConflictAnalysisApplicable(). Referenced by processWatchedVars().
disables or deletes the given constraint, depending on the current depth
Definition at line 1090 of file cons_logicor.c. References SCIP_CALL, SCIP_OKAY, SCIPconsGetName(), SCIPconsGetValidDepth(), SCIPdebugMessage, SCIPdelCons(), SCIPdisableCons(), and SCIPgetDepth(). Referenced by 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 1114 of file cons_logicor.c. References delCoefPos(), FALSE, NULL, 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 prepareCons(), and SCIP_DECL_CONSPRESOL().
checks constraint for violation only looking at the watched variables, applies fixings if possible
Definition at line 1265 of file cons_logicor.c. References AGEINCREASE, analyzeConflict(), 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(), SCIP_DECL_CONSPROP(), and separateCons().
checks constraint for violation, returns TRUE iff constraint is feasible
Definition at line 1483 of file cons_logicor.c. References FALSE, NULL, SCIP_OKAY, SCIP_Real, SCIPconsGetData(), SCIPgetSolVal(), SCIPisFeasGE(), SCIPisFeasLE(), SCIPisFeasLT(), and SCIPvarIsBinary(). Referenced by enforcePseudo(), SCIP_DECL_CONSCHECK(), and separateCons().
creates an LP row in a logic or constraint data object
Definition at line 1526 of file cons_logicor.c. References NULL, SCIP_CALL, SCIP_OKAY, SCIPaddVarsToRowSameCoef(), SCIPconsGetData(), SCIPconsGetHdlr(), SCIPconsGetName(), SCIPconsIsLocal(), SCIPconsIsModifiable(), SCIPconsIsRemovable(), SCIPcreateEmptyRowCons(), and SCIPinfinity(). Referenced by addCut().
adds logic or constraint as cut to the LP
Definition at line 1547 of file cons_logicor.c. References createRow(), FALSE, NULL, SCIP_CALL, SCIP_OKAY, SCIPaddCut(), SCIPconsGetData(), SCIPconsGetName(), SCIPdebugMessage, and SCIProwIsInLP(). Referenced by SCIP_DECL_CONSINITLP(), and separateCons().
checks constraint for violation, and adds it as a cut if possible
Definition at line 1581 of file cons_logicor.c. References addCut(), checkCons(), CONSHDLR_NAME, 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 SCIP_DECL_CONSENFOLP(), SCIP_DECL_CONSSEPALP(), and SCIP_DECL_CONSSEPASOL().
enforces the pseudo solution on the given constraint
Definition at line 1658 of file cons_logicor.c. References checkCons(), CONSHDLR_NAME, FALSE, NULL, processWatchedVars(), SCIP_Bool, SCIP_CALL, SCIP_OKAY, SCIPconsGetHdlr(), SCIPconshdlrGetName(), SCIPconsIsPropagationEnabled(), SCIPhasCurrentNodeLP(), SCIPresetConsAge(), and TRUE. Referenced by SCIP_DECL_CONSENFOPS().
sorts logicor constraint's variables by non-decreasing variable index
Definition at line 1717 of file cons_logicor.c. References NULL, SCIP_Bool, SCIPsortedvecFindPtr(), SCIPsortPtr(), SCIPvarCompare(), and TRUE. Referenced by detectRedundantConstraints(), removeRedundantConssAndNonzeros(), removeRedundantNonZeros(), and SCIP_DECL_HASHKEYEQ().
gets the key of the given element Definition at line 1798 of file cons_logicor.c.
returns TRUE iff both keys are equal; two constraints are equal if they have the same variables Definition at line 1806 of file cons_logicor.c. References consdataSort(), FALSE, NULL, SCIP_Bool, SCIPconsGetData(), SCIPvarCompare(), and TRUE.
returns the hash value of the key Definition at line 1852 of file cons_logicor.c. References NULL, SCIPconsGetData(), and SCIPvarGetIndex().
compares each constraint with all other constraints for a possible duplication and removes duplicates using a hash table; also
Definition at line 1879 of file cons_logicor.c. References consdataSort(), HASHSIZE_LOGICORCONS, MAX, NULL, SCIP_CALL, SCIP_OKAY, SCIPcalcHashtableSize(), SCIPconsGetData(), SCIPconsGetPos(), SCIPconsIsActive(), SCIPconsIsModifiable(), SCIPdelCons(), SCIPhashtableCreate(), SCIPhashtableFree(), SCIPhashtableInsert(), SCIPhashtableRetrieve(), and SCIPupdateConsFlags(). Referenced by SCIP_DECL_CONSPRESOL().
removes the redundant second constraint and updates the flags of the first one
Definition at line 1967 of file cons_logicor.c. References NULL, SCIP_CALL, SCIP_OKAY, SCIPconsGetName(), SCIPdebugMessage, SCIPdebugPrintCons, SCIPdelCons(), and SCIPupdateConsFlags(). Referenced by removeRedundantConss().
compute and return a signature for given variables
Definition at line 1994 of file cons_logicor.c. References NULL, and SCIPvarGetIndex(). Referenced by consdataCalcSignature(), and removeRedundantNonZeros().
compute the constraint signature which is used to detect constraints, that contain potentially the same set of variables
Definition at line 2017 of file cons_logicor.c. References calcSignature(), and TRUE. Referenced by removeRedundantConssAndNonzeros(), and removeRedundantNonZeros().
remove a constraint from the column representation
Definition at line 2030 of file cons_logicor.c. References NULL, SCIPconsGetData(), SCIPconsIsActive(), SCIPhashmapExists(), and SCIPhashmapGetImage(). Referenced by removeRedundantConss(), and removeRedundantNonZeros().
determine shortest constraint list in column representation
Definition at line 2090 of file cons_logicor.c. References NULL, SCIPhashmapExists(), and SCIPhashmapGetImage(). Referenced by removeRedundantConss(), and removeRedundantNonZeros().
run a pairwise comparison for detecting subset-constraints of other constraint while using a signature
Definition at line 2145 of file cons_logicor.c. References findShortestOccurlist(), NULL, removeConsFromOccurList(), removeRedundantCons(), SCIP_CALL, SCIP_OKAY, SCIPconsGetData(), SCIPconsIsActive(), SCIPconsIsModifiable(), and SCIPvarCompare(). Referenced by removeRedundantConssAndNonzeros().
compararer for sorting constraints after their number of variables Definition at line 2263 of file cons_logicor.c. References NULL, and SCIPconsGetData().
add a constraint to the column representation
Definition at line 2282 of file cons_logicor.c. References NULL, 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 2381 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(), and TRUE. Referenced by strengthenConss().
find and remove redundant non-zero entries
Definition at line 2624 of file cons_logicor.c. References NULL, removeRedundantNonZeros(), SCIP_Bool, SCIP_CALL, SCIP_OKAY, SCIPconsGetData(), SCIPconsIsActive(), SCIPconsIsDeleted(), SCIPconsIsModifiable(), SCIPhashmapExists(), and SCIPvarGetNegatedVar(). Referenced by removeRedundantConssAndNonzeros().
prepares a constraint by removing fixings and merge it
Definition at line 2715 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(), and shortenConss().
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 2812 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. Referenced by SCIP_DECL_CONSPRESOL().
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 3051 of file cons_logicor.c. References delCoefPos(), FALSE, MAX_CONSLENGTH, NULL, prepareCons(), SCIP_Bool, SCIP_CALL, SCIP_OKAY, SCIP_Real, SCIP_VARSTATUS_NEGATED, SCIPallocBufferArray, SCIPconsGetData(), SCIPconsIsDeleted(), SCIPdebugMessage, SCIPdelCons(), SCIPfixVar(), SCIPfreeBufferArray, SCIPgetNContVars(), SCIPgetNVars(), SCIPshrinkDisjunctiveVarSet(), SCIPvarGetNegationVar(), SCIPvarGetStatus(), SCIPvarIsActive(), and TRUE. Referenced by SCIP_DECL_CONSPRESOL().
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 3214 of file cons_logicor.c. References BMScopyMemoryArray, delCoefPos(), FALSE, 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. Referenced by SCIP_DECL_CONSPRESOL().
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 3486 of file cons_logicor.c. References applyFixings(), 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 SCIP_DECL_CONSPRESOL().
creates and captures a normalized (with all coefficients +1) logic or constraint
Definition at line 3671 of file cons_logicor.c. References NULL, SCIP_CALL, SCIP_OKAY, SCIPallocBufferArray, SCIPcreateConsLogicor(), SCIPfreeBufferArray, and SCIPgetNegatedVar(). Referenced by SCIP_DECL_LINCONSUPGD().
Definition at line 3737 of file cons_logicor.c. References createNormalizedLogicor(), NULL, SCIP_CALL, SCIP_OKAY, SCIPconsGetName(), SCIPconsIsChecked(), SCIPconsIsDynamic(), SCIPconsIsEnforced(), SCIPconsIsInitial(), SCIPconsIsLocal(), SCIPconsIsModifiable(), SCIPconsIsPropagated(), SCIPconsIsRemovable(), SCIPconsIsSeparated(), SCIPconsIsStickingAtNode(), SCIPdebugMessage, SCIPisEQ(), and SCIPisInfinity().
copy method for constraint handler plugins (called when SCIP copies plugins) Definition at line 3782 of file cons_logicor.c. References CONSHDLR_NAME, NULL, SCIP_CALL, SCIP_OKAY, SCIPconshdlrGetName(), SCIPincludeConshdlrLogicor(), and TRUE.
destructor of constraint handler to free constraint handler data (called when SCIP is exiting) Definition at line 3798 of file cons_logicor.c. References CONSHDLR_NAME, conshdlrdataFree(), NULL, SCIP_CALL, SCIP_OKAY, SCIPconshdlrGetData(), SCIPconshdlrGetName(), and SCIPconshdlrSetData().
presolving initialization method of constraint handler (called when presolving is about to begin) Definition at line 3820 of file cons_logicor.c. References NULL, SCIP_CALL, SCIP_EVENTTYPE_VARFIXED, SCIP_OKAY, SCIPcatchVarEvent(), SCIPconsGetData(), and SCIPconshdlrGetData().
presolving deinitialization method of constraint handler (called after presolving has been finished) Definition at line 3851 of file cons_logicor.c. References applyFixings(), NULL, SCIP_Bool, SCIP_CALL, SCIP_EVENTTYPE_VARFIXED, SCIP_OKAY, SCIPconsGetData(), SCIPconshdlrGetData(), SCIPconsIsDeleted(), and SCIPdropVarEvent().
solving process deinitialization method of constraint handler (called before branch and bound process data is freed) Definition at line 3889 of file cons_logicor.c. References NULL, SCIP_CALL, SCIP_OKAY, SCIPconsGetData(), and SCIPreleaseRow().
frees specific constraint data Definition at line 3912 of file cons_logicor.c. References consdataFree(), CONSHDLR_NAME, NULL, SCIP_CALL, SCIP_EVENTTYPE_VARFIXED, SCIP_OKAY, SCIP_STAGE_INITPRESOLVE, SCIP_STAGE_PRESOLVING, SCIPconshdlrGetData(), SCIPconshdlrGetName(), SCIPdropVarEvent(), and SCIPgetStage().
transforms constraint data into data belonging to the transformed problem Definition at line 3943 of file cons_logicor.c. References consdataCreate(), CONSHDLR_NAME, NULL, SCIP_CALL, SCIP_OKAY, SCIP_STAGE_TRANSFORMING, SCIPconsGetData(), SCIPconsGetName(), SCIPconshdlrGetName(), SCIPconsIsChecked(), SCIPconsIsDynamic(), SCIPconsIsEnforced(), SCIPconsIsInitial(), SCIPconsIsLocal(), SCIPconsIsModifiable(), SCIPconsIsPropagated(), SCIPconsIsRemovable(), SCIPconsIsSeparated(), SCIPconsIsStickingAtNode(), SCIPcreateCons(), and SCIPgetStage().
LP initialization method of constraint handler (called before the initial LP relaxation at a node is solved) Definition at line 3976 of file cons_logicor.c. References addCut(), FALSE, NULL, SCIP_Bool, SCIP_CALL, SCIP_OKAY, and SCIPconsIsInitial().
separation method of constraint handler for LP solutions Definition at line 3994 of file cons_logicor.c. References CONSHDLR_NAME, FALSE, NULL, SCIP_Bool, SCIP_CALL, SCIP_CUTOFF, SCIP_DIDNOTFIND, SCIP_OKAY, SCIP_REDUCEDDOM, SCIP_SEPARATED, SCIPconshdlrGetData(), SCIPconshdlrGetName(), SCIPdebugMessage, and separateCons().
separation method of constraint handler for arbitrary primal solutions Definition at line 4041 of file cons_logicor.c. References CONSHDLR_NAME, FALSE, NULL, SCIP_Bool, SCIP_CALL, SCIP_CUTOFF, SCIP_DIDNOTFIND, SCIP_OKAY, SCIP_REDUCEDDOM, SCIP_SEPARATED, SCIPconshdlrGetData(), SCIPconshdlrGetName(), SCIPdebugMessage, and separateCons().
constraint enforcing method of constraint handler for LP solutions Definition at line 4088 of file cons_logicor.c. References CONSHDLR_NAME, FALSE, NULL, SCIP_Bool, SCIP_CALL, SCIP_CUTOFF, SCIP_FEASIBLE, SCIP_OKAY, SCIP_REDUCEDDOM, SCIP_SEPARATED, SCIPconshdlrGetData(), SCIPconshdlrGetName(), SCIPdebugMessage, and separateCons().
constraint enforcing method of constraint handler for pseudo solutions Definition at line 4138 of file cons_logicor.c. References CONSHDLR_NAME, enforcePseudo(), FALSE, NULL, SCIP_Bool, SCIP_CALL, SCIP_CUTOFF, SCIP_FEASIBLE, SCIP_INFEASIBLE, SCIP_OKAY, SCIP_REDUCEDDOM, SCIP_SOLVELP, SCIPconshdlrGetData(), SCIPconshdlrGetName(), and SCIPdebugMessage.
feasibility check method of constraint handler for integral solutions Definition at line 4185 of file cons_logicor.c. References checkCons(), CONSHDLR_NAME, NULL, SCIP_Bool, SCIP_CALL, SCIP_FEASIBLE, SCIP_INFEASIBLE, SCIP_OKAY, SCIPconsGetData(), SCIPconshdlrGetName(), SCIPgetSolVal(), SCIPinfoMessage(), SCIPisFeasLT(), SCIPprintCons(), SCIProwIsInLP(), and SCIPvarIsBinary().
domain propagation method of constraint handler Definition at line 4241 of file cons_logicor.c. References CONSHDLR_NAME, FALSE, NULL, processWatchedVars(), SCIP_Bool, SCIP_CALL, SCIP_CUTOFF, SCIP_DIDNOTFIND, SCIP_OKAY, SCIP_REDUCEDDOM, SCIP_STAGE_INITSOLVE, SCIPconsGetData(), SCIPconsGetName(), SCIPconshdlrGetData(), SCIPconshdlrGetName(), SCIPdebugMessage, and SCIPgetStage().
presolving method of constraint handler Definition at line 4286 of file cons_logicor.c. References applyFixings(), CONSHDLR_NAME, detectRedundantConstraints(), dualPresolving(), FALSE, fixDeleteOrUpgradeCons(), mergeMultiples(), NULL, removeConstraintsDueToNegCliques(), removeRedundantConssAndNonzeros(), SCIP_Bool, SCIP_CALL, SCIP_CUTOFF, SCIP_DIDNOTFIND, SCIP_OKAY, SCIP_SUCCESS, SCIPallocBufferArray, SCIPblkmem(), SCIPconsGetData(), SCIPconsGetName(), SCIPconshdlrGetData(), SCIPconshdlrGetName(), SCIPconsIsActive(), SCIPconsIsDeleted(), SCIPconsIsModifiable(), SCIPdebugMessage, SCIPdelCons(), SCIPenableConsPropagation(), SCIPfreeBufferArray, SCIPgetNCliques(), SCIPgetNContVars(), SCIPgetNImplications(), SCIPgetNVars(), SCIPisPresolveFinished(), SCIPisStopped(), and shortenConss().
propagation conflict resolving method of constraint handler Definition at line 4487 of file cons_logicor.c. References CONSHDLR_NAME, FALSE, NULL, SCIP_Bool, SCIP_CALL, SCIP_OKAY, SCIP_SUCCESS, SCIPaddConflictBinvar(), SCIPconsGetData(), SCIPconshdlrGetName(), SCIPdebugMessage, SCIPvarGetLbAtIndex(), SCIPvarGetUbAtIndex(), and TRUE.
variable rounding lock method of constraint handler Definition at line 4540 of file cons_logicor.c. References NULL, SCIP_CALL, SCIP_OKAY, SCIPaddVarLocks(), and SCIPconsGetData().
constraint activation notification method of constraint handler Definition at line 4560 of file cons_logicor.c. References consdataPrint(), CONSHDLR_NAME, NULL, SCIP_CALL, SCIP_EVENTTYPE_LBRELAXED, SCIP_EVENTTYPE_UBTIGHTENED, SCIP_OKAY, SCIPcatchVarEvent(), SCIPconsGetData(), SCIPconsGetName(), SCIPconshdlrGetData(), SCIPconshdlrGetName(), SCIPconsIsTransformed(), SCIPdebug, SCIPdebugMessage, and TRUE.
constraint deactivation notification method of constraint handler Definition at line 4599 of file cons_logicor.c. References consdataPrint(), CONSHDLR_NAME, NULL, SCIP_CALL, SCIP_EVENTTYPE_LBRELAXED, SCIP_EVENTTYPE_UBTIGHTENED, SCIP_OKAY, SCIPconsGetData(), SCIPconsGetName(), SCIPconshdlrGetData(), SCIPconshdlrGetName(), SCIPconsIsTransformed(), SCIPdebug, SCIPdebugMessage, SCIPdropVarEvent(), and TRUE.
constraint display method of constraint handler Definition at line 4640 of file cons_logicor.c. References consdataPrint(), FALSE, NULL, SCIP_CALL, SCIP_OKAY, and SCIPconsGetData().
constraint copying method of constraint handler Definition at line 4654 of file cons_logicor.c. References NULL, SCIP_CALL, SCIP_OKAY, SCIPconsGetName(), SCIPcopyConsLinear(), SCIPgetNVarsLogicor(), SCIPgetVarsLogicor(), and SCIPinfinity().
constraint parsing method of constraint handler Definition at line 4680 of file cons_logicor.c. References FALSE, NULL, SCIP_CALL, SCIP_OKAY, SCIPallocBufferArray, SCIPcreateConsLogicor(), SCIPdebugMessage, SCIPduplicateBufferArray, SCIPerrorMessage, SCIPfreeBufferArray, SCIPparseVarsList(), SCIPreallocBufferArray, and TRUE.
constraint method of constraint handler which returns the variables (if possible) Definition at line 4775 of file cons_logicor.c. References BMScopyMemoryArray, FALSE, NULL, SCIP_OKAY, SCIPconsGetData(), and TRUE.
constraint method of constraint handler which returns the number of variables (if possible) Definition at line 4797 of file cons_logicor.c. References NULL, SCIP_OKAY, SCIPconsGetData(), and TRUE.
Definition at line 4815 of file cons_logicor.c. References EVENTHDLR_NAME, FALSE, NULL, SCIP_CALL, SCIP_EVENTTYPE_LBRELAXED, SCIP_EVENTTYPE_UBTIGHTENED, SCIP_EVENTTYPE_VARFIXED, SCIP_OKAY, SCIP_STAGE_PRESOLVING, SCIP_VARSTATUS_FIXED, SCIP_VARSTATUS_MULTAGGR, SCIPconsGetData(), SCIPconsGetName(), SCIPconsIsActive(), SCIPdebugMessage, SCIPenableCons(), SCIPenableConsPropagation(), SCIPeventGetType(), SCIPeventGetVar(), SCIPeventhdlrGetName(), SCIPgetDepth(), SCIPgetStage(), SCIPvarGetLbGlobal(), SCIPvarGetProbvar(), SCIPvarGetStatus(), SCIPvarGetUbGlobal(), and TRUE.
Definition at line 4877 of file cons_logicor.c. References CONFLICTHDLR_NAME, FALSE, NULL, SCIP_CALL, SCIP_CONSADDED, SCIP_DIDNOTFIND, SCIP_DIDNOTRUN, SCIP_MAXSTRLEN, SCIP_OKAY, SCIPaddConsNode(), SCIPallocBufferArray, SCIPbdchginfoGetNewbound(), SCIPbdchginfoGetVar(), SCIPconflicthdlrGetName(), SCIPcreateConsLogicor(), SCIPfreeBufferArray, SCIPgetNConflictConssApplied(), SCIPgetNegatedVar(), SCIPgetNRuns(), SCIPreleaseCons(), SCIPsnprintf(), SCIPvarIsBinary(), and TRUE.
creates the handler for logic or constraints and includes it in SCIP
Definition at line 4946 of file cons_logicor.c. References CONFLICTHDLR_DESC, CONFLICTHDLR_NAME, CONFLICTHDLR_PRIORITY, 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_DUALPRESOLVING, DEFAULT_IMPLICATIONS, DEFAULT_NEGATEDCLIQUE, DEFAULT_PRESOLPAIRWISE, DEFAULT_PRESOLUSEHASHING, DEFAULT_STRENGTHEN, EVENTHDLR_DESC, EVENTHDLR_NAME, LINCONSUPGD_PRIORITY, NULL, SCIP_CALL, SCIP_OKAY, SCIPaddBoolParam(), 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 SCIP_DECL_CONSHDLRCOPY(), and SCIPincludeDefaultPlugins().
creates and captures a logic or constraint
Definition at line 5037 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(), SCIPerrorMessage, SCIPfindConshdlr(), SCIPgetStage(), and SCIPisTransformed(). Referenced by consdataLinearize(), createAndAddLinearCons(), createConflict(), createNormalizedLogicor(), extendToCover(), readCnf(), SCIP_DECL_CONFLICTEXEC(), SCIP_DECL_CONSPARSE(), SCIP_DECL_HEUREXEC(), SCIPcreateConsBasicLogicor(), 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 5114 of file cons_logicor.c. References FALSE, NULL, SCIP_CALL, SCIP_OKAY, SCIPcreateConsLogicor(), and TRUE.
adds coefficient in logic or constraint
Definition at line 5131 of file cons_logicor.c. References addCoef(), CONSHDLR_NAME, NULL, SCIP_CALL, SCIP_INVALIDDATA, SCIP_OKAY, SCIPconsGetHdlr(), SCIPconshdlrGetName(), and SCIPerrorMessage. Referenced by addCoefTerm(), and SCIPaddCoefPseudoboolean(). gets number of variables in logic or constraint
Definition at line 5154 of file cons_logicor.c. References CONSHDLR_NAME, NULL, SCIPABORT, SCIPconsGetData(), SCIPconsGetHdlr(), SCIPconshdlrGetName(), and SCIPerrorMessage. Referenced by addLogicOrConstraints(), checkLogicor(), correctPresoldata(), createPresoldata(), extractGates(), getLinearConsNVars(), getLinearConsVarsData(), initMatrix(), SCIP_DECL_CONSCOPY(), SCIP_DECL_PRESOLEXEC(), SCIP_DECL_READERWRITE(), SCIPwriteCcg(), SCIPwriteGms(), SCIPwriteLp(), SCIPwritePbm(), SCIPwritePip(), SCIPwritePpm(), writeFzn(), and writeOpbConstraints(). gets array of variables in logic or constraint
Definition at line 5175 of file cons_logicor.c. References CONSHDLR_NAME, NULL, SCIPABORT, SCIPconsGetData(), SCIPconsGetHdlr(), SCIPconshdlrGetName(), and SCIPerrorMessage. Referenced by addLogicOrConstraints(), checkLogicor(), extractGates(), getLinearConsVarsData(), initMatrix(), SCIP_DECL_CONSCOPY(), SCIP_DECL_PRESOLEXEC(), SCIP_DECL_READERWRITE(), 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 5196 of file cons_logicor.c. References CONSHDLR_NAME, NULL, SCIP_INVALID, SCIPABORT, SCIPconsGetData(), SCIPconsGetHdlr(), SCIPconshdlrGetName(), SCIPerrorMessage, and SCIProwGetDualsol(). gets the dual Farkas value of the logic or constraint in the current infeasible LP
Definition at line 5220 of file cons_logicor.c. References CONSHDLR_NAME, NULL, SCIP_INVALID, SCIPABORT, SCIPconsGetData(), SCIPconsGetHdlr(), SCIPconshdlrGetName(), SCIPerrorMessage, and SCIProwGetDualfarkas(). 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 5246 of file cons_logicor.c. References CONSHDLR_NAME, NULL, SCIPABORT, SCIPconsGetData(), SCIPconsGetHdlr(), SCIPconshdlrGetName(), and SCIPerrorMessage. |