Scippy

    SCIP

    Solving Constraint Integer Programs

    presol.h File Reference

    Detailed Description

    internal methods for presolvers

    Author
    Tobias Achterberg

    Definition in file presol.h.

    #include "scip/def.h"
    #include "blockmemshell/memory.h"
    #include "scip/type_retcode.h"
    #include "scip/type_result.h"
    #include "scip/type_set.h"
    #include "scip/type_presol.h"
    #include "scip/type_message.h"
    #include "scip/pub_presol.h"

    Go to the source code of this file.

    Functions

    SCIP_RETCODE SCIPpresolCopyInclude (SCIP_PRESOL *presol, SCIP_SET *set)
     
    SCIP_RETCODE SCIPpresolCreate (SCIP_PRESOL **presol, SCIP_SET *set, SCIP_MESSAGEHDLR *messagehdlr, BMS_BLKMEM *blkmem, const char *name, const char *desc, int priority, int maxrounds, SCIP_PRESOLTIMING timing, SCIP_DECL_PRESOLCOPY((*presolcopy)), SCIP_DECL_PRESOLFREE((*presolfree)), SCIP_DECL_PRESOLINIT((*presolinit)), SCIP_DECL_PRESOLEXIT((*presolexit)), SCIP_DECL_PRESOLINITPRE((*presolinitpre)), SCIP_DECL_PRESOLEXITPRE((*presolexitpre)), SCIP_DECL_PRESOLEXEC((*presolexec)), SCIP_PRESOLDATA *presoldata)
     
    SCIP_RETCODE SCIPpresolFree (SCIP_PRESOL **presol, SCIP_SET *set)
     
    SCIP_RETCODE SCIPpresolInit (SCIP_PRESOL *presol, SCIP_SET *set)
     
    SCIP_RETCODE SCIPpresolExit (SCIP_PRESOL *presol, SCIP_SET *set)
     
    SCIP_RETCODE SCIPpresolInitpre (SCIP_PRESOL *presol, SCIP_SET *set)
     
    SCIP_RETCODE SCIPpresolExitpre (SCIP_PRESOL *presol, SCIP_SET *set)
     
    SCIP_RETCODE SCIPpresolExec (SCIP_PRESOL *presol, SCIP_SET *set, SCIP_PRESOLTIMING timing, int nrounds, int *nfixedvars, int *naggrvars, int *nchgvartypes, int *nchgbds, int *naddholes, int *ndelconss, int *naddconss, int *nupgdconss, int *nchgcoefs, int *nchgsides, SCIP_RESULT *result)
     
    void SCIPpresolSetPriority (SCIP_PRESOL *presol, SCIP_SET *set, int priority)
     
    void SCIPpresolSetCopy (SCIP_PRESOL *presol, SCIP_DECL_PRESOLCOPY((*presolcopy)))
     
    void SCIPpresolSetFree (SCIP_PRESOL *presol, SCIP_DECL_PRESOLFREE((*presolfree)))
     
    void SCIPpresolSetInit (SCIP_PRESOL *presol, SCIP_DECL_PRESOLINIT((*presolinit)))
     
    void SCIPpresolSetExit (SCIP_PRESOL *presol, SCIP_DECL_PRESOLEXIT((*presolexit)))
     
    void SCIPpresolSetInitpre (SCIP_PRESOL *presol, SCIP_DECL_PRESOLINITPRE((*presolinitpre)))
     
    void SCIPpresolSetExitpre (SCIP_PRESOL *presol, SCIP_DECL_PRESOLEXITPRE((*presolexitpre)))
     
    void SCIPpresolEnableOrDisableClocks (SCIP_PRESOL *presol, SCIP_Bool enable)
     

    Function Documentation

    ◆ SCIPpresolCopyInclude()

    SCIP_RETCODE SCIPpresolCopyInclude ( SCIP_PRESOL presol,
    SCIP_SET set 
    )

    copies the given presolver to a new scip

    Parameters
    presolpresolver
    setSCIP_SET of SCIP to copy to

    Definition at line 84 of file presol.c.

    References NULL, SCIP_CALL, SCIP_OKAY, SCIPpresolGetName(), and SCIPsetDebugMsg.

    Referenced by SCIPsetCopyPlugins().

    ◆ SCIPpresolCreate()

    SCIP_RETCODE SCIPpresolCreate ( SCIP_PRESOL **  presol,
    SCIP_SET set,
    SCIP_MESSAGEHDLR messagehdlr,
    BMS_BLKMEM blkmem,
    const char *  name,
    const char *  desc,
    int  priority,
    int  maxrounds,
    SCIP_PRESOLTIMING  timing,
    SCIP_DECL_PRESOLCOPY((*presolcopy))  ,
    SCIP_DECL_PRESOLFREE((*presolfree))  ,
    SCIP_DECL_PRESOLINIT((*presolinit))  ,
    SCIP_DECL_PRESOLEXIT((*presolexit))  ,
    SCIP_DECL_PRESOLINITPRE((*presolinitpre))  ,
    SCIP_DECL_PRESOLEXITPRE((*presolexitpre))  ,
    SCIP_DECL_PRESOLEXEC((*presolexec))  ,
    SCIP_PRESOLDATA presoldata 
    )

    creates a presolver

    Parameters
    presolpointer to store presolver
    setglobal SCIP settings
    messagehdlrmessage handler
    blkmemblock memory for parameter settings
    namename of presolver
    descdescription of presolver
    prioritypriority of the presolver (>= 0: before, < 0: after constraint handlers)
    maxroundsmaximal number of presolving rounds the presolver participates in (-1: no limit)
    timingtiming mask of the presolver
    presoldatapresolver data

    Definition at line 181 of file presol.c.

    References doPresolCreate(), NULL, SCIP_CALL_FINALLY, SCIP_OKAY, and SCIPpresolFree().

    Referenced by SCIPincludePresol(), and SCIPincludePresolBasic().

    ◆ SCIPpresolFree()

    SCIP_RETCODE SCIPpresolFree ( SCIP_PRESOL **  presol,
    SCIP_SET set 
    )

    frees memory of presolver

    Parameters
    presolpointer to presolver data structure
    setglobal SCIP settings

    Definition at line 213 of file presol.c.

    References BMSfreeMemory, BMSfreeMemoryArrayNull, NULL, SCIP_CALL, SCIP_OKAY, and SCIPclockFree().

    Referenced by SCIPpresolCreate().

    ◆ SCIPpresolInit()

    ◆ SCIPpresolExit()

    SCIP_RETCODE SCIPpresolExit ( SCIP_PRESOL presol,
    SCIP_SET set 
    )

    deinitializes presolver

    Parameters
    presolpresolver
    setglobal SCIP settings

    Definition at line 299 of file presol.c.

    References FALSE, SCIP_Presol::initialized, SCIP_Presol::name, NULL, SCIP_CALL, SCIP_INVALIDCALL, SCIP_OKAY, SCIPclockStart(), SCIPclockStop(), SCIPerrorMessage, and SCIP_Presol::setuptime.

    ◆ SCIPpresolInitpre()

    ◆ SCIPpresolExitpre()

    SCIP_RETCODE SCIPpresolExitpre ( SCIP_PRESOL presol,
    SCIP_SET set 
    )

    informs presolver that the presolving process is finished

    Parameters
    presolpresolver
    setglobal SCIP settings

    Definition at line 365 of file presol.c.

    References NULL, SCIP_CALL, SCIP_OKAY, SCIPclockStart(), SCIPclockStop(), and SCIP_Presol::setuptime.

    ◆ SCIPpresolExec()

    SCIP_RETCODE SCIPpresolExec ( SCIP_PRESOL presol,
    SCIP_SET set,
    SCIP_PRESOLTIMING  timing,
    int  nrounds,
    int *  nfixedvars,
    int *  naggrvars,
    int *  nchgvartypes,
    int *  nchgbds,
    int *  naddholes,
    int *  ndelconss,
    int *  naddconss,
    int *  nupgdconss,
    int *  nchgcoefs,
    int *  nchgsides,
    SCIP_RESULT result 
    )

    executes presolver

    Parameters
    presolpresolver
    setglobal SCIP settings
    timingcurrent presolving timing
    nroundsnumber of presolving rounds already done
    nfixedvarspointer to total number of variables fixed of all presolvers
    naggrvarspointer to total number of variables aggregated of all presolvers
    nchgvartypespointer to total number of variable type changes of all presolvers
    nchgbdspointer to total number of variable bounds tightened of all presolvers
    naddholespointer to total number of domain holes added of all presolvers
    ndelconsspointer to total number of deleted constraints of all presolvers
    naddconsspointer to total number of added constraints of all presolvers
    nupgdconsspointer to total number of upgraded constraints of all presolvers
    nchgcoefspointer to total number of changed coefficients of all presolvers
    nchgsidespointer to total number of changed left/right hand sides of all presolvers
    resultpointer to store the result of the callback method

    Definition at line 389 of file presol.c.

    References SCIP_Presol::exact, SCIP_Presol::lastnaddconss, SCIP_Presol::lastnaddholes, SCIP_Presol::lastnaggrvars, SCIP_Presol::lastnchgbds, SCIP_Presol::lastnchgcoefs, SCIP_Presol::lastnchgsides, SCIP_Presol::lastnchgvartypes, SCIP_Presol::lastndelconss, SCIP_Presol::lastnfixedvars, SCIP_Presol::lastnupgdconss, SCIP_Presol::maxrounds, SCIP_Presol::naddconss, SCIP_Presol::naddholes, SCIP_Presol::naggrvars, SCIP_Presol::name, SCIP_Presol::ncalls, SCIP_Presol::nchgbds, SCIP_Presol::nchgcoefs, SCIP_Presol::nchgsides, SCIP_Presol::nchgvartypes, SCIP_Presol::ndelconss, SCIP_Presol::nfixedvars, NULL, SCIP_Presol::nupgdconss, SCIP_Presol::presolclock, SCIP_CALL, SCIP_CUTOFF, SCIP_DIDNOTFIND, SCIP_DIDNOTRUN, SCIP_INVALIDRESULT, SCIP_OKAY, SCIP_SUCCESS, SCIP_UNBOUNDED, SCIPclockStart(), SCIPclockStop(), SCIPerrorMessage, SCIPsetDebugMsg, and SCIP_Presol::timing.

    Referenced by presolveRound().

    ◆ SCIPpresolSetPriority()

    void SCIPpresolSetPriority ( SCIP_PRESOL presol,
    SCIP_SET set,
    int  priority 
    )

    sets priority of presolver

    Parameters
    presolpresolver
    setglobal SCIP settings
    prioritynew priority of the presolver

    Definition at line 665 of file presol.c.

    References FALSE, NULL, and SCIP_Presol::priority.

    Referenced by SCIPsetPresolPriority().

    ◆ SCIPpresolSetCopy()

    void SCIPpresolSetCopy ( SCIP_PRESOL presol,
    SCIP_DECL_PRESOLCOPY((*presolcopy))   
    )

    sets copy method of presolver

    Parameters
    presolpresolver

    Definition at line 549 of file presol.c.

    References NULL.

    Referenced by SCIPsetPresolCopy().

    ◆ SCIPpresolSetFree()

    void SCIPpresolSetFree ( SCIP_PRESOL presol,
    SCIP_DECL_PRESOLFREE((*presolfree))   
    )

    sets destructor method of presolver

    Parameters
    presolpresolver

    Definition at line 560 of file presol.c.

    References NULL.

    Referenced by SCIPsetPresolFree().

    ◆ SCIPpresolSetInit()

    void SCIPpresolSetInit ( SCIP_PRESOL presol,
    SCIP_DECL_PRESOLINIT((*presolinit))   
    )

    sets initialization method of presolver

    Parameters
    presolpresolver

    Definition at line 571 of file presol.c.

    References NULL.

    Referenced by SCIPsetPresolInit().

    ◆ SCIPpresolSetExit()

    void SCIPpresolSetExit ( SCIP_PRESOL presol,
    SCIP_DECL_PRESOLEXIT((*presolexit))   
    )

    sets deinitialization method of presolver

    Parameters
    presolpresolver

    Definition at line 582 of file presol.c.

    References NULL.

    Referenced by SCIPsetPresolExit().

    ◆ SCIPpresolSetInitpre()

    void SCIPpresolSetInitpre ( SCIP_PRESOL presol,
    SCIP_DECL_PRESOLINITPRE((*presolinitpre))   
    )

    sets solving process initialization method of presolver

    Parameters
    presolpresolver

    Definition at line 593 of file presol.c.

    References NULL.

    Referenced by SCIPsetPresolInitpre().

    ◆ SCIPpresolSetExitpre()

    void SCIPpresolSetExitpre ( SCIP_PRESOL presol,
    SCIP_DECL_PRESOLEXITPRE((*presolexitpre))   
    )

    sets solving process deinitialization method of presolver

    Parameters
    presolpresolver

    Definition at line 604 of file presol.c.

    References NULL.

    Referenced by SCIPsetPresolExitpre().

    ◆ SCIPpresolEnableOrDisableClocks()

    void SCIPpresolEnableOrDisableClocks ( SCIP_PRESOL presol,
    SCIP_Bool  enable 
    )

    enables or disables all clocks of presol, depending on the value of the flag

    Parameters
    presolthe presolver for which all clocks should be enabled or disabled
    enableshould the clocks of the presolver be enabled?

    Definition at line 710 of file presol.c.

    References NULL, SCIP_Presol::presolclock, SCIPclockEnableOrDisable(), and SCIP_Presol::setuptime.