presol_tworowbnd.c File Reference Detailed Descriptiondo bound tightening by using two rows Perform bound tightening on two inequalities with some common variables. Let two constraints be given:
with the set of variable indexes, , , , , , and . Solve the following two LPs
and use and for getting bounds on . If , then the second constraint above is redundant. Definition in file presol_tworowbnd.c. #include <stdio.h> #include <assert.h> #include <string.h> #include "scip/pub_matrix.h" #include "presol_tworowbnd.h" Go to the source code of this file.
Macro Definition Documentation
Definition at line 49 of file presol_tworowbnd.c. Referenced by SCIP_DECL_PRESOLCOPY(), and SCIPincludePresolTworowbnd().
Definition at line 50 of file presol_tworowbnd.c. Referenced by SCIPincludePresolTworowbnd().
priority of the presolver (>= 0: before, < 0: after constraint handlers) Definition at line 51 of file presol_tworowbnd.c. Referenced by SCIPincludePresolTworowbnd().
maximal number of presolving rounds the presolver participates in (-1: no limit) Definition at line 52 of file presol_tworowbnd.c. Referenced by SCIPincludePresolTworowbnd().
Definition at line 53 of file presol_tworowbnd.c. Referenced by SCIPincludePresolTworowbnd().
threshold for two constraints overlap Definition at line 55 of file presol_tworowbnd.c. Referenced by calcTwoRowBnds().
max number of baserows for switching to fast mode Definition at line 56 of file presol_tworowbnd.c. Referenced by calcTwoRowBnds(). Typedef Documentation
Definition at line 68 of file presol_tworowbnd.c. Enumeration Type Documentation
type of bound change
Definition at line 62 of file presol_tworowbnd.c. Function Documentation
solve two LPs with one row (single constraint) each a1x + a3y >= b1 (other row) a2x + a4z >= b2 (base row) minact = min{a2x : a1x + a3y >= b1} maxact = max{a2x : a1x + a3y >= b1}
Definition at line 224 of file presol_tworowbnd.c. References FALSE, NULL, SCIP_Bool, SCIP_LONGINT_MAX, SCIP_Real, SCIP_STATUS_OPTIMAL, SCIPcreate(), SCIPfree(), SCIPgetBestSol(), SCIPgetNVars(), SCIPgetSolOrigObj(), SCIPgetStatus(), SCIPgetVars(), SCIPincludeDefaultPlugins(), SCIPinfinity(), SCIPisEQ(), SCIPisInfinity(), SCIPmatrixGetRowLhs(), SCIPmatrixGetRowNNonzs(), SCIPmatrixPrintRow(), SCIPreadProb(), SCIPsetIntParam(), SCIPsolve(), SCIPsortRealInt(), SCIPvarGetObj(), and TRUE. Referenced by applyTightening().
calculate min activity
Definition at line 660 of file presol_tworowbnd.c. References SCIP_Real, SCIPinfinity(), and SCIPisInfinity(). Referenced by applyTightening().
calculate max activity
Definition at line 707 of file presol_tworowbnd.c. References SCIP_Real, SCIPinfinity(), and SCIPisInfinity(). Referenced by applyTightening().
get max activity without one column
Definition at line 749 of file presol_tworowbnd.c. References SCIP_Real, and SCIPisInfinity(). Referenced by applyTightening().
apply bound tightening on two overlapping constraints
Definition at line 786 of file presol_tworowbnd.c. References BOTHBOUNDS, getActivities(), getMaxActivity(), getMaxResActivity(), getMinActivity(), LOWERBOUND, SCIP_Real, SCIPisGE(), SCIPisInfinity(), SCIPmatrixGetRowLhs(), SCIPmatrixGetRowNNonzs(), TRUE, and UPPERBOUND. Referenced by calcTwoRowBnds().
extract coefficients from matrix
Definition at line 956 of file presol_tworowbnd.c. References SCIP_Real, SCIPmatrixGetNColumns(), SCIPmatrixGetRowIdxPtr(), SCIPmatrixGetRowNNonzs(), and SCIPmatrixGetRowValPtr(). Referenced by calcTwoRowBnds().
calculate overlap-size
Definition at line 1054 of file presol_tworowbnd.c. References SCIPmatrixGetRowIdxPtr(), and SCIPmatrixGetRowNNonzs(). Referenced by calcTwoRowBnds().
Definition at line 1113 of file presol_tworowbnd.c. References SCIPmatrixGetRowIdxPtr(), and SCIPmatrixGetRowNNonzs(). Referenced by calcTwoRowBnds().
perform bound tightening on two rows with a specific support intersection
Definition at line 1169 of file presol_tworowbnd.c. References applyTightening(), BMSclearMemoryArray, FALSE, FASTMODE_THRESHOLD, getCoefficients(), getNumOverlap(), getOverlapBaseOrdered(), MIN, SCIP_Bool, SCIP_CALL, SCIP_OKAY, SCIP_Real, SCIPallocBufferArray, SCIPfreeBufferArray, SCIPmatrixGetColIdxPtr(), SCIPmatrixGetColNNonzs(), SCIPmatrixGetNColumns(), SCIPmatrixGetNRows(), SCIPmatrixGetRowIdxPtr(), SCIPmatrixGetRowNNonzs(), SCIPmatrixIsRowRhsInfinity(), SUPPORT_THRESHOLD, and TRUE. Referenced by SCIP_DECL_PRESOLEXEC().
determine base rows
Definition at line 1340 of file presol_tworowbnd.c. References NULL, SCIP_OKAY, SCIPmatrixGetNRows(), and SCIPmatrixIsRowRhsInfinity(). Referenced by SCIP_DECL_PRESOLEXEC().
get bounds of variables
Definition at line 1375 of file presol_tworowbnd.c. References NULL, SCIPmatrixGetNColumns(), SCIPmatrixGetVar(), SCIPvarGetLbGlobal(), and SCIPvarGetUbGlobal(). Referenced by SCIP_DECL_PRESOLEXEC().
copy method for constraint handler plugins (called when SCIP copies plugins) Definition at line 1407 of file presol_tworowbnd.c. References NULL, PRESOL_NAME, SCIP_CALL, SCIP_OKAY, SCIPincludePresolTworowbnd(), and SCIPpresolGetName().
execution method of presolver Definition at line 1421 of file presol_tworowbnd.c. References BMSclearMemoryArray, BOTHBOUNDS, calcTwoRowBnds(), FALSE, getBaseRows(), getBounds(), LOWERBOUND, NULL, SCIP_Bool, SCIP_CALL, SCIP_DIDNOTFIND, SCIP_DIDNOTRUN, SCIP_OKAY, SCIP_Real, SCIP_STAGE_PRESOLVING, SCIPallocBufferArray, SCIPdelCons(), SCIPfreeBufferArray, SCIPgetNActivePricers(), SCIPgetNVars(), SCIPgetStage(), SCIPinProbing(), SCIPisNLPEnabled(), SCIPisStopped(), SCIPmatrixCreate(), SCIPmatrixFree(), SCIPmatrixGetCons(), SCIPmatrixGetNColumns(), SCIPmatrixGetNRows(), SCIPmatrixGetVar(), SCIPtightenVarLb(), SCIPtightenVarUb(), and UPPERBOUND.
creates the tworowbnd presolver and includes it in SCIP
Definition at line 1547 of file presol_tworowbnd.c. References NULL, PRESOL_DESC, PRESOL_MAXROUNDS, PRESOL_NAME, PRESOL_PRIORITY, PRESOL_TIMING, SCIP_CALL, SCIP_OKAY, SCIPincludePresolBasic(), and SCIPsetPresolCopy(). Referenced by SCIP_DECL_PRESOLCOPY(), and SCIPincludeDefaultPlugins(). |