constraint handler for benderslp decomposition
Two constraint handlers are implemented for the generation of Benders' decomposition cuts. When included in a problem, the Benders' decomposition constraint handlers generate cuts during the enforcement of LP and relaxation solutions. Additionally, Benders' decomposition cuts can be generated when checking the feasibility of solutions with respect to the subproblem constraints.
This constraint handler has an enforcement priority that is greater than the integer constraint handler. This means that all LP solutions will be first checked for feasibility with respect to the Benders' decomposition second stage constraints before performing an integrality check. This is part of a multi-phase approach for solving mixed integer programs by Benders' decomposition.
A parameter is available to control the depth at which the non-integer LP solution are enforced by solving the Benders' decomposition subproblems. This parameter is set to 0 by default, indicating that non-integer LP solutions are enforced only at the root node.
Definition in file cons_benderslp.c.
|#define||CONSHDLR_DESC "constraint handler for Benders' Decomposition to separate LP solutions"|
|SCIP_RETCODE||SCIPincludeConshdlrBenderslp (SCIP *scip)|
Macro Definition Documentation
|#define CONSHDLR_NAME "benderslp"|
|#define CONSHDLR_DESC "constraint handler for Benders' Decomposition to separate LP solutions"|
|#define CONSHDLR_ENFOPRIORITY 10000000|
|#define CONSHDLR_CHECKPRIORITY 10000000|
|#define CONSHDLR_EAGERFREQ 100|
|#define CONSHDLR_NEEDSCONS FALSE|
|#define DEFAULT_CONSBENDERSLP_MAXDEPTH 0|
|#define DEFAULT_CONSBENDERSLP_FREQ 0|
|#define DEFAULT_CONSBENDERSLP_STALLLIMIT 100|
|#define DEFAULT_CONSBENDERSLP_ITERLIMIT 100|
|#define DEFAULT_ACTIVE FALSE|
feasibility check method of constraint handler for integral solutions. The feasibility check for Benders' decomposition is performed in cons_benders. As such, it is redundant to perform the feasibility check here. As such, the solution is flagged as feasible, which will then be corrected in cons_benders if the solution is infeasible with respect to the second stage constraints