Detailed Description
presolver for adding symmetry breaking constraints
Definition in file presol_symbreak.h.
#include "scip/def.h"
#include "scip/type_retcode.h"
#include "scip/type_scip.h"
#include "scip/type_var.h"
Go to the source code of this file.
Functions | |
SCIP_EXPORT SCIP_RETCODE | SCIPincludePresolSymbreak (SCIP *scip) |
SCIP_EXPORT SCIP_RETCODE | SCIPcomputeGroupOrbitsSymbreak (SCIP *scip, SCIP_VAR **permvars, int npermvars, int **perms, int nperms, SCIP_Shortbool *activeperms, int *orbits, int *orbitbegins, int *norbits) |
Function Documentation
◆ SCIPincludePresolSymbreak()
SCIP_EXPORT SCIP_RETCODE SCIPincludePresolSymbreak | ( | SCIP * | scip | ) |
creates the symmetry breaking presolver and includes it in SCIP
creates the symbreak presolver and includes it in SCIP
- Parameters
-
scip SCIP data structure
Definition at line 1315 of file presol_symbreak.c.
References DEFAULT_ADDCONSSTIMING, DEFAULT_ADDSYMRESACKS, DEFAULT_COMPUTEORBITS, DEFAULT_CONSSADDLP, DEFAULT_DETECTORBITOPES, FALSE, NULL, PRESOL_DESC, PRESOL_MAXROUNDS, PRESOL_NAME, PRESOL_PRIORITY, PRESOL_TIMING, SCIP_CALL, SCIP_OKAY, SCIPaddBoolParam(), SCIPaddIntParam(), SCIPallocMemory, SCIPincludePresolBasic(), SCIPsetPresolExit(), SCIPsetPresolExitpre(), SCIPsetPresolFree(), SCIPsetPresolInit(), SCIPsetPresolInitpre(), and TRUE.
Referenced by SCIPincludeDefaultPlugins().
◆ SCIPcomputeGroupOrbitsSymbreak()
SCIP_EXPORT SCIP_RETCODE SCIPcomputeGroupOrbitsSymbreak | ( | SCIP * | scip, |
SCIP_VAR ** | permvars, | ||
int | npermvars, | ||
int ** | perms, | ||
int | nperms, | ||
SCIP_Shortbool * | activeperms, | ||
int * | orbits, | ||
int * | orbitbegins, | ||
int * | norbits | ||
) |
compute non-trivial orbits of symmetry group
The non-tivial orbits of the group action are stored in the array orbits of length npermvars. This array contains the indices of variables from the permvars array such that variables that are contained in the same orbit appear consecutively in the orbits array. The variables of the i-th orbit have indices orbits[orbitbegins[i]], ... , orbits[orbitbegins[i + 1] - 1]. Note that the description of the orbits ends at orbitbegins[norbits] - 1.
- Parameters
-
scip SCIP instance permvars variables considered by symbreak presolver npermvars length of a permutation array perms matrix containing in each row a permutation of the symmetry group nperms number of permutations encoded in perms activeperms array for marking active permutations (or NULL) orbits array of non-trivial orbits orbitbegins array containing begin positions of new orbits in orbits array norbits pointer to number of orbits currently stored in orbits
Definition at line 1393 of file presol_symbreak.c.
References FALSE, NULL, SCIP_CALL, SCIP_OKAY, SCIP_Shortbool, SCIPallocBufferArray, SCIPfreeBufferArray, and TRUE.
Referenced by propagateOrbitalFixing(), and tryAddSymmetryHandlingConss().