symmetry.h
Go to the documentation of this file.
23 /*---+----1----+----2----+----3----+----4----+----5----+----6----+----7----+----8----+----9----+----0----+----1----+----2*/
45 * The non-tivial orbits of the group action are stored in the array orbits of length npermvars. This array contains
46 * the indices of variables from the permvars array such that variables that are contained in the same orbit appear
66 * The non-trivial orbits of the group action are stored in the array orbits of length npermvars. This array contains
67 * the indices of variables from the permvars array such that variables that are contained in the same orbit appear
72 * Only permutations that are not inactive (as marked by @p inactiveperms) are used. Thus, one can use this array to
91 SCIP_Shortbool* componentblocked, /**< array to store whether a component is blocked to be considered by
100 * The non-tivial orbits of the group action are stored in the array orbits of length npermvars. This array contains
101 * the indices of variables from the permvars array such that variables that are contained in the same orbit appear
112 int** permstrans, /**< transposed matrix containing in each column a permutation of the symmetry group */
115 int* componentbegins, /**< array containing in i-th position the first position of component i in components array */
125 /** check whether a permutation is a composition of 2-cycles of binary variables and in this case determine the number of 2-cycles */
131 SCIP_Bool* iscompoftwocycles, /**< pointer to store whether permutation is a composition of 2-cycles */
133 SCIP_Bool* allvarsbinary /**< pointer to store whether perm is acting on binary variables only */
162 SCIP_Shortbool** componentblocked, /**< array to store whether a component is blocked to be considered by
167 /** Given a matrix with nrows and \#perms + 1 columns whose first nfilledcols columns contain entries of variables, this routine
168 * checks whether the 2-cycles of perm intersect each row of column coltoextend in exactly one position. In this case,
182 int** nusedelems, /**< pointer to array storing how often an element was used in the orbitope */
184 SCIP_Bool* infeasible /**< pointer to store if the number of intersecting cycles is too small */
196 int** orbitopevaridx, /**< permuted index table of variables in permvars that are contained in orbitope */
199 SCIP_Bool* infeasible /**< pointer to store whether the potential orbitope is not an orbitope */
Definition: struct_scip.h:59
Definition: struct_var.h:198
type definitions for return codes for SCIP methods
SCIP_EXPORT SCIP_RETCODE SCIPdetermineNVarsAffectedSym(SCIP *scip, int **perms, int nperms, SCIP_VAR **permvars, int npermvars, int *nvarsaffected)
Definition: symmetry.c:478
SCIP_EXPORT SCIP_RETCODE SCIPcomputeOrbitsFilterSym(SCIP *scip, int npermvars, int **permstrans, int nperms, SCIP_Shortbool *inactiveperms, int *orbits, int *orbitbegins, int *norbits, int *components, int *componentbegins, int *vartocomponent, SCIP_Shortbool *componentblocked, int ncomponents, int nmovedpermvars)
Definition: symmetry.c:152
SCIP_EXPORT SCIP_RETCODE SCIPcomputeOrbitsSym(SCIP *scip, SCIP_VAR **permvars, int npermvars, int **perms, int nperms, int *orbits, int *orbitbegins, int *norbits)
Definition: symmetry.c:38
type definitions for SCIP's main datastructure
SCIP_EXPORT SCIP_RETCODE SCIPgenerateOrbitopeVarsMatrix(SCIP_VAR ****vars, int nrows, int ncols, SCIP_VAR **permvars, int npermvars, int **orbitopevaridx, int *columnorder, int *nusedelems, SCIP_Bool *infeasible)
Definition: symmetry.c:852
SCIP_EXPORT SCIP_RETCODE SCIPgetPropertiesPerm(int *perm, SCIP_VAR **vars, int nvars, SCIP_Bool *iscompoftwocycles, int *ntwocyclesperm, SCIP_Bool *allvarsbinary)
Definition: symmetry.c:424
type definitions for problem variables
SCIP_EXPORT SCIP_RETCODE SCIPextendSubOrbitope(int **suborbitope, int nrows, int nfilledcols, int coltoextend, int *perm, SCIP_Bool leftextension, int **nusedelems, SCIP_Bool *success, SCIP_Bool *infeasible)
Definition: symmetry.c:530
SCIP_EXPORT SCIP_RETCODE SCIPcomputeOrbitsComponentsSym(SCIP *scip, int npermvars, int **permstrans, int nperms, int *components, int *componentbegins, int *vartocomponent, int ncomponents, int *orbits, int *orbitbegins, int *norbits, int *varorbitmap)
Definition: symmetry.c:304
SCIP_EXPORT SCIP_RETCODE SCIPcomputeComponentsSym(SCIP *scip, int **perms, int nperms, SCIP_VAR **permvars, int npermvars, SCIP_Bool transposed, int **components, int **componentbegins, int **vartocomponent, SCIP_Shortbool **componentblocked, int *ncomponents)
Definition: symmetry.c:651
common defines and data types used in all packages of SCIP
Definition: objbenders.h:33