Scippy

SCIP

Solving Constraint Integer Programs

presol_symbreak.h File Reference

Detailed Description

presolver for adding symmetry breaking constraints

Author
Marc Pfetsch
Thomas Rehn

Definition in file presol_symbreak.h.

#include "scip/scip.h"

Go to the source code of this file.

Functions

SCIP_RETCODE SCIPincludePresolSymbreak (SCIP *scip)
 
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_RETCODE SCIPincludePresolSymbreak ( SCIP scip)

creates the symmetry breaking presolver and includes it in SCIP

creates the symbreak presolver and includes it in SCIP

Parameters
scipSCIP data structure

Definition at line 1264 of file presol_symbreak.c.

References DEFAULT_ADDSYMRESACKS, DEFAULT_COMPUTEORBITS, DEFAULT_CONSSADDLP, DEFAULT_DETECTORBITOPES, FALSE, PRESOL_DESC, PRESOL_MAXROUNDS, PRESOL_NAME, PRESOL_PRIORITY, PRESOL_TIMING, SCIP_CALL, SCIP_OKAY, SCIPaddBoolParam(), SCIPallocMemory, SCIPincludePresolBasic(), SCIPsetPresolExit(), SCIPsetPresolFree(), SCIPsetPresolInit(), SCIPsetPresolInitpre(), and TRUE.

Referenced by SCIPincludeDefaultPlugins().

◆ SCIPcomputeGroupOrbitsSymbreak()

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
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 1336 of file presol_symbreak.c.

References FALSE, SCIP_CALL, SCIP_OKAY, SCIP_Shortbool, SCIPallocBufferArray, SCIPfreeBufferArray, and TRUE.

Referenced by propagateOrbitalFixing(), and SCIP_DECL_PRESOLEXEC().