Detailed Description
Constraint handler for the set partitioning / packing / covering constraints \(1^T x\ \{=, \le, \ge\}\ 1\).
Definition in file cons_setppc.c.
#include "blockmemshell/memory.h"
#include "scip/cons_nonlinear.h"
#include "scip/cons_linear.h"
#include "scip/cons_setppc.h"
#include "scip/pub_conflict.h"
#include "scip/pub_cons.h"
#include "scip/pub_event.h"
#include "scip/pub_lp.h"
#include "scip/pub_message.h"
#include "scip/pub_misc.h"
#include "scip/pub_misc_sort.h"
#include "scip/pub_var.h"
#include "scip/scip_conflict.h"
#include "scip/scip_cons.h"
#include "scip/scip_cut.h"
#include "scip/scip_event.h"
#include "scip/scip_general.h"
#include "scip/scip_lp.h"
#include "scip/scip_mem.h"
#include "scip/scip_message.h"
#include "scip/scip_nlp.h"
#include "scip/scip_numerics.h"
#include "scip/scip_param.h"
#include "scip/scip_prob.h"
#include "scip/scip_probing.h"
#include "scip/scip_randnumgen.h"
#include "scip/scip_sol.h"
#include "scip/scip_solvingstats.h"
#include "scip/scip_var.h"
#include "scip/symmetry_graph.h"
#include "symmetry/struct_symmetry.h"
#include <string.h>
Go to the source code of this file.
Functions | |
static int | setppcCompare (SCIP_CONS *const cons1, SCIP_CONS *const cons2) |
static | SCIP_DECL_SORTPTRCOMP (setppcConssSort) |
static int | setppcCompare2 (SCIP_CONS *const cons1, SCIP_CONS *const cons2) |
static | SCIP_DECL_SORTPTRCOMP (setppcConssSort2) |
static SCIP_RETCODE | lockRounding (SCIP *scip, SCIP_CONS *cons, SCIP_VAR *var) |
static SCIP_RETCODE | unlockRounding (SCIP *scip, SCIP_CONS *cons, SCIP_VAR *var) |
static SCIP_RETCODE | conshdlrdataCreate (SCIP *scip, SCIP_CONSHDLRDATA **conshdlrdata, SCIP_EVENTHDLR *eventhdlr) |
static SCIP_RETCODE | conshdlrdataFree (SCIP *scip, SCIP_CONSHDLRDATA **conshdlrdata) |
static SCIP_RETCODE | consdataEnsureVarsSize (SCIP *scip, SCIP_CONSDATA *consdata, int num) |
static SCIP_RETCODE | consdataCreate (SCIP *scip, SCIP_CONSDATA **consdata, int nvars, SCIP_VAR **vars, SCIP_SETPPCTYPE setppctype) |
static SCIP_RETCODE | consdataCreateTransformed (SCIP *scip, SCIP_CONSDATA **consdata, int nvars, SCIP_VAR **vars, SCIP_SETPPCTYPE setppctype) |
static SCIP_RETCODE | consdataFree (SCIP *scip, SCIP_CONSDATA **consdata) |
static SCIP_RETCODE | consdataPrint (SCIP *scip, SCIP_CONSDATA *consdata, FILE *file) |
static uint64_t | consdataGetSignature (SCIP_CONSDATA *consdata) |
static void | consdataSort (SCIP_CONSDATA *consdata) |
static SCIP_RETCODE | setSetppcType (SCIP *scip, SCIP_CONS *cons, SCIP_SETPPCTYPE setppctype) |
static SCIP_RETCODE | catchEvent (SCIP *scip, SCIP_CONS *cons, SCIP_EVENTHDLR *eventhdlr, int pos) |
static SCIP_RETCODE | dropEvent (SCIP *scip, SCIP_CONS *cons, SCIP_EVENTHDLR *eventhdlr, int pos) |
static SCIP_RETCODE | catchAllEvents (SCIP *scip, SCIP_CONS *cons, SCIP_EVENTHDLR *eventhdlr) |
static SCIP_RETCODE | dropAllEvents (SCIP *scip, SCIP_CONS *cons, SCIP_EVENTHDLR *eventhdlr) |
static SCIP_RETCODE | addCoef (SCIP *scip, SCIP_CONS *cons, SCIP_VAR *var) |
static SCIP_RETCODE | delCoefPos (SCIP *scip, SCIP_CONS *cons, int pos) |
static SCIP_RETCODE | dualPresolving (SCIP *scip, SCIP_CONS *cons, int *nfixedvars, int *ndelconss, int *naggrvars, SCIP_RESULT *result) |
static SCIP_RETCODE | mergeMultiples (SCIP *scip, SCIP_CONS *cons, int *nfixedvars, int *ndelconss, int *nchgcoefs, SCIP_Bool *cutoff) |
static SCIP_RETCODE | applyFixings (SCIP *scip, SCIP_CONS *cons, int *naddconss, int *ndelconss, int *nfixedvars, SCIP_Bool *cutoff) |
static SCIP_RETCODE | analyzeConflictZero (SCIP *scip, SCIP_CONS *cons) |
static SCIP_RETCODE | analyzeConflictOne (SCIP *scip, SCIP_CONS *cons) |
static SCIP_RETCODE | processFixings (SCIP *scip, SCIP_CONS *cons, SCIP_Bool *cutoff, int *nfixedvars, SCIP_Bool *addcut, SCIP_Bool *mustcheck) |
static SCIP_Bool | checkCons (SCIP *scip, SCIP_CONSDATA *consdata, SCIP_SOL *sol) |
static SCIP_RETCODE | createRow (SCIP *scip, SCIP_CONS *cons) |
static SCIP_RETCODE | addCut (SCIP *scip, SCIP_CONS *cons, SCIP_Bool *cutoff) |
static SCIP_RETCODE | addNlrow (SCIP *scip, SCIP_CONS *cons) |
static SCIP_RETCODE | separateCons (SCIP *scip, SCIP_CONS *cons, SCIP_SOL *sol, SCIP_Bool lpfeas, SCIP_Bool *cutoff, SCIP_Bool *separated, SCIP_Bool *reduceddom) |
static SCIP_RETCODE | enforcePseudo (SCIP *scip, SCIP_CONS *cons, SCIP_Bool *cutoff, SCIP_Bool *infeasible, SCIP_Bool *reduceddom, SCIP_Bool *solvelp) |
static | SCIP_DECL_HASHGETKEY (hashGetKeySetppccons) |
static | SCIP_DECL_HASHKEYEQ (hashKeyEqSetppccons) |
static | SCIP_DECL_HASHKEYVAL (hashKeyValSetppccons) |
static SCIP_RETCODE | addExtraCliques (SCIP *const scip, SCIP_VAR **const binvars, int const nbinvars, int *const cliquepartition, int const ncliques, SCIP_CONS **const usefulconss, int *const nusefulconss, int const nrounds, int *const nfixedvars, int *const naddconss, int *const ndelconss, int *const nchgcoefs, SCIP_Bool *const cutoff) |
static SCIP_RETCODE | collectCliqueConss (SCIP *const scip, SCIP_CONS **const conss, int const nconss, SCIP_CONS **const usefulconss, int *const nusefulconss, int *const nfixedvars, int *const ndelconss, int *const nchgcoefs, SCIP_Bool *const cutoff) |
static SCIP_RETCODE | collectCliqueData (SCIP *const scip, SCIP_CONS **const usefulconss, int const nusefulconss, SCIP_VAR **const usefulvars, int *const nusefulvars, SCIP_HASHMAP *const vartoindex, int *const varnconss, int *const maxnvarconsidx, int **const varconsidxs, int *const maxnvars) |
static void | deleteCliqueDataEntry (SCIP_VAR *const var, int const considx, SCIP_HASHMAP *const vartoindex, int *const varnconss, int **const varconsidxs) |
static SCIP_RETCODE | addCliqueDataEntry (SCIP *const scip, SCIP_VAR *const addvar, int const considx, SCIP_Bool const maybenew, SCIP_VAR **const usefulvars, int *const nusefulvars, SCIP_HASHMAP *const vartoindex, int *const varnconss, int *const maxnvarconsidx, int **const varconsidxs) |
static SCIP_RETCODE | presolvePropagateCons (SCIP *const scip, SCIP_CONS *const cons, SCIP_Bool const aggregate, SCIP_VAR **undoneaggrvars, SCIP_Bool *undoneaggrtypes, int *const naggregations, int *const saggregations, int *const nfixedvars, int *const naggrvars, int *const ndelconss, SCIP_Bool *const cutoff) |
static SCIP_RETCODE | checkForOverlapping (SCIP *const scip, SCIP_CONS *const cons, int const considx, int const endidx, SCIP_CONS **const usefulconss, int const nusefulconss, SCIP_VAR **const usefulvars, int *const nusefulvars, SCIP_HASHMAP *const vartoindex, int *const varnconss, int *const maxnvarconsidx, int **const varconsidxs, int *const countofoverlapping, SCIP_Bool const shrinking, SCIP_Bool *const chgcons, SCIP_VAR **undoneaggrvars, SCIP_Bool *undoneaggrtypes, int *const naggregations, int *const saggregations, int *const nfixedvars, int *const naggrvars, int *const nchgcoefs, int *const ndelconss, SCIP_Bool *const cutoff) |
static SCIP_RETCODE | liftCliqueVariables (SCIP *const scip, SCIP_CONS *const cons, int const arraypos, SCIP_VAR **const usefulvars, int *const nusefulvars, int const endidx, SCIP_Bool **cliquevalues, SCIP_HASHMAP *const vartoindex, int *const varnconss, int *const maxnvarconsidx, int **const varconsidxs, int *const maxnvars, int *const nadded, SCIP_Bool *const chgcons, int *const nfixedvars, int *const ndelconss, SCIP_Bool *const cutoff) |
static SCIP_RETCODE | performAggregations (SCIP *const scip, SCIP_CONSHDLRDATA *conshdlrdata, SCIP_VAR **const undoneaggrvars, SCIP_Bool *const undoneaggrtypes, int const naggregations, int *const naggrvars, SCIP_Bool *const cutoff) |
static SCIP_RETCODE | preprocessCliques (SCIP *const scip, SCIP_CONSHDLRDATA *conshdlrdata, SCIP_CONS **const conss, int const nconss, int const nrounds, int *const firstchange, int *const firstclique, int *const lastclique, int *const nfixedvars, int *const naggrvars, int *const ndelconss, int *const nchgcoefs, SCIP_Bool *const cutoff) |
static SCIP_RETCODE | addCliques (SCIP *scip, SCIP_CONS **conss, int nconss, int firstclique, int lastclique, int *naddconss, int *ndelconss, int *nchgbds, SCIP_Bool *cutoff) |
static SCIP_RETCODE | multiAggregateBinvar (SCIP *scip, SCIP_Bool linearconshdlrexist, SCIP_VAR **vars, int nvars, int pos, SCIP_Bool *infeasible, SCIP_Bool *aggregated) |
static SCIP_RETCODE | removeDoubleAndSingletonsAndPerformDualpresolve (SCIP *scip, SCIP_CONS **conss, int nconss, SCIP_Bool dualpresolvingenabled, SCIP_Bool linearconshdlrexist, int *nfixedvars, int *naggrvars, int *ndelconss, int *nchgcoefs, int *nchgsides, SCIP_Bool *cutoff) |
static SCIP_RETCODE | detectRedundantConstraints (SCIP *scip, BMS_BLKMEM *blkmem, SCIP_CONS **conss, int nconss, int *firstchange, int *ndelconss, int *nchgsides) |
static SCIP_RETCODE | removeRedundantCons (SCIP *scip, SCIP_CONS *cons0, SCIP_CONS *cons1, int *ndelconss) |
static SCIP_RETCODE | fixAdditionalVars (SCIP *scip, SCIP_CONS *cons0, SCIP_CONS *cons1, SCIP_Bool *cutoff, int *nfixedvars) |
static SCIP_RETCODE | processContainedCons (SCIP *scip, SCIP_CONS *cons0, SCIP_CONS *cons1, SCIP_Bool *cutoff, int *nfixedvars, int *ndelconss, int *nchgsides) |
static SCIP_RETCODE | removeRedundantConstraints (SCIP *scip, SCIP_CONS **conss, int firstchange, int chkind, SCIP_Bool *cutoff, int *nfixedvars, int *ndelconss, int *nchgsides) |
static SCIP_RETCODE | performVarDeletions (SCIP *scip, SCIP_CONSHDLR *conshdlr, SCIP_CONS **conss, int nconss) |
static SCIP_RETCODE | enforceConstraint (SCIP *scip, SCIP_CONSHDLR *conshdlr, SCIP_CONS **conss, int nconss, int nusefulconss, SCIP_SOL *sol, SCIP_RESULT *result) |
static SCIP_RETCODE | createConsSetppc (SCIP *scip, SCIP_CONS **cons, const char *name, int nvars, SCIP_VAR **vars, SCIP_SETPPCTYPE setppctype, 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) |
static SCIP_RETCODE | createNormalizedSetppc (SCIP *scip, SCIP_CONS **cons, const char *name, int nvars, SCIP_VAR **vars, SCIP_Real *vals, int mult, SCIP_SETPPCTYPE setppctype, 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) |
static | SCIP_DECL_LINCONSUPGD (linconsUpgdSetppc) |
static | SCIP_DECL_NONLINCONSUPGD (nonlinUpgdSetppc) |
static SCIP_RETCODE | addSymmetryInformation (SCIP *scip, SYM_SYMTYPE symtype, SCIP_CONS *cons, SYM_GRAPH *graph, SCIP_Bool *success) |
static | SCIP_DECL_CONSHDLRCOPY (conshdlrCopySetppc) |
static | SCIP_DECL_CONSFREE (consFreeSetppc) |
static | SCIP_DECL_CONSINIT (consInitSetppc) |
static | SCIP_DECL_CONSEXITPRE (consExitpreSetppc) |
static | SCIP_DECL_CONSINITSOL (consInitsolSetppc) |
static | SCIP_DECL_CONSEXITSOL (consExitsolSetppc) |
static | SCIP_DECL_CONSDELETE (consDeleteSetppc) |
static | SCIP_DECL_CONSTRANS (consTransSetppc) |
static | SCIP_DECL_CONSINITLP (consInitlpSetppc) |
static | SCIP_DECL_CONSSEPALP (consSepalpSetppc) |
static | SCIP_DECL_CONSSEPASOL (consSepasolSetppc) |
static | SCIP_DECL_CONSENFOLP (consEnfolpSetppc) |
static | SCIP_DECL_CONSENFORELAX (consEnforelaxSetppc) |
static | SCIP_DECL_CONSENFOPS (consEnfopsSetppc) |
static | SCIP_DECL_CONSCHECK (consCheckSetppc) |
static | SCIP_DECL_CONSPROP (consPropSetppc) |
static | SCIP_DECL_CONSPRESOL (consPresolSetppc) |
static | SCIP_DECL_CONSRESPROP (consRespropSetppc) |
static | SCIP_DECL_CONSLOCK (consLockSetppc) |
static | SCIP_DECL_CONSACTIVE (consActiveSetppc) |
static | SCIP_DECL_CONSDEACTIVE (consDeactiveSetppc) |
static | SCIP_DECL_CONSDELVARS (consDelvarsSetppc) |
static | SCIP_DECL_CONSPRINT (consPrintSetppc) |
static | SCIP_DECL_CONSCOPY (consCopySetppc) |
static | SCIP_DECL_CONSPARSE (consParseSetppc) |
static | SCIP_DECL_CONSGETVARS (consGetVarsSetppc) |
static | SCIP_DECL_CONSGETNVARS (consGetNVarsSetppc) |
static | SCIP_DECL_CONSGETPERMSYMGRAPH (consGetPermsymGraphSetppc) |
static | SCIP_DECL_CONSGETSIGNEDPERMSYMGRAPH (consGetSignedPermsymGraphSetppc) |
static | SCIP_DECL_EVENTEXEC (eventExecSetppc) |
static | SCIP_DECL_CONFLICTEXEC (conflictExecSetppc) |
SCIP_RETCODE | SCIPincludeConshdlrSetppc (SCIP *scip) |
SCIP_RETCODE | SCIPcreateConsSetpart (SCIP *scip, SCIP_CONS **cons, const char *name, int nvars, SCIP_VAR **vars, 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 | SCIPcreateConsBasicSetpart (SCIP *scip, SCIP_CONS **cons, const char *name, int nvars, SCIP_VAR **vars) |
SCIP_RETCODE | SCIPcreateConsSetpack (SCIP *scip, SCIP_CONS **cons, const char *name, int nvars, SCIP_VAR **vars, 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 | SCIPcreateConsBasicSetpack (SCIP *scip, SCIP_CONS **cons, const char *name, int nvars, SCIP_VAR **vars) |
SCIP_RETCODE | SCIPcreateConsSetcover (SCIP *scip, SCIP_CONS **cons, const char *name, int nvars, SCIP_VAR **vars, 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 | SCIPcreateConsBasicSetcover (SCIP *scip, SCIP_CONS **cons, const char *name, int nvars, SCIP_VAR **vars) |
SCIP_RETCODE | SCIPaddCoefSetppc (SCIP *scip, SCIP_CONS *cons, SCIP_VAR *var) |
int | SCIPgetNVarsSetppc (SCIP *scip, SCIP_CONS *cons) |
SCIP_VAR ** | SCIPgetVarsSetppc (SCIP *scip, SCIP_CONS *cons) |
SCIP_SETPPCTYPE | SCIPgetTypeSetppc (SCIP *scip, SCIP_CONS *cons) |
SCIP_Real | SCIPgetDualsolSetppc (SCIP *scip, SCIP_CONS *cons) |
SCIP_Real | SCIPgetDualfarkasSetppc (SCIP *scip, SCIP_CONS *cons) |
SCIP_ROW * | SCIPgetRowSetppc (SCIP *scip, SCIP_CONS *cons) |
int | SCIPgetNFixedonesSetppc (SCIP *scip, SCIP_CONS *cons) |
int | SCIPgetNFixedzerosSetppc (SCIP *scip, SCIP_CONS *cons) |
SCIP_RETCODE | SCIPcleanupConssSetppc (SCIP *scip, SCIP_Bool onlychecked, SCIP_Bool *infeasible, int *naddconss, int *ndelconss, int *nchgcoefs, int *nfixedvars) |
Macro Definition Documentation
◆ CONSHDLR_NAME
#define CONSHDLR_NAME "setppc" |
Definition at line 68 of file cons_setppc.c.
◆ CONSHDLR_DESC
#define CONSHDLR_DESC "set partitioning / packing / covering constraints" |
Definition at line 69 of file cons_setppc.c.
◆ CONSHDLR_SEPAPRIORITY
#define CONSHDLR_SEPAPRIORITY +700000 |
priority of the constraint handler for separation
Definition at line 70 of file cons_setppc.c.
◆ CONSHDLR_ENFOPRIORITY
#define CONSHDLR_ENFOPRIORITY -700000 |
priority of the constraint handler for constraint enforcing
Definition at line 71 of file cons_setppc.c.
◆ CONSHDLR_CHECKPRIORITY
#define CONSHDLR_CHECKPRIORITY -700000 |
priority of the constraint handler for checking feasibility
Definition at line 72 of file cons_setppc.c.
◆ CONSHDLR_SEPAFREQ
#define CONSHDLR_SEPAFREQ 0 |
frequency for separating cuts; zero means to separate only in the root node
Definition at line 73 of file cons_setppc.c.
◆ CONSHDLR_PROPFREQ
#define CONSHDLR_PROPFREQ 1 |
frequency for propagating domains; zero means only preprocessing propagation
Definition at line 74 of file cons_setppc.c.
◆ CONSHDLR_EAGERFREQ
#define CONSHDLR_EAGERFREQ 100 |
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 76 of file cons_setppc.c.
◆ CONSHDLR_MAXPREROUNDS
#define CONSHDLR_MAXPREROUNDS -1 |
maximal number of presolving rounds the constraint handler participates in (-1: no limit)
Definition at line 77 of file cons_setppc.c.
◆ CONSHDLR_DELAYSEPA
#define CONSHDLR_DELAYSEPA FALSE |
should separation method be delayed, if other separators found cuts?
Definition at line 78 of file cons_setppc.c.
◆ CONSHDLR_DELAYPROP
#define CONSHDLR_DELAYPROP FALSE |
should propagation method be delayed, if other propagators found reductions?
Definition at line 79 of file cons_setppc.c.
◆ CONSHDLR_NEEDSCONS
#define CONSHDLR_NEEDSCONS TRUE |
should the constraint handler be skipped, if no constraints are available?
Definition at line 80 of file cons_setppc.c.
◆ CONSHDLR_PRESOLTIMING
#define CONSHDLR_PRESOLTIMING SCIP_PRESOLTIMING_ALWAYS |
Definition at line 82 of file cons_setppc.c.
◆ CONSHDLR_PROP_TIMING
#define CONSHDLR_PROP_TIMING SCIP_PROPTIMING_BEFORELP |
Definition at line 83 of file cons_setppc.c.
◆ LINCONSUPGD_PRIORITY
#define LINCONSUPGD_PRIORITY +700000 |
priority of the constraint handler for upgrading of linear constraints
Definition at line 85 of file cons_setppc.c.
◆ NONLINCONSUPGD_PRIORITY
#define NONLINCONSUPGD_PRIORITY +700000 |
priority of the constraint handler for upgrading of nonlinear constraints
Definition at line 86 of file cons_setppc.c.
◆ EVENTHDLR_NAME
#define EVENTHDLR_NAME "setppc" |
Definition at line 88 of file cons_setppc.c.
◆ EVENTHDLR_DESC
#define EVENTHDLR_DESC "bound change event handler for set partitioning / packing / covering constraints" |
Definition at line 89 of file cons_setppc.c.
◆ CONFLICTHDLR_NAME
#define CONFLICTHDLR_NAME "setppc" |
Definition at line 91 of file cons_setppc.c.
◆ CONFLICTHDLR_DESC
#define CONFLICTHDLR_DESC "conflict handler creating set covering constraints" |
Definition at line 92 of file cons_setppc.c.
◆ CONFLICTHDLR_PRIORITY
#define CONFLICTHDLR_PRIORITY LINCONSUPGD_PRIORITY |
Definition at line 93 of file cons_setppc.c.
◆ DEFAULT_PRESOLPAIRWISE
#define DEFAULT_PRESOLPAIRWISE TRUE |
should pairwise constraint comparison be performed in presolving?
Definition at line 95 of file cons_setppc.c.
◆ HASHSIZE_SETPPCCONS
#define HASHSIZE_SETPPCCONS 500 |
minimal size of hash table in setppc constraint tables
Definition at line 97 of file cons_setppc.c.
◆ DEFAULT_PRESOLUSEHASHING
#define DEFAULT_PRESOLUSEHASHING TRUE |
should hash table be used for detecting redundant constraints in advance
Definition at line 98 of file cons_setppc.c.
◆ NMINCOMPARISONS
#define NMINCOMPARISONS 200000 |
number for minimal pairwise presolving comparisons
Definition at line 99 of file cons_setppc.c.
◆ MINGAINPERNMINCOMPARISONS
#define MINGAINPERNMINCOMPARISONS 1e-06 |
minimal gain per minimal pairwise presolving comparisons to repeat pairwise comparison round
Definition at line 100 of file cons_setppc.c.
◆ DEFAULT_RANDSEED
#define DEFAULT_RANDSEED 3 |
Definition at line 102 of file cons_setppc.c.
◆ DEFAULT_NPSEUDOBRANCHES
#define DEFAULT_NPSEUDOBRANCHES 2 |
number of children created in pseudo branching (0: disable branching)
Definition at line 110 of file cons_setppc.c.
◆ DEFAULT_DUALPRESOLVING
#define DEFAULT_DUALPRESOLVING TRUE |
should dual presolving steps be performed?
Definition at line 111 of file cons_setppc.c.
◆ DEFAULT_CLIQUELIFTING
#define DEFAULT_CLIQUELIFTING FALSE |
should we try to lift variables into other clique constraints, fix variables, aggregate them, and also shrink the amount of variables in clique constraints
Definition at line 116 of file cons_setppc.c.
◆ DEFAULT_ADDVARIABLESASCLIQUES
#define DEFAULT_ADDVARIABLESASCLIQUES FALSE |
should we try to generate extra clique constraint out of all binary variables to hopefully fasten the detection of redundant clique constraints
Definition at line 119 of file cons_setppc.c.
◆ DEFAULT_CLIQUESHRINKING
#define DEFAULT_CLIQUESHRINKING TRUE |
should we try to shrink the number of variables in a clique constraints, by replacing more than one variable by only one
Definition at line 122 of file cons_setppc.c.
Function Documentation
◆ setppcCompare()
compares two active constraints of type set partitioning or set packing such that a "-1" is return if
- the first constraint is a set partitioning constraint and the second is a set packing or
- both constraints are set partitioning constraints and the second has more! variables than the first or
- both constraints are set packing constraints and the second has less! variables than the first a "0" is return if
- both constraint are of the same type and have the amount of variables or and a "1" is returned otherwise
- Parameters
-
cons1 first problem variable cons2 second problem variable
Definition at line 199 of file cons_setppc.c.
References NULL, SCIP_SETPPCTYPE_COVERING, SCIP_SETPPCTYPE_PACKING, SCIP_SETPPCTYPE_PARTITIONING, SCIPconsGetData(), and SCIPconsIsActive().
Referenced by SCIP_DECL_SORTPTRCOMP().
◆ SCIP_DECL_SORTPTRCOMP() [1/2]
|
static |
sort constraints first after type (partitioning before packing before covering) and second after number of variables such that the partitioning constraints have increasing number of variables and the packing constraints have decreasing number of variables
Definition at line 239 of file cons_setppc.c.
References setppcCompare().
◆ setppcCompare2()
compares two setppc constraints such that a "-1" is return if the first constraint is active and
- the second constraint is deleted
- the first constraint is a set partitioning constraint and the second is a set packing or
- both constraints are set partitioning constraints and the second has more! variables than the first or
- both constraints are set packing constraints and the second has less! variables than the first a "0" is return if
- both constraint are set-covering constraints
- both constraint are of the same type and have the amount of variables or and a "1" is returned otherwise
- Parameters
-
cons1 first problem variable cons2 second problem variable
Definition at line 255 of file cons_setppc.c.
References NULL, SCIP_SETPPCTYPE_COVERING, SCIP_SETPPCTYPE_PACKING, SCIP_SETPPCTYPE_PARTITIONING, SCIPconsGetData(), and SCIPconsIsDeleted().
Referenced by SCIP_DECL_SORTPTRCOMP().
◆ SCIP_DECL_SORTPTRCOMP() [2/2]
|
static |
sort constraints first after type (partitioning before packing before covering) and second after number of variables such that the partitioning constraints have increasing number of variables and the packing constraints have decreasing number of variables
Definition at line 304 of file cons_setppc.c.
References setppcCompare2().
◆ lockRounding()
|
static |
installs rounding locks for the given variable in the given setppc constraint
- Parameters
-
scip SCIP data structure cons setppc constraint var variable of constraint entry
Definition at line 312 of file cons_setppc.c.
References FALSE, NULL, SCIP_CALL, SCIP_INVALIDDATA, SCIP_OKAY, SCIP_SETPPCTYPE_COVERING, SCIP_SETPPCTYPE_PACKING, SCIP_SETPPCTYPE_PARTITIONING, SCIPconsGetData(), SCIPerrorMessage, SCIPlockVarCons(), and TRUE.
Referenced by addCoef(), and setSetppcType().
◆ unlockRounding()
|
static |
removes rounding locks for the given variable in the given setppc constraint
- Parameters
-
scip SCIP data structure cons setppc constraint var variable of constraint entry
Definition at line 344 of file cons_setppc.c.
References FALSE, NULL, SCIP_CALL, SCIP_INVALIDDATA, SCIP_OKAY, SCIP_SETPPCTYPE_COVERING, SCIP_SETPPCTYPE_PACKING, SCIP_SETPPCTYPE_PARTITIONING, SCIPconsGetData(), SCIPerrorMessage, SCIPunlockVarCons(), and TRUE.
Referenced by delCoefPos(), and setSetppcType().
◆ conshdlrdataCreate()
|
static |
creates constraint handler data for set partitioning / packing / covering constraint handler
- Parameters
-
scip SCIP data structure conshdlrdata pointer to store the constraint handler data eventhdlr event handler
Definition at line 376 of file cons_setppc.c.
References DEFAULT_NPSEUDOBRANCHES, DEFAULT_RANDSEED, NULL, SCIP_CALL, SCIP_OKAY, SCIPallocBlockMemory, SCIPcreateIntarray(), SCIPcreateRandom(), and TRUE.
Referenced by SCIPincludeConshdlrSetppc().
◆ conshdlrdataFree()
|
static |
frees constraint handler data for set partitioning / packing / covering constraint handler
- Parameters
-
scip SCIP data structure conshdlrdata pointer to the constraint handler data
Definition at line 405 of file cons_setppc.c.
References NULL, SCIP_CALL, SCIP_OKAY, SCIPfreeBlockMemory, SCIPfreeIntarray(), and SCIPfreeRandom().
Referenced by SCIP_DECL_CONSFREE().
◆ consdataEnsureVarsSize()
|
static |
ensures, that the vars array can store at least num entries
- Parameters
-
scip SCIP data structure consdata setppc constraint data num minimum number of entries to store
Definition at line 545 of file cons_setppc.c.
References NULL, SCIP_CALL, SCIP_OKAY, SCIPcalcMemGrowSize(), and SCIPreallocBlockMemoryArray.
Referenced by addCoef().
◆ consdataCreate()
|
static |
creates a set partitioning / packing / covering constraint data object
- Parameters
-
scip SCIP data structure consdata pointer to store the set partitioning / packing / covering constraint nvars number of variables in the constraint vars variables of the constraint setppctype type of constraint: set partitioning, packing, or covering constraint
Definition at line 569 of file cons_setppc.c.
References FALSE, NULL, SCIP_CALL, SCIP_OKAY, SCIP_VARSTATUS_MULTAGGR, SCIPallocBlockMemory, SCIPallocBufferArray, SCIPcaptureVar(), SCIPduplicateBlockMemoryArray, SCIPfreeBufferArray, SCIPgetTransformedVars(), SCIPisConsCompressionEnabled(), SCIPisTransformed(), SCIPvarGetLbGlobal(), SCIPvarGetProbvar(), SCIPvarGetStatus(), SCIPvarGetUbGlobal(), SCIPvarIsBinary(), and TRUE.
Referenced by consdataCreateTransformed(), and createConsSetppc().
◆ consdataCreateTransformed()
|
static |
creates a transformed set partitioning / packing / covering constraint data object
- Parameters
-
scip SCIP data structure consdata pointer to store the set partitioning / packing / covering constraint nvars number of variables in the constraint vars variables of the constraint setppctype type of constraint: set partitioning, packing, or covering constraint
Definition at line 686 of file cons_setppc.c.
References consdataCreate(), NULL, SCIP_CALL, SCIP_OKAY, and SCIPgetTransformedVars().
Referenced by createConsSetppc(), and SCIP_DECL_CONSTRANS().
◆ consdataFree()
|
static |
frees a set partitioning / packing / covering constraint data
- Parameters
-
scip SCIP data structure consdata pointer to store the set partitioning / packing / covering constraint
Definition at line 708 of file cons_setppc.c.
References NULL, SCIP_CALL, SCIP_OKAY, SCIPfreeBlockMemory, SCIPfreeBlockMemoryArrayNull, SCIPreleaseNlRow(), SCIPreleaseRow(), and SCIPreleaseVar().
Referenced by SCIP_DECL_CONSDELETE().
◆ consdataPrint()
|
static |
prints set partitioning / packing / covering constraint to file stream
- Parameters
-
scip SCIP data structure consdata set partitioning / packing / covering constraint data file output file (or NULL for standard output)
Definition at line 745 of file cons_setppc.c.
References NULL, SCIP_CALL, SCIP_ERROR, SCIP_OKAY, SCIP_SETPPCTYPE_COVERING, SCIP_SETPPCTYPE_PACKING, SCIP_SETPPCTYPE_PARTITIONING, SCIPerrorMessage, SCIPinfoMessage(), SCIPwriteVarsLinearsum(), and TRUE.
Referenced by SCIP_DECL_CONSPRINT().
◆ consdataGetSignature()
|
static |
returns the bit signature of the given constraint data
- Parameters
-
consdata set partitioning / packing / covering constraint data
Definition at line 782 of file cons_setppc.c.
References NULL, SCIPhashSignature64, SCIPvarGetIndex(), and TRUE.
Referenced by removeRedundantConstraints().
◆ consdataSort()
|
static |
sorts setppc constraint's variables by non-decreasing variable index
- Parameters
-
consdata linear constraint data
Definition at line 803 of file cons_setppc.c.
References NULL, SCIPsortPtr(), SCIPvarCompare(), and TRUE.
Referenced by removeRedundantConstraints(), and SCIP_DECL_HASHKEYVAL().
◆ setSetppcType()
|
static |
changes the type of a setppc constraint
- Parameters
-
scip SCIP data structure cons setppc constraint setppctype new type of constraint
Definition at line 835 of file cons_setppc.c.
References FALSE, lockRounding(), NLOCKTYPES, NULL, SCIP_Bool, SCIP_CALL, SCIP_OKAY, SCIP_SETPPCTYPE_COVERING, SCIP_SETPPCTYPE_PARTITIONING, SCIPconsGetData(), SCIPconsGetHdlr(), SCIPconsGetName(), SCIPconshdlrGetData(), SCIPconsIsLockedType(), SCIPdebugMsg, SCIPisTransformed(), TRUE, and unlockRounding().
Referenced by detectRedundantConstraints(), processContainedCons(), removeDoubleAndSingletonsAndPerformDualpresolve(), and removeRedundantConstraints().
◆ catchEvent()
|
static |
catches events for variable at given position
- Parameters
-
scip SCIP data structure cons set partitioning / packing / covering constraint eventhdlr event handler to call for the event processing pos array position of variable to catch bound change events for
Definition at line 908 of file cons_setppc.c.
References FALSE, NULL, SCIP_CALL, SCIP_EVENTTYPE_BOUNDCHANGED, SCIP_EVENTTYPE_VARDELETED, SCIP_EVENTTYPE_VARFIXED, SCIP_OKAY, SCIP_STAGE_INITSOLVE, SCIPcatchVarEvent(), SCIPconsGetData(), SCIPconsIsActive(), SCIPgetStage(), SCIPisEQ(), SCIPmarkConsPropagate(), SCIPvarGetLbLocal(), and SCIPvarGetUbLocal().
Referenced by addCoef(), and catchAllEvents().
◆ dropEvent()
|
static |
drops events for variable at given position
- Parameters
-
scip SCIP data structure cons set partitioning / packing / covering constraint eventhdlr event handler to call for the event processing pos array position of variable to catch bound change events for
Definition at line 978 of file cons_setppc.c.
References NULL, SCIP_CALL, SCIP_EVENTTYPE_BOUNDCHANGED, SCIP_EVENTTYPE_VARDELETED, SCIP_EVENTTYPE_VARFIXED, SCIP_OKAY, SCIPconsGetData(), SCIPdropVarEvent(), SCIPisEQ(), SCIPvarGetLbLocal(), and SCIPvarGetUbLocal().
Referenced by delCoefPos(), and dropAllEvents().
◆ catchAllEvents()
|
static |
catches bound change events for all variables in transformed setppc constraint
- Parameters
-
scip SCIP data structure cons set partitioning / packing / covering constraint eventhdlr event handler to call for the event processing
Definition at line 1014 of file cons_setppc.c.
References catchEvent(), NULL, SCIP_CALL, SCIP_OKAY, SCIPconsGetData(), and TRUE.
Referenced by createConsSetppc(), and SCIP_DECL_CONSTRANS().
◆ dropAllEvents()
|
static |
drops bound change events for all variables in transformed setppc constraint
- Parameters
-
scip SCIP data structure cons set partitioning / packing / covering constraint eventhdlr event handler to call for the event processing
Definition at line 1042 of file cons_setppc.c.
References dropEvent(), FALSE, NULL, SCIP_CALL, SCIP_OKAY, and SCIPconsGetData().
Referenced by SCIP_DECL_CONSDEACTIVE(), and SCIP_DECL_CONSDELETE().
◆ addCoef()
|
static |
adds coefficient in setppc constraint
- Parameters
-
scip SCIP data structure cons setppc constraint var variable to add to the constraint
Definition at line 1070 of file cons_setppc.c.
References catchEvent(), consdataEnsureVarsSize(), FALSE, lockRounding(), NULL, SCIP_Bool, SCIP_CALL, SCIP_OKAY, SCIP_VARSTATUS_MULTAGGR, SCIPaddVarToRow(), SCIPcaptureVar(), SCIPconsGetData(), SCIPconsGetHdlr(), SCIPconshdlrGetData(), SCIPconsIsActive(), SCIPconsIsTransformed(), SCIPgetTransformedVar(), SCIPhashSignature64, SCIPvarGetIndex(), SCIPvarGetProbvar(), SCIPvarGetStatus(), SCIPvarIsTransformed(), and TRUE.
Referenced by addExtraCliques(), applyFixings(), checkForOverlapping(), liftCliqueVariables(), and SCIPaddCoefSetppc().
◆ delCoefPos()
|
static |
deletes coefficient at given position from setppc constraint data
- Parameters
-
scip SCIP data structure cons set partitioning / packing / covering constraint pos position of coefficient to delete
Definition at line 1154 of file cons_setppc.c.
References dropEvent(), FALSE, NULL, SCIP_CALL, SCIP_OKAY, SCIPaddVarToRow(), SCIPconsGetData(), SCIPconsGetHdlr(), SCIPconshdlrGetData(), SCIPconsIsTransformed(), SCIPreleaseVar(), SCIPvarIsTransformed(), TRUE, and unlockRounding().
Referenced by applyFixings(), checkForOverlapping(), mergeMultiples(), performVarDeletions(), and removeDoubleAndSingletonsAndPerformDualpresolve().
◆ dualPresolving()
|
static |
preform dual presolving
In case a part (more than one variable) in the setppc constraint is independent of everything else (is locked only by this constraint), we can perform dual reductions:
(1) set covering
- fix all independent variables with negative object coefficient to one - fix all remaining independent variables to zero (i) all variables are independent and the constraint is not modifiable - fix the variable with the smallest object coefficient to one
(ii) a variable x has exactly 0 uplocks and arbitrary downlocks and a variable y has exactly 1 downlock and arbitrary uplocks and obj(x) <= obj(y) and obj(y) >= 0
- fix y to 0, because it is dominated by x
(2) set partitioning
(i) all variables are independent and the constraint is not modifiable - fix the variable with the smallest object coefficient to one - fix all remaining independent variables to zero
(ii) a variable x has exactly 1 uplock and arbitrary downlocks and a variable y has exactly 1 downlock and arbitrary uplocks and obj(x) <= obj(y)
- fix y to 0, because it is dominated by x
(3) set packing
(i) all variables are independent and the constraint is not modifiable - fix the variable with the smallest object coefficient to one if the object coefficient is negative or zero - fix all remaining independent variables to zero
(ii) a variable x has exactly 1 uplock and arbitrary downlocks and a variable y has exactly 0 downlocks and arbitrary uplocks and obj(x) <= obj(y)
- fix y to 0, because it is dominated by x
Note: the following dual reduction for set covering and set packing constraints is already performed by the presolver "dualfix" (1) in case of a set covering constraint the following dual reduction can be performed:
- if a variable in a set covering constraint is only locked by that constraint and has negative or zero objective coefficient than it can be fixed to one (2) in case of a set packing constraint the following dual reduction can be performed:
- if a variable in a set packing constraint is only locked by that constraint and has positive or zero objective coefficient than it can be fixed to zero
Note: all dual reduction (ii) could also be performed by the "domcol" presolver, but because the pairwise comparison of columns is only done heuristically (and here it should be even cheaper) we perform them here (too).
Moreover, if there exists a variable that is only locked by a covering or packing constraint with two variables, one can aggregate variables.
- Parameters
-
scip SCIP data structure cons setppc constraint nfixedvars pointer to count number of fixings ndelconss pointer to count number of deleted constraints naggrvars pointer to count number of variables aggregated result pointer to store the result SCIP_SUCCESS, if presolving was performed
Definition at line 1284 of file cons_setppc.c.
References FALSE, NULL, SCIP_Bool, SCIP_CALL, SCIP_INVALID, SCIP_INVALIDDATA, SCIP_LOCKTYPE_MODEL, SCIP_OKAY, SCIP_Real, SCIP_SETPPCTYPE_COVERING, SCIP_SETPPCTYPE_PACKING, SCIP_SETPPCTYPE_PARTITIONING, SCIP_SUCCESS, SCIPABORT, SCIPaggregateVars(), SCIPconsGetData(), SCIPconsIsActive(), SCIPconsIsChecked(), SCIPconsIsModifiable(), SCIPdebug, SCIPdebugMsg, SCIPdelCons(), SCIPerrorMessage, SCIPfixVar(), SCIPinfinity(), SCIPinfoMessage(), SCIPprintCons(), SCIPvarGetLbGlobal(), SCIPvarGetName(), SCIPvarGetNLocksDownType(), SCIPvarGetNLocksUpType(), SCIPvarGetObj(), SCIPvarGetProbvarBinary(), SCIPvarGetUbGlobal(), and SCIPvarIsActive().
Referenced by SCIP_DECL_CONSPRESOL().
◆ mergeMultiples()
|
static |
find pairs of negated variables in constraint: partitioning/packing: all other variables must be zero, constraint is redundant covering: constraint is redundant
find sets of equal variables in constraint: partitioning/packing: variable must be zero covering: multiple entries of variable can be replaced by single entry
- Parameters
-
scip SCIP data structure cons knapsack constraint nfixedvars pointer to store number of fixed variables ndelconss pointer to store number of deleted constraints nchgcoefs pointer to store number of changed coefficients cutoff pointer to store whether a fixing leads to a cutoff
Definition at line 1631 of file cons_setppc.c.
References delCoefPos(), FALSE, NULL, SCIP_Bool, SCIP_CALL, SCIP_OKAY, SCIP_SETPPCTYPE_COVERING, SCIP_SETPPCTYPE_PACKING, SCIP_SETPPCTYPE_PARTITIONING, SCIP_VARSTATUS_FIXED, SCIP_VARSTATUS_NEGATED, SCIPconsGetData(), SCIPconsGetName(), SCIPconsIsDeleted(), SCIPdebugMsg, SCIPdelCons(), SCIPfixVar(), SCIPsortPtr(), SCIPvarGetName(), SCIPvarGetNegatedVar(), SCIPvarGetStatus(), SCIPvarIsActive(), SCIPvarIsBinary(), and TRUE.
Referenced by addExtraCliques(), collectCliqueConss(), removeDoubleAndSingletonsAndPerformDualpresolve(), SCIP_DECL_CONSPRESOL(), and SCIPcleanupConssSetppc().
◆ applyFixings()
|
static |
deletes all zero-fixed variables and replace aggregated variables
- Parameters
-
scip SCIP data structure cons set partitioning / packing / covering constraint naddconss pointer to count number of added constraints, or NULL indicating we can not resolve multi-aggregations ndelconss pointer to count number of deleted constraints, or NULL indicating we can not resolve multi-aggregations nfixedvars pointer to store number of fixed variables, or NULL indicating we can not resolve multi-aggregations cutoff pointer to store whether a fixing leads to a cutoff, or NULL indicating we can not resolve multi-aggregations
Definition at line 1775 of file cons_setppc.c.
References addCoef(), delCoefPos(), FALSE, MAX, NULL, SCIP_Bool, SCIP_CALL, SCIP_MAXSTRLEN, SCIP_OKAY, SCIP_Real, SCIP_SETPPCTYPE_COVERING, SCIP_SETPPCTYPE_PACKING, SCIP_SETPPCTYPE_PARTITIONING, SCIP_VARSTATUS_MULTAGGR, SCIP_VARSTATUS_NEGATED, SCIPaddCons(), SCIPallocBufferArray, SCIPconsGetData(), SCIPconsGetName(), SCIPconsIsAdded(), SCIPconsIsChecked(), SCIPconsIsDynamic(), SCIPconsIsEnforced(), SCIPconsIsInitial(), SCIPconsIsLocal(), SCIPconsIsModifiable(), SCIPconsIsPropagated(), SCIPconsIsRemovable(), SCIPconsIsSeparated(), SCIPconsIsStickingAtNode(), SCIPcreateConsLinear(), SCIPdebugMsg, SCIPdebugPrintCons, SCIPdelCons(), SCIPfixVar(), SCIPfreeBufferArray, SCIPgetBinvarRepresentative(), SCIPgetProbvarLinearSum(), SCIPinfinity(), SCIPisEQ(), SCIPisFeasEQ(), SCIPisZero(), SCIPreallocBufferArray, SCIPreleaseCons(), SCIPsnprintf(), SCIPvarGetLbGlobal(), SCIPvarGetName(), SCIPvarGetNegatedVar(), SCIPvarGetNegationVar(), SCIPvarGetProbvar(), SCIPvarGetStatus(), SCIPvarGetUbGlobal(), SCIPvarIsActive(), SCIPvarIsBinary(), SCIPwarningMessage(), and TRUE.
Referenced by addCliques(), collectCliqueConss(), removeDoubleAndSingletonsAndPerformDualpresolve(), SCIP_DECL_CONSEXITPRE(), SCIP_DECL_CONSPRESOL(), SCIP_DECL_CONSPROP(), and SCIPcleanupConssSetppc().
◆ analyzeConflictZero()
|
static |
analyzes conflicting assignment on given constraint where all of the variables where assigned to zero, and adds conflict constraint to problem
- Parameters
-
scip SCIP data structure cons set partitioning / packing / covering constraint that detected the conflict
Definition at line 2082 of file cons_setppc.c.
References FALSE, NULL, SCIP_CALL, SCIP_CONFTYPE_PROPAGATION, SCIP_OKAY, SCIP_SETPPCTYPE_COVERING, SCIP_SETPPCTYPE_PARTITIONING, SCIP_STAGE_SOLVING, SCIPaddConflictBinvar(), SCIPanalyzeConflictCons(), SCIPconsGetData(), SCIPgetStage(), SCIPinitConflictAnalysis(), SCIPinProbing(), and SCIPisConflictAnalysisApplicable().
Referenced by processFixings().
◆ analyzeConflictOne()
|
static |
analyzes conflicting assignment on given constraint where two of the variables where assigned to one, and adds conflict constraint to problem
- Parameters
-
scip SCIP data structure cons set partitioning / packing / covering constraint that detected the conflict
Definition at line 2117 of file cons_setppc.c.
References FALSE, NULL, SCIP_CALL, SCIP_CONFTYPE_PROPAGATION, SCIP_OKAY, SCIP_SETPPCTYPE_PACKING, SCIP_SETPPCTYPE_PARTITIONING, SCIP_STAGE_SOLVING, SCIPaddConflictBinvar(), SCIPanalyzeConflictCons(), SCIPconsGetData(), SCIPgetStage(), SCIPinitConflictAnalysis(), SCIPinProbing(), SCIPisConflictAnalysisApplicable(), and SCIPvarGetLbLocal().
Referenced by processFixings().
◆ processFixings()
|
static |
checks constraint for violation only looking at the fixed variables, applies further fixings if possible
- Parameters
-
scip SCIP data structure cons set partitioning / packing / covering constraint to be processed cutoff pointer to store TRUE, if the node can be cut off nfixedvars pointer to count number of deleted variables addcut pointer to store whether this constraint must be added as a cut mustcheck pointer to store whether this constraint must be checked for feasibility
Definition at line 2157 of file cons_setppc.c.
References analyzeConflictOne(), analyzeConflictZero(), CONSHDLR_NAME, FALSE, NULL, SCIP_Bool, SCIP_CALL, SCIP_OKAY, SCIP_SETPPCTYPE_COVERING, SCIP_SETPPCTYPE_PACKING, SCIPconsGetData(), SCIPconsGetHdlr(), SCIPconsGetName(), SCIPconshdlrGetName(), SCIPconsIsModifiable(), SCIPdebugMsg, SCIPdelConsLocal(), SCIPinferBinvarCons(), SCIPisFeasEQ(), SCIPisFeasZero(), SCIPresetConsAge(), SCIPvarGetLbLocal(), SCIPvarGetName(), SCIPvarGetUbLocal(), and TRUE.
Referenced by collectCliqueConss(), enforcePseudo(), removeDoubleAndSingletonsAndPerformDualpresolve(), SCIP_DECL_CONSPROP(), and separateCons().
◆ checkCons()
|
static |
checks constraint for violation, returns TRUE iff constraint is feasible
- Parameters
-
scip SCIP data structure consdata set partitioning / packing / covering constraint to be checked sol primal CIP solution
Definition at line 2393 of file cons_setppc.c.
References FALSE, NULL, REALABS, SCIP_Bool, SCIP_Real, SCIP_SETPPCTYPE_COVERING, SCIP_SETPPCTYPE_PACKING, SCIP_SETPPCTYPE_PARTITIONING, SCIPABORT, SCIPerrorMessage, SCIPfeastol(), SCIPgetSolVal(), SCIPisFeasEQ(), SCIPisFeasGE(), SCIPisFeasLE(), SCIPrelDiff(), SCIPupdateSolLPConsViolation(), and SCIPvarIsBinary().
Referenced by enforcePseudo(), SCIP_DECL_CONSCHECK(), and separateCons().
◆ createRow()
|
static |
creates an LP row in a set partitioning / packing / covering constraint data object
- Parameters
-
scip SCIP data structure cons set partitioning / packing / covering constraint
Definition at line 2458 of file cons_setppc.c.
References NULL, SCIP_CALL, SCIP_INVALIDDATA, SCIP_OKAY, SCIP_Real, SCIP_SETPPCTYPE_COVERING, SCIP_SETPPCTYPE_PACKING, SCIP_SETPPCTYPE_PARTITIONING, SCIPaddVarsToRowSameCoef(), SCIPconsGetData(), SCIPconsGetName(), SCIPconsIsLocal(), SCIPconsIsModifiable(), SCIPconsIsRemovable(), SCIPcreateEmptyRowCons(), SCIPerrorMessage, and SCIPinfinity().
Referenced by addCut().
◆ addCut()
|
static |
adds setppc constraint as cut to the LP
- Parameters
-
scip SCIP data structure cons setppc constraint cutoff whether a cutoff has been detected
Definition at line 2500 of file cons_setppc.c.
References createRow(), FALSE, NULL, SCIP_CALL, SCIP_OKAY, SCIPaddRow(), SCIPconsGetData(), SCIPconsGetName(), SCIPdebugMsg, and SCIProwIsInLP().
Referenced by SCIP_DECL_CONSINITLP(), and separateCons().
◆ addNlrow()
|
static |
adds setppc constraint as row to the NLP, if not added yet
- Parameters
-
scip SCIP data structure cons setppc constraint
Definition at line 2533 of file cons_setppc.c.
References NULL, SCIP_CALL, SCIP_ERROR, SCIP_EXPRCURV_LINEAR, SCIP_OKAY, SCIP_Real, SCIP_SETPPCTYPE_COVERING, SCIP_SETPPCTYPE_PACKING, SCIP_SETPPCTYPE_PARTITIONING, SCIPaddNlRow(), SCIPallocBufferArray, SCIPconsGetData(), SCIPconsGetName(), SCIPconsIsActive(), SCIPconsIsChecked(), SCIPconsIsLocal(), SCIPcreateNlRow(), SCIPerrorMessage, SCIPfreeBufferArray, SCIPgetTypeSetppc(), SCIPinfinity(), SCIPisNLPConstructed(), and SCIPnlrowIsInNLP().
Referenced by SCIP_DECL_CONSACTIVE(), and SCIP_DECL_CONSINITSOL().
◆ separateCons()
|
static |
checks constraint for violation, and adds it as a cut if possible
- Parameters
-
scip SCIP data structure cons set partitioning / packing / covering constraint to be separated sol primal CIP solution, NULL for current LP solution lpfeas is the given solution feasible for the current LP ? cutoff pointer to store TRUE, if the node can be cut off separated pointer to store TRUE, if a cut was found reduceddom pointer to store TRUE, if a domain reduction was found
Definition at line 2598 of file cons_setppc.c.
References addCut(), checkCons(), CONSHDLR_NAME, FALSE, NULL, processFixings(), SCIP_Bool, SCIP_CALL, SCIP_OKAY, SCIP_Real, SCIPconsGetData(), SCIPconsGetHdlr(), SCIPconsGetName(), SCIPconshdlrGetName(), SCIPdebugMsg, SCIPgetRowSolFeasibility(), SCIPincConsAge(), SCIPisFeasNegative(), SCIPresetConsAge(), SCIProwIsInLP(), and TRUE.
Referenced by enforceConstraint(), SCIP_DECL_CONSSEPALP(), and SCIP_DECL_CONSSEPASOL().
◆ enforcePseudo()
|
static |
enforces the pseudo solution on the given constraint
- Parameters
-
scip SCIP data structure cons set partitioning / packing / covering constraint to be separated cutoff pointer to store TRUE, if the node can be cut off infeasible pointer to store TRUE, if the constraint was infeasible reduceddom pointer to store TRUE, if a domain reduction was found solvelp pointer to store TRUE, if the LP has to be solved
Definition at line 2684 of file cons_setppc.c.
References checkCons(), CONSHDLR_NAME, NULL, processFixings(), SCIP_Bool, SCIP_CALL, SCIP_OKAY, SCIPconsGetData(), SCIPconsGetHdlr(), SCIPconshdlrGetName(), SCIPhasCurrentNodeLP(), SCIPincConsAge(), SCIPresetConsAge(), and TRUE.
Referenced by SCIP_DECL_CONSENFOPS().
◆ SCIP_DECL_HASHGETKEY()
|
static |
gets the key of the given element
Definition at line 2745 of file cons_setppc.c.
◆ SCIP_DECL_HASHKEYEQ()
|
static |
returns TRUE iff both keys are equal; two constraints are equal if they have the same variables
Definition at line 2753 of file cons_setppc.c.
References FALSE, NULL, SCIP_Bool, SCIPconsGetData(), SCIPvarCompare(), and TRUE.
◆ SCIP_DECL_HASHKEYVAL()
|
static |
returns the hash value of the key
Definition at line 2796 of file cons_setppc.c.
References consdataSort(), NULL, SCIPconsGetData(), SCIPhashFour, and SCIPvarGetIndex().
◆ addExtraCliques()
|
static |
add extra clique-constraints resulting from a given cliquepartition to SCIP
- Parameters
-
scip SCIP data structure binvars binary variables to create clique constraints nbinvars number of binary variables to create clique constraints cliquepartition clique partition of binary variables ncliques number of cliques in cliquepartition usefulconss storage for created constraints nusefulconss pointer to store number of useful created constraints nrounds actual presolving round nfixedvars pointer to count number of deleted variables naddconss pointer to count number of added constraints ndelconss pointer to count number of deleted constraints nchgcoefs pointer to count number of deleted coefficients cutoff pointer to store if the problem is infeasible due to a fixing
Definition at line 2826 of file cons_setppc.c.
References addCoef(), FALSE, mergeMultiples(), NULL, SCIP_CALL, SCIP_MAXSTRLEN, SCIP_OKAY, SCIPaddCons(), SCIPconsGetData(), SCIPconsIsDeleted(), SCIPcreateConsSetpack(), SCIPdebugMsg, SCIPdebugPrintCons, SCIPreleaseCons(), SCIPsnprintf(), and TRUE.
Referenced by preprocessCliques().
◆ collectCliqueConss()
|
static |
start to collect setpartitioning and setpacking constraints, and try to remove fixed variables and merged these constraints
- Parameters
-
scip SCIP data structure conss constraint set nconss number of constraints in constraint set usefulconss storage for created constraints nusefulconss pointer to store number of useful created constraints nfixedvars pointer to count number of deleted variables ndelconss pointer to count number of deleted constraints nchgcoefs pointer to count number of deleted coefficients cutoff pointer to store if the problem is infeasible due to a fixing
Definition at line 2946 of file cons_setppc.c.
References applyFixings(), mergeMultiples(), NULL, processFixings(), SCIP_Bool, SCIP_CALL, SCIP_OKAY, SCIP_SETPPCTYPE_COVERING, SCIP_SETPPCTYPE_PACKING, SCIP_SETPPCTYPE_PARTITIONING, SCIPconsGetData(), SCIPconsIsActive(), SCIPconsIsDeleted(), and SCIPconsIsModifiable().
Referenced by preprocessCliques().
◆ collectCliqueData()
|
static |
creating all necessary data in array structure, collect all clique constraint variables and occurrences,
- Note
- works only with merged and active not set-covering constraints
- Parameters
-
scip SCIP data structure usefulconss clique constraints nusefulconss number of clique constraints usefulvars storage for all found variables nusefulvars pointer to store number of added variables vartoindex hashmap mapping variables to indices varnconss storage for remembering the number of constraints a variable occurs maxnvarconsidx storage for the maximal number of occurrences of a variable varconsidxs storage for constraint indices in which the corresponding variable exists maxnvars pointer to store maximal number of variables of a constraint
Definition at line 3038 of file cons_setppc.c.
References NULL, SCIP_CALL, SCIP_LOCKTYPE_MODEL, SCIP_OKAY, SCIP_SETPPCTYPE_PACKING, SCIP_SETPPCTYPE_PARTITIONING, SCIPallocBufferArray, SCIPcalcMemGrowSize(), SCIPconsGetData(), SCIPconsIsActive(), SCIPhashmapExists(), SCIPhashmapGetImageInt(), SCIPhashmapInsertInt(), SCIPreallocBufferArray, SCIPvarGetLbLocal(), SCIPvarGetNegatedVar(), SCIPvarGetNegationVar(), SCIPvarGetNLocksDownType(), SCIPvarGetNLocksUpType(), SCIPvarGetUbLocal(), SCIPvarIsActive(), and SCIPvarIsNegated().
Referenced by preprocessCliques().
◆ deleteCliqueDataEntry()
|
static |
correct clique data due to an aggregation
- Parameters
-
var variable which appears less considx constraint index which to remove vartoindex hashmap mapping variables to indices varnconss storage for remembering the number of constraints a variable occurs varconsidxs storage for constraint indices in which the corresponding variable exists
Definition at line 3146 of file cons_setppc.c.
References FALSE, NULL, SCIP_Bool, SCIPhashmapExists(), SCIPhashmapGetImageInt(), SCIPvarGetLbLocal(), SCIPvarGetUbLocal(), and TRUE.
Referenced by checkForOverlapping().
◆ addCliqueDataEntry()
|
static |
- Parameters
-
scip SCIP data structure addvar variable which was added considx constraint index which to add maybenew could be a new variables, a negated of an already existing usefulvars storage for all found variables nusefulvars pointer to store number of added variables vartoindex hashmap mapping variables to indices varnconss storage for remembering the number of constraints a variable occurs maxnvarconsidx storage for the maximal number of occurrences of a variable varconsidxs storage for constraint indices in which the corresponding variable exists
Definition at line 3188 of file cons_setppc.c.
References NULL, SCIP_CALL, SCIP_OKAY, SCIPallocBufferArray, SCIPcalcMemGrowSize(), SCIPhashmapExists(), SCIPhashmapGetImageInt(), SCIPhashmapInsertInt(), SCIPreallocBufferArray, SCIPsortedvecInsertDownPtr(), SCIPvarGetLbLocal(), SCIPvarGetNegatedVar(), SCIPvarGetUbLocal(), SCIPvarIsActive(), and SCIPvarIsNegated().
Referenced by checkForOverlapping(), and liftCliqueVariables().
◆ presolvePropagateCons()
|
static |
check if constraint is already redundant or infeasible due to fixings, fix or aggregate left over variables if possible
- Parameters
-
scip SCIP data structure cons constraint aggregate try to aggregate if possible undoneaggrvars array to store aggregation variables, if aggregation is not performed yet; both variables are standing next to each other; or NULL if aggregate == TRUE undoneaggrtypes array to store aggregation type, if aggregation is not performed yet; type FALSE means the aggregation is of the form x + y = 1; type TRUE means the aggregation is of the form x = y; or NULL if aggregate == TRUE naggregations pointer to store number of aggregations which are not yet performed; or NULL if aggregate == TRUE saggregations pointer to store size of the array for aggregation type and two times the value is the size of the array for the aggregation variables which are not yet performed; or NULL if aggregate == TRUE nfixedvars pointer to count number of deleted variables naggrvars pointer to count number of aggregated variables ndelconss pointer to count number of deleted constraints cutoff pointer to store if the problem is infeasible due to a fixing
Definition at line 3257 of file cons_setppc.c.
References BMSclearMemoryArray, FALSE, NULL, SCIP_Bool, SCIP_CALL, SCIP_OKAY, SCIP_SETPPCTYPE_COVERING, SCIP_SETPPCTYPE_PACKING, SCIP_SETPPCTYPE_PARTITIONING, SCIPaggregateVars(), SCIPcalcMemGrowSize(), SCIPconsGetData(), SCIPconsGetHdlr(), SCIPconsGetName(), SCIPconshdlrGetData(), SCIPconsIsActive(), SCIPconsIsModifiable(), SCIPdebugMsg, SCIPdelCons(), SCIPdoNotAggr(), SCIPfixVar(), SCIPreallocBufferArray, SCIPvarGetLbLocal(), SCIPvarGetName(), SCIPvarGetUbLocal(), and TRUE.
Referenced by checkForOverlapping(), preprocessCliques(), and SCIP_DECL_CONSPRESOL().
◆ checkForOverlapping()
|
static |
check for overlapping constraint
- Parameters
-
scip SCIP data structure cons constraint which may overlap considx constraint index to avoid checking against itself endidx end index to check against given constraint usefulconss clique constraints nusefulconss number of clique constraints usefulvars storage for all found variables nusefulvars pointer to store number of added variables vartoindex hashmap mapping variables to indices varnconss storage for remembering the number of constraints a variable occurs maxnvarconsidx storage for the maximal number of occurrences of a variable varconsidxs storage for constraint indices in which the corresponding variable exists countofoverlapping the amount of variables of cons which overlap in all other constraint shrinking try to replace some variables with one variable chgcons pointer to store if the given constraint was changed, due to added/deleted variables undoneaggrvars array to store aggregation variables, if aggregation is not performed yet; both variables are standing next to each other; undoneaggrtypes array to store aggregation type, if aggregation is not performed yet; type FALSE means the aggregation is of the form x + y = 1; type TRUE means the aggregation is of the form x = y; naggregations pointer to store number of aggregations which are not yet performed; saggregations pointer to store size of the array for aggregation type and two times the value is the size of the array for the aggregation variables which are not yet performed; nfixedvars pointer to count number of deleted variables naggrvars pointer to count number of aggregated variables nchgcoefs pointer to count number of changed coefficients ndelconss pointer to count number of deleted constraints cutoff pointer to store if the problem is infeasible due to a fixing
Definition at line 3600 of file cons_setppc.c.
References addCliqueDataEntry(), addCoef(), BMSclearMemoryArray, delCoefPos(), deleteCliqueDataEntry(), FALSE, NULL, presolvePropagateCons(), SCIP_Bool, SCIP_CALL, SCIP_OKAY, SCIP_SETPPCTYPE_PACKING, SCIP_SETPPCTYPE_PARTITIONING, SCIP_VARSTATUS_NEGATED, SCIPcalcMemGrowSize(), SCIPconsGetData(), SCIPconsGetName(), SCIPconsIsActive(), SCIPdebugMsg, SCIPdelCons(), SCIPdoNotAggr(), SCIPfixVar(), SCIPgetNegatedVar(), SCIPreallocBufferArray, SCIPsortDownPtr(), SCIPupdateConsFlags(), SCIPvarGetIndex(), SCIPvarGetLbLocal(), SCIPvarGetName(), SCIPvarGetNegationVar(), SCIPvarGetStatus(), SCIPvarGetUbLocal(), SCIPvarIsActive(), and TRUE.
Referenced by preprocessCliques().
◆ liftCliqueVariables()
|
static |
try to lift variables to given constraint
- Parameters
-
scip SCIP data structure cons constraint which may overlap arraypos position of constraint in global array usefulvars possible variables to lift nusefulvars pointer to store number of added variables endidx end index for possible lifting variables cliquevalues pointer to clique values of constraint-variables, either one if the variable is active or zero if the variable is negated
- Note
- this array can be resized in this method
- Parameters
-
vartoindex hashmap mapping variables to indices varnconss array with number of constraints a variable occurs maxnvarconsidx array with the maximal number of occurrences of a variable varconsidxs array with constraint indices in which the corresponding variable exists maxnvars pointer to store maximal number of variables of a constraint nadded pointer to store number of possible added variables chgcons pointer to store if the constraint was changed, due to added variables nfixedvars pointer to count number of deleted variables ndelconss pointer to count number of deleted constraints cutoff pointer to store if the problem is infeasible due to a fixing
Definition at line 4466 of file cons_setppc.c.
References addCliqueDataEntry(), addCoef(), FALSE, NULL, SCIP_Bool, SCIP_CALL, SCIP_OKAY, SCIP_SETPPCTYPE_PARTITIONING, SCIP_VARSTATUS_NEGATED, SCIPconsGetData(), SCIPconsGetName(), SCIPconsIsActive(), SCIPdebugMsg, SCIPdelCons(), SCIPfixVar(), SCIPhashmapExists(), SCIPhaveVarsCommonClique(), SCIPreallocBufferArray, SCIPvarCompareActiveAndNegated(), SCIPvarGetIndex(), SCIPvarGetLbLocal(), SCIPvarGetName(), SCIPvarGetNegationVar(), SCIPvarGetStatus(), SCIPvarGetUbLocal(), SCIPvarIsActive(), SCIPvarsHaveCommonClique(), and TRUE.
Referenced by preprocessCliques().
◆ performAggregations()
|
static |
perform all collected aggregations
- Parameters
-
scip SCIP data structure conshdlrdata constraint handler data undoneaggrvars aggregation variables storage undoneaggrtypes aggregation type storage, type FALSE means the aggregation is of the form x + y = 1; type TRUE means the aggregation is of the form x = y; naggregations number of aggregations to performed naggrvars pointer to count number of aggregated variables cutoff pointer to store if the problem is infeasible due to a fixing
Definition at line 4940 of file cons_setppc.c.
References a, NULL, SCIP_Bool, SCIP_CALL, SCIP_OKAY, SCIPaggregateVars(), SCIPdebugMsg, and SCIPvarGetName().
Referenced by preprocessCliques().
◆ preprocessCliques()
|
static |
check whether we can combine or grow cliques so some constraints become redundant or we can fix variables
- Parameters
-
scip SCIP data structure conshdlrdata constraint handler data conss constraint set nconss number of constraints in constraint set nrounds actual presolving round firstchange pointer to store first changed constraint firstclique pointer to store first constraint to start adding clique again lastclique pointer to store last constraint to add cliques again nfixedvars pointer to count number of deleted variables naggrvars pointer to count number of aggregated variables ndelconss pointer to count number of deleted constraints nchgcoefs pointer to count number of deleted coefficients cutoff pointer to store if the problem is infeasible due to a fixing
Definition at line 5021 of file cons_setppc.c.
References addExtraCliques(), BMSclearMemoryArray, checkForOverlapping(), collectCliqueConss(), collectCliqueData(), FALSE, liftCliqueVariables(), MAX, MIN, NULL, performAggregations(), presolvePropagateCons(), SCIP_Bool, SCIP_CALL, SCIP_OKAY, SCIP_SETPPCTYPE_PARTITIONING, SCIP_VARSTATUS_NEGATED, SCIPallocBufferArray, SCIPblkmem(), SCIPcalcCliquePartition(), SCIPconsGetData(), SCIPconsIsActive(), SCIPdoNotAggr(), SCIPduplicateBufferArray, SCIPfreeBufferArray, SCIPfreeBufferArrayNull, SCIPgetNBinVars(), SCIPgetNVars(), SCIPgetVars(), SCIPhashmapCreate(), SCIPhashmapExists(), SCIPhashmapFree(), SCIPhashmapGetImageInt(), SCIPisStopped(), SCIPrandomPermuteArray(), SCIPreallocBufferArray, SCIPsortDownPtr(), SCIPsortedvecFindDownPtr(), SCIPvarGetLbLocal(), SCIPvarGetNegatedVar(), SCIPvarGetNegationVar(), SCIPvarGetStatus(), SCIPvarGetUbLocal(), SCIPvarIsActive(), SCIPvarIsNegated(), and TRUE.
Referenced by SCIP_DECL_CONSPRESOL().
◆ addCliques()
|
static |
add cliques to SCIP
- Parameters
-
scip SCIP data structure conss constraint set nconss number of constraints in constraint set firstclique first constraint to start to add cliques lastclique last constraint to start to add cliques naddconss pointer to count number of added constraints ndelconss pointer to count number of deleted constraints nchgbds pointer to count number of changed bounds cutoff pointer to store if the problem is infeasible due to a fixing
Definition at line 5465 of file cons_setppc.c.
References applyFixings(), FALSE, NULL, SCIP_Bool, SCIP_BOUNDTYPE_LOWER, SCIP_CALL, SCIP_OKAY, SCIP_SETPPCTYPE_PACKING, SCIP_SETPPCTYPE_PARTITIONING, SCIPaddClique(), SCIPaddVarImplication(), SCIPconsGetData(), SCIPconsIsActive(), SCIPconsIsDeleted(), SCIPconsIsModifiable(), and TRUE.
Referenced by SCIP_DECL_CONSPRESOL().
◆ multiAggregateBinvar()
|
static |
perform multi-aggregation on variables resulting from a set-partitioning/-packing constraint
- Parameters
-
scip SCIP data structure linearconshdlrexist does the linear constraint handler exist, necessary for multi-aggregations vars all variables including the variable to which will be multi-aggregated nvars number of all variables pos position of variable for multi-aggregation infeasible pointer to store infeasibility status of aggregation aggregated pointer to store aggregation status
Definition at line 5548 of file cons_setppc.c.
References FALSE, NULL, scalars, SCIP_Bool, SCIP_CALL, SCIP_LOCKTYPE_MODEL, SCIP_OKAY, SCIP_Real, SCIPaggregateVars(), SCIPallocBufferArray, SCIPdebugMsg, SCIPduplicateBufferArray, SCIPfreeBufferArray, SCIPmultiaggregateVar(), SCIPvarGetName(), SCIPvarGetNLocksDownType(), and SCIPvarGetNLocksUpType().
Referenced by removeDoubleAndSingletonsAndPerformDualpresolve().
◆ removeDoubleAndSingletonsAndPerformDualpresolve()
|
static |
determine singleton variables in set-partitioning/-packing constraints, or doubleton variables (active and negated) in any combination of set-partitioning and set-packing constraints
we can multi-aggregate the variable and either change the set-partitioning constraint to a set-packing constraint or even delete it
- c1: x + y + z = 1, uplocks(x) = 1, downlocks(x) = 1 => x = 1 - y - z and change c1 to y + z <= 1
- c2: x + y + z <= 1, uplocks(x) = 1, downlocks(x) = 0, obj(x) < 0 => x = 1 - y - z and change c2 to y + z <= 1
- d1: x + y + z <= 1 and d2: ~x + u + v <= 1, uplocks(x) = 1, downlocks(x) = 1 a) obj(x) <= 0 => x = 1 - y - z and delete d1 b) obj(x) > 0 => ~x = 1 - u - v and delete d2
- e1: x + y + z == 1 and e2: ~x + u + v (<= or ==) 1, uplocks(x) = (1 or 2), downlocks(x) = 2 => x = 1 - y - z and delete e1
we can also aggregate a variable in a set-packing constraint with only two variables when the uplocks are equal to one and then delete this constraint
f1: x + y <= 1, uplocks(x) = 1, obj(x) <= 0 => x = 1 - y and delete f1
x + y + z = 1 ~x + u + v <=/= 1 ~x + w <= 1
- Parameters
-
scip SCIP data structure conss constraint set nconss number of constraints in constraint set dualpresolvingenabled is dual presolving enabled linearconshdlrexist does the linear constraint handler exist, necessary for multi-aggregations nfixedvars pointer to count number of deleted variables naggrvars pointer to count number of aggregated variables ndelconss pointer to count number of deleted constraints nchgcoefs pointer to count number of changed coefficients nchgsides pointer to count number of changed left hand sides cutoff pointer to store if a cut off was detected
Definition at line 5652 of file cons_setppc.c.
References applyFixings(), BMSclearMemoryArray, delCoefPos(), FALSE, mergeMultiples(), multiAggregateBinvar(), NULL, processFixings(), SCIP_Bool, SCIP_CALL, SCIP_LOCKTYPE_MODEL, SCIP_OKAY, SCIP_Real, SCIP_SETPPCTYPE_COVERING, SCIP_SETPPCTYPE_PACKING, SCIP_SETPPCTYPE_PARTITIONING, SCIP_VARSTATUS_COLUMN, SCIP_VARSTATUS_LOOSE, SCIP_VARSTATUS_NEGATED, SCIP_VARTYPE_CONTINUOUS, SCIPaggregateVars(), SCIPallocBufferArray, SCIPblkmem(), SCIPconsGetData(), SCIPconsGetName(), SCIPconsIsChecked(), SCIPconsIsDeleted(), SCIPconsIsModifiable(), SCIPdebugMsg, SCIPdebugPrintCons, SCIPdelCons(), SCIPdoNotAggr(), SCIPdoNotMultaggr(), SCIPduplicateBufferArray, SCIPfixVar(), SCIPfreeBufferArray, SCIPgetNBinVars(), SCIPgetNContVars(), SCIPgetNImplVars(), SCIPgetNIntVars(), SCIPgetNVars(), SCIPgetVars(), SCIPhashmapCreate(), SCIPhashmapExists(), SCIPhashmapFree(), SCIPhashmapGetImageInt(), SCIPhashmapInsertInt(), SCIPhashmapRemove(), SCIPisNegative(), SCIPsortPtr(), SCIPvarGetAggregatedObj(), SCIPvarGetLbGlobal(), SCIPvarGetName(), SCIPvarGetNegatedVar(), SCIPvarGetNLocksDownType(), SCIPvarGetNLocksUpType(), SCIPvarGetObj(), SCIPvarGetStatus(), SCIPvarGetType(), SCIPvarIsBinary(), setSetppcType(), and TRUE.
Referenced by SCIP_DECL_CONSPRESOL().
◆ detectRedundantConstraints()
|
static |
compares each constraint with all other constraints for possible redundancy and removes or changes constraint accordingly; in contrast to removeRedundantConstraints(), it uses a hash table
- Parameters
-
scip SCIP data structure blkmem block memory conss constraint set nconss number of constraints in constraint set firstchange pointer to store first changed constraint ndelconss pointer to count number of deleted constraints nchgsides pointer to count number of changed left/right hand sides
Definition at line 6424 of file cons_setppc.c.
References HASHSIZE_SETPPCCONS, MAX, NULL, SCIP_CALL, SCIP_OKAY, SCIP_SETPPCTYPE_PARTITIONING, SCIPconsGetData(), SCIPconsGetName(), SCIPconsGetPos(), SCIPconsIsActive(), SCIPconsIsModifiable(), SCIPdebugMsg, SCIPdebugPrintCons, SCIPdelCons(), SCIPhashtableCreate(), SCIPhashtableFree(), SCIPhashtableInsert(), SCIPhashtableRetrieve(), SCIPupdateConsFlags(), and setSetppcType().
Referenced by SCIP_DECL_CONSPRESOL().
◆ removeRedundantCons()
|
static |
removes the redundant second constraint and updates the flags of the first one
- Parameters
-
scip SCIP data structure cons0 constraint that should stay cons1 constraint that should be deleted ndelconss pointer to count number of deleted constraints
Definition at line 6533 of file cons_setppc.c.
References NULL, SCIP_CALL, SCIP_OKAY, SCIPconsGetName(), SCIPdebugMsg, SCIPdebugPrintCons, SCIPdelCons(), and SCIPupdateConsFlags().
Referenced by processContainedCons(), and removeRedundantConstraints().
◆ fixAdditionalVars()
|
static |
for cons0 contained in cons1, fixes variables of cons1 that are not in cons0 to zero
- Parameters
-
scip SCIP data structure cons0 constraint that is contained in the other cons1 constraint that is a superset of the other cutoff pointer to store whether a cutoff was found nfixedvars pointer to count number of fixed variables
Definition at line 6559 of file cons_setppc.c.
References FALSE, NULL, SCIP_Bool, SCIP_CALL, SCIP_OKAY, SCIPconsGetData(), SCIPdebugMsg, SCIPfixVar(), SCIPvarGetIndex(), and SCIPvarGetName().
Referenced by processContainedCons().
◆ processContainedCons()
|
static |
applies reductions for cons0 being contained in cons1
- Parameters
-
scip SCIP data structure cons0 constraint that is contained in the other cons1 constraint that is a superset of the other cutoff pointer to store whether a cutoff was found nfixedvars pointer to count number of fixed variables ndelconss pointer to count number of deleted constraints nchgsides pointer to count number of changed left/right hand sides
Definition at line 6631 of file cons_setppc.c.
References FALSE, fixAdditionalVars(), NULL, removeRedundantCons(), SCIP_CALL, SCIP_INVALIDDATA, SCIP_OKAY, SCIP_SETPPCTYPE_COVERING, SCIP_SETPPCTYPE_PACKING, SCIP_SETPPCTYPE_PARTITIONING, SCIPconsGetData(), SCIPconsGetName(), SCIPerrorMessage, and setSetppcType().
Referenced by removeRedundantConstraints().
◆ removeRedundantConstraints()
|
static |
deletes redundant constraints
- Parameters
-
scip SCIP data structure conss constraint set firstchange first constraint that changed since last pair preprocessing round chkind index of constraint to check against all prior indices up to startind cutoff pointer to store whether a cutoff was found nfixedvars pointer to count number of fixed variables ndelconss pointer to count number of deleted constraints nchgsides pointer to count number of changed left/right hand sides
Definition at line 6747 of file cons_setppc.c.
References consdataGetSignature(), consdataSort(), FALSE, NULL, processContainedCons(), removeRedundantCons(), SCIP_Bool, SCIP_CALL, SCIP_OKAY, SCIP_SETPPCTYPE_COVERING, SCIP_SETPPCTYPE_PACKING, SCIP_SETPPCTYPE_PARTITIONING, SCIPconsGetData(), SCIPconsGetName(), SCIPconsIsActive(), SCIPconsIsModifiable(), SCIPdebugMsg, SCIPdebugPrintCons, SCIPvarGetIndex(), and setSetppcType().
Referenced by SCIP_DECL_CONSPRESOL().
◆ performVarDeletions()
|
static |
- Parameters
-
scip SCIP data structure conshdlr constraint handler conss array of constraints nconss number of constraints
Definition at line 6919 of file cons_setppc.c.
References CONSHDLR_NAME, delCoefPos(), FALSE, NULL, SCIP_CALL, SCIP_OKAY, SCIPconsGetData(), SCIPconshdlrGetName(), and SCIPvarIsDeleted().
Referenced by SCIP_DECL_CONSDELVARS().
◆ enforceConstraint()
|
static |
helper function to enforce constraints
- Parameters
-
scip SCIP data structure conshdlr constraint handler conss constraints to process nconss number of constraints nusefulconss number of useful (non-obsolete) constraints to process sol solution to enforce (NULL for the LP solution) result pointer to store the result of the enforcing call
Definition at line 6961 of file cons_setppc.c.
References CONSHDLR_NAME, FALSE, NULL, SCIP_Bool, SCIP_CALL, SCIP_CUTOFF, SCIP_FEASIBLE, SCIP_OKAY, SCIP_REDUCEDDOM, SCIP_SEPARATED, SCIPconshdlrGetName(), SCIPdebugMsg, separateCons(), and TRUE.
Referenced by SCIP_DECL_CONSENFOLP(), and SCIP_DECL_CONSENFORELAX().
◆ createConsSetppc()
|
static |
creates and captures a set partitioning / packing / covering constraint
- Parameters
-
scip SCIP data structure cons pointer to hold the created constraint name name of constraint nvars number of variables in the constraint vars array with variables of constraint entries setppctype type of constraint: set partitioning, packing, or covering constraint initial should the LP relaxation of constraint be in the initial LP? Usually set to TRUE. Set to FALSE for 'lazy constraints'. separate should the constraint be separated during LP processing? Usually set to TRUE. enforce should the constraint be enforced during node processing? TRUE for model constraints, FALSE for additional, redundant constraints. check should the constraint be checked for feasibility? TRUE for model constraints, FALSE for additional, redundant constraints. propagate should the constraint be propagated during node processing? Usually set to TRUE. local is constraint only valid locally? Usually set to FALSE. Has to be set to TRUE, e.g., for branching constraints. modifiable is constraint modifiable (subject to column generation)? Usually set to FALSE. In column generation applications, set to TRUE if pricing adds coefficients to this constraint. dynamic is constraint subject to aging? Usually set to FALSE. Set to TRUE for own cuts which are separated as constraints. removable should the relaxation be removed from the LP due to aging or cleanup? Usually set to FALSE. Set to TRUE for 'lazy constraints' and 'user cuts'. stickingatnode should the constraint always be kept at the node where it was added, even if it may be moved to a more global node? Usually set to FALSE. Set to TRUE to for constraints that represent node data.
Definition at line 7033 of file cons_setppc.c.
References catchAllEvents(), consdataCreate(), consdataCreateTransformed(), CONSHDLR_NAME, NULL, SCIP_CALL, SCIP_INVALIDCALL, SCIP_OKAY, SCIP_SETPPCTYPE_PARTITIONING, SCIP_STAGE_PROBLEM, SCIPconshdlrGetData(), SCIPcreateCons(), SCIPerrorMessage, SCIPfindConshdlr(), SCIPgetStage(), and SCIPisTransformed().
Referenced by createNormalizedSetppc(), SCIPcreateConsSetcover(), SCIPcreateConsSetpack(), and SCIPcreateConsSetpart().
◆ createNormalizedSetppc()
|
static |
creates and captures a normalized (with all coefficients +1) setppc constraint
- Parameters
-
scip SCIP data structure cons pointer to hold the created constraint name name of constraint nvars number of variables in the constraint vars array with variables of constraint entries vals array with coefficients (+1.0 or -1.0) mult multiplier on the coefficients(+1 or -1) setppctype type of constraint: set partitioning, packing, or covering constraint initial should the LP relaxation of constraint be in the initial LP? Usually set to TRUE. Set to FALSE for 'lazy constraints'. separate should the constraint be separated during LP processing? Usually set to TRUE. enforce should the constraint be enforced during node processing? TRUE for model constraints, FALSE for additional, redundant constraints. check should the constraint be checked for feasibility? TRUE for model constraints, FALSE for additional, redundant constraints. propagate should the constraint be propagated during node processing? Usually set to TRUE. local is constraint only valid locally? Usually set to FALSE. Has to be set to TRUE, e.g., for branching constraints. modifiable is constraint modifiable (subject to column generation)? Usually set to FALSE. In column generation applications, set to TRUE if pricing adds coefficients to this constraint. dynamic is constraint subject to aging? Usually set to FALSE. Set to TRUE for own cuts which are separated as constraints. removable should the relaxation be removed from the LP due to aging or cleanup? Usually set to FALSE. Set to TRUE for 'lazy constraints' and 'user cuts'. stickingatnode should the constraint always be kept at the node where it was added, even if it may be moved to a more global node? Usually set to FALSE. Set to TRUE to for constraints that represent node data.
Definition at line 7118 of file cons_setppc.c.
References createConsSetppc(), NULL, SCIP_CALL, SCIP_OKAY, SCIPallocBufferArray, SCIPfreeBufferArray, and SCIPgetNegatedVar().
Referenced by SCIP_DECL_LINCONSUPGD().
◆ SCIP_DECL_LINCONSUPGD()
|
static |
check, if linear constraint can be upgraded to set partitioning, packing, or covering constraint
Definition at line 7186 of file cons_setppc.c.
References createNormalizedSetppc(), NULL, SCIP_CALL, SCIP_OKAY, SCIP_SETPPCTYPE_COVERING, SCIP_SETPPCTYPE_PACKING, SCIP_SETPPCTYPE_PARTITIONING, SCIPconsGetHdlr(), SCIPconsGetName(), SCIPconshdlrGetName(), SCIPconsIsChecked(), SCIPconsIsDynamic(), SCIPconsIsEnforced(), SCIPconsIsInitial(), SCIPconsIsLocal(), SCIPconsIsModifiable(), SCIPconsIsPropagated(), SCIPconsIsRemovable(), SCIPconsIsSeparated(), SCIPconsIsStickingAtNode(), SCIPdebugMsg, SCIPisEQ(), and SCIPisInfinity().
◆ SCIP_DECL_NONLINCONSUPGD()
|
static |
tries to upgrade a nonlinear constraint to a setpacking constraint
Definition at line 7267 of file cons_setppc.c.
References NULL, SCIP_Bool, SCIP_CALL, SCIP_OKAY, SCIP_Real, SCIP_VARTYPE_BINARY, SCIPcheckQuadraticNonlinear(), SCIPconsGetHdlr(), SCIPconsGetName(), SCIPconshdlrGetName(), SCIPconsIsChecked(), SCIPconsIsDynamic(), SCIPconsIsEnforced(), SCIPconsIsInitial(), SCIPconsIsLocal(), SCIPconsIsModifiable(), SCIPconsIsPropagated(), SCIPconsIsRemovable(), SCIPconsIsSeparated(), SCIPconsIsStickingAtNode(), SCIPcreateConsSetpack(), SCIPdebugMsg, SCIPdebugPrintCons, SCIPexprGetQuadraticBilinTerm(), SCIPexprGetQuadraticData(), SCIPexprGetQuadraticQuadTerm(), SCIPgetExprNonlinear(), SCIPgetLhsNonlinear(), SCIPgetNegatedVar(), SCIPgetRhsNonlinear(), SCIPgetVarExprVar(), SCIPisEQ(), SCIPisInfinity(), SCIPisZero(), and SCIPvarGetType().
◆ addSymmetryInformation()
|
static |
adds symmetry information of constraint to a symmetry detection graph
- Parameters
-
scip SCIP pointer symtype type of symmetries that need to be added cons constraint graph symmetry detection graph success pointer to store whether symmetry information could be added
Definition at line 7407 of file cons_setppc.c.
References NULL, SCIP_CALL, SCIP_OKAY, SCIP_Real, SCIP_SETPPCTYPE_COVERING, SCIP_SETPPCTYPE_PACKING, SCIP_SETPPCTYPE_PARTITIONING, SCIPallocBufferArray, SCIPconsGetData(), SCIPextendPermsymDetectionGraphLinear(), SCIPfreeBufferArray, SCIPgetNVars(), SCIPgetSymActiveVariables(), SCIPinfinity(), and SCIPisTransformed().
Referenced by SCIP_DECL_CONSGETPERMSYMGRAPH(), and SCIP_DECL_CONSGETSIGNEDPERMSYMGRAPH().
◆ SCIP_DECL_CONSHDLRCOPY()
|
static |
copy method for constraint handler plugins (called when SCIP copies plugins)
Definition at line 7477 of file cons_setppc.c.
References CONSHDLR_NAME, NULL, SCIP_CALL, SCIP_OKAY, SCIPconshdlrGetName(), SCIPincludeConshdlrSetppc(), and TRUE.
◆ SCIP_DECL_CONSFREE()
|
static |
destructor of constraint handler to free constraint handler data (called when SCIP is exiting)
Definition at line 7493 of file cons_setppc.c.
References CONSHDLR_NAME, conshdlrdataFree(), NULL, SCIP_CALL, SCIP_OKAY, SCIPconshdlrGetData(), SCIPconshdlrGetName(), and SCIPconshdlrSetData().
◆ SCIP_DECL_CONSINIT()
|
static |
initialization method of constraint handler (called after problem was transformed)
Definition at line 7514 of file cons_setppc.c.
References CONSHDLR_NAME, FALSE, NULL, SCIP_OKAY, SCIPconshdlrGetData(), SCIPconshdlrGetName(), and TRUE.
◆ SCIP_DECL_CONSEXITPRE()
|
static |
presolving deinitialization method of constraint handler (called after presolving has been finished)
Definition at line 7540 of file cons_setppc.c.
References applyFixings(), NULL, SCIP_CALL, SCIP_OKAY, and SCIPconsIsDeleted().
◆ SCIP_DECL_CONSINITSOL()
|
static |
solving process deinitialization method of constraint handler (called before branch and bound process data is freed)
Definition at line 7561 of file cons_setppc.c.
References addNlrow(), SCIP_CALL, SCIP_OKAY, and SCIPisNLPConstructed().
◆ SCIP_DECL_CONSEXITSOL()
|
static |
solving process deinitialization method of constraint handler (called before branch and bound process data is freed)
Definition at line 7578 of file cons_setppc.c.
References NULL, SCIP_CALL, SCIP_OKAY, SCIPconsGetData(), SCIPreleaseNlRow(), and SCIPreleaseRow().
◆ SCIP_DECL_CONSDELETE()
|
static |
frees specific constraint data
Definition at line 7606 of file cons_setppc.c.
References consdataFree(), CONSHDLR_NAME, dropAllEvents(), NULL, SCIP_CALL, SCIP_OKAY, SCIP_SETPPCTYPE_PARTITIONING, SCIPconshdlrGetData(), SCIPconshdlrGetName(), SCIPisTransformed(), and SCIPvarIsTransformed().
◆ SCIP_DECL_CONSTRANS()
|
static |
transforms constraint data into data belonging to the transformed problem
Definition at line 7642 of file cons_setppc.c.
References catchAllEvents(), consdataCreateTransformed(), CONSHDLR_NAME, NULL, SCIP_CALL, SCIP_OKAY, SCIP_SETPPCTYPE_PARTITIONING, SCIP_STAGE_TRANSFORMING, SCIPconsGetData(), SCIPconsGetName(), SCIPconshdlrGetData(), SCIPconshdlrGetName(), SCIPconsIsChecked(), SCIPconsIsDynamic(), SCIPconsIsEnforced(), SCIPconsIsInitial(), SCIPconsIsLocal(), SCIPconsIsModifiable(), SCIPconsIsPropagated(), SCIPconsIsRemovable(), SCIPconsIsSeparated(), SCIPconsIsStickingAtNode(), SCIPcreateCons(), and SCIPgetStage().
◆ SCIP_DECL_CONSINITLP()
|
static |
LP initialization method of constraint handler (called before the initial LP relaxation at a node is solved)
Definition at line 7691 of file cons_setppc.c.
References addCut(), FALSE, SCIP_CALL, SCIP_OKAY, and SCIPconsIsInitial().
◆ SCIP_DECL_CONSSEPALP()
|
static |
separation method of constraint handler for LP solutions
Definition at line 7709 of file cons_setppc.c.
References CONSHDLR_NAME, FALSE, NULL, SCIP_Bool, SCIP_CALL, SCIP_CUTOFF, SCIP_DIDNOTFIND, SCIP_OKAY, SCIP_REDUCEDDOM, SCIP_SEPARATED, SCIPconshdlrGetName(), SCIPdebugMsg, separateCons(), and TRUE.
◆ SCIP_DECL_CONSSEPASOL()
|
static |
separation method of constraint handler for arbitrary primal solutions
Definition at line 7752 of file cons_setppc.c.
References CONSHDLR_NAME, FALSE, NULL, SCIP_Bool, SCIP_CALL, SCIP_CUTOFF, SCIP_DIDNOTFIND, SCIP_OKAY, SCIP_REDUCEDDOM, SCIP_SEPARATED, SCIPconshdlrGetName(), SCIPdebugMsg, and separateCons().
◆ SCIP_DECL_CONSENFOLP()
|
static |
constraint enforcing method of constraint handler for LP solutions
Definition at line 8104 of file cons_setppc.c.
References enforceConstraint(), NULL, SCIP_CALL, and SCIP_OKAY.
◆ SCIP_DECL_CONSENFORELAX()
|
static |
constraint enforcing method of constraint handler for relaxation solutions
Definition at line 8114 of file cons_setppc.c.
References enforceConstraint(), SCIP_CALL, and SCIP_OKAY.
◆ SCIP_DECL_CONSENFOPS()
|
static |
constraint enforcing method of constraint handler for pseudo solutions
Definition at line 8124 of file cons_setppc.c.
References CONSHDLR_NAME, enforcePseudo(), FALSE, NULL, SCIP_Bool, SCIP_CALL, SCIP_CUTOFF, SCIP_DIDNOTRUN, SCIP_FEASIBLE, SCIP_INFEASIBLE, SCIP_OKAY, SCIP_REDUCEDDOM, SCIP_SOLVELP, SCIPconshdlrGetName(), and SCIPdebugMsg.
◆ SCIP_DECL_CONSCHECK()
|
static |
feasibility check method of constraint handler for integral solutions
Definition at line 8186 of file cons_setppc.c.
References ABS, checkCons(), CONSHDLR_NAME, NULL, SCIP_CALL, SCIP_FEASIBLE, SCIP_INFEASIBLE, SCIP_OKAY, SCIP_Real, SCIPconsGetData(), SCIPconshdlrGetName(), SCIPgetSolVal(), SCIPinfoMessage(), SCIPprintCons(), SCIProwIsInLP(), and SCIPvarIsBinary().
◆ SCIP_DECL_CONSPROP()
|
static |
domain propagation method of constraint handler
Definition at line 8237 of file cons_setppc.c.
References applyFixings(), CONSHDLR_NAME, FALSE, NULL, processFixings(), SCIP_Bool, SCIP_CALL, SCIP_CUTOFF, SCIP_DIDNOTFIND, SCIP_OKAY, SCIP_REDUCEDDOM, SCIP_STAGE_INITSOLVE, SCIPconsGetData(), SCIPconshdlrGetName(), SCIPdebugMsg, SCIPgetStage(), and SCIPunmarkConsPropagate().
◆ SCIP_DECL_CONSPRESOL()
|
static |
presolving method of constraint handler
Definition at line 8301 of file cons_setppc.c.
References addCliques(), applyFixings(), CONSHDLR_NAME, detectRedundantConstraints(), dualPresolving(), FALSE, mergeMultiples(), MIN, MINGAINPERNMINCOMPARISONS, NMINCOMPARISONS, NULL, preprocessCliques(), presolvePropagateCons(), removeDoubleAndSingletonsAndPerformDualpresolve(), removeRedundantConstraints(), SCIP_Bool, SCIP_CALL, SCIP_CUTOFF, SCIP_DIDNOTFIND, SCIP_Longint, SCIP_OKAY, SCIP_PRESOLTIMING_EXHAUSTIVE, SCIP_PRESOLTIMING_MEDIUM, SCIP_Real, SCIP_SUCCESS, SCIPallowStrongDualReds(), SCIPblkmem(), SCIPconsGetData(), SCIPconshdlrGetData(), SCIPconshdlrGetName(), SCIPconsIsActive(), SCIPconsIsDeleted(), SCIPconsIsModifiable(), SCIPdoNotAggr(), SCIPdoNotMultaggr(), SCIPgetNCliques(), SCIPgetNFixedVars(), SCIPgetNImplications(), SCIPgetNRuns(), SCIPisStopped(), and TRUE.
◆ SCIP_DECL_CONSRESPROP()
|
static |
propagation conflict resolving method of constraint handler
Definition at line 8583 of file cons_setppc.c.
References CONSHDLR_NAME, FALSE, NULL, SCIP_Bool, SCIP_CALL, SCIP_OKAY, SCIP_SETPPCTYPE_COVERING, SCIP_SETPPCTYPE_PARTITIONING, SCIP_SUCCESS, SCIPaddConflictBinvar(), SCIPconsGetData(), SCIPconshdlrGetName(), SCIPdebugMsg, SCIPgetVarLbAtIndex(), SCIPgetVarUbAtIndex(), and TRUE.
◆ SCIP_DECL_CONSLOCK()
|
static |
variable rounding lock method of constraint handler
Definition at line 8665 of file cons_setppc.c.
References NULL, SCIP_CALL, SCIP_INVALIDDATA, SCIP_OKAY, SCIP_SETPPCTYPE_COVERING, SCIP_SETPPCTYPE_PACKING, SCIP_SETPPCTYPE_PARTITIONING, SCIPaddVarLocksType(), SCIPconsGetData(), and SCIPerrorMessage.
◆ SCIP_DECL_CONSACTIVE()
|
static |
constraint activation notification method of constraint handler
Definition at line 8705 of file cons_setppc.c.
References addNlrow(), CONSHDLR_NAME, NULL, SCIP_CALL, SCIP_OKAY, SCIP_STAGE_SOLVING, SCIP_STAGE_TRANSFORMING, SCIPconsGetData(), SCIPconsGetName(), SCIPconshdlrGetData(), SCIPconshdlrGetName(), SCIPconsIsTransformed(), SCIPdebugMsg, SCIPgetStage(), SCIPisNLPConstructed(), and SCIPmarkConsPropagate().
◆ SCIP_DECL_CONSDEACTIVE()
|
static |
constraint deactivation notification method of constraint handler
Definition at line 8742 of file cons_setppc.c.
References CONSHDLR_NAME, dropAllEvents(), NULL, SCIP_CALL, SCIP_OKAY, SCIP_STAGE_SOLVING, SCIPconsGetData(), SCIPconsGetName(), SCIPconshdlrGetData(), SCIPconshdlrGetName(), SCIPconsIsDeleted(), SCIPconsIsTransformed(), SCIPdebugMsg, SCIPdelNlRow(), SCIPgetStage(), and SCIPvarIsTransformed().
◆ SCIP_DECL_CONSDELVARS()
|
static |
variable deletion method of constraint handler
Definition at line 8790 of file cons_setppc.c.
References NULL, performVarDeletions(), SCIP_CALL, and SCIP_OKAY.
◆ SCIP_DECL_CONSPRINT()
|
static |
constraint display method of constraint handler
Definition at line 8808 of file cons_setppc.c.
References consdataPrint(), NULL, SCIP_CALL, SCIP_OKAY, and SCIPconsGetData().
◆ SCIP_DECL_CONSCOPY()
|
static |
constraint copying method of constraint handler
Definition at line 8821 of file cons_setppc.c.
References NULL, SCIP_CALL, SCIP_INVALIDDATA, SCIP_OKAY, SCIP_Real, SCIP_SETPPCTYPE_COVERING, SCIP_SETPPCTYPE_PACKING, SCIP_SETPPCTYPE_PARTITIONING, SCIPconsGetName(), SCIPcopyConsLinear(), SCIPerrorMessage, SCIPgetNVarsSetppc(), SCIPgetTypeSetppc(), SCIPgetVarsSetppc(), and SCIPinfinity().
◆ SCIP_DECL_CONSPARSE()
|
static |
constraint parsing method of constraint handler
Definition at line 8872 of file cons_setppc.c.
References FALSE, NULL, SCIP_CALL, SCIP_OKAY, SCIP_Real, SCIP_VERBLEVEL_MINIMAL, SCIPallocBufferArray, SCIPcreateConsSetcover(), SCIPcreateConsSetpack(), SCIPcreateConsSetpart(), SCIPerrorMessage, SCIPfreeBufferArray, SCIPfreeBufferArrayNull, SCIPparseVarsLinearsum(), SCIPreallocBufferArray, SCIPskipSpace(), SCIPverbMessage(), and TRUE.
◆ SCIP_DECL_CONSGETVARS()
|
static |
constraint method of constraint handler which returns the variables (if possible)
Definition at line 8965 of file cons_setppc.c.
References BMScopyMemoryArray, FALSE, NULL, SCIP_OKAY, SCIPconsGetData(), and TRUE.
◆ SCIP_DECL_CONSGETNVARS()
|
static |
constraint method of constraint handler which returns the number of variables (if possible)
Definition at line 8987 of file cons_setppc.c.
References NULL, SCIP_OKAY, SCIPconsGetData(), and TRUE.
◆ SCIP_DECL_CONSGETPERMSYMGRAPH()
|
static |
constraint handler method which returns the permutation symmetry detection graph of a constraint
Definition at line 9002 of file cons_setppc.c.
References addSymmetryInformation(), SCIP_CALL, SCIP_OKAY, and SYM_SYMTYPE_PERM.
◆ SCIP_DECL_CONSGETSIGNEDPERMSYMGRAPH()
|
static |
constraint handler method which returns the signed permutation symmetry detection graph of a constraint
Definition at line 9011 of file cons_setppc.c.
References addSymmetryInformation(), SCIP_CALL, SCIP_OKAY, and SYM_SYMTYPE_SIGNPERM.
◆ SCIP_DECL_EVENTEXEC()
|
static |
Definition at line 9023 of file cons_setppc.c.
References EVENTHDLR_NAME, FALSE, NULL, SCIP_CALL, SCIP_EVENTTYPE_BOUNDTIGHTENED, SCIP_EVENTTYPE_LBRELAXED, SCIP_EVENTTYPE_LBTIGHTENED, SCIP_EVENTTYPE_UBRELAXED, SCIP_EVENTTYPE_UBTIGHTENED, SCIP_EVENTTYPE_VARDELETED, SCIP_EVENTTYPE_VARFIXED, SCIP_INVALIDDATA, SCIP_OKAY, SCIP_STAGE_INITSOLVE, SCIP_STAGE_PRESOLVING, SCIP_VARSTATUS_FIXED, SCIP_VARSTATUS_MULTAGGR, SCIPconsGetData(), SCIPerrorMessage, SCIPeventGetType(), SCIPeventGetVar(), SCIPeventhdlrGetName(), SCIPgetStage(), SCIPmarkConsPropagate(), SCIPvarGetLbGlobal(), SCIPvarGetProbvar(), SCIPvarGetStatus(), SCIPvarGetUbGlobal(), and TRUE.
◆ SCIP_DECL_CONFLICTEXEC()
|
static |
conflict processing method of conflict handler (called when conflict was found)
Definition at line 9119 of file cons_setppc.c.
References CONFLICTHDLR_NAME, FALSE, NULL, SCIP_Bool, SCIP_CALL, SCIP_CONSADDED, SCIP_DIDNOTFIND, SCIP_DIDNOTRUN, SCIP_LONGINT_FORMAT, SCIP_MAXSTRLEN, SCIP_OKAY, SCIPaddClique(), SCIPaddConflict(), SCIPaddConsNode(), SCIPallocBufferArray, SCIPbdchginfoGetNewbound(), SCIPbdchginfoGetVar(), SCIPconflicthdlrGetName(), SCIPconsIsLocal(), SCIPcreateConsSetcover(), SCIPcreateConsSetpack(), SCIPdebugMsg, SCIPfreeBufferArray, SCIPgetNConflictConssApplied(), SCIPgetNegatedVar(), SCIPgetNRuns(), SCIPreleaseCons(), SCIPsnprintf(), SCIPvarIsBinary(), and TRUE.