Scippy

SCIP

Solving Constraint Integer Programs

compr.c File Reference

Detailed Description

methods for tree compressions

Author
Jakob Witzig

Definition in file compr.c.

#include <assert.h>
#include <string.h>
#include "scip/def.h"
#include "scip/set.h"
#include "scip/clock.h"
#include "scip/paramset.h"
#include "scip/scip.h"
#include "scip/compr.h"
#include "scip/reopt.h"
#include "scip/pub_message.h"
#include "scip/pub_misc.h"
#include "scip/struct_compr.h"

Go to the source code of this file.

Functions

 SCIP_DECL_SORTPTRCOMP (SCIPcomprComp)
 
 SCIP_DECL_SORTPTRCOMP (SCIPcomprCompName)
 
static SCIP_DECL_PARAMCHGD (paramChgdComprPriority)
 
SCIP_RETCODE SCIPcomprCopyInclude (SCIP_COMPR *compr, SCIP_SET *set)
 
static SCIP_RETCODE doComprCreate (SCIP_COMPR **compr, SCIP_SET *set, SCIP_MESSAGEHDLR *messagehdlr, BMS_BLKMEM *blkmem, const char *name, const char *desc, int priority, int minnnodes, SCIP_DECL_COMPRCOPY((*comprcopy)), SCIP_DECL_COMPRFREE((*comprfree)), SCIP_DECL_COMPRINIT((*comprinit)), SCIP_DECL_COMPREXIT((*comprexit)), SCIP_DECL_COMPRINITSOL((*comprinitsol)), SCIP_DECL_COMPREXITSOL((*comprexitsol)), SCIP_DECL_COMPREXEC((*comprexec)), SCIP_COMPRDATA *comprdata)
 
SCIP_RETCODE SCIPcomprCreate (SCIP_COMPR **compr, SCIP_SET *set, SCIP_MESSAGEHDLR *messagehdlr, BMS_BLKMEM *blkmem, const char *name, const char *desc, int priority, int minnnodes, SCIP_DECL_COMPRCOPY((*comprcopy)), SCIP_DECL_COMPRFREE((*comprfree)), SCIP_DECL_COMPRINIT((*comprinit)), SCIP_DECL_COMPREXIT((*comprexit)), SCIP_DECL_COMPRINITSOL((*comprinitsol)), SCIP_DECL_COMPREXITSOL((*comprexitsol)), SCIP_DECL_COMPREXEC((*comprexec)), SCIP_COMPRDATA *comprdata)
 
SCIP_RETCODE SCIPcomprFree (SCIP_COMPR **compr, SCIP_SET *set)
 
SCIP_RETCODE SCIPcomprInit (SCIP_COMPR *compr, SCIP_SET *set)
 
SCIP_RETCODE SCIPcomprExit (SCIP_COMPR *compr, SCIP_SET *set)
 
SCIP_RETCODE SCIPcomprExec (SCIP_COMPR *compr, SCIP_SET *set, SCIP_REOPT *reopt, SCIP_RESULT *result)
 
SCIP_COMPRDATASCIPcomprGetData (SCIP_COMPR *compr)
 
void SCIPcomprSetData (SCIP_COMPR *compr, SCIP_COMPRDATA *comprdata)
 
void SCIPcomprSetCopy (SCIP_COMPR *compr, SCIP_DECL_COMPRCOPY((*comprcopy)))
 
void SCIPcomprSetFree (SCIP_COMPR *compr, SCIP_DECL_COMPRFREE((*comprfree)))
 
void SCIPcomprSetInit (SCIP_COMPR *compr, SCIP_DECL_COMPRINIT((*comprinit)))
 
void SCIPcomprSetExit (SCIP_COMPR *compr, SCIP_DECL_COMPREXIT((*comprexit)))
 
void SCIPcomprSetInitsol (SCIP_COMPR *compr, SCIP_DECL_COMPRINITSOL((*comprinitsol)))
 
void SCIPcomprSetExitsol (SCIP_COMPR *compr, SCIP_DECL_COMPREXITSOL((*comprexitsol)))
 
SCIP_Bool SCIPcomprShouldBeExecuted (SCIP_COMPR *compr, int depth, int nnodes)
 
const char * SCIPcomprGetName (SCIP_COMPR *compr)
 
const char * SCIPcomprGetDesc (SCIP_COMPR *compr)
 
int SCIPcomprGetPriority (SCIP_COMPR *compr)
 
void SCIPcomprSetPriority (SCIP_COMPR *compr, SCIP_SET *set, int priority)
 
int SCIPcomprGetMinNodes (SCIP_COMPR *compr)
 
SCIP_Longint SCIPcomprGetNCalls (SCIP_COMPR *compr)
 
SCIP_Longint SCIPcomprGetNFound (SCIP_COMPR *compr)
 
SCIP_Bool SCIPcomprIsInitialized (SCIP_COMPR *compr)
 
SCIP_Real SCIPcomprGetSetupTime (SCIP_COMPR *compr)
 
SCIP_Real SCIPcomprGetTime (SCIP_COMPR *compr)
 

Function Documentation

◆ SCIP_DECL_PARAMCHGD()

static SCIP_DECL_PARAMCHGD ( paramChgdComprPriority  )
static

method to call, when the priority of a compression was changed

Definition at line 60 of file compr.c.

References NULL, SCIP_CALL, SCIP_OKAY, SCIPparamGetData(), SCIPparamGetInt(), and SCIPsetComprPriority().

◆ SCIPcomprCopyInclude()

SCIP_RETCODE SCIPcomprCopyInclude ( SCIP_COMPR compr,
SCIP_SET set 
)

copies the given tree compression to a new scip

Parameters
comprtree compression
setSCIP_SET of SCIP to copy to

Definition at line 74 of file compr.c.

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

◆ doComprCreate()

static SCIP_RETCODE doComprCreate ( SCIP_COMPR **  compr,
SCIP_SET set,
SCIP_MESSAGEHDLR messagehdlr,
BMS_BLKMEM blkmem,
const char *  name,
const char *  desc,
int  priority,
int  minnnodes,
SCIP_DECL_COMPRCOPY((*comprcopy))  ,
SCIP_DECL_COMPRFREE((*comprfree))  ,
SCIP_DECL_COMPRINIT((*comprinit))  ,
SCIP_DECL_COMPREXIT((*comprexit))  ,
SCIP_DECL_COMPRINITSOL((*comprinitsol))  ,
SCIP_DECL_COMPREXITSOL((*comprexitsol))  ,
SCIP_DECL_COMPREXEC((*comprexec))  ,
SCIP_COMPRDATA comprdata 
)
static

internal method for creating a tree compression

Parameters
comprpointer to tree compression data structure
setglobal SCIP settings
messagehdlrmessage handler
blkmemblock memory for parameter settings
namename of tree compression
descdescription of tree compression
prioritypriority of the tree compression
minnnodesminimal number of nodes for calling compression
comprdatatree compression data

Definition at line 94 of file compr.c.

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

Referenced by SCIPcomprCreate().

◆ SCIPcomprCreate()

SCIP_RETCODE SCIPcomprCreate ( SCIP_COMPR **  compr,
SCIP_SET set,
SCIP_MESSAGEHDLR messagehdlr,
BMS_BLKMEM blkmem,
const char *  name,
const char *  desc,
int  priority,
int  minnnodes,
SCIP_DECL_COMPRCOPY((*comprcopy))  ,
SCIP_DECL_COMPRFREE((*comprfree))  ,
SCIP_DECL_COMPRINIT((*comprinit))  ,
SCIP_DECL_COMPREXIT((*comprexit))  ,
SCIP_DECL_COMPRINITSOL((*comprinitsol))  ,
SCIP_DECL_COMPREXITSOL((*comprexitsol))  ,
SCIP_DECL_COMPREXEC((*comprexec))  ,
SCIP_COMPRDATA comprdata 
)

creates a tree compression

Parameters
comprpointer to tree compression data structure
setglobal SCIP settings
messagehdlrmessage handler
blkmemblock memory for parameter settings
namename of tree compression
descdescription of tree compression
prioritypriority of the tree compression
minnnodesminimal number of nodes for calling compression
comprdatatree compression data

Definition at line 160 of file compr.c.

References doComprCreate(), NULL, SCIP_CALL_FINALLY, SCIP_OKAY, and SCIPcomprFree().

Referenced by SCIPincludeCompr(), and SCIPincludeComprBasic().

◆ SCIPcomprFree()

SCIP_RETCODE SCIPcomprFree ( SCIP_COMPR **  compr,
SCIP_SET set 
)

calls destructor and frees memory of tree compression

Parameters
comprpointer to tree compression data structure
setglobal SCIP settings

Definition at line 193 of file compr.c.

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

Referenced by SCIPcomprCreate(), and SCIPsetFree().

◆ SCIPcomprInit()

SCIP_RETCODE SCIPcomprInit ( SCIP_COMPR compr,
SCIP_SET set 
)

initializes tree compression

Parameters
comprtree compression
setglobal SCIP settings

Definition at line 220 of file compr.c.

References SCIP_Compr::comprclock, SCIP_Compr::initialized, SCIP_Compr::name, SCIP_Compr::ncalls, SCIP_Compr::nfound, NULL, SCIP_CALL, SCIP_INVALIDCALL, SCIP_OKAY, SCIPclockReset(), SCIPclockStart(), SCIPclockStop(), SCIPerrorMessage, SCIP_Compr::setuptime, and TRUE.

Referenced by SCIPsetIncludeExternalCode().

◆ SCIPcomprExit()

SCIP_RETCODE SCIPcomprExit ( SCIP_COMPR compr,
SCIP_SET set 
)

calls exit method of tree compression

Parameters
comprtree compression
setglobal SCIP settings

Definition at line 259 of file compr.c.

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

Referenced by SCIPsetInitPlugins().

◆ SCIPcomprExec()

SCIP_RETCODE SCIPcomprExec ( SCIP_COMPR compr,
SCIP_SET set,
SCIP_REOPT reopt,
SCIP_RESULT result 
)

calls execution method of tree compression

Parameters
comprtree compression
setglobal SCIP settings
reoptreoptimization data structure
resultpointer to store the result of the callback method

Definition at line 289 of file compr.c.

References SCIP_Compr::comprclock, SCIP_Compr::minnnodes, SCIP_Compr::name, SCIP_Compr::ncalls, SCIP_Compr::nfound, NULL, SCIP_CALL, SCIP_DIDNOTFIND, SCIP_DIDNOTRUN, SCIP_INVALIDRESULT, SCIP_OKAY, SCIP_SUCCESS, SCIPclockStart(), SCIPclockStop(), SCIPerrorMessage, SCIPreoptGetNLeaves(), and SCIPsetDebugMsg.

Referenced by compressReoptTree().

◆ SCIPcomprSetCopy()

void SCIPcomprSetCopy ( SCIP_COMPR compr,
SCIP_DECL_COMPRCOPY((*comprcopy))   
)

sets copy callback of tree compression

Parameters
comprtree compression

Definition at line 366 of file compr.c.

References NULL.

Referenced by SCIPsetComprCopy().

◆ SCIPcomprSetFree()

void SCIPcomprSetFree ( SCIP_COMPR compr,
SCIP_DECL_COMPRFREE((*comprfree))   
)

sets destructor callback of tree compression

Parameters
comprtree compression

Definition at line 377 of file compr.c.

References NULL.

Referenced by SCIPsetComprFree().

◆ SCIPcomprSetInit()

void SCIPcomprSetInit ( SCIP_COMPR compr,
SCIP_DECL_COMPRINIT((*comprinit))   
)

sets initialization callback of tree compression

Parameters
comprtree compression

Definition at line 388 of file compr.c.

References NULL.

Referenced by SCIPsetComprInit().

◆ SCIPcomprSetExit()

void SCIPcomprSetExit ( SCIP_COMPR compr,
SCIP_DECL_COMPREXIT((*comprexit))   
)

sets deinitialization callback of tree compression

Parameters
comprtree compression

Definition at line 399 of file compr.c.

References NULL.

Referenced by SCIPsetComprExit().

◆ SCIPcomprSetInitsol()

void SCIPcomprSetInitsol ( SCIP_COMPR compr,
SCIP_DECL_COMPRINITSOL((*comprinitsol))   
)

sets solving process initialization callback of tree compression

Parameters
comprtree compression

Definition at line 410 of file compr.c.

References NULL.

Referenced by SCIPsetComprInitsol().

◆ SCIPcomprSetExitsol()

void SCIPcomprSetExitsol ( SCIP_COMPR compr,
SCIP_DECL_COMPREXITSOL((*comprexitsol))   
)

sets solving process deinitialization callback of tree compression

Parameters
comprtree compression

Definition at line 421 of file compr.c.

References NULL.

Referenced by SCIPsetComprExitsol().

◆ SCIPcomprShouldBeExecuted()

SCIP_Bool SCIPcomprShouldBeExecuted ( SCIP_COMPR compr,
int  depth,
int  nnodes 
)

should the compression be executed at the given depth, number of nodes

Parameters
comprtree compression
depthdepth of current node
nnodesnumber of open nodes

Definition at line 432 of file compr.c.

References SCIP_Compr::minnnodes, and NULL.

◆ SCIPcomprSetPriority()

void SCIPcomprSetPriority ( SCIP_COMPR compr,
SCIP_SET set,
int  priority 
)

sets priority of tree compression

Parameters
comprtree compression
setglobal SCIP settings
prioritynew priority of the tree compression

Definition at line 476 of file compr.c.

References FALSE, NULL, and SCIP_Compr::priority.

Referenced by SCIPsetComprPriority().