benderscut_opt.h
Go to the documentation of this file.
30 * The classical Benders' decomposition optimality cuts arise from a feasible instance of the Benders' decomposition
31 * subproblem. The optimality cuts are an underestimator of the subproblem objective function value. Auxiliary
32 * variables, \f$\varphi\f$ are added to the master problem as a lower bound on the subproblem objective function value.
34 * Consider a linear Benders' decomposition subproblem that takes the master problem solution \f$\bar{x}\f$ as input:
38 * If the subproblem is feasible, and \f$z(\bar{x}) > \varphi\f$ (indicating that the current underestimators are not
39 * optimal) then the Benders' decomposition optimality cut can be generated from the optimal dual solution of the
40 * subproblem. Let \f$w\f$ be the vector corresponding to the optimal dual solution of the Benders' decomposition
46 * Next, consider a nonlinear Benders' decomposition subproblem that takes the master problem solution \f$\bar{x}\f$ as input:
50 * If the subproblem is feasible, and \f$z(\bar{x}) > \varphi\f$ (indicating that the current underestimators are not
51 * optimal) then the Benders' decomposition optimality cut can be generated from the optimal dual solution of the
52 * subproblem. Let \f$w\f$ be the vector corresponding to the optimal dual solution of the Benders' decomposition subproblem.
60/*---+----1----+----2----+----3----+----4----+----5----+----6----+----7----+----8----+----9----+----0----+----1----+----2*/
95/** Generates a classical Benders' optimality cut using the dual solutions from the subproblem or the input arrays. If
96 * the dual solutions are input as arrays, then a mapping between the array indices and the rows/variables is required.
97 * This method can also be used to generate a feasiblity, is a problem to minimise the infeasibilities has been solved
114 SCIP_HASHMAP* row2idx, /**< mapping between the row in the subproblem to the index in the dual array, can be NULL */
115 SCIP_HASHMAP* var2idx, /**< mapping from variable of the subproblem to the index in the dual arrays, can be NULL */
122/** adds the gradient of a nonlinear row in the current NLP solution of a subproblem to a linear row or constraint in the master problem
135 SCIP_HASHMAP* var2idx, /**< mapping from variable of the subproblem to the index in the dual arrays, can be NULL */
137 SCIP_VAR*** vars, /**< pointer to array of variables in the generated cut with non-zero coefficient */
138 SCIP_Real** vals, /**< pointer to array of coefficients of the variables in the generated cut */
common defines and data types used in all packages of SCIP
SCIP_RETCODE SCIPgenerateAndApplyBendersOptCut(SCIP *masterprob, SCIP *subproblem, SCIP_BENDERS *benders, SCIP_BENDERSCUT *benderscut, SCIP_SOL *sol, int probnumber, char *cutname, SCIP_Real objective, SCIP_Real *primalvals, SCIP_Real *consdualvals, SCIP_Real *varlbdualvals, SCIP_Real *varubdualvals, SCIP_HASHMAP *row2idx, SCIP_HASHMAP *var2idx, SCIP_BENDERSENFOTYPE type, SCIP_Bool addcut, SCIP_Bool feasibilitycut, SCIP_RESULT *result)
Definition: benderscut_opt.c:837
SCIP_RETCODE SCIPaddNlRowGradientBenderscutOpt(SCIP *masterprob, SCIP *subproblem, SCIP_BENDERS *benders, SCIP_NLROW *nlrow, SCIP_Real mult, SCIP_Real *primalvals, SCIP_HASHMAP *var2idx, SCIP_Real *dirderiv, SCIP_VAR ***vars, SCIP_Real **vals, int *nvars, int *varssize)
Definition: benderscut_opt.c:1167
SCIP_RETCODE SCIPincludeBenderscutOpt(SCIP *scip, SCIP_BENDERS *benders)
Definition: benderscut_opt.c:787
Definition: objbenders.h:44
Definition: struct_benders.h:58
Definition: struct_benderscut.h:47
Definition: struct_misc.h:138
Definition: struct_nlp.h:65
Definition: struct_sol.h:74
Definition: struct_var.h:208
Definition: struct_scip.h:70
type definitions for Benders' decomposition methods
type definitions for Benders' decomposition cut
type definitions for constraints and constraint handlers
type definitions for expression interpreter
type definitions for LP management
type definitions for miscellaneous datastructures
type definitions for NLP management
type definitions for return codes for SCIP methods
type definitions for SCIP's main datastructure