All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
presolve.h File Reference Detailed Descriptioninternal methods for presolving Definition in file presolve.h. #include "scip/scip.h" Go to the source code of this file.
Function Documentation
try to reduce the necessary variable in a set of variables with corresponding bounds and boundtypes for which one must be fulfilled e.g. a set of logicor or bounddisjunctive constraint variables would be such a set consider the following set: x1 >= 1, x2 >= 3, x3 >= 1, x4 <= 0 by (global) implication data (cliques, implications, and variable bounds) we have also the following implications given: x1 >= 1 => x3 >= 1 x2 >= 2 => x3 >= 1 x4 <= 0 => x1 >= 1 Because of the last implication x4 is redundant, because x1 >= 1 would also be fulfilled in the variable set, so we can reduce the set by x4. Also, the both other implications and x3 >= 1 (in the given variable set) all imply exactly x3 >= 1, so we tighten the global lower bound of x3 to 1 and the set of variables gets redundant. try to reduce the necessary variable in a set of variables with corresponding bounds and boundtypes for which one must be fulfilled e.g. a set of logicor or bounddisjunctive constraint variables would be such a set consider the following set: x1 >= 1, x2 >= 3, x3 >= 1, x4 <= 0 by (global) implication data (cliques, implications, and variable bounds) we have also the following implications given: x1 >= 1 => x3 >= 1 x2 >= 2 => x3 >= 1 x4 <= 0 => x1 >= 1 Because of the last implication x4 is redundant, because x1 >= 1 would also be fulfilled in the variable set, so we can reduce the set by x4. Also, the both other implications and x3 >= 1 (in the given variable set) all implie exactly x3 >= 1, so we tighten the global lower bound of x3 to 1 and the set of variables gets redundant.
Definition at line 941 of file presolve.c. References BMSallocClearMemoryArray, BMSclearMemoryArray, BMSfreeMemoryArray, Scip::branchcand, collectBinaryCliqueData(), collectBinaryImplicationData(), collectNonBinaryImplicationData(), collectNonBinaryVBoundData(), Scip::eventqueue, FALSE, Scip::lp, Scip::mem, SCIP_Tree::npendingbdchgs, NULL, Scip::origprob, SCIP_Mem::probmem, SCIP_Tree::root, SCIP_ALLOC, SCIP_Bool, SCIP_BOUNDTYPE_LOWER, SCIP_BOUNDTYPE_UPPER, SCIP_CALL, SCIP_INVALID, SCIP_OKAY, SCIP_Real, SCIP_VARTYPE_BINARY, SCIPallocBufferArray, SCIPdebugMessage, SCIPfreeBufferArray, SCIPisGT(), SCIPisLT(), SCIPnodeAddBoundchg(), SCIPprobGetName(), SCIPprobGetNImplBinVars(), SCIPprobGetNVars(), SCIPprobGetVars(), SCIPvarGetLbGlobal(), SCIPvarGetName(), SCIPvarGetProbindex(), SCIPvarGetType(), SCIPvarGetUbGlobal(), SCIPvarIsBinary(), Scip::set, Scip::stat, Scip::transprob, Scip::tree, and TRUE. Referenced by detectImpliedBounds(), and shortenConss(). |