cons_benders.h
Go to the documentation of this file.
31/*---+----1----+----2----+----3----+----4----+----5----+----6----+----7----+----8----+----9----+----0----+----1----+----2*/
64 * Two constraint handlers are implemented for the generation of Benders' decomposition cuts. When included in a
65 * problem, the Benders' decomposition constraint handlers generate cuts during the enforcement of LP and relaxation
66 * solutions. Additionally, Benders' decomposition cuts can be generated when checking the feasibility of solutions with
69 * This constraint handler has an enforcement priority that is less than the integer constraint handler. This means that
70 * only integer feasible solutions from the LP solver are enforced by this constraint handler. This is the traditional
71 * behaviour of the branch-and-check approach to Benders' decomposition. Additionally, the check priority is set low,
72 * such that this expensive constraint handler is only called as a final check on primal feasible solutions.
74 * This constraint handler in the standard constraint handler that should be added when using Benders' decomposition.
75 * Additionally, there is a flag in SCIPincludeConshdlrBenders that permits the addition of the LP constraint handler,
76 * cons_benderslp. The use of both cons_benders and cons_benderslp allows the user to perform a multiphase Benders'
84 * This method is called from cons_benderslp and cons_benders. If the method is called from cons_benderslp, then the
85 * solutions are not guaranteed to be integer feasible. This is because the default priority is set greater than the
86 * integer constraint handler. If this method is called from cons_benders, then, because the default enforcement
87 * priority is set less than that of the integer constraint handler, then it can be assumed that the solutions are
90 * The checkint flag indicates whether integer feasibility can be assumed. If it is not assumed, i.e. checkint ==
91 * FALSE, then only the convex relaxations of the subproblems are solved. If integer feasibility is assumed, i.e.
92 * checkint == TRUE, then the convex relaxations and the full CIP are solved to generate Benders' cuts and check
common defines and data types used in all packages of SCIP
SCIP_RETCODE SCIPconsBendersEnforceSolution(SCIP *scip, SCIP_SOL *sol, SCIP_CONSHDLR *conshdlr, SCIP_RESULT *result, SCIP_BENDERSENFOTYPE type, SCIP_Bool checkint)
Definition: cons_benders.c:260
SCIP_RETCODE SCIPincludeConshdlrBenders(SCIP *scip)
Definition: cons_benders.c:813
Definition: objbenders.h:44
Definition: struct_cons.h:127
Definition: struct_sol.h:74
Definition: struct_scip.h:70
type definitions for Benders' decomposition methods
type definitions for constraints and constraint handlers
result codes for SCIP callback methods
type definitions for return codes for SCIP methods
type definitions for SCIP's main datastructure
type definitions for storing primal CIP solutions