Scippy

SCIP

Solving Constraint Integer Programs

symmetry_orbitopal.h File Reference
#include "scip/def.h"
#include "scip/type_retcode.h"
#include "scip/type_scip.h"
#include "scip/type_var.h"
#include "symmetry/type_symmetry.h"

Go to the source code of this file.

Typedefs

typedef enum SCIP_ColumnOrdering SCIP_COLUMNORDERING
 
typedef enum SCIP_RowOrdering SCIP_ROWORDERING
 
typedef struct SCIP_OrbitopalReductionData SCIP_ORBITOPALREDDATA
 

Enumerations

enum  SCIP_ColumnOrdering {
  SCIP_COLUMNORDERING_NONE = 0,
  SCIP_COLUMNORDERING_FIRST = 1,
  SCIP_COLUMNORDERING_LAST = 2,
  SCIP_COLUMNORDERING_CENTRE = 3,
  SCIP_COLUMNORDERING_MEDIAN = 4
}
 
enum  SCIP_RowOrdering {
  SCIP_ROWORDERING_NONE = 0,
  SCIP_ROWORDERING_BRANCHING = 1
}
 

Functions

SCIP_RETCODE SCIPorbitopalReductionGetStatistics (SCIP *scip, SCIP_ORBITOPALREDDATA *orbireddata, int *nred, int *ncutoff)
 
SCIP_RETCODE SCIPorbitopalReductionPrintStatistics (SCIP *scip, SCIP_ORBITOPALREDDATA *orbireddata)
 
SCIP_RETCODE SCIPorbitopalReductionPropagate (SCIP *scip, SCIP_ORBITOPALREDDATA *orbireddata, SCIP_Bool *infeasible, int *nred, SCIP_Bool *didrun)
 
SCIP_RETCODE SCIPorbitopalReductionAddOrbitope (SCIP *scip, SCIP_ORBITOPALREDDATA *orbireddata, SCIP_ROWORDERING rowordering, SCIP_COLUMNORDERING colordering, SCIP_VAR **vars, int nrows, int ncols, SCIP_Bool *success)
 
SCIP_RETCODE SCIPorbitopalReductionReset (SCIP *scip, SCIP_ORBITOPALREDDATA *orbireddata)
 
SCIP_RETCODE SCIPorbitopalReductionFree (SCIP *scip, SCIP_ORBITOPALREDDATA **orbireddata)
 
SCIP_RETCODE SCIPincludeOrbitopalReduction (SCIP *scip, SCIP_ORBITOPALREDDATA **orbireddata)
 
SCIP_COLUMNORDERING SCIPorbitopalReductionGetDefaultColumnOrdering (SCIP_ORBITOPALREDDATA *orbireddata)
 

Typedef Documentation

◆ SCIP_COLUMNORDERING

variants for orbitope column ordering

Definition at line 56 of file symmetry_orbitopal.h.

◆ SCIP_ROWORDERING

variants for orbitope row ordering

Definition at line 64 of file symmetry_orbitopal.h.

◆ SCIP_ORBITOPALREDDATA

typedef struct SCIP_OrbitopalReductionData SCIP_ORBITOPALREDDATA

data for orbitopal reduction

Definition at line 69 of file symmetry_orbitopal.h.

Enumeration Type Documentation

◆ SCIP_ColumnOrdering

variants for orbitope column ordering

Enumerator
SCIP_COLUMNORDERING_NONE 

do not order the columns

SCIP_COLUMNORDERING_FIRST 

choose first possible column

SCIP_COLUMNORDERING_LAST 

choose last possible column

SCIP_COLUMNORDERING_CENTRE 

choose centremost possible column

SCIP_COLUMNORDERING_MEDIAN 

choose median column

Definition at line 48 of file symmetry_orbitopal.h.

◆ SCIP_RowOrdering

variants for orbitope row ordering

Enumerator
SCIP_ROWORDERING_NONE 

do not order the rows

SCIP_ROWORDERING_BRANCHING 

choose rows based on branching variables

Definition at line 59 of file symmetry_orbitopal.h.

Function Documentation

◆ SCIPorbitopalReductionGetStatistics()

SCIP_RETCODE SCIPorbitopalReductionGetStatistics ( SCIP scip,
SCIP_ORBITOPALREDDATA orbireddata,
int *  nred,
int *  ncutoff 
)

gets the number of reductions

Parameters
scipSCIP data structure
orbireddataorbitopal reduction data structure
nredtotal number of reductions applied
ncutofftotal number of cutoffs applied

Definition at line 2122 of file symmetry_orbitopal.c.

References NULL, and SCIP_OKAY.

Referenced by SCIP_DECL_TABLEOUTPUT().

◆ SCIPorbitopalReductionPrintStatistics()

SCIP_RETCODE SCIPorbitopalReductionPrintStatistics ( SCIP scip,
SCIP_ORBITOPALREDDATA orbireddata 
)

prints orbitopal reduction data

Parameters
scipSCIP data structure
orbireddataorbitopal reduction data structure

Definition at line 2141 of file symmetry_orbitopal.c.

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

Referenced by SCIPdisplaySymmetryStatistics().

◆ SCIPorbitopalReductionPropagate()

SCIP_RETCODE SCIPorbitopalReductionPropagate ( SCIP scip,
SCIP_ORBITOPALREDDATA orbireddata,
SCIP_Bool infeasible,
int *  nred,
SCIP_Bool didrun 
)

propagates orbitopal reduction

Parameters
scipSCIP data structure
orbireddataorbitopal 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 2173 of file symmetry_orbitopal.c.

References FALSE, NULL, propagateOrbitope(), SCIP_CALL, SCIP_OKAY, SCIPallowStrongDualReds(), SCIPdebugMessage, SCIPinProbing(), and TRUE.

Referenced by propagateSymmetry().

◆ SCIPorbitopalReductionAddOrbitope()

SCIP_RETCODE SCIPorbitopalReductionAddOrbitope ( SCIP scip,
SCIP_ORBITOPALREDDATA orbireddata,
SCIP_ROWORDERING  rowordering,
SCIP_COLUMNORDERING  colordering,
SCIP_VAR **  vars,
int  nrows,
int  ncols,
SCIP_Bool success 
)

adds orbitopal component to orbitopal symmetry handler

Parameters
scipSCIP data structure
orbireddataorbitopal reduction data structure
roworderingspecifies how rows of orbitope are ordered
colorderingspecifies how columnss of orbitope are ordered
varsmatrix of variables on which the symmetry acts
nrowsnumber of rows
ncolsnumber of columns
successto store whether the component is successfully added

Definition at line 2235 of file symmetry_orbitopal.c.

References addOrbitope(), NULL, SCIP_CALL, SCIP_OKAY, SCIPfindConshdlr(), SCIPisTransformed(), and TRUE.

Referenced by addOrbitopesDynamic().

◆ SCIPorbitopalReductionReset()

SCIP_RETCODE SCIPorbitopalReductionReset ( SCIP scip,
SCIP_ORBITOPALREDDATA orbireddata 
)

resets orbitopal reduction data structure (clears all orbitopes)

Parameters
scipSCIP data structure
orbireddatapointer to orbitopal reduction structure to populate

Definition at line 2270 of file symmetry_orbitopal.c.

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

Referenced by resetDynamicSymmetryHandling(), and SCIPorbitopalReductionFree().

◆ SCIPorbitopalReductionFree()

SCIP_RETCODE SCIPorbitopalReductionFree ( SCIP scip,
SCIP_ORBITOPALREDDATA **  orbireddata 
)

frees orbitopal reduction data

Parameters
scipSCIP data structure
orbireddatapointer to orbitopal reduction structure to populate

Definition at line 2297 of file symmetry_orbitopal.c.

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

Referenced by SCIP_DECL_PROPFREE().

◆ SCIPincludeOrbitopalReduction()

SCIP_RETCODE SCIPincludeOrbitopalReduction ( SCIP scip,
SCIP_ORBITOPALREDDATA **  orbireddata 
)

initializes structures needed for orbitopal reduction

This is only done exactly once.

Parameters
scipSCIP data structure
orbireddatapointer to orbitopal reduction structure to populate

Definition at line 2317 of file symmetry_orbitopal.c.

References DEFAULT_COLUMNORDERING, EVENTHDLR_DESC, EVENTHDLR_NAME, FALSE, NULL, SCIP_CALL, SCIP_OKAY, SCIPaddIntParam(), SCIPallocBlockMemory, SCIPcheckStage(), SCIPfindEventhdlr(), SCIPincludeEventhdlrBasic(), SYMHDLR_NAME, and TRUE.

Referenced by SCIPincludePropSymmetry().

◆ SCIPorbitopalReductionGetDefaultColumnOrdering()

SCIP_COLUMNORDERING SCIPorbitopalReductionGetDefaultColumnOrdering ( SCIP_ORBITOPALREDDATA orbireddata)

returns the default column ordering

Parameters
orbireddatapointer to orbitopal reduction structure to populate

Definition at line 2363 of file symmetry_orbitopal.c.

References NULL.

Referenced by addOrbitopesDynamic().