44struct SCIP_BenderscutData
47 SCIP_Bool deleteobject;
71 assert(benderscutdata->objbenderscut->scip_ !=
scip);
73 if( benderscutdata->objbenderscut->iscloneable() )
94 assert(benderscutdata->objbenderscut->scip_ ==
scip);
97 SCIP_CALL( benderscutdata->objbenderscut->scip_free(
scip, benderscut) );
100 if( benderscutdata->deleteobject )
101 delete benderscutdata->objbenderscut;
104 delete benderscutdata;
119 assert(benderscutdata->objbenderscut !=
NULL);
120 assert(benderscutdata->objbenderscut->scip_ ==
scip);
123 SCIP_CALL( benderscutdata->objbenderscut->scip_init(
scip, benderscut) );
137 assert(benderscutdata->objbenderscut !=
NULL);
140 SCIP_CALL( benderscutdata->objbenderscut->scip_exit(
scip, benderscut) );
154 assert(benderscutdata->objbenderscut !=
NULL);
157 SCIP_CALL( benderscutdata->objbenderscut->scip_initsol(
scip, benderscut) );
171 assert(benderscutdata->objbenderscut !=
NULL);
174 SCIP_CALL( benderscutdata->objbenderscut->scip_exitsol(
scip, benderscut) );
188 assert(benderscutdata->objbenderscut !=
NULL);
191 SCIP_CALL( benderscutdata->objbenderscut->scip_exec(
scip, benders, benderscut,
sol, probnumber, type,
result) );
209 SCIP_Bool deleteobject
221 benderscutdata->objbenderscut = objbenderscut;
222 benderscutdata->deleteobject = deleteobject;
230 benderscutInitObj, benderscutExitObj, benderscutInitsolObj, benderscutExitsolObj, benderscutExecObj,
250 if( benderscut ==
NULL )
256 return benderscutdata->objbenderscut;
271 return benderscutdata->objbenderscut;
C++ wrapper for Benders' decomposition plugins.
C++ wrapper for Benders' decomposition cut plugin.
const SCIP_Bool scip_islpcut_
SCIP_BENDERS * SCIPfindBenders(SCIP *scip, const char *name)
SCIP_BENDERSCUT * SCIPfindBenderscut(SCIP_BENDERS *benders, const char *name)
SCIP_RETCODE SCIPincludeBenderscut(SCIP *scip, SCIP_BENDERS *benders, const char *name, const char *desc, int priority, SCIP_Bool islpcut, SCIP_DECL_BENDERSCUTCOPY((*benderscutcopy)), SCIP_DECL_BENDERSCUTFREE((*benderscutfree)), SCIP_DECL_BENDERSCUTINIT((*benderscutinit)), SCIP_DECL_BENDERSCUTEXIT((*benderscutexit)), SCIP_DECL_BENDERSCUTINITSOL((*benderscutinitsol)), SCIP_DECL_BENDERSCUTEXITSOL((*benderscutexitsol)), SCIP_DECL_BENDERSCUTEXEC((*benderscutexec)), SCIP_BENDERSCUTDATA *benderscutdata)
void SCIPbenderscutSetData(SCIP_BENDERSCUT *benderscut, SCIP_BENDERSCUTDATA *benderscutdata)
SCIP_BENDERSCUTDATA * SCIPbenderscutGetData(SCIP_BENDERSCUT *benderscut)
assert(minobj< SCIPgetCutoffbound(scip))
scip::ObjBenders * SCIPgetObjBenders(SCIP *scip, SCIP_BENDERS *benders)
SCIP_RETCODE SCIPincludeObjBenderscut(SCIP *scip, scip::ObjBenders *objbenders, scip::ObjBenderscut *objbenderscut, SCIP_Bool deleteobject)
scip::ObjBenderscut * SCIPgetObjBenderscut(SCIP *scip, SCIP_BENDERSCUT *benderscut)
scip::ObjBenderscut * SCIPfindObjBenderscut(scip::ObjBenders *objbenders, const char *name)
C++ wrapper for the Benders' decomposition cut plugins.
#define SCIP_DECL_BENDERSCUTEXEC(x)
struct SCIP_BenderscutData SCIP_BENDERSCUTDATA
#define SCIP_DECL_BENDERSCUTEXITSOL(x)
#define SCIP_DECL_BENDERSCUTFREE(x)
#define SCIP_DECL_BENDERSCUTCOPY(x)
#define SCIP_DECL_BENDERSCUTINIT(x)
#define SCIP_DECL_BENDERSCUTINITSOL(x)
#define SCIP_DECL_BENDERSCUTEXIT(x)
enum SCIP_Retcode SCIP_RETCODE