presol_dualagg.c File Reference Detailed Descriptionaggregate variables by dual arguments This presolver looks for variables which could not be handled by duality fixing because of one up-/downlock. If the constraint which delivers the up-/downlock has a specific structure, we can aggregate the corresponding variable. In more detail (for a minimization problem and the case of only one uplock): Given a variable with and only one up lock (originating from a constraint c), we are looking for a binary variable such that:
Similar arguments apply for the case of only one down lock and . Definition in file presol_dualagg.c. #include <stdio.h> #include <assert.h> #include <string.h> #include "scip/pub_matrix.h" #include "presol_dualagg.h" Go to the source code of this file.
Macro Definition Documentation
Definition at line 45 of file presol_dualagg.c. Referenced by SCIPincludePresolDualagg().
Definition at line 46 of file presol_dualagg.c. Referenced by SCIPincludePresolDualagg().
priority of the presolver (>= 0: before, < 0: after constraint handlers) Definition at line 47 of file presol_dualagg.c. Referenced by SCIPincludePresolDualagg().
maximal number of presolving rounds the presolver participates in (-1: no limit) Definition at line 48 of file presol_dualagg.c. Referenced by SCIPincludePresolDualagg().
Definition at line 49 of file presol_dualagg.c. Referenced by SCIPincludePresolDualagg(). Typedef DocumentationDefinition at line 58 of file presol_dualagg.c. Enumeration Type Documentation
type of aggregation
Definition at line 52 of file presol_dualagg.c. Function Documentation
find row which leads to the uplock of the given variable
Definition at line 66 of file presol_dualagg.c. References NULL, SCIP_Real, SCIPmatrixGetColIdxPtr(), SCIPmatrixGetColNNonzs(), SCIPmatrixGetColNUplocks(), SCIPmatrixGetColValPtr(), and SCIPmatrixIsRowRhsInfinity(). Referenced by getBinVarIdxInUplockRow().
find row which leads to the downlock of the given variable
Definition at line 115 of file presol_dualagg.c. References NULL, SCIP_Real, SCIPmatrixGetColIdxPtr(), SCIPmatrixGetColNDownlocks(), SCIPmatrixGetColNNonzs(), SCIPmatrixGetColValPtr(), and SCIPmatrixIsRowRhsInfinity(). Referenced by getBinVarIdxInDownlockRow().
find fitting binary variable aggregation for uplock case
Definition at line 163 of file presol_dualagg.c. References BIN0LBOUND, BIN0UBOUND, getUplockRowIdx(), NOAGG, NULL, SCIP_Real, SCIP_VARTYPE_BINARY, SCIPisGE(), SCIPisInfinity(), SCIPmatrixGetColLb(), SCIPmatrixGetColUb(), SCIPmatrixGetRowIdxPtr(), SCIPmatrixGetRowLhs(), SCIPmatrixGetRowMaxActivity(), SCIPmatrixGetRowMinActivity(), SCIPmatrixGetRowNNonzs(), SCIPmatrixGetRowValPtr(), SCIPmatrixGetVar(), and SCIPvarGetType(). Referenced by findUplockAggregations().
find fitting binary variable aggregation for downlock case
Definition at line 261 of file presol_dualagg.c. References BIN0LBOUND, BIN0UBOUND, getDownlockRowIdx(), NOAGG, NULL, SCIP_Real, SCIP_VARTYPE_BINARY, SCIPisGE(), SCIPisInfinity(), SCIPmatrixGetColLb(), SCIPmatrixGetColUb(), SCIPmatrixGetRowIdxPtr(), SCIPmatrixGetRowLhs(), SCIPmatrixGetRowMaxActivity(), SCIPmatrixGetRowMinActivity(), SCIPmatrixGetRowNNonzs(), SCIPmatrixGetRowValPtr(), SCIPmatrixGetVar(), and SCIPvarGetType(). Referenced by findDownlockAggregations().
find variable aggregations for uplock case
Definition at line 361 of file presol_dualagg.c. References getBinVarIdxInUplockRow(), NULL, SCIP_OKAY, SCIP_Real, SCIPisInfinity(), SCIPisLE(), SCIPmatrixGetColLb(), SCIPmatrixGetColNUplocks(), SCIPmatrixGetColUb(), SCIPmatrixGetNColumns(), SCIPmatrixGetVar(), SCIPvarGetLbGlobal(), SCIPvarGetObj(), and SCIPvarGetUbGlobal(). Referenced by SCIP_DECL_PRESOLEXEC().
find variable aggregations for downlock case
Definition at line 417 of file presol_dualagg.c. References getBinVarIdxInDownlockRow(), NOAGG, NULL, SCIP_OKAY, SCIP_Real, SCIPisGE(), SCIPisInfinity(), SCIPmatrixGetColLb(), SCIPmatrixGetColNDownlocks(), SCIPmatrixGetColUb(), SCIPmatrixGetNColumns(), SCIPmatrixGetVar(), SCIPvarGetLbGlobal(), SCIPvarGetObj(), and SCIPvarGetUbGlobal(). Referenced by SCIP_DECL_PRESOLEXEC().
execution method of presolver Definition at line 480 of file presol_dualagg.c. References BIN0LBOUND, BIN0UBOUND, BMSclearMemoryArray, findDownlockAggregations(), findUplockAggregations(), NOAGG, NULL, SCIP_Bool, SCIP_CALL, SCIP_CUTOFF, SCIP_DIDNOTFIND, SCIP_DIDNOTRUN, SCIP_OKAY, SCIP_Real, SCIP_STAGE_PRESOLVING, SCIP_SUCCESS, SCIPaggregateVars(), SCIPallocBufferArray, SCIPallowDualReds(), SCIPdebug, SCIPdebugMessage, SCIPfreeBufferArray, SCIPgetNActivePricers(), SCIPgetNBinVars(), SCIPgetStage(), SCIPinProbing(), SCIPisNLPEnabled(), SCIPisStopped(), SCIPmatrixCreate(), SCIPmatrixFree(), SCIPmatrixGetColLb(), SCIPmatrixGetColUb(), SCIPmatrixGetNColumns(), and SCIPmatrixGetVar().
creates the dualagg presolver and includes it in SCIP
Definition at line 591 of file presol_dualagg.c. References NULL, PRESOL_DESC, PRESOL_MAXROUNDS, PRESOL_NAME, PRESOL_PRIORITY, PRESOL_TIMING, SCIP_CALL, SCIP_OKAY, and SCIPincludePresolBasic(). Referenced by SCIPincludeDefaultPlugins(). |