Detailed Description
Standard feasibility cuts for Benders' decomposition.
Definition in file benderscut_feas.c.
#include "scip/benderscut_feas.h"
#include "scip/cons_linear.h"
#include "scip/pub_benderscut.h"
#include "scip/pub_benders.h"
#include "scip/pub_message.h"
#include "scip/pub_misc.h"
#include "scip/pub_misc_linear.h"
#include "scip/pub_var.h"
#include "scip/scip_benders.h"
#include "scip/scip_cons.h"
#include "scip/scip_general.h"
#include "scip/scip_lp.h"
#include "scip/scip_message.h"
#include "scip/scip_numerics.h"
#include "scip/scip_prob.h"
#include "scip/scip_solvingstats.h"
#include "scip/scip_var.h"
Go to the source code of this file.
Macros | |
#define | BENDERSCUT_NAME "feas" |
#define | BENDERSCUT_DESC "Standard feasibility cuts for Benders' decomposition" |
#define | BENDERSCUT_PRIORITY 10000 |
#define | BENDERSCUT_LPCUT TRUE |
Functions | |
static SCIP_RETCODE | computeStandardFeasibilityCut (SCIP *masterprob, SCIP *subproblem, SCIP_BENDERS *benders, SCIP_SOL *sol, SCIP_CONS *cut, SCIP_Bool *success) |
static SCIP_RETCODE | generateAndApplyBendersCuts (SCIP *masterprob, SCIP *subproblem, SCIP_BENDERS *benders, SCIP_BENDERSCUT *benderscut, SCIP_SOL *sol, int probnumber, SCIP_RESULT *result) |
static | SCIP_DECL_BENDERSCUTEXEC (benderscutExecFeas) |
SCIP_RETCODE | SCIPincludeBenderscutFeas (SCIP *scip, SCIP_BENDERS *benders) |
Macro Definition Documentation
◆ BENDERSCUT_NAME
#define BENDERSCUT_NAME "feas" |
Definition at line 41 of file benderscut_feas.c.
Referenced by SCIPincludeBenderscutFeas().
◆ BENDERSCUT_DESC
#define BENDERSCUT_DESC "Standard feasibility cuts for Benders' decomposition" |
Definition at line 42 of file benderscut_feas.c.
Referenced by SCIPincludeBenderscutFeas().
◆ BENDERSCUT_PRIORITY
#define BENDERSCUT_PRIORITY 10000 |
Definition at line 43 of file benderscut_feas.c.
Referenced by SCIPincludeBenderscutFeas().
◆ BENDERSCUT_LPCUT
#define BENDERSCUT_LPCUT TRUE |
Definition at line 44 of file benderscut_feas.c.
Referenced by SCIPincludeBenderscutFeas().
Function Documentation
◆ computeStandardFeasibilityCut()
|
static |
computing as standard Benders' feasibility cut from the dual solutions of the LP
NOTE: The cut must be created before being passed to this function
- Parameters
-
masterprob the SCIP instance of the master problem subproblem the SCIP instance of the pricing problem benders the benders' decomposition structure sol primal CIP solution cut the cut that is generated from the pricing problem success was the cut generation successful?
Definition at line 55 of file benderscut_feas.c.
References FALSE, NULL, SCIP_Bool, SCIP_CALL, SCIP_OKAY, SCIP_Real, SCIPaddCoefLinear(), SCIPchgLhsLinear(), SCIPconsGetDualfarkas(), SCIPconsGetLhs(), SCIPconsGetRhs(), SCIPdebugMsg, SCIPdebugPrintCons, SCIPgetActivityLinear(), SCIPgetBendersMasterVar(), SCIPgetConss(), SCIPgetFixedVars(), SCIPgetLhsLinear(), SCIPgetNConss(), SCIPgetNFixedVars(), SCIPgetNVars(), SCIPgetRhsLinear(), SCIPgetVarFarkasCoef(), SCIPgetVars(), SCIPisDualfeasZero(), SCIPisGE(), SCIPisInfinity(), SCIPisNegative(), SCIPisPositive(), SCIPisZero(), SCIPvarGetLbGlobal(), SCIPvarGetName(), SCIPvarGetUbGlobal(), and TRUE.
Referenced by generateAndApplyBendersCuts().
◆ generateAndApplyBendersCuts()
|
static |
generates and applies Benders' cuts
- Parameters
-
masterprob the SCIP instance of the master problem subproblem the SCIP instance of the pricing problem benders the benders' decomposition benderscut the benders' decomposition cut method sol primal CIP solution probnumber the number of the pricing problem result the result from solving the subproblems
Definition at line 221 of file benderscut_feas.c.
References computeStandardFeasibilityCut(), NULL, SCIP_Bool, SCIP_CALL, SCIP_CONSADDED, SCIP_DIDNOTFIND, SCIP_LPSOLSTAT_INFEASIBLE, SCIP_MAXSTRLEN, SCIP_OKAY, SCIP_STATUS_INFEASIBLE, SCIP_VERBLEVEL_FULL, SCIPaddCons(), SCIPbenderscutGetNFound(), SCIPcreateConsBasicLinear(), SCIPdebugMsg, SCIPgetLPSolstat(), SCIPgetNLPIterations(), SCIPgetStatus(), SCIPinfinity(), SCIPreleaseCons(), SCIPsnprintf(), and SCIPverbMessage().
Referenced by SCIP_DECL_BENDERSCUTEXEC().
◆ SCIP_DECL_BENDERSCUTEXEC()
|
static |
execution method of Benders' decomposition cuts
Definition at line 285 of file benderscut_feas.c.
References generateAndApplyBendersCuts(), NULL, SCIP_CALL, SCIP_LPSOLSTAT_INFEASIBLE, SCIP_OKAY, SCIP_STAGE_SOLVING, SCIP_STATUS_INFEASIBLE, SCIPbendersGetNSubproblems(), SCIPbendersSubproblem(), SCIPgetLPSolstat(), SCIPgetStage(), and SCIPgetStatus().