constraint handler for orbisack constraints
The type of constraints of this constraint handler is described in cons_orbisack.h.
The details of the method implemented here are described in the following papers:
Describing Orbitopes by Linear Inequalities and Projection Based Tools
Andreas Loos,
PhD thesis, Otto-von-Guericke-Universitaet Magdeburg (2010).
This thesis provides a complete linear description of orbisacks and a separation routine for its inequalities.
Polytopes Associated with Symmetry Handling
Christopher Hojny and Marc E. Pfetsch,
(2017), preprint available at http://www.optimization-online.org/DB_HTML/2017/01/5835.html
This paper describes a linear time separation routine for so-called cover inequalities of orbisacks.
Definition in file cons_orbisack.c.
#include <assert.h>
#include <string.h>
#include <ctype.h>
#include "scip/cons_orbisack.h"
#include "scip/cons_orbitope.h"
#include "scip/cons_setppc.h"
Go to the source code of this file.
Macros | |
#define | CONSHDLR_NAME "orbisack" |
#define | CONSHDLR_DESC "symmetry breaking constraint handler for orbisacks" |
#define | CONSHDLR_SEPAPRIORITY +40100 |
#define | CONSHDLR_ENFOPRIORITY -1005200 |
#define | CONSHDLR_CHECKPRIORITY -1005200 |
#define | CONSHDLR_SEPAFREQ 5 |
#define | CONSHDLR_PROPFREQ 5 |
#define | CONSHDLR_EAGERFREQ -1 |
#define | CONSHDLR_MAXPREROUNDS -1 |
#define | CONSHDLR_DELAYSEPA FALSE |
#define | CONSHDLR_DELAYPROP FALSE |
#define | CONSHDLR_NEEDSCONS TRUE |
#define | CONSHDLR_PROP_TIMING SCIP_PROPTIMING_BEFORELP |
#define | CONSHDLR_PRESOLTIMING SCIP_PRESOLTIMING_EXHAUSTIVE |
#define | DEFAULT_ORBISEPARATION FALSE |
#define | DEFAULT_COVERSEPARATION TRUE |
#define | DEFAULT_COEFFBOUND 1000000.0 |
#define | DEFAULT_PPORBISACK TRUE |
#define | DEFAULT_CHECKALWAYSFEAS TRUE |
Functions | |
static SCIP_RETCODE | consdataFree (SCIP *scip, SCIP_CONSDATA **consdata) |
static SCIP_RETCODE | consdataCreate (SCIP *scip, SCIP_CONSDATA **consdata, SCIP_VAR *const *vars1, SCIP_VAR *const *vars2, int nrows) |
static SCIP_RETCODE | packingUpgrade (SCIP *scip, SCIP_VAR *const *vars1, SCIP_VAR *const *vars2, int nrows, SCIP_Bool *success, SCIP_Bool *isparttype) |
static SCIP_RETCODE | initLP (SCIP *scip, SCIP_CONS *cons, SCIP_Bool *infeasible) |
static SCIP_RETCODE | addOrbisackCover (SCIP *scip, SCIP_CONS *cons, int nrows, SCIP_VAR *const *vars1, SCIP_VAR *const *vars2, SCIP_Real *coeffs1, SCIP_Real *coeffs2, SCIP_Real rhs, SCIP_Bool *infeasible) |
static SCIP_RETCODE | separateOrbisackCovers (SCIP *scip, SCIP_CONS *cons, int nrows, SCIP_VAR *const *vars1, SCIP_VAR *const *vars2, SCIP_Real *vals1, SCIP_Real *vals2, int *ngen, SCIP_Bool *infeasible) |
static SCIP_RETCODE | addOrbisackInequality (SCIP *scip, SCIP_CONS *cons, int nrows, SCIP_VAR *const *vars1, SCIP_VAR *const *vars2, SCIP_Real *coeffs1, SCIP_Real *coeffs2, SCIP_Real rhs, SCIP_Bool *infeasible) |
static SCIP_RETCODE | separateOrbisack (SCIP *scip, SCIP_CONS *cons, int nrows, SCIP_VAR *const *vars1, SCIP_VAR *const *vars2, SCIP_Real *vals1, SCIP_Real *vals2, SCIP_Bool coverseparation, SCIP_Real coeffbound, int *ngen, SCIP_Bool *infeasible) |
static SCIP_RETCODE | propVariables (SCIP *scip, SCIP_CONS *cons, SCIP_Bool *infeasible, SCIP_Bool *found, int *ngen) |
static SCIP_RETCODE | separateInequalities (SCIP *scip, SCIP_RESULT *result, SCIP_CONS *cons, int nrows, SCIP_VAR *const *vars1, SCIP_VAR *const *vars2, SCIP_Real *vals1, SCIP_Real *vals2) |
static | SCIP_DECL_CONSDELETE (consDeleteOrbisack) |
static | SCIP_DECL_CONSFREE (consFreeOrbisack) |
static | SCIP_DECL_CONSTRANS (consTransOrbisack) |
static | SCIP_DECL_CONSINITLP (consInitlpOrbisack) |
static | SCIP_DECL_CONSSEPALP (consSepalpOrbisack) |
static | SCIP_DECL_CONSSEPASOL (consSepasolOrbisack) |
static | SCIP_DECL_CONSENFOLP (consEnfolpOrbisack) |
static | SCIP_DECL_CONSENFOPS (consEnfopsOrbisack) |
static | SCIP_DECL_CONSENFORELAX (consEnforelaxOrbisack) |
static | SCIP_DECL_CONSCHECK (consCheckOrbisack) |
static | SCIP_DECL_CONSPROP (consPropOrbisack) |
static | SCIP_DECL_CONSPRESOL (consPresolOrbisack) |
static | SCIP_DECL_CONSRESPROP (consRespropOrbisack) |
static | SCIP_DECL_CONSLOCK (consLockOrbisack) |
static | SCIP_DECL_CONSPRINT (consPrintOrbisack) |
SCIP_RETCODE | SCIPcheckSolutionOrbisack (SCIP *scip, SCIP_SOL *sol, SCIP_VAR **vars1, SCIP_VAR **vars2, int nrows, SCIP_Bool printreason, SCIP_Bool *feasible) |
SCIP_RETCODE | SCIPseparateCoversOrbisack (SCIP *scip, SCIP_CONS *cons, SCIP_SOL *sol, SCIP_VAR **vars1, SCIP_VAR **vars2, int nrows, SCIP_Bool *infeasible, int *ngen) |
static | SCIP_DECL_CONSGETVARS (consGetVarsOrbisack) |
static | SCIP_DECL_CONSGETNVARS (consGetNVarsOrbisack) |
SCIP_RETCODE | SCIPincludeConshdlrOrbisack (SCIP *scip) |
SCIP_RETCODE | SCIPcreateConsOrbisack (SCIP *scip, SCIP_CONS **cons, const char *name, SCIP_VAR *const *vars1, SCIP_VAR *const *vars2, int nrows, SCIP_Bool ispporbisack, SCIP_Bool isparttype, 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 | SCIPcreateConsBasicOrbisack (SCIP *scip, SCIP_CONS **cons, const char *name, SCIP_VAR **vars1, SCIP_VAR **vars2, int nrows, SCIP_Bool ispporbisack, SCIP_Bool isparttype) |
#define CONSHDLR_NAME "orbisack" |
Definition at line 51 of file cons_orbisack.c.
Referenced by SCIP_DECL_CONSCHECK(), SCIP_DECL_CONSDELETE(), SCIP_DECL_CONSENFOLP(), SCIP_DECL_CONSENFOPS(), SCIP_DECL_CONSENFORELAX(), SCIP_DECL_CONSFREE(), SCIP_DECL_CONSINITLP(), SCIP_DECL_CONSLOCK(), SCIP_DECL_CONSPRESOL(), SCIP_DECL_CONSPRINT(), SCIP_DECL_CONSPROP(), SCIP_DECL_CONSRESPROP(), SCIP_DECL_CONSSEPALP(), SCIP_DECL_CONSSEPASOL(), SCIP_DECL_CONSTRANS(), SCIPcreateConsOrbisack(), and SCIPincludeConshdlrOrbisack().
#define CONSHDLR_DESC "symmetry breaking constraint handler for orbisacks" |
Definition at line 52 of file cons_orbisack.c.
Referenced by SCIPincludeConshdlrOrbisack().
#define CONSHDLR_SEPAPRIORITY +40100 |
priority of the constraint handler for separation
Definition at line 53 of file cons_orbisack.c.
Referenced by SCIPincludeConshdlrOrbisack().
#define CONSHDLR_ENFOPRIORITY -1005200 |
priority of the constraint handler for constraint enforcing
Definition at line 54 of file cons_orbisack.c.
Referenced by SCIPincludeConshdlrOrbisack().
#define CONSHDLR_CHECKPRIORITY -1005200 |
priority of the constraint handler for checking feasibility
Definition at line 55 of file cons_orbisack.c.
Referenced by SCIPincludeConshdlrOrbisack().
#define CONSHDLR_SEPAFREQ 5 |
frequency for separating cuts; zero means to separate only in the root node
Definition at line 56 of file cons_orbisack.c.
Referenced by SCIPincludeConshdlrOrbisack().
#define CONSHDLR_PROPFREQ 5 |
frequency for propagating domains; zero means only preprocessing propagation
Definition at line 57 of file cons_orbisack.c.
Referenced by SCIPincludeConshdlrOrbisack().
#define CONSHDLR_EAGERFREQ -1 |
frequency for using all instead of only the useful constraints in separation, propagation and enforcement, -1 for no eager evaluations, 0 for first only
Definition at line 58 of file cons_orbisack.c.
Referenced by SCIPincludeConshdlrOrbisack().
#define CONSHDLR_MAXPREROUNDS -1 |
maximal number of presolving rounds the constraint handler participates in (-1: no limit)
Definition at line 61 of file cons_orbisack.c.
Referenced by SCIPincludeConshdlrOrbisack().
#define CONSHDLR_DELAYSEPA FALSE |
should separation method be delayed, if other separators found cuts?
Definition at line 62 of file cons_orbisack.c.
Referenced by SCIPincludeConshdlrOrbisack().
#define CONSHDLR_DELAYPROP FALSE |
should propagation method be delayed, if other propagators found reductions?
Definition at line 63 of file cons_orbisack.c.
Referenced by SCIPincludeConshdlrOrbisack().
#define CONSHDLR_NEEDSCONS TRUE |
should the constraint handler be skipped, if no constraints are available?
Definition at line 64 of file cons_orbisack.c.
Referenced by SCIPincludeConshdlrOrbisack().
#define CONSHDLR_PROP_TIMING SCIP_PROPTIMING_BEFORELP |
Definition at line 66 of file cons_orbisack.c.
Referenced by SCIPincludeConshdlrOrbisack().
#define CONSHDLR_PRESOLTIMING SCIP_PRESOLTIMING_EXHAUSTIVE |
Definition at line 67 of file cons_orbisack.c.
Referenced by SCIPincludeConshdlrOrbisack().
#define DEFAULT_ORBISEPARATION FALSE |
whether orbisack inequalities should be separated
Definition at line 70 of file cons_orbisack.c.
Referenced by SCIPincludeConshdlrOrbisack().
#define DEFAULT_COVERSEPARATION TRUE |
whether cover inequalities should be separated
Definition at line 71 of file cons_orbisack.c.
Referenced by SCIPincludeConshdlrOrbisack().
#define DEFAULT_COEFFBOUND 1000000.0 |
maximum size of coefficients in orbisack inequalities
Definition at line 74 of file cons_orbisack.c.
Referenced by SCIPincludeConshdlrOrbisack().
#define DEFAULT_PPORBISACK TRUE |
whether we allow upgrading to packing/partitioning orbisacks
Definition at line 76 of file cons_orbisack.c.
Referenced by SCIPincludeConshdlrOrbisack().
#define DEFAULT_CHECKALWAYSFEAS TRUE |
whether check routine returns always SCIP_FEASIBLE
Definition at line 77 of file cons_orbisack.c.
Referenced by SCIPincludeConshdlrOrbisack().
|
static |
frees orbisack constraint data
scip | SCIP data structure |
consdata | pointer to orbisack constraint data |
Definition at line 109 of file cons_orbisack.c.
References consdataCreate(), SCIP_OKAY, SCIPfreeBlockMemory, and SCIPfreeBlockMemoryArrayNull.
Referenced by SCIP_DECL_CONSDELETE().
|
static |
creates orbisack constraint data
scip | SCIP data structure |
consdata | pointer to store constraint data |
vars1 | first column of variable matrix |
vars2 | second column of variable matrix |
nrows | number of rows in variable matrix |
Definition at line 131 of file cons_orbisack.c.
References packingUpgrade(), SCIP_CALL, SCIP_OKAY, SCIPallocBlockMemory, SCIPduplicateBlockMemoryArray, SCIPgetTransformedVar(), SCIPisTransformed(), SCIPmarkDoNotMultaggrVar(), and SCIPvarIsBinary().
Referenced by consdataFree(), and SCIPcreateConsOrbisack().
|
static |
check wether an orbisack is even a packing/partitioning orbisack
scip | SCIP pointer |
vars1 | first column of matrix of variables on which the symmetry acts |
vars2 | variables of second column |
nrows | number of rows of orbisack |
success | memory address to store whether constraint can be upgraded |
isparttype | memory address to store whether upgraded orbisack is partitioning orbisack |
Definition at line 181 of file cons_orbisack.c.
References FALSE, initLP(), SCIP_Bool, SCIP_CALL, SCIP_OKAY, SCIP_SETPPCTYPE_COVERING, SCIP_SETPPCTYPE_PACKING, SCIP_SETPPCTYPE_PARTITIONING, SCIPallocClearBufferArray, SCIPconshdlrGetConss(), SCIPconshdlrGetNConss(), SCIPfindConshdlr(), SCIPfreeBufferArray, SCIPgetNVarsSetppc(), SCIPgetTypeSetppc(), SCIPgetVarsSetppc(), SCIPvarGetProbindex(), SCIPvarIsNegated(), SCIPwarningMessage(), and TRUE.
Referenced by consdataCreate(), and SCIPcreateConsOrbisack().
|
static |
generate initial LP cut
We generate the inequality of the orbisack on the elements of the first row, i.e., the inequality \(-x_{1,1} + x_{1,2} \leq 0\).
scip | SCIP pointer |
cons | constraint |
infeasible | pointer to store whether we detected infeasibility |
Definition at line 359 of file cons_orbisack.c.
References addOrbisackCover(), FALSE, SCIP_CALL, SCIP_OKAY, SCIPaddRow(), SCIPaddVarToRow(), SCIPconsGetData(), SCIPconsGetHdlr(), SCIPcreateEmptyRowCons(), SCIPinfinity(), SCIPprintRow(), SCIPreleaseRow(), and TRUE.
Referenced by packingUpgrade(), and SCIP_DECL_CONSINITLP().
|
static |
add orbisack cover inequality
scip | SCIP pointer |
cons | constraint |
nrows | number of rows of orbisack |
vars1 | first column of matrix of variables on which the symmetry acts |
vars2 | variables of second column |
coeffs1 | coefficients of the variables of the first column of the inequality to be added |
coeffs2 | coefficients of the variables of the second column of the inequality to be added |
rhs | right-hand side of inequality to be added |
infeasible | pointer to store whether we detected infeasibility |
Definition at line 405 of file cons_orbisack.c.
References FALSE, SCIP_CALL, SCIP_OKAY, SCIPaddRow(), SCIPaddVarToRow(), SCIPcacheRowExtensions(), SCIPconsGetHdlr(), SCIPcreateEmptyRowCons(), SCIPflushRowExtensions(), SCIPinfinity(), SCIPprintRow(), SCIPreleaseRow(), separateOrbisackCovers(), and TRUE.
Referenced by initLP(), and separateOrbisackCovers().
|
static |
Separate lifted orbisack cover inequalities
We currently do NOT enter cuts into the pool.
We iterate over the nrows-many cover inequalities which are potentially maximal w.r.t. their violation.
scip | SCIP pointer |
cons | constraint |
nrows | number of rows of orbisack |
vars1 | first column of matrix of variables on which the symmetry acts |
vars2 | variables of second column |
vals1 | LP-solution for those variables in first column |
vals2 | LP-solution for those variables in second column |
ngen | number of separated covers |
infeasible | pointer to store whether we detected infeasibility |
Definition at line 457 of file cons_orbisack.c.
References addOrbisackCover(), addOrbisackInequality(), FALSE, SCIP_CALL, SCIP_OKAY, SCIP_Real, SCIPallocBufferArray, SCIPfreeBufferArray, and SCIPisEfficacious().
Referenced by addOrbisackCover(), SCIP_DECL_CONSENFOLP(), SCIP_DECL_CONSENFORELAX(), separateInequalities(), and separateOrbisack().
|
static |
add orbisack inequality
scip | SCIP pointer |
cons | constraint |
nrows | number of rows of orbisack |
vars1 | first column of matrix of variables on which the symmetry acts |
vars2 | variables of second column |
coeffs1 | first column of coefficient matrix of inequality to be added |
coeffs2 | second column of coefficient matrix of inequality to be added |
rhs | right-hand side of inequality to be added |
infeasible | pointer to store whether we detected infeasibility |
Definition at line 557 of file cons_orbisack.c.
References FALSE, SCIP_CALL, SCIP_OKAY, SCIPaddRow(), SCIPaddVarToRow(), SCIPcacheRowExtensions(), SCIPconsGetHdlr(), SCIPcreateEmptyRowCons(), SCIPflushRowExtensions(), SCIPinfinity(), SCIPprintRow(), SCIPreleaseRow(), separateOrbisack(), and TRUE.
Referenced by separateOrbisack(), and separateOrbisackCovers().
|
static |
separate orbisack inequalities
We currently do NOT enter cuts into the pool.
We stop if we checked for each possible basement row, whether a cut could be added. If the coefficients grow too large, we start separating cover inequalities.
We implement the separation algorithm for orbisacks described in
A. Loos. Describing Orbitopes by Linear Inequalities and Projection Based Tools. PhD thesis, Otto-von-Guericke-Universitaet Magdeburg, 2010.
scip | SCIP pointer |
cons | constraint |
nrows | number of rows of orbisack |
vars1 | first column of matrix of variables on which the symmetry acts |
vars2 | variables of second column |
vals1 | LP-solution for those variables in first column |
vals2 | LP-solution for those variables in second column |
coverseparation | whether we separate cover inequalities |
coeffbound | maximum size of coefficients in orbisack inequalities |
ngen | pointer to store the number of generated cuts |
infeasible | pointer to store whether we detected infeasibility |
Definition at line 614 of file cons_orbisack.c.
References addOrbisackInequality(), FALSE, propVariables(), SCIP_CALL, SCIP_OKAY, SCIP_Real, SCIPallocBufferArray, SCIPfreeBufferArray, SCIPisEfficacious(), and separateOrbisackCovers().
Referenced by addOrbisackInequality(), and separateInequalities().
|
static |
propagation
scip | SCIP pointer |
cons | constraint to be propagated |
infeasible | pointer to store whether it was detected that the node is infeasible |
found | pointer to store whether a new propagation could be found |
ngen | pointer to store the number of generated bound strengthenings |
Definition at line 762 of file cons_orbisack.c.
References FALSE, SCIP_Bool, SCIP_CALL, SCIP_CONFTYPE_PROPAGATION, SCIP_OKAY, SCIP_Real, SCIPaddConflictBinvar(), SCIPallocBufferArray, SCIPanalyzeConflictCons(), SCIPconsGetData(), SCIPconsGetName(), SCIPdebugMsg, SCIPfreeBufferArray, SCIPinferVarUbCons(), SCIPinitConflictAnalysis(), SCIPisConflictAnalysisApplicable(), SCIPvarGetLbLocal(), SCIPvarGetUbLocal(), SCIPvarIsBinary(), separateInequalities(), and TRUE.
Referenced by SCIP_DECL_CONSPRESOL(), SCIP_DECL_CONSPROP(), and separateOrbisack().
|
static |
separate orbisack and cover inequalities
scip | pointer to scip |
result | pointer to store the result of separation |
cons | constraint |
nrows | number of rows of orbisack |
vars1 | first column of matrix of variables on which the symmetry acts |
vars2 | variables of second column |
vals1 | LP-solution for those variables in first column |
vals2 | LP-solution for those variables in second column |
Definition at line 948 of file cons_orbisack.c.
References FALSE, SCIP_Bool, SCIP_CALL, SCIP_CUTOFF, SCIP_DECL_CONSDELETE(), SCIP_OKAY, SCIP_SEPARATED, SCIPconsGetHdlr(), SCIPconshdlrGetData(), separateOrbisack(), and separateOrbisackCovers().
Referenced by propVariables(), SCIP_DECL_CONSSEPALP(), and SCIP_DECL_CONSSEPASOL().
|
static |
frees specific constraint data
Definition at line 1004 of file cons_orbisack.c.
References consdataFree(), CONSHDLR_NAME, SCIP_CALL, SCIP_DECL_CONSFREE(), SCIP_OKAY, and SCIPconshdlrGetName().
Referenced by separateInequalities().
|
static |
frees constraint handler
Definition at line 1019 of file cons_orbisack.c.
References CONSHDLR_NAME, SCIP_DECL_CONSTRANS(), SCIP_OKAY, SCIPconshdlrGetData(), SCIPconshdlrGetName(), and SCIPfreeBlockMemory.
Referenced by SCIP_DECL_CONSDELETE().
|
static |
transforms constraint data into data belonging to the transformed problem
Definition at line 1038 of file cons_orbisack.c.
References CONSHDLR_NAME, SCIP_CALL, SCIP_DECL_CONSINITLP(), SCIP_OKAY, SCIPallocBlockMemory, SCIPallocBlockMemoryArray, SCIPconsGetData(), SCIPconsGetName(), SCIPconshdlrGetName(), SCIPconsIsChecked(), SCIPconsIsDynamic(), SCIPconsIsEnforced(), SCIPconsIsInitial(), SCIPconsIsLocal(), SCIPconsIsModifiable(), SCIPconsIsPropagated(), SCIPconsIsRemovable(), SCIPconsIsSeparated(), SCIPconsIsStickingAtNode(), SCIPcreateCons(), SCIPdebugMsg, and SCIPgetTransformedVars().
Referenced by SCIP_DECL_CONSFREE().
|
static |
LP initialization method of constraint handler (called before the initial LP relaxation at a node is solved)
Definition at line 1086 of file cons_orbisack.c.
References CONSHDLR_NAME, FALSE, initLP(), SCIP_CALL, SCIP_DECL_CONSSEPALP(), SCIP_OKAY, SCIPconsGetName(), SCIPconshdlrGetName(), and SCIPdebugMsg.
Referenced by SCIP_DECL_CONSTRANS().
|
static |
separation method of constraint handler for LP solution
Definition at line 1118 of file cons_orbisack.c.
References CONSHDLR_NAME, SCIP_CALL, SCIP_CUTOFF, SCIP_DECL_CONSSEPASOL(), SCIP_DIDNOTFIND, SCIP_DIDNOTRUN, SCIP_OKAY, SCIP_Real, SCIPallocBufferArray, SCIPconsGetData(), SCIPconsGetName(), SCIPconshdlrGetName(), SCIPdebugMsg, SCIPfreeBufferArray, SCIPgetNLPBranchCands(), SCIPgetSolVals(), and separateInequalities().
Referenced by SCIP_DECL_CONSINITLP().
|
static |
separation method of constraint handler for arbitrary primal solution
Definition at line 1171 of file cons_orbisack.c.
References CONSHDLR_NAME, SCIP_CALL, SCIP_CUTOFF, SCIP_DECL_CONSENFOLP(), SCIP_DIDNOTFIND, SCIP_OKAY, SCIP_Real, SCIPallocBufferArray, SCIPconsGetData(), SCIPconsGetName(), SCIPconshdlrGetName(), SCIPdebugMsg, SCIPfreeBufferArray, SCIPgetNVars(), SCIPgetSolVals(), and separateInequalities().
Referenced by SCIP_DECL_CONSSEPALP().
|
static |
constraint enforcing method of constraint handler for LP solutions
Definition at line 1227 of file cons_orbisack.c.
References CONSHDLR_NAME, FALSE, SCIP_Bool, SCIP_CALL, SCIP_CUTOFF, SCIP_DECL_CONSENFOPS(), SCIP_FEASIBLE, SCIP_OKAY, SCIP_Real, SCIP_SEPARATED, SCIPallocBufferArray, SCIPconsGetData(), SCIPconsGetName(), SCIPconshdlrGetName(), SCIPdebugMsg, SCIPfreeBufferArray, SCIPgetNLPBranchCands(), SCIPgetNVars(), SCIPgetSolVals(), and separateOrbisackCovers().
Referenced by SCIP_DECL_CONSSEPASOL().
|
static |
constraint enforcing method of constraint handler for pseudo solutions
Definition at line 1297 of file cons_orbisack.c.
References CONSHDLR_NAME, FALSE, SCIP_Bool, SCIP_CALL, SCIP_DECL_CONSENFORELAX(), SCIP_FEASIBLE, SCIP_INFEASIBLE, SCIP_OKAY, SCIPcheckSolutionOrbisack(), SCIPconsGetData(), SCIPconshdlrGetName(), SCIPdebugMsg, and TRUE.
Referenced by SCIP_DECL_CONSENFOLP().
|
static |
constraint enforcing method of constraint handler for relaxation solutions
Definition at line 1341 of file cons_orbisack.c.
References CONSHDLR_NAME, FALSE, SCIP_Bool, SCIP_CALL, SCIP_CUTOFF, SCIP_DECL_CONSCHECK(), SCIP_FEASIBLE, SCIP_OKAY, SCIP_Real, SCIP_SEPARATED, SCIPallocBufferArray, SCIPconsGetData(), SCIPconsGetName(), SCIPconshdlrGetName(), SCIPdebugMsg, SCIPfreeBufferArray, SCIPgetNLPBranchCands(), SCIPgetNVars(), SCIPgetSolVals(), and separateOrbisackCovers().
Referenced by SCIP_DECL_CONSENFOPS().
|
static |
feasibility check method of constraint handler for integral solutions
Definition at line 1411 of file cons_orbisack.c.
References CONSHDLR_NAME, SCIP_Bool, SCIP_CALL, SCIP_DECL_CONSPROP(), SCIP_FEASIBLE, SCIP_INFEASIBLE, SCIP_OKAY, SCIPcheckSolutionOrbisack(), SCIPconsGetData(), SCIPconsGetName(), SCIPconshdlrGetData(), SCIPconshdlrGetName(), SCIPdebugMsg, and TRUE.
Referenced by SCIP_DECL_CONSENFORELAX().
|
static |
domain propagation method of constraint handler
Definition at line 1463 of file cons_orbisack.c.
References CONSHDLR_NAME, FALSE, propVariables(), SCIP_Bool, SCIP_CALL, SCIP_CUTOFF, SCIP_DECL_CONSPRESOL(), SCIP_DIDNOTRUN, SCIP_OKAY, SCIP_REDUCEDDOM, SCIPconshdlrGetName(), and SCIPdebugMsg.
Referenced by SCIP_DECL_CONSCHECK().
|
static |
presolving method of constraint handler
Definition at line 1503 of file cons_orbisack.c.
References CONSHDLR_NAME, FALSE, propVariables(), SCIP_Bool, SCIP_CALL, SCIP_CUTOFF, SCIP_DECL_CONSRESPROP(), SCIP_DIDNOTFIND, SCIP_OKAY, SCIP_SUCCESS, SCIPconshdlrGetName(), and SCIPdebugMsg.
Referenced by SCIP_DECL_CONSPROP().
|
static |
Propagation resolution for conflict analysis
Definition at line 1548 of file cons_orbisack.c.
References CONSHDLR_NAME, FALSE, SCIP_CALL, SCIP_DECL_CONSLOCK(), SCIP_DIDNOTFIND, SCIP_OKAY, SCIP_SUCCESS, SCIPaddConflictLb(), SCIPaddConflictUb(), SCIPconsGetData(), SCIPconshdlrGetName(), SCIPdebugMsg, SCIPvarGetUbAtIndex(), and TRUE.
Referenced by SCIP_DECL_CONSPRESOL().
|
static |
Lock variables
We assume we have only one global (void) constraint and lock all variables.
Definition at line 1612 of file cons_orbisack.c.
References CONSHDLR_NAME, SCIP_CALL, SCIP_DECL_CONSPRINT(), SCIP_OKAY, SCIPaddVarLocks(), SCIPconsGetData(), SCIPconshdlrGetName(), and SCIPdebugMsg.
Referenced by SCIP_DECL_CONSRESPROP().
|
static |
constraint display method of constraint handler
The constraint handler should output a representation of the constraint into the given text file.
Definition at line 1653 of file cons_orbisack.c.
References CONSHDLR_NAME, SCIP_OKAY, SCIPcheckSolutionOrbisack(), SCIPconsGetData(), SCIPconshdlrGetName(), SCIPdebugMsg, SCIPinfoMessage(), and SCIPvarGetName().
Referenced by SCIP_DECL_CONSLOCK().
|
static |
constraint method of constraint handler which returns the variables (if possible)
Definition at line 1855 of file cons_orbisack.c.
References FALSE, SCIP_DECL_CONSGETNVARS(), SCIP_OKAY, SCIPconsGetData(), and TRUE.
Referenced by SCIPseparateCoversOrbisack().
|
static |
constraint method of constraint handler which returns the number of variables (if possible)
Definition at line 1887 of file cons_orbisack.c.
References SCIP_OKAY, SCIPconsGetData(), SCIPincludeConshdlrOrbisack(), and TRUE.
Referenced by SCIP_DECL_CONSGETVARS().