SCIP Doxygen Documentation
Loading...
Searching...
No Matches
benderscut.h File Reference

Detailed Description

internal methods for Benders' decomposition cuts

Author
Stephen J. Maher

Definition in file benderscut.h.

Go to the source code of this file.

Functions

SCIP_RETCODE SCIPbenderscutCopyInclude (SCIP_BENDERS *benders, SCIP_BENDERSCUT *benderscut, SCIP_SET *set)
SCIP_RETCODE SCIPbenderscutCreate (SCIP_BENDERS *benders, SCIP_BENDERSCUT **benderscut, SCIP_SET *set, SCIP_MESSAGEHDLR *messagehdlr, BMS_BLKMEM *blkmem, 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)
SCIP_RETCODE SCIPbenderscutFree (SCIP_BENDERSCUT **benderscut, SCIP_SET *set)
SCIP_RETCODE SCIPbenderscutInit (SCIP_BENDERSCUT *benderscut, SCIP_SET *set)
SCIP_RETCODE SCIPbenderscutExit (SCIP_BENDERSCUT *benderscut, SCIP_SET *set)
SCIP_RETCODE SCIPbenderscutInitsol (SCIP_BENDERSCUT *benderscut, SCIP_SET *set)
SCIP_RETCODE SCIPbenderscutExitsol (SCIP_BENDERSCUT *benderscut, SCIP_SET *set)
SCIP_RETCODE SCIPbenderscutExec (SCIP_BENDERSCUT *benderscut, SCIP_SET *set, SCIP_BENDERS *benders, SCIP_SOL *sol, int probnumber, SCIP_BENDERSENFOTYPE type, SCIP_RESULT *result)
void SCIPbenderscutSetPriority (SCIP_BENDERSCUT *benderscut, int priority)
void SCIPbenderscutSetCopy (SCIP_BENDERSCUT *benderscut,)
void SCIPbenderscutSetFree (SCIP_BENDERSCUT *benderscut,)
void SCIPbenderscutSetInit (SCIP_BENDERSCUT *benderscut,)
void SCIPbenderscutSetExit (SCIP_BENDERSCUT *benderscut,)
void SCIPbenderscutSetInitsol (SCIP_BENDERSCUT *benderscut,)
void SCIPbenderscutSetExitsol (SCIP_BENDERSCUT *benderscut,)

Function Documentation

◆ SCIPbenderscutCopyInclude()

SCIP_RETCODE SCIPbenderscutCopyInclude ( SCIP_BENDERS * benders,
SCIP_BENDERSCUT * benderscut,
SCIP_SET * set )

copies the given Benders' decomposition cut to a new scip

Parameters
bendersthe Benders' decomposition that the cuts are copied to
benderscutBenders' decomposition cut
setSCIP_SET of SCIP to copy to

Definition at line 86 of file benderscut.c.

References assert(), NULL, SCIP_CALL, SCIP_OKAY, SCIPbenderscutCopyInclude(), SCIPbenderscutGetName(), and SCIPsetDebugMsg.

Referenced by SCIPbendersCopyInclude(), and SCIPbenderscutCopyInclude().

◆ SCIPbenderscutCreate()

SCIP_RETCODE SCIPbenderscutCreate ( SCIP_BENDERS * benders,
SCIP_BENDERSCUT ** benderscut,
SCIP_SET * set,
SCIP_MESSAGEHDLR * messagehdlr,
BMS_BLKMEM * blkmem,
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 )

creates a Benders' decomposition cut

Parameters
bendersBenders' decomposition
benderscutpointer to the Benders' decomposition cut data structure
setglobal SCIP settings
messagehdlrmessage handler
blkmemblock memory for parameter settings
namename of the Benders' decomposition cut
descdescription of the Benders' decomposition cut
prioritypriority of the the Benders' decomposition cut
islpcutindicates whether the cut is generated from the LP solution
-copy method of the Benders' decomposition cut or NULL if you don't want to copy your plugin into sub-SCIPs
-destructor of the Benders' decomposition cut
-initialize the Benders' decomposition cut
-deinitialize the Benders' decomposition cut
-solving process initialization method of the Benders' decomposition cut
-solving process deinitialization method of the Benders' decomposition cut
-execution method of the Benders' decomposition cut
benderscutdataBenders' decomposition cut data

Definition at line 170 of file benderscut.c.

References assert(), doBenderscutCreate(), NULL, SCIP_Bool, SCIP_CALL_FINALLY, SCIP_DECL_BENDERSCUTCOPY, SCIP_DECL_BENDERSCUTEXEC, SCIP_DECL_BENDERSCUTEXIT, SCIP_DECL_BENDERSCUTEXITSOL, SCIP_DECL_BENDERSCUTFREE, SCIP_DECL_BENDERSCUTINIT, SCIP_DECL_BENDERSCUTINITSOL, SCIP_OKAY, SCIPbenderscutCreate(), and SCIPbenderscutFree().

Referenced by SCIPbenderscutCreate(), SCIPincludeBenderscut(), and SCIPincludeBenderscutBasic().

◆ SCIPbenderscutFree()

SCIP_RETCODE SCIPbenderscutFree ( SCIP_BENDERSCUT ** benderscut,
SCIP_SET * set )

calls destructor and frees memory of the Benders' decomposition cut

Parameters
benderscutpointer to the Benders' decomposition cut data structure
setglobal SCIP settings

Definition at line 203 of file benderscut.c.

References assert(), BMSfreeMemory, BMSfreeMemoryArray, NULL, SCIP_CALL, SCIP_OKAY, SCIPbenderscutFree(), and SCIPclockFree().

Referenced by SCIPbenderscutCreate(), SCIPbenderscutFree(), and SCIPbendersFree().

◆ SCIPbenderscutInit()

SCIP_RETCODE SCIPbenderscutInit ( SCIP_BENDERSCUT * benderscut,
SCIP_SET * set )

◆ SCIPbenderscutExit()

SCIP_RETCODE SCIPbenderscutExit ( SCIP_BENDERSCUT * benderscut,
SCIP_SET * set )

calls exit method of the Benders' decomposition cut

Parameters
benderscutBenders' decomposition cut
setglobal SCIP settings

Definition at line 268 of file benderscut.c.

References assert(), FALSE, SCIP_Benderscut::initialized, SCIP_Benderscut::name, NULL, SCIP_CALL, SCIP_INVALIDCALL, SCIP_OKAY, SCIPbenderscutExit(), SCIPclockStart(), SCIPclockStop(), SCIPerrorMessage, and SCIP_Benderscut::setuptime.

Referenced by SCIPbenderscutExit(), and SCIPbendersExit().

◆ SCIPbenderscutInitsol()

SCIP_RETCODE SCIPbenderscutInitsol ( SCIP_BENDERSCUT * benderscut,
SCIP_SET * set )

informs the Benders' decomposition cut that the branch and bound process is being started

informs Benders' cut that the branch and bound process is being started

Parameters
benderscutBenders' decomposition cut
setglobal SCIP settings

Definition at line 298 of file benderscut.c.

References assert(), NULL, SCIP_CALL, SCIP_OKAY, SCIPbenderscutInitsol(), SCIPclockStart(), SCIPclockStop(), and SCIP_Benderscut::setuptime.

Referenced by SCIPbenderscutInitsol(), and SCIPbendersInitsol().

◆ SCIPbenderscutExitsol()

SCIP_RETCODE SCIPbenderscutExitsol ( SCIP_BENDERSCUT * benderscut,
SCIP_SET * set )

informs the Benders' decomposition cut that the branch and bound process data is being freed

informs Benders' decomposition that the branch and bound process data is being freed

Parameters
benderscutBenders' decomposition
setglobal SCIP settings

Definition at line 322 of file benderscut.c.

References assert(), NULL, SCIP_CALL, SCIP_OKAY, SCIPbenderscutExitsol(), SCIPclockStart(), SCIPclockStop(), and SCIP_Benderscut::setuptime.

Referenced by SCIPbenderscutExitsol(), and SCIPbendersExitsol().

◆ SCIPbenderscutExec()

SCIP_RETCODE SCIPbenderscutExec ( SCIP_BENDERSCUT * benderscut,
SCIP_SET * set,
SCIP_BENDERS * benders,
SCIP_SOL * sol,
int probnumber,
SCIP_BENDERSENFOTYPE type,
SCIP_RESULT * result )

calls execution method of the Benders' decomposition cut

Parameters
benderscutBenders' decomposition cut
setglobal SCIP settings
bendersBenders' decomposition
solprimal CIP solution
probnumberthe number of the subproblem for which the cut is generated
typethe enforcement type calling this function
resultpointer to store the result of the callback method

Definition at line 346 of file benderscut.c.

References assert(), SCIP_Benderscut::benderscutclock, SCIP_Benderscut::enabled, SCIP_Benderscut::name, SCIP_Benderscut::ncalls, SCIP_Benderscut::nfound, NULL, result, SCIP_CALL, SCIP_CONSADDED, SCIP_DIDNOTFIND, SCIP_DIDNOTRUN, SCIP_FEASIBLE, SCIP_INVALIDRESULT, SCIP_OKAY, SCIP_SEPARATED, SCIPbenderscutExec(), SCIPclockStart(), SCIPclockStop(), SCIPerrorMessage, SCIPsetDebugMsg, and sol.

Referenced by generateBendersCuts(), and SCIPbenderscutExec().

◆ SCIPbenderscutSetPriority()

void SCIPbenderscutSetPriority ( SCIP_BENDERSCUT * benderscut,
int priority )

sets priority of the Benders' decomposition cut

Parameters
benderscutBenders' decomposition cut
prioritynew priority of the Benders' decomposition cut

Definition at line 522 of file benderscut.c.

References assert(), NULL, SCIP_Benderscut::priority, and SCIPbenderscutSetPriority().

Referenced by SCIPbenderscutSetPriority(), and SCIPsetBenderscutPriority().

◆ SCIPbenderscutSetCopy()

void SCIPbenderscutSetCopy ( SCIP_BENDERSCUT * benderscut)

sets copy callback of the Benders' decomposition cut

Parameters
benderscutBenders' decomposition cut copy callback of the Benders' decomposition cut or NULL if you don't want to copy your plugin into sub-SCIPs

Definition at line 426 of file benderscut.c.

References assert(), NULL, SCIP_DECL_BENDERSCUTCOPY, and SCIPbenderscutSetCopy().

Referenced by SCIPbenderscutSetCopy(), and SCIPsetBenderscutCopy().

◆ SCIPbenderscutSetFree()

void SCIPbenderscutSetFree ( SCIP_BENDERSCUT * benderscut)

sets destructor callback of the Benders' decomposition cut

Parameters
benderscutBenders' decomposition cut destructor of the Benders' decomposition cut

Definition at line 437 of file benderscut.c.

References assert(), NULL, SCIP_DECL_BENDERSCUTFREE, and SCIPbenderscutSetFree().

Referenced by SCIPbenderscutSetFree(), and SCIPsetBenderscutFree().

◆ SCIPbenderscutSetInit()

void SCIPbenderscutSetInit ( SCIP_BENDERSCUT * benderscut)

sets initialization callback of the Benders' decomposition cut

Parameters
benderscutBenders' decomposition cut initialize the Benders' decomposition cut

Definition at line 448 of file benderscut.c.

References assert(), NULL, SCIP_DECL_BENDERSCUTINIT, and SCIPbenderscutSetInit().

Referenced by SCIPbenderscutSetInit(), and SCIPsetBenderscutInit().

◆ SCIPbenderscutSetExit()

void SCIPbenderscutSetExit ( SCIP_BENDERSCUT * benderscut)

sets deinitialization callback of the Benders' decomposition cut

Parameters
benderscutBenders' decomposition cut deinitialize the Benders' decomposition cut

Definition at line 459 of file benderscut.c.

References assert(), NULL, SCIP_DECL_BENDERSCUTEXIT, and SCIPbenderscutSetExit().

Referenced by SCIPbenderscutSetExit(), and SCIPsetBenderscutExit().

◆ SCIPbenderscutSetInitsol()

void SCIPbenderscutSetInitsol ( SCIP_BENDERSCUT * benderscut)

sets solving process initialization callback of the Benders' decomposition cut

Parameters
benderscutBenders' decomposition cut solving process initialization callback of the Benders' decomposition cut

Definition at line 470 of file benderscut.c.

References assert(), NULL, SCIP_DECL_BENDERSCUTINITSOL, and SCIPbenderscutSetInitsol().

Referenced by SCIPbenderscutSetInitsol(), and SCIPsetBenderscutInitsol().

◆ SCIPbenderscutSetExitsol()

void SCIPbenderscutSetExitsol ( SCIP_BENDERSCUT * benderscut)

sets solving process deinitialization callback of the Benders' decomposition cut

sets solving process deinitialization callback of Benders' decomposition cut

Parameters
benderscutBenders' decomposition cut solving process deinitialization callback of the Benders' decomposition cut

Definition at line 481 of file benderscut.c.

References assert(), NULL, SCIP_DECL_BENDERSCUTEXITSOL, and SCIPbenderscutSetExitsol().

Referenced by SCIPbenderscutSetExitsol(), and SCIPsetBenderscutExitsol().