Detailed Description
type definitions for symmetry computations
Definition in file type_symmetry.h.
#include "scip/scip.h"
Go to the source code of this file.
Macros | |
#define | SYM_SPEC_INTEGER UINT32_C(0x00000001) |
#define | SYM_SPEC_BINARY UINT32_C(0x00000002) |
#define | SYM_SPEC_REAL UINT32_C(0x00000004) |
#define | SYM_COMPUTETIMING_BEFOREPRESOL 0 |
#define | SYM_COMPUTETIMING_DURINGPRESOL 1 |
#define | SYM_COMPUTETIMING_AFTERPRESOL 2 |
#define | SYM_HANDLETYPE_NONE UINT32_C(0x00000000) |
#define | SYM_HANDLETYPE_SYMBREAK UINT32_C(0x00000001) |
#define | SYM_HANDLETYPE_ORBITALFIXING UINT32_C(0x00000002) |
#define | SYM_HANDLETYPE_SST UINT32_C(0x00000004) |
#define | SYM_HANDLETYPE_SYMCONS (SYM_HANDLETYPE_SYMBREAK | SYM_HANDLETYPE_SST) |
Typedefs | |
typedef uint32_t | SYM_SPEC |
typedef enum SYM_Rhssense | SYM_RHSSENSE |
typedef uint32_t | SYM_HANDLETYPE |
typedef struct SYM_Vartype | SYM_VARTYPE |
typedef struct SYM_Optype | SYM_OPTYPE |
typedef struct SYM_Consttype | SYM_CONSTTYPE |
typedef struct SYM_Rhstype | SYM_RHSTYPE |
typedef struct SYM_Matrixdata | SYM_MATRIXDATA |
typedef struct SYM_Exprdata | SYM_EXPRDATA |
typedef enum SCIP_LeaderRule | SCIP_LEADERRULE |
typedef enum SCIP_SSTType | SCIP_SSTTYPE |
typedef enum SCIP_OrbitopeType | SCIP_ORBITOPETYPE |
typedef enum SCIP_RecomputesymType | SCIP_RECOMPUTESYMTYPE |
Enumerations | |
enum | SYM_Rhssense { SYM_SENSE_UNKOWN = 0, SYM_SENSE_INEQUALITY = 1, SYM_SENSE_EQUATION = 2, SYM_SENSE_XOR = 3, SYM_SENSE_AND = 4, SYM_SENSE_OR = 5, SYM_SENSE_BOUNDIS_TYPE_1 = 6, SYM_SENSE_BOUNDIS_TYPE_2 = 7 } |
enum | SCIP_LeaderRule { SCIP_LEADERRULE_FIRSTINORBIT = 0, SCIP_LEADERRULE_LASTINORBIT = 1, SCIP_LEADERRULE_MAXCONFLICTSINORBIT = 2, SCIP_LEADERRULE_MAXCONFLICTS = 3 } |
enum | SCIP_LeaderTiebreakRule { SCIP_LEADERTIEBREAKRULE_MINORBIT = 0, SCIP_LEADERTIEBREAKRULE_MAXORBIT = 1, SCIP_LEADERTIEBREAKRULE_MAXCONFLICTSINORBIT = 2 } |
enum | SCIP_SSTType { SCIP_SSTTYPE_BINARY = 1, SCIP_SSTTYPE_INTEGER = 2, SCIP_SSTTYPE_IMPLINT = 4, SCIP_SSTTYPE_CONTINUOUS = 8 } |
enum | SCIP_OrbitopeType { SCIP_ORBITOPETYPE_FULL = 0, SCIP_ORBITOPETYPE_PARTITIONING = 1, SCIP_ORBITOPETYPE_PACKING = 2 } |
enum | SCIP_RecomputesymType { SCIP_RECOMPUTESYM_NEVER = 0, SCIP_RECOMPUTESYM_ALWAYS = 1, SCIP_RECOMPUTESYM_OFFOUNDRED = 2 } |
Macro Definition Documentation
◆ SYM_SPEC_INTEGER
#define SYM_SPEC_INTEGER UINT32_C(0x00000001) |
symmetry type specification need symmetries for integer variables only
Definition at line 42 of file type_symmetry.h.
Referenced by determineSymmetry(), propagateOrbitalFixing(), SCIP_DECL_PROPEXITPRE(), SCIP_DECL_PROPINITPRE(), SCIP_DECL_PROPPRESOL(), SymmetryFixVar(), and tryAddSymmetryHandlingConss().
◆ SYM_SPEC_BINARY
#define SYM_SPEC_BINARY UINT32_C(0x00000002) |
need symmetries for binary variables only
Definition at line 43 of file type_symmetry.h.
Referenced by determineSymmetry(), propagateOrbitalFixing(), SCIP_DECL_PROPEXITPRE(), SCIP_DECL_PROPINITPRE(), SCIP_DECL_PROPPRESOL(), SymmetryFixVar(), and tryAddSymmetryHandlingConss().
◆ SYM_SPEC_REAL
#define SYM_SPEC_REAL UINT32_C(0x00000004) |
need symmetries also for continuous variables
Definition at line 44 of file type_symmetry.h.
Referenced by determineSymmetry(), propagateOrbitalFixing(), SCIP_DECL_PROPEXITPRE(), SCIP_DECL_PROPINITPRE(), SCIP_DECL_PROPPRESOL(), SymmetryFixVar(), and tryAddSymmetryHandlingConss().
◆ SYM_COMPUTETIMING_BEFOREPRESOL
#define SYM_COMPUTETIMING_BEFOREPRESOL 0 |
symmetry timings compute symmetries before presolving
Definition at line 49 of file type_symmetry.h.
◆ SYM_COMPUTETIMING_DURINGPRESOL
#define SYM_COMPUTETIMING_DURINGPRESOL 1 |
compute symmetries during presolving
Definition at line 50 of file type_symmetry.h.
Referenced by SCIP_DECL_PROPPRESOL().
◆ SYM_COMPUTETIMING_AFTERPRESOL
#define SYM_COMPUTETIMING_AFTERPRESOL 2 |
compute symmetries after presolving
Definition at line 51 of file type_symmetry.h.
Referenced by SCIP_DECL_DIALOGEXEC(), and SCIP_DECL_PROPPRESOL().
◆ SYM_HANDLETYPE_NONE
#define SYM_HANDLETYPE_NONE UINT32_C(0x00000000) |
no symmetry handling
Definition at line 68 of file type_symmetry.h.
◆ SYM_HANDLETYPE_SYMBREAK
#define SYM_HANDLETYPE_SYMBREAK UINT32_C(0x00000001) |
symmetry breaking inequalities
Definition at line 69 of file type_symmetry.h.
Referenced by addSymresackConss(), detectAndHandleSubgroups(), and detectOrbitopes().
◆ SYM_HANDLETYPE_ORBITALFIXING
#define SYM_HANDLETYPE_ORBITALFIXING UINT32_C(0x00000002) |
◆ SYM_HANDLETYPE_SST
#define SYM_HANDLETYPE_SST UINT32_C(0x00000004) |
Schreier Sims cuts
Definition at line 71 of file type_symmetry.h.
Referenced by addSSTConss(), and addSymresackConss().
◆ SYM_HANDLETYPE_SYMCONS
#define SYM_HANDLETYPE_SYMCONS (SYM_HANDLETYPE_SYMBREAK | SYM_HANDLETYPE_SST) |
Definition at line 72 of file type_symmetry.h.
Referenced by SCIP_DECL_DIALOGEXEC().
Typedef Documentation
◆ SYM_SPEC
typedef uint32_t SYM_SPEC |
types of variables handled by symmetry
Definition at line 46 of file type_symmetry.h.
◆ SYM_RHSSENSE
typedef enum SYM_Rhssense SYM_RHSSENSE |
Definition at line 65 of file type_symmetry.h.
◆ SYM_HANDLETYPE
typedef uint32_t SYM_HANDLETYPE |
type of symmetry handling
Definition at line 74 of file type_symmetry.h.
◆ SYM_VARTYPE
typedef struct SYM_Vartype SYM_VARTYPE |
data of variables that are considered to be equivalent
Definition at line 76 of file type_symmetry.h.
◆ SYM_OPTYPE
typedef struct SYM_Optype SYM_OPTYPE |
data of operators that are considered to be equivalent
Definition at line 77 of file type_symmetry.h.
◆ SYM_CONSTTYPE
typedef struct SYM_Consttype SYM_CONSTTYPE |
data of constants that are considered to be equivalent
Definition at line 78 of file type_symmetry.h.
◆ SYM_RHSTYPE
typedef struct SYM_Rhstype SYM_RHSTYPE |
data of constraint sides that are considered to be equivalent
Definition at line 79 of file type_symmetry.h.
◆ SYM_MATRIXDATA
typedef struct SYM_Matrixdata SYM_MATRIXDATA |
data for symmetry group computation on linear constraints
Definition at line 80 of file type_symmetry.h.
◆ SYM_EXPRDATA
typedef struct SYM_Exprdata SYM_EXPRDATA |
data for symmetry group computation on nonlinear constraints
Definition at line 81 of file type_symmetry.h.
◆ SCIP_LEADERRULE
typedef enum SCIP_LeaderRule SCIP_LEADERRULE |
Definition at line 91 of file type_symmetry.h.
◆ SCIP_SSTTYPE
typedef enum SCIP_SSTType SCIP_SSTTYPE |
Definition at line 110 of file type_symmetry.h.
◆ SCIP_ORBITOPETYPE
typedef enum SCIP_OrbitopeType SCIP_ORBITOPETYPE |
Definition at line 119 of file type_symmetry.h.
◆ SCIP_RECOMPUTESYMTYPE
typedef enum SCIP_RecomputesymType SCIP_RECOMPUTESYMTYPE |
Definition at line 128 of file type_symmetry.h.
Enumeration Type Documentation
◆ SYM_Rhssense
enum SYM_Rhssense |
define sense of rhs
Definition at line 54 of file type_symmetry.h.
◆ SCIP_LeaderRule
enum SCIP_LeaderRule |
selection rules for leaders in SST cuts
Definition at line 84 of file type_symmetry.h.
◆ SCIP_LeaderTiebreakRule
tie breaks for leader rule based on the leader's orbit
Definition at line 94 of file type_symmetry.h.
◆ SCIP_SSTType
enum SCIP_SSTType |
variable types for leader in Schreier Sims cuts
Enumerator | |
---|---|
SCIP_SSTTYPE_BINARY | binary variables |
SCIP_SSTTYPE_INTEGER | integer variables |
SCIP_SSTTYPE_IMPLINT | implicitly integer variables |
SCIP_SSTTYPE_CONTINUOUS | continuous variables |
Definition at line 102 of file type_symmetry.h.
◆ SCIP_OrbitopeType
enum SCIP_OrbitopeType |
type of orbitope constraint: full, packing, or partitioning orbitope
Definition at line 113 of file type_symmetry.h.
◆ SCIP_RecomputesymType
conditions to recompute symmetries after a restart
Enumerator | |
---|---|
SCIP_RECOMPUTESYM_NEVER | never recompute symmetries |
SCIP_RECOMPUTESYM_ALWAYS | always recompute symmetries |
SCIP_RECOMPUTESYM_OFFOUNDRED | only if orbital fixing found a reduction in previous run |
Definition at line 122 of file type_symmetry.h.