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 | BENDERSCUT_ARRAYSIZE 10 |
#define | SCIP_DEFAULT_ENABLED TRUE |
Macro Definition Documentation
◆ BENDERSCUT_ARRAYSIZE
#define BENDERSCUT_ARRAYSIZE 10 |
the initial size of the added constraints/cuts arrays
Definition at line 39 of file benderscut.c.
Referenced by SCIPbenderscutInit().
◆ SCIP_DEFAULT_ENABLED
#define SCIP_DEFAULT_ENABLED TRUE |
Definition at line 42 of file benderscut.c.
Referenced by SCIPbenderscutCreate().
Function Documentation
◆ SCIP_DECL_PARAMCHGD()
|
static |
method to call, when the priority of a compression was changed
Definition at line 64 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 78 of file benderscut.c.
References NULL, SCIP_CALL, SCIP_OKAY, SCIPbenderscutGetName(), and SCIPsetDebugMsg.
Referenced by SCIPbendersCopyInclude().
◆ 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 98 of file benderscut.c.
References BMSallocMemory, BMSduplicateMemoryArray, FALSE, NULL, SCIP_ALLOC, SCIP_CALL, SCIP_CLOCKTYPE_DEFAULT, SCIP_DEFAULT_ENABLED, SCIP_MAXSTRLEN, SCIP_OKAY, SCIPbendersGetName(), SCIPclockCreate(), SCIPsetAddBoolParam(), SCIPsetAddIntParam(), SCIPsnprintf(), and TRUE.
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 167 of file benderscut.c.
References BMSfreeMemory, BMSfreeMemoryArray, NULL, SCIP_CALL, SCIP_OKAY, and SCIPclockFree().
Referenced by 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 193 of file benderscut.c.
References SCIP_Benderscut::addedconss, SCIP_Benderscut::addedconsssize, SCIP_Benderscut::addedcuts, SCIP_Benderscut::addedcutssize, BENDERSCUT_ARRAYSIZE, SCIP_Benderscut::benderscutclock, BMSallocBlockMemoryArray, SCIP_Benderscut::initialized, SCIP_Benderscut::name, SCIP_Benderscut::ncalls, SCIP_Benderscut::nfound, NULL, SCIP_ALLOC, SCIP_CALL, SCIP_INVALIDCALL, SCIP_OKAY, SCIPblkmem(), 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 245 of file benderscut.c.
References SCIP_Benderscut::addedconss, SCIP_Benderscut::addedconsssize, SCIP_Benderscut::addedcuts, SCIP_Benderscut::addedcutssize, BMSfreeBlockMemoryArray, FALSE, SCIP_Benderscut::initialized, SCIP_Benderscut::naddedconss, SCIP_Benderscut::naddedcuts, SCIP_Benderscut::name, NULL, SCIP_CALL, SCIP_INVALIDCALL, SCIP_OKAY, SCIPblkmem(), SCIPclockStart(), SCIPclockStop(), SCIPerrorMessage, SCIPreleaseCons(), SCIPreleaseRow(), 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 295 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 319 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 343 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 423 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 434 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 445 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 456 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 467 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 478 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 519 of file benderscut.c.
References NULL, and SCIP_Benderscut::priority.
Referenced by SCIPsetBenderscutPriority().
◆ SCIPbenderscutStoreCons()
SCIP_RETCODE SCIPbenderscutStoreCons | ( | SCIP_BENDERSCUT * | benderscut, |
SCIP_SET * | set, | ||
SCIP_CONS * | cons | ||
) |
adds the generated constraint to the Benders' cut storage
- Parameters
-
benderscut Benders' decomposition cut set global SCIP settings cons the constraint to be added to the Benders' cut storage
Definition at line 616 of file benderscut.c.
References SCIP_Benderscut::addedconss, SCIP_Benderscut::addedconsssize, BMSreallocBlockMemoryArray, SCIP_Benderscut::naddedconss, NULL, SCIP_ALLOC, SCIP_OKAY, SCIPblkmem(), and SCIPsetCalcMemGrowSize().
Referenced by SCIPstoreBenderscutCons().
◆ SCIPbenderscutStoreCut()
SCIP_RETCODE SCIPbenderscutStoreCut | ( | SCIP_BENDERSCUT * | benderscut, |
SCIP_SET * | set, | ||
SCIP_ROW * | cut | ||
) |
adds the generated cuts to the Benders' cut storage
- Parameters
-
benderscut Benders' decomposition cut set global SCIP settings cut the cut to be added to the Benders' cut storage
Definition at line 646 of file benderscut.c.
References SCIP_Benderscut::addedcuts, SCIP_Benderscut::addedcutssize, BMSreallocBlockMemoryArray, SCIP_Benderscut::naddedcuts, NULL, SCIP_ALLOC, SCIP_OKAY, SCIPblkmem(), and SCIPsetCalcMemGrowSize().
Referenced by SCIPstoreBenderscutCut().