Detailed Description
methods and datastructures for separators
Definition in file sepa.c.
#include <assert.h>
#include <string.h>
#include "scip/def.h"
#include "scip/set.h"
#include "scip/stat.h"
#include "scip/clock.h"
#include "scip/paramset.h"
#include "scip/sepastore.h"
#include "scip/scip.h"
#include "scip/sepa.h"
#include "scip/pub_message.h"
#include "scip/pub_misc.h"
#include "scip/struct_sepa.h"
Go to the source code of this file.
Function Documentation
◆ SCIP_DECL_PARAMCHGD()
|
static |
method to call, when the priority of a separator was changed
Definition at line 55 of file sepa.c.
References NULL, SCIP_CALL, SCIP_OKAY, SCIPparamGetData(), SCIPparamGetInt(), and SCIPsetSepaPriority().
◆ SCIPsepaCopyInclude()
SCIP_RETCODE SCIPsepaCopyInclude | ( | SCIP_SEPA * | sepa, |
SCIP_SET * | set | ||
) |
copies the given separator to a new scip
- Parameters
-
sepa separator set SCIP_SET of SCIP to copy to
Definition at line 69 of file sepa.c.
References NULL, SCIP_CALL, SCIP_OKAY, SCIPsepaGetName(), and SCIPsetDebugMsg.
◆ doSepaCreate()
|
static |
internal method for creating a separator
- Parameters
-
sepa pointer to separator data structure set global SCIP settings messagehdlr message handler blkmem block memory for parameter settings name name of separator desc description of separator priority priority of separator (>= 0: before, < 0: after constraint handlers) freq frequency for calling separator maxbounddist maximal relative distance from current node's dual bound to primal bound compared to best node's dual bound for applying separation usessubscip does the separator use a secondary SCIP instance? delay should separator be delayed, if other separators found cuts? sepadata separator data
Definition at line 88 of file sepa.c.
References BMSallocMemory, BMSclearMemory, BMSduplicateMemoryArray, FALSE, NULL, SCIP_ALLOC, SCIP_CALL, SCIP_CLOCKTYPE_DEFAULT, SCIP_MAXSTRLEN, SCIP_MAXTREEDEPTH, SCIP_OKAY, SCIPclockCreate(), SCIPsetAddBoolParam(), SCIPsetAddIntParam(), SCIPsetAddRealParam(), SCIPsnprintf(), and TRUE.
Referenced by SCIPsepaCreate().
◆ SCIPsepaCreate()
SCIP_RETCODE SCIPsepaCreate | ( | SCIP_SEPA ** | sepa, |
SCIP_SET * | set, | ||
SCIP_MESSAGEHDLR * | messagehdlr, | ||
BMS_BLKMEM * | blkmem, | ||
const char * | name, | ||
const char * | desc, | ||
int | priority, | ||
int | freq, | ||
SCIP_Real | maxbounddist, | ||
SCIP_Bool | usessubscip, | ||
SCIP_Bool | delay, | ||
SCIP_DECL_SEPACOPY((*sepacopy)) | , | ||
SCIP_DECL_SEPAFREE((*sepafree)) | , | ||
SCIP_DECL_SEPAINIT((*sepainit)) | , | ||
SCIP_DECL_SEPAEXIT((*sepaexit)) | , | ||
SCIP_DECL_SEPAINITSOL((*sepainitsol)) | , | ||
SCIP_DECL_SEPAEXITSOL((*sepaexitsol)) | , | ||
SCIP_DECL_SEPAEXECLP((*sepaexeclp)) | , | ||
SCIP_DECL_SEPAEXECSOL((*sepaexecsol)) | , | ||
SCIP_SEPADATA * | sepadata | ||
) |
creates a separator
- Parameters
-
sepa pointer to separator data structure set global SCIP settings messagehdlr message handler blkmem block memory for parameter settings name name of separator desc description of separator priority priority of separator (>= 0: before, < 0: after constraint handlers) freq frequency for calling separator maxbounddist maximal relative distance from current node's dual bound to primal bound compared to best node's dual bound for applying separation usessubscip does the separator use a secondary SCIP instance? delay should separator be delayed, if other separators found cuts? sepadata separator data
Definition at line 187 of file sepa.c.
References doSepaCreate(), NULL, SCIP_CALL_FINALLY, SCIP_OKAY, and SCIPsepaFree().
Referenced by SCIPincludeSepa(), and SCIPincludeSepaBasic().
◆ SCIPsepaFree()
SCIP_RETCODE SCIPsepaFree | ( | SCIP_SEPA ** | sepa, |
SCIP_SET * | set | ||
) |
calls destructor and frees memory of separator
- Parameters
-
sepa pointer to separator data structure set global SCIP settings
Definition at line 226 of file sepa.c.
References BMSfreeMemory, BMSfreeMemoryArrayNull, NULL, SCIP_CALL, SCIP_OKAY, and SCIPclockFree().
Referenced by SCIPsepaCreate().
◆ SCIPsepaInit()
SCIP_RETCODE SCIPsepaInit | ( | SCIP_SEPA * | sepa, |
SCIP_SET * | set | ||
) |
initializes separator
- Parameters
-
sepa separator set global SCIP settings
Definition at line 253 of file sepa.c.
References FALSE, SCIP_Sepa::initialized, SCIP_Sepa::lastsepanode, SCIP_Sepa::lpwasdelayed, SCIP_Sepa::name, SCIP_Sepa::ncalls, SCIP_Sepa::ncallsatnode, SCIP_Sepa::nconssfound, SCIP_Sepa::ncutoffs, SCIP_Sepa::ncutsapplied, SCIP_Sepa::ncutsfound, SCIP_Sepa::ncutsfoundatnode, SCIP_Sepa::ndomredsfound, NULL, SCIP_CALL, SCIP_INVALIDCALL, SCIP_OKAY, SCIPclockReset(), SCIPclockStart(), SCIPclockStop(), SCIPerrorMessage, SCIP_Sepa::sepaclock, SCIP_Sepa::setuptime, SCIP_Sepa::solwasdelayed, and TRUE.
Referenced by SCIPsetIncludeExternalCode().
◆ SCIPsepaExit()
SCIP_RETCODE SCIPsepaExit | ( | SCIP_SEPA * | sepa, |
SCIP_SET * | set | ||
) |
calls exit method of separator
- Parameters
-
sepa separator set global SCIP settings
Definition at line 301 of file sepa.c.
References FALSE, SCIP_Sepa::initialized, SCIP_Sepa::name, NULL, SCIP_CALL, SCIP_INVALIDCALL, SCIP_OKAY, SCIPclockStart(), SCIPclockStop(), SCIPerrorMessage, and SCIP_Sepa::setuptime.
Referenced by SCIPsetInitPlugins().
◆ SCIPsepaInitsol()
SCIP_RETCODE SCIPsepaInitsol | ( | SCIP_SEPA * | sepa, |
SCIP_SET * | set | ||
) |
informs separator that the branch and bound process is being started
- Parameters
-
sepa separator set global SCIP settings
Definition at line 331 of file sepa.c.
References FALSE, SCIP_Sepa::lpwasdelayed, NULL, SCIP_CALL, SCIP_OKAY, SCIPclockStart(), SCIPclockStop(), SCIP_Sepa::setuptime, and SCIP_Sepa::solwasdelayed.
Referenced by SCIPsetExitprePlugins().
◆ SCIPsepaExitsol()
SCIP_RETCODE SCIPsepaExitsol | ( | SCIP_SEPA * | sepa, |
SCIP_SET * | set | ||
) |
informs separator that the branch and bound process data is being freed
- Parameters
-
sepa separator set global SCIP settings
Definition at line 358 of file sepa.c.
References NULL, SCIP_CALL, SCIP_OKAY, SCIPclockStart(), SCIPclockStop(), and SCIP_Sepa::setuptime.
Referenced by SCIPsetInitsolPlugins().
◆ SCIPsepaExecLP()
SCIP_RETCODE SCIPsepaExecLP | ( | SCIP_SEPA * | sepa, |
SCIP_SET * | set, | ||
SCIP_STAT * | stat, | ||
SCIP_SEPASTORE * | sepastore, | ||
int | depth, | ||
SCIP_Real | bounddist, | ||
SCIP_Bool | allowlocal, | ||
SCIP_Bool | execdelayed, | ||
SCIP_RESULT * | result | ||
) |
calls LP separation method of separator
- Parameters
-
sepa separator set global SCIP settings stat dynamic problem statistics sepastore separation storage depth depth of current node bounddist current relative distance of local dual bound to global dual bound allowlocal should the separator be asked to separate local cuts execdelayed execute separator even if it is marked to be delayed result pointer to store the result of the callback method
Definition at line 382 of file sepa.c.
References SCIP_Sepa::delay, SCIP_Sepa::expbackoff, SCIP_Sepa::freq, SCIP_Sepa::lastsepanode, LOG2, SCIP_Sepa::lpwasdelayed, MAX, SCIP_Sepa::maxbounddist, SCIP_Stat::nactiveconss, SCIP_Sepa::name, SCIP_Stat::nboundchgs, SCIP_Sepa::ncalls, SCIP_Sepa::ncallsatnode, SCIP_Sepa::nconssfound, SCIP_Sepa::ncutoffs, SCIP_Sepa::ncutsfound, SCIP_Sepa::ncutsfoundatnode, SCIP_Sepa::ndomredsfound, SCIP_Stat::nholechgs, SCIP_Stat::nprobboundchgs, SCIP_Stat::nprobholechgs, SCIP_Stat::ntotalnodes, NULL, SCIP_CALL, SCIP_CONSADDED, SCIP_CUTOFF, SCIP_DELAYED, SCIP_DIDNOTFIND, SCIP_DIDNOTRUN, SCIP_INVALIDRESULT, SCIP_Longint, SCIP_NEWROUND, SCIP_OKAY, SCIP_Real, SCIP_REDUCEDDOM, SCIP_SEPARATED, SCIPclockStart(), SCIPclockStop(), SCIPerrorMessage, SCIPsepastoreGetNCuts(), SCIPsetDebugMsg, SCIPsetIsIntegral(), SCIPsetIsLE(), and SCIP_Sepa::sepaclock.
Referenced by separationRoundLP().
◆ SCIPsepaExecSol()
SCIP_RETCODE SCIPsepaExecSol | ( | SCIP_SEPA * | sepa, |
SCIP_SET * | set, | ||
SCIP_STAT * | stat, | ||
SCIP_SEPASTORE * | sepastore, | ||
SCIP_SOL * | sol, | ||
int | depth, | ||
SCIP_Bool | allowlocal, | ||
SCIP_Bool | execdelayed, | ||
SCIP_RESULT * | result | ||
) |
calls primal solution separation method of separator
- Parameters
-
sepa separator set global SCIP settings stat dynamic problem statistics sepastore separation storage sol primal solution that should be separated depth depth of current node allowlocal should the separator allow local cuts execdelayed execute separator even if it is marked to be delayed result pointer to store the result of the callback method
Definition at line 492 of file sepa.c.
References SCIP_Sepa::delay, SCIP_Sepa::expbackoff, SCIP_Sepa::freq, SCIP_Sepa::lastsepanode, LOG2, MAX, SCIP_Stat::nactiveconss, SCIP_Sepa::name, SCIP_Stat::nboundchgs, SCIP_Sepa::ncalls, SCIP_Sepa::ncallsatnode, SCIP_Sepa::nconssfound, SCIP_Sepa::ncutoffs, SCIP_Sepa::ncutsfound, SCIP_Sepa::ncutsfoundatnode, SCIP_Sepa::ndomredsfound, SCIP_Stat::nholechgs, SCIP_Stat::nprobboundchgs, SCIP_Stat::nprobholechgs, SCIP_Stat::ntotalnodes, NULL, SCIP_CALL, SCIP_CONSADDED, SCIP_CUTOFF, SCIP_DELAYED, SCIP_DIDNOTFIND, SCIP_DIDNOTRUN, SCIP_INVALIDRESULT, SCIP_Longint, SCIP_NEWROUND, SCIP_OKAY, SCIP_Real, SCIP_REDUCEDDOM, SCIP_SEPARATED, SCIPclockStart(), SCIPclockStop(), SCIPerrorMessage, SCIPsepastoreGetNCuts(), SCIPsetDebugMsg, SCIPsetIsIntegral(), SCIP_Sepa::sepaclock, and SCIP_Sepa::solwasdelayed.
Referenced by separationRoundSol().
◆ SCIPsepaSetCopy()
void SCIPsepaSetCopy | ( | SCIP_SEPA * | sepa, |
SCIP_DECL_SEPACOPY((*sepacopy)) | |||
) |
sets copy method of separator
- Parameters
-
sepa separator
Definition at line 623 of file sepa.c.
References NULL.
Referenced by SCIPsetSepaCopy().
◆ SCIPsepaSetFree()
void SCIPsepaSetFree | ( | SCIP_SEPA * | sepa, |
SCIP_DECL_SEPAFREE((*sepafree)) | |||
) |
sets destructor method of separator
- Parameters
-
sepa separator
Definition at line 634 of file sepa.c.
References NULL.
Referenced by SCIPsetSepaFree().
◆ SCIPsepaSetInit()
void SCIPsepaSetInit | ( | SCIP_SEPA * | sepa, |
SCIP_DECL_SEPAINIT((*sepainit)) | |||
) |
sets initialization method of separator
- Parameters
-
sepa separator
Definition at line 645 of file sepa.c.
References NULL.
Referenced by SCIPsetSepaInit().
◆ SCIPsepaSetExit()
void SCIPsepaSetExit | ( | SCIP_SEPA * | sepa, |
SCIP_DECL_SEPAEXIT((*sepaexit)) | |||
) |
sets deinitialization method of separator
- Parameters
-
sepa separator
Definition at line 656 of file sepa.c.
References NULL.
Referenced by SCIPsetSepaExit().
◆ SCIPsepaSetInitsol()
void SCIPsepaSetInitsol | ( | SCIP_SEPA * | sepa, |
SCIP_DECL_SEPAINITSOL((*sepainitsol)) | |||
) |
sets solving process initialization method of separator
- Parameters
-
sepa separator
Definition at line 667 of file sepa.c.
References NULL.
Referenced by SCIPsetSepaInitsol().
◆ SCIPsepaSetExitsol()
void SCIPsepaSetExitsol | ( | SCIP_SEPA * | sepa, |
SCIP_DECL_SEPAEXITSOL((*sepaexitsol)) | |||
) |
sets solving process deinitialization method of separator
- Parameters
-
sepa separator
Definition at line 678 of file sepa.c.
References NULL.
Referenced by SCIPsetSepaExitsol().
◆ SCIPsepaSetPriority()
sets priority of separator
- Parameters
-
sepa separator set global SCIP settings priority new priority of the separator
Definition at line 719 of file sepa.c.
References FALSE, NULL, and SCIP_Sepa::priority.
Referenced by SCIPsetSepaPriority().
◆ SCIPsepaEnableOrDisableClocks()
enables or disables all clocks of sepa
, depending on the value of the flag
- Parameters
-
sepa the separator for which all clocks should be enabled or disabled enable should the clocks of the separator be enabled?
Definition at line 774 of file sepa.c.
References NULL, SCIPclockEnableOrDisable(), SCIP_Sepa::sepaclock, and SCIP_Sepa::setuptime.
◆ SCIPsepaIncNAppliedCuts()
void SCIPsepaIncNAppliedCuts | ( | SCIP_SEPA * | sepa | ) |
increase count of applied cuts
- Parameters
-
sepa separator
Definition at line 856 of file sepa.c.
References SCIP_Sepa::ncutsapplied, and NULL.
Referenced by sepastoreApplyCut().
◆ SCIPsepaIncNCutsFound()
void SCIPsepaIncNCutsFound | ( | SCIP_SEPA * | sepa | ) |
increase count of found cuts
- Parameters
-
sepa separator
Definition at line 866 of file sepa.c.
References SCIP_Sepa::ncutsfound, and NULL.
Referenced by SCIPcutpoolSeparate().
◆ SCIPsepaIncNCutsFoundAtNode()
void SCIPsepaIncNCutsFoundAtNode | ( | SCIP_SEPA * | sepa | ) |
increase count of found cuts at current node
- Parameters
-
sepa separator
Definition at line 876 of file sepa.c.
References SCIP_Sepa::ncutsfoundatnode, and NULL.
Referenced by SCIPcutpoolSeparate().