Detailed Descriptionperform multi-aggregation on implied free variables This presolver tries to find implied free variables within equalities which are convenient for multi-aggregation. Definition in file presol_implfree.c. #include <stdio.h> #include <assert.h> #include <string.h> #include "scip/pub_matrix.h" #include "presol_implfree.h" Go to the source code of this file.
Macro Definition Documentation
Definition at line 35 of file presol_implfree.c. Referenced by SCIP_DECL_PRESOLCOPY(), and SCIPincludePresolImplfree().
Definition at line 36 of file presol_implfree.c. Referenced by SCIPincludePresolImplfree().
priority of the presolver (>= 0: before, < 0: after constraint handlers) Definition at line 37 of file presol_implfree.c. Referenced by SCIPincludePresolImplfree().
maximal number of presolving rounds the presolver participates in (-1: no limit) Definition at line 38 of file presol_implfree.c. Referenced by SCIPincludePresolImplfree().
Definition at line 39 of file presol_implfree.c. Referenced by SCIPincludePresolImplfree().
max abs coefficients ratio Definition at line 41 of file presol_implfree.c. Referenced by numericalStable().
max side change ratio Definition at line 42 of file presol_implfree.c. Referenced by sideChangeNumericalStable(). Function Documentation
calculate max activity of one row without one column
Definition at line 51 of file presol_implfree.c. References NULL, SCIP_Real, SCIPisInfinity(), SCIPmatrixGetColLb(), SCIPmatrixGetColUb(), SCIPmatrixGetRowIdxPtr(), SCIPmatrixGetRowNNonzs(), and SCIPmatrixGetRowValPtr(). Referenced by getActivityResiduals().
calculate min activity of one row without one column
Definition at line 103 of file presol_implfree.c. References NULL, SCIP_Real, SCIPisInfinity(), SCIPmatrixGetColLb(), SCIPmatrixGetColUb(), SCIPmatrixGetRowIdxPtr(), SCIPmatrixGetRowNNonzs(), and SCIPmatrixGetRowValPtr(). Referenced by getActivityResiduals().
get min/max residual activity without the specified column
Definition at line 155 of file presol_implfree.c. References FALSE, getMaxActSingleRowWithoutCol(), getMinActSingleRowWithoutCol(), NULL, SCIP_Real, SCIPinfinity(), SCIPisInfinity(), SCIPmatrixGetColLb(), SCIPmatrixGetColUb(), SCIPmatrixGetRowMaxActivity(), SCIPmatrixGetRowMinActivity(), SCIPmatrixGetRowNMaxActNegInf(), SCIPmatrixGetRowNMaxActPosInf(), SCIPmatrixGetRowNMinActNegInf(), SCIPmatrixGetRowNMinActPosInf(), and TRUE. Referenced by getVarBoundsOfRow(), and isConsRedundant().
calculate the bounds of one variable from one row
Definition at line 296 of file presol_implfree.c. References FALSE, getActivityResiduals(), NULL, SCIP_Bool, SCIP_Real, SCIPinfinity(), SCIPisInfinity(), SCIPmatrixGetRowLhs(), SCIPmatrixGetRowRhs(), and TRUE. Referenced by isVarImpliedFree().
verify if the variable is implied free
Definition at line 363 of file presol_implfree.c. References FALSE, getVarBoundsOfRow(), NULL, SCIP_Bool, SCIP_Real, SCIPinfinity(), SCIPisFeasLE(), SCIPisInfinity(), SCIPmatrixGetColIdxPtr(), SCIPmatrixGetColLb(), SCIPmatrixGetColNNonzs(), SCIPmatrixGetColUb(), SCIPmatrixGetColValPtr(), and TRUE. Referenced by getMultiaggVars().
calculate the amount of fill-in getting from multi-aggregation
Definition at line 446 of file presol_implfree.c. References NULL, SCIP_Real, SCIPmatrixGetColNNonzs(), and SCIPmatrixGetRowNNonzs(). Referenced by getMultiaggVars().
verify if the multi-aggregation is numerical stable concerning the side change
Definition at line 474 of file presol_implfree.c. References MAX, REALABS, SCIP_Real, and SIDECHANGERATIO. Referenced by numericalStable().
calculate the huge contribution counters
Definition at line 492 of file presol_implfree.c. References NULL, SCIP_Real, SCIPisHugeValue(), SCIPisInfinity(), SCIPmatrixGetColLb(), SCIPmatrixGetColUb(), SCIPmatrixGetNRows(), SCIPmatrixGetRowIdxPtr(), SCIPmatrixGetRowNNonzs(), and SCIPmatrixGetRowValPtr(). Referenced by SCIP_DECL_PRESOLEXEC().
verify if activities could be inexact
Definition at line 577 of file presol_implfree.c. References FALSE, SCIP_Real, SCIPisHugeValue(), SCIPisInfinity(), SCIPmatrixGetColLb(), SCIPmatrixGetColUb(), SCIPmatrixGetRowNMaxActNegInf(), SCIPmatrixGetRowNMaxActPosInf(), SCIPmatrixGetRowNMinActNegInf(), SCIPmatrixGetRowNMinActPosInf(), and TRUE. Referenced by numericalStable().
verify if the multi-aggregation is numerical stable
Definition at line 728 of file presol_implfree.c. References FALSE, getActivityRelax(), MAXABSRATIO, REALABS, SCIP_Bool, SCIP_Real, SCIPinfinity(), SCIPisInfinity(), SCIPmatrixGetColIdxPtr(), SCIPmatrixGetColNNonzs(), SCIPmatrixGetColValPtr(), SCIPmatrixGetRowIdxPtr(), SCIPmatrixGetRowLhs(), SCIPmatrixGetRowNNonzs(), SCIPmatrixGetRowRhs(), SCIPmatrixGetRowValPtr(), sideChangeNumericalStable(), and TRUE. Referenced by getMultiaggVars().
calculate sides after aggregation
Definition at line 838 of file presol_implfree.c. References NULL, SCIP_Real, SCIPinfinity(), SCIPisInfinity(), SCIPisLE(), SCIPmatrixGetColLb(), SCIPmatrixGetColUb(), SCIPmatrixGetRowLhs(), and SCIPmatrixGetRowRhs(). Referenced by isConsRedundant().
verify if the constraint becomes redundant after aggregation
Definition at line 894 of file presol_implfree.c. References calcNewSidesAfterAggregation(), FALSE, getActivityResiduals(), SCIP_Bool, SCIP_Real, and SCIPisFeasLE(). Referenced by getMultiaggVars().
identify candidates for multi-aggregation
Definition at line 923 of file presol_implfree.c. References FALSE, getFillIn(), isConsRedundant(), isVarImpliedFree(), NULL, numericalStable(), SCIP_Bool, SCIP_Real, SCIP_VARTYPE_CONTINUOUS, SCIPisEQ(), SCIPmatrixGetNColumns(), SCIPmatrixGetNRows(), SCIPmatrixGetRowIdxPtr(), SCIPmatrixGetRowLhs(), SCIPmatrixGetRowNNonzs(), SCIPmatrixGetRowRhs(), SCIPmatrixGetRowValPtr(), SCIPmatrixGetVar(), SCIPvarGetType(), and TRUE. Referenced by SCIP_DECL_PRESOLEXEC().
copy method for constraint handler plugins (called when SCIP copies plugins) Definition at line 1059 of file presol_implfree.c. References NULL, PRESOL_NAME, SCIP_CALL, SCIP_OKAY, SCIPincludePresolImplfree(), and SCIPpresolGetName().
execution method of presolver Definition at line 1074 of file presol_implfree.c. References BMSclearMemoryArray, getMultiaggVars(), getNumHugeActivities(), NULL, scalars, SCIP_Bool, SCIP_CALL, SCIP_DIDNOTFIND, SCIP_DIDNOTRUN, SCIP_OKAY, SCIP_Real, SCIP_STAGE_PRESOLVING, SCIP_VARTYPE_CONTINUOUS, SCIPallocBufferArray, SCIPconsGetName(), SCIPdebugMessage, SCIPdebugPrintf, SCIPdelCons(), SCIPfreeBufferArray, SCIPgetNActivePricers(), SCIPgetNContVars(), SCIPgetNVars(), SCIPgetStage(), SCIPinProbing(), SCIPisEQ(), SCIPisInfinity(), SCIPisNLPEnabled(), SCIPisStopped(), SCIPmatrixCreate(), SCIPmatrixFree(), SCIPmatrixGetCons(), SCIPmatrixGetNColumns(), SCIPmatrixGetNRows(), SCIPmatrixGetRowIdxPtr(), SCIPmatrixGetRowLhs(), SCIPmatrixGetRowNNonzs(), SCIPmatrixGetRowRhs(), SCIPmatrixGetRowValPtr(), SCIPmatrixGetVar(), SCIPmultiaggregateVar(), SCIPvarGetLbGlobal(), SCIPvarGetName(), SCIPvarGetType(), and SCIPvarGetUbGlobal().
creates the implied free presolver and includes it in SCIP
Definition at line 1278 of file presol_implfree.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(). |