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 56 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 70 of file sepa.c.
References NULL, SCIP_CALL, SCIP_OKAY, SCIPsepaGetName(), and SCIPsetDebugMsg.
Referenced by SCIPsetCopyPlugins().
◆ 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 89 of file sepa.c.
References BMSallocMemory, BMSclearMemory, BMSduplicateMemoryArray, FALSE, NULL, paramname, 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 188 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 227 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 254 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.
◆ 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 302 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 332 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 359 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 383 of file sepa.c.
References SCIP_Sepa::delay, SCIP_Sepa::expbackoff, SCIP_Sepa::freq, SCIP_Sepa::lastsepanode, 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(), SCIPcutpoolGetNCuts(), SCIPerrorMessage, SCIPgetDelayedGlobalCutpool(), SCIPgetGlobalCutpool(), 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 500 of file sepa.c.
References SCIP_Sepa::delay, SCIP_Sepa::expbackoff, SCIP_Sepa::freq, SCIP_Sepa::lastsepanode, 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 631 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 642 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 653 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 664 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 675 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 686 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 727 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 782 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 864 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 874 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 884 of file sepa.c.
References SCIP_Sepa::ncutsfoundatnode, and NULL.
Referenced by SCIPcutpoolSeparate().