Scippy

    SCIP

    Solving Constraint Integer Programs

    SYM_Graph Struct Reference

    Detailed Description

    data to encode a symmetry detection graph

    Definition at line 45 of file struct_symmetry.h.

    #include <struct_symmetry.h>

    Data Fields

    SYM_SYMTYPE symtype
     
    SCIP_Bool islocked
     
    SCIP_Real infinity
     
    int nnodes
     
    int maxnnodes
     
    int nopnodes
     
    int maxnopnodes
     
    int nvalnodes
     
    int maxnvalnodes
     
    int nconsnodes
     
    int maxnconsnodes
     
    int nvarcolors
     
    SYM_NODETYPEnodetypes
     
    int * nodeinfopos
     
    int * consnodeperm
     
    int * ops
     
    SCIP_Realvals
     
    SCIP_CONS ** conss
     
    SCIP_Reallhs
     
    SCIP_Realrhs
     
    int nedges
     
    int maxnedges
     
    int * edgefirst
     
    int * edgesecond
     
    SCIP_Realedgevals
     
    SCIP_VAR ** symvars
     
    int nsymvars
     
    SCIP_Boolisfixedvar
     
    int * varcolors
     
    int * opcolors
     
    int * valcolors
     
    int * conscolors
     
    int * edgecolors
     
    SCIP_Bool uniqueedgetype
     

    Field Documentation

    ◆ symtype

    ◆ islocked

    ◆ infinity

    SCIP_Real SYM_Graph::infinity

    values as least as large as this are regarded as infinite

    Definition at line 51 of file struct_symmetry.h.

    Referenced by SCIP_DECL_SORTINDCOMP(), SCIPaddSymgraphConsnode(), and SCIPclearSymgraph().

    ◆ nnodes

    ◆ maxnnodes

    int SYM_Graph::maxnnodes

    maximum number of entries in node-based arrays

    Definition at line 55 of file struct_symmetry.h.

    Referenced by ensureNodeArraysSize().

    ◆ nopnodes

    int SYM_Graph::nopnodes

    ◆ maxnopnodes

    int SYM_Graph::maxnopnodes

    maximum number of entries in operator-based arrays

    Definition at line 57 of file struct_symmetry.h.

    Referenced by SCIPaddSymgraphOpnode().

    ◆ nvalnodes

    ◆ maxnvalnodes

    int SYM_Graph::maxnvalnodes

    maximum number of entries in value-based arrays

    Definition at line 59 of file struct_symmetry.h.

    Referenced by SCIPaddSymgraphValnode().

    ◆ nconsnodes

    ◆ maxnconsnodes

    int SYM_Graph::maxnconsnodes

    maximum number of constraint-based arrays

    Definition at line 61 of file struct_symmetry.h.

    Referenced by SCIPaddSymgraphConsnode().

    ◆ nvarcolors

    int SYM_Graph::nvarcolors

    number of variable colors

    Definition at line 62 of file struct_symmetry.h.

    Referenced by SCIPclearSymgraph(), and SCIPgetSymgraphNVarcolors().

    ◆ nodetypes

    ◆ nodeinfopos

    int* SYM_Graph::nodeinfopos

    array assigning each node the position in the corresponding array containing its information (operator, variable, or value)

    Definition at line 66 of file struct_symmetry.h.

    Referenced by ensureNodeArraysSize(), SCIPaddSymgraphConsnode(), SCIPaddSymgraphOpnode(), SCIPaddSymgraphValnode(), SCIPcopySymgraph(), SCIPcopySymgraphAsSubgraph(), SCIPgetSymgraphNodeColor(), SCIPupdateSymgraphLhs(), and SCIPupdateSymgraphRhs().

    ◆ consnodeperm

    int* SYM_Graph::consnodeperm

    array to hold permutation to sort constraint nodes (graph needs to be locked to avoid inconsistencies)

    Definition at line 68 of file struct_symmetry.h.

    Referenced by compareSymgraphs(), SCIPclearSymgraph(), SCIPcreateSymgraphConsnodeperm(), SCIPfreeSymgraphConsnodeperm(), and SCIPgetSymgraphConsnodeperm().

    ◆ ops

    int* SYM_Graph::ops

    operators corresponding to nodes in graph

    Definition at line 72 of file struct_symmetry.h.

    Referenced by SCIPaddSymgraphOpnode(), SCIPcomputeSymgraphColors(), SCIPcopySymgraph(), and SCIPcopySymgraphAsSubgraph().

    ◆ vals

    SCIP_Real* SYM_Graph::vals

    values corresponding to nodes in graph

    Definition at line 73 of file struct_symmetry.h.

    Referenced by SCIPaddSymgraphValnode(), SCIPcomputeSymgraphColors(), SCIPcopySymgraph(), and SCIPcopySymgraphAsSubgraph().

    ◆ conss

    SCIP_CONS** SYM_Graph::conss

    constraints corresponding to cons nodes

    Definition at line 74 of file struct_symmetry.h.

    Referenced by addSymmetryInformation(), compareConsnodes(), compareSymgraphs(), SCIPaddSymgraphConsnode(), SCIPcopySymgraph(), and SCIPcopySymgraphAsSubgraph().

    ◆ lhs

    SCIP_Real* SYM_Graph::lhs

    array of left-hand sides for cons nodes

    Definition at line 75 of file struct_symmetry.h.

    Referenced by compareConsnodes(), compareSymgraphs(), SCIPaddSymgraphConsnode(), SCIPcopySymgraph(), SCIPcopySymgraphAsSubgraph(), and SCIPupdateSymgraphLhs().

    ◆ rhs

    SCIP_Real* SYM_Graph::rhs

    array of right-hand sides for cons nodes

    Definition at line 76 of file struct_symmetry.h.

    Referenced by compareConsnodes(), compareSymgraphs(), SCIPaddSymgraphConsnode(), SCIPcopySymgraph(), SCIPcopySymgraphAsSubgraph(), and SCIPupdateSymgraphRhs().

    ◆ nedges

    ◆ maxnedges

    int SYM_Graph::maxnedges

    maximum number of entries in edge-based arrays

    Definition at line 80 of file struct_symmetry.h.

    Referenced by ensureEdgeArraysSize().

    ◆ edgefirst

    int* SYM_Graph::edgefirst

    array of first nodes of edges

    Definition at line 83 of file struct_symmetry.h.

    Referenced by ensureEdgeArraysSize(), SCIPaddSymgraphEdge(), SCIPgetSymgraphEdgeFirst(), and SYMcheckGraphsAreIdentical().

    ◆ edgesecond

    int* SYM_Graph::edgesecond

    array of second nodes of edges

    Definition at line 84 of file struct_symmetry.h.

    Referenced by ensureEdgeArraysSize(), SCIPaddSymgraphEdge(), SCIPgetSymgraphEdgeSecond(), and SYMcheckGraphsAreIdentical().

    ◆ edgevals

    SCIP_Real* SYM_Graph::edgevals

    array assigning each edge a value (SCIPinfinity if unassigned)

    Definition at line 85 of file struct_symmetry.h.

    Referenced by ensureEdgeArraysSize(), SCIP_DECL_SORTINDCOMP(), SCIPaddSymgraphEdge(), SCIPcopySymgraph(), and SCIPcopySymgraphAsSubgraph().

    ◆ symvars

    SCIP_VAR** SYM_Graph::symvars

    variables on which symmetries act

    Definition at line 88 of file struct_symmetry.h.

    Referenced by SCIP_DECL_SORTINDCOMP(), SCIPclearSymgraph(), SCIPcomputeSymgraphColors(), SCIPcopySymgraph(), and SCIPgetSymgraphVars().

    ◆ nsymvars

    ◆ isfixedvar

    SCIP_Bool* SYM_Graph::isfixedvar

    whether a variable needs to be fixed

    Definition at line 90 of file struct_symmetry.h.

    Referenced by SCIP_DECL_SORTINDCOMP(), SCIPcomputeSymgraphColors(), and SCIPfixSymgraphVarnode().

    ◆ varcolors

    int* SYM_Graph::varcolors

    variable colors for symmetry detection

    Definition at line 93 of file struct_symmetry.h.

    Referenced by SCIPclearSymgraph(), SCIPcomputeSymgraphColors(), and SCIPgetSymgraphVarnodeColor().

    ◆ opcolors

    int* SYM_Graph::opcolors

    operator colors for symmetry detection

    Definition at line 94 of file struct_symmetry.h.

    Referenced by SCIPclearSymgraph(), SCIPcomputeSymgraphColors(), and SCIPgetSymgraphNodeColor().

    ◆ valcolors

    int* SYM_Graph::valcolors

    value colors for symmetry detection

    Definition at line 95 of file struct_symmetry.h.

    Referenced by SCIPclearSymgraph(), SCIPcomputeSymgraphColors(), and SCIPgetSymgraphNodeColor().

    ◆ conscolors

    int* SYM_Graph::conscolors

    constraint colors for symmetry detection

    Definition at line 96 of file struct_symmetry.h.

    Referenced by SCIPclearSymgraph(), SCIPcomputeSymgraphColors(), and SCIPgetSymgraphNodeColor().

    ◆ edgecolors

    int* SYM_Graph::edgecolors

    edge colors used for symmetry detection (-1 uncolored)

    Definition at line 97 of file struct_symmetry.h.

    Referenced by SCIPclearSymgraph(), SCIPcomputeSymgraphColors(), SCIPgetSymgraphEdgeColor(), and SCIPisSymgraphEdgeColored().

    ◆ uniqueedgetype

    SCIP_Bool SYM_Graph::uniqueedgetype

    whether all edges are equivalent

    Definition at line 98 of file struct_symmetry.h.

    Referenced by SCIPclearSymgraph(), and SCIPhasGraphUniqueEdgetype().