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_TIMING_BEFOREPRESOL 0 |
| #define | SYM_TIMING_DURINGPRESOL 1 |
| #define | SYM_TIMING_AFTERPRESOL 2 |
| #define | SYM_COMPUTETIMING_BEFOREPRESOL SYM_TIMING_BEFOREPRESOL |
| #define | SYM_COMPUTETIMING_DURINGPRESOL SYM_TIMING_DURINGPRESOL |
| #define | SYM_COMPUTETIMING_AFTERPRESOL SYM_TIMING_AFTERPRESOL |
| #define | SYM_HANDLETYPE_NONE UINT32_C(0x00000000) |
| #define | SYM_HANDLETYPE_SYMBREAK UINT32_C(0x00000001) |
| #define | SYM_HANDLETYPE_ORBITALREDUCTION 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_Symtype | SYM_SYMTYPE |
| typedef enum SYM_Nodetype | SYM_NODETYPE |
| typedef enum SYM_Consoptype | SYM_CONSOPTYPE |
| typedef uint32_t | SYM_HANDLETYPE |
| typedef enum SCIP_LeaderRule | SCIP_LEADERRULE |
| typedef enum SCIP_SSTType | SCIP_SSTTYPE |
| typedef enum SCIP_OrbitopeType | SCIP_ORBITOPETYPE |
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 43 of file type_symmetry.h.
Referenced by determineSymmetry(), isFixedVar(), and tryAddSymmetryHandlingMethods().
◆ SYM_SPEC_BINARY
| #define SYM_SPEC_BINARY UINT32_C(0x00000002) |
need symmetries for binary variables only
Definition at line 44 of file type_symmetry.h.
Referenced by determineSymmetry(), isFixedVar(), and tryAddSymmetryHandlingMethods().
◆ SYM_SPEC_REAL
| #define SYM_SPEC_REAL UINT32_C(0x00000004) |
need symmetries also for continuous variables
Definition at line 45 of file type_symmetry.h.
Referenced by determineSymmetry(), isFixedVar(), and tryAddSymmetryHandlingMethods().
◆ SYM_TIMING_BEFOREPRESOL
| #define SYM_TIMING_BEFOREPRESOL 0 |
symmetry timings compute and handle symmetries before presolving
Definition at line 50 of file type_symmetry.h.
Referenced by SCIP_DECL_PROPINITPRE().
◆ SYM_TIMING_DURINGPRESOL
| #define SYM_TIMING_DURINGPRESOL 1 |
compute and handle symmetries during presolving
Definition at line 51 of file type_symmetry.h.
Referenced by SCIP_DECL_PROPPRESOL().
◆ SYM_TIMING_AFTERPRESOL
| #define SYM_TIMING_AFTERPRESOL 2 |
compute and handle symmetries after presolving
Definition at line 52 of file type_symmetry.h.
Referenced by SCIP_DECL_DIALOGEXEC(), and SCIP_DECL_PROPPRESOL().
◆ SYM_COMPUTETIMING_BEFOREPRESOL
| #define SYM_COMPUTETIMING_BEFOREPRESOL SYM_TIMING_BEFOREPRESOL |
compute symmetries before presolving
Definition at line 54 of file type_symmetry.h.
◆ SYM_COMPUTETIMING_DURINGPRESOL
| #define SYM_COMPUTETIMING_DURINGPRESOL SYM_TIMING_DURINGPRESOL |
compute symmetries during presolving
Definition at line 55 of file type_symmetry.h.
◆ SYM_COMPUTETIMING_AFTERPRESOL
| #define SYM_COMPUTETIMING_AFTERPRESOL SYM_TIMING_AFTERPRESOL |
compute symmetries after presolving
Definition at line 56 of file type_symmetry.h.
◆ SYM_HANDLETYPE_NONE
| #define SYM_HANDLETYPE_NONE UINT32_C(0x00000000) |
no symmetry handling
Definition at line 98 of file type_symmetry.h.
◆ SYM_HANDLETYPE_SYMBREAK
| #define SYM_HANDLETYPE_SYMBREAK UINT32_C(0x00000001) |
symmetry breaking inequalities
Definition at line 99 of file type_symmetry.h.
Referenced by addSymresackConss(), detectAndHandleSubgroups(), tryAddOrbitalRedLexRed(), and tryHandleSingleOrDoubleLexMatricesComponent().
◆ SYM_HANDLETYPE_ORBITALREDUCTION
| #define SYM_HANDLETYPE_ORBITALREDUCTION UINT32_C(0x00000002) |
orbital reduction
Definition at line 100 of file type_symmetry.h.
Referenced by tryAddOrbitalRedLexRed().
◆ SYM_HANDLETYPE_SST
| #define SYM_HANDLETYPE_SST UINT32_C(0x00000004) |
Schreier Sims cuts
Definition at line 101 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 102 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 47 of file type_symmetry.h.
◆ SYM_SYMTYPE
| typedef enum SYM_Symtype SYM_SYMTYPE |
Definition at line 64 of file type_symmetry.h.
◆ SYM_NODETYPE
| typedef enum SYM_Nodetype SYM_NODETYPE |
Definition at line 74 of file type_symmetry.h.
◆ SYM_CONSOPTYPE
| typedef enum SYM_Consoptype SYM_CONSOPTYPE |
Definition at line 95 of file type_symmetry.h.
◆ SYM_HANDLETYPE
| typedef uint32_t SYM_HANDLETYPE |
type of symmetry handling
Definition at line 104 of file type_symmetry.h.
◆ SCIP_LEADERRULE
| typedef enum SCIP_LeaderRule SCIP_LEADERRULE |
Definition at line 113 of file type_symmetry.h.
◆ SCIP_SSTTYPE
| typedef enum SCIP_SSTType SCIP_SSTTYPE |
Definition at line 132 of file type_symmetry.h.
◆ SCIP_ORBITOPETYPE
| typedef enum SCIP_OrbitopeType SCIP_ORBITOPETYPE |
Definition at line 141 of file type_symmetry.h.
Enumeration Type Documentation
◆ SYM_Symtype
| enum SYM_Symtype |
define symmetry types detectable by SCIP
| Enumerator | |
|---|---|
| SYM_SYMTYPE_PERM | permutation symmetries |
| SYM_SYMTYPE_SIGNPERM | signed permutation symmetries |
Definition at line 59 of file type_symmetry.h.
◆ SYM_Nodetype
| enum SYM_Nodetype |
define type of nodes in symmetry detection expression trees
| Enumerator | |
|---|---|
| SYM_NODETYPE_OPERATOR | operator node |
| SYM_NODETYPE_VAL | numerical value node |
| SYM_NODETYPE_CONS | constraint node |
| SYM_NODETYPE_VAR | variable node |
Definition at line 67 of file type_symmetry.h.
◆ SYM_Consoptype
| enum SYM_Consoptype |
define type of simple constraints/operators in symmetry detection
Definition at line 77 of file type_symmetry.h.
◆ SCIP_LeaderRule
| enum SCIP_LeaderRule |
selection rules for leaders in SST cuts
| Enumerator | |
|---|---|
| SCIP_LEADERRULE_FIRSTINORBIT | first var in orbit |
| SCIP_LEADERRULE_LASTINORBIT | last var in orbit |
| SCIP_LEADERRULE_MAXCONFLICTSINORBIT | var with most conflicting vars in its orbit |
Definition at line 107 of file type_symmetry.h.
◆ SCIP_LeaderTiebreakRule
tie breaks for leader rule based on the leader's orbit
Definition at line 116 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 124 of file type_symmetry.h.
◆ SCIP_OrbitopeType
| enum SCIP_OrbitopeType |
type of orbitope constraint: full, packing, or partitioning orbitope
Definition at line 135 of file type_symmetry.h.
