SCIP

    Solving Constraint Integer Programs

    Detailed Description

    public functions for relaxation handlers

    Functions

     SCIP_DECL_SORTPTRCOMP (SCIPrelaxComp)
     
     SCIP_DECL_SORTPTRCOMP (SCIPrelaxCompName)
     
    SCIP_RELAXDATA * SCIPrelaxGetData (SCIP_RELAX *relax)
     
    void SCIPrelaxSetData (SCIP_RELAX *relax, SCIP_RELAXDATA *relaxdata)
     
    void SCIPrelaxMarkExact (SCIP_RELAX *relax)
     
    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_RELAX * SCIPfindRelax (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()

    ◆ 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 470 of file relax.c.

    References NULL, and SCIP_Relax::relaxdata.

    Referenced by SCIP_DECL_RELAXFREE().

    ◆ SCIPrelaxMarkExact()

    void SCIPrelaxMarkExact ( SCIP_RELAX *  relax)

    marks the relaxator as safe to use in exact solving mode

    Parameters
    relaxrelaxation handler

    Definition at line 547 of file relax.c.

    References SCIP_Relax::exact, NULL, and TRUE.

    ◆ SCIPrelaxGetName()

    const char * SCIPrelaxGetName ( SCIP_RELAX *  relax)

    gets name of relaxation handler

    Parameters
    relaxrelaxation handler

    Definition at line 557 of file relax.c.

    References SCIP_Relax::name, and NULL.

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

    ◆ SCIPrelaxGetDesc()

    const char * SCIPrelaxGetDesc ( SCIP_RELAX *  relax)

    gets description of relaxation handler

    Parameters
    relaxrelaxation handler

    Definition at line 567 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 577 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 601 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 611 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 633 of file relax.c.

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

    Referenced by SCIPcollectRelaxatorStatistics(), and 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 643 of file relax.c.

    References SCIP_Relax::ncalls, and NULL.

    Referenced by SCIPcollectRelaxatorStatistics(), and 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 653 of file relax.c.

    References SCIP_Relax::ncutoffs, and NULL.

    Referenced by SCIPcollectRelaxatorStatistics(), and 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 663 of file relax.c.

    References SCIP_Relax::nimprbounds, and NULL.

    Referenced by SCIPcollectRelaxatorStatistics(), and 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 683 of file relax.c.

    References SCIP_Relax::imprtime, and NULL.

    Referenced by SCIPcollectRelaxatorStatistics(), and 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 673 of file relax.c.

    References SCIP_Relax::naddedconss, and NULL.

    Referenced by SCIPcollectRelaxatorStatistics(), and 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 693 of file relax.c.

    References SCIP_Relax::nreduceddom, and NULL.

    Referenced by SCIPcollectRelaxatorStatistics(), and 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 703 of file relax.c.

    References SCIP_Relax::nseparated, and NULL.

    Referenced by SCIPcollectRelaxatorStatistics(), and SCIPprintRelaxatorStatistics().

    ◆ SCIPrelaxIsInitialized()

    SCIP_Bool SCIPrelaxIsInitialized ( SCIP_RELAX *  relax)

    is relaxation handler initialized?

    Parameters
    relaxrelaxation handler

    Definition at line 713 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 735 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, NULL, SCIP_CALL, SCIP_INVALIDDATA, SCIP_OKAY, SCIPcheckStage, SCIPerrorMessage, SCIPfindRelax(), SCIPrelaxCreate(), SCIPsetIncludeRelax(), and TRUE.

    Referenced by SCIPincludeObjRelax(), and SCIPincludeRelaxBenders().

    ◆ 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

    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()

    Precondition
    This method can be called if SCIP is in one of the following stages:
    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 106 of file scip_relax.c.

    References FALSE, NULL, SCIP_CALL, SCIP_INVALIDDATA, SCIP_OKAY, SCIPcheckStage, SCIPerrorMessage, SCIPfindRelax(), SCIPrelaxCreate(), SCIPsetIncludeRelax(), 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 140 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 156 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 172 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 188 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 204 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 220 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 237 of file scip_relax.c.

    References NULL, and SCIPsetFindRelax().

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

    ◆ SCIPgetRelaxs()

    SCIP_RELAX ** SCIPgetRelaxs ( SCIP *  scip)

    returns the array of currently available relaxation handlers

    Parameters
    scipSCIP data structure

    Definition at line 250 of file scip_relax.c.

    References NULL, and SCIPsetSortRelaxs().

    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 263 of file scip_relax.c.

    References NULL.

    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 274 of file scip_relax.c.

    References NULL, SCIP_OKAY, and SCIPrelaxSetPriority().

    Referenced by SCIP_DECL_PARAMCHGD().