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