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) |
#define CONSHDLR_NAME "setppc" |
Definition at line 68 of file cons_setppc.c.
#define CONSHDLR_DESC "set partitioning / packing / covering constraints" |
Definition at line 69 of file cons_setppc.c.
#define CONSHDLR_SEPAPRIORITY +700000 |
priority of the constraint handler for separation
Definition at line 70 of file cons_setppc.c.
#define CONSHDLR_ENFOPRIORITY -700000 |
priority of the constraint handler for constraint enforcing
Definition at line 71 of file cons_setppc.c.
#define CONSHDLR_CHECKPRIORITY -700000 |
priority of the constraint handler for checking feasibility
Definition at line 72 of file cons_setppc.c.
#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.
#define CONSHDLR_PROPFREQ 1 |
frequency for propagating domains; zero means only preprocessing propagation
Definition at line 74 of file cons_setppc.c.
#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 75 of file cons_setppc.c.
#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.
#define CONSHDLR_DELAYSEPA FALSE |
should separation method be delayed, if other separators found cuts?
Definition at line 78 of file cons_setppc.c.
#define CONSHDLR_DELAYPROP FALSE |
should propagation method be delayed, if other propagators found reductions?
Definition at line 79 of file cons_setppc.c.
#define CONSHDLR_NEEDSCONS TRUE |
should the constraint handler be skipped, if no constraints are available?
Definition at line 80 of file cons_setppc.c.
#define CONSHDLR_PRESOLTIMING SCIP_PRESOLTIMING_ALWAYS |
Definition at line 82 of file cons_setppc.c.
#define CONSHDLR_PROP_TIMING SCIP_PROPTIMING_BEFORELP |
Definition at line 83 of file cons_setppc.c.
#define LINCONSUPGD_PRIORITY +700000 |
priority of the constraint handler for upgrading of linear constraints
Definition at line 85 of file cons_setppc.c.
#define NONLINCONSUPGD_PRIORITY +700000 |
priority of the constraint handler for upgrading of nonlinear constraints
Definition at line 86 of file cons_setppc.c.
#define EVENTHDLR_NAME "setppc" |
Definition at line 88 of file cons_setppc.c.
#define EVENTHDLR_DESC "bound change event handler for set partitioning / packing / covering constraints" |
Definition at line 89 of file cons_setppc.c.
#define CONFLICTHDLR_NAME "setppc" |
Definition at line 91 of file cons_setppc.c.
#define CONFLICTHDLR_DESC "conflict handler creating set covering constraints" |
Definition at line 92 of file cons_setppc.c.
#define CONFLICTHDLR_PRIORITY LINCONSUPGD_PRIORITY |
Definition at line 93 of file cons_setppc.c.
#define DEFAULT_PRESOLPAIRWISE TRUE |
should pairwise constraint comparison be performed in presolving?
Definition at line 95 of file cons_setppc.c.
#define HASHSIZE_SETPPCCONS 500 |
minimal size of hash table in setppc constraint tables
Definition at line 97 of file cons_setppc.c.
Referenced by detectRedundantConstraints(), and presoldataInitHashtables().
#define DEFAULT_PRESOLUSEHASHING TRUE |
should hash table be used for detecting redundant constraints in advance
Definition at line 98 of file cons_setppc.c.
#define NMINCOMPARISONS 200000 |
number for minimal pairwise presolving comparisons
Definition at line 99 of file cons_setppc.c.
#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.
#define DEFAULT_RANDSEED 3 |
Definition at line 102 of file cons_setppc.c.
Referenced by conshdlrdataCreate(), ensureStartingPoint(), runCyckerlin(), SCIP_DECL_HEURINIT(), SCIP_DECL_HEURINIT(), SCIP_DECL_HEURINIT(), SCIP_DECL_HEURINIT(), SCIP_DECL_HEURINIT(), SCIP_DECL_HEURINIT(), SCIP_DECL_HEURINIT(), SCIP_DECL_HEURINIT(), SCIP_DECL_NLPICREATEPROBLEM(), SCIP_DECL_PROPINIT(), SCIP_DECL_PROPINITSOL(), SCIP_DECL_PROPINITSOL(), SCIP_DECL_SEPAINIT(), SCIP_DECL_SEPAINIT(), SCIP_DECL_SEPAINIT(), SCIP_DECL_SEPAINIT(), SCIPcreateRandom(), SCIPincludeHeurActconsdiving(), SCIPincludeHeurCoefdiving(), SCIPincludeHeurConflictdiving(), SCIPincludeHeurDistributiondiving(), SCIPincludeHeurFarkasdiving(), SCIPincludeHeurFracdiving(), SCIPincludeHeurGuideddiving(), SCIPincludeHeurIndicatordiving(), SCIPincludeHeurLinesearchdiving(), SCIPincludeHeurPscostdiving(), SCIPincludeHeurVeclendiving(), and SCIPreoptCreate().
#define DEFAULT_NPSEUDOBRANCHES 2 |
number of children created in pseudo branching (0: disable branching)
Definition at line 110 of file cons_setppc.c.
Referenced by conshdlrdataCreate(), and SCIPincludeConshdlrSetppc().
#define DEFAULT_DUALPRESOLVING TRUE |
should dual presolving steps be performed?
Definition at line 111 of file cons_setppc.c.
#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 113 of file cons_setppc.c.
Referenced by SCIPincludeConshdlrSetppc().
#define DEFAULT_ADDVARIABLESASCLIQUES FALS |
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 117 of file cons_setppc.c.
Referenced by SCIPincludeConshdlrSetppc().
#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 120 of file cons_setppc.c.
Referenced by SCIPincludeConshdlrSetppc().
compares two active constraints of type set partitioning or set packing such that a "-1" is return if
cons1 | first problem variable |
cons2 | second problem variable |
Definition at line 199 of file cons_setppc.c.
References assert(), NULL, SCIP_SETPPCTYPE_COVERING, SCIP_SETPPCTYPE_PACKING, SCIP_SETPPCTYPE_PARTITIONING, SCIPconsGetData(), and SCIPconsIsActive().
Referenced by SCIP_DECL_SORTPTRCOMP().
|
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().
compares two setppc constraints such that a "-1" is return if the first constraint is active and
cons1 | first problem variable |
cons2 | second problem variable |
Definition at line 255 of file cons_setppc.c.
References assert(), NULL, SCIP_SETPPCTYPE_COVERING, SCIP_SETPPCTYPE_PACKING, SCIP_SETPPCTYPE_PARTITIONING, SCIPconsGetData(), and SCIPconsIsDeleted().
Referenced by SCIP_DECL_SORTPTRCOMP().
|
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().
|
static |
installs rounding locks for the given variable in the given setppc constraint
scip | SCIP data structure |
cons | setppc constraint |
var | variable of constraint entry |
Definition at line 312 of file cons_setppc.c.
References assert(), FALSE, NULL, SCIP_CALL, SCIP_INVALIDDATA, SCIP_OKAY, SCIP_SETPPCTYPE_COVERING, SCIP_SETPPCTYPE_PACKING, SCIP_SETPPCTYPE_PARTITIONING, SCIPconsGetData(), SCIPerrorMessage, SCIPlockVarCons(), TRUE, and var.
Referenced by addCoef(), and setSetppcType().
|
static |
removes rounding locks for the given variable in the given setppc constraint
scip | SCIP data structure |
cons | setppc constraint |
var | variable of constraint entry |
Definition at line 344 of file cons_setppc.c.
References assert(), FALSE, NULL, SCIP_CALL, SCIP_INVALIDDATA, SCIP_OKAY, SCIP_SETPPCTYPE_COVERING, SCIP_SETPPCTYPE_PACKING, SCIP_SETPPCTYPE_PARTITIONING, SCIPconsGetData(), SCIPerrorMessage, SCIPunlockVarCons(), TRUE, and var.
Referenced by delCoefPos(), and setSetppcType().
|
static |
creates constraint handler data for set partitioning / packing / covering constraint handler
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 assert(), DEFAULT_NPSEUDOBRANCHES, DEFAULT_RANDSEED, NULL, SCIP_CALL, SCIP_OKAY, SCIPallocBlockMemory, SCIPcreateIntarray(), SCIPcreateRandom(), and TRUE.
Referenced by SCIPincludeConshdlrSetppc().
|
static |
frees constraint handler data for set partitioning / packing / covering constraint handler
scip | SCIP data structure |
conshdlrdata | pointer to the constraint handler data |
Definition at line 405 of file cons_setppc.c.
References assert(), NULL, SCIP_CALL, SCIP_OKAY, SCIPfreeBlockMemory, SCIPfreeIntarray(), and SCIPfreeRandom().
Referenced by SCIP_DECL_CONSFREE().
|
static |
ensures, that the vars array can store at least num entries
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 assert(), NULL, SCIP_CALL, SCIP_OKAY, SCIPcalcMemGrowSize(), and SCIPreallocBlockMemoryArray.
Referenced by addCoef().
|
static |
creates a set partitioning / packing / covering constraint data object
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 assert(), FALSE, NULL, nvars, SCIP_CALL, SCIP_OKAY, SCIP_VARSTATUS_MULTAGGR, SCIPallocBlockMemory, SCIPallocBufferArray, SCIPcaptureVar(), SCIPduplicateBlockMemoryArray, SCIPfreeBufferArray, SCIPgetTransformedVars(), SCIPisConsCompressionEnabled(), SCIPisTransformed(), SCIPvarGetLbGlobal(), SCIPvarGetProbvar(), SCIPvarGetStatus(), SCIPvarGetUbGlobal(), SCIPvarIsBinary(), TRUE, var, and vars.
Referenced by consdataCreateTransformed(), and createConsSetppc().
|
static |
creates a transformed set partitioning / packing / covering constraint data object
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 assert(), consdataCreate(), NULL, nvars, SCIP_CALL, SCIP_OKAY, SCIPgetTransformedVars(), and vars.
Referenced by createConsSetppc(), and SCIP_DECL_CONSTRANS().
|
static |
frees a set partitioning / packing / covering constraint data
scip | SCIP data structure |
consdata | pointer to store the set partitioning / packing / covering constraint |
Definition at line 708 of file cons_setppc.c.
References assert(), NULL, SCIP_CALL, SCIP_OKAY, SCIPfreeBlockMemory, SCIPfreeBlockMemoryArrayNull, SCIPreleaseNlRow(), SCIPreleaseRow(), and SCIPreleaseVar().
Referenced by SCIP_DECL_CONSDELETE().
|
static |
prints set partitioning / packing / covering constraint to file stream
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 assert(), 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().
|
static |
returns the bit signature of the given constraint data
consdata | set partitioning / packing / covering constraint data |
Definition at line 782 of file cons_setppc.c.
References assert(), i, NULL, SCIPhashSignature64, SCIPvarGetIndex(), and TRUE.
Referenced by removeRedundantConstraints().
|
static |
sorts setppc constraint's variables by non-decreasing variable index
consdata | linear constraint data |
Definition at line 803 of file cons_setppc.c.
References assert(), NULL, SCIPsortPtr(), SCIPvarCompare(), and TRUE.
Referenced by removeRedundantConstraints(), and SCIP_DECL_HASHKEYVAL().
|
static |
changes the type of a setppc constraint
scip | SCIP data structure |
cons | setppc constraint |
setppctype | new type of constraint |
Definition at line 835 of file cons_setppc.c.
References assert(), FALSE, i, 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().
|
static |
catches events for variable at given position
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 assert(), FALSE, NULL, nvars, SCIP_CALL, SCIP_EVENTTYPE_BOUNDCHANGED, SCIP_EVENTTYPE_VARDELETED, SCIP_EVENTTYPE_VARFIXED, SCIP_OKAY, SCIP_STAGE_INITSOLVE, SCIPcatchVarEvent(), SCIPconsGetData(), SCIPconsIsActive(), SCIPgetStage(), SCIPisEQ(), SCIPmarkConsPropagate(), SCIPvarGetLbLocal(), SCIPvarGetUbLocal(), and var.
Referenced by addCoef(), and catchAllEvents().
|
static |
drops events for variable at given position
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 assert(), NULL, nvars, SCIP_CALL, SCIP_EVENTTYPE_BOUNDCHANGED, SCIP_EVENTTYPE_VARDELETED, SCIP_EVENTTYPE_VARFIXED, SCIP_OKAY, SCIPconsGetData(), SCIPdropVarEvent(), SCIPisEQ(), SCIPvarGetLbLocal(), SCIPvarGetUbLocal(), and var.
Referenced by delCoefPos(), and dropAllEvents().
|
static |
catches bound change events for all variables in transformed setppc constraint
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 assert(), catchEvent(), i, NULL, SCIP_CALL, SCIP_OKAY, SCIPconsGetData(), and TRUE.
Referenced by createConsSetppc(), and SCIP_DECL_CONSTRANS().
|
static |
drops bound change events for all variables in transformed setppc constraint
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 assert(), dropEvent(), FALSE, i, NULL, SCIP_CALL, SCIP_OKAY, and SCIPconsGetData().
Referenced by SCIP_DECL_CONSDEACTIVE(), and SCIP_DECL_CONSDELETE().
|
static |
adds coefficient in setppc constraint
scip | SCIP data structure |
cons | setppc constraint |
var | variable to add to the constraint |
Definition at line 1070 of file cons_setppc.c.
References assert(), 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(), TRUE, and var.
Referenced by addExtraCliques(), applyFixings(), checkForOverlapping(), liftCliqueVariables(), and SCIPaddCoefSetppc().
|
static |
deletes coefficient at given position from setppc constraint data
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 assert(), dropEvent(), FALSE, NULL, nvars, SCIP_CALL, SCIP_OKAY, SCIPaddVarToRow(), SCIPconsGetData(), SCIPconsGetHdlr(), SCIPconshdlrGetData(), SCIPconsIsTransformed(), SCIPreleaseVar(), SCIPvarIsTransformed(), TRUE, unlockRounding(), and var.
Referenced by applyFixings(), checkForOverlapping(), mergeMultiples(), performVarDeletions(), and removeDoubleAndSingletonsAndPerformDualpresolve().
|
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
(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)
(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)
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:
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.
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 assert(), FALSE, NULL, nvars, objval, result, 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(), SCIPvarIsActive(), var, and vars.
Referenced by SCIP_DECL_CONSPRESOL().
|
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
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 assert(), cutoff, delCoefPos(), FALSE, i, 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().
|
static |
deletes all zero-fixed variables and replace aggregated variables
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(), assert(), cutoff, delCoefPos(), FALSE, MAX, NULL, nvars, 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(), TRUE, and var.
Referenced by addCliques(), collectCliqueConss(), removeDoubleAndSingletonsAndPerformDualpresolve(), SCIP_DECL_CONSEXITPRE(), SCIP_DECL_CONSPRESOL(), SCIP_DECL_CONSPROP(), and SCIPcleanupConssSetppc().
|
static |
analyzes conflicting assignment on given constraint where all of the variables where assigned to zero, and adds conflict constraint to problem
scip | SCIP data structure |
cons | set partitioning / packing / covering constraint that detected the conflict |
Definition at line 2082 of file cons_setppc.c.
References assert(), 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().
|
static |
analyzes conflicting assignment on given constraint where two of the variables where assigned to one, and adds conflict constraint to problem
scip | SCIP data structure |
cons | set partitioning / packing / covering constraint that detected the conflict |
Definition at line 2117 of file cons_setppc.c.
References assert(), 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().
|
static |
checks constraint for violation only looking at the fixed variables, applies further fixings if possible
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(), assert(), CONSHDLR_NAME, cutoff, FALSE, NULL, nvars, 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(), TRUE, var, and vars.
Referenced by collectCliqueConss(), enforcePseudo(), removeDoubleAndSingletonsAndPerformDualpresolve(), SCIP_DECL_CONSPROP(), and separateCons().
|
static |
checks constraint for violation, returns TRUE iff constraint is feasible
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 assert(), FALSE, NULL, nvars, REALABS, SCIP_Bool, SCIP_Real, SCIP_SETPPCTYPE_COVERING, SCIP_SETPPCTYPE_PACKING, SCIP_SETPPCTYPE_PARTITIONING, SCIPABORT, SCIPerrorMessage, SCIPfeastol(), SCIPgetSolVal(), SCIPisFeasEQ(), SCIPisFeasGE(), SCIPisFeasLE(), SCIPrelDiff(), SCIPupdateSolLPConsViolation(), SCIPvarIsBinary(), sol, and vars.
Referenced by enforcePseudo(), SCIP_DECL_CONSCHECK(), and separateCons().
|
static |
creates an LP row in a set partitioning / packing / covering constraint data object
scip | SCIP data structure |
cons | set partitioning / packing / covering constraint |
Definition at line 2458 of file cons_setppc.c.
References assert(), 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().
|
static |
adds setppc constraint as cut to the LP
scip | SCIP data structure |
cons | setppc constraint |
cutoff | whether a cutoff has been detected |
Definition at line 2500 of file cons_setppc.c.
References assert(), createRow(), cutoff, FALSE, NULL, SCIP_Bool, SCIP_CALL, SCIP_OKAY, SCIPaddRow(), SCIPconsGetData(), SCIPconsGetName(), SCIPdebugMsg, and SCIProwIsInLP().
Referenced by SCIP_DECL_CONSINITLP(), and separateCons().
|
static |
adds setppc constraint as row to the NLP, if not added yet
scip | SCIP data structure |
cons | setppc constraint |
Definition at line 2533 of file cons_setppc.c.
References assert(), i, 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().
|
static |
checks constraint for violation, and adds it as a cut if possible
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(), assert(), checkCons(), CONSHDLR_NAME, cutoff, FALSE, NULL, processFixings(), SCIP_Bool, SCIP_CALL, SCIP_OKAY, SCIP_Real, SCIPconsGetData(), SCIPconsGetHdlr(), SCIPconsGetName(), SCIPconshdlrGetName(), SCIPdebugMsg, SCIPgetRowSolFeasibility(), SCIPincConsAge(), SCIPisFeasNegative(), SCIPresetConsAge(), SCIProwIsInLP(), sol, and TRUE.
Referenced by enforceConstraint(), SCIP_DECL_CONSSEPALP(), and SCIP_DECL_CONSSEPASOL().
|
static |
enforces the pseudo solution on the given constraint
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 assert(), checkCons(), CONSHDLR_NAME, cutoff, NULL, processFixings(), SCIP_Bool, SCIP_CALL, SCIP_OKAY, SCIPconsGetData(), SCIPconsGetHdlr(), SCIPconshdlrGetName(), SCIPhasCurrentNodeLP(), SCIPincConsAge(), SCIPresetConsAge(), and TRUE.
Referenced by SCIP_DECL_CONSENFOPS().
|
static |
gets the key of the given element
Definition at line 2745 of file cons_setppc.c.
|
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 assert(), FALSE, i, NULL, SCIP_Bool, SCIPconsGetData(), SCIPvarCompare(), and TRUE.
|
static |
returns the hash value of the key
Definition at line 2796 of file cons_setppc.c.
References assert(), consdataSort(), NULL, SCIPconsGetData(), SCIPhashFour, and SCIPvarGetIndex().
|
static |
add extra clique-constraints resulting from a given cliquepartition to SCIP
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(), assert(), c, cutoff, FALSE, mergeMultiples(), nbinvars, NULL, SCIP_Bool, SCIP_CALL, SCIP_MAXSTRLEN, SCIP_OKAY, SCIPaddCons(), SCIPconsGetData(), SCIPconsIsDeleted(), SCIPcreateConsSetpack(), SCIPdebugMsg, SCIPdebugPrintCons, SCIPreleaseCons(), SCIPsnprintf(), and TRUE.
Referenced by preprocessCliques().
|
static |
start to collect setpartitioning and setpacking constraints, and try to remove fixed variables and merged these constraints
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(), assert(), c, cutoff, 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().
|
static |
creating all necessary data in array structure, collect all clique constraint variables and occurrences,
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 assert(), c, 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(), SCIPvarIsNegated(), and var.
Referenced by preprocessCliques().
|
static |
correct clique data due to an aggregation
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 assert(), FALSE, i, NULL, SCIP_Bool, SCIPhashmapExists(), SCIPhashmapGetImageInt(), SCIPvarGetLbLocal(), SCIPvarGetUbLocal(), TRUE, and var.
Referenced by checkForOverlapping().
|
static |
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 assert(), NULL, SCIP_Bool, SCIP_CALL, SCIP_OKAY, SCIPallocBufferArray, SCIPcalcMemGrowSize(), SCIPhashmapExists(), SCIPhashmapGetImageInt(), SCIPhashmapInsertInt(), SCIPreallocBufferArray, SCIPsortedvecInsertDownPtr(), SCIPvarGetLbLocal(), SCIPvarGetNegatedVar(), SCIPvarGetUbLocal(), SCIPvarIsActive(), and SCIPvarIsNegated().
Referenced by checkForOverlapping(), and liftCliqueVariables().
|
static |
check if constraint is already redundant or infeasible due to fixings, fix or aggregate left over variables if possible
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 assert(), BMSclearMemoryArray, cutoff, FALSE, NULL, nvars, 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(), TRUE, var, and vars.
Referenced by checkForOverlapping(), preprocessCliques(), and SCIP_DECL_CONSPRESOL().
|
static |
check for overlapping constraint
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(), assert(), BMSclearMemoryArray, c, cutoff, delCoefPos(), deleteCliqueDataEntry(), FALSE, NULL, nvars, 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(), TRUE, var, and vars.
Referenced by preprocessCliques().
|
static |
try to lift variables to given constraint
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 |
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(), assert(), cutoff, FALSE, NULL, nvars, 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(), TRUE, var, and vars.
Referenced by preprocessCliques().
|
static |
perform all collected aggregations
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, assert(), cutoff, NULL, SCIP_Bool, SCIP_CALL, SCIP_OKAY, SCIPaggregateVars(), SCIPdebugMsg, and SCIPvarGetName().
Referenced by preprocessCliques().
|
static |
check whether we can combine or grow cliques so some constraints become redundant or we can fix variables
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(), assert(), BMSclearMemoryArray, c, checkForOverlapping(), collectCliqueConss(), collectCliqueData(), cutoff, FALSE, i, liftCliqueVariables(), MAX, MIN, nbinvars, NULL, nvars, 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(), TRUE, and vars.
Referenced by SCIP_DECL_CONSPRESOL().
|
static |
add cliques to SCIP
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(), assert(), c, cutoff, 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().
|
static |
perform multi-aggregation on variables resulting from a set-partitioning/-packing constraint
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 assert(), FALSE, NULL, nvars, scalars, SCIP_Bool, SCIP_CALL, SCIP_LOCKTYPE_MODEL, SCIP_OKAY, SCIP_Real, SCIPaggregateVars(), SCIPallocBufferArray, SCIPdebugMsg, SCIPduplicateBufferArray, SCIPfreeBufferArray, SCIPmultiaggregateVar(), SCIPvarGetName(), SCIPvarGetNLocksDownType(), SCIPvarGetNLocksUpType(), and vars.
Referenced by 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
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
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(), assert(), BMSclearMemoryArray, c, cutoff, delCoefPos(), FALSE, mergeMultiples(), multiAggregateBinvar(), nbinvars, NULL, nvars, objval, 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(), TRUE, and var.
Referenced by SCIP_DECL_CONSPRESOL().
|
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
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 6441 of file cons_setppc.c.
References assert(), c, 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().
|
static |
removes the redundant second constraint and updates the flags of the first one
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 6550 of file cons_setppc.c.
References assert(), NULL, SCIP_CALL, SCIP_OKAY, SCIPconsGetName(), SCIPdebugMsg, SCIPdebugPrintCons, SCIPdelCons(), and SCIPupdateConsFlags().
Referenced by processContainedCons(), and removeRedundantConstraints().
|
static |
for cons0 contained in cons1, fixes variables of cons1 that are not in cons0 to zero
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 6576 of file cons_setppc.c.
References assert(), cutoff, FALSE, NULL, nvars, SCIP_Bool, SCIP_CALL, SCIP_OKAY, SCIPconsGetData(), SCIPdebugMsg, SCIPfixVar(), SCIPvarGetIndex(), and SCIPvarGetName().
Referenced by processContainedCons().
|
static |
applies reductions for cons0 being contained in cons1
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 6648 of file cons_setppc.c.
References assert(), cutoff, FALSE, fixAdditionalVars(), NULL, removeRedundantCons(), SCIP_Bool, SCIP_CALL, SCIP_INVALIDDATA, SCIP_OKAY, SCIP_SETPPCTYPE_COVERING, SCIP_SETPPCTYPE_PACKING, SCIP_SETPPCTYPE_PARTITIONING, SCIPconsGetData(), SCIPconsGetName(), SCIPerrorMessage, and setSetppcType().
Referenced by removeRedundantConstraints().
|
static |
deletes redundant constraints
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 6764 of file cons_setppc.c.
References assert(), c, consdataGetSignature(), consdataSort(), cutoff, FALSE, NULL, nvars, 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().
|
static |
scip | SCIP data structure |
conshdlr | constraint handler |
conss | array of constraints |
nconss | number of constraints |
Definition at line 6936 of file cons_setppc.c.
References assert(), CONSHDLR_NAME, delCoefPos(), FALSE, i, NULL, SCIP_CALL, SCIP_OKAY, SCIPconsGetData(), SCIPconshdlrGetName(), and SCIPvarIsDeleted().
Referenced by SCIP_DECL_CONSDELVARS().
|
static |
helper function to enforce constraints
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 6978 of file cons_setppc.c.
References assert(), c, CONSHDLR_NAME, cutoff, FALSE, NULL, result, SCIP_Bool, SCIP_CALL, SCIP_CUTOFF, SCIP_FEASIBLE, SCIP_OKAY, SCIP_REDUCEDDOM, SCIP_SEPARATED, SCIPconshdlrGetName(), SCIPdebugMsg, separateCons(), sol, and TRUE.
Referenced by SCIP_DECL_CONSENFOLP(), and SCIP_DECL_CONSENFORELAX().
|
static |
creates and captures a set partitioning / packing / covering constraint
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 7050 of file cons_setppc.c.
References assert(), catchAllEvents(), consdataCreate(), consdataCreateTransformed(), CONSHDLR_NAME, NULL, nvars, propagate, SCIP_Bool, SCIP_CALL, SCIP_INVALIDCALL, SCIP_OKAY, SCIP_SETPPCTYPE_PARTITIONING, SCIP_STAGE_PROBLEM, SCIPconshdlrGetData(), SCIPcreateCons(), SCIPerrorMessage, SCIPfindConshdlr(), SCIPgetStage(), SCIPisTransformed(), and vars.
Referenced by createNormalizedSetppc(), SCIPcreateConsSetcover(), SCIPcreateConsSetpack(), and SCIPcreateConsSetpart().
|
static |
creates and captures a normalized (with all coefficients +1) setppc constraint
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 7135 of file cons_setppc.c.
References assert(), createConsSetppc(), NULL, nvars, propagate, SCIP_Bool, SCIP_CALL, SCIP_OKAY, SCIP_Real, SCIPallocBufferArray, SCIPfreeBufferArray, SCIPgetNegatedVar(), and vars.
Referenced by SCIP_DECL_LINCONSUPGD().
|
static |
check, if linear constraint can be upgraded to set partitioning, packing, or covering constraint
Definition at line 7203 of file cons_setppc.c.
References assert(), createNormalizedSetppc(), NULL, nvars, 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(), SCIPisInfinity(), and vars.
|
static |
tries to upgrade a nonlinear constraint to a setpacking constraint
Definition at line 7284 of file cons_setppc.c.
References assert(), 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(), SCIPvarGetType(), and vars.
|
static |
adds symmetry information of constraint to a symmetry detection graph
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 7424 of file cons_setppc.c.
References assert(), i, NULL, nvars, SCIP_Bool, SCIP_CALL, SCIP_OKAY, SCIP_Real, SCIP_SETPPCTYPE_COVERING, SCIP_SETPPCTYPE_PACKING, SCIP_SETPPCTYPE_PARTITIONING, SCIPallocBufferArray, SCIPconsGetData(), SCIPextendPermsymDetectionGraphLinear(), SCIPfreeBufferArray, SCIPgetNVars(), SCIPgetSymActiveVariables(), SCIPinfinity(), SCIPisTransformed(), and vars.
Referenced by SCIP_DECL_CONSGETPERMSYMGRAPH(), and SCIP_DECL_CONSGETSIGNEDPERMSYMGRAPH().
|
static |
copy method for constraint handler plugins (called when SCIP copies plugins)
Definition at line 7494 of file cons_setppc.c.
References assert(), CONSHDLR_NAME, NULL, SCIP_CALL, SCIP_OKAY, SCIPconshdlrGetName(), SCIPincludeConshdlrSetppc(), TRUE, and valid.
|
static |
destructor of constraint handler to free constraint handler data (called when SCIP is exiting)
Definition at line 7510 of file cons_setppc.c.
References assert(), CONSHDLR_NAME, conshdlrdataFree(), NULL, SCIP_CALL, SCIP_OKAY, SCIPconshdlrGetData(), SCIPconshdlrGetName(), and SCIPconshdlrSetData().
|
static |
initialization method of constraint handler (called after problem was transformed)
Definition at line 7531 of file cons_setppc.c.
References assert(), CONSHDLR_NAME, FALSE, NULL, SCIP_OKAY, SCIPconshdlrGetData(), SCIPconshdlrGetName(), and TRUE.
|
static |
presolving deinitialization method of constraint handler (called after presolving has been finished)
Definition at line 7557 of file cons_setppc.c.
References applyFixings(), assert(), c, NULL, SCIP_CALL, SCIP_OKAY, and SCIPconsIsDeleted().
|
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 addNlrow(), c, SCIP_CALL, SCIP_OKAY, and SCIPisNLPConstructed().
|
static |
solving process deinitialization method of constraint handler (called before branch and bound process data is freed)
Definition at line 7595 of file cons_setppc.c.
References assert(), c, NULL, SCIP_CALL, SCIP_OKAY, SCIPconsGetData(), SCIPreleaseNlRow(), and SCIPreleaseRow().
|
static |
frees specific constraint data
Definition at line 7623 of file cons_setppc.c.
References assert(), consdataFree(), CONSHDLR_NAME, dropAllEvents(), NULL, SCIP_CALL, SCIP_OKAY, SCIP_SETPPCTYPE_PARTITIONING, SCIPconshdlrGetData(), SCIPconshdlrGetName(), SCIPisTransformed(), and SCIPvarIsTransformed().
|
static |
transforms constraint data into data belonging to the transformed problem
Definition at line 7659 of file cons_setppc.c.
References assert(), 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().
|
static |
LP initialization method of constraint handler (called before the initial LP relaxation at a node is solved)
Definition at line 7708 of file cons_setppc.c.
References addCut(), assert(), c, FALSE, SCIP_CALL, SCIP_OKAY, and SCIPconsIsInitial().
|
static |
separation method of constraint handler for LP solutions
Definition at line 7726 of file cons_setppc.c.
References assert(), c, CONSHDLR_NAME, cutoff, FALSE, NULL, result, SCIP_Bool, SCIP_CALL, SCIP_CUTOFF, SCIP_DIDNOTFIND, SCIP_OKAY, SCIP_REDUCEDDOM, SCIP_SEPARATED, SCIPconshdlrGetName(), SCIPdebugMsg, separateCons(), and TRUE.
|
static |
separation method of constraint handler for arbitrary primal solutions
Definition at line 7769 of file cons_setppc.c.
References assert(), c, CONSHDLR_NAME, cutoff, FALSE, NULL, result, SCIP_Bool, SCIP_CALL, SCIP_CUTOFF, SCIP_DIDNOTFIND, SCIP_OKAY, SCIP_REDUCEDDOM, SCIP_SEPARATED, SCIPconshdlrGetName(), SCIPdebugMsg, separateCons(), and sol.
|
static |
constraint enforcing method of constraint handler for LP solutions
Definition at line 8121 of file cons_setppc.c.
References enforceConstraint(), NULL, result, SCIP_CALL, and SCIP_OKAY.
|
static |
constraint enforcing method of constraint handler for relaxation solutions
Definition at line 8131 of file cons_setppc.c.
References enforceConstraint(), result, SCIP_CALL, SCIP_OKAY, and sol.
|
static |
constraint enforcing method of constraint handler for pseudo solutions
Definition at line 8141 of file cons_setppc.c.
References assert(), c, CONSHDLR_NAME, cutoff, enforcePseudo(), FALSE, NULL, result, SCIP_Bool, SCIP_CALL, SCIP_CUTOFF, SCIP_DIDNOTRUN, SCIP_FEASIBLE, SCIP_INFEASIBLE, SCIP_OKAY, SCIP_REDUCEDDOM, SCIP_SOLVELP, SCIPconshdlrGetName(), and SCIPdebugMsg.
|
static |
feasibility check method of constraint handler for integral solutions
Definition at line 8203 of file cons_setppc.c.
References ABS, assert(), c, checkCons(), CONSHDLR_NAME, NULL, result, SCIP_CALL, SCIP_FEASIBLE, SCIP_INFEASIBLE, SCIP_OKAY, SCIP_Real, SCIPconsGetData(), SCIPconshdlrGetName(), SCIPgetSolVal(), SCIPinfoMessage(), SCIPprintCons(), SCIProwIsInLP(), SCIPvarIsBinary(), and sol.
|
static |
domain propagation method of constraint handler
Definition at line 8254 of file cons_setppc.c.
References applyFixings(), assert(), c, CONSHDLR_NAME, cutoff, FALSE, NULL, processFixings(), result, SCIP_Bool, SCIP_CALL, SCIP_CUTOFF, SCIP_DIDNOTFIND, SCIP_OKAY, SCIP_REDUCEDDOM, SCIP_STAGE_INITSOLVE, SCIPconsGetData(), SCIPconshdlrGetName(), SCIPdebugMsg, SCIPgetStage(), and SCIPunmarkConsPropagate().
|
static |
presolving method of constraint handler
Definition at line 8318 of file cons_setppc.c.
References addCliques(), applyFixings(), assert(), c, CONSHDLR_NAME, cutoff, detectRedundantConstraints(), dualPresolving(), FALSE, mergeMultiples(), MIN, MINGAINPERNMINCOMPARISONS, NMINCOMPARISONS, NULL, preprocessCliques(), presolvePropagateCons(), removeDoubleAndSingletonsAndPerformDualpresolve(), removeRedundantConstraints(), result, 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.
|
static |
propagation conflict resolving method of constraint handler
Definition at line 8600 of file cons_setppc.c.
References assert(), CONSHDLR_NAME, FALSE, NULL, nvars, result, SCIP_Bool, SCIP_CALL, SCIP_OKAY, SCIP_SETPPCTYPE_COVERING, SCIP_SETPPCTYPE_PARTITIONING, SCIP_SUCCESS, SCIPaddConflictBinvar(), SCIPconsGetData(), SCIPconshdlrGetName(), SCIPdebugMsg, SCIPgetVarLbAtIndex(), SCIPgetVarUbAtIndex(), and TRUE.
|
static |
variable rounding lock method of constraint handler
Definition at line 8682 of file cons_setppc.c.
References assert(), i, NULL, SCIP_CALL, SCIP_INVALIDDATA, SCIP_OKAY, SCIP_SETPPCTYPE_COVERING, SCIP_SETPPCTYPE_PACKING, SCIP_SETPPCTYPE_PARTITIONING, SCIPaddVarLocksType(), SCIPconsGetData(), and SCIPerrorMessage.
|
static |
constraint activation notification method of constraint handler
Definition at line 8722 of file cons_setppc.c.
References addNlrow(), assert(), CONSHDLR_NAME, NULL, SCIP_CALL, SCIP_OKAY, SCIP_STAGE_SOLVING, SCIP_STAGE_TRANSFORMING, SCIPconsGetData(), SCIPconsGetName(), SCIPconshdlrGetData(), SCIPconshdlrGetName(), SCIPconsIsTransformed(), SCIPdebugMsg, SCIPgetStage(), SCIPisNLPConstructed(), and SCIPmarkConsPropagate().
|
static |
constraint deactivation notification method of constraint handler
Definition at line 8759 of file cons_setppc.c.
References assert(), CONSHDLR_NAME, dropAllEvents(), NULL, SCIP_CALL, SCIP_OKAY, SCIP_STAGE_SOLVING, SCIPconsGetData(), SCIPconsGetName(), SCIPconshdlrGetData(), SCIPconshdlrGetName(), SCIPconsIsDeleted(), SCIPconsIsTransformed(), SCIPdebugMsg, SCIPdelNlRow(), SCIPgetStage(), and SCIPvarIsTransformed().
|
static |
variable deletion method of constraint handler
Definition at line 8807 of file cons_setppc.c.
References assert(), NULL, performVarDeletions(), SCIP_CALL, and SCIP_OKAY.
|
static |
constraint display method of constraint handler
Definition at line 8825 of file cons_setppc.c.
References assert(), consdataPrint(), NULL, SCIP_CALL, SCIP_OKAY, and SCIPconsGetData().
|
static |
constraint copying method of constraint handler
Definition at line 8838 of file cons_setppc.c.
References assert(), NULL, nvars, propagate, SCIP_CALL, SCIP_INVALIDDATA, SCIP_OKAY, SCIP_Real, SCIP_SETPPCTYPE_COVERING, SCIP_SETPPCTYPE_PACKING, SCIP_SETPPCTYPE_PARTITIONING, SCIPconsGetName(), SCIPcopyConsLinear(), SCIPerrorMessage, SCIPgetNVarsSetppc(), SCIPgetTypeSetppc(), SCIPgetVarsSetppc(), SCIPinfinity(), and valid.
|
static |
constraint parsing method of constraint handler
Definition at line 8889 of file cons_setppc.c.
References assert(), FALSE, NULL, nvars, propagate, SCIP_CALL, SCIP_OKAY, SCIP_Real, SCIP_VERBLEVEL_MINIMAL, SCIPallocBufferArray, SCIPcreateConsSetcover(), SCIPcreateConsSetpack(), SCIPcreateConsSetpart(), SCIPerrorMessage, SCIPfreeBufferArray, SCIPfreeBufferArrayNull, SCIPparseVarsLinearsum(), SCIPreallocBufferArray, SCIPskipSpace(), SCIPverbMessage(), TRUE, and vars.
|
static |
constraint method of constraint handler which returns the variables (if possible)
Definition at line 8982 of file cons_setppc.c.
References assert(), BMScopyMemoryArray, FALSE, NULL, nvars, SCIP_OKAY, SCIPconsGetData(), TRUE, and vars.
|
static |
constraint method of constraint handler which returns the number of variables (if possible)
Definition at line 9004 of file cons_setppc.c.
References assert(), NULL, SCIP_OKAY, SCIPconsGetData(), and TRUE.
|
static |
constraint handler method which returns the permutation symmetry detection graph of a constraint
Definition at line 9019 of file cons_setppc.c.
References addSymmetryInformation(), SCIP_CALL, SCIP_OKAY, and SYM_SYMTYPE_PERM.
|
static |
constraint handler method which returns the signed permutation symmetry detection graph of a constraint
Definition at line 9028 of file cons_setppc.c.
References addSymmetryInformation(), SCIP_CALL, SCIP_OKAY, and SYM_SYMTYPE_SIGNPERM.
|
static |
Definition at line 9040 of file cons_setppc.c.
References assert(), 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(), TRUE, and var.
|
static |
conflict processing method of conflict handler (called when conflict was found)
Definition at line 9136 of file cons_setppc.c.
References assert(), CONFLICTHDLR_NAME, FALSE, i, NULL, result, 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(), TRUE, and vars.