Detailed Description
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.
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
-
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 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
-
scip SCIP data structure masterdata pointer 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
-
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 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
-
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 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
-
scip SCIP data structure masterdata pointer 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
-
scip SCIP data structure masterdata pointer 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
-
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 FALSE, VarArrayNodeDepthBranchIndex::masterdata, NULL, SCIP_CALL, SCIP_OKAY, SCIPallocBlockMemory, SCIPcheckStage(), and TRUE.
Referenced by SCIPincludePropSymmetry().