methods for handling symmetries by dynamic lexicographic ordering reduction
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.
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 struct SCIP_LexRedData SCIP_LEXREDDATA |
data for dynamic lexicographic reduction propagator
Definition at line 54 of file symmetry_lexred.h.
SCIP_RETCODE SCIPlexicographicReductionGetStatistics | ( | SCIP * | scip, |
SCIP_LEXREDDATA * | masterdata, | ||
int * | nred, | ||
int * | ncutoff ) |
prints lexicographic reduction propagation data
scip | SCIP data structure |
masterdata | pointer to global data for lexicographic reduction propagator |
nred | total number of reductions applied |
ncutoff | total number of cutoffs applied |
Definition at line 1871 of file symmetry_lexred.c.
References assert(), VarArrayNodeDepthBranchIndex::masterdata, NULL, and SCIP_OKAY.
Referenced by SCIP_DECL_TABLEOUTPUT().
SCIP_RETCODE SCIPlexicographicReductionPrintStatistics | ( | SCIP * | scip, |
SCIP_LEXREDDATA * | masterdata ) |
prints lexicographic reduction propagation data
scip | SCIP data structure |
masterdata | pointer to global data for lexicographic reduction propagator |
Definition at line 1889 of file symmetry_lexred.c.
References assert(), i, VarArrayNodeDepthBranchIndex::masterdata, NULL, SCIP_OKAY, SCIP_VERBLEVEL_HIGH, and SCIPverbMessage().
Referenced by SCIPdisplaySymmetryStatistics().
SCIP_RETCODE SCIPlexicographicReductionPropagate | ( | SCIP * | scip, |
SCIP_LEXREDDATA * | masterdata, | ||
SCIP_Bool * | infeasible, | ||
int * | nred, | ||
SCIP_Bool * | didrun ) |
applies lexicographic reduction propagation
scip | SCIP data structure |
masterdata | pointer to global data for lexicographic reduction propagator |
infeasible | pointer to store whether infeasibility is found |
nred | pointer to store the number of domain reductions |
didrun | a 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 assert(), FALSE, VarArrayNodeDepthBranchIndex::masterdata, VarArrayNodeDepthBranchIndex::nodedepthbranchindices, NULL, propagateLexicographicReductionPerm(), SCIP_Bool, SCIP_CALL, SCIP_OKAY, SCIPallocCleanBufferArray, SCIPfreeCleanBufferArray, SCIPgetFocusNode(), SCIPgetShadowTree(), shadowtreeFillNodeDepthBranchIndices(), shadowtreeUndoNodeDepthBranchIndices(), and TRUE.
Referenced by propagateSymmetry().
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
scip | SCIP data structure |
masterdata | pointer to global data for lexicographic reduction propagator |
permvars | variable array of the permutation |
npermvars | number of variables in that array |
perm | permutation |
symtype | type of symmetries in perm |
permvardomaincenter | array containing center point for each variable domain |
usedynamicorder | whether a dynamic variable order shall be used |
success | to store whether the component is successfully added |
Definition at line 2033 of file symmetry_lexred.c.
References assert(), FALSE, lexdataCreate(), VarArrayNodeDepthBranchIndex::masterdata, NULL, SCIP_Bool, SCIP_CALL, SCIP_OKAY, SCIP_Real, SCIPallocBlockMemoryArray, SCIPcalcMemGrowSize(), SCIPisTransformed(), SCIPreallocBlockMemoryArray, SYM_SYMTYPE_PERM, and SYM_SYMTYPE_SIGNPERM.
Referenced by addOrbitopesDynamic(), and tryAddOrbitalRedLexRed().
SCIP_RETCODE SCIPlexicographicReductionReset | ( | SCIP * | scip, |
SCIP_LEXREDDATA * | masterdata ) |
resets lexicographic reduction propagation (removes all permutations)
scip | SCIP data structure |
masterdata | pointer to global data for lexicographic reduction propagator |
Definition at line 2097 of file symmetry_lexred.c.
References assert(), FALSE, lexdataFree(), VarArrayNodeDepthBranchIndex::masterdata, NULL, SCIP_CALL, SCIP_OKAY, SCIPfreeBlockMemoryArrayNull, and SCIPhashmapFree().
Referenced by resetDynamicSymmetryHandling(), and SCIPlexicographicReductionFree().
SCIP_RETCODE SCIPlexicographicReductionFree | ( | SCIP * | scip, |
SCIP_LEXREDDATA ** | masterdata ) |
frees lexicographic reduction data
scip | SCIP data structure |
masterdata | pointer to global data for lexicographic reduction propagator |
Definition at line 2135 of file symmetry_lexred.c.
References assert(), VarArrayNodeDepthBranchIndex::masterdata, NULL, SCIP_CALL, SCIP_OKAY, SCIPfreeBlockMemory, and SCIPlexicographicReductionReset().
Referenced by SCIP_DECL_PROPFREE().
SCIP_RETCODE SCIPincludeLexicographicReduction | ( | SCIP * | scip, |
SCIP_LEXREDDATA ** | masterdata, | ||
SCIP_EVENTHDLR * | shadowtreeeventhdlr ) |
initializes structures needed for lexicographic reduction propagation
This is only done exactly once.
scip | SCIP data structure |
masterdata | pointer to global data for lexicographic reduction propagator |
shadowtreeeventhdlr | pointer to the shadow tree eventhdlr |
Definition at line 2158 of file symmetry_lexred.c.
References assert(), FALSE, VarArrayNodeDepthBranchIndex::masterdata, NULL, SCIP_CALL, SCIP_OKAY, SCIPallocBlockMemory, SCIPcheckStage(), and TRUE.
Referenced by SCIPincludePropSymmetry().