Solving Constraint Integer Programs

presol_symbreak.h File Reference

Detailed Description

presolver for adding symmetry breaking constraints

Marc Pfetsch
Thomas Rehn

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.


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)

◆ 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.

scipSCIP instance
permvarsvariables considered by symbreak presolver
npermvarslength of a permutation array
permsmatrix containing in each row a permutation of the symmetry group
npermsnumber of permutations encoded in perms
activepermsarray for marking active permutations (or NULL)
orbitsarray of non-trivial orbits
orbitbeginsarray containing begin positions of new orbits in orbits array
norbitspointer 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().