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