Scippy

SCIP

Solving Constraint Integer Programs

symmetry_orbital.h File Reference
#include "scip/def.h"
#include "scip/type_retcode.h"
#include "scip/type_scip.h"
#include "scip/type_var.h"
#include "scip/type_event.h"

Go to the source code of this file.

Typedefs

typedef struct SCIP_OrbitalReductionData SCIP_ORBITALREDDATA
 

Functions

SCIP_RETCODE SCIPorbitalReductionGetStatistics (SCIP *scip, SCIP_ORBITALREDDATA *orbireddata, int *nred, int *ncutoff)
 
SCIP_RETCODE SCIPorbitalReductionPrintStatistics (SCIP *scip, SCIP_ORBITALREDDATA *orbireddata)
 
SCIP_RETCODE SCIPorbitalReductionPropagate (SCIP *scip, SCIP_ORBITALREDDATA *orbireddata, SCIP_Bool *infeasible, int *nred, SCIP_Bool *didrun)
 
SCIP_RETCODE SCIPorbitalReductionAddComponent (SCIP *scip, SCIP_ORBITALREDDATA *orbireddata, SCIP_VAR **permvars, int npermvars, int **perms, int nperms, SCIP_Bool *success)
 
SCIP_RETCODE SCIPorbitalReductionReset (SCIP *scip, SCIP_ORBITALREDDATA *orbireddata)
 
SCIP_RETCODE SCIPorbitalReductionFree (SCIP *scip, SCIP_ORBITALREDDATA **orbireddata)
 
SCIP_RETCODE SCIPincludeOrbitalReduction (SCIP *scip, SCIP_ORBITALREDDATA **orbireddata, SCIP_EVENTHDLR *shadowtreeeventhdlr)
 

Typedef Documentation

◆ SCIP_ORBITALREDDATA

typedef struct SCIP_OrbitalReductionData SCIP_ORBITALREDDATA

data for orbital reduction propagator

Definition at line 52 of file symmetry_orbital.h.

Function Documentation

◆ SCIPorbitalReductionGetStatistics()

SCIP_RETCODE SCIPorbitalReductionGetStatistics ( SCIP scip,
SCIP_ORBITALREDDATA orbireddata,
int *  nred,
int *  ncutoff 
)

prints orbital reduction data

Parameters
scipSCIP data structure
orbireddataorbital reduction data structure
nredpointer to store the total number of reductions applied
ncutoffpointer to store the total number of cutoffs applied

Referenced by identifyOrbitalSymmetriesBroken(), and SCIP_DECL_TABLEOUTPUT().

◆ SCIPorbitalReductionPrintStatistics()

SCIP_RETCODE SCIPorbitalReductionPrintStatistics ( SCIP scip,
SCIP_ORBITALREDDATA orbireddata 
)

prints orbital reduction data

Parameters
scipSCIP data structure
orbireddataorbital reduction data structure

Referenced by identifyOrbitalSymmetriesBroken(), and SCIPdisplaySymmetryStatistics().

◆ SCIPorbitalReductionPropagate()

SCIP_RETCODE SCIPorbitalReductionPropagate ( SCIP scip,
SCIP_ORBITALREDDATA orbireddata,
SCIP_Bool infeasible,
int *  nred,
SCIP_Bool didrun 
)

propagates orbital reduction

Parameters
scipSCIP data structure
orbireddataorbital reduction data structure
infeasiblepointer to store whether infeasibility is found
nredpointer to store the number of domain reductions
didruna global pointer maintaining if any symmetry propagator has run only set this to TRUE when a reduction is found, never set to FALSE

Referenced by identifyOrbitalSymmetriesBroken(), and propagateSymmetry().

◆ SCIPorbitalReductionAddComponent()

SCIP_RETCODE SCIPorbitalReductionAddComponent ( SCIP scip,
SCIP_ORBITALREDDATA orbireddata,
SCIP_VAR **  permvars,
int  npermvars,
int **  perms,
int  nperms,
SCIP_Bool success 
)

adds component for orbital reduction

Parameters
scipSCIP data structure
orbireddataorbital reduction data structure
permvarsvariable array of the permutation
npermvarsnumber of variables in that array
permspermutations in the component
npermsnumber of permutations in the component
successto store whether the component is successfully added

Referenced by identifyOrbitalSymmetriesBroken(), and tryAddOrbitalRedLexRed().

◆ SCIPorbitalReductionReset()

SCIP_RETCODE SCIPorbitalReductionReset ( SCIP scip,
SCIP_ORBITALREDDATA orbireddata 
)

resets orbital reduction data structure (clears all components)

Parameters
scipSCIP data structure
orbireddataorbital reduction data structure

Referenced by identifyOrbitalSymmetriesBroken(), and resetDynamicSymmetryHandling().

◆ SCIPorbitalReductionFree()

SCIP_RETCODE SCIPorbitalReductionFree ( SCIP scip,
SCIP_ORBITALREDDATA **  orbireddata 
)

frees orbital reduction data

Parameters
scipSCIP data structure
orbireddataorbital reduction data structure

Referenced by identifyOrbitalSymmetriesBroken(), and SCIP_DECL_PROPFREE().

◆ SCIPincludeOrbitalReduction()

SCIP_RETCODE SCIPincludeOrbitalReduction ( SCIP scip,
SCIP_ORBITALREDDATA **  orbireddata,
SCIP_EVENTHDLR shadowtreeeventhdlr 
)

initializes structures needed for orbital reduction

This is only done exactly once.

Parameters
scipSCIP data structure
orbireddatapointer to orbital reduction data structure to populate
shadowtreeeventhdlrpointer to the shadow tree eventhdlr

Referenced by identifyOrbitalSymmetriesBroken(), and SCIPincludePropSymmetry().