Detailed Description
methods for separator plugins
Function Documentation
◆ SCIP_DECL_SORTPTRCOMP() [1/2]
SCIP_DECL_SORTPTRCOMP | ( | SCIPsepaComp | ) |
◆ SCIP_DECL_SORTPTRCOMP() [2/2]
SCIP_DECL_SORTPTRCOMP | ( | SCIPsepaCompName | ) |
comparison method for sorting separators w.r.t. to their name
Definition at line 49 of file sepa.c.
References SCIPsepaGetName().
◆ SCIPsepaGetData()
SCIP_SEPADATA* SCIPsepaGetData | ( | SCIP_SEPA * | sepa | ) |
gets user data of separator
- Parameters
-
sepa separator
Definition at line 610 of file sepa.c.
References NULL, and SCIP_Sepa::sepadata.
Referenced by aggregation(), doSeparation(), freeSubscip(), generateCut(), SCIP_DECL_SEPACOPY(), SCIP_DECL_SEPAEXECLP(), SCIP_DECL_SEPAEXECSOL(), SCIP_DECL_SEPAEXIT(), SCIP_DECL_SEPAEXITSOL(), SCIP_DECL_SEPAFREE(), SCIP_DECL_SEPAINIT(), SCIP_DECL_SEPAINITSOL(), SCIPfindObjSepa(), SCIPgetObjSepa(), SCIPsetBasePointClosecuts(), separateCuts(), separateOddCycles(), and separatePoint().
◆ SCIPsepaSetData()
void SCIPsepaSetData | ( | SCIP_SEPA * | sepa, |
SCIP_SEPADATA * | sepadata | ||
) |
sets user data of separator; user has to free old data in advance!
- Parameters
-
sepa separator sepadata new separator user data
Definition at line 620 of file sepa.c.
References NULL, and SCIP_Sepa::sepadata.
Referenced by SCIP_DECL_SEPAFREE().
◆ SCIPsepaGetName()
const char* SCIPsepaGetName | ( | SCIP_SEPA * | sepa | ) |
gets name of separator
- Parameters
-
sepa separator
Definition at line 720 of file sepa.c.
References SCIP_Sepa::name, and NULL.
Referenced by generateDisjCutSOS1(), paramsetSetSeparatingAggressive(), paramsetSetSeparatingDefault(), paramsetSetSeparatingOff(), SCIP_DECL_DIALOGEXEC(), SCIP_DECL_SEPACOPY(), SCIP_DECL_SEPAEXECLP(), SCIP_DECL_SEPAEXECSOL(), SCIP_DECL_SEPAEXITSOL(), SCIP_DECL_SEPAFREE(), SCIP_DECL_SEPAINITSOL(), SCIP_DECL_SORTPTRCOMP(), SCIPcopyConcurrentSolvingStats(), SCIPincludeDialogDefaultFix(), SCIPincludeDialogDefaultSet(), SCIPparamsetSetToSubscipsOff(), SCIPprintSeparatorStatistics(), SCIPsepaCopyInclude(), SCIPsetBasePointClosecuts(), separateCuts(), separateSequLiftedExtendedWeightInequality(), separateSequLiftedMinimalCoverInequality(), separateSupLiftedMinimalCoverInequality(), separationRoundLP(), and separationRoundSol().
◆ SCIPsepaGetDesc()
const char* SCIPsepaGetDesc | ( | SCIP_SEPA * | sepa | ) |
gets description of separator
- Parameters
-
sepa separator
Definition at line 730 of file sepa.c.
References SCIP_Sepa::desc, and NULL.
Referenced by SCIP_DECL_DIALOGEXEC(), SCIPincludeDialogDefaultFix(), and SCIPincludeDialogDefaultSet().
◆ SCIPsepaGetPriority()
int SCIPsepaGetPriority | ( | SCIP_SEPA * | sepa | ) |
gets priority of separator
- Parameters
-
sepa separator
Definition at line 740 of file sepa.c.
References NULL, and SCIP_Sepa::priority.
Referenced by SCIP_DECL_DIALOGEXEC(), separationRoundLP(), and separationRoundSol().
◆ SCIPsepaGetFreq()
int SCIPsepaGetFreq | ( | SCIP_SEPA * | sepa | ) |
gets frequency of separator
- Parameters
-
sepa separator
Definition at line 764 of file sepa.c.
References SCIP_Sepa::freq, and NULL.
Referenced by SCIP_DECL_DIALOGEXEC(), SCIP_DECL_SEPAEXECLP(), and separateCuts().
◆ SCIPsepaSetFreq()
void SCIPsepaSetFreq | ( | SCIP_SEPA * | sepa, |
int | freq | ||
) |
sets frequency of separator
- Parameters
-
sepa separator freq new frequency of separator
Definition at line 774 of file sepa.c.
References SCIP_Sepa::freq, and NULL.
◆ SCIPsepaGetMaxbounddist()
get maximal bound distance at which the separator is called
- Parameters
-
sepa separator
Definition at line 785 of file sepa.c.
References SCIP_Sepa::maxbounddist, and NULL.
Referenced by SCIP_DECL_DIALOGEXEC().
◆ SCIPsepaUsesSubscip()
does the separator use a secondary SCIP instance?
- Parameters
-
sepa separator
Definition at line 795 of file sepa.c.
References NULL, and SCIP_Sepa::usessubscip.
Referenced by SCIPparamsetSetToSubscipsOff().
◆ SCIPsepaGetSetupTime()
gets time in seconds used in this separator for setting up for next stages
- Parameters
-
sepa separator
Definition at line 817 of file sepa.c.
References NULL, SCIPclockGetTime(), and SCIP_Sepa::setuptime.
Referenced by SCIPprintSeparatorStatistics().
◆ SCIPsepaGetTime()
gets time in seconds used in this separator
- Parameters
-
sepa separator
Definition at line 827 of file sepa.c.
References NULL, SCIPclockGetTime(), and SCIP_Sepa::sepaclock.
Referenced by SCIPprintSeparatorStatistics(), and separateOddCycles().
◆ SCIPsepaGetNCalls()
SCIP_Longint SCIPsepaGetNCalls | ( | SCIP_SEPA * | sepa | ) |
gets the total number of times, the separator was called
- Parameters
-
sepa separator
Definition at line 837 of file sepa.c.
References SCIP_Sepa::ncalls, and NULL.
Referenced by SCIPprintSeparatorStatistics(), and separateCuts().
◆ SCIPsepaGetNCallsAtNode()
int SCIPsepaGetNCallsAtNode | ( | SCIP_SEPA * | sepa | ) |
gets the number of times, the separator was called at the current node
- Parameters
-
sepa separator
Definition at line 847 of file sepa.c.
References SCIP_Sepa::ncallsatnode, and NULL.
Referenced by doSeparation(), SCIP_DECL_SEPAEXECLP(), SCIP_DECL_SEPAEXECSOL(), separateCuts(), and separateOddCycles().
◆ SCIPsepaGetNCutoffs()
SCIP_Longint SCIPsepaGetNCutoffs | ( | SCIP_SEPA * | sepa | ) |
gets total number of times, the separator detected a cutoff
- Parameters
-
sepa separator
Definition at line 857 of file sepa.c.
References SCIP_Sepa::ncutoffs, and NULL.
Referenced by SCIPprintSeparatorStatistics().
◆ SCIPsepaGetNCutsFound()
SCIP_Longint SCIPsepaGetNCutsFound | ( | SCIP_SEPA * | sepa | ) |
gets the total number of cutting planes found by this separator
- Parameters
-
sepa separator
Definition at line 867 of file sepa.c.
References SCIP_Sepa::ncutsfound, and NULL.
Referenced by SCIPprintSeparatorStatistics(), separateSequLiftedExtendedWeightInequality(), separateSequLiftedMinimalCoverInequality(), and separateSupLiftedMinimalCoverInequality().
◆ SCIPsepaGetNCutsApplied()
SCIP_Longint SCIPsepaGetNCutsApplied | ( | SCIP_SEPA * | sepa | ) |
gets the total number of cutting planes applied to lp
- Parameters
-
sepa separator
Definition at line 877 of file sepa.c.
References SCIP_Sepa::ncutsapplied, and NULL.
Referenced by SCIPprintSeparatorStatistics().
◆ SCIPsepaGetNCutsFoundAtNode()
SCIP_Longint SCIPsepaGetNCutsFoundAtNode | ( | SCIP_SEPA * | sepa | ) |
gets the number of cutting planes found by this separator at the current node
- Parameters
-
sepa separator
Definition at line 917 of file sepa.c.
References SCIP_Sepa::ncutsfoundatnode, and NULL.
◆ SCIPsepaGetNConssFound()
SCIP_Longint SCIPsepaGetNConssFound | ( | SCIP_SEPA * | sepa | ) |
gets total number of additional constraints added by this separator
- Parameters
-
sepa separator
Definition at line 927 of file sepa.c.
References SCIP_Sepa::nconssfound, and NULL.
Referenced by SCIPprintSeparatorStatistics().
◆ SCIPsepaGetNDomredsFound()
SCIP_Longint SCIPsepaGetNDomredsFound | ( | SCIP_SEPA * | sepa | ) |
gets total number of domain reductions found by this separator
- Parameters
-
sepa separator
Definition at line 937 of file sepa.c.
References SCIP_Sepa::ndomredsfound, and NULL.
Referenced by SCIPprintSeparatorStatistics().
◆ SCIPsepaIsDelayed()
should separator be delayed, if other separators found cuts?
- Parameters
-
sepa separator
Definition at line 947 of file sepa.c.
References SCIP_Sepa::delay, and NULL.
Referenced by SCIP_DECL_DIALOGEXEC().
◆ SCIPsepaWasLPDelayed()
was separation of the LP solution delayed at the last call?
- Parameters
-
sepa separator
Definition at line 957 of file sepa.c.
References SCIP_Sepa::lpwasdelayed, and NULL.
Referenced by SCIP_DECL_SEPAEXECLP(), separateCuts(), and separationRoundLP().
◆ SCIPsepaWasSolDelayed()
was separation of the primal solution delayed at the last call?
- Parameters
-
sepa separator
Definition at line 967 of file sepa.c.
References NULL, and SCIP_Sepa::solwasdelayed.
Referenced by separationRoundSol().
◆ SCIPsepaIsInitialized()
is separator initialized?
- Parameters
-
sepa separator
Definition at line 977 of file sepa.c.
References SCIP_Sepa::initialized, and NULL.
◆ SCIPsepaIsParentsepa()
gets whether separator is a parent separator
- Parameters
-
sepa separator
Definition at line 987 of file sepa.c.
References SCIP_Sepa::isparentsepa, and NULL.
Referenced by SCIPprintSeparatorStatistics().
◆ SCIPsepaGetParentsepa()
gets parent separator (or NULL)
- Parameters
-
sepa separator
Definition at line 997 of file sepa.c.
References NULL, and SCIP_Sepa::parentsepa.
Referenced by SCIPprintSeparatorStatistics().
◆ SCIPincludeSepa()
SCIP_RETCODE SCIPincludeSepa | ( | SCIP * | scip, |
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 and includes it in SCIP.
- Note
- method has all separator callbacks as arguments and is thus changed every time a new callback is added in future releases; consider using SCIPincludeSepaBasic() and setter functions if you seek for a method which is less likely to change in future releases
- Parameters
-
scip SCIP data structure 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 53 of file scip_sepa.c.
References FALSE, Scip::mem, Scip::messagehdlr, NULL, SCIP_CALL, SCIP_INVALIDDATA, SCIP_OKAY, SCIPcheckStage(), SCIPerrorMessage, SCIPfindSepa(), SCIPsepaCreate(), SCIPsetIncludeSepa(), Scip::set, SCIP_Mem::setmem, and TRUE.
Referenced by SCIPincludeObjSepa().
◆ SCIPincludeSepaBasic()
SCIP_RETCODE SCIPincludeSepaBasic | ( | SCIP * | scip, |
SCIP_SEPA ** | sepa, | ||
const char * | name, | ||
const char * | desc, | ||
int | priority, | ||
int | freq, | ||
SCIP_Real | maxbounddist, | ||
SCIP_Bool | usessubscip, | ||
SCIP_Bool | delay, | ||
SCIP_DECL_SEPAEXECLP((*sepaexeclp)) | , | ||
SCIP_DECL_SEPAEXECSOL((*sepaexecsol)) | , | ||
SCIP_SEPADATA * | sepadata | ||
) |
creates a separator and includes it in SCIP with its most fundamental callbacks. All non-fundamental (or optional) callbacks as, e.g., init and exit callbacks, will be set to NULL. Optional callbacks can be set via specific setter functions, see SCIPsetSepaInit(), SCIPsetSepaFree(), SCIPsetSepaInitsol(), SCIPsetSepaExitsol(), SCIPsetSepaCopy(), SCIPsetExit().
- Note
- if you want to set all callbacks with a single method call, consider using SCIPincludeSepa() instead
- Parameters
-
scip SCIP data structure sepa reference to a separator, or NULL 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 100 of file scip_sepa.c.
References FALSE, Scip::mem, Scip::messagehdlr, NULL, SCIP_CALL, SCIP_INVALIDDATA, SCIP_OKAY, SCIPcheckStage(), SCIPerrorMessage, SCIPfindSepa(), SCIPsepaCreate(), SCIPsetIncludeSepa(), Scip::set, SCIP_Mem::setmem, and TRUE.
Referenced by SCIPincludeSepaCGMIP(), SCIPincludeSepaClique(), SCIPincludeSepaClosecuts(), SCIPincludeSepaConvexproj(), SCIPincludeSepaDisjunctive(), SCIPincludeSepaEccuts(), SCIPincludeSepaEdge(), SCIPincludeSepaGauge(), SCIPincludeSepaGMI(), SCIPincludeSepaGomory(), SCIPincludeSepaImpliedbounds(), SCIPincludeSepaInterminor(), SCIPincludeSepaIntobj(), SCIPincludeSepaMcf(), SCIPincludeSepaMinor(), SCIPincludeSepaMixing(), SCIPincludeSepaOddcycle(), SCIPincludeSepaPartition(), SCIPincludeSepaRlt(), SCIPincludeSepaSubtour(), and SCIPincludeSepaZerohalf().
◆ SCIPsetSepaCopy()
SCIP_RETCODE SCIPsetSepaCopy | ( | SCIP * | scip, |
SCIP_SEPA * | sepa, | ||
SCIP_DECL_SEPACOPY((*sepacopy)) | |||
) |
sets copy method of separator
- Parameters
-
scip SCIP data structure sepa separator
Definition at line 142 of file scip_sepa.c.
References FALSE, NULL, SCIP_CALL, SCIP_OKAY, SCIPcheckStage(), SCIPsepaSetCopy(), and TRUE.
Referenced by SCIPincludeSepaCGMIP(), SCIPincludeSepaClique(), SCIPincludeSepaClosecuts(), SCIPincludeSepaDisjunctive(), SCIPincludeSepaEccuts(), SCIPincludeSepaEdge(), SCIPincludeSepaGMI(), SCIPincludeSepaGomory(), SCIPincludeSepaImpliedbounds(), SCIPincludeSepaInterminor(), SCIPincludeSepaIntobj(), SCIPincludeSepaMcf(), SCIPincludeSepaMinor(), SCIPincludeSepaMixing(), SCIPincludeSepaOddcycle(), SCIPincludeSepaPartition(), SCIPincludeSepaRlt(), SCIPincludeSepaSubtour(), and SCIPincludeSepaZerohalf().
◆ SCIPsetSepaFree()
SCIP_RETCODE SCIPsetSepaFree | ( | SCIP * | scip, |
SCIP_SEPA * | sepa, | ||
SCIP_DECL_SEPAFREE((*sepafree)) | |||
) |
sets destructor method of separator
- Parameters
-
scip SCIP data structure sepa separator
Definition at line 158 of file scip_sepa.c.
References FALSE, NULL, SCIP_CALL, SCIP_OKAY, SCIPcheckStage(), SCIPsepaSetFree(), and TRUE.
Referenced by SCIPincludeSepaCGMIP(), SCIPincludeSepaClique(), SCIPincludeSepaClosecuts(), SCIPincludeSepaConvexproj(), SCIPincludeSepaDisjunctive(), SCIPincludeSepaEccuts(), SCIPincludeSepaGauge(), SCIPincludeSepaGMI(), SCIPincludeSepaGomory(), SCIPincludeSepaImpliedbounds(), SCIPincludeSepaInterminor(), SCIPincludeSepaIntobj(), SCIPincludeSepaMcf(), SCIPincludeSepaMinor(), SCIPincludeSepaMixing(), SCIPincludeSepaOddcycle(), SCIPincludeSepaRlt(), and SCIPincludeSepaZerohalf().
◆ SCIPsetSepaInit()
SCIP_RETCODE SCIPsetSepaInit | ( | SCIP * | scip, |
SCIP_SEPA * | sepa, | ||
SCIP_DECL_SEPAINIT((*sepainit)) | |||
) |
sets initialization method of separator
- Parameters
-
scip SCIP data structure sepa separator
Definition at line 174 of file scip_sepa.c.
References FALSE, NULL, SCIP_CALL, SCIP_OKAY, SCIPcheckStage(), SCIPsepaSetInit(), and TRUE.
Referenced by SCIPincludeSepaCGMIP(), SCIPincludeSepaGomory(), SCIPincludeSepaInterminor(), SCIPincludeSepaMinor(), and SCIPincludeSepaOddcycle().
◆ SCIPsetSepaExit()
SCIP_RETCODE SCIPsetSepaExit | ( | SCIP * | scip, |
SCIP_SEPA * | sepa, | ||
SCIP_DECL_SEPAEXIT((*sepaexit)) | |||
) |
sets deinitialization method of separator
- Parameters
-
scip SCIP data structure sepa separator
Definition at line 190 of file scip_sepa.c.
References FALSE, NULL, SCIP_CALL, SCIP_OKAY, SCIPcheckStage(), SCIPsepaSetExit(), and TRUE.
Referenced by SCIPincludeSepaCGMIP(), SCIPincludeSepaGomory(), SCIPincludeSepaInterminor(), and SCIPincludeSepaMinor().
◆ SCIPsetSepaInitsol()
SCIP_RETCODE SCIPsetSepaInitsol | ( | SCIP * | scip, |
SCIP_SEPA * | sepa, | ||
SCIP_DECL_SEPAINITSOL((*sepainitsol)) | |||
) |
sets solving process initialization method of separator
- Parameters
-
scip SCIP data structure sepa separator
Definition at line 206 of file scip_sepa.c.
References FALSE, NULL, SCIP_CALL, SCIP_OKAY, SCIPcheckStage(), SCIPsepaSetInitsol(), and TRUE.
Referenced by SCIPincludeSepaDisjunctive(), SCIPincludeSepaInterminor(), SCIPincludeSepaMcf(), SCIPincludeSepaMinor(), SCIPincludeSepaOddcycle(), and SCIPincludeSepaZerohalf().
◆ SCIPsetSepaExitsol()
SCIP_RETCODE SCIPsetSepaExitsol | ( | SCIP * | scip, |
SCIP_SEPA * | sepa, | ||
SCIP_DECL_SEPAEXITSOL((*sepaexitsol)) | |||
) |
sets solving process deinitialization method of separator
- Parameters
-
scip SCIP data structure sepa separator
Definition at line 222 of file scip_sepa.c.
References FALSE, NULL, SCIP_CALL, SCIP_OKAY, SCIPcheckStage(), SCIPsepaSetExitsol(), and TRUE.
Referenced by SCIPincludeSepaClique(), SCIPincludeSepaClosecuts(), SCIPincludeSepaConvexproj(), SCIPincludeSepaEccuts(), SCIPincludeSepaGauge(), SCIPincludeSepaInterminor(), SCIPincludeSepaIntobj(), SCIPincludeSepaMcf(), SCIPincludeSepaMinor(), SCIPincludeSepaRlt(), and SCIPincludeSepaZerohalf().
◆ SCIPfindSepa()
returns the separator of the given name, or NULL if not existing
- Parameters
-
scip SCIP data structure name name of separator
Definition at line 238 of file scip_sepa.c.
References NULL, SCIPsetFindSepa(), and Scip::set.
Referenced by SCIPcopyConcurrentSolvingStats(), SCIPfindObjSepa(), SCIPincludeSepa(), SCIPincludeSepaBasic(), and SCIPsetBasePointClosecuts().
◆ SCIPgetSepas()
returns the array of currently available separators
- Parameters
-
scip SCIP data structure
Definition at line 251 of file scip_sepa.c.
References NULL, SCIPsetSortSepas(), SCIP_Set::sepas, and Scip::set.
Referenced by SCIP_DECL_DIALOGEXEC(), SCIPcopyConcurrentSolvingStats(), SCIPincludeDialogDefaultFix(), and SCIPincludeDialogDefaultSet().
◆ SCIPgetNSepas()
int SCIPgetNSepas | ( | SCIP * | scip | ) |
returns the number of currently available separators
- Parameters
-
scip SCIP data structure
Definition at line 264 of file scip_sepa.c.
References SCIP_Set::nsepas, NULL, and Scip::set.
Referenced by SCIP_DECL_DIALOGEXEC(), SCIPcopyConcurrentSolvingStats(), SCIPincludeDialogDefaultFix(), and SCIPincludeDialogDefaultSet().
◆ SCIPsetSepaPriority()
SCIP_RETCODE SCIPsetSepaPriority | ( | SCIP * | scip, |
SCIP_SEPA * | sepa, | ||
int | priority | ||
) |
sets the priority of a separator
- Parameters
-
scip SCIP data structure sepa separator priority new priority of the separator
Definition at line 275 of file scip_sepa.c.
References NULL, SCIP_OKAY, SCIPsepaSetPriority(), and Scip::set.
Referenced by SCIP_DECL_PARAMCHGD().
◆ SCIPsetSepaIsParentsepa()
declares separator to be a parent separator
Parent separators generate cuts of several types. To distinguish these cuts, they create child separators, which are only needed to detect which cuts are applied.
- Parameters
-
scip SCIP data structure sepa separator
Definition at line 294 of file scip_sepa.c.
References NULL, and SCIPsepaSetIsParentsepa().
Referenced by SCIPincludeSepaGomory().
◆ SCIPsetSepaParentsepa()
sets the parent separator
Informs SCIP that the separator sepa
depends on the parent separator parentsepa
.
- Parameters
-
scip SCIP data structure sepa separator parentsepa parent separator
Definition at line 309 of file scip_sepa.c.
References NULL, and SCIPsepaSetParentsepa().
Referenced by SCIPincludeSepaGomory().
◆ SCIPgetSepaMinEfficacy()
gets value of minimal efficacy for a cut to enter the LP
- Precondition
- This method can be called if
scip
is in one of the following stages:
- Returns
- value of "separating/minefficacyroot" if at root node, otherwise value of "separating/minefficacy"
- Parameters
-
scip SCIP data structure
Definition at line 330 of file scip_sepa.c.
References FALSE, NULL, SCIP_CALL_ABORT, SCIPcheckStage(), SCIPtreeGetCurrentDepth(), SCIP_Set::sepa_minefficacy, SCIP_Set::sepa_minefficacyroot, Scip::set, Scip::tree, and TRUE.
Referenced by SCIPcleanupRowprep(), and SCIPprocessRowprepNonlinear().