Detailed Descriptionremove redundant variable upper bound constraints This presolver looks for dominating variable bound constraints on the same continuous variable and discards them. For example let x be a continuous variable and y, y' are binary variables. In addition, let two variable upper bound constraints ax - by <= e and cx - dy' <= f are given. If ax - by <= e implies cx - dy' <= f, then we can remove the second constraint and substitute/aggregate y' := y. The same can be done with variable lower bound constraints. Definition in file presol_redvub.c. #include <stdio.h> #include <assert.h> #include <string.h> #include "scip/pub_matrix.h" #include "presol_redvub.h" Go to the source code of this file.
Macro Definition Documentation
Definition at line 40 of file presol_redvub.c. Referenced by SCIPincludePresolRedvub().
Definition at line 41 of file presol_redvub.c. Referenced by SCIPincludePresolRedvub().
priority of the presolver (>= 0: before, < 0: after constraint handlers) Definition at line 42 of file presol_redvub.c. Referenced by SCIPincludePresolRedvub().
maximal number of presolving rounds the presolver participates in (-1: no limit) Definition at line 43 of file presol_redvub.c. Referenced by SCIPincludePresolRedvub().
Definition at line 44 of file presol_redvub.c. Referenced by SCIPincludePresolRedvub().
maximal number of pairwise comparisons Definition at line 46 of file presol_redvub.c. Referenced by detectDominatingVlbs(), and detectDominatingVubs(). Function Documentation
verify if the constraint is a variable upper bound constraint
Definition at line 54 of file presol_redvub.c. References FALSE, NULL, SCIP_Bool, SCIP_Real, SCIP_VARTYPE_BINARY, SCIP_VARTYPE_CONTINUOUS, SCIPisGE(), SCIPmatrixGetNRows(), SCIPmatrixGetRowIdxPtr(), SCIPmatrixGetRowLhs(), SCIPmatrixGetRowNNonzs(), SCIPmatrixGetRowValPtr(), SCIPmatrixGetVar(), SCIPmatrixIsRowRhsInfinity(), SCIPvarGetLbGlobal(), SCIPvarGetObj(), SCIPvarGetType(), and TRUE. Referenced by findVarAggrRedVbcons().
verify if the constraint is a variable lower bound constraint
Definition at line 135 of file presol_redvub.c. References FALSE, NULL, SCIP_Bool, SCIP_Real, SCIP_VARTYPE_BINARY, SCIP_VARTYPE_CONTINUOUS, SCIPisGE(), SCIPmatrixGetNRows(), SCIPmatrixGetRowIdxPtr(), SCIPmatrixGetRowLhs(), SCIPmatrixGetRowNNonzs(), SCIPmatrixGetRowValPtr(), SCIPmatrixGetVar(), SCIPmatrixIsRowRhsInfinity(), SCIPvarGetLbGlobal(), SCIPvarGetObj(), SCIPvarGetType(), and TRUE. Referenced by findVarAggrRedVbcons().
searches for variable upper bound constraints on the same continuous variable with a dominance relation
Definition at line 217 of file presol_redvub.c. References FALSE, MAXPAIRCOMP, NULL, SCIP_Bool, SCIP_CALL, SCIP_OKAY, SCIPdebugMessage, SCIPinfoMessage(), SCIPisEQ(), SCIPisGT(), SCIPisLE(), SCIPmatrixGetColNDownlocks(), SCIPmatrixGetCons(), SCIPmatrixGetVar(), SCIPprintCons(), SCIPvarGetName(), and TRUE. Referenced by findVarAggrRedVbcons().
searches for variable lower bound constraints on the same continuous variable with a dominance relation
Definition at line 316 of file presol_redvub.c. References FALSE, MAXPAIRCOMP, NULL, SCIP_Bool, SCIP_CALL, SCIP_OKAY, SCIPdebugMessage, SCIPinfoMessage(), SCIPisEQ(), SCIPisGE(), SCIPisLT(), SCIPmatrixGetColNUplocks(), SCIPmatrixGetCons(), SCIPmatrixGetVar(), SCIPprintCons(), SCIPvarGetName(), and TRUE. Referenced by findVarAggrRedVbcons().
find variable aggregations and redundant variable bound constraints
Definition at line 415 of file presol_redvub.c. References detectDominatingVlbs(), detectDominatingVubs(), isVlb(), isVub(), SCIP_CALL, SCIP_OKAY, SCIP_Real, SCIP_VARTYPE_CONTINUOUS, SCIPallocBufferArray, SCIPfreeBufferArray, SCIPmatrixGetColIdxPtr(), SCIPmatrixGetColNNonzs(), SCIPmatrixGetNColumns(), SCIPmatrixGetNRows(), SCIPmatrixGetVar(), and SCIPvarGetType(). Referenced by SCIP_DECL_PRESOLEXEC().
execution method of presolver Definition at line 529 of file presol_redvub.c. References BMSclearMemoryArray, findVarAggrRedVbcons(), NULL, SCIP_Bool, SCIP_CALL, SCIP_CUTOFF, SCIP_DIDNOTFIND, SCIP_DIDNOTRUN, SCIP_OKAY, SCIP_STAGE_PRESOLVING, SCIP_SUCCESS, SCIPaggregateVars(), SCIPallocBufferArray, SCIPdebugMessage, SCIPdelCons(), SCIPfreeBufferArray, SCIPgetNActivePricers(), SCIPgetNContVars(), SCIPgetStage(), SCIPinProbing(), SCIPisNLPEnabled(), SCIPisStopped(), SCIPmatrixCreate(), SCIPmatrixFree(), SCIPmatrixGetCons(), SCIPmatrixGetNColumns(), SCIPmatrixGetNRows(), and SCIPmatrixGetVar().
creates the redvub presolver and includes it in SCIP
Definition at line 648 of file presol_redvub.c. References NULL, PRESOL_DESC, PRESOL_MAXROUNDS, PRESOL_NAME, PRESOL_PRIORITY, PRESOL_TIMING, SCIP_CALL, SCIP_OKAY, and SCIPincludePresolBasic(). Referenced by SCIPincludeDefaultPlugins(). |