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

    References NULL, and SCIP_OKAY.

    Referenced by SCIP_DECL_TABLECOLLECT(), and 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 2107 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 2139 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 2209 of file symmetry_orbitopal.c.

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

    Referenced by addOrbitopesDynamic(), handleDoubleLexOrbitope(), and handleOrbitope().

    ◆ 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 2244 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 2271 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 2291 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 2337 of file symmetry_orbitopal.c.

    References NULL.

    Referenced by addOrbitopesDynamic().