constraint handler for disjunction constraints
Definition in file cons_disjunction.c.
Go to the source code of this file.
Macros | |
#define | CONSHDLR_NAME "disjunction" |
#define | CONSHDLR_DESC "disjunction of constraints (or(cons1, cons2, ..., consn))" |
#define | CONSHDLR_ENFOPRIORITY -950000 |
#define | CONSHDLR_CHECKPRIORITY -900000 |
#define | CONSHDLR_PROPFREQ -1 |
#define | CONSHDLR_EAGERFREQ 100 |
#define | CONSHDLR_MAXPREROUNDS -1 |
#define | CONSHDLR_DELAYPROP FALSE |
#define | CONSHDLR_NEEDSCONS TRUE |
#define | CONSHDLR_PRESOLTIMING SCIP_PRESOLTIMING_FAST |
#define | CONSHDLR_PROP_TIMING SCIP_PROPTIMING_BEFORELP |
#define | DEFAULT_ALWAYSBRANCH TRUE |
Functions | |
static SCIP_RETCODE | consdataCreate (SCIP *scip, SCIP_CONSDATA **consdata, SCIP_CONS **conss, int nconss, SCIP_CONS *relaxcons) |
static SCIP_RETCODE | consdataFree (SCIP *scip, SCIP_CONSDATA **consdata) |
static SCIP_RETCODE | consdataAddCons (SCIP *scip, SCIP_CONSDATA *consdata, SCIP_CONS *cons) |
static SCIP_RETCODE | branchCons (SCIP *scip, SCIP_CONS *cons, SCIP_RESULT *result) |
static SCIP_RETCODE | checkCons (SCIP *scip, SCIP_CONS *cons, SCIP_SOL *sol, SCIP_Bool checkintegrality, SCIP_Bool checklprows, SCIP_Bool printreason, SCIP_RESULT *result) |
static SCIP_RETCODE | propagateCons (SCIP *scip, SCIP_CONS *cons, int *ndelconss) |
static SCIP_RETCODE | enforceConstraint (SCIP *scip, SCIP_CONSHDLR *conshdlr, SCIP_CONS **conss, int nconss, SCIP_RESULT *result) |
static | SCIP_DECL_CONSHDLRCOPY (conshdlrCopyDisjunction) |
static | SCIP_DECL_CONSFREE (consFreeDisjunction) |
static | SCIP_DECL_CONSDELETE (consDeleteDisjunction) |
static | SCIP_DECL_CONSTRANS (consTransDisjunction) |
static | SCIP_DECL_CONSINITLP (consInitlpDisjunction) |
static | SCIP_DECL_CONSENFOLP (consEnfolpDisjunction) |
static | SCIP_DECL_CONSENFORELAX (consEnforelaxDisjunction) |
static | SCIP_DECL_CONSENFOPS (consEnfopsDisjunction) |
static | SCIP_DECL_CONSCHECK (consCheckDisjunction) |
static | SCIP_DECL_CONSPROP (consPropDisjunction) |
static | SCIP_DECL_CONSPRESOL (consPresolDisjunction) |
static | SCIP_DECL_CONSLOCK (consLockDisjunction) |
static | SCIP_DECL_CONSPRINT (consPrintDisjunction) |
static | SCIP_DECL_CONSPARSE (consParseDisjunction) |
static | SCIP_DECL_CONSCOPY (consCopyDisjunction) |
SCIP_RETCODE | SCIPincludeConshdlrDisjunction (SCIP *scip) |
SCIP_RETCODE | SCIPcreateConsDisjunction (SCIP *scip, SCIP_CONS **cons, const char *name, int nconss, SCIP_CONS **conss, SCIP_CONS *relaxcons, SCIP_Bool initial, SCIP_Bool enforce, SCIP_Bool check, SCIP_Bool local, SCIP_Bool modifiable, SCIP_Bool dynamic) |
SCIP_RETCODE | SCIPcreateConsBasicDisjunction (SCIP *scip, SCIP_CONS **cons, const char *name, int nconss, SCIP_CONS **conss, SCIP_CONS *relaxcons) |
SCIP_RETCODE | SCIPaddConsElemDisjunction (SCIP *scip, SCIP_CONS *cons, SCIP_CONS *addcons) |
#define CONSHDLR_NAME "disjunction" |
Definition at line 32 of file cons_disjunction.c.
Referenced by SCIPaddConsElemDisjunction(), SCIPcreateConsDisjunction(), and SCIPincludeConshdlrDisjunction().
#define CONSHDLR_DESC "disjunction of constraints (or(cons1, cons2, ..., consn))" |
Definition at line 33 of file cons_disjunction.c.
Referenced by SCIPincludeConshdlrDisjunction().
#define CONSHDLR_ENFOPRIORITY -950000 |
priority of the constraint handler for constraint enforcing
Definition at line 34 of file cons_disjunction.c.
Referenced by SCIPincludeConshdlrDisjunction().
#define CONSHDLR_CHECKPRIORITY -900000 |
priority of the constraint handler for checking feasibility
Definition at line 35 of file cons_disjunction.c.
Referenced by SCIPincludeConshdlrDisjunction().
#define CONSHDLR_PROPFREQ -1 |
frequency for propagating domains; zero means only preprocessing propagation
Definition at line 36 of file cons_disjunction.c.
Referenced by SCIPincludeConshdlrDisjunction().
#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 37 of file cons_disjunction.c.
Referenced by SCIPincludeConshdlrDisjunction().
#define CONSHDLR_MAXPREROUNDS -1 |
maximal number of presolving rounds the constraint handler participates in (-1: no limit)
Definition at line 40 of file cons_disjunction.c.
Referenced by SCIPincludeConshdlrDisjunction().
#define CONSHDLR_DELAYPROP FALSE |
should propagation method be delayed, if other propagators found reductions?
Definition at line 43 of file cons_disjunction.c.
Referenced by SCIPincludeConshdlrDisjunction().
#define CONSHDLR_NEEDSCONS TRUE |
should the constraint handler be skipped, if no constraints are available?
Definition at line 44 of file cons_disjunction.c.
Referenced by SCIPincludeConshdlrDisjunction().
#define CONSHDLR_PRESOLTIMING SCIP_PRESOLTIMING_FAST |
Definition at line 46 of file cons_disjunction.c.
Referenced by SCIPincludeConshdlrDisjunction().
#define CONSHDLR_PROP_TIMING SCIP_PROPTIMING_BEFORELP |
Definition at line 47 of file cons_disjunction.c.
Referenced by SCIPincludeConshdlrDisjunction().
#define DEFAULT_ALWAYSBRANCH TRUE |
alawys perform branching if one of the constraints is violated, otherwise only if all integers are fixed
Definition at line 50 of file cons_disjunction.c.
Referenced by SCIPincludeConshdlrDisjunction().
|
static |
creates disjunction constraint data, captures initial constraints of disjunction
scip | SCIP data structure |
consdata | pointer to constraint data |
conss | initial constraint in disjunction |
nconss | number of initial constraints in disjunction |
relaxcons | a conjuction constraint containing the liner relaxation of the disjunction constraint, or NULL |
Definition at line 79 of file cons_disjunction.c.
References consdataFree(), SCIP_CALL, SCIP_OKAY, SCIPallocBlockMemory, SCIPcaptureCons(), SCIPduplicateBlockMemoryArray, SCIPisTransformed(), SCIPtransformCons(), and SCIPtransformConss().
Referenced by SCIPcreateConsDisjunction().
|
static |
frees constraint data and releases all constraints in disjunction
scip | SCIP data structure |
consdata | pointer to constraint data |
Definition at line 142 of file cons_disjunction.c.
References consdataAddCons(), SCIP_CALL, SCIP_OKAY, SCIPfreeBlockMemory, SCIPfreeBlockMemoryArrayNull, and SCIPreleaseCons().
Referenced by consdataCreate().
|
static |
adds constraint to disjunction
scip | SCIP data structure |
consdata | constraint data |
cons | constraint to add to the disjunction |
Definition at line 174 of file cons_disjunction.c.
References branchCons(), SCIP_CALL, SCIP_OKAY, SCIPcaptureCons(), SCIPensureBlockMemoryArray, SCIPisTransformed(), and SCIPtransformCons().
Referenced by consdataFree(), and SCIPaddConsElemDisjunction().
|
static |
branches on disjunctive constraint
scip | SCIP data structure |
cons | active disjunction constraint |
result | pointer to store the result |
Definition at line 208 of file cons_disjunction.c.
References checkCons(), SCIP_BRANCHED, SCIP_CALL, SCIP_OKAY, SCIP_Real, SCIPaddConsNode(), SCIPconsGetData(), SCIPconsGetName(), SCIPconsIsChecked(), SCIPconsIsModifiable(), SCIPcreateChild(), SCIPdebugMsg, SCIPdelConsNode(), SCIPgetLocalTransEstimate(), SCIPresetConsAge(), SCIPsetConsChecked(), and TRUE.
Referenced by consdataAddCons(), enforceConssSOS1(), enforceConstraint(), enforceIndicators(), and enforceSOS2().
|
static |
checks disjunction constraints if at least one is feasible
scip | SCIP data structure |
cons | active disjunction constraint |
sol | solution to check |
checkintegrality | Has integrality to be checked? |
checklprows | Do constraints represented by rows in the current LP have to be checked? |
printreason | Should the reason for the violation be printed? |
result | pointer to store the result |
Definition at line 269 of file cons_disjunction.c.
References FALSE, propagateCons(), SCIP_CALL, SCIP_FEASIBLE, SCIP_INFEASIBLE, SCIP_OKAY, SCIPactivateSolViolationUpdates(), SCIPcheckCons(), SCIPconsGetData(), SCIPconsGetName(), SCIPdeactivateSolViolationUpdates(), SCIPdebug, SCIPinfoMessage(), SCIPprintCons(), and SCIPupdateSolConsViolation().
Referenced by branchCons(), enforceConstraint(), and SCIP_DECL_CONSCHECK().
|
static |
propagation method for disjunction constraint
scip | SCIP data structure |
cons | disjunctive constraint |
ndelconss | pointer to count number of deleted constraints |
Definition at line 325 of file cons_disjunction.c.
References enforceConstraint(), SCIP_CALL, SCIP_OKAY, SCIP_STAGE_PRESOLVING, SCIPconsGetData(), SCIPconsIsActive(), SCIPconsIsChecked(), SCIPconsIsDeleted(), SCIPdelCons(), SCIPdelConsLocal(), SCIPgetNNodes(), SCIPgetStage(), SCIPsetConsChecked(), and TRUE.
Referenced by checkCons(), and SCIP_DECL_CONSPROP().
|
static |
helper function to enforce constraints
scip | SCIP data structure |
conshdlr | constraint handler |
conss | constraints to process |
nconss | number of constraints |
result | pointer to store the result of the enforcing call |
Definition at line 388 of file cons_disjunction.c.
References branch(), branchCons(), checkCons(), FALSE, SCIP_Bool, SCIP_BRANCHED, SCIP_CALL, SCIP_DECL_CONSHDLRCOPY(), SCIP_FEASIBLE, SCIP_INFEASIBLE, SCIP_OKAY, SCIPconshdlrGetData(), and SCIPgetNPseudoBranchCands().
Referenced by propagateCons().
|
static |
copy method for constraint handler plugins (called when SCIP copies plugins)
Definition at line 427 of file cons_disjunction.c.
Referenced by enforceConstraint().
|
static |
destructor of constraint handler to free constraint handler data (called when SCIP is exiting)
Definition at line 443 of file cons_disjunction.c.
|
static |
frees specific constraint data
Definition at line 464 of file cons_disjunction.c.
|
static |
transforms constraint data into data belonging to the transformed problem
Definition at line 474 of file cons_disjunction.c.
|
static |
LP initialization method of constraint handler
Definition at line 497 of file cons_disjunction.c.
References SCIP_CALL, SCIP_DECL_CONSENFOLP(), SCIP_OKAY, SCIPaddConsLocal(), SCIPconsGetData(), and SCIPconsIsActive().
|
static |
constraint enforcing method of constraint handler for LP solutions
Definition at line 522 of file cons_disjunction.c.
Referenced by SCIP_DECL_CONSINITLP().
|
static |
constraint enforcing method of constraint handler for relaxation solutions
Definition at line 532 of file cons_disjunction.c.
|
static |
constraint enforcing method of constraint handler for pseudo solutions
Definition at line 542 of file cons_disjunction.c.
|
static |
feasibility check method of constraint handler for integral solutions
Definition at line 552 of file cons_disjunction.c.
References checkCons(), SCIP_CALL, SCIP_DECL_CONSPROP(), SCIP_FEASIBLE, SCIP_INFEASIBLE, and SCIP_OKAY.
|
static |
domain propagation method of constraint handler
Definition at line 576 of file cons_disjunction.c.
References propagateCons(), SCIP_CALL, SCIP_DECL_CONSPRESOL(), SCIP_DIDNOTFIND, SCIP_OKAY, and SCIP_REDUCEDDOM.
Referenced by SCIP_DECL_CONSCHECK().
|
static |
presolving method of constraint handler
Definition at line 605 of file cons_disjunction.c.
Referenced by SCIP_DECL_CONSPROP().
|
static |
variable rounding lock method of constraint handler
Definition at line 659 of file cons_disjunction.c.
|
static |
constraint display method of constraint handler
Definition at line 679 of file cons_disjunction.c.
|
static |
constraint parsing method of constraint handler
Definition at line 714 of file cons_disjunction.c.
|
static |
constraint copying method of constraint handler
Definition at line 922 of file cons_disjunction.c.