Scippy

SCIP

Solving Constraint Integer Programs

Detailed Description

methods for separator plugins

Functions

 SCIP_DECL_SORTPTRCOMP (SCIPsepaComp)
 
 SCIP_DECL_SORTPTRCOMP (SCIPsepaCompName)
 
SCIP_SEPADATASCIPsepaGetData (SCIP_SEPA *sepa)
 
void SCIPsepaSetData (SCIP_SEPA *sepa, SCIP_SEPADATA *sepadata)
 
const char * SCIPsepaGetName (SCIP_SEPA *sepa)
 
const char * SCIPsepaGetDesc (SCIP_SEPA *sepa)
 
int SCIPsepaGetPriority (SCIP_SEPA *sepa)
 
int SCIPsepaGetFreq (SCIP_SEPA *sepa)
 
void SCIPsepaSetFreq (SCIP_SEPA *sepa, int freq)
 
SCIP_Real SCIPsepaGetMaxbounddist (SCIP_SEPA *sepa)
 
SCIP_Bool SCIPsepaUsesSubscip (SCIP_SEPA *sepa)
 
SCIP_Real SCIPsepaGetSetupTime (SCIP_SEPA *sepa)
 
SCIP_Real SCIPsepaGetTime (SCIP_SEPA *sepa)
 
SCIP_Longint SCIPsepaGetNCalls (SCIP_SEPA *sepa)
 
int SCIPsepaGetNCallsAtNode (SCIP_SEPA *sepa)
 
SCIP_Longint SCIPsepaGetNCutoffs (SCIP_SEPA *sepa)
 
SCIP_Longint SCIPsepaGetNCutsFound (SCIP_SEPA *sepa)
 
SCIP_Longint SCIPsepaGetNCutsApplied (SCIP_SEPA *sepa)
 
SCIP_Longint SCIPsepaGetNCutsFoundAtNode (SCIP_SEPA *sepa)
 
SCIP_Longint SCIPsepaGetNConssFound (SCIP_SEPA *sepa)
 
SCIP_Longint SCIPsepaGetNDomredsFound (SCIP_SEPA *sepa)
 
SCIP_Bool SCIPsepaIsDelayed (SCIP_SEPA *sepa)
 
SCIP_Bool SCIPsepaWasLPDelayed (SCIP_SEPA *sepa)
 
SCIP_Bool SCIPsepaWasSolDelayed (SCIP_SEPA *sepa)
 
SCIP_Bool SCIPsepaIsInitialized (SCIP_SEPA *sepa)
 
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)
 
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)
 
SCIP_RETCODE SCIPsetSepaCopy (SCIP *scip, SCIP_SEPA *sepa, SCIP_DECL_SEPACOPY((*sepacopy)))
 
SCIP_RETCODE SCIPsetSepaFree (SCIP *scip, SCIP_SEPA *sepa, SCIP_DECL_SEPAFREE((*sepafree)))
 
SCIP_RETCODE SCIPsetSepaInit (SCIP *scip, SCIP_SEPA *sepa, SCIP_DECL_SEPAINIT((*sepainit)))
 
SCIP_RETCODE SCIPsetSepaExit (SCIP *scip, SCIP_SEPA *sepa, SCIP_DECL_SEPAEXIT((*sepaexit)))
 
SCIP_RETCODE SCIPsetSepaInitsol (SCIP *scip, SCIP_SEPA *sepa, SCIP_DECL_SEPAINITSOL((*sepainitsol)))
 
SCIP_RETCODE SCIPsetSepaExitsol (SCIP *scip, SCIP_SEPA *sepa, SCIP_DECL_SEPAEXITSOL((*sepaexitsol)))
 
SCIP_SEPASCIPfindSepa (SCIP *scip, const char *name)
 
SCIP_SEPA ** SCIPgetSepas (SCIP *scip)
 
int SCIPgetNSepas (SCIP *scip)
 
SCIP_RETCODE SCIPsetSepaPriority (SCIP *scip, SCIP_SEPA *sepa, int priority)
 
SCIP_Real SCIPgetSepaMinEfficacy (SCIP *scip)
 

Function Documentation

◆ SCIP_DECL_SORTPTRCOMP() [1/2]

SCIP_DECL_SORTPTRCOMP ( SCIPsepaComp  )

compares two separators w. r. to their priority

Definition at line 42 of file sepa.c.

◆ SCIP_DECL_SORTPTRCOMP() [2/2]

SCIP_DECL_SORTPTRCOMP ( SCIPsepaCompName  )

comparison method for sorting separators w.r.t. to their name

Definition at line 48 of file sepa.c.

References SCIPsepaGetName().

◆ SCIPsepaGetData()

◆ SCIPsepaSetData()

void SCIPsepaSetData ( SCIP_SEPA sepa,
SCIP_SEPADATA sepadata 
)

sets user data of separator; user has to free old data in advance!

Parameters
sepaseparator
sepadatanew separator user data

Definition at line 567 of file sepa.c.

References SCIP_Sepa::sepadata.

Referenced by SCIP_DECL_SEPAFREE().

◆ SCIPsepaGetName()

◆ SCIPsepaGetDesc()

const char* SCIPsepaGetDesc ( SCIP_SEPA sepa)

gets description of separator

Parameters
sepaseparator

Definition at line 656 of file sepa.c.

References SCIP_Sepa::desc.

Referenced by SCIP_DECL_DIALOGEXEC(), SCIPincludeDialogDefaultFix(), and SCIPincludeDialogDefaultSet().

◆ SCIPsepaGetPriority()

int SCIPsepaGetPriority ( SCIP_SEPA sepa)

gets priority of separator

Parameters
sepaseparator

Definition at line 666 of file sepa.c.

References SCIP_Sepa::priority.

Referenced by SCIP_DECL_DIALOGEXEC(), separationRoundLP(), and separationRoundSol().

◆ SCIPsepaGetFreq()

int SCIPsepaGetFreq ( SCIP_SEPA sepa)

gets frequency of separator

Parameters
sepaseparator

Definition at line 690 of file sepa.c.

References SCIP_Sepa::freq.

Referenced by SCIP_DECL_DIALOGEXEC().

◆ SCIPsepaSetFreq()

void SCIPsepaSetFreq ( SCIP_SEPA sepa,
int  freq 
)

sets frequency of separator

Parameters
sepaseparator
freqnew frequency of separator

Definition at line 700 of file sepa.c.

References SCIP_Sepa::freq.

◆ SCIPsepaGetMaxbounddist()

SCIP_Real SCIPsepaGetMaxbounddist ( SCIP_SEPA sepa)

get maximal bound distance at which the separator is called

Parameters
sepaseparator

Definition at line 711 of file sepa.c.

References SCIP_Sepa::maxbounddist.

Referenced by SCIP_DECL_DIALOGEXEC().

◆ SCIPsepaUsesSubscip()

SCIP_Bool SCIPsepaUsesSubscip ( SCIP_SEPA sepa)

does the separator use a secondary SCIP instance?

Parameters
sepaseparator

Definition at line 721 of file sepa.c.

References SCIP_Sepa::usessubscip.

Referenced by SCIPparamsetSetToSubscipsOff().

◆ SCIPsepaGetSetupTime()

SCIP_Real SCIPsepaGetSetupTime ( SCIP_SEPA sepa)

gets time in seconds used in this separator for setting up for next stages

Parameters
sepaseparator

Definition at line 743 of file sepa.c.

References SCIPclockGetTime(), and SCIP_Sepa::setuptime.

Referenced by SCIPprintSeparatorStatistics().

◆ SCIPsepaGetTime()

SCIP_Real SCIPsepaGetTime ( SCIP_SEPA sepa)

gets time in seconds used in this separator

Parameters
sepaseparator

Definition at line 753 of file sepa.c.

References SCIPclockGetTime(), and SCIP_Sepa::sepaclock.

Referenced by SCIP_DECL_SEPAEXECLP(), and SCIPprintSeparatorStatistics().

◆ SCIPsepaGetNCalls()

SCIP_Longint SCIPsepaGetNCalls ( SCIP_SEPA sepa)

gets the total number of times, the separator was called

Parameters
sepaseparator

Definition at line 763 of file sepa.c.

References SCIP_Sepa::ncalls.

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
sepaseparator

Definition at line 773 of file sepa.c.

References SCIP_Sepa::ncallsatnode.

Referenced by SCIP_DECL_SEPAEXECLP(), and separateCuts().

◆ SCIPsepaGetNCutoffs()

SCIP_Longint SCIPsepaGetNCutoffs ( SCIP_SEPA sepa)

gets total number of times, the separator detected a cutoff

Parameters
sepaseparator

Definition at line 783 of file sepa.c.

References SCIP_Sepa::ncutoffs.

Referenced by SCIPprintSeparatorStatistics().

◆ SCIPsepaGetNCutsFound()

SCIP_Longint SCIPsepaGetNCutsFound ( SCIP_SEPA sepa)

gets the total number of cutting planes found by this separator

Parameters
sepaseparator

Definition at line 793 of file sepa.c.

References SCIP_Sepa::ncutsfound.

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
sepaseparator

Definition at line 803 of file sepa.c.

References SCIP_Sepa::ncutsapplied.

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
sepaseparator

Definition at line 843 of file sepa.c.

References SCIP_Sepa::ncutsfoundatnode.

◆ SCIPsepaGetNConssFound()

SCIP_Longint SCIPsepaGetNConssFound ( SCIP_SEPA sepa)

gets total number of additional constraints added by this separator

Parameters
sepaseparator

Definition at line 853 of file sepa.c.

References SCIP_Sepa::nconssfound.

Referenced by SCIPprintSeparatorStatistics().

◆ SCIPsepaGetNDomredsFound()

SCIP_Longint SCIPsepaGetNDomredsFound ( SCIP_SEPA sepa)

gets total number of domain reductions found by this separator

Parameters
sepaseparator

Definition at line 863 of file sepa.c.

References SCIP_Sepa::ndomredsfound.

Referenced by SCIPprintSeparatorStatistics().

◆ SCIPsepaIsDelayed()

SCIP_Bool SCIPsepaIsDelayed ( SCIP_SEPA sepa)

should separator be delayed, if other separators found cuts?

Parameters
sepaseparator

Definition at line 873 of file sepa.c.

References SCIP_Sepa::delay.

Referenced by SCIP_DECL_DIALOGEXEC().

◆ SCIPsepaWasLPDelayed()

SCIP_Bool SCIPsepaWasLPDelayed ( SCIP_SEPA sepa)

was separation of the LP solution delayed at the last call?

Parameters
sepaseparator

Definition at line 883 of file sepa.c.

References SCIP_Sepa::lpwasdelayed.

Referenced by SCIP_DECL_SEPAEXECLP(), separateCuts(), and separationRoundLP().

◆ SCIPsepaWasSolDelayed()

SCIP_Bool SCIPsepaWasSolDelayed ( SCIP_SEPA sepa)

was separation of the primal solution delayed at the last call?

Parameters
sepaseparator

Definition at line 893 of file sepa.c.

References SCIP_Sepa::solwasdelayed.

Referenced by separationRoundSol().

◆ SCIPsepaIsInitialized()

SCIP_Bool SCIPsepaIsInitialized ( SCIP_SEPA sepa)

is separator initialized?

Parameters
sepaseparator

Definition at line 903 of file sepa.c.

References SCIP_Sepa::initialized.

Referenced by SCIPsetIncludeRelax().

◆ 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
scipSCIP data structure
namename of separator
descdescription of separator
prioritypriority of separator (>= 0: before, < 0: after constraint handlers)
freqfrequency for calling separator
maxbounddistmaximal relative distance from current node's dual bound to primal bound compared to best node's dual bound for applying separation
usessubscipdoes the separator use a secondary SCIP instance?
delayshould separator be delayed, if other separators found cuts?
sepadataseparator data

Definition at line 7337 of file scip.c.

References checkStage(), FALSE, Scip::mem, Scip::messagehdlr, SCIP_CALL, SCIP_INVALIDDATA, SCIP_OKAY, 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
scipSCIP data structure
separeference to a separator, or NULL
namename of separator
descdescription of separator
prioritypriority of separator (>= 0: before, < 0: after constraint handlers)
freqfrequency for calling separator
maxbounddistmaximal relative distance from current node's dual bound to primal bound compared to best node's dual bound for applying separation
usessubscipdoes the separator use a secondary SCIP instance?
delayshould separator be delayed, if other separators found cuts?
sepadataseparator data

Definition at line 7385 of file scip.c.

References checkStage(), FALSE, Scip::mem, Scip::messagehdlr, SCIP_CALL, SCIP_INVALIDDATA, SCIP_OKAY, SCIPerrorMessage, SCIPfindSepa(), SCIPsepaCreate(), SCIPsetIncludeSepa(), Scip::set, SCIP_Mem::setmem, and TRUE.

Referenced by SCIPincludeSepaCGMIP(), SCIPincludeSepaClique(), SCIPincludeSepaClosecuts(), SCIPincludeSepaConvexproj(), SCIPincludeSepaDisjunctive(), SCIPincludeSepaEccuts(), SCIPincludeSepaGauge(), SCIPincludeSepaGMI(), SCIPincludeSepaGomory(), SCIPincludeSepaImpliedbounds(), SCIPincludeSepaIntobj(), SCIPincludeSepaMcf(), SCIPincludeSepaOddcycle(), SCIPincludeSepaStrongcg(), and SCIPincludeSepaZerohalf().

◆ SCIPsetSepaCopy()

◆ SCIPsetSepaFree()

◆ SCIPsetSepaInit()

SCIP_RETCODE SCIPsetSepaInit ( SCIP scip,
SCIP_SEPA sepa,
SCIP_DECL_SEPAINIT((*sepainit))   
)

sets initialization method of separator

Parameters
scipSCIP data structure
sepaseparator

Definition at line 7459 of file scip.c.

References checkStage(), FALSE, SCIP_CALL, SCIP_OKAY, SCIPsepaSetInit(), and TRUE.

Referenced by SCIPincludeSepaCGMIP(), SCIPincludeSepaGomory(), SCIPincludeSepaOddcycle(), and SCIPincludeSepaStrongcg().

◆ SCIPsetSepaExit()

SCIP_RETCODE SCIPsetSepaExit ( SCIP scip,
SCIP_SEPA sepa,
SCIP_DECL_SEPAEXIT((*sepaexit))   
)

sets deinitialization method of separator

Parameters
scipSCIP data structure
sepaseparator

Definition at line 7475 of file scip.c.

References checkStage(), FALSE, SCIP_CALL, SCIP_OKAY, SCIPsepaSetExit(), and TRUE.

Referenced by SCIPincludeSepaCGMIP(), SCIPincludeSepaGomory(), SCIPincludeSepaIntobj(), and SCIPincludeSepaStrongcg().

◆ SCIPsetSepaInitsol()

SCIP_RETCODE SCIPsetSepaInitsol ( SCIP scip,
SCIP_SEPA sepa,
SCIP_DECL_SEPAINITSOL((*sepainitsol))   
)

sets solving process initialization method of separator

Parameters
scipSCIP data structure
sepaseparator

Definition at line 7491 of file scip.c.

References checkStage(), FALSE, SCIP_CALL, SCIP_OKAY, SCIPsepaSetInitsol(), and TRUE.

Referenced by SCIPincludeSepaDisjunctive(), SCIPincludeSepaMcf(), and SCIPincludeSepaOddcycle().

◆ SCIPsetSepaExitsol()

SCIP_RETCODE SCIPsetSepaExitsol ( SCIP scip,
SCIP_SEPA sepa,
SCIP_DECL_SEPAEXITSOL((*sepaexitsol))   
)

sets solving process deinitialization method of separator

Parameters
scipSCIP data structure
sepaseparator

Definition at line 7507 of file scip.c.

References checkStage(), FALSE, SCIP_CALL, SCIP_OKAY, SCIPsepaSetExitsol(), and TRUE.

Referenced by SCIPincludeSepaClique(), SCIPincludeSepaClosecuts(), SCIPincludeSepaConvexproj(), SCIPincludeSepaEccuts(), SCIPincludeSepaGauge(), SCIPincludeSepaIntobj(), and SCIPincludeSepaMcf().

◆ SCIPfindSepa()

SCIP_SEPA* SCIPfindSepa ( SCIP scip,
const char *  name 
)

returns the separator of the given name, or NULL if not existing

Parameters
scipSCIP data structure
namename of separator

Definition at line 7523 of file scip.c.

References SCIPsetFindSepa(), and Scip::set.

Referenced by SCIPcopyConcurrentSolvingStats(), SCIPfindObjSepa(), SCIPincludeSepa(), SCIPincludeSepaBasic(), and SCIPsetBasePointClosecuts().

◆ SCIPgetSepas()

SCIP_SEPA** SCIPgetSepas ( SCIP scip)

returns the array of currently available separators

Parameters
scipSCIP data structure

Definition at line 7536 of file scip.c.

References 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
scipSCIP data structure

Definition at line 7549 of file scip.c.

References SCIP_Set::nsepas, 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
scipSCIP data structure
sepaseparator
prioritynew priority of the separator

Definition at line 7560 of file scip.c.

References SCIP_OKAY, SCIPsepaSetPriority(), and Scip::set.

Referenced by SCIP_DECL_PARAMCHGD().

◆ SCIPgetSepaMinEfficacy()

SCIP_Real SCIPgetSepaMinEfficacy ( SCIP scip)

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
scipSCIP data structure

Definition at line 7583 of file scip.c.

References checkStage(), FALSE, SCIP_CALL_ABORT, SCIPtreeGetCurrentDepth(), SCIP_Set::sepa_minefficacy, SCIP_Set::sepa_minefficacyroot, Scip::set, Scip::tree, and TRUE.

Referenced by SCIP_DECL_CONSSEPALP(), SCIP_DECL_CONSSEPASOL(), SCIPcleanupRowprep(), and separatePoint().