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)
 

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 553 of file sepa.c.

References NULL, and 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 642 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
sepaseparator

Definition at line 652 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
sepaseparator

Definition at line 676 of file sepa.c.

References SCIP_Sepa::freq, and NULL.

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 686 of file sepa.c.

References SCIP_Sepa::freq, and NULL.

◆ SCIPsepaGetMaxbounddist()

SCIP_Real SCIPsepaGetMaxbounddist ( SCIP_SEPA sepa)

get maximal bound distance at which the separator is called

Parameters
sepaseparator

Definition at line 697 of file sepa.c.

References SCIP_Sepa::maxbounddist, and NULL.

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 707 of file sepa.c.

References NULL, and 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 729 of file sepa.c.

References NULL, SCIPclockGetTime(), and SCIP_Sepa::setuptime.

Referenced by printSeparatorStatistics().

◆ SCIPsepaGetTime()

SCIP_Real SCIPsepaGetTime ( SCIP_SEPA sepa)

gets time in seconds used in this separator

Parameters
sepaseparator

Definition at line 739 of file sepa.c.

References NULL, SCIPclockGetTime(), and SCIP_Sepa::sepaclock.

Referenced by printSeparatorStatistics(), and SCIP_DECL_SEPAEXECLP().

◆ SCIPsepaGetNCalls()

SCIP_Longint SCIPsepaGetNCalls ( SCIP_SEPA sepa)

gets the total number of times, the separator was called

Parameters
sepaseparator

Definition at line 749 of file sepa.c.

References SCIP_Sepa::ncalls, and NULL.

Referenced by printSeparatorStatistics(), 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 759 of file sepa.c.

References SCIP_Sepa::ncallsatnode, and NULL.

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 769 of file sepa.c.

References SCIP_Sepa::ncutoffs, and NULL.

Referenced by printSeparatorStatistics().

◆ SCIPsepaGetNCutsFound()

SCIP_Longint SCIPsepaGetNCutsFound ( SCIP_SEPA sepa)

gets the total number of cutting planes found by this separator

Parameters
sepaseparator

Definition at line 779 of file sepa.c.

References SCIP_Sepa::ncutsfound, and NULL.

Referenced by printSeparatorStatistics(), 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 789 of file sepa.c.

References SCIP_Sepa::ncutsapplied, and NULL.

Referenced by printSeparatorStatistics().

◆ 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 829 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
sepaseparator

Definition at line 839 of file sepa.c.

References SCIP_Sepa::nconssfound, and NULL.

Referenced by printSeparatorStatistics().

◆ SCIPsepaGetNDomredsFound()

SCIP_Longint SCIPsepaGetNDomredsFound ( SCIP_SEPA sepa)

gets total number of domain reductions found by this separator

Parameters
sepaseparator

Definition at line 849 of file sepa.c.

References SCIP_Sepa::ndomredsfound, and NULL.

Referenced by printSeparatorStatistics().

◆ SCIPsepaIsDelayed()

SCIP_Bool SCIPsepaIsDelayed ( SCIP_SEPA sepa)

should separator be delayed, if other separators found cuts?

Parameters
sepaseparator

Definition at line 859 of file sepa.c.

References SCIP_Sepa::delay, and NULL.

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 869 of file sepa.c.

References SCIP_Sepa::lpwasdelayed, and NULL.

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 879 of file sepa.c.

References NULL, and SCIP_Sepa::solwasdelayed.

Referenced by separationRoundSol().

◆ SCIPsepaIsInitialized()

SCIP_Bool SCIPsepaIsInitialized ( SCIP_SEPA sepa)

is separator initialized?

Parameters
sepaseparator

Definition at line 889 of file sepa.c.

References SCIP_Sepa::initialized, and NULL.

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 7277 of file scip.c.

References checkStage(), FALSE, Scip::mem, Scip::messagehdlr, NULL, 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 7325 of file scip.c.

References checkStage(), FALSE, Scip::mem, Scip::messagehdlr, NULL, 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(), and SCIPincludeSepaStrongcg().

◆ 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 7399 of file scip.c.

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

Referenced by SCIPincludeSepaCGMIP(), and SCIPincludeSepaOddcycle().

◆ 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 7415 of file scip.c.

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

Referenced by SCIPincludeSepaCGMIP(), and SCIPincludeSepaIntobj().

◆ 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 7431 of file scip.c.

References checkStage(), FALSE, NULL, 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 7447 of file scip.c.

References checkStage(), FALSE, NULL, 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 7463 of file scip.c.

References NULL, 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 7476 of file scip.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
scipSCIP data structure

Definition at line 7489 of file scip.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
scipSCIP data structure
sepaseparator
prioritynew priority of the separator

Definition at line 7500 of file scip.c.

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

Referenced by SCIP_DECL_PARAMCHGD().