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

Definition at line 1534 of file symmetry_orbital.c.

References NULL, and SCIP_OKAY.

Referenced by SCIP_DECL_TABLEOUTPUT().

◆ SCIPorbitalReductionPrintStatistics()

SCIP_RETCODE SCIPorbitalReductionPrintStatistics ( SCIP scip,
SCIP_ORBITALREDDATA orbireddata 
)

prints orbital reduction data

Parameters
scipSCIP data structure
orbireddataorbital reduction data structure

Definition at line 1551 of file symmetry_orbital.c.

References NULL, SCIP_OKAY, SCIP_VERBLEVEL_HIGH, and SCIPverbMessage().

Referenced by 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

Definition at line 1582 of file symmetry_orbital.c.

References FALSE, OrbitalReductionComponentData::nperms, NULL, orbitalReductionPropagateComponent(), SCIP_CALL, SCIP_OKAY, SCIPgetShadowTree(), SCIPinProbing(), SCIPinRepropagation(), and TRUE.

Referenced by 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

Definition at line 1644 of file symmetry_orbital.c.

References addComponent(), NULL, SCIP_CALL, SCIP_OKAY, and SCIPisTransformed().

Referenced by 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

Definition at line 1672 of file symmetry_orbital.c.

References freeComponent(), NULL, SCIP_CALL, SCIP_OKAY, and SCIPfreeBlockMemoryArrayNull.

Referenced by resetDynamicSymmetryHandling(), and SCIPorbitalReductionFree().

◆ SCIPorbitalReductionFree()

SCIP_RETCODE SCIPorbitalReductionFree ( SCIP scip,
SCIP_ORBITALREDDATA **  orbireddata 
)

frees orbital reduction data

Parameters
scipSCIP data structure
orbireddataorbital reduction data structure

Definition at line 1699 of file symmetry_orbital.c.

References NULL, SCIP_CALL, SCIP_OKAY, SCIPfreeBlockMemory, and SCIPorbitalReductionReset().

Referenced by 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

Definition at line 1719 of file symmetry_orbital.c.

References EVENTHDLR_SYMMETRY_DESC, EVENTHDLR_SYMMETRY_NAME, FALSE, NULL, SCIP_CALL, SCIP_OKAY, SCIPallocBlockMemory, SCIPcheckStage(), SCIPincludeEventhdlrBasic(), and TRUE.

Referenced by SCIPincludePropSymmetry().