Detailed Description
Constraint handler for AND-constraints, \(r = x_1 \wedge x_2 \wedge \dots \wedge x_n\).
This constraint handler deals with AND-constraints. These are constraint of the form:
\[ r = x_1 \wedge x_2 \wedge \dots \wedge x_n \]
where \(x_i\) is a binary variable for all \(i\). Hence, \(r\) is also of binary type. The variable \(r\) is called resultant and the \(x\)'s operators.
Definition in file cons_and.c.
#include "blockmemshell/memory.h"
#include "scip/cons_and.h"
#include "scip/cons_linear.h"
#include "scip/cons_logicor.h"
#include "scip/cons_pseudoboolean.h"
#include "scip/cons_setppc.h"
#include "scip/expr_product.h"
#include "scip/expr_var.h"
#include "scip/debug.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_copy.h"
#include "scip/scip_cut.h"
#include "scip/scip_event.h"
#include "scip/scip_expr.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_sol.h"
#include "scip/scip_tree.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.
Typedefs | |
typedef enum Proprule | PROPRULE |
Enumerations | |
enum | Proprule { PROPRULE_INVALID = 0 , PROPRULE_1 = 1 , PROPRULE_2 = 2 , PROPRULE_3 = 3 , PROPRULE_4 = 4 , PROPRULE_0_INVALID = 0 , PROPRULE_1_CORETIMES = 1 , PROPRULE_2_EDGEFINDING = 2 , PROPRULE_3_TTEF = 3 , PROPRULE_1_RHS = 1 , PROPRULE_1_LHS = 2 , PROPRULE_1_RANGEDROW = 3 , PROPRULE_INVALID = 0 , PROPRULE_1 = 0 , PROPRULE_2 = 1 , PROPRULE_3 = 2 , PROPRULE_4 = 3 , PROPRULE_INVALID = 4 , PROPRULE_1 , PROPRULE_2 , PROPRULE_3 , PROPRULE_4 , PROPRULE_0 , PROPRULE_1 , PROPRULE_INTLB , PROPRULE_INTUB , PROPRULE_INVALID } |
Functions | |
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 void | conshdlrdataFree (SCIP *scip, SCIP_CONSHDLRDATA **conshdlrdata) |
static SCIP_RETCODE | consdataCatchWatchedEvents (SCIP *scip, SCIP_CONSDATA *consdata, SCIP_EVENTHDLR *eventhdlr, int pos, int *filterpos) |
static SCIP_RETCODE | consdataDropWatchedEvents (SCIP *scip, SCIP_CONSDATA *consdata, SCIP_EVENTHDLR *eventhdlr, int pos, int filterpos) |
static SCIP_RETCODE | consdataCatchEvents (SCIP *scip, SCIP_CONSDATA *consdata, SCIP_EVENTHDLR *eventhdlr) |
static SCIP_RETCODE | consdataDropEvents (SCIP *scip, SCIP_CONSDATA *consdata, SCIP_EVENTHDLR *eventhdlr) |
static SCIP_RETCODE | consdataSwitchWatchedvars (SCIP *scip, SCIP_CONSDATA *consdata, SCIP_EVENTHDLR *eventhdlr, int watchedvar1, int watchedvar2) |
static SCIP_RETCODE | consdataEnsureVarsSize (SCIP *scip, SCIP_CONSDATA *consdata, int num) |
static SCIP_RETCODE | consdataCreate (SCIP *scip, SCIP_CONSDATA **consdata, SCIP_EVENTHDLR *eventhdlr, int nvars, SCIP_VAR **vars, SCIP_VAR *resvar, SCIP_Bool checkwhenupgr, SCIP_Bool notremovablewhenupgr) |
static SCIP_RETCODE | consdataFreeRows (SCIP *scip, SCIP_CONSDATA *consdata) |
static SCIP_RETCODE | consdataFree (SCIP *scip, SCIP_CONSDATA **consdata, SCIP_EVENTHDLR *eventhdlr) |
static SCIP_RETCODE | consdataPrint (SCIP *scip, SCIP_CONSDATA *consdata, FILE *file) |
static SCIP_RETCODE | addCoef (SCIP *scip, SCIP_CONS *cons, SCIP_EVENTHDLR *eventhdlr, SCIP_VAR *var) |
static SCIP_RETCODE | delCoefPos (SCIP *scip, SCIP_CONS *cons, SCIP_EVENTHDLR *eventhdlr, int pos) |
static void | consdataSort (SCIP_CONSDATA *consdata) |
static SCIP_RETCODE | applyFixings (SCIP *scip, SCIP_CONS *cons, SCIP_EVENTHDLR *eventhdlr, int *nchgcoefs) |
static SCIP_RETCODE | createRelaxation (SCIP *scip, SCIP_CONS *cons) |
static SCIP_RETCODE | addRelaxation (SCIP *scip, SCIP_CONS *cons, SCIP_Bool *infeasible) |
static SCIP_RETCODE | addNlrow (SCIP *scip, SCIP_CONS *cons) |
static SCIP_RETCODE | checkCons (SCIP *scip, SCIP_CONS *cons, SCIP_SOL *sol, SCIP_Bool checklprows, SCIP_Bool printreason, SCIP_Bool *violated) |
static SCIP_RETCODE | separateCons (SCIP *scip, SCIP_CONS *cons, SCIP_SOL *sol, SCIP_Bool *separated, SCIP_Bool *cutoff) |
static SCIP_RETCODE | analyzeConflictOne (SCIP *scip, SCIP_CONS *cons, int falsepos) |
static SCIP_RETCODE | analyzeConflictZero (SCIP *scip, SCIP_CONS *cons) |
static SCIP_RETCODE | consdataFixResultantZero (SCIP *scip, SCIP_CONS *cons, SCIP_VAR *resvar, int pos, SCIP_Bool *cutoff, int *nfixedvars) |
static SCIP_RETCODE | consdataFixOperandsOne (SCIP *scip, SCIP_CONS *cons, SCIP_VAR **vars, int nvars, SCIP_Bool *cutoff, int *nfixedvars) |
static SCIP_RETCODE | consdataLinearize (SCIP *scip, SCIP_CONS *cons, SCIP_Bool *cutoff, int *nfixedvars, int *nupgdconss) |
static SCIP_RETCODE | analyzeZeroResultant (SCIP *scip, SCIP_CONS *cons, int watchedvar1, int watchedvar2, SCIP_Bool *cutoff, int *nfixedvars) |
static SCIP_RETCODE | mergeMultiples (SCIP *scip, SCIP_CONS *cons, SCIP_EVENTHDLR *eventhdlr, unsigned char **entries, int *nentries, int *nfixedvars, int *nchgcoefs, int *ndelconss) |
static SCIP_RETCODE | propagateCons (SCIP *scip, SCIP_CONS *cons, SCIP_EVENTHDLR *eventhdlr, SCIP_Bool *cutoff, int *nfixedvars, int *nupgdconss) |
static SCIP_RETCODE | resolvePropagation (SCIP *scip, SCIP_CONS *cons, SCIP_VAR *infervar, PROPRULE proprule, SCIP_BDCHGIDX *bdchgidx, SCIP_RESULT *result) |
static SCIP_RETCODE | dualPresolve (SCIP *scip, SCIP_CONS **conss, int nconss, SCIP_EVENTHDLR *eventhdlr, unsigned char **entries, int *nentries, SCIP_Bool *cutoff, int *nfixedvars, int *naggrvars, int *nchgcoefs, int *ndelconss, int *nupgdconss, int *naddconss) |
static SCIP_RETCODE | cliquePresolve (SCIP *scip, SCIP_CONS *cons, SCIP_EVENTHDLR *eventhdlr, SCIP_Bool *cutoff, int *nfixedvars, int *naggrvars, int *nchgcoefs, int *ndelconss, int *naddconss) |
static | SCIP_DECL_HASHGETKEY (hashGetKeyAndcons) |
static | SCIP_DECL_HASHKEYEQ (hashKeyEqAndcons) |
static | SCIP_DECL_HASHKEYVAL (hashKeyValAndcons) |
static SCIP_RETCODE | detectRedundantConstraints (SCIP *scip, BMS_BLKMEM *blkmem, SCIP_CONS **conss, int nconss, int *firstchange, SCIP_Bool *cutoff, int *naggrvars, int *ndelconss) |
static SCIP_RETCODE | enforceConstraint (SCIP *scip, SCIP_CONSHDLR *conshdlr, SCIP_CONS **conss, int nconss, SCIP_SOL *sol, SCIP_RESULT *result) |
static SCIP_RETCODE | preprocessConstraintPairs (SCIP *scip, SCIP_CONS **conss, int firstchange, int chkind, SCIP_Bool *cutoff, int *naggrvars, int *nbdchgs, int *ndelconss) |
static SCIP_RETCODE | addSymmetryInformation (SCIP *scip, SYM_SYMTYPE symtype, SCIP_CONS *cons, SYM_GRAPH *graph, SCIP_Bool *success) |
static | SCIP_DECL_CONSHDLRCOPY (conshdlrCopyAnd) |
static | SCIP_DECL_CONSFREE (consFreeAnd) |
static | SCIP_DECL_CONSINITPRE (consInitpreAnd) |
static | SCIP_DECL_CONSINITSOL (consInitsolAnd) |
static | SCIP_DECL_CONSEXITSOL (consExitsolAnd) |
static | SCIP_DECL_CONSDELETE (consDeleteAnd) |
static | SCIP_DECL_CONSTRANS (consTransAnd) |
static | SCIP_DECL_CONSINITLP (consInitlpAnd) |
static | SCIP_DECL_CONSSEPALP (consSepalpAnd) |
static | SCIP_DECL_CONSSEPASOL (consSepasolAnd) |
static | SCIP_DECL_CONSENFOLP (consEnfolpAnd) |
static | SCIP_DECL_CONSENFORELAX (consEnforelaxAnd) |
static | SCIP_DECL_CONSENFOPS (consEnfopsAnd) |
static | SCIP_DECL_CONSCHECK (consCheckAnd) |
static | SCIP_DECL_CONSPROP (consPropAnd) |
static | SCIP_DECL_CONSPRESOL (consPresolAnd) |
static | SCIP_DECL_CONSRESPROP (consRespropAnd) |
static | SCIP_DECL_CONSLOCK (consLockAnd) |
static | SCIP_DECL_CONSACTIVE (consActiveAnd) |
static | SCIP_DECL_CONSDEACTIVE (consDeactiveAnd) |
static | SCIP_DECL_CONSPRINT (consPrintAnd) |
static | SCIP_DECL_CONSCOPY (consCopyAnd) |
static | SCIP_DECL_CONSPARSE (consParseAnd) |
static | SCIP_DECL_CONSGETVARS (consGetVarsAnd) |
static | SCIP_DECL_CONSGETNVARS (consGetNVarsAnd) |
static | SCIP_DECL_CONSGETPERMSYMGRAPH (consGetPermsymGraphAnd) |
static | SCIP_DECL_CONSGETSIGNEDPERMSYMGRAPH (consGetSignedPermsymGraphAnd) |
static | SCIP_DECL_EVENTEXEC (eventExecAnd) |
SCIP_RETCODE | SCIPincludeConshdlrAnd (SCIP *scip) |
SCIP_RETCODE | SCIPcreateConsAnd (SCIP *scip, SCIP_CONS **cons, const char *name, SCIP_VAR *resvar, 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 | SCIPcreateConsBasicAnd (SCIP *scip, SCIP_CONS **cons, const char *name, SCIP_VAR *resvar, int nvars, SCIP_VAR **vars) |
int | SCIPgetNVarsAnd (SCIP *scip, SCIP_CONS *cons) |
SCIP_VAR ** | SCIPgetVarsAnd (SCIP *scip, SCIP_CONS *cons) |
SCIP_VAR * | SCIPgetResultantAnd (SCIP *scip, SCIP_CONS *cons) |
SCIP_Bool | SCIPisAndConsSorted (SCIP *scip, SCIP_CONS *cons) |
SCIP_RETCODE | SCIPsortAndCons (SCIP *scip, SCIP_CONS *cons) |
SCIP_RETCODE | SCIPchgAndConsCheckFlagWhenUpgr (SCIP *scip, SCIP_CONS *cons, SCIP_Bool flag) |
SCIP_RETCODE | SCIPchgAndConsRemovableFlagWhenUpgr (SCIP *scip, SCIP_CONS *cons, SCIP_Bool flag) |
Macro Definition Documentation
◆ CONSHDLR_NAME
#define CONSHDLR_NAME "and" |
Definition at line 85 of file cons_and.c.
◆ CONSHDLR_DESC
#define CONSHDLR_DESC "constraint handler for AND-constraints: r = and(x1, ..., xn)" |
Definition at line 86 of file cons_and.c.
◆ CONSHDLR_SEPAPRIORITY
#define CONSHDLR_SEPAPRIORITY +850100 |
priority of the constraint handler for separation
Definition at line 87 of file cons_and.c.
◆ CONSHDLR_ENFOPRIORITY
#define CONSHDLR_ENFOPRIORITY -850100 |
priority of the constraint handler for constraint enforcing
Definition at line 88 of file cons_and.c.
◆ CONSHDLR_CHECKPRIORITY
#define CONSHDLR_CHECKPRIORITY -850100 |
priority of the constraint handler for checking feasibility
Definition at line 89 of file cons_and.c.
◆ CONSHDLR_SEPAFREQ
#define CONSHDLR_SEPAFREQ 1 |
frequency for separating cuts; zero means to separate only in the root node
Definition at line 90 of file cons_and.c.
◆ CONSHDLR_PROPFREQ
#define CONSHDLR_PROPFREQ 1 |
frequency for propagating domains; zero means only preprocessing propagation
Definition at line 91 of file cons_and.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 93 of file cons_and.c.
◆ CONSHDLR_MAXPREROUNDS
#define CONSHDLR_MAXPREROUNDS -1 |
maximal number of presolving rounds the constraint handler participates in (-1: no limit)
Definition at line 94 of file cons_and.c.
◆ CONSHDLR_DELAYSEPA
#define CONSHDLR_DELAYSEPA FALSE |
should separation method be delayed, if other separators found cuts?
Definition at line 95 of file cons_and.c.
◆ CONSHDLR_DELAYPROP
#define CONSHDLR_DELAYPROP FALSE |
should propagation method be delayed, if other propagators found reductions?
Definition at line 96 of file cons_and.c.
◆ CONSHDLR_NEEDSCONS
#define CONSHDLR_NEEDSCONS TRUE |
should the constraint handler be skipped, if no constraints are available?
Definition at line 97 of file cons_and.c.
◆ CONSHDLR_PRESOLTIMING
#define CONSHDLR_PRESOLTIMING (SCIP_PRESOLTIMING_FAST | SCIP_PRESOLTIMING_EXHAUSTIVE) |
Definition at line 99 of file cons_and.c.
◆ CONSHDLR_PROP_TIMING
#define CONSHDLR_PROP_TIMING SCIP_PROPTIMING_BEFORELP |
Definition at line 100 of file cons_and.c.
◆ EVENTHDLR_NAME
#define EVENTHDLR_NAME "and" |
Definition at line 102 of file cons_and.c.
◆ EVENTHDLR_DESC
#define EVENTHDLR_DESC "bound change event handler for AND-constraints" |
Definition at line 103 of file cons_and.c.
◆ DEFAULT_PRESOLPAIRWISE
#define DEFAULT_PRESOLPAIRWISE TRUE |
should pairwise constraint comparison be performed in presolving?
Definition at line 105 of file cons_and.c.
◆ DEFAULT_LINEARIZE
#define DEFAULT_LINEARIZE FALSE |
should constraint get linearized and removed?
Definition at line 106 of file cons_and.c.
◆ DEFAULT_ENFORCECUTS
#define DEFAULT_ENFORCECUTS TRUE |
should cuts be separated during LP enforcing?
Definition at line 107 of file cons_and.c.
◆ DEFAULT_AGGRLINEARIZATION
#define DEFAULT_AGGRLINEARIZATION FALSE |
should an aggregated linearization be used?
Definition at line 108 of file cons_and.c.
◆ DEFAULT_UPGRRESULTANT
#define DEFAULT_UPGRRESULTANT TRUE |
should all binary resultant variables be upgraded to implicit binary variables
Definition at line 109 of file cons_and.c.
◆ DEFAULT_DUALPRESOLVING
#define DEFAULT_DUALPRESOLVING TRUE |
should dual presolving be performed?
Definition at line 110 of file cons_and.c.
◆ HASHSIZE_ANDCONS
#define HASHSIZE_ANDCONS 500 |
minimal size of hash table in and constraint tables
Definition at line 112 of file cons_and.c.
◆ DEFAULT_PRESOLUSEHASHING
#define DEFAULT_PRESOLUSEHASHING TRUE |
should hash table be used for detecting redundant constraints in advance
Definition at line 113 of file cons_and.c.
◆ NMINCOMPARISONS
#define NMINCOMPARISONS 200000 |
number for minimal pairwise presolving comparisons
Definition at line 114 of file cons_and.c.
◆ MINGAINPERNMINCOMPARISONS
#define MINGAINPERNMINCOMPARISONS 1e-06 |
minimal gain per minimal pairwise presolving comparisons to repeat pairwise comparison round
Definition at line 115 of file cons_and.c.
Typedef Documentation
◆ PROPRULE
Definition at line 179 of file cons_and.c.
Enumeration Type Documentation
◆ Proprule
enum Proprule |
Definition at line 171 of file cons_and.c.
Function Documentation
◆ lockRounding()
|
static |
installs rounding locks for the given variable in the given AND-constraint
- Parameters
-
scip SCIP data structure cons constraint data var variable of constraint entry
Definition at line 188 of file cons_and.c.
References SCIP_CALL, SCIP_OKAY, SCIPlockVarCons(), and TRUE.
Referenced by addCoef().
◆ unlockRounding()
|
static |
removes rounding locks for the given variable in the given AND-constraint
- Parameters
-
scip SCIP data structure cons constraint data var variable of constraint entry
Definition at line 202 of file cons_and.c.
References SCIP_CALL, SCIP_OKAY, SCIPunlockVarCons(), and TRUE.
Referenced by delCoefPos().
◆ conshdlrdataCreate()
|
static |
creates constraint handler data
- Parameters
-
scip SCIP data structure conshdlrdata pointer to store the constraint handler data eventhdlr event handler
Definition at line 216 of file cons_and.c.
References NULL, SCIP_CALL, SCIP_OKAY, and SCIPallocBlockMemory.
Referenced by SCIPincludeConshdlrAnd().
◆ conshdlrdataFree()
|
static |
frees constraint handler data
- Parameters
-
scip SCIP data structure conshdlrdata pointer to the constraint handler data
Definition at line 236 of file cons_and.c.
References NULL, and SCIPfreeBlockMemory.
Referenced by SCIP_DECL_CONSFREE().
◆ consdataCatchWatchedEvents()
|
static |
catches events for the watched variable at given position
- Parameters
-
scip SCIP data structure consdata AND-constraint data eventhdlr event handler to call for the event processing pos array position of variable to catch bound change events for filterpos pointer to store position of event filter entry
Definition at line 249 of file cons_and.c.
References NULL, SCIP_CALL, SCIP_EVENTTYPE_LBTIGHTENED, SCIP_EVENTTYPE_UBRELAXED, SCIP_OKAY, and SCIPcatchVarEvent().
Referenced by consdataSwitchWatchedvars().
◆ consdataDropWatchedEvents()
|
static |
drops events for the watched variable at given position
- Parameters
-
scip SCIP data structure consdata AND-constraint data eventhdlr event handler to call for the event processing pos array position of watched variable to drop bound change events for filterpos position of event filter entry
Definition at line 273 of file cons_and.c.
References NULL, SCIP_CALL, SCIP_EVENTTYPE_LBTIGHTENED, SCIP_EVENTTYPE_UBRELAXED, SCIP_OKAY, and SCIPdropVarEvent().
Referenced by consdataSwitchWatchedvars().
◆ consdataCatchEvents()
|
static |
catches needed events on all variables of constraint, except the special ones for watched variables
- Parameters
-
scip SCIP data structure consdata AND-constraint data eventhdlr event handler to call for the event processing
Definition at line 296 of file cons_and.c.
References NULL, SCIP_CALL, SCIP_EVENTTYPE_BOUNDCHANGED, SCIP_EVENTTYPE_LBRELAXED, SCIP_EVENTTYPE_UBTIGHTENED, SCIP_OKAY, and SCIPcatchVarEvent().
Referenced by consdataCreate().
◆ consdataDropEvents()
|
static |
drops events on all variables of constraint, except the special ones for watched variables
- Parameters
-
scip SCIP data structure consdata AND-constraint data eventhdlr event handler to call for the event processing
Definition at line 322 of file cons_and.c.
References NULL, SCIP_CALL, SCIP_EVENTTYPE_BOUNDCHANGED, SCIP_EVENTTYPE_LBRELAXED, SCIP_EVENTTYPE_UBTIGHTENED, SCIP_OKAY, and SCIPdropVarEvent().
Referenced by consdataFree().
◆ consdataSwitchWatchedvars()
|
static |
stores the given variable numbers as watched variables, and updates the event processing
- Parameters
-
scip SCIP data structure consdata AND-constraint data eventhdlr event handler to call for the event processing watchedvar1 new first watched variable watchedvar2 new second watched variable
Definition at line 348 of file cons_and.c.
References consdataCatchWatchedEvents(), consdataDropWatchedEvents(), NULL, SCIP_CALL, and SCIP_OKAY.
Referenced by consdataFree(), delCoefPos(), and propagateCons().
◆ consdataEnsureVarsSize()
|
static |
ensures, that the vars array can store at least num entries
- Parameters
-
scip SCIP data structure consdata linear constraint data num minimum number of entries to store
Definition at line 408 of file cons_and.c.
References NULL, SCIP_CALL, SCIP_OKAY, SCIPcalcMemGrowSize(), and SCIPreallocBlockMemoryArray.
Referenced by addCoef().
◆ consdataCreate()
|
static |
creates constraint data for AND-constraint
- Parameters
-
scip SCIP data structure consdata pointer to store the constraint data eventhdlr event handler to call for the event processing nvars number of variables in the AND-constraint vars variables in AND-constraint resvar resultant variable checkwhenupgr should an upgraded constraint be checked despite the fact that this AND-constraint will not be checked notremovablewhenupgr should an upgraded constraint be despite the fact that this AND-constraint will not be checked
Definition at line 432 of file cons_and.c.
References consdataCatchEvents(), FALSE, NULL, SCIP_CALL, SCIP_OKAY, SCIP_STAGE_EXITPRESOLVE, SCIPallocBlockMemory, SCIPcaptureVar(), SCIPduplicateBlockMemoryArray, SCIPgetStage(), SCIPgetTransformedVar(), SCIPgetTransformedVars(), SCIPisTransformed(), SCIPmarkDoNotMultaggrVar(), SCIPvarIsBinary(), and TRUE.
Referenced by SCIP_DECL_CONSTRANS(), and SCIPcreateConsAnd().
◆ consdataFreeRows()
|
static |
releases LP rows of constraint data and frees rows array
- Parameters
-
scip SCIP data structure consdata constraint data
Definition at line 515 of file cons_and.c.
References NULL, r, SCIP_CALL, SCIP_OKAY, SCIPfreeBlockMemoryArray, and SCIPreleaseRow().
Referenced by consdataFree(), and SCIP_DECL_CONSEXITSOL().
◆ consdataFree()
|
static |
frees constraint data for AND-constraint
- Parameters
-
scip SCIP data structure consdata pointer to the constraint data eventhdlr event handler to call for the event processing
Definition at line 546 of file cons_and.c.
References consdataDropEvents(), consdataFreeRows(), consdataSwitchWatchedvars(), NULL, SCIP_CALL, SCIP_OKAY, SCIPfreeBlockMemory, SCIPfreeBlockMemoryArray, SCIPisTransformed(), SCIPreleaseNlRow(), and SCIPreleaseVar().
Referenced by SCIP_DECL_CONSDELETE().
◆ consdataPrint()
|
static |
prints AND-constraint to file stream
- Parameters
-
scip SCIP data structure consdata AND-constraint data file output file (or NULL for standard output)
Definition at line 596 of file cons_and.c.
References NULL, SCIP_CALL, SCIP_OKAY, SCIPinfoMessage(), SCIPwriteVarName(), SCIPwriteVarsList(), and TRUE.
Referenced by applyFixings(), and SCIP_DECL_CONSPRINT().
◆ addCoef()
|
static |
adds coefficient to AND-constraint
- Parameters
-
scip SCIP data structure cons linear constraint eventhdlr event handler to call for the event processing var variable to add to the constraint
Definition at line 621 of file cons_and.c.
References consdataEnsureVarsSize(), FALSE, lockRounding(), NULL, SCIP_Bool, SCIP_CALL, SCIP_EVENTTYPE_LBRELAXED, SCIP_EVENTTYPE_UBTIGHTENED, SCIP_INVALIDCALL, SCIP_OKAY, SCIPcaptureVar(), SCIPcatchVarEvent(), SCIPconsGetData(), SCIPconsIsTransformed(), SCIPerrorMessage, SCIPgetTransformedVar(), SCIPvarIsTransformed(), and TRUE.
Referenced by applyFixings().
◆ delCoefPos()
|
static |
deletes coefficient at given position from AND-constraint data
- Parameters
-
scip SCIP data structure cons AND-constraint eventhdlr event handler to call for the event processing pos position of coefficient to delete
Definition at line 681 of file cons_and.c.
References consdataSwitchWatchedvars(), FALSE, NULL, SCIP_CALL, SCIP_EVENTTYPE_LBRELAXED, SCIP_EVENTTYPE_UBTIGHTENED, SCIP_OKAY, SCIPconsGetData(), SCIPconsIsTransformed(), SCIPdropVarEvent(), SCIPreleaseVar(), SCIPvarIsTransformed(), TRUE, and unlockRounding().
Referenced by applyFixings(), cliquePresolve(), dualPresolve(), and mergeMultiples().
◆ consdataSort()
|
static |
sorts AND-constraint's variables by non-decreasing variable index
- Parameters
-
consdata constraint data
Definition at line 744 of file cons_and.c.
References NULL, SCIP_Bool, SCIPsortedvecFindPtr(), SCIPsortPtr(), SCIPvarCompare(), and TRUE.
Referenced by detectRedundantConstraints(), preprocessConstraintPairs(), SCIP_DECL_HASHKEYEQ(), and SCIPsortAndCons().
◆ applyFixings()
|
static |
deletes all one-fixed variables
- Parameters
-
scip SCIP data structure cons AND-constraint eventhdlr event handler to call for the event processing nchgcoefs pointer to add up the number of changed coefficients
Definition at line 825 of file cons_and.c.
References addCoef(), consdataPrint(), delCoefPos(), NULL, SCIP_Bool, SCIP_CALL, SCIP_EVENTTYPE_BOUNDCHANGED, SCIP_OKAY, SCIPcaptureVar(), SCIPcatchVarEvent(), SCIPconsGetData(), SCIPconsIsTransformed(), SCIPdebug, SCIPdebugMsg, SCIPdebugMsgPrint, SCIPdropVarEvent(), SCIPgetBinvarRepresentative(), SCIPisFeasEQ(), SCIPreleaseVar(), SCIPvarGetLbGlobal(), SCIPvarGetUbGlobal(), SCIPvarIsActive(), SCIPvarIsBinary(), and TRUE.
Referenced by dualPresolve(), and SCIP_DECL_CONSPRESOL().
◆ createRelaxation()
|
static |
creates a linearization of the AND-constraint
- Parameters
-
scip SCIP data structure cons constraint to check
Definition at line 925 of file cons_and.c.
References NULL, SCIP_CALL, SCIP_MAXSTRLEN, SCIP_OKAY, SCIPaddVarsToRowSameCoef(), SCIPaddVarToRow(), SCIPallocBlockMemoryArray, SCIPconsGetData(), SCIPconsGetName(), SCIPconsIsLocal(), SCIPconsIsModifiable(), SCIPconsIsRemovable(), SCIPcreateEmptyRowCons(), SCIPinfinity(), and SCIPsnprintf().
Referenced by addRelaxation(), and separateCons().
◆ addRelaxation()
|
static |
adds linear relaxation of AND-constraint to the LP
- Parameters
-
scip SCIP data structure cons constraint to check infeasible pointer to store whether an infeasibility was detected
Definition at line 972 of file cons_and.c.
References createRelaxation(), FALSE, NULL, SCIP_CALL, SCIP_MAXSTRLEN, SCIP_OKAY, SCIP_Real, SCIPaddRow(), SCIPaddVarsToRowSameCoef(), SCIPaddVarToRow(), SCIPconsGetData(), SCIPconsGetName(), SCIPconsIsLocal(), SCIPconsIsModifiable(), SCIPconsIsRemovable(), SCIPcreateEmptyRowCons(), SCIPinfinity(), SCIProwIsInLP(), and SCIPsnprintf().
Referenced by SCIP_DECL_CONSINITLP().
◆ addNlrow()
|
static |
adds constraint as row to the NLP, if not added yet
- Parameters
-
scip SCIP data structure cons and constraint
Definition at line 1032 of file cons_and.c.
References NULL, SCIP_CALL, SCIP_EXPRCURV_UNKNOWN, SCIP_OKAY, SCIP_Real, SCIPaddNlRow(), SCIPallocBufferArray, SCIPconsGetData(), SCIPconsGetName(), SCIPconsIsActive(), SCIPconsIsChecked(), SCIPconsIsLocal(), SCIPcreateExprProduct(), SCIPcreateExprVar(), SCIPcreateNlRow(), SCIPfreeBufferArray, SCIPisNLPConstructed(), SCIPnlrowIsInNLP(), and SCIPreleaseExpr().
Referenced by SCIP_DECL_CONSACTIVE(), and SCIP_DECL_CONSINITSOL().
◆ checkCons()
|
static |
checks AND-constraint for feasibility of given solution: returns TRUE iff constraint is feasible
- Parameters
-
scip SCIP data structure cons constraint to check sol solution to check, NULL for current solution checklprows Do constraints represented by rows in the current LP have to be checked? printreason Should the reason for the violation be printed? violated pointer to store whether the constraint is violated
Definition at line 1085 of file cons_and.c.
References FALSE, MAX3, NULL, r, SCIP_Bool, SCIP_CALL, SCIP_OKAY, SCIP_Real, SCIPconsGetData(), SCIPgetSolVal(), SCIPincConsAge(), SCIPinfoMessage(), SCIPisFeasPositive(), SCIPprintCons(), SCIPresetConsAge(), SCIProwIsInLP(), SCIPupdateSolConsViolation(), SCIPvarGetName(), and TRUE.
Referenced by enforceConstraint(), SCIP_DECL_CONSCHECK(), and SCIP_DECL_CONSENFOPS().
◆ separateCons()
|
static |
separates given primal solution
- Parameters
-
scip SCIP data structure cons constraint to check sol primal CIP solution, NULL for current LP solution separated pointer to store whether a cut was found cutoff whether a cutoff has been detected
Definition at line 1197 of file cons_and.c.
References createRelaxation(), FALSE, NULL, r, SCIP_CALL, SCIP_OKAY, SCIP_Real, SCIPaddRow(), SCIPconsGetData(), SCIPgetRowSolFeasibility(), SCIPisFeasNegative(), SCIProwIsInLP(), and TRUE.
Referenced by enforceConstraint(), SCIP_DECL_CONSSEPALP(), and SCIP_DECL_CONSSEPASOL().
◆ analyzeConflictOne()
|
static |
analyzes conflicting TRUE assignment to resultant of given constraint, and adds conflict constraint to problem
- Parameters
-
scip SCIP data structure cons AND-constraint that detected the conflict falsepos position of operand that is fixed to FALSE
Definition at line 1246 of file cons_and.c.
References FALSE, NULL, SCIP_CALL, SCIP_CONFTYPE_PROPAGATION, SCIP_OKAY, SCIP_STAGE_SOLVING, SCIPaddConflictBinvar(), SCIPanalyzeConflictCons(), SCIPconsGetData(), SCIPgetStage(), SCIPinitConflictAnalysis(), SCIPinProbing(), SCIPisConflictAnalysisApplicable(), SCIPvarGetLbLocal(), and SCIPvarGetUbLocal().
Referenced by consdataFixOperandsOne(), and consdataFixResultantZero().
◆ analyzeConflictZero()
|
static |
analyzes conflicting FALSE assignment to resultant of given constraint, and adds conflict constraint to problem
- Parameters
-
scip SCIP data structure cons or constraint that detected the conflict
Definition at line 1278 of file cons_and.c.
References FALSE, NULL, SCIP_CALL, SCIP_CONFTYPE_PROPAGATION, SCIP_OKAY, SCIP_STAGE_SOLVING, SCIPaddConflictBinvar(), SCIPanalyzeConflictCons(), SCIPconsGetData(), SCIPconsIsModifiable(), SCIPgetStage(), SCIPinitConflictAnalysis(), SCIPinProbing(), SCIPisConflictAnalysisApplicable(), SCIPvarGetLbLocal(), and SCIPvarGetUbLocal().
Referenced by analyzeZeroResultant(), and propagateCons().
◆ consdataFixResultantZero()
|
static |
tries to fix the given resultant to zero
- Parameters
-
scip SCIP data structure cons AND-constraint to be processed resvar resultant variable to fix to zero pos position of operand that is fixed to FALSE cutoff pointer to store TRUE, if the node can be cut off nfixedvars pointer to add up the number of found domain reductions
Definition at line 1314 of file cons_and.c.
References analyzeConflictOne(), FALSE, PROPRULE_1, SCIP_Bool, SCIP_CALL, SCIP_OKAY, SCIPconsGetName(), SCIPdebugMsg, SCIPdelConsLocal(), SCIPinferBinvarCons(), SCIPresetConsAge(), SCIPvarGetName(), and TRUE.
Referenced by propagateCons().
◆ consdataFixOperandsOne()
|
static |
fix all operands to one
- Parameters
-
scip SCIP data structure cons AND-constraint to be processed vars array of operands nvars number of operands cutoff pointer to store TRUE, if the node can be cut off nfixedvars pointer to add up the number of found domain reductions
Definition at line 1353 of file cons_and.c.
References analyzeConflictOne(), PROPRULE_2, SCIP_Bool, SCIP_CALL, SCIP_OKAY, SCIPconsGetName(), SCIPdebugMsg, SCIPdelConsLocal(), SCIPinferBinvarCons(), SCIPresetConsAge(), SCIPvarGetName(), and TRUE.
Referenced by propagateCons().
◆ consdataLinearize()
|
static |
linearize AND-constraint due to a globally to zero fixed resultant; that is, creates, adds, and releases a logicor constraint and remove the AND-constraint globally.
Since the resultant is fixed to zero the AND-constraint collapses to linear constraint of the form:
- \(\sum_{i=0}^{n-1} v_i \leq n-1\)
This can be transformed into a logicor constraint of the form
- \(\sum_{i=0}^{n-1} ~v_i \geq 1\)
- Parameters
-
scip SCIP data structure cons AND-constraint to linearize cutoff pointer to store TRUE, if the node can be cut off nfixedvars pointer to add up the number of found domain reductions nupgdconss pointer to add up the number of upgraded constraints
Definition at line 1407 of file cons_and.c.
References FALSE, NULL, SCIP_Bool, SCIP_CALL, SCIP_OKAY, SCIPaddCons(), SCIPallocBufferArray, SCIPconsGetData(), SCIPconsGetName(), SCIPconsIsChecked(), SCIPconsIsDynamic(), SCIPconsIsEnforced(), SCIPconsIsInitial(), SCIPconsIsLocal(), SCIPconsIsModifiable(), SCIPconsIsPropagated(), SCIPconsIsRemovable(), SCIPconsIsSeparated(), SCIPconsIsStickingAtNode(), SCIPcreateConsLogicor(), SCIPcreateConsSetpack(), SCIPdebugPrintCons, SCIPdelCons(), SCIPfixVar(), SCIPfreeBufferArray, SCIPgetBinvarRepresentatives(), SCIPgetNegatedVar(), SCIPreleaseCons(), SCIPvarGetLbGlobal(), SCIPvarGetUbGlobal(), and TRUE.
Referenced by propagateCons().
◆ analyzeZeroResultant()
|
static |
the resultant is fixed to zero; in case all except one operator are fixed to TRUE the last operator has to fixed to FALSE
- Note
- consdata->watchedvars might not be the same to the watchedvar parameters, because the update was not yet done
- Parameters
-
scip SCIP data structure cons AND-constraint to be processed watchedvar1 maybe last unfixed variable position watchedvar2 second watched position cutoff pointer to store TRUE, if the node can be cut off nfixedvars pointer to add up the number of found domain reductions
Definition at line 1518 of file cons_and.c.
References analyzeConflictZero(), FALSE, NULL, PROPRULE_4, SCIP_Bool, SCIP_CALL, SCIP_OKAY, SCIPconsGetData(), SCIPconsGetName(), SCIPdebugMsg, SCIPdelConsLocal(), SCIPinferBinvarCons(), SCIPresetConsAge(), SCIPvarGetLbLocal(), SCIPvarGetName(), SCIPvarGetUbLocal(), and TRUE.
Referenced by propagateCons().
◆ mergeMultiples()
|
static |
replaces multiple occurrences of variables
- Parameters
-
scip SCIP data structure cons AND-constraint eventhdlr event handler to call for the event processing entries array to store whether two positions in constraints represent the same variable nentries pointer for array size, if array will be to small it's corrected nfixedvars pointer to store number of fixed variables nchgcoefs pointer to store number of changed coefficients ndelconss pointer to store number of deleted constraints
Definition at line 1579 of file cons_and.c.
References delCoefPos(), NULL, SCIP_Bool, SCIP_CALL, SCIP_OKAY, SCIP_VARTYPE_BINARY, SCIP_VARTYPE_IMPLINT, SCIP_VARTYPE_INTEGER, SCIPconsGetData(), SCIPconsGetName(), SCIPdebugMsg, SCIPdelCons(), SCIPfixVar(), SCIPgetNBinVars(), SCIPgetNImplVars(), SCIPgetNIntVars(), SCIPvarGetName(), SCIPvarGetNegatedVar(), SCIPvarGetProbindex(), SCIPvarGetType(), SCIPvarIsActive(), SCIPvarIsBinary(), SCIPvarIsNegated(), and TRUE.
Referenced by dualPresolve(), and SCIP_DECL_CONSPRESOL().
◆ propagateCons()
|
static |
propagates constraint with the following rules: (1) v_i = FALSE => r = FALSE (2) r = TRUE => v_i = TRUE for all i (3) v_i = TRUE for all i => r = TRUE (4) r = FALSE, v_i = TRUE for all i except j => v_j = FALSE
additional if the resultant is fixed to zero during presolving or in the root node (globally), then the AND-constraint is collapsed to a linear (logicor) constraint of the form -> sum_{i=0}^{n-1} ~v_i >= 1
- Parameters
-
scip SCIP data structure cons AND-constraint to be processed eventhdlr event handler to call for the event processing cutoff pointer to store TRUE, if the node can be cut off nfixedvars pointer to add up the number of found domain reductions nupgdconss pointer to add up the number of upgraded constraints
Definition at line 1736 of file cons_and.c.
References analyzeConflictZero(), analyzeZeroResultant(), consdataFixOperandsOne(), consdataFixResultantZero(), consdataLinearize(), consdataSwitchWatchedvars(), NULL, PROPRULE_3, SCIP_Bool, SCIP_CALL, SCIP_OKAY, SCIPconsGetData(), SCIPconsGetName(), SCIPconsIsModifiable(), SCIPcutoffNode(), SCIPdebugMsg, SCIPdelConsLocal(), SCIPgetDepth(), SCIPgetRootNode(), SCIPincConsAge(), SCIPinferBinvarCons(), SCIPinProbing(), SCIPinRepropagation(), SCIPisFeasEQ(), SCIPresetConsAge(), SCIPvarGetLbLocal(), SCIPvarGetName(), SCIPvarGetUbGlobal(), SCIPvarGetUbLocal(), and TRUE.
Referenced by dualPresolve(), SCIP_DECL_CONSPRESOL(), and SCIP_DECL_CONSPROP().
◆ resolvePropagation()
|
static |
resolves a conflict on the given variable by supplying the variables needed for applying the corresponding propagation rule (see propagateCons()): (1) v_i = FALSE => r = FALSE (2) r = TRUE => v_i = TRUE for all i (3) v_i = TRUE for all i => r = TRUE (4) r = FALSE, v_i = TRUE for all i except j => v_j = FALSE
- Parameters
-
scip SCIP data structure cons constraint that inferred the bound change infervar variable that was deduced proprule propagation rule that deduced the value bdchgidx bound change index (time stamp of bound change), or NULL for current time result pointer to store the result of the propagation conflict resolving call
Definition at line 1941 of file cons_and.c.
References FALSE, NULL, PROPRULE_1, PROPRULE_2, PROPRULE_3, PROPRULE_4, PROPRULE_INVALID, SCIP_CALL, SCIP_INVALIDDATA, SCIP_OKAY, SCIP_SUCCESS, SCIPaddConflictBinvar(), SCIPconsGetData(), SCIPconsGetName(), SCIPerrorMessage, SCIPgetVarLbAtIndex(), SCIPgetVarUbAtIndex(), and TRUE.
Referenced by SCIP_DECL_CONSRESPROP().
◆ dualPresolve()
|
static |
perform dual presolving on AND-constraints
- Parameters
-
scip SCIP data structure conss AND-constraints to perform dual presolving on nconss number of AND-constraints eventhdlr event handler to call for the event processing entries array to store whether two positions in constraints represent the same variable nentries pointer for array size, if array will be to small it's corrected cutoff pointer to store TRUE, if the node can be cut off nfixedvars pointer to add up the number of found domain reductions naggrvars pointer to add up the number of aggregated variables nchgcoefs pointer to add up the number of changed coefficients ndelconss pointer to add up the number of deleted constraints nupgdconss pointer to add up the number of upgraded constraints naddconss pointer to add up the number of added constraints
Definition at line 2027 of file cons_and.c.
References applyFixings(), delCoefPos(), FALSE, mergeMultiples(), NULL, propagateCons(), REALABS, SCIP_Bool, SCIP_CALL, SCIP_LOCKTYPE_MODEL, SCIP_MAXSTRLEN, SCIP_OKAY, SCIP_Real, SCIPaddCons(), SCIPaggregateVars(), SCIPallocBufferArray, SCIPconsGetData(), SCIPconsGetName(), SCIPconsIsActive(), SCIPconsIsChecked(), SCIPconsIsDynamic(), SCIPconsIsEnforced(), SCIPconsIsInitial(), SCIPconsIsLocal(), SCIPconsIsModifiable(), SCIPconsIsPropagated(), SCIPconsIsRemovable(), SCIPconsIsSeparated(), SCIPconsIsStickingAtNode(), SCIPcreateConsLinear(), SCIPdebugMsg, SCIPdelCons(), SCIPfixVar(), SCIPfreeBufferArray, SCIPgetNBinVars(), SCIPgetNImplVars(), SCIPinfinity(), SCIPisEQ(), SCIPisGE(), SCIPisGT(), SCIPisInfinity(), SCIPisLE(), SCIPisLT(), SCIPisNegative(), SCIPisPositive(), SCIPreleaseCons(), SCIPsnprintf(), SCIPvarGetAggregatedObj(), SCIPvarGetLbGlobal(), SCIPvarGetName(), SCIPvarGetNLocksDownType(), SCIPvarGetNLocksUpType(), SCIPvarGetUbGlobal(), and TRUE.
Referenced by SCIP_DECL_CONSPRESOL().
◆ cliquePresolve()
|
static |
check if at least two operands or one operand and the resultant are in one clique, if so, we can fix the resultant to zero and in the former case we can also delete this constraint but we need to extract the clique information as constraint
x == AND(y, z) and clique(y,z) => x = 0, delete constraint and create y + z <= 1 x == AND(y, z) and clique(x,y) => x = 0
special handled cases are:
- if the resultant is a negation of an operand, in that case we fix the resultant to 0
- if the resultant is equal to an operand, we will linearize this constraint by adding all necessary set-packing constraints like resultant + ~operand <= 1 and delete the old constraint
x == AND(~x, y) => x = 0 x == AND(x, y) => add x + ~y <= 1 and delete the constraint
check if one operand is in a clique with the negation of all other operands, this means we can aggregate this operand to the resultant
r == AND(x,y,z) and clique(x,~y) and clique(x,~z) => r == x
check if the resultant and the negations of all operands are in a clique
r == AND(x,y) and clique(r, ~x,~y) => upgrade the constraint to a set-partitioning constraint r + ~x + ~y = 1
- Note
- We removed also fixed variables and propagate them, and if only one operand is remaining due to removal, we will aggregate the resultant with this operand
- Parameters
-
scip SCIP data structure cons constraint to process eventhdlr event handler to call for the event processing cutoff pointer to store TRUE, if the node can be cut off nfixedvars pointer to add up the number of found domain reductions naggrvars pointer to add up the number of aggregated variables nchgcoefs pointer to add up the number of changed coefficients ndelconss pointer to add up the number of deleted constraints naddconss pointer to add up the number of added constraints
Definition at line 2679 of file cons_and.c.
References BMSclearMemoryArray, delCoefPos(), FALSE, NULL, SCIP_Bool, SCIP_CALL, SCIP_MAXSTRLEN, SCIP_OKAY, SCIP_VARSTATUS_FIXED, SCIPaddCons(), SCIPaggregateVars(), SCIPallocBufferArray, SCIPconsGetData(), SCIPconsGetName(), SCIPconsIsActive(), SCIPconsIsChecked(), SCIPconsIsDynamic(), SCIPconsIsEnforced(), SCIPconsIsInitial(), SCIPconsIsLocal(), SCIPconsIsModifiable(), SCIPconsIsPropagated(), SCIPconsIsRemovable(), SCIPconsIsSeparated(), SCIPconsIsStickingAtNode(), SCIPcreateConsSetpack(), SCIPcreateConsSetpart(), SCIPdebugMsg, SCIPdebugPrintCons, SCIPdelCons(), SCIPfixVar(), SCIPfreeBufferArray, SCIPgetNegatedVar(), SCIPreleaseCons(), SCIPsnprintf(), SCIPvarGetLbGlobal(), SCIPvarGetName(), SCIPvarGetNegatedVar(), SCIPvarGetProbvarBinary(), SCIPvarGetStatus(), SCIPvarGetUbGlobal(), SCIPvarsHaveCommonClique(), and TRUE.
Referenced by SCIP_DECL_CONSPRESOL().
◆ SCIP_DECL_HASHGETKEY()
|
static |
gets the key of the given element
Definition at line 3327 of file cons_and.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 3335 of file cons_and.c.
References consdataSort(), FALSE, NULL, SCIP_Bool, SCIPconsGetData(), SCIPvarCompare(), and TRUE.
◆ SCIP_DECL_HASHKEYVAL()
|
static |
returns the hash value of the key
Definition at line 3381 of file cons_and.c.
References NULL, SCIPconsGetData(), SCIPhashFour, and SCIPvarGetIndex().
◆ 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 cutoff pointer to store TRUE, if a cutoff was found naggrvars pointer to count number of aggregated variables ndelconss pointer to count number of deleted constraints
Definition at line 3405 of file cons_and.c.
References consdataSort(), FALSE, HASHSIZE_ANDCONS, MAX, NULL, SCIP_Bool, SCIP_CALL, SCIP_OKAY, SCIPaggregateVars(), SCIPconsGetData(), SCIPconsGetPos(), SCIPconsIsActive(), SCIPconsIsModifiable(), SCIPdelCons(), SCIPdoNotAggr(), SCIPhashtableCreate(), SCIPhashtableFree(), SCIPhashtableInsert(), SCIPhashtableRetrieve(), SCIPupdateConsFlags(), SCIPvarCompare(), and TRUE.
Referenced by SCIP_DECL_CONSPRESOL().
◆ enforceConstraint()
|
static |
helper function to enforce constraints
- Parameters
-
scip SCIP data structure conshdlr constraint handler conss constraints to process nconss number of constraints sol solution to enforce (NULL for the LP solution) result pointer to store the result of the enforcing call
Definition at line 3525 of file cons_and.c.
References checkCons(), FALSE, NULL, SCIP_Bool, SCIP_CALL, SCIP_CUTOFF, SCIP_FEASIBLE, SCIP_INFEASIBLE, SCIP_OKAY, SCIP_SEPARATED, SCIPconshdlrGetData(), and separateCons().
Referenced by SCIP_DECL_CONSENFOLP(), and SCIP_DECL_CONSENFORELAX().
◆ preprocessConstraintPairs()
|
static |
compares constraint with all prior constraints for possible redundancy or aggregation, and removes or changes constraint accordingly
- 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 upto startind cutoff pointer to store TRUE, if a cutoff was found naggrvars pointer to count number of aggregated variables nbdchgs pointer to count the number of performed bound changes, or NULL ndelconss pointer to count number of deleted constraints
Definition at line 3582 of file cons_and.c.
References consdataSort(), FALSE, NULL, SCIP_Bool, SCIP_BOUNDTYPE_LOWER, SCIP_CALL, SCIP_INVALIDDATA, SCIP_OKAY, SCIPABORT, SCIPaddVarImplication(), SCIPaggregateVars(), SCIPconsGetData(), SCIPconsGetName(), SCIPconsIsActive(), SCIPconsIsModifiable(), SCIPdebugMsg, SCIPdelCons(), SCIPdoNotAggr(), SCIPerrorMessage, SCIPisStopped(), SCIPupdateConsFlags(), SCIPvarCompare(), SCIPvarGetName(), and TRUE.
Referenced by SCIP_DECL_CONSPRESOL().
◆ 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 3786 of file cons_and.c.
References NULL, SCIP_CALL, SCIP_OKAY, SCIP_Real, SCIPallocBufferArray, SCIPconsGetData(), SCIPextendPermsymDetectionGraphLinear(), SCIPfreeBufferArray, SCIPgetNVars(), SCIPgetNVarsAnd(), SCIPgetResultantAnd(), SCIPgetSymActiveVariables(), SCIPgetVarsAnd(), 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 3847 of file cons_and.c.
References CONSHDLR_NAME, NULL, SCIP_CALL, SCIP_OKAY, SCIPconshdlrGetName(), SCIPincludeConshdlrAnd(), and TRUE.
◆ SCIP_DECL_CONSFREE()
|
static |
destructor of constraint handler to free constraint handler data (called when SCIP is exiting)
Definition at line 3863 of file cons_and.c.
References conshdlrdataFree(), NULL, SCIP_OKAY, SCIPconshdlrGetData(), and SCIPconshdlrSetData().
◆ SCIP_DECL_CONSINITPRE()
|
static |
presolving initialization method of constraint handler (called when presolving is about to begin)
Definition at line 3881 of file cons_and.c.
References NULL, SCIP_CALL, SCIP_MAXSTRLEN, SCIP_OKAY, SCIP_Real, SCIPaddCons(), SCIPallocBufferArray, SCIPconsGetData(), SCIPconsGetName(), SCIPconshdlrGetData(), SCIPconsIsAdded(), SCIPconsIsChecked(), SCIPconsIsDynamic(), SCIPconsIsEnforced(), SCIPconsIsInitial(), SCIPconsIsLocal(), SCIPconsIsModifiable(), SCIPconsIsPropagated(), SCIPconsIsRemovable(), SCIPconsIsSeparated(), SCIPconsIsStickingAtNode(), SCIPcreateConsLinear(), SCIPdelCons(), SCIPfreeBufferArray, SCIPinfinity(), SCIPreallocBufferArray, SCIPreleaseCons(), and SCIPsnprintf().
◆ SCIP_DECL_CONSINITSOL()
|
static |
solving process initialization method of constraint handler
Definition at line 4164 of file cons_and.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 4181 of file cons_and.c.
References consdataFreeRows(), NULL, SCIP_CALL, SCIP_OKAY, SCIPconsGetData(), and SCIPreleaseNlRow().
◆ SCIP_DECL_CONSDELETE()
|
static |
frees specific constraint data
Definition at line 4206 of file cons_and.c.
References consdataFree(), NULL, SCIP_CALL, SCIP_OKAY, and SCIPconshdlrGetData().
◆ SCIP_DECL_CONSTRANS()
|
static |
transforms constraint data into data belonging to the transformed problem
Definition at line 4221 of file cons_and.c.
References consdataCreate(), NULL, SCIP_CALL, SCIP_OKAY, SCIPconsGetData(), SCIPconsGetName(), SCIPconshdlrGetData(), SCIPconsIsChecked(), SCIPconsIsDynamic(), SCIPconsIsEnforced(), SCIPconsIsInitial(), SCIPconsIsLocal(), SCIPconsIsModifiable(), SCIPconsIsPropagated(), SCIPconsIsRemovable(), SCIPconsIsSeparated(), SCIPconsIsStickingAtNode(), and SCIPcreateCons().
◆ SCIP_DECL_CONSINITLP()
|
static |
LP initialization method of constraint handler (called before the initial LP relaxation at a node is solved)
Definition at line 4251 of file cons_and.c.
References addRelaxation(), FALSE, SCIP_CALL, SCIP_OKAY, and SCIPconsIsInitial().
◆ SCIP_DECL_CONSSEPALP()
|
static |
separation method of constraint handler for LP solutions
Definition at line 4269 of file cons_and.c.
References NULL, SCIP_Bool, SCIP_CALL, SCIP_CUTOFF, SCIP_DIDNOTFIND, SCIP_OKAY, SCIP_SEPARATED, and separateCons().
◆ SCIP_DECL_CONSSEPASOL()
|
static |
separation method of constraint handler for arbitrary primal solutions
Definition at line 4296 of file cons_and.c.
References SCIP_Bool, SCIP_CALL, SCIP_CUTOFF, SCIP_DIDNOTFIND, SCIP_OKAY, SCIP_SEPARATED, and separateCons().
◆ SCIP_DECL_CONSENFOLP()
|
static |
constraint enforcing method of constraint handler for LP solutions
Definition at line 4323 of file cons_and.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 4332 of file cons_and.c.
References enforceConstraint(), SCIP_CALL, and SCIP_OKAY.
◆ SCIP_DECL_CONSENFOPS()
|
static |
constraint enforcing method of constraint handler for pseudo solutions
Definition at line 4341 of file cons_and.c.
References checkCons(), FALSE, NULL, SCIP_Bool, SCIP_CALL, SCIP_FEASIBLE, SCIP_INFEASIBLE, SCIP_OKAY, and TRUE.
◆ SCIP_DECL_CONSCHECK()
|
static |
feasibility check method of constraint handler and
Definition at line 4363 of file cons_and.c.
References checkCons(), SCIP_Bool, SCIP_CALL, SCIP_FEASIBLE, SCIP_INFEASIBLE, and SCIP_OKAY.
◆ SCIP_DECL_CONSPROP()
|
static |
domain propagation method of constraint handler
Definition at line 4382 of file cons_and.c.
References FALSE, NULL, propagateCons(), SCIP_Bool, SCIP_CALL, SCIP_CUTOFF, SCIP_DIDNOTFIND, SCIP_OKAY, SCIP_REDUCEDDOM, and SCIPconshdlrGetData().
◆ SCIP_DECL_CONSPRESOL()
|
static |
presolving method of constraint handler
Definition at line 4417 of file cons_and.c.
References applyFixings(), cliquePresolve(), detectRedundantConstraints(), dualPresolve(), FALSE, mergeMultiples(), MINGAINPERNMINCOMPARISONS, NMINCOMPARISONS, NULL, preprocessConstraintPairs(), propagateCons(), SCIP_Bool, SCIP_BOUNDTYPE_LOWER, SCIP_BOUNDTYPE_UPPER, SCIP_CALL, SCIP_CUTOFF, SCIP_DIDNOTFIND, SCIP_Longint, SCIP_OKAY, SCIP_PRESOLTIMING_EXHAUSTIVE, SCIP_Real, SCIP_SUCCESS, SCIPaddVarImplication(), SCIPaggregateVars(), SCIPallocBufferArray, SCIPallowStrongDualReds(), SCIPblkmem(), SCIPconsGetData(), SCIPconsGetName(), SCIPconshdlrGetData(), SCIPconsIsActive(), SCIPconsIsDeleted(), SCIPconsIsModifiable(), SCIPdebugMsg, SCIPdelCons(), SCIPdoNotAggr(), SCIPfreeBufferArray, SCIPgetNContVars(), SCIPgetNVars(), SCIPisFeasEQ(), SCIPisStopped(), SCIPvarGetLbGlobal(), SCIPvarGetUbGlobal(), and TRUE.
◆ SCIP_DECL_CONSRESPROP()
|
static |
propagation conflict resolving method of constraint handler
Definition at line 4646 of file cons_and.c.
References resolvePropagation(), SCIP_CALL, and SCIP_OKAY.
◆ SCIP_DECL_CONSLOCK()
|
static |
variable rounding lock method of constraint handler
Definition at line 4656 of file cons_and.c.
References NULL, SCIP_CALL, SCIP_LOCKTYPE_MODEL, SCIP_OKAY, SCIPaddVarLocksType(), and SCIPconsGetData().
◆ SCIP_DECL_CONSACTIVE()
|
static |
constraint activation notification method of constraint handler
Definition at line 4680 of file cons_and.c.
References addNlrow(), SCIP_CALL, SCIP_OKAY, SCIP_STAGE_SOLVING, SCIPgetStage(), and SCIPisNLPConstructed().
◆ SCIP_DECL_CONSDEACTIVE()
|
static |
constraint deactivation notification method of constraint handler
Definition at line 4692 of file cons_and.c.
References NULL, SCIP_CALL, SCIP_OKAY, SCIP_STAGE_SOLVING, SCIPconsGetData(), SCIPdelNlRow(), and SCIPgetStage().
◆ SCIP_DECL_CONSPRINT()
|
static |
constraint display method of constraint handler
Definition at line 4714 of file cons_and.c.
References consdataPrint(), NULL, SCIP_CALL, SCIP_OKAY, and SCIPconsGetData().
◆ SCIP_DECL_CONSCOPY()
|
static |
constraint copying method of constraint handler
Definition at line 4727 of file cons_and.c.
References NULL, SCIP_CALL, SCIP_INVALIDCALL, SCIP_OKAY, SCIPallocBufferArray, SCIPconsGetName(), SCIPcreateConsAnd(), SCIPfreeBufferArray, SCIPgetNVarsAnd(), SCIPgetResultantAnd(), SCIPgetVarCopy(), SCIPgetVarsAnd(), and TRUE.
◆ SCIP_DECL_CONSPARSE()
|
static |
constraint parsing method of constraint handler
Definition at line 4788 of file cons_and.c.
References FALSE, NULL, SCIP_CALL, SCIP_OKAY, SCIPallocBufferArray, SCIPcreateConsAnd(), SCIPdebugMsg, SCIPduplicateBufferArray, SCIPerrorMessage, SCIPfreeBufferArray, SCIPparseVarName(), SCIPparseVarsList(), SCIPreallocBufferArray, and TRUE.
◆ SCIP_DECL_CONSGETVARS()
|
static |
constraint method of constraint handler which returns the variables (if possible)
Definition at line 4897 of file cons_and.c.
References BMScopyMemoryArray, FALSE, NULL, SCIP_OKAY, SCIPconsGetData(), and TRUE.
◆ SCIP_DECL_CONSGETNVARS()
|
static |
constraint method of constraint handler which returns the number of variable (if possible)
Definition at line 4918 of file cons_and.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 4935 of file cons_and.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 4944 of file cons_and.c.
References addSymmetryInformation(), SCIP_CALL, SCIP_OKAY, and SYM_SYMTYPE_SIGNPERM.
◆ SCIP_DECL_EVENTEXEC()
|
static |
Definition at line 4956 of file cons_and.c.
References FALSE, NULL, SCIP_EVENTTYPE_UBTIGHTENED, SCIP_OKAY, and SCIPeventGetType().