|
All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
presol_dualinfer.c
Go to the documentation of this file.
29 /*---+----1----+----2----+----3----+----4----+----5----+----6----+----7----+----8----+----9----+----0----+----1----+----2*/
46 #define PRESOL_PRIORITY 20010000 /**< priority of the presolver (>= 0: before, < 0: after constraint handlers) */
47 #define PRESOL_MAXROUNDS 0 /**< maximal number of presolving rounds the presolver participates in (-1: no limit) */
48 #define PRESOL_DELAY TRUE /**< should presolver be delayed, if other presolvers found reductions? */
104 /** transforms given variables, scalars, and constant to the corresponding active variables, scalars, and constant */
124 SCIP_CALL( SCIPgetProbvarLinearSum(scip, *vars, *scalars, nvars, *nvars, constant, &requiredsize, TRUE) );
132 SCIP_CALL( SCIPgetProbvarLinearSum(scip, *vars, *scalars, nvars, requiredsize, constant, &requiredsize, TRUE) );
483 SCIPdebugMessage("unsupported constraint type <%s>: aborting domcol presolver\n", conshdlrname);
501 * this counts nonzeros in equalities twice, but can be at most two times as high as the exact number
626 SCIP_CALL( addConstraint(scip, matrix, SCIPconsGetName(cons), SCIPgetVarsSetppc(scip, cons), NULL,
680 SCIP_CALL( addConstraint(scip, matrix, SCIPconsGetName(cons), SCIPgetVarsKnapsack(scip, cons), consvals,
715 SCIP_CALL( addConstraint(scip, matrix, SCIPconsGetName(cons), consvars, consvals, 2, SCIPgetLhsVarbound(scip, cons),
1014 FIXINGDIRECTION* varstofix /**< array holding information for later upper/lower bound fixing */
1062 FIXINGDIRECTION* varstofix, /**< array holding information for later upper/lower bound fixing */
1223 int* maxcolactinf, /**< number of (positive) infinite contributions to maximal column activity */
1224 int* mincolactinf, /**< number of (negative) infinite contributions to minimal column activity */
1326 int* maxcolactinf, /**< number of (positive) inifite contributions to maximal column activity */
1327 int* mincolactinf /**< number of (negative) infinite contributions to minimal column activity */
1501 int* maxcolactinf, /**< number of (positive) infinity contributions to maximal column activity */
1502 int* mincolactinf /**< number of (negative) infinity contributions to minimal column activity */
1527 /* look at all columns entries present within row and update the corresponding infinity counters.
1604 FIXINGDIRECTION* varstofix, /**< array holding information for later upper/lower bound fixing */
1718 calcColActivity(scip, matrix, lbdual, ubdual, 0, matrix->ncols, excludevar, mincolact, maxcolact,
1728 if( excludevar[c] || varissingcol[c] || (SCIPvarGetType(matrix->vars[c]) != SCIP_VARTYPE_CONTINUOUS))
1770 calcColActivity(scip, matrix, lbdual, ubdual, 0, matrix->ncols, excludevar, mincolact, maxcolact,
1870 SCIP_CALL( dualBoundStrengthening(scip, matrix, varstofix, &nfitsinglecols, &npossiblefixings) );
1943 SCIPdebugMessage("### %d vars [%d column singletons] ===>>> fixed [cont: %d, int: %d, bin: %d]\n",
1969 SCIP_CALL( SCIPincludePresolBasic(scip, &presol, PRESOL_NAME, PRESOL_DESC, PRESOL_PRIORITY, PRESOL_MAXROUNDS,
SCIP_RETCODE SCIPfixVar(SCIP *scip, SCIP_VAR *var, SCIP_Real fixedval, SCIP_Bool *infeasible, SCIP_Bool *fixed) Definition: scip.c:20784 static void initShadowPrices(SCIP *scip, CONSTRAINTMATRIX *matrix, SCIP_Real *lowershadow, SCIP_Real *uppershadow) Definition: presol_dualinfer.c:845 Definition: cons_setppc.h:54 Definition: struct_presol.h:36 Definition: type_result.h:33 Definition: presol_dualinfer.c:63 static void updateDualBounds(SCIP *scip, CONSTRAINTMATRIX *matrix, SCIP_Real objval, SCIP_Real val, int row, SCIP_Real mincolresact, SCIP_Real *lbdual, SCIP_Real *ubdual, int *boundchanges, SCIP_Bool *updateinfcnt) Definition: presol_dualinfer.c:1427 static void fixColumns(SCIP *scip, CONSTRAINTMATRIX *matrix, SCIP_Real *lowercosts, SCIP_Real *uppercosts, int *npossiblefixings, FIXINGDIRECTION *varstofix) Definition: presol_dualinfer.c:1008 SCIP_RETCODE SCIPgetProbvarLinearSum(SCIP *scip, SCIP_VAR **vars, SCIP_Real *scalars, int *nvars, int varssize, SCIP_Real *constant, int *requiredsize, SCIP_Bool mergemultiples) Definition: scip.c:15614 Definition: struct_scip.h:52 Constraint handler for variable bound constraints . Definition: type_result.h:49 static SCIP_RETCODE setColumnMajorFormat(SCIP *scip, CONSTRAINTMATRIX *matrix) Definition: presol_dualinfer.c:286 SCIP_RETCODE SCIPsetPresolCopy(SCIP *scip, SCIP_PRESOL *presol, SCIP_DECL_PRESOLCOPY((*presolcopy))) Definition: scip.c:5948 SCIP_Longint SCIPgetCapacityKnapsack(SCIP *scip, SCIP_CONS *cons) Definition: cons_knapsack.c:13190 Definition: struct_var.h:196 SCIP_Real SCIPgetLhsVarbound(SCIP *scip, SCIP_CONS *cons) Definition: cons_varbound.c:4598 int SCIPgetNVarsLinear(SCIP *scip, SCIP_CONS *cons) Definition: cons_linear.c:15400 Definition: type_var.h:53 SCIP_Longint * SCIPgetWeightsKnapsack(SCIP *scip, SCIP_CONS *cons) Definition: cons_knapsack.c:13285 Definition: cons_setppc.h:55 static SCIP_RETCODE dualBoundStrengthening(SCIP *scip, CONSTRAINTMATRIX *matrix, FIXINGDIRECTION *varstofix, int *nfitsinglecols, int *npossiblefixings) Definition: presol_dualinfer.c:1601 Constraint handler for the set partitioning / packing / covering constraints . SCIP_VAR ** SCIPgetVarsKnapsack(SCIP *scip, SCIP_CONS *cons) Definition: cons_knapsack.c:13264 Constraint handler for knapsack constraints of the form , x binary and . static SCIP_Real getMinColActWithoutRow(SCIP *scip, CONSTRAINTMATRIX *matrix, int col, int withoutrow, SCIP_Real *lbdual, SCIP_Real *ubdual) Definition: presol_dualinfer.c:1157 Definition: type_result.h:35 Definition: struct_cons.h:36 int SCIPgetNVarsLogicor(SCIP *scip, SCIP_CONS *cons) Definition: cons_logicor.c:5157 Definition: struct_cons.h:116 Constraint handler for logicor constraints (equivalent to set covering, but algorithms are suited fo... static SCIP_RETCODE singletonColumns(SCIP *scip, CONSTRAINTMATRIX *matrix, SCIP_Real *lowershadow, SCIP_Real *uppershadow, int *nfitsinglecols) Definition: presol_dualinfer.c:868 SCIP_VAR ** SCIPgetVarsSetppc(SCIP *scip, SCIP_CONS *cons) Definition: cons_setppc.c:9111 SCIP_Real SCIPgetRhsLinear(SCIP *scip, SCIP_CONS *cons) Definition: cons_linear.c:15337 static void infCounterUpdate(SCIP *scip, CONSTRAINTMATRIX *matrix, SCIP_Real val, int row, SCIP_Real *lbdual, SCIP_Real *ubdual, SCIP_Bool *excludevar, SCIP_Real *mincolact, SCIP_Real *maxcolact, int *maxcolactinf, int *mincolactinf) Definition: presol_dualinfer.c:1491 static SCIP_DECL_PRESOLCOPY(presolCopyDualinfer) Definition: presol_dualinfer.c:1811 Definition: cons_setppc.h:53 Definition: type_retcode.h:33 SCIP_Real SCIPgetRhsVarbound(SCIP *scip, SCIP_CONS *cons) Definition: cons_varbound.c:4619 SCIP_Real SCIPgetVbdcoefVarbound(SCIP *scip, SCIP_CONS *cons) Definition: cons_varbound.c:4682 static SCIP_RETCODE addConstraint(SCIP *scip, CONSTRAINTMATRIX *matrix, SCIP_VAR **vars, SCIP_Real *vals, int nvars, SCIP_Real lhs, SCIP_Real rhs) Definition: presol_dualinfer.c:207 static SCIP_Bool isRowRedundant(SCIP *scip, CONSTRAINTMATRIX *matrix, int row) Definition: presol_dualinfer.c:829 Definition: type_retcode.h:34 static void costCalculation(SCIP *scip, CONSTRAINTMATRIX *matrix, SCIP_Real *lowershadow, SCIP_Real *uppershadow, SCIP_Real *lowercosts, SCIP_Real *uppercosts) Definition: presol_dualinfer.c:925 static SCIP_RETCODE costFixing(SCIP *scip, CONSTRAINTMATRIX *matrix, FIXINGDIRECTION *varstofix, int *nfitsinglecols, int *npossiblefixings) Definition: presol_dualinfer.c:1059 static void calcColActivity(SCIP *scip, CONSTRAINTMATRIX *matrix, SCIP_Real *lbdual, SCIP_Real *ubdual, int startcol, int stopcol, SCIP_Bool *excludevar, SCIP_Real *mincolact, SCIP_Real *maxcolact, int *maxcolactinf, int *mincolactinf) Definition: presol_dualinfer.c:1316 Definition: type_set.h:38 static void freeMatrix(SCIP *scip, CONSTRAINTMATRIX **matrix) Definition: presol_dualinfer.c:754 SCIP_VAR * SCIPgetVbdvarVarbound(SCIP *scip, SCIP_CONS *cons) Definition: cons_varbound.c:4661 Constraint handler for linear constraints in their most general form, . static void calcColActivityResiduals(SCIP *scip, CONSTRAINTMATRIX *matrix, int col, int row, SCIP_Real val, SCIP_Real *lbdual, SCIP_Real *ubdual, SCIP_Real *mincolact, SCIP_Real *maxcolact, int *maxcolactinf, int *mincolactinf, SCIP_Real *mincolresact, SCIP_Real *maxcolresact) Definition: presol_dualinfer.c:1213 Definition: presol_dualinfer.c:61 static SCIP_RETCODE calcActivityBounds(SCIP *scip, CONSTRAINTMATRIX *matrix) Definition: presol_dualinfer.c:353 dual inference presolver SCIP_RETCODE SCIPincludePresolDualinfer(SCIP *scip) Definition: presol_dualinfer.c:1959 SCIP_VAR ** SCIPgetVarsLogicor(SCIP *scip, SCIP_CONS *cons) Definition: cons_logicor.c:5178 int SCIPgetNVarsKnapsack(SCIP *scip, SCIP_CONS *cons) Definition: cons_knapsack.c:13243 #define SCIPduplicateBufferArray(scip, ptr, source, num) Definition: scip.h:19217 SCIP_Bool SCIPisFeasLE(SCIP *scip, SCIP_Real val1, SCIP_Real val2) Definition: scip.c:38686 int SCIPconshdlrGetNCheckConss(SCIP_CONSHDLR *conshdlr) Definition: cons.c:4259 Definition: presol_dualinfer.c:62 SCIP_Real SCIPgetLhsLinear(SCIP *scip, SCIP_CONS *cons) Definition: cons_linear.c:15313 static SCIP_DECL_PRESOLEXEC(presolExecDualinfer) Definition: presol_dualinfer.c:1825 SCIP_SETPPCTYPE SCIPgetTypeSetppc(SCIP *scip, SCIP_CONS *cons) Definition: cons_setppc.c:9132 SCIP_VAR ** SCIPgetVarsLinear(SCIP *scip, SCIP_CONS *cons) Definition: cons_linear.c:15424 static SCIP_RETCODE initMatrix(SCIP *scip, CONSTRAINTMATRIX **matrixptr, SCIP_Bool *initialized) Definition: presol_dualinfer.c:431 SCIP_VAR * SCIPgetVarVarbound(SCIP *scip, SCIP_CONS *cons) Definition: cons_varbound.c:4640 SCIP_CONS ** SCIPconshdlrGetCheckConss(SCIP_CONSHDLR *conshdlr) Definition: cons.c:4229 static SCIP_Real getMaxColActWithoutRow(SCIP *scip, CONSTRAINTMATRIX *matrix, int col, int withoutrow, SCIP_Real *lbdual, SCIP_Real *ubdual) Definition: presol_dualinfer.c:1101 SCIP_RETCODE SCIPincludePresolBasic(SCIP *scip, SCIP_PRESOL **presolptr, const char *name, const char *desc, int priority, int maxrounds, SCIP_Bool delay, SCIP_DECL_PRESOLEXEC((*presolexec)), SCIP_PRESOLDATA *presoldata) Definition: scip.c:5913 SCIP_Real * SCIPgetValsLinear(SCIP *scip, SCIP_CONS *cons) Definition: cons_linear.c:15448 Definition: type_result.h:39 static SCIP_RETCODE addRow(SCIP *scip, CONSTRAINTMATRIX *matrix, SCIP_VAR **vars, SCIP_Real *vals, int nvars, SCIP_Real lhs, SCIP_Real rhs) Definition: presol_dualinfer.c:141 static SCIP_RETCODE getActiveVariables(SCIP *scip, SCIP_VAR ***vars, SCIP_Real **scalars, int *nvars, SCIP_Real *constant) Definition: presol_dualinfer.c:106 Definition: type_var.h:56 |