44struct SCIP_BendersData
46 scip::ObjBenders* objbenders;
71 assert(bendersdata->objbenders->scip_ !=
scip);
73 if( bendersdata->objbenders->iscloneable() )
94 assert(bendersdata->objbenders->scip_ ==
scip);
97 SCIP_CALL( bendersdata->objbenders->scip_free(
scip, benders) );
100 if( bendersdata->deleteobject )
101 delete bendersdata->objbenders;
120 assert(bendersdata->objbenders->scip_ ==
scip);
123 SCIP_CALL( bendersdata->objbenders->scip_init(
scip, benders) );
140 SCIP_CALL( bendersdata->objbenders->scip_exit(
scip, benders) );
157 SCIP_CALL( bendersdata->objbenders->scip_initpre(
scip, benders) );
174 SCIP_CALL( bendersdata->objbenders->scip_exitpre(
scip, benders) );
191 SCIP_CALL( bendersdata->objbenders->scip_initsol(
scip, benders) );
208 SCIP_CALL( bendersdata->objbenders->scip_exitsol(
scip, benders) );
225 SCIP_CALL( bendersdata->objbenders->scip_createsub(
scip, benders, probnumber) );
242 SCIP_CALL( bendersdata->objbenders->scip_presubsolve(
scip, benders,
sol, type, checkint, infeasible, auxviol,
260 SCIP_CALL( bendersdata->objbenders->scip_solvesubconvex(
scip, benders,
sol, probnumber, onlyconvexcheck, objective,
295 SCIP_CALL( bendersdata->objbenders->scip_postsolve(
scip, benders,
sol, type, mergecands, npriomergecands,
296 nmergecands, checkint, infeasible, merged) );
313 SCIP_CALL( bendersdata->objbenders->scip_freesub(
scip, benders, probnumber) );
330 SCIP_CALL( bendersdata->objbenders->scip_getvar(
scip, benders,
var, mappedvar, probnumber) );
358 bendersdata->objbenders = objbenders;
359 bendersdata->deleteobject = deleteobject;
365 bendersExitObj, bendersInitpreObj, bendersExitpreObj, bendersInitsolObj, bendersExitsolObj, bendersGetvarObj,
366 bendersCreatesubObj, bendersPresubsolveObj, bendersSolvesubconvexObj, bendersSolvesubObj, bendersPostsolveObj,
367 bendersFreesubObj, bendersdata) );
382 if( benders ==
NULL )
388 return bendersdata->objbenders;
403 return bendersdata->objbenders;
C++ wrapper for Benders' decomposition plugins.
const SCIP_Bool scip_cutrelax_
const SCIP_Bool scip_cutlp_
const SCIP_Bool scip_cutpseudo_
const SCIP_Bool scip_shareauxvars_
SCIP_RETCODE SCIPincludeBenders(SCIP *scip, const char *name, const char *desc, int priority, SCIP_Bool cutlp, SCIP_Bool cutpseudo, SCIP_Bool cutrelax, SCIP_Bool shareauxvars, SCIP_DECL_BENDERSCOPY((*benderscopy)), SCIP_DECL_BENDERSFREE((*bendersfree)), SCIP_DECL_BENDERSINIT((*bendersinit)), SCIP_DECL_BENDERSEXIT((*bendersexit)), SCIP_DECL_BENDERSINITPRE((*bendersinitpre)), SCIP_DECL_BENDERSEXITPRE((*bendersexitpre)), SCIP_DECL_BENDERSINITSOL((*bendersinitsol)), SCIP_DECL_BENDERSEXITSOL((*bendersexitsol)), SCIP_DECL_BENDERSGETVAR((*bendersgetvar)), SCIP_DECL_BENDERSCREATESUB((*benderscreatesub)), SCIP_DECL_BENDERSPRESUBSOLVE((*benderspresubsolve)), SCIP_DECL_BENDERSSOLVESUBCONVEX((*benderssolvesubconvex)), SCIP_DECL_BENDERSSOLVESUB((*benderssolvesub)), SCIP_DECL_BENDERSPOSTSOLVE((*benderspostsolve)), SCIP_DECL_BENDERSFREESUB((*bendersfreesub)), SCIP_BENDERSDATA *bendersdata)
SCIP_BENDERS * SCIPfindBenders(SCIP *scip, const char *name)
void SCIPbendersSetData(SCIP_BENDERS *benders, SCIP_BENDERSDATA *bendersdata)
SCIP_BENDERSDATA * SCIPbendersGetData(SCIP_BENDERS *benders)
assert(minobj< SCIPgetCutoffbound(scip))
SCIP_RETCODE SCIPincludeObjBenders(SCIP *scip, scip::ObjBenders *objbenders, SCIP_Bool deleteobject)
scip::ObjBenders * SCIPfindObjBenders(SCIP *scip, const char *name)
scip::ObjBenders * SCIPgetObjBenders(SCIP *scip, SCIP_BENDERS *benders)
C++ wrapper for the Benders' decomposition plugins.
#define SCIP_DECL_BENDERSFREESUB(x)
#define SCIP_DECL_BENDERSCREATESUB(x)
struct SCIP_Benders SCIP_BENDERS
#define SCIP_DECL_BENDERSCOPY(x)
#define SCIP_DECL_BENDERSSOLVESUB(x)
#define SCIP_DECL_BENDERSEXITPRE(x)
#define SCIP_DECL_BENDERSSOLVESUBCONVEX(x)
#define SCIP_DECL_BENDERSINIT(x)
#define SCIP_DECL_BENDERSFREE(x)
#define SCIP_DECL_BENDERSEXITSOL(x)
#define SCIP_DECL_BENDERSPRESUBSOLVE(x)
#define SCIP_DECL_BENDERSGETVAR(x)
#define SCIP_DECL_BENDERSPOSTSOLVE(x)
#define SCIP_DECL_BENDERSINITPRE(x)
#define SCIP_DECL_BENDERSEXIT(x)
#define SCIP_DECL_BENDERSINITSOL(x)
struct SCIP_BendersData SCIP_BENDERSDATA
enum SCIP_Retcode SCIP_RETCODE