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 */
type definitions for miscellaneous datastructures
Definition: struct_scip.h:68
type definitions for NLP management
Definition: struct_benderscut.h:46
type definitions for expression interpreter
Definition: struct_var.h:207
type definitions for return codes for SCIP methods
Definition: struct_benders.h:57
type definitions for LP management
Definition: struct_sol.h:73
Definition: struct_misc.h:137
type definitions for SCIP's main datastructure
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:836
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:1166
type definitions for Benders' decomposition methods
type definitions for Benders' decomposition cut
SCIP_RETCODE SCIPincludeBenderscutOpt(SCIP *scip, SCIP_BENDERS *benders)
Definition: benderscut_opt.c:786
Definition: struct_nlp.h:64
common defines and data types used in all packages of SCIP
Definition: objbenders.h:43
type definitions for constraints and constraint handlers