presol_implfree.c
Go to the documentation of this file.
25 /*---+----1----+----2----+----3----+----4----+----5----+----6----+----7----+----8----+----9----+----0----+----1----+----2*/ 37 #define PRESOL_PRIORITY -1000 /**< priority of the presolver (>= 0: before, < 0: after constraint handlers) */ 38 #define PRESOL_MAXROUNDS 0 /**< maximal number of presolving rounds the presolver participates in (-1: no limit) */ 39 #define PRESOL_TIMING SCIP_PRESOLTIMING_EXHAUSTIVE /* timing of the presolver (fast, medium, or exhaustive) */ 913 getActivityResiduals(scip, matrix, col, row, coef, &minresactivity, &maxresactivity, &isminsettoinfinity, &ismaxsettoinfinity); 916 consredundant = (SCIPisFeasLE(scip, newlhs, minresactivity) && SCIPisFeasLE(scip, maxresactivity, newrhs)); 992 if( !skipvars[*rowpnt] && isVarImpliedFree(scip, matrix, *rowpnt, r, lockedcons, &tmpimpllbrowidx, &tmpimplubrowidx) ) 1083 if( (SCIPgetStage(scip) != SCIP_STAGE_PRESOLVING) || SCIPinProbing(scip) || SCIPisNLPEnabled(scip) ) 1136 getNumHugeActivities(scip, matrix, maxactposhuge, maxactneghuge, minactposhuge, minactneghuge); 1140 consredundant, lockedcons, skipvars, maxactposhuge, maxactneghuge, minactposhuge, minactneghuge); 1216 SCIPdebugMessage("constraint <%s>: multi-aggregate <%s> ==", SCIPconsGetName(multiaggcons), SCIPvarGetName(multiaggvar)); 1223 SCIPdebugPrintf(" %+.15g<%s>", scalars[cnt], SCIPvarGetName(SCIPmatrixGetVar(matrix, *rowpnt))); 1229 aggrconst, SCIPvarGetName(multiaggvar), SCIPvarGetLbGlobal(multiaggvar), SCIPvarGetUbGlobal(multiaggvar)); 1232 SCIP_CALL( SCIPmultiaggregateVar(scip, multiaggvar, nvars, vars, scalars, aggrconst, &infeasible, &aggregated) ); 1241 SCIPdebugMessage("constraint <%s>: infeasible multi-aggregation\n", SCIPconsGetName(multiaggcons)); 1285 SCIP_CALL( SCIPincludePresolBasic(scip, &presol, PRESOL_NAME, PRESOL_DESC, PRESOL_PRIORITY, PRESOL_MAXROUNDS,
static SCIP_DECL_PRESOLEXEC(presolExecImplfree) Definition: presol_implfree.c:1074 Definition: struct_presol.h:36 static void getNumHugeActivities(SCIP *scip, SCIP_MATRIX *matrix, int *maxactposhuge, int *maxactneghuge, int *minactposhuge, int *minactneghuge) Definition: presol_implfree.c:492 Definition: type_result.h:33 static void getActivityResiduals(SCIP *scip, SCIP_MATRIX *matrix, int col, int row, SCIP_Real val, SCIP_Real *minresactivity, SCIP_Real *maxresactivity, SCIP_Bool *isminsettoinfinity, SCIP_Bool *ismaxsettoinfinity) Definition: presol_implfree.c:155 Definition: struct_scip.h:53 static SCIP_Real sideChangeNumericalStable(SCIP *scip, SCIP_Real oldside, SCIP_Real aggrconst, SCIP_Real val) Definition: presol_implfree.c:474 SCIP_CONS * SCIPmatrixGetCons(SCIP_MATRIX *matrix, int row) Definition: matrix.c:1525 SCIP_RETCODE SCIPsetPresolCopy(SCIP *scip, SCIP_PRESOL *presol, SCIP_DECL_PRESOLCOPY((*presolcopy))) Definition: scip.c:6226 static SCIP_Bool isConsRedundant(SCIP *scip, SCIP_MATRIX *matrix, int col, int row, SCIP_Real coef) Definition: presol_implfree.c:894 Definition: struct_var.h:196 static void calcNewSidesAfterAggregation(SCIP *scip, SCIP_MATRIX *matrix, int col, int row, SCIP_Real coef, SCIP_Real *newlhs, SCIP_Real *newrhs) Definition: presol_implfree.c:838 static void getMultiaggVars(SCIP *scip, SCIP_MATRIX *matrix, SCIP_Bool *multiaggvars, int *nummultiaggvars, int *multiaggequalities, SCIP_Bool *consredundant, SCIP_Bool *lockedcons, SCIP_Bool *skipvars, int *maxactposhuge, int *maxactneghuge, int *minactposhuge, int *minactneghuge) Definition: presol_implfree.c:923 static SCIP_DECL_PRESOLCOPY(presolCopyImplfree) Definition: presol_implfree.c:1059 SCIP_Real SCIPmatrixGetRowMaxActivity(SCIP_MATRIX *matrix, int row) Definition: matrix.c:1465 SCIP_RETCODE SCIPmatrixCreate(SCIP *scip, SCIP_MATRIX **matrixptr, SCIP_Bool *initialized, SCIP_Bool *complete) Definition: matrix.c:430 int SCIPmatrixGetRowNNonzs(SCIP_MATRIX *matrix, int row) Definition: matrix.c:1373 SCIP_Real SCIPmatrixGetRowLhs(SCIP_MATRIX *matrix, int row) Definition: matrix.c:1407 SCIP_Real * SCIPmatrixGetColValPtr(SCIP_MATRIX *matrix, int col) Definition: matrix.c:1233 SCIP_RETCODE SCIPincludePresolImplfree(SCIP *scip) Definition: presol_implfree.c:1278 Definition: type_result.h:35 Definition: struct_cons.h:36 int SCIPmatrixGetRowNMaxActPosInf(SCIP_MATRIX *matrix, int row) Definition: matrix.c:1513 int * SCIPmatrixGetRowIdxPtr(SCIP_MATRIX *matrix, int row) Definition: matrix.c:1361 static SCIP_Real getMaxActSingleRowWithoutCol(SCIP *scip, SCIP_MATRIX *matrix, int row, int col) Definition: presol_implfree.c:51 exploit implied free variables for multi-aggregation int SCIPmatrixGetRowNMaxActNegInf(SCIP_MATRIX *matrix, int row) Definition: matrix.c:1501 Definition: type_retcode.h:33 SCIP_Real SCIPmatrixGetColLb(SCIP_MATRIX *matrix, int col) Definition: matrix.c:1290 SCIP_Real * SCIPmatrixGetRowValPtr(SCIP_MATRIX *matrix, int row) Definition: matrix.c:1349 SCIP_Real SCIPmatrixGetColUb(SCIP_MATRIX *matrix, int col) Definition: matrix.c:1279 SCIP_RETCODE SCIPmultiaggregateVar(SCIP *scip, SCIP_VAR *var, int naggvars, SCIP_VAR **aggvars, SCIP_Real *scalars, SCIP_Real constant, SCIP_Bool *infeasible, SCIP_Bool *aggregated) Definition: scip.c:23020 static SCIP_Bool isVarImpliedFree(SCIP *scip, SCIP_MATRIX *matrix, int col, int row, SCIP_Bool *lockedcons, int *impllbrowidx, int *implubrowidx) Definition: presol_implfree.c:363 static SCIP_Bool numericalStable(SCIP *scip, SCIP_MATRIX *matrix, int col, int row, SCIP_Real aggrconst, int *maxactposhuge, int *maxactneghuge, int *minactposhuge, int *minactneghuge) Definition: presol_implfree.c:728 int * SCIPmatrixGetColIdxPtr(SCIP_MATRIX *matrix, int col) Definition: matrix.c:1245 Definition: type_set.h:38 Definition: struct_matrix.h:37 static void getActivityRelax(SCIP *scip, SCIP_MATRIX *matrix, int row, int col, SCIP_Real val, int *maxactposhuge, int *maxactneghuge, int *minactposhuge, int *minactneghuge, SCIP_Bool *minisrelax, SCIP_Bool *maxisrelax) Definition: presol_implfree.c:577 int SCIPmatrixGetRowNMinActNegInf(SCIP_MATRIX *matrix, int row) Definition: matrix.c:1477 public methods for matrix SCIP_Real SCIPmatrixGetRowRhs(SCIP_MATRIX *matrix, int row) Definition: matrix.c:1419 SCIP_Bool SCIPisFeasLE(SCIP *scip, SCIP_Real val1, SCIP_Real val2) Definition: scip.c:41933 static SCIP_Real getFillIn(SCIP_MATRIX *matrix, int col, int row) Definition: presol_implfree.c:446 SCIP_Real SCIPmatrixGetRowMinActivity(SCIP_MATRIX *matrix, int row) Definition: matrix.c:1453 int SCIPmatrixGetRowNMinActPosInf(SCIP_MATRIX *matrix, int row) Definition: matrix.c:1489 static SCIP_Real getMinActSingleRowWithoutCol(SCIP *scip, SCIP_MATRIX *matrix, int row, int col) Definition: presol_implfree.c:103 Definition: objbranchrule.h:33 SCIP_RETCODE SCIPincludePresolBasic(SCIP *scip, SCIP_PRESOL **presolptr, const char *name, const char *desc, int priority, int maxrounds, SCIP_PRESOLTIMING timing, SCIP_DECL_PRESOLEXEC((*presolexec)), SCIP_PRESOLDATA *presoldata) Definition: scip.c:6191 static void getVarBoundsOfRow(SCIP *scip, SCIP_MATRIX *matrix, int col, int row, SCIP_Real val, SCIP_Real *rowlb, SCIP_Bool *lbfound, SCIP_Real *rowub, SCIP_Bool *ubfound) Definition: presol_implfree.c:296 int SCIPmatrixGetColNNonzs(SCIP_MATRIX *matrix, int col) Definition: matrix.c:1257 Definition: type_var.h:56 |