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/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_Bool delay, 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_Bool execdelayed, 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)))
 

Function Documentation

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 72 of file presol.c.

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

Referenced by SCIPsetCopyPlugins().

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_Bool  delay,
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)
delayshould presolver be delayed, if other presolvers found reductions?
presoldatapresolver data

Definition at line 90 of file presol.c.

References BMSallocMemory, BMSduplicateMemoryArray, FALSE, NULL, paramname, SCIP_ALLOC, SCIP_CALL, SCIP_CLOCKTYPE_DEFAULT, SCIP_MAXSTRLEN, SCIP_OKAY, SCIPclockCreate(), SCIPsetAddBoolParam(), SCIPsetAddIntParam(), SCIPsnprintf(), and TRUE.

Referenced by SCIPincludePresol(), and SCIPincludePresolBasic().

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 154 of file presol.c.

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

Referenced by SCIPsetFree().

SCIP_RETCODE SCIPpresolExit ( SCIP_PRESOL presol,
SCIP_SET set 
)

deinitializes presolver

Parameters
presolpresolver
setglobal SCIP settings

Definition at line 240 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.

Referenced by SCIPsetExitPlugins().

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 307 of file presol.c.

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

Referenced by SCIPsetExitprePlugins().

SCIP_RETCODE SCIPpresolExec ( SCIP_PRESOL presol,
SCIP_SET set,
SCIP_Bool  execdelayed,
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
execdelayedexecute presolver even if it is marked to be delayed
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 331 of file presol.c.

References SCIP_Presol::delay, 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_DELAYED, SCIP_DIDNOTFIND, SCIP_DIDNOTRUN, SCIP_INVALIDRESULT, SCIP_OKAY, SCIP_SUCCESS, SCIP_UNBOUNDED, SCIPclockStart(), SCIPclockStop(), SCIPdebugMessage, SCIPerrorMessage, and SCIP_Presol::wasdelayed.

Referenced by presolveRound().

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 581 of file presol.c.

References FALSE, NULL, and SCIP_Presol::priority.

Referenced by SCIPsetPresolPriority().

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

sets copy method of presolver

Parameters
presolpresolver

Definition at line 485 of file presol.c.

References NULL.

Referenced by SCIPsetPresolCopy().

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

sets destructor method of presolver

Parameters
presolpresolver

Definition at line 496 of file presol.c.

References NULL.

Referenced by SCIPsetPresolFree().

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

sets initialization method of presolver

Parameters
presolpresolver

Definition at line 507 of file presol.c.

References NULL.

Referenced by SCIPsetPresolInit().

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

sets deinitialization method of presolver

Parameters
presolpresolver

Definition at line 518 of file presol.c.

References NULL.

Referenced by SCIPsetPresolExit().

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

sets solving process initialization method of presolver

Parameters
presolpresolver

Definition at line 529 of file presol.c.

References NULL.

Referenced by SCIPsetPresolInitpre().

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

sets solving process deinitialization method of presolver

Parameters
presolpresolver

Definition at line 540 of file presol.c.

References NULL.

Referenced by SCIPsetPresolExitpre().