Detailed Description
methods for Benders' decomposition cut
Definition in file benderscut.c.
#include <assert.h>
#include <string.h>
#include "scip/def.h"
#include "scip/set.h"
#include "scip/clock.h"
#include "scip/paramset.h"
#include "scip/scip.h"
#include "scip/benderscut.h"
#include "scip/reopt.h"
#include "scip/pub_message.h"
#include "scip/pub_misc.h"
#include "scip/pub_benders.h"
#include "scip/struct_benderscut.h"
Go to the source code of this file.
Macros | |
#define | SCIP_DEFAULT_ENABLED TRUE |
Macro Definition Documentation
◆ SCIP_DEFAULT_ENABLED
#define SCIP_DEFAULT_ENABLED TRUE |
Definition at line 41 of file benderscut.c.
Referenced by doBenderscutCreate().
Function Documentation
◆ SCIP_DECL_PARAMCHGD()
|
static |
method to call, when the priority of a compression was changed
Definition at line 63 of file benderscut.c.
References NULL, SCIP_CALL, SCIP_OKAY, SCIPparamGetData(), SCIPparamGetInt(), and SCIPsetBenderscutPriority().
◆ SCIPbenderscutCopyInclude()
SCIP_RETCODE SCIPbenderscutCopyInclude | ( | SCIP_BENDERS * | benders, |
SCIP_BENDERSCUT * | benderscut, | ||
SCIP_SET * | set | ||
) |
copies the given Benders' decomposition cut to a new scip
- Parameters
-
benders the Benders' decomposition that the cuts are copied to benderscut Benders' decomposition cut set SCIP_SET of SCIP to copy to
Definition at line 77 of file benderscut.c.
References NULL, SCIP_CALL, SCIP_OKAY, SCIPbenderscutGetName(), and SCIPsetDebugMsg.
Referenced by SCIPbendersCopyInclude().
◆ doBenderscutCreate()
|
static |
internal method for creating a Benders' decomposition structure
- Parameters
-
benders Benders' decomposition benderscut pointer to the Benders' decomposition cut data structure set global SCIP settings messagehdlr message handler blkmem block memory for parameter settings name name of the Benders' decomposition cut desc description of the Benders' decomposition cut priority priority of the the Benders' decomposition cut islpcut indicates whether the cut is generated from the LP solution benderscutdata Benders' decomposition cut data
Definition at line 98 of file benderscut.c.
References BMSallocMemory, BMSduplicateMemoryArray, FALSE, NULL, paramname, SCIP_ALLOC, SCIP_CALL, SCIP_CLOCKTYPE_DEFAULT, SCIP_DEFAULT_ENABLED, SCIP_MAXSTRLEN, SCIP_OKAY, SCIPbendersGetName(), SCIPclockCreate(), SCIPsetAddBoolParam(), SCIPsetAddIntParam(), SCIPsnprintf(), and TRUE.
Referenced by SCIPbenderscutCreate().
◆ 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
-
benders Benders' decomposition benderscut pointer to the Benders' decomposition cut data structure set global SCIP settings messagehdlr message handler blkmem block memory for parameter settings name name of the Benders' decomposition cut desc description of the Benders' decomposition cut priority priority of the the Benders' decomposition cut islpcut indicates whether the cut is generated from the LP solution benderscutdata Benders' decomposition cut data
Definition at line 161 of file benderscut.c.
References doBenderscutCreate(), NULL, SCIP_CALL_FINALLY, SCIP_OKAY, and SCIPbenderscutFree().
Referenced by SCIPincludeBenderscut(), and SCIPincludeBenderscutBasic().
◆ SCIPbenderscutFree()
SCIP_RETCODE SCIPbenderscutFree | ( | SCIP_BENDERSCUT ** | benderscut, |
SCIP_SET * | set | ||
) |
calls destructor and frees memory of the Benders' decomposition cut
- Parameters
-
benderscut pointer to the Benders' decomposition cut data structure set global SCIP settings
Definition at line 194 of file benderscut.c.
References BMSfreeMemory, BMSfreeMemoryArray, NULL, SCIP_CALL, SCIP_OKAY, and SCIPclockFree().
Referenced by SCIPbenderscutCreate(), and SCIPbendersFree().
◆ SCIPbenderscutInit()
SCIP_RETCODE SCIPbenderscutInit | ( | SCIP_BENDERSCUT * | benderscut, |
SCIP_SET * | set | ||
) |
initializes the Benders' decomposition cut
- Parameters
-
benderscut Benders' decomposition cut set global SCIP settings
Definition at line 220 of file benderscut.c.
References SCIP_Benderscut::benderscutclock, SCIP_Benderscut::initialized, SCIP_Benderscut::name, SCIP_Benderscut::ncalls, SCIP_Benderscut::nfound, NULL, SCIP_CALL, SCIP_INVALIDCALL, SCIP_OKAY, SCIPclockReset(), SCIPclockStart(), SCIPclockStop(), SCIPerrorMessage, SCIP_Benderscut::setuptime, and TRUE.
Referenced by SCIPbendersInit().
◆ SCIPbenderscutExit()
SCIP_RETCODE SCIPbenderscutExit | ( | SCIP_BENDERSCUT * | benderscut, |
SCIP_SET * | set | ||
) |
calls exit method of the Benders' decomposition cut
- Parameters
-
benderscut Benders' decomposition cut set global SCIP settings
Definition at line 259 of file benderscut.c.
References FALSE, SCIP_Benderscut::initialized, SCIP_Benderscut::name, NULL, SCIP_CALL, SCIP_INVALIDCALL, SCIP_OKAY, SCIPclockStart(), SCIPclockStop(), SCIPerrorMessage, and SCIP_Benderscut::setuptime.
Referenced by SCIPbendersExit().
◆ SCIPbenderscutInitsol()
SCIP_RETCODE SCIPbenderscutInitsol | ( | SCIP_BENDERSCUT * | benderscut, |
SCIP_SET * | set | ||
) |
informs Benders' cut that the branch and bound process is being started
- Parameters
-
benderscut Benders' decomposition cut set global SCIP settings
Definition at line 289 of file benderscut.c.
References NULL, SCIP_CALL, SCIP_OKAY, SCIPclockStart(), SCIPclockStop(), and SCIP_Benderscut::setuptime.
Referenced by SCIPbendersInitsol().
◆ SCIPbenderscutExitsol()
SCIP_RETCODE SCIPbenderscutExitsol | ( | SCIP_BENDERSCUT * | benderscut, |
SCIP_SET * | set | ||
) |
informs Benders' decomposition that the branch and bound process data is being freed
- Parameters
-
benderscut Benders' decomposition set global SCIP settings
Definition at line 313 of file benderscut.c.
References NULL, SCIP_CALL, SCIP_OKAY, SCIPclockStart(), SCIPclockStop(), and SCIP_Benderscut::setuptime.
Referenced by 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
-
benderscut Benders' decomposition cut set global SCIP settings benders Benders' decomposition sol primal CIP solution probnumber the number of the subproblem for which the cut is generated type the enforcement type calling this function result pointer to store the result of the callback method
Definition at line 337 of file benderscut.c.
References SCIP_Benderscut::benderscutclock, SCIP_Benderscut::enabled, SCIP_Benderscut::name, SCIP_Benderscut::ncalls, SCIP_Benderscut::nfound, NULL, SCIP_CALL, SCIP_CONSADDED, SCIP_DIDNOTFIND, SCIP_DIDNOTRUN, SCIP_FEASIBLE, SCIP_INVALIDRESULT, SCIP_OKAY, SCIP_SEPARATED, SCIPclockStart(), SCIPclockStop(), SCIPerrorMessage, and SCIPsetDebugMsg.
Referenced by generateBendersCuts().
◆ SCIPbenderscutSetCopy()
void SCIPbenderscutSetCopy | ( | SCIP_BENDERSCUT * | benderscut, |
SCIP_DECL_BENDERSCUTCOPY((*benderscutcopy)) | |||
) |
sets copy callback of the Benders' decomposition cut
- Parameters
-
benderscut Benders' decomposition cut
Definition at line 417 of file benderscut.c.
References NULL.
Referenced by SCIPsetBenderscutCopy().
◆ SCIPbenderscutSetFree()
void SCIPbenderscutSetFree | ( | SCIP_BENDERSCUT * | benderscut, |
SCIP_DECL_BENDERSCUTFREE((*benderscutfree)) | |||
) |
sets destructor callback of the Benders' decomposition cut
- Parameters
-
benderscut Benders' decomposition cut
Definition at line 428 of file benderscut.c.
References NULL.
Referenced by SCIPsetBenderscutFree().
◆ SCIPbenderscutSetInit()
void SCIPbenderscutSetInit | ( | SCIP_BENDERSCUT * | benderscut, |
SCIP_DECL_BENDERSCUTINIT((*benderscutinit)) | |||
) |
sets initialization callback of the Benders' decomposition cut
- Parameters
-
benderscut Benders' decomposition cut
Definition at line 439 of file benderscut.c.
References NULL.
Referenced by SCIPsetBenderscutInit().
◆ SCIPbenderscutSetExit()
void SCIPbenderscutSetExit | ( | SCIP_BENDERSCUT * | benderscut, |
SCIP_DECL_BENDERSCUTEXIT((*benderscutexit)) | |||
) |
sets deinitialization callback of the Benders' decomposition cut
- Parameters
-
benderscut Benders' decomposition cut
Definition at line 450 of file benderscut.c.
References NULL.
Referenced by SCIPsetBenderscutExit().
◆ SCIPbenderscutSetInitsol()
void SCIPbenderscutSetInitsol | ( | SCIP_BENDERSCUT * | benderscut, |
SCIP_DECL_BENDERSCUTINITSOL((*benderscutinitsol)) | |||
) |
sets solving process initialization callback of the Benders' decomposition cut
- Parameters
-
benderscut Benders' decomposition cut
Definition at line 461 of file benderscut.c.
References NULL.
Referenced by SCIPsetBenderscutInitsol().
◆ SCIPbenderscutSetExitsol()
void SCIPbenderscutSetExitsol | ( | SCIP_BENDERSCUT * | benderscut, |
SCIP_DECL_BENDERSCUTEXITSOL((*benderscutexitsol)) | |||
) |
sets solving process deinitialization callback of Benders' decomposition cut
- Parameters
-
benderscut Benders' decomposition cut
Definition at line 472 of file benderscut.c.
References NULL.
Referenced by SCIPsetBenderscutExitsol().
◆ SCIPbenderscutSetPriority()
void SCIPbenderscutSetPriority | ( | SCIP_BENDERSCUT * | benderscut, |
int | priority | ||
) |
sets priority of the Benders' decomposition cut
- Parameters
-
benderscut Benders' decomposition cut priority new priority of the Benders' decomposition cut
Definition at line 513 of file benderscut.c.
References NULL, and SCIP_Benderscut::priority.
Referenced by SCIPsetBenderscutPriority().