Scippy

    SCIP

    Solving Constraint Integer Programs

    Detailed Description

    constraint handler for partitioning/packing orbitope constraints w.r.t. the full symmetric group

    Author
    Timo Berthold
    Marc Pfetsch
    Christopher Hojny

    The type of constraints of this constraint handler is described in cons_orbitope_pp.h. When creating the constraint, users can decide whether it is a constraint defining the model or "just" use to handle symmetries. In the latter case, symmetry reductions are only performed by the constraint handler if strong dual reductions are permitted.

    The details of the method implemented here are described in the following papers.

    Packing and Partitioning Orbitopes
    Volker Kaibel and Marc E. Pfetsch,
    Math. Program. 114, No. 1, 1-36 (2008)

    Among other things, this paper describes so-called shifted column inequalities of the following form \(x(S) \leq x(B)\), where \(S\) is a so-called shifted column and \(B\) is a so-called bar. These inequalities can be used to handle symmetry and they are separated in this constraint handler. We use the linear time separation algorithm of the paper.

    Orbitopal Fixing
    Volker Kaibel, Matthias Peinhardt, and Marc E. Pfetsch,
    Discrete Optimization 8, No. 4, 595-610 (2011) (A preliminary version appears in Proc. IPCO 2007.)

    In this paper a linear time propagation algorithm is described, a variant of which is implemented here. The implemented variant does not run in linear time, but is very fast in practice.

    translation table
    herepaper
    nrows p
    ncols q
    vars x
    vals A^\star
    weights \omega
    cases \tau
    fixtriangle
    resolveprop
    firstnonzeros\mu
    lastones \alpha
    frontiersteps\Gamma

    Definition in file cons_orbitope_pp.c.

    #include "blockmemshell/memory.h"
    #include "scip/cons_orbitope_pp.h"
    #include "scip/cons_setppc.h"
    #include "scip/pub_cons.h"
    #include "scip/pub_message.h"
    #include "scip/pub_var.h"
    #include "scip/scip.h"
    #include "scip/scip_branch.h"
    #include "scip/scip_conflict.h"
    #include "scip/scip_cons.h"
    #include "scip/scip_copy.h"
    #include "scip/scip_cut.h"
    #include "scip/scip_general.h"
    #include "scip/scip_lp.h"
    #include "scip/scip_mem.h"
    #include "scip/scip_message.h"
    #include "scip/scip_numerics.h"
    #include "scip/scip_param.h"
    #include "scip/scip_prob.h"
    #include "scip/scip_probing.h"
    #include "scip/scip_sol.h"
    #include "scip/scip_var.h"
    #include "scip/symmetry.h"
    #include <symmetry/type_symmetry.h>

    Go to the source code of this file.

    Macros

    #define CONSHDLR_NAME   "orbitope_pp"
     
    #define CONSHDLR_DESC   "symmetry breaking constraint handler relying on partitioning/packing orbitopes"
     
    #define CONSHDLR_SEPAPRIORITY   +40100
     
    #define CONSHDLR_ENFOPRIORITY   -1005200
     
    #define CONSHDLR_CHECKPRIORITY   -1005200
     
    #define CONSHDLR_SEPAFREQ   -1
     
    #define CONSHDLR_PROPFREQ   1
     
    #define CONSHDLR_EAGERFREQ   -1
     
    #define CONSHDLR_MAXPREROUNDS   -1
     
    #define CONSHDLR_DELAYSEPA   FALSE
     
    #define CONSHDLR_DELAYPROP   FALSE
     
    #define CONSHDLR_NEEDSCONS   TRUE
     
    #define CONSHDLR_PROP_TIMING   SCIP_PROPTIMING_BEFORELP
     
    #define CONSHDLR_PRESOLTIMING   SCIP_PRESOLTIMING_MEDIUM
     
    #define DEFAULT_FORCECONSCOPY   FALSE
     

    Functions

    static SCIP_RETCODE consdataFree (SCIP *scip, SCIP_CONSDATA **consdata)
     
    static SCIP_RETCODE consdataCreate (SCIP *scip, SCIP_CONSDATA **consdata, SCIP_VAR ***vars, int nrows, int ncols, SCIP_ORBITOPETYPE orbitopetype, SCIP_Bool resolveprop, SCIP_Bool ismodelcons)
     
    static void copyValues (SCIP *scip, SCIP_CONSDATA *consdata, SCIP_SOL *sol)
     
    static void computeSCTable (SCIP *scip, int nrows, int ncols, SCIP_Real **weights, int **cases, SCIP_Real **vals)
     
    static SCIP_RETCODE fixTriangle (SCIP *scip, SCIP_CONS *cons, SCIP_Bool *infeasible, int *nfixedvars)
     
    static SCIP_RETCODE separateSCIs (SCIP *scip, SCIP_CONSHDLR *conshdlr, SCIP_CONS *cons, SCIP_CONSDATA *consdata, SCIP_Bool *infeasible, int *nfixedvars, int *ncuts)
     
    static SCIP_RETCODE propagateCons (SCIP *scip, SCIP_CONS *cons, SCIP_Bool *infeasible, int *nfixedvars)
     
    static SCIP_RETCODE resolvePropagation (SCIP *scip, SCIP_CONS *cons, int inferinfo, SCIP_BDCHGIDX *bdchgidx, SCIP_RESULT *result)
     
    static SCIP_RETCODE enfopsPackingPartitioningOrbitopeSolution (SCIP *scip, SCIP_CONS *cons, SCIP_RESULT *result)
     
    static SCIP_RETCODE checkPackingPartitioningOrbitopeSolution (SCIP *scip, SCIP_CONS *cons, SCIP_SOL *sol, SCIP_RESULT *result, SCIP_Bool printreason)
     
    static SCIP_RETCODE separateConstraints (SCIP *scip, SCIP_CONSHDLR *conshdlr, SCIP_CONS **conss, int nconss, int nusefulconss, SCIP_SOL *sol, SCIP_RESULT *result, SCIP_Bool enforce)
     
    static SCIP_RETCODE checkRedundantCons (SCIP *scip, SCIP_CONS *cons, SCIP_Bool *redundant)
     
    static SCIP_RETCODE replaceAggregatedVarsOrbitopePP (SCIP *scip, SCIP_CONS *cons)
     
    static SCIP_DECL_CONSHDLRCOPY (conshdlrCopyOrbitopePP)
     
    static SCIP_DECL_CONSFREE (consFreeOrbitopePP)
     
    static SCIP_DECL_CONSDELETE (consDeleteOrbitopePP)
     
    static SCIP_DECL_CONSTRANS (consTransOrbitopePP)
     
    static SCIP_DECL_CONSSEPALP (consSepalpOrbitopePP)
     
    static SCIP_DECL_CONSSEPASOL (consSepasolOrbitopePP)
     
    static SCIP_DECL_CONSENFOLP (consEnfolpOrbitopePP)
     
    static SCIP_DECL_CONSENFORELAX (consEnforelaxOrbitopePP)
     
    static SCIP_DECL_CONSENFOPS (consEnfopsOrbitopePP)
     
    static SCIP_DECL_CONSCHECK (consCheckOrbitopePP)
     
    static SCIP_DECL_CONSPROP (consPropOrbitopePP)
     
    static SCIP_DECL_CONSPRESOL (consPresolOrbitopePP)
     
    static SCIP_DECL_CONSRESPROP (consRespropOrbitopePP)
     
    static SCIP_DECL_CONSEXITPRE (consExitpreOrbitopePP)
     
    static SCIP_DECL_CONSLOCK (consLockOrbitopePP)
     
    static SCIP_DECL_CONSPRINT (consPrintOrbitopePP)
     
    static SCIP_DECL_CONSCOPY (consCopyOrbitopePP)
     
    static SCIP_DECL_CONSPARSE (consParseOrbitopePP)
     
    static SCIP_DECL_CONSGETVARS (consGetVarsOrbitopePP)
     
    static SCIP_DECL_CONSGETNVARS (consGetNVarsOrbitopePP)
     
    SCIP_RETCODE SCIPincludeConshdlrOrbitopePP (SCIP *scip)
     
    SCIP_RETCODE SCIPcreateConsOrbitopePP (SCIP *scip, SCIP_CONS **cons, const char *name, SCIP_VAR ***vars, SCIP_ORBITOPETYPE orbitopetype, int nrows, int ncols, SCIP_Bool resolveprop, SCIP_Bool ismodelcons, SCIP_Bool initial, SCIP_Bool separate, SCIP_Bool enforce, SCIP_Bool check, SCIP_Bool propagate, SCIP_Bool local, SCIP_Bool modifiable, SCIP_Bool dynamic, SCIP_Bool removable, SCIP_Bool stickingatnode)
     
    SCIP_RETCODE SCIPcreateConsBasicOrbitopePP (SCIP *scip, SCIP_CONS **cons, const char *name, SCIP_VAR ***vars, SCIP_ORBITOPETYPE orbitopetype, int nrows, int ncols, SCIP_Bool resolveprop, SCIP_Bool ismodelcons)
     

    Macro Definition Documentation

    ◆ CONSHDLR_NAME

    #define CONSHDLR_NAME   "orbitope_pp"

    Definition at line 103 of file cons_orbitope_pp.c.

    ◆ CONSHDLR_DESC

    #define CONSHDLR_DESC   "symmetry breaking constraint handler relying on partitioning/packing orbitopes"

    Definition at line 104 of file cons_orbitope_pp.c.

    ◆ CONSHDLR_SEPAPRIORITY

    #define CONSHDLR_SEPAPRIORITY   +40100

    priority of the constraint handler for separation

    Definition at line 105 of file cons_orbitope_pp.c.

    ◆ CONSHDLR_ENFOPRIORITY

    #define CONSHDLR_ENFOPRIORITY   -1005200

    priority of the constraint handler for constraint enforcing

    Definition at line 106 of file cons_orbitope_pp.c.

    ◆ CONSHDLR_CHECKPRIORITY

    #define CONSHDLR_CHECKPRIORITY   -1005200

    priority of the constraint handler for checking feasibility

    Definition at line 107 of file cons_orbitope_pp.c.

    ◆ CONSHDLR_SEPAFREQ

    #define CONSHDLR_SEPAFREQ   -1

    frequency for separating cuts; zero means to separate only in the root node

    Definition at line 108 of file cons_orbitope_pp.c.

    ◆ CONSHDLR_PROPFREQ

    #define CONSHDLR_PROPFREQ   1

    frequency for propagating domains; zero means only preprocessing propagation

    Definition at line 109 of file cons_orbitope_pp.c.

    ◆ CONSHDLR_EAGERFREQ

    #define CONSHDLR_EAGERFREQ   -1

    frequency for using all instead of only the useful constraints in separation, propagation and enforcement, -1 for no eager evaluations, 0 for first only

    Definition at line 111 of file cons_orbitope_pp.c.

    ◆ CONSHDLR_MAXPREROUNDS

    #define CONSHDLR_MAXPREROUNDS   -1

    maximal number of presolving rounds the constraint handler participates in (-1: no limit)

    Definition at line 112 of file cons_orbitope_pp.c.

    ◆ CONSHDLR_DELAYSEPA

    #define CONSHDLR_DELAYSEPA   FALSE

    should separation method be delayed, if other separators found cuts?

    Definition at line 113 of file cons_orbitope_pp.c.

    ◆ CONSHDLR_DELAYPROP

    #define CONSHDLR_DELAYPROP   FALSE

    should propagation method be delayed, if other propagators found reductions?

    Definition at line 114 of file cons_orbitope_pp.c.

    ◆ CONSHDLR_NEEDSCONS

    #define CONSHDLR_NEEDSCONS   TRUE

    should the constraint handler be skipped, if no constraints are available?

    Definition at line 115 of file cons_orbitope_pp.c.

    ◆ CONSHDLR_PROP_TIMING

    #define CONSHDLR_PROP_TIMING   SCIP_PROPTIMING_BEFORELP

    propagation timing mask of the constraint handler

    Definition at line 117 of file cons_orbitope_pp.c.

    ◆ CONSHDLR_PRESOLTIMING

    #define CONSHDLR_PRESOLTIMING   SCIP_PRESOLTIMING_MEDIUM

    presolving timing of the constraint handler (fast, medium, or exhaustive)

    Definition at line 118 of file cons_orbitope_pp.c.

    ◆ DEFAULT_FORCECONSCOPY

    #define DEFAULT_FORCECONSCOPY   FALSE

    whether orbitope constraints should be forced to be copied to sub SCIPs

    Definition at line 120 of file cons_orbitope_pp.c.

    Function Documentation

    ◆ consdataFree()

    static SCIP_RETCODE consdataFree ( SCIP scip,
    SCIP_CONSDATA **  consdata 
    )
    static

    frees an orbitope constraint data

    Parameters
    scipSCIP data structure
    consdatapointer to orbitope constraint data

    Definition at line 156 of file cons_orbitope_pp.c.

    References NULL, SCIP_CALL, SCIP_OKAY, SCIPfreeBlockMemory, SCIPfreeBlockMemoryArrayNull, and SCIPreleaseVar().

    Referenced by SCIP_DECL_CONSDELETE().

    ◆ consdataCreate()

    static SCIP_RETCODE consdataCreate ( SCIP scip,
    SCIP_CONSDATA **  consdata,
    SCIP_VAR ***  vars,
    int  nrows,
    int  ncols,
    SCIP_ORBITOPETYPE  orbitopetype,
    SCIP_Bool  resolveprop,
    SCIP_Bool  ismodelcons 
    )
    static

    creates orbitope constraint data

    Parameters
    scipSCIP data structure
    consdatapointer to store constraint data
    varsvariables array, must have size nspcons x nblocks
    nrowsnumber of rows in orbitope matrix <=> p
    ncolsnumber of columns in orbitope matrix <=> q
    orbitopetypetype of orbitope constraint
    resolvepropshould propagation be resolved?
    ismodelconswhether the orbitope is a model constraint

    Definition at line 202 of file cons_orbitope_pp.c.

    References FALSE, NULL, SCIP_CALL, SCIP_OKAY, SCIPallocBlockMemory, SCIPallocBlockMemoryArray, SCIPcaptureVar(), SCIPduplicateBlockMemoryArray, SCIPgetTransformedVar(), SCIPisTransformed(), and SCIPmarkDoNotMultaggrVar().

    Referenced by SCIP_DECL_CONSTRANS(), and SCIPcreateConsOrbitopePP().

    ◆ copyValues()

    static void copyValues ( SCIP scip,
    SCIP_CONSDATA consdata,
    SCIP_SOL sol 
    )
    static

    copies the variables values from the solution to the constraint data structure

    Parameters
    scipthe SCIP data structure
    consdatathe constraint data
    sola primal solution or NULL for the current LP optimum

    Definition at line 419 of file cons_orbitope_pp.c.

    References NULL, and SCIPgetSolVal().

    Referenced by checkPackingPartitioningOrbitopeSolution(), enfopsPackingPartitioningOrbitopeSolution(), and separateConstraints().

    ◆ computeSCTable()

    static void computeSCTable ( SCIP scip,
    int  nrows,
    int  ncols,
    SCIP_Real **  weights,
    int **  cases,
    SCIP_Real **  vals 
    )
    static

    compute the dynamic programming table for SC

    Build up dynamic programming table in order to find SCs with minimum weight.

    The values of the minimal SCIs are stored in weights. The array cases[i][j] stores which of the cases were applied to get weights[i][j]. Here, 3 means that we have reached the upper limit.

    We assume that the upper right triangle is fixed to 0. Hence we can perform the computation a bit more efficient.

    Parameters
    scipSCIP pointer
    nrowsnumber of rows in orbitope matrix <=> p
    ncolsnumber of columns in orbitope matrix <=> q
    weightsSC weight table
    casesindicator of the SC cases
    valscurrent solution

    Definition at line 455 of file cons_orbitope_pp.c.

    References NULL, SCIP_Real, and SCIPisLT().

    Referenced by checkPackingPartitioningOrbitopeSolution(), enfopsPackingPartitioningOrbitopeSolution(), resolvePropagation(), and separateSCIs().

    ◆ fixTriangle()

    static SCIP_RETCODE fixTriangle ( SCIP scip,
    SCIP_CONS cons,
    SCIP_Bool infeasible,
    int *  nfixedvars 
    )
    static

    fix upper right triangle if necessary

    Parameters
    scipSCIP data structure
    consconstraint to be processed
    infeasiblepointer to store TRUE, if the node can be cut off
    nfixedvarspointer to add up the number of found domain reductions

    Definition at line 550 of file cons_orbitope_pp.c.

    References FALSE, NULL, SCIP_Bool, SCIP_CALL, SCIP_OKAY, SCIPconsGetData(), SCIPconsGetName(), SCIPdebugMsg, SCIPfixVar(), SCIPvarGetUbGlobal(), and TRUE.

    Referenced by enfopsPackingPartitioningOrbitopeSolution(), propagateCons(), and separateSCIs().

    ◆ separateSCIs()

    static SCIP_RETCODE separateSCIs ( SCIP scip,
    SCIP_CONSHDLR conshdlr,
    SCIP_CONS cons,
    SCIP_CONSDATA consdata,
    SCIP_Bool infeasible,
    int *  nfixedvars,
    int *  ncuts 
    )
    static

    separates shifted column inequalities according to the solution stored in consdata->vals

    Parameters
    scipthe SCIP data structure
    conshdlrconstraint handler
    consconstraint
    consdatathe constraint data
    infeasiblewhether we detected infeasibility
    nfixedvarspointer to store the number of variables fixed
    ncutspointer to store number of separated SCIs

    Definition at line 634 of file cons_orbitope_pp.c.

    References computeSCTable(), FALSE, fixTriangle(), NULL, SCIP_CALL, SCIP_MAXSTRLEN, SCIP_OKAY, SCIP_Real, SCIPaddRow(), SCIPaddVarsToRow(), SCIPcreateEmptyRowConshdlr(), SCIPinfinity(), SCIPisEfficacious(), SCIPisSumEQ(), SCIPreleaseRow(), SCIPsnprintf(), and TRUE.

    Referenced by separateConstraints().

    ◆ propagateCons()

    static SCIP_RETCODE propagateCons ( SCIP scip,
    SCIP_CONS cons,
    SCIP_Bool infeasible,
    int *  nfixedvars 
    )
    static

    propagation method for a single orbitope constraint

    Parameters
    scipSCIP data structure
    consconstraint to be processed
    infeasiblepointer to store TRUE, if the node can be cut off
    nfixedvarspointer to add up the number of found domain reductions

    Definition at line 797 of file cons_orbitope_pp.c.

    References FALSE, fixTriangle(), NULL, SCIP_Bool, SCIP_CALL, SCIP_CONFTYPE_PROPAGATION, SCIP_OKAY, SCIP_ORBITOPETYPE_PACKING, SCIP_ORBITOPETYPE_PARTITIONING, SCIP_STAGE_SOLVING, SCIPaddConflictBinvar(), SCIPallocBufferArray, SCIPallowStrongDualReds(), SCIPanalyzeConflictCons(), SCIPconsGetData(), SCIPdebugMsg, SCIPfreeBufferArray, SCIPgetStage(), SCIPinferBinvarCons(), SCIPinitConflictAnalysis(), SCIPinProbing(), SCIPisConflictAnalysisApplicable(), SCIPvarGetLbLocal(), SCIPvarGetUbLocal(), and TRUE.

    Referenced by SCIP_DECL_CONSPRESOL(), and SCIP_DECL_CONSPROP().

    ◆ resolvePropagation()

    static SCIP_RETCODE resolvePropagation ( SCIP scip,
    SCIP_CONS cons,
    int  inferinfo,
    SCIP_BDCHGIDX bdchgidx,
    SCIP_RESULT result 
    )
    static

    Propagation conflict resolving method of propagator

    In this function we use that the propagation method above implicitly propagates SCIs, i.e., every fixing can also be gotten via an SCI-fixing.

    Since the storage of an integer is not enough to store the complete information about the fixing nor a complete shifted column, we have to use the linear time algorithm for SCIs.

    The inferinfo integer is set as follows:

    • If a shifted column is fixed to 0 and the corresponding bar does not necessarily has value 1 then we fix these entries to 0 and inferinfo is i * ncols + j, where (i,j) is the leader of the bar. The SCI depends on whether i is in Gamma or not (see Lemma 1 in the paper and the comments above).
    • If a bar has value 1 and the shifted column has one entry that is not fixed, it can be fixed to 1 and inferinfo is (nrows*ncols) + i * ncols + j, where (i,j) is the leader of the bar; see Proposition 1 (2c).
    Parameters
    scipSCIP data structure
    consconstraint that inferred the bound change
    inferinfoinference information
    bdchgidxbound change index (time stamp of bound change), or NULL for current time
    resultpointer to store the result of the propagation conflict resolving call

    Definition at line 1173 of file cons_orbitope_pp.c.

    References computeSCTable(), FALSE, MIN, NULL, SCIP_CALL, SCIP_DIDNOTFIND, SCIP_MAXSTRLEN, SCIP_OKAY, SCIP_ORBITOPETYPE_PARTITIONING, SCIP_Real, SCIP_SUCCESS, SCIPaddConflictLb(), SCIPaddConflictUb(), SCIPconsGetData(), SCIPdebugMsg, SCIPgetVarLbAtIndex(), SCIPgetVarUbAtIndex(), and SCIPsnprintf().

    Referenced by SCIP_DECL_CONSRESPROP().

    ◆ enfopsPackingPartitioningOrbitopeSolution()

    static SCIP_RETCODE enfopsPackingPartitioningOrbitopeSolution ( SCIP scip,
    SCIP_CONS cons,
    SCIP_RESULT result 
    )
    static

    check packing/partitioning orbitope solution for feasibility

    Parameters
    scipSCIP data structure
    conspointer to orbitope constraint
    resultpointer to store the result of the enforcing call

    Definition at line 1448 of file cons_orbitope_pp.c.

    References computeSCTable(), copyValues(), FALSE, fixTriangle(), NULL, SCIP_Bool, SCIP_CALL, SCIP_CUTOFF, SCIP_INFEASIBLE, SCIP_OKAY, SCIP_Real, SCIP_REDUCEDDOM, SCIPallowStrongDualReds(), SCIPconsGetData(), SCIPconsGetName(), SCIPdebugMsg, SCIPisGT(), and SCIPisIntegral().

    Referenced by SCIP_DECL_CONSENFOPS().

    ◆ checkPackingPartitioningOrbitopeSolution()

    static SCIP_RETCODE checkPackingPartitioningOrbitopeSolution ( SCIP scip,
    SCIP_CONS cons,
    SCIP_SOL sol,
    SCIP_RESULT result,
    SCIP_Bool  printreason 
    )
    static

    check packing/partitioning orbitope solution for feasibility

    Parameters
    scipSCIP data structure
    conspointer to orbitope constraint
    solsolution to be checked
    resultpointer to store the result of the enforcing call
    printreasonwhether reason for infeasibility should be printed

    Definition at line 1545 of file cons_orbitope_pp.c.

    References computeSCTable(), copyValues(), NULL, SCIP_INFEASIBLE, SCIP_OKAY, SCIP_Real, SCIPconsGetData(), SCIPconsGetName(), SCIPdebugMsg, SCIPinfoMessage(), SCIPisFeasIntegral(), SCIPisFeasZero(), SCIPisGT(), and SCIPvarGetName().

    Referenced by SCIP_DECL_CONSCHECK().

    ◆ separateConstraints()

    static SCIP_RETCODE separateConstraints ( SCIP scip,
    SCIP_CONSHDLR conshdlr,
    SCIP_CONS **  conss,
    int  nconss,
    int  nusefulconss,
    SCIP_SOL sol,
    SCIP_RESULT result,
    SCIP_Bool  enforce 
    )
    static

    separate or enforce constraints

    Parameters
    scipSCIP data structure
    conshdlrconstraint handler
    conssconstraints to process
    nconssnumber of constraints
    nusefulconssnumber of useful (non-obsolete) constraints to process
    solsolution to separate (NULL for the LP solution)
    resultpointer to store the result (should be initialized)
    enforcewhether we enforce orbitope constraints

    Definition at line 1694 of file cons_orbitope_pp.c.

    References CONSHDLR_NAME, copyValues(), FALSE, NULL, SCIP_Bool, SCIP_CALL, SCIP_CUTOFF, SCIP_OKAY, SCIP_REDUCEDDOM, SCIP_SEPARATED, SCIPallowStrongDualReds(), SCIPconsGetData(), SCIPconshdlrGetName(), SCIPdebugMsg, and separateSCIs().

    Referenced by SCIP_DECL_CONSENFOLP(), SCIP_DECL_CONSENFORELAX(), SCIP_DECL_CONSSEPALP(), and SCIP_DECL_CONSSEPASOL().

    ◆ checkRedundantCons()

    static SCIP_RETCODE checkRedundantCons ( SCIP scip,
    SCIP_CONS cons,
    SCIP_Bool redundant 
    )
    static

    check whether all variables in an orbitope constraint are fixed

    Parameters
    scipSCIP data structure
    consconstraint to be processed
    redundantpointer to store whether constraint is redundant (contains no active vars)

    Definition at line 1775 of file cons_orbitope_pp.c.

    References FALSE, NULL, SCIP_OKAY, SCIPconsGetData(), SCIPvarIsActive(), and TRUE.

    Referenced by SCIP_DECL_CONSPRESOL().

    ◆ replaceAggregatedVarsOrbitopePP()

    static SCIP_RETCODE replaceAggregatedVarsOrbitopePP ( SCIP scip,
    SCIP_CONS cons 
    )
    static

    replace aggregated variables by active variables

    Parameters
    scipSCIP data structure
    consconstraint to be processed

    Definition at line 1820 of file cons_orbitope_pp.c.

    References NULL, SCIP_Bool, SCIP_CALL, SCIP_OKAY, SCIP_UNUSED, SCIP_VARSTATUS_FIXED, SCIP_VARSTATUS_MULTAGGR, SCIP_VARSTATUS_NEGATED, SCIPcaptureVar(), SCIPconsGetData(), SCIPgetBinvarRepresentative(), SCIPreleaseVar(), SCIPvarGetStatus(), and SCIPvarIsActive().

    Referenced by SCIP_DECL_CONSEXITPRE().

    ◆ SCIP_DECL_CONSHDLRCOPY()

    static SCIP_DECL_CONSHDLRCOPY ( conshdlrCopyOrbitopePP  )
    static

    copy method for constraint handler plugins (called when SCIP copies plugins)

    Definition at line 1877 of file cons_orbitope_pp.c.

    References CONSHDLR_NAME, NULL, SCIP_CALL, SCIP_OKAY, SCIPconshdlrGetName(), SCIPincludeConshdlrOrbitopePP(), and TRUE.

    ◆ SCIP_DECL_CONSFREE()

    static SCIP_DECL_CONSFREE ( consFreeOrbitopePP  )
    static

    frees constraint handler

    Definition at line 1894 of file cons_orbitope_pp.c.

    References CONSHDLR_NAME, NULL, SCIP_OKAY, SCIPconshdlrGetData(), SCIPconshdlrGetName(), and SCIPfreeBlockMemory.

    ◆ SCIP_DECL_CONSDELETE()

    static SCIP_DECL_CONSDELETE ( consDeleteOrbitopePP  )
    static

    frees specific constraint data

    Definition at line 1912 of file cons_orbitope_pp.c.

    References consdataFree(), CONSHDLR_NAME, NULL, SCIP_CALL, SCIP_OKAY, and SCIPconshdlrGetName().

    ◆ SCIP_DECL_CONSTRANS()

    ◆ SCIP_DECL_CONSSEPALP()

    static SCIP_DECL_CONSSEPALP ( consSepalpOrbitopePP  )
    static

    separation method of constraint handler for LP solutions

    Definition at line 1954 of file cons_orbitope_pp.c.

    References FALSE, NULL, SCIP_CALL, SCIP_DIDNOTFIND, SCIP_DIDNOTRUN, SCIP_OKAY, SCIPconshdlrGetName(), SCIPdebugMsg, SCIPgetNLPBranchCands(), and separateConstraints().

    ◆ SCIP_DECL_CONSSEPASOL()

    static SCIP_DECL_CONSSEPASOL ( consSepasolOrbitopePP  )
    static

    separation method of constraint handler for arbitrary primal solutions

    Definition at line 1978 of file cons_orbitope_pp.c.

    References FALSE, NULL, SCIP_CALL, SCIP_DIDNOTFIND, SCIP_OKAY, SCIPconshdlrGetName(), SCIPdebugMsg, and separateConstraints().

    ◆ SCIP_DECL_CONSENFOLP()

    static SCIP_DECL_CONSENFOLP ( consEnfolpOrbitopePP  )
    static

    constraint enforcing method of constraint handler for LP solutions

    Definition at line 1997 of file cons_orbitope_pp.c.

    References NULL, SCIP_CALL, SCIP_FEASIBLE, SCIP_OKAY, SCIPconshdlrGetName(), SCIPdebugMsg, SCIPgetNLPBranchCands(), separateConstraints(), and TRUE.

    ◆ SCIP_DECL_CONSENFORELAX()

    static SCIP_DECL_CONSENFORELAX ( consEnforelaxOrbitopePP  )
    static

    constraint enforcing method of constraint handler for relaxation solutions

    Definition at line 2019 of file cons_orbitope_pp.c.

    References NULL, SCIP_CALL, SCIP_FEASIBLE, SCIP_OKAY, SCIPconshdlrGetName(), SCIPdebugMsg, separateConstraints(), and TRUE.

    ◆ SCIP_DECL_CONSENFOPS()

    static SCIP_DECL_CONSENFOPS ( consEnfopsOrbitopePP  )
    static

    constraint enforcing method of constraint handler for pseudo solutions

    Definition at line 2039 of file cons_orbitope_pp.c.

    References CONSHDLR_NAME, enfopsPackingPartitioningOrbitopeSolution(), NULL, SCIP_CALL, SCIP_FEASIBLE, SCIP_INFEASIBLE, SCIP_OKAY, SCIPconsGetData(), and SCIPconshdlrGetName().

    ◆ SCIP_DECL_CONSCHECK()

    static SCIP_DECL_CONSCHECK ( consCheckOrbitopePP  )
    static

    feasibility check method of constraint handler for integral solutions

    Definition at line 2081 of file cons_orbitope_pp.c.

    References checkPackingPartitioningOrbitopeSolution(), CONSHDLR_NAME, NULL, SCIP_CALL, SCIP_FEASIBLE, SCIP_OKAY, SCIPconsGetData(), SCIPconshdlrGetName(), and SCIPdebugMsg.

    ◆ SCIP_DECL_CONSPROP()

    static SCIP_DECL_CONSPROP ( consPropOrbitopePP  )
    static

    ◆ SCIP_DECL_CONSPRESOL()

    static SCIP_DECL_CONSPRESOL ( consPresolOrbitopePP  )
    static

    ◆ SCIP_DECL_CONSRESPROP()

    static SCIP_DECL_CONSRESPROP ( consRespropOrbitopePP  )
    static

    propagation conflict resolving method of constraint handler

    Definition at line 2243 of file cons_orbitope_pp.c.

    References NULL, resolvePropagation(), SCIP_CALL, and SCIP_OKAY.

    ◆ SCIP_DECL_CONSEXITPRE()

    static SCIP_DECL_CONSEXITPRE ( consExitpreOrbitopePP  )
    static

    presolving deinitialization method of constraint handler (called after presolving has been finished)

    Definition at line 2259 of file cons_orbitope_pp.c.

    References CONSHDLR_NAME, NULL, replaceAggregatedVarsOrbitopePP(), SCIP_CALL, SCIP_OKAY, and SCIPconshdlrGetName().

    ◆ SCIP_DECL_CONSLOCK()

    static SCIP_DECL_CONSLOCK ( consLockOrbitopePP  )
    static

    variable rounding lock method of constraint handler

    Definition at line 2278 of file cons_orbitope_pp.c.

    References CONSHDLR_NAME, NULL, SCIP_CALL, SCIP_LOCKTYPE_MODEL, SCIP_OKAY, SCIPaddVarLocksType(), SCIPconsGetData(), SCIPconshdlrGetName(), and SCIPdebugMsg.

    ◆ SCIP_DECL_CONSPRINT()

    static SCIP_DECL_CONSPRINT ( consPrintOrbitopePP  )
    static

    ◆ SCIP_DECL_CONSCOPY()

    static SCIP_DECL_CONSCOPY ( consCopyOrbitopePP  )
    static

    ◆ SCIP_DECL_CONSPARSE()

    static SCIP_DECL_CONSPARSE ( consParseOrbitopePP  )
    static

    ◆ SCIP_DECL_CONSGETVARS()

    static SCIP_DECL_CONSGETVARS ( consGetVarsOrbitopePP  )
    static

    constraint method of constraint handler which returns the variables (if possible)

    Definition at line 2594 of file cons_orbitope_pp.c.

    References FALSE, NULL, SCIP_OKAY, SCIPconsGetData(), and TRUE.

    ◆ SCIP_DECL_CONSGETNVARS()

    static SCIP_DECL_CONSGETNVARS ( consGetNVarsOrbitopePP  )
    static

    constraint method of constraint handler which returns the number of variables (if possible)

    Definition at line 2627 of file cons_orbitope_pp.c.

    References NULL, SCIP_OKAY, SCIPconsGetData(), and TRUE.