Scippy

SCIP

Solving Constraint Integer Programs

Detailed Description

public methods for relaxation handlers

Functions

 SCIP_DECL_SORTPTRCOMP (SCIPrelaxComp)
 
 SCIP_DECL_SORTPTRCOMP (SCIPrelaxCompName)
 
SCIP_RELAXDATASCIPrelaxGetData (SCIP_RELAX *relax)
 
void SCIPrelaxSetData (SCIP_RELAX *relax, SCIP_RELAXDATA *relaxdata)
 
const char * SCIPrelaxGetName (SCIP_RELAX *relax)
 
const char * SCIPrelaxGetDesc (SCIP_RELAX *relax)
 
int SCIPrelaxGetPriority (SCIP_RELAX *relax)
 
int SCIPrelaxGetFreq (SCIP_RELAX *relax)
 
SCIP_Real SCIPrelaxGetSetupTime (SCIP_RELAX *relax)
 
SCIP_Real SCIPrelaxGetTime (SCIP_RELAX *relax)
 
SCIP_Longint SCIPrelaxGetNCalls (SCIP_RELAX *relax)
 
SCIP_Longint SCIPrelaxGetNCutoffs (SCIP_RELAX *relax)
 
SCIP_Longint SCIPrelaxGetNImprovedLowerbound (SCIP_RELAX *relax)
 
SCIP_Real SCIPrelaxGetImprovedLowerboundTime (SCIP_RELAX *relax)
 
SCIP_Longint SCIPrelaxGetNAddedConss (SCIP_RELAX *relax)
 
SCIP_Longint SCIPrelaxGetNReducedDomains (SCIP_RELAX *relax)
 
SCIP_Longint SCIPrelaxGetNSeparatedCuts (SCIP_RELAX *relax)
 
SCIP_Bool SCIPrelaxIsInitialized (SCIP_RELAX *relax)
 
void SCIPrelaxMarkUnsolved (SCIP_RELAX *relax)
 
SCIP_RETCODE SCIPincludeRelax (SCIP *scip, const char *name, const char *desc, int priority, int freq, SCIP_DECL_RELAXCOPY((*relaxcopy)), SCIP_DECL_RELAXFREE((*relaxfree)), SCIP_DECL_RELAXINIT((*relaxinit)), SCIP_DECL_RELAXEXIT((*relaxexit)), SCIP_DECL_RELAXINITSOL((*relaxinitsol)), SCIP_DECL_RELAXEXITSOL((*relaxexitsol)), SCIP_DECL_RELAXEXEC((*relaxexec)), SCIP_RELAXDATA *relaxdata)
 
SCIP_RETCODE SCIPincludeRelaxBasic (SCIP *scip, SCIP_RELAX **relaxptr, const char *name, const char *desc, int priority, int freq, SCIP_DECL_RELAXEXEC((*relaxexec)), SCIP_RELAXDATA *relaxdata)
 
SCIP_RETCODE SCIPsetRelaxCopy (SCIP *scip, SCIP_RELAX *relax, SCIP_DECL_RELAXCOPY((*relaxcopy)))
 
SCIP_RETCODE SCIPsetRelaxFree (SCIP *scip, SCIP_RELAX *relax, SCIP_DECL_RELAXFREE((*relaxfree)))
 
SCIP_RETCODE SCIPsetRelaxInit (SCIP *scip, SCIP_RELAX *relax, SCIP_DECL_RELAXINIT((*relaxinit)))
 
SCIP_RETCODE SCIPsetRelaxExit (SCIP *scip, SCIP_RELAX *relax, SCIP_DECL_RELAXEXIT((*relaxexit)))
 
SCIP_RETCODE SCIPsetRelaxInitsol (SCIP *scip, SCIP_RELAX *relax, SCIP_DECL_RELAXINITSOL((*relaxinitsol)))
 
SCIP_RETCODE SCIPsetRelaxExitsol (SCIP *scip, SCIP_RELAX *relax, SCIP_DECL_RELAXEXITSOL((*relaxexitsol)))
 
SCIP_RELAXSCIPfindRelax (SCIP *scip, const char *name)
 
SCIP_RELAX ** SCIPgetRelaxs (SCIP *scip)
 
int SCIPgetNRelaxs (SCIP *scip)
 
SCIP_RETCODE SCIPsetRelaxPriority (SCIP *scip, SCIP_RELAX *relax, int priority)
 

Function Documentation

◆ SCIP_DECL_SORTPTRCOMP() [1/2]

SCIP_DECL_SORTPTRCOMP ( SCIPrelaxComp  )

compares two relaxation handlers w. r. to their priority

Definition at line 56 of file relax.c.

◆ SCIP_DECL_SORTPTRCOMP() [2/2]

SCIP_DECL_SORTPTRCOMP ( SCIPrelaxCompName  )

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

Definition at line 62 of file relax.c.

References SCIPrelaxGetName().

◆ SCIPrelaxGetData()

SCIP_RELAXDATA* SCIPrelaxGetData ( SCIP_RELAX relax)

gets user data of relaxation handler

Parameters
relaxrelaxation handler

Definition at line 455 of file relax.c.

References NULL, and SCIP_Relax::relaxdata.

Referenced by SCIP_DECL_RELAXCOPY(), SCIP_DECL_RELAXEXEC(), SCIP_DECL_RELAXEXIT(), SCIP_DECL_RELAXEXITSOL(), SCIP_DECL_RELAXFREE(), SCIP_DECL_RELAXINIT(), SCIP_DECL_RELAXINITSOL(), SCIPfindObjRelax(), and SCIPgetObjRelax().

◆ SCIPrelaxSetData()

void SCIPrelaxSetData ( SCIP_RELAX relax,
SCIP_RELAXDATA relaxdata 
)

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

Parameters
relaxrelaxation handler
relaxdatanew relaxation handler user data

Definition at line 465 of file relax.c.

References NULL, and SCIP_Relax::relaxdata.

Referenced by SCIP_DECL_RELAXFREE().

◆ SCIPrelaxGetName()

const char* SCIPrelaxGetName ( SCIP_RELAX relax)

gets name of relaxation handler

Parameters
relaxrelaxation handler

Definition at line 542 of file relax.c.

References SCIP_Relax::name, and NULL.

Referenced by SCIP_DECL_DIALOGEXEC(), SCIP_DECL_DISPOUTPUT(), SCIP_DECL_SORTPTRCOMP(), SCIPprintRelaxatorStatistics(), SCIPrelaxCopyInclude(), SCIPsolveProbingRelax(), and solveNodeRelax().

◆ SCIPrelaxGetDesc()

const char* SCIPrelaxGetDesc ( SCIP_RELAX relax)

gets description of relaxation handler

Parameters
relaxrelaxation handler

Definition at line 552 of file relax.c.

References SCIP_Relax::desc, and NULL.

Referenced by SCIP_DECL_DIALOGEXEC().

◆ SCIPrelaxGetPriority()

int SCIPrelaxGetPriority ( SCIP_RELAX relax)

gets priority of relaxation handler

Parameters
relaxrelaxation handler

Definition at line 562 of file relax.c.

References NULL, and SCIP_Relax::priority.

Referenced by SCIP_DECL_DIALOGEXEC(), and solveNodeRelax().

◆ SCIPrelaxGetFreq()

int SCIPrelaxGetFreq ( SCIP_RELAX relax)

gets frequency of relaxation handler

Parameters
relaxrelaxation handler

Definition at line 586 of file relax.c.

References SCIP_Relax::freq, and NULL.

Referenced by SCIP_DECL_DIALOGEXEC().

◆ SCIPrelaxGetSetupTime()

SCIP_Real SCIPrelaxGetSetupTime ( SCIP_RELAX relax)

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

Parameters
relaxrelaxator

Definition at line 596 of file relax.c.

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

◆ SCIPrelaxGetTime()

SCIP_Real SCIPrelaxGetTime ( SCIP_RELAX relax)

gets time in seconds used in this relaxation handler

Parameters
relaxrelaxation handler

Definition at line 618 of file relax.c.

References NULL, SCIP_Relax::relaxclock, and SCIPclockGetTime().

Referenced by SCIPprintRelaxatorStatistics().

◆ SCIPrelaxGetNCalls()

SCIP_Longint SCIPrelaxGetNCalls ( SCIP_RELAX relax)

gets the total number of times the relaxation handler was called

Parameters
relaxrelaxation handler

Definition at line 628 of file relax.c.

References SCIP_Relax::ncalls, and NULL.

Referenced by SCIPprintRelaxatorStatistics().

◆ SCIPrelaxGetNCutoffs()

SCIP_Longint SCIPrelaxGetNCutoffs ( SCIP_RELAX relax)

gets the total number of times the relaxation handler cut off a node

Parameters
relaxrelaxation handler

Definition at line 638 of file relax.c.

References SCIP_Relax::ncutoffs, and NULL.

Referenced by SCIPprintRelaxatorStatistics().

◆ SCIPrelaxGetNImprovedLowerbound()

SCIP_Longint SCIPrelaxGetNImprovedLowerbound ( SCIP_RELAX relax)

gets the total number of times the relaxation handler improved a node's lower bound

Parameters
relaxrelaxation handler

Definition at line 648 of file relax.c.

References SCIP_Relax::nimprbounds, and NULL.

Referenced by SCIPprintRelaxatorStatistics().

◆ SCIPrelaxGetImprovedLowerboundTime()

SCIP_Real SCIPrelaxGetImprovedLowerboundTime ( SCIP_RELAX relax)

gets the time in seconds spent for the execution of the relaxation handler when a node's lower bound could be improved (or a cutoff was found)

Parameters
relaxrelaxation handler

Definition at line 668 of file relax.c.

References SCIP_Relax::imprtime, and NULL.

Referenced by SCIPprintRelaxatorStatistics().

◆ SCIPrelaxGetNAddedConss()

SCIP_Longint SCIPrelaxGetNAddedConss ( SCIP_RELAX relax)

gets the total number of times the relaxation handler added constraints

Parameters
relaxrelaxation handler

Definition at line 658 of file relax.c.

References SCIP_Relax::naddedconss, and NULL.

Referenced by SCIPprintRelaxatorStatistics().

◆ SCIPrelaxGetNReducedDomains()

SCIP_Longint SCIPrelaxGetNReducedDomains ( SCIP_RELAX relax)

gets the total number of times the relaxation handler reduced variable domains

Parameters
relaxrelaxation handler

Definition at line 678 of file relax.c.

References SCIP_Relax::nreduceddom, and NULL.

Referenced by SCIPprintRelaxatorStatistics().

◆ SCIPrelaxGetNSeparatedCuts()

SCIP_Longint SCIPrelaxGetNSeparatedCuts ( SCIP_RELAX relax)

gets the total number of times the relaxation handler separated cutting planes

Parameters
relaxrelaxation handler

Definition at line 688 of file relax.c.

References SCIP_Relax::nseparated, and NULL.

Referenced by SCIPprintRelaxatorStatistics().

◆ SCIPrelaxIsInitialized()

SCIP_Bool SCIPrelaxIsInitialized ( SCIP_RELAX relax)

is relaxation handler initialized?

Parameters
relaxrelaxation handler

Definition at line 698 of file relax.c.

References SCIP_Relax::initialized, and NULL.

◆ SCIPrelaxMarkUnsolved()

void SCIPrelaxMarkUnsolved ( SCIP_RELAX relax)

marks the current relaxation unsolved, s.t. the relaxation handler is called again in the next solving round

Parameters
relaxrelaxation handler

Definition at line 720 of file relax.c.

References SCIP_Relax::lastsolvednode, and NULL.

Referenced by markRelaxsUnsolved(), and SCIPrelaxExec().

◆ SCIPincludeRelax()

SCIP_RETCODE SCIPincludeRelax ( SCIP scip,
const char *  name,
const char *  desc,
int  priority,
int  freq,
SCIP_DECL_RELAXCOPY((*relaxcopy))  ,
SCIP_DECL_RELAXFREE((*relaxfree))  ,
SCIP_DECL_RELAXINIT((*relaxinit))  ,
SCIP_DECL_RELAXEXIT((*relaxexit))  ,
SCIP_DECL_RELAXINITSOL((*relaxinitsol))  ,
SCIP_DECL_RELAXEXITSOL((*relaxexitsol))  ,
SCIP_DECL_RELAXEXEC((*relaxexec))  ,
SCIP_RELAXDATA relaxdata 
)

creates a relaxation handler and includes it in SCIP

Note
method has all relaxation handler callbacks as arguments and is thus changed every time a new callback is added in future releases; consider using SCIPincludeRelaxBasic() and setter functions if you seek for a method which is less likely to change in future releases
Parameters
scipSCIP data structure
namename of relaxation handler
descdescription of relaxation handler
prioritypriority of the relaxation handler (negative: after LP, non-negative: before LP)
freqfrequency for calling relaxation handler
relaxdatarelaxation handler data

Definition at line 61 of file scip_relax.c.

References FALSE, Scip::mem, Scip::messagehdlr, NULL, SCIP_CALL, SCIP_INVALIDDATA, SCIP_OKAY, SCIPcheckStage(), SCIPerrorMessage, SCIPfindRelax(), SCIPrelaxCreate(), SCIPsetIncludeRelax(), Scip::set, SCIP_Mem::setmem, and TRUE.

Referenced by SCIPincludeObjRelax().

◆ SCIPincludeRelaxBasic()

SCIP_RETCODE SCIPincludeRelaxBasic ( SCIP scip,
SCIP_RELAX **  relaxptr,
const char *  name,
const char *  desc,
int  priority,
int  freq,
SCIP_DECL_RELAXEXEC((*relaxexec))  ,
SCIP_RELAXDATA relaxdata 
)

creates a relaxation handler and includes it in SCIP. 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 SCIPsetRelaxInit(), SCIPsetRelaxExit(), SCIPsetRelaxCopy(), SCIPsetRelaxFree(), SCIPsetRelaxInitsol(), and SCIPsetRelaxExitsol()

Note
if you want to set all callbacks with a single method call, consider using SCIPincludeRelax() instead
Parameters
scipSCIP data structure
relaxptrreference to relaxation pointer, or NULL
namename of relaxation handler
descdescription of relaxation handler
prioritypriority of the relaxation handler (negative: after LP, non-negative: before LP)
freqfrequency for calling relaxation handler
relaxdatarelaxation handler data

Definition at line 103 of file scip_relax.c.

References FALSE, Scip::mem, Scip::messagehdlr, NULL, SCIP_CALL, SCIP_INVALIDDATA, SCIP_OKAY, SCIPcheckStage(), SCIPerrorMessage, SCIPfindRelax(), SCIPrelaxCreate(), SCIPsetIncludeRelax(), Scip::set, SCIP_Mem::setmem, and TRUE.

Referenced by SCIPincludeRelaxLp(), and SCIPincludeRelaxNlp().

◆ SCIPsetRelaxCopy()

SCIP_RETCODE SCIPsetRelaxCopy ( SCIP scip,
SCIP_RELAX relax,
SCIP_DECL_RELAXCOPY((*relaxcopy))   
)

sets copy method of relaxation handler

Parameters
scipSCIP data structure
relaxrelaxation handler

Definition at line 137 of file scip_relax.c.

References FALSE, NULL, SCIP_CALL, SCIP_OKAY, SCIPcheckStage(), SCIPrelaxSetCopy(), and TRUE.

◆ SCIPsetRelaxFree()

SCIP_RETCODE SCIPsetRelaxFree ( SCIP scip,
SCIP_RELAX relax,
SCIP_DECL_RELAXFREE((*relaxfree))   
)

sets destructor method of relaxation handler

Parameters
scipSCIP data structure
relaxrelaxation handler

Definition at line 153 of file scip_relax.c.

References FALSE, NULL, SCIP_CALL, SCIP_OKAY, SCIPcheckStage(), SCIPrelaxSetFree(), and TRUE.

◆ SCIPsetRelaxInit()

SCIP_RETCODE SCIPsetRelaxInit ( SCIP scip,
SCIP_RELAX relax,
SCIP_DECL_RELAXINIT((*relaxinit))   
)

sets initialization method of relaxation handler

Parameters
scipSCIP data structure
relaxrelaxation handler

Definition at line 169 of file scip_relax.c.

References FALSE, NULL, SCIP_CALL, SCIP_OKAY, SCIPcheckStage(), SCIPrelaxSetInit(), and TRUE.

◆ SCIPsetRelaxExit()

SCIP_RETCODE SCIPsetRelaxExit ( SCIP scip,
SCIP_RELAX relax,
SCIP_DECL_RELAXEXIT((*relaxexit))   
)

sets deinitialization method of relaxation handler

Parameters
scipSCIP data structure
relaxrelaxation handler

Definition at line 185 of file scip_relax.c.

References FALSE, NULL, SCIP_CALL, SCIP_OKAY, SCIPcheckStage(), SCIPrelaxSetExit(), and TRUE.

◆ SCIPsetRelaxInitsol()

SCIP_RETCODE SCIPsetRelaxInitsol ( SCIP scip,
SCIP_RELAX relax,
SCIP_DECL_RELAXINITSOL((*relaxinitsol))   
)

sets solving process initialization method of relaxation handler

Parameters
scipSCIP data structure
relaxrelaxation handler

Definition at line 201 of file scip_relax.c.

References FALSE, NULL, SCIP_CALL, SCIP_OKAY, SCIPcheckStage(), SCIPrelaxSetInitsol(), and TRUE.

Referenced by SCIPincludeRelaxNlp().

◆ SCIPsetRelaxExitsol()

SCIP_RETCODE SCIPsetRelaxExitsol ( SCIP scip,
SCIP_RELAX relax,
SCIP_DECL_RELAXEXITSOL((*relaxexitsol))   
)

sets solving process deinitialization method of relaxation handler

Parameters
scipSCIP data structure
relaxrelaxation handler

Definition at line 217 of file scip_relax.c.

References FALSE, NULL, SCIP_CALL, SCIP_OKAY, SCIPcheckStage(), SCIPrelaxSetExitsol(), and TRUE.

Referenced by SCIPincludeRelaxNlp().

◆ SCIPfindRelax()

SCIP_RELAX* SCIPfindRelax ( SCIP scip,
const char *  name 
)

returns the relaxation handler of the given name, or NULL if not existing

Parameters
scipSCIP data structure
namename of relaxation handler

Definition at line 234 of file scip_relax.c.

References NULL, SCIPsetFindRelax(), and Scip::set.

Referenced by SCIPfindObjRelax(), SCIPincludeRelax(), and SCIPincludeRelaxBasic().

◆ SCIPgetRelaxs()

SCIP_RELAX** SCIPgetRelaxs ( SCIP scip)

returns the array of currently available relaxation handlers

Parameters
scipSCIP data structure

Definition at line 247 of file scip_relax.c.

References NULL, SCIP_Set::relaxs, SCIPsetSortRelaxs(), and Scip::set.

Referenced by SCIP_DECL_DIALOGEXEC().

◆ SCIPgetNRelaxs()

int SCIPgetNRelaxs ( SCIP scip)

returns the number of currently available relaxation handlers

Parameters
scipSCIP data structure

Definition at line 260 of file scip_relax.c.

References SCIP_Set::nrelaxs, NULL, and Scip::set.

Referenced by SCIP_DECL_DIALOGEXEC().

◆ SCIPsetRelaxPriority()

SCIP_RETCODE SCIPsetRelaxPriority ( SCIP scip,
SCIP_RELAX relax,
int  priority 
)

sets the priority of a relaxation handler

Parameters
scipSCIP data structure
relaxrelaxation handler
prioritynew priority of the relaxation handler

Definition at line 271 of file scip_relax.c.

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

Referenced by SCIP_DECL_PARAMCHGD().