Detailed Description
internal methods for separators
Definition in file sepa.h.
#include "scip/def.h"
#include "blockmemshell/memory.h"
#include "scip/type_retcode.h"
#include "scip/type_result.h"
#include "scip/type_set.h"
#include "scip/type_stat.h"
#include "scip/type_sepastore.h"
#include "scip/type_sepa.h"
#include "scip/pub_sepa.h"
Go to the source code of this file.
Function Documentation
◆ 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().
◆ 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 190 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 229 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 256 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 304 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 334 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 361 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 385 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 502 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().
◆ SCIPsepaSetPriority()
sets priority of separator
- Parameters
-
sepa separator set global SCIP settings priority new priority of the separator
Definition at line 750 of file sepa.c.
References FALSE, NULL, and SCIP_Sepa::priority.
Referenced by SCIPsetSepaPriority().
◆ SCIPsepaSetCopy()
void SCIPsepaSetCopy | ( | SCIP_SEPA * | sepa, |
SCIP_DECL_SEPACOPY((*sepacopy)) | |||
) |
sets copy method of separator
- Parameters
-
sepa separator
Definition at line 633 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 644 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 655 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 666 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 677 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 688 of file sepa.c.
References NULL.
Referenced by SCIPsetSepaExitsol().
◆ SCIPsepaSetIsParentsepa()
void SCIPsepaSetIsParentsepa | ( | SCIP_SEPA * | sepa | ) |
declares separator to be a parent separator
- Parameters
-
sepa separator
Definition at line 699 of file sepa.c.
References SCIP_Sepa::isparentsepa, NULL, and TRUE.
Referenced by SCIPsetSepaIsParentsepa().
◆ SCIPsepaSetParentsepa()
sets the parent separator
- Parameters
-
sepa separator parentsepa parent separator
Definition at line 709 of file sepa.c.
References NULL, and SCIP_Sepa::parentsepa.
Referenced by SCIPsetSepaParentsepa().
◆ 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 805 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 887 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 897 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 907 of file sepa.c.
References SCIP_Sepa::ncutsfoundatnode, and NULL.
Referenced by SCIPcutpoolSeparate().