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)
 
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_COMPRDATA * SCIPcomprGetData (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_SORTPTRCOMP ( SCIPcomprComp  )

compares two compression methods w. r. to their delay positions and their priority

Definition at line 41 of file compr.c.

References NULL, and SCIP_Compr::priority.

SCIP_DECL_SORTPTRCOMP ( SCIPcomprCompName  )

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

Definition at line 53 of file compr.c.

References SCIPcomprGetName().

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

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 SCIPdebugMessage.

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 93 of file compr.c.

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

Referenced by SCIPincludeCompr(), and SCIPincludeComprBasic().

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 157 of file compr.c.

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

SCIP_RETCODE SCIPcomprInit ( SCIP_COMPR *  compr,
SCIP_SET *  set 
)

initializes tree compression

Parameters
comprtree compression
setglobal SCIP settings

Definition at line 183 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 SCIPsetInitPlugins().

SCIP_RETCODE SCIPcomprExit ( SCIP_COMPR *  compr,
SCIP_SET *  set 
)

calls exit method of tree compression

Parameters
comprtree compression
setglobal SCIP settings

Definition at line 222 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 SCIPsetExitPlugins().

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 252 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(), SCIPdebugMessage, SCIPerrorMessage, and SCIPreoptGetNLeaves().

Referenced by compressReoptTree().

SCIP_COMPRDATA* SCIPcomprGetData ( SCIP_COMPR *  compr)

gets user data of tree compression

Parameters
comprtree compression

Definition at line 306 of file compr.c.

References SCIP_Compr::comprdata, and NULL.

Referenced by SCIP_DECL_COMPREXEC(), SCIP_DECL_COMPREXIT(), and SCIP_DECL_COMPRFREE().

void SCIPcomprSetData ( SCIP_COMPR *  compr,
SCIP_COMPRDATA *  comprdata 
)

sets user data of tree compression; user has to free old data in advance!

Parameters
comprtree compression
comprdatanew tree compression user data

Definition at line 316 of file compr.c.

References SCIP_Compr::comprdata, and NULL.

Referenced by SCIP_DECL_COMPRFREE().

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

sets copy callback of tree compression

Parameters
comprtree compression

Definition at line 329 of file compr.c.

References NULL.

Referenced by SCIPsetComprCopy().

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

sets destructor callback of tree compression

Parameters
comprtree compression

Definition at line 340 of file compr.c.

References NULL.

Referenced by SCIPsetComprFree().

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

sets initialization callback of tree compression

Parameters
comprtree compression

Definition at line 351 of file compr.c.

References NULL.

Referenced by SCIPsetComprInit().

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

sets deinitialization callback of tree compression

Parameters
comprtree compression

Definition at line 362 of file compr.c.

References NULL.

Referenced by SCIPsetComprExit().

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

sets solving process initialization callback of tree compression

Parameters
comprtree compression

Definition at line 373 of file compr.c.

References NULL.

Referenced by SCIPsetComprInitsol().

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

sets solving process deinitialization callback of tree compression

Parameters
comprtree compression

Definition at line 384 of file compr.c.

References NULL.

Referenced by SCIPsetComprExitsol().

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 395 of file compr.c.

References SCIP_Compr::minnnodes, and NULL.

const char* SCIPcomprGetName ( SCIP_COMPR *  compr)

gets name of tree compression

Parameters
comprtree compression

Definition at line 409 of file compr.c.

References SCIP_Compr::name, and NULL.

Referenced by compressReoptTree(), printCompressionStatistics(), SCIP_DECL_COMPRCOPY(), SCIP_DECL_DIALOGEXEC(), SCIP_DECL_SORTPTRCOMP(), SCIPcomprCopyInclude(), and SCIPsetSortHeurs().

const char* SCIPcomprGetDesc ( SCIP_COMPR *  compr)

gets description of tree compression

Parameters
comprtree compression

Definition at line 419 of file compr.c.

References SCIP_Compr::desc, and NULL.

Referenced by SCIP_DECL_DIALOGEXEC().

int SCIPcomprGetPriority ( SCIP_COMPR *  compr)

gets priority of tree compression

Parameters
comprtree compression

Definition at line 429 of file compr.c.

References NULL, and SCIP_Compr::priority.

Referenced by SCIP_DECL_DIALOGEXEC().

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 439 of file compr.c.

References FALSE, NULL, and SCIP_Compr::priority.

Referenced by SCIPsetComprPriority().

int SCIPcomprGetMinNodes ( SCIP_COMPR *  compr)

gets minimal number of nodes for calling tree compression (returns -1, if no node threshold exists)

Parameters
comprtree compression

Definition at line 453 of file compr.c.

References SCIP_Compr::minnnodes, and NULL.

Referenced by constructCompression(), and SCIP_DECL_DIALOGEXEC().

SCIP_Longint SCIPcomprGetNCalls ( SCIP_COMPR *  compr)

gets the number of times, the heuristic was called and tried to find a solution

Parameters
comprtree compression

Definition at line 463 of file compr.c.

References SCIP_Compr::ncalls, and NULL.

Referenced by printCompressionStatistics().

SCIP_Longint SCIPcomprGetNFound ( SCIP_COMPR *  compr)

gets the number of compressions found by this compression

Parameters
comprtree compression

Definition at line 473 of file compr.c.

References SCIP_Compr::nfound, and NULL.

Referenced by printCompressionStatistics().

SCIP_Bool SCIPcomprIsInitialized ( SCIP_COMPR *  compr)

is tree compression initialized?

Parameters
comprtree compression

Definition at line 483 of file compr.c.

References SCIP_Compr::initialized, and NULL.

Referenced by SCIP_DECL_COMPREXEC(), and SCIPsetFindHeur().

SCIP_Real SCIPcomprGetSetupTime ( SCIP_COMPR *  compr)

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

Parameters
comprtree compression

Definition at line 493 of file compr.c.

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

Referenced by printCompressionStatistics().

SCIP_Real SCIPcomprGetTime ( SCIP_COMPR *  compr)

gets time in seconds used in this heuristic

Parameters
comprtree compression

Definition at line 503 of file compr.c.

References SCIP_Compr::comprclock, NULL, and SCIPclockGetTime().

Referenced by printCompressionStatistics().