51#define COMPR_NAME "weakcompr"
52#define COMPR_DESC "reduce the search frontier to k+1 or max{2, |C|+1} nodes."
53#define COMPR_PRIORITY 1000
54#define COMPR_MINNNODES 50
56#define DEFAULT_MEM_REPR 2
67 int representativessize;
68 SCIP_Bool initialized;
71 SCIP_Bool convertconss;
83 unsigned int* childids,
87 SCIP_Real* lowerbounds;
117 if( comprdata->representativessize < nrepresentatives )
120 comprdata->representativessize = nrepresentatives;
222 for(
k = size-1;
k < 1;
k++ )
271 assert(comprdata->nrepresentatives == 0);
276 comprdata->nrepresentatives = (
nvars[0] > 0 ? 2 : 1);
277 comprdata->nrepresentatives += nconss[0];
281 assert(comprdata->nrepresentatives <= comprdata->representativessize);
303 for( v = 0; v <
nvars[0]; v++ )
321 for(
k = 0;
k < nconss[0];
k++ )
353 SCIPdebugMsg(
scip,
"-> found representation of size %d.\n", comprdata->nrepresentatives);
356 for(
k = size-1;
k >= 0;
k-- )
398 if( comprdata->nrepresentatives == 0 )
402 for(
r = 0;
r < comprdata->nrepresentatives;
r++ )
462 if( comprdata->initialized )
466 for(
r = 0;
r < comprdata->nrepresentatives;
r++ )
471 if( comprdata->representativessize > 0 )
476 comprdata->representatives =
NULL;
477 comprdata->representativessize = 0;
478 comprdata->nrepresentatives = 0;
479 comprdata->initialized =
FALSE;
496 if( !comprdata->initialized )
501 comprdata->nrepresentatives = 0;
503 comprdata->initialized =
TRUE;
539 comprdata->initialized =
FALSE;
static SCIP_RETCODE constructCompression(SCIP *scip, SCIP_COMPR *compr, SCIP_COMPRDATA *comprdata, SCIP_RESULT *result)
static SCIP_RETCODE sortIDs(SCIP *scip, unsigned int *childids, int nchildids)
SCIP_RETCODE SCIPincludeComprWeakcompr(SCIP *scip)
static SCIP_RETCODE applyCompression(SCIP *scip, SCIP_COMPR *compr, SCIP_COMPRDATA *comprdata, SCIP_RESULT *result)
static SCIP_RETCODE checkMemSize(SCIP *scip, SCIP_COMPRDATA *comprdata, int nrepresentatives)
weakcompr tree compression
#define SCIP_LONGINT_FORMAT
SCIP_STAGE SCIPgetStage(SCIP *scip)
int SCIPgetNIntVars(SCIP *scip)
int SCIPgetNVars(SCIP *scip)
int SCIPgetNBinVars(SCIP *scip)
SCIP_RETCODE SCIPaddBoolParam(SCIP *scip, const char *name, const char *desc, SCIP_Bool *valueptr, SCIP_Bool isadvanced, SCIP_Bool defaultvalue, SCIP_DECL_PARAMCHGD((*paramchgd)), SCIP_PARAMDATA *paramdata)
void SCIPcomprSetData(SCIP_COMPR *compr, SCIP_COMPRDATA *comprdata)
SCIP_RETCODE SCIPincludeComprBasic(SCIP *scip, SCIP_COMPR **compr, const char *name, const char *desc, int priority, int minnnodes, SCIP_DECL_COMPREXEC((*comprexec)), SCIP_COMPRDATA *comprdata)
SCIP_COMPRDATA * SCIPcomprGetData(SCIP_COMPR *compr)
SCIP_RETCODE SCIPsetComprCopy(SCIP *scip, SCIP_COMPR *compr,)
SCIP_RETCODE SCIPsetComprFree(SCIP *scip, SCIP_COMPR *compr,)
SCIP_RETCODE SCIPsetComprExit(SCIP *scip, SCIP_COMPR *compr,)
SCIP_Bool SCIPcomprIsInitialized(SCIP_COMPR *compr)
const char * SCIPcomprGetName(SCIP_COMPR *compr)
int SCIPcomprGetMinNodes(SCIP_COMPR *compr)
#define SCIPfreeBlockMemoryArray(scip, ptr, num)
#define SCIPallocBufferArray(scip, ptr, num)
#define SCIPallocClearMemoryArray(scip, ptr, num)
#define SCIPfreeBufferArray(scip, ptr)
#define SCIPallocBlockMemoryArray(scip, ptr, num)
#define SCIPreallocBlockMemoryArray(scip, ptr, oldnum, newnum)
#define SCIPfreeBlockMemory(scip, ptr)
#define SCIPallocBlockMemory(scip, ptr)
SCIP_Longint SCIPnodeGetNumber(SCIP_NODE *node)
int SCIPnodeGetDepth(SCIP_NODE *node)
int SCIPgetNReoptLeaves(SCIP *scip, SCIP_NODE *node)
SCIP_RETCODE SCIPaddReoptnodeBndchg(SCIP *scip, SCIP_REOPTNODE *reoptnode, SCIP_VAR *var, SCIP_Real bound, SCIP_BOUNDTYPE boundtype)
SCIP_REOPTNODE * SCIPgetReoptnode(SCIP *scip, unsigned int id)
SCIP_RETCODE SCIPinitRepresentation(SCIP *scip, SCIP_REOPTNODE **representatives, int nrepresentatives)
SCIP_RETCODE SCIPdeleteReoptnode(SCIP *scip, SCIP_REOPTNODE **reoptnode)
SCIP_RETCODE SCIPsetReoptCompression(SCIP *scip, SCIP_REOPTNODE **representation, int nrepresentatives, SCIP_Bool *success)
SCIP_RETCODE SCIPgetReoptLeaveIDs(SCIP *scip, SCIP_NODE *node, unsigned int *ids, int idssize, int *nids)
void SCIPgetReoptnodePath(SCIP *scip, SCIP_REOPTNODE *reoptnode, SCIP_VAR **vars, SCIP_Real *vals, SCIP_BOUNDTYPE *boundtypes, int mem, int *nvars, int *nafterdualvars)
SCIP_RETCODE SCIPaddReoptnodeCons(SCIP *scip, SCIP_REOPTNODE *reoptnode, SCIP_VAR **vars, SCIP_Real *vals, SCIP_BOUNDTYPE *boundtypes, SCIP_Real lhs, SCIP_Real rhs, int nvars, REOPT_CONSTYPE constype, SCIP_Bool linear)
SCIP_Real SCIPinfinity(SCIP *scip)
SCIP_Bool SCIPisFeasEQ(SCIP *scip, SCIP_Real val1, SCIP_Real val2)
SCIP_NODE * SCIPgetCurrentNode(SCIP *scip)
void SCIPsortDownRealInt(SCIP_Real *realarray, int *intarray, int len)
assert(minobj< SCIPgetCutoffbound(scip))
memory allocation routines
public methods for tree compressions
public methods for message output
methods for sorting joint arrays of various types
public methods for reoptimization
SCIP_Real SCIPreoptnodeGetLowerbound(SCIP_REOPTNODE *reoptnode)
void SCIPreoptnodeSetParentID(SCIP_REOPTNODE *reoptnode, unsigned int parentid)
int SCIPreoptnodeGetNConss(SCIP_REOPTNODE *reoptnode)
void SCIPreoptnodeGetConss(SCIP_REOPTNODE *reoptnode, SCIP_VAR ***vars, SCIP_Real **bounds, SCIP_BOUNDTYPE **boundtypes, int mem, int *nconss, int *nvars)
int SCIPreoptnodeGetNVars(SCIP_REOPTNODE *reoptnode)
public methods for branch and bound tree
public methods for compression plugins
public methods for memory management
public methods for message handling
public methods for numerical tolerances
public methods for SCIP parameter handling
public methods for global and local (sub)problems
public methods for reoptimization
public methods for the branch-and-bound tree
struct SCIP_ComprData SCIP_COMPRDATA
#define SCIP_DECL_COMPRFREE(x)
#define SCIP_DECL_COMPREXEC(x)
#define SCIP_DECL_COMPREXIT(x)
#define SCIP_DECL_COMPRCOPY(x)
enum SCIP_BoundType SCIP_BOUNDTYPE
@ REOPT_CONSTYPE_DUALREDS
enum SCIP_Result SCIP_RESULT
enum SCIP_Retcode SCIP_RETCODE