Scippy

SCIP

Solving Constraint Integer Programs

Detailed Description

methods for handling symmetries by dynamic lexicographic ordering reduction

Author
Jasper van Doornmalen

Definition in file symmetry_lexred.h.

#include "scip/def.h"
#include "scip/type_retcode.h"
#include "scip/type_scip.h"
#include "scip/type_var.h"
#include "scip/type_event.h"
#include "symmetry/type_symmetry.h"

Go to the source code of this file.

Typedefs

typedef struct SCIP_LexRedData SCIP_LEXREDDATA
 

Functions

SCIP_RETCODE SCIPlexicographicReductionGetStatistics (SCIP *scip, SCIP_LEXREDDATA *masterdata, int *nred, int *ncutoff)
 
SCIP_RETCODE SCIPlexicographicReductionPrintStatistics (SCIP *scip, SCIP_LEXREDDATA *masterdata)
 
SCIP_RETCODE SCIPlexicographicReductionPropagate (SCIP *scip, SCIP_LEXREDDATA *masterdata, SCIP_Bool *infeasible, int *nred, SCIP_Bool *didrun)
 
SCIP_RETCODE SCIPlexicographicReductionAddPermutation (SCIP *scip, SCIP_LEXREDDATA *masterdata, SCIP_VAR **permvars, int npermvars, int *perm, SYM_SYMTYPE symtype, SCIP_Real *permvardomaincenter, SCIP_Bool usedynamicorder, SCIP_Bool *success)
 
SCIP_RETCODE SCIPlexicographicReductionReset (SCIP *scip, SCIP_LEXREDDATA *masterdata)
 
SCIP_RETCODE SCIPlexicographicReductionFree (SCIP *scip, SCIP_LEXREDDATA **masterdata)
 
SCIP_RETCODE SCIPincludeLexicographicReduction (SCIP *scip, SCIP_LEXREDDATA **masterdata, SCIP_EVENTHDLR *shadowtreeeventhdlr)
 

Typedef Documentation

◆ SCIP_LEXREDDATA

typedef struct SCIP_LexRedData SCIP_LEXREDDATA

data for dynamic lexicographic reduction propagator

Definition at line 54 of file symmetry_lexred.h.

Function Documentation

◆ SCIPlexicographicReductionGetStatistics()

SCIP_RETCODE SCIPlexicographicReductionGetStatistics ( SCIP scip,
SCIP_LEXREDDATA masterdata,
int *  nred,
int *  ncutoff 
)

prints lexicographic reduction propagation data

Parameters
scipSCIP data structure
masterdatapointer to global data for lexicographic reduction propagator
nredtotal number of reductions applied
ncutofftotal number of cutoffs applied

Definition at line 1871 of file symmetry_lexred.c.

References VarArrayNodeDepthBranchIndex::masterdata, NULL, and SCIP_OKAY.

Referenced by SCIP_DECL_TABLEOUTPUT().

◆ SCIPlexicographicReductionPrintStatistics()

SCIP_RETCODE SCIPlexicographicReductionPrintStatistics ( SCIP scip,
SCIP_LEXREDDATA masterdata 
)

prints lexicographic reduction propagation data

Parameters
scipSCIP data structure
masterdatapointer to global data for lexicographic reduction propagator

Definition at line 1889 of file symmetry_lexred.c.

References VarArrayNodeDepthBranchIndex::masterdata, NULL, SCIP_OKAY, SCIP_VERBLEVEL_HIGH, and SCIPverbMessage().

Referenced by SCIPdisplaySymmetryStatistics().

◆ SCIPlexicographicReductionPropagate()

SCIP_RETCODE SCIPlexicographicReductionPropagate ( SCIP scip,
SCIP_LEXREDDATA masterdata,
SCIP_Bool infeasible,
int *  nred,
SCIP_Bool didrun 
)

applies lexicographic reduction propagation

Parameters
scipSCIP data structure
masterdatapointer to global data for lexicographic reduction propagator
infeasiblepointer to store whether infeasibility is found
nredpointer to store the number of domain reductions
didruna global pointer maintaining if any symmetry propagator has run only set this to TRUE when a reduction is found, never set to FALSE

Definition at line 1922 of file symmetry_lexred.c.

References FALSE, VarArrayNodeDepthBranchIndex::masterdata, VarArrayNodeDepthBranchIndex::nodedepthbranchindices, NULL, propagateLexicographicReductionPerm(), SCIP_Bool, SCIP_CALL, SCIP_OKAY, SCIPallocCleanBufferArray, SCIPfreeCleanBufferArray, SCIPgetFocusNode(), SCIPgetShadowTree(), shadowtreeFillNodeDepthBranchIndices(), shadowtreeUndoNodeDepthBranchIndices(), and TRUE.

Referenced by propagateSymmetry().

◆ SCIPlexicographicReductionAddPermutation()

SCIP_RETCODE SCIPlexicographicReductionAddPermutation ( SCIP scip,
SCIP_LEXREDDATA masterdata,
SCIP_VAR **  permvars,
int  npermvars,
int *  perm,
SYM_SYMTYPE  symtype,
SCIP_Real permvardomaincenter,
SCIP_Bool  usedynamicorder,
SCIP_Bool success 
)

adds permutation for lexicographic reduction propagation

Parameters
scipSCIP data structure
masterdatapointer to global data for lexicographic reduction propagator
permvarsvariable array of the permutation
npermvarsnumber of variables in that array
permpermutation
symtypetype of symmetries in perm
permvardomaincenterarray containing center point for each variable domain
usedynamicorderwhether a dynamic variable order shall be used
successto store whether the component is successfully added

Definition at line 2033 of file symmetry_lexred.c.

References FALSE, lexdataCreate(), VarArrayNodeDepthBranchIndex::masterdata, NULL, SCIP_CALL, SCIP_OKAY, SCIPallocBlockMemoryArray, SCIPcalcMemGrowSize(), SCIPisTransformed(), SCIPreallocBlockMemoryArray, SYM_SYMTYPE_PERM, and SYM_SYMTYPE_SIGNPERM.

Referenced by addOrbitopesDynamic(), and tryAddOrbitalRedLexRed().

◆ SCIPlexicographicReductionReset()

SCIP_RETCODE SCIPlexicographicReductionReset ( SCIP scip,
SCIP_LEXREDDATA masterdata 
)

resets lexicographic reduction propagation (removes all permutations)

Parameters
scipSCIP data structure
masterdatapointer to global data for lexicographic reduction propagator

Definition at line 2097 of file symmetry_lexred.c.

References FALSE, lexdataFree(), VarArrayNodeDepthBranchIndex::masterdata, NULL, SCIP_CALL, SCIP_OKAY, SCIPfreeBlockMemoryArrayNull, and SCIPhashmapFree().

Referenced by resetDynamicSymmetryHandling(), and SCIPlexicographicReductionFree().

◆ SCIPlexicographicReductionFree()

SCIP_RETCODE SCIPlexicographicReductionFree ( SCIP scip,
SCIP_LEXREDDATA **  masterdata 
)

frees lexicographic reduction data

Parameters
scipSCIP data structure
masterdatapointer to global data for lexicographic reduction propagator

Definition at line 2135 of file symmetry_lexred.c.

References VarArrayNodeDepthBranchIndex::masterdata, NULL, SCIP_CALL, SCIP_OKAY, SCIPfreeBlockMemory, and SCIPlexicographicReductionReset().

Referenced by SCIP_DECL_PROPFREE().

◆ SCIPincludeLexicographicReduction()

SCIP_RETCODE SCIPincludeLexicographicReduction ( SCIP scip,
SCIP_LEXREDDATA **  masterdata,
SCIP_EVENTHDLR shadowtreeeventhdlr 
)

initializes structures needed for lexicographic reduction propagation

This is only done exactly once.

Parameters
scipSCIP data structure
masterdatapointer to global data for lexicographic reduction propagator
shadowtreeeventhdlrpointer to the shadow tree eventhdlr

Definition at line 2158 of file symmetry_lexred.c.

References FALSE, VarArrayNodeDepthBranchIndex::masterdata, NULL, SCIP_CALL, SCIP_OKAY, SCIPallocBlockMemory, SCIPcheckStage(), and TRUE.

Referenced by SCIPincludePropSymmetry().