Scippy

    SCIP

    Solving Constraint Integer Programs

    Detailed Description

    methods for handling symmetries by dynamic lexicographic ordering reduction

    Author
    Jasper van Doornmalen

    Definition in file symmetry_lexred.h.

    #include "scip/def.h"
    #include "scip/type_retcode.h"
    #include "scip/type_scip.h"
    #include "scip/type_var.h"
    #include "scip/type_event.h"
    #include "symmetry/type_symmetry.h"

    Go to the source code of this file.

    Typedefs

    typedef struct SCIP_LexRedData SCIP_LEXREDDATA
     

    Functions

    SCIP_RETCODE SCIPlexicographicReductionGetStatistics (SCIP *scip, SCIP_LEXREDDATA *masterdata, int *nred, int *ncutoff)
     
    SCIP_RETCODE SCIPlexicographicReductionPrintStatistics (SCIP *scip, SCIP_LEXREDDATA *masterdata)
     
    SCIP_RETCODE SCIPlexicographicReductionPropagate (SCIP *scip, SCIP_LEXREDDATA *masterdata, SCIP_Bool *infeasible, int *nred, SCIP_Bool *didrun)
     
    SCIP_RETCODE SCIPlexicographicReductionAddPermutation (SCIP *scip, SCIP_LEXREDDATA *masterdata, SCIP_VAR **permvars, int npermvars, int *perm, SYM_SYMTYPE symtype, SCIP_Real *permvardomaincenter, SCIP_Bool usedynamicorder, SCIP_Bool *success)
     
    SCIP_RETCODE SCIPlexicographicReductionReset (SCIP *scip, SCIP_LEXREDDATA *masterdata)
     
    SCIP_RETCODE SCIPlexicographicReductionFree (SCIP *scip, SCIP_LEXREDDATA **masterdata)
     
    SCIP_RETCODE SCIPincludeLexicographicReduction (SCIP *scip, SCIP_LEXREDDATA **masterdata, SCIP_EVENTHDLR *shadowtreeeventhdlr)
     

    Typedef Documentation

    ◆ SCIP_LEXREDDATA

    typedef struct SCIP_LexRedData SCIP_LEXREDDATA

    data for dynamic lexicographic reduction propagator

    Definition at line 54 of file symmetry_lexred.h.

    Function Documentation

    ◆ SCIPlexicographicReductionGetStatistics()

    SCIP_RETCODE SCIPlexicographicReductionGetStatistics ( SCIP scip,
    SCIP_LEXREDDATA masterdata,
    int *  nred,
    int *  ncutoff 
    )

    prints lexicographic reduction propagation data

    Parameters
    scipSCIP data structure
    masterdatapointer to global data for lexicographic reduction propagator
    nredtotal number of reductions applied
    ncutofftotal number of cutoffs applied

    Definition at line 1854 of file symmetry_lexred.c.

    References VarArrayNodeDepthBranchIndex::masterdata, NULL, and SCIP_OKAY.

    Referenced by SCIP_DECL_TABLECOLLECT(), and SCIP_DECL_TABLEOUTPUT().

    ◆ SCIPlexicographicReductionPrintStatistics()

    SCIP_RETCODE SCIPlexicographicReductionPrintStatistics ( SCIP scip,
    SCIP_LEXREDDATA masterdata 
    )

    prints lexicographic reduction propagation data

    Parameters
    scipSCIP data structure
    masterdatapointer to global data for lexicographic reduction propagator

    Definition at line 1872 of file symmetry_lexred.c.

    References VarArrayNodeDepthBranchIndex::masterdata, NULL, SCIP_OKAY, SCIP_VERBLEVEL_HIGH, and SCIPverbMessage().

    Referenced by SCIPdisplaySymmetryStatistics().

    ◆ SCIPlexicographicReductionPropagate()

    SCIP_RETCODE SCIPlexicographicReductionPropagate ( SCIP scip,
    SCIP_LEXREDDATA masterdata,
    SCIP_Bool infeasible,
    int *  nred,
    SCIP_Bool didrun 
    )

    applies lexicographic reduction propagation

    Parameters
    scipSCIP data structure
    masterdatapointer to global data for lexicographic reduction propagator
    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 1905 of file symmetry_lexred.c.

    References FALSE, VarArrayNodeDepthBranchIndex::masterdata, VarArrayNodeDepthBranchIndex::nodedepthbranchindices, NULL, propagateLexicographicReductionPerm(), SCIP_Bool, SCIP_CALL, SCIP_OKAY, SCIPallocCleanBufferArray, SCIPfreeCleanBufferArray, SCIPgetFocusNode(), SCIPgetShadowTree(), shadowtreeFillNodeDepthBranchIndices(), shadowtreeUndoNodeDepthBranchIndices(), and TRUE.

    Referenced by propagateSymmetry().

    ◆ SCIPlexicographicReductionAddPermutation()

    SCIP_RETCODE SCIPlexicographicReductionAddPermutation ( SCIP scip,
    SCIP_LEXREDDATA masterdata,
    SCIP_VAR **  permvars,
    int  npermvars,
    int *  perm,
    SYM_SYMTYPE  symtype,
    SCIP_Real permvardomaincenter,
    SCIP_Bool  usedynamicorder,
    SCIP_Bool success 
    )

    adds permutation for lexicographic reduction propagation

    Parameters
    scipSCIP data structure
    masterdatapointer to global data for lexicographic reduction propagator
    permvarsvariable array of the permutation
    npermvarsnumber of variables in that array
    permpermutation
    symtypetype of symmetries in perm
    permvardomaincenterarray containing center point for each variable domain
    usedynamicorderwhether a dynamic variable order shall be used
    successto store whether the component is successfully added

    Definition at line 2017 of file symmetry_lexred.c.

    References FALSE, lexdataCreate(), VarArrayNodeDepthBranchIndex::masterdata, NULL, SCIP_CALL, SCIP_OKAY, SCIPallocBlockMemoryArray, SCIPcalcMemGrowSize(), SCIPisTransformed(), SCIPreallocBlockMemoryArray, SYM_SYMTYPE_PERM, and SYM_SYMTYPE_SIGNPERM.

    Referenced by addOrbitopesDynamic(), and tryAddOrbitalRedLexRed().

    ◆ SCIPlexicographicReductionReset()

    SCIP_RETCODE SCIPlexicographicReductionReset ( SCIP scip,
    SCIP_LEXREDDATA masterdata 
    )

    resets lexicographic reduction propagation (removes all permutations)

    Parameters
    scipSCIP data structure
    masterdatapointer to global data for lexicographic reduction propagator

    Definition at line 2081 of file symmetry_lexred.c.

    References FALSE, lexdataFree(), VarArrayNodeDepthBranchIndex::masterdata, NULL, SCIP_CALL, SCIP_OKAY, SCIPfreeBlockMemoryArrayNull, and SCIPhashmapFree().

    Referenced by resetDynamicSymmetryHandling(), and SCIPlexicographicReductionFree().

    ◆ SCIPlexicographicReductionFree()

    SCIP_RETCODE SCIPlexicographicReductionFree ( SCIP scip,
    SCIP_LEXREDDATA **  masterdata 
    )

    frees lexicographic reduction data

    Parameters
    scipSCIP data structure
    masterdatapointer to global data for lexicographic reduction propagator

    Definition at line 2119 of file symmetry_lexred.c.

    References VarArrayNodeDepthBranchIndex::masterdata, NULL, SCIP_CALL, SCIP_OKAY, SCIPfreeBlockMemory, and SCIPlexicographicReductionReset().

    Referenced by SCIP_DECL_PROPFREE().

    ◆ SCIPincludeLexicographicReduction()

    SCIP_RETCODE SCIPincludeLexicographicReduction ( SCIP scip,
    SCIP_LEXREDDATA **  masterdata,
    SCIP_EVENTHDLR shadowtreeeventhdlr 
    )

    initializes structures needed for lexicographic reduction propagation

    This is only done exactly once.

    Parameters
    scipSCIP data structure
    masterdatapointer to global data for lexicographic reduction propagator
    shadowtreeeventhdlrpointer to the shadow tree eventhdlr

    Definition at line 2142 of file symmetry_lexred.c.

    References FALSE, VarArrayNodeDepthBranchIndex::masterdata, NULL, SCIP_CALL, SCIP_OKAY, SCIPallocBlockMemory, SCIPcheckStage, and TRUE.

    Referenced by SCIPincludePropSymmetry().