SCIP Doxygen Documentation
Loading...
Searching...
No Matches
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.

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 2119 of file symmetry_orbitopal.c.

References assert(), 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 2138 of file symmetry_orbitopal.c.

References assert(), i, 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 2170 of file symmetry_orbitopal.c.

References assert(), c, FALSE, NULL, propagateOrbitope(), SCIP_Bool, 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 2232 of file symmetry_orbitopal.c.

References addOrbitope(), assert(), BnbNodeInfo::nrows, NULL, SCIP_Bool, SCIP_CALL, SCIP_OKAY, SCIPfindConshdlr(), SCIPisTransformed(), TRUE, and vars.

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 2267 of file symmetry_orbitopal.c.

References assert(), 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 2294 of file symmetry_orbitopal.c.

References assert(), 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 2314 of file symmetry_orbitopal.c.

References assert(), 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 2360 of file symmetry_orbitopal.c.

References assert(), and NULL.

Referenced by addOrbitopesDynamic().