Detailed Description
constraint handler for cumulative constraints with optional activities
Given a set of jobs \(J\). Each job~ \(j\) has a binary variables \(x_j\) which is one if this job is scheduled on that machine (otherwise it is zero), an integer start time variables \(S_j\), a processing time \(p_j\), and a demands \(d_j\). Besides that an integer resource capacity \(C\).
The optcumulative enfoces the cumulative conditions for those jobs which are assigned to that machine. Let \(J'\) be the subset of jobs assigned to that optcumulative constraint, then the cumulative constraint ensures that for each point in time \(t\) \(\sum_{j\in J': S_j \leq t < S_j + p_j} d_j \leq C\) holds.
Propagation:
LP Relaxation:
- let est(J) the earliest start time of all jobs of set \(J\) and lct(J) the latest completion time for all jobs of set \(J\), then the following linear constraint has to hold \(\sum_{j\in J} p_j \cdot d_j \leq (lct(J) - est(J)) \cdot C\)
Definition in file cons_optcumulative.c.
#include <assert.h>
#include <string.h>
#include "cons_optcumulative.h"
#include "scip/cons_cumulative.h"
#include "scip/cons_knapsack.h"
#include "scip/scipdefplugins.h"
Go to the source code of this file.
Functions | |
static SCIP_RETCODE | unlockRounding (SCIP *scip, SCIP_CONS *cons, SCIP_VAR *binvar, SCIP_VAR *var, SCIP_Bool downlock, SCIP_Bool uplock) |
static SCIP_RETCODE | catchEventBinvar (SCIP *scip, SCIP_CONS *cons, SCIP_EVENTHDLR *eventhdlr, int pos) |
static SCIP_RETCODE | dropEventBinvar (SCIP *scip, SCIP_CONS *cons, SCIP_EVENTHDLR *eventhdlr, int pos) |
static SCIP_RETCODE | catchEventIntvar (SCIP *scip, SCIP_CONS *cons, SCIP_EVENTHDLR *eventhdlr, int pos) |
static SCIP_RETCODE | dropEventIntvar (SCIP *scip, SCIP_CONS *cons, SCIP_EVENTHDLR *eventhdlr, int pos) |
static SCIP_RETCODE | catchAllEvents (SCIP *scip, SCIP_CONS *cons, SCIP_EVENTHDLR *eventhdlrbinvars, SCIP_EVENTHDLR *eventhdlrintvars) |
static SCIP_RETCODE | dropAllEvents (SCIP *scip, SCIP_CONS *cons, SCIP_EVENTHDLR *eventhdlrbinvars, SCIP_EVENTHDLR *eventhdlrintvars) |
static void | createSortedEventpoints (SCIP *scip, SCIP_CONSDATA *consdata, int *starttimes, int *endtimes, int *startindices, int *endindices, SCIP_Bool local) |
static SCIP_Longint | computeMaxEnergy (SCIP *scip, SCIP_CONSDATA *consdata, int starttime, int endtime) |
static SCIP_RETCODE | collectVars (SCIP *scip, SCIP_CONSDATA *consdata, SCIP_VAR **vars, SCIP_Longint *weights, int *nvars, int starttime, int endtime) |
static int | removeRedundantRows (SCIP_Longint *rowtightness, int *startidxs, int nrows, SCIP_Longint tightness) |
static SCIP_RETCODE | createRow (SCIP *scip, SCIP_CONSHDLR *conshdlr, const char *name, SCIP_VAR **vars, SCIP_Longint *weights, int nvars, SCIP_Longint capacity, SCIP_Bool local, SCIP_Bool *rowadded, SCIP_Bool *consadded, SCIP_Bool *cutoff) |
static SCIP_RETCODE | addRelaxation (SCIP *scip, SCIP_CONSHDLR *conshdlr, SCIP_CONSHDLRDATA *conshdlrdata, SCIP_CONS *cons, SCIP_Bool *rowadded, SCIP_Bool *consadded, SCIP_Bool *cutoff) |
static void | collectActivities (SCIP_CONSDATA *consdata, SCIP_VAR **binvars, SCIP_VAR **vars, int *durations, int *demands, int *nfixedones, int *nfixedzeros, SCIP_Bool *auxiliary) |
static void | collectSolActivities (SCIP *scip, SCIP_CONSDATA *consdata, SCIP_SOL *sol, SCIP_VAR **binvars, SCIP_VAR **vars, int *durations, int *demands, int *nvars, int *nfixedones, int *nfixedzeros, SCIP_Bool *auxiliary) |
static SCIP_RETCODE | solveCumulative (SCIP *scip, int nvars, SCIP_VAR **vars, int *durations, int *demands, int capacity, int hmin, int hmax, SCIP_Bool local, SCIP_Real *ests, SCIP_Real *lsts, SCIP_Longint maxnodes, SCIP_Bool *solved, SCIP_Bool *infeasible, SCIP_Bool *unbounded, SCIP_Bool *error) |
static SCIP_RETCODE | createConflictCons (SCIP *scip, const char *name, SCIP_VAR **binvars, int nvars) |
static SCIP_RETCODE | checkRedundancy (SCIP *scip, SCIP_CONS *cons, int *ndelconss, SCIP_Bool *redundant) |
static SCIP_RETCODE | solveSubproblem (SCIP *scip, SCIP_CONS *cons, SCIP_Bool conflictanalysis, SCIP_CONSDATA *consdata, SCIP_VAR **binvars, SCIP_VAR **vars, int *durations, int *demands, int nvars, int *nfixedvars, int *nchgbds, int *ndelconss, SCIP_Bool *cutoff) |
static SCIP_RETCODE | checkCons (SCIP *scip, SCIP_CONS *cons, SCIP_SOL *sol, SCIP_Bool *violated, SCIP_Bool printreason) |
static SCIP_RETCODE | enfopsCons (SCIP *scip, SCIP_CONS *cons, SCIP_SOL *trysol, SCIP_Bool *violated, SCIP_Bool *consadded, SCIP_Bool *solfeasible) |
static SCIP_RETCODE | upgradeCons (SCIP *scip, SCIP_CONS *cons, int *ndelconss, int *nupgdconss, SCIP_Bool *mustpropagate) |
static SCIP_RETCODE | fixIntegerVariable (SCIP *scip, SCIP_VAR *var, SCIP_Bool downlock, SCIP_Bool uplock, int *nchgbds) |
static SCIP_RETCODE | consdataDeletePos (SCIP *scip, SCIP_CONSDATA *consdata, SCIP_CONS *cons, int pos) |
static SCIP_RETCODE | applyZeroFixings (SCIP *scip, SCIP_CONS *cons, int *nchgcoefs, int *nchgbds) |
static SCIP_RETCODE | removeIrrelevantJobs (SCIP *scip, SCIP_CONS *cons) |
static SCIP_RETCODE | presolveCumulativeCondition (SCIP *scip, SCIP_CONS *cons, int *nfixedvars, int *nchgcoefs, int *nchgsides, SCIP_Bool *cutoff) |
static SCIP_RETCODE | createSetPackingCons (SCIP *scip, SCIP_VAR *var1, SCIP_VAR *var2) |
static SCIP_RETCODE | createVarboundCons (SCIP *scip, SCIP_VAR *binvar, SCIP_VAR *intvar, int bound, SCIP_Bool lower) |
static SCIP_RETCODE | createBounddisjunctionCons (SCIP *scip, SCIP_VAR *binvar, SCIP_VAR *intvar, int lb, int ub) |
static SCIP_RETCODE | detectImplications (SCIP *scip, SCIP_CONS *cons, int *nchgcoefs, int *naddconss) |
static SCIP_RETCODE | propagateCons (SCIP *scip, SCIP_CONS *cons, SCIP_Bool conflictanalysis, int *nfixedvars, int *nchgbds, int *ndelconss, SCIP_Bool *cutoff) |
static | SCIP_DECL_CONSHDLRCOPY (conshdlrCopyOptcumulative) |
static | SCIP_DECL_CONSFREE (consFreeOptcumulative) |
static | SCIP_DECL_CONSINITPRE (consInitpreOptcumulative) |
static | SCIP_DECL_CONSEXITSOL (consExitsolOptcumulative) |
static | SCIP_DECL_CONSDELETE (consDeleteOptcumulative) |
static | SCIP_DECL_CONSTRANS (consTransOptcumulative) |
static | SCIP_DECL_CONSINITLP (consInitlpOptcumulative) |
static | SCIP_DECL_CONSSEPALP (consSepalpOptcumulative) |
static | SCIP_DECL_CONSENFOLP (consEnfolpOptcumulative) |
static | SCIP_DECL_CONSENFOPS (consEnfopsOptcumulative) |
static | SCIP_DECL_CONSCHECK (consCheckOptcumulative) |
static | SCIP_DECL_CONSPROP (consPropOptcumulative) |
static | SCIP_DECL_CONSPRESOL (consPresolOptcumulative) |
static | SCIP_DECL_CONSRESPROP (consRespropOptcumulative) |
static | SCIP_DECL_CONSLOCK (consLockOptcumulative) |
static | SCIP_DECL_CONSPRINT (consPrintOptcumulative) |
static | SCIP_DECL_CONSCOPY (consCopyOptcumulative) |
static | SCIP_DECL_CONSPARSE (consParseOptcumulative) |
static | SCIP_DECL_EVENTEXEC (eventExecOptcumulativeBinvars) |
static | SCIP_DECL_EVENTEXEC (eventExecOptcumulativeIntvars) |
SCIP_RETCODE | SCIPincludeConshdlrOptcumulative (SCIP *scip) |
SCIP_RETCODE | SCIPcreateConsOptcumulative (SCIP *scip, SCIP_CONS **cons, const char *name, int nvars, SCIP_VAR **vars, SCIP_VAR **binvars, int *durations, int *demands, int capacity, 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 | SCIPsetHminOptcumulative (SCIP *scip, SCIP_CONS *cons, int hmin) |
int | SCIPgetHminOptcumulative (SCIP *scip, SCIP_CONS *cons) |
SCIP_RETCODE | SCIPsetHmaxOptcumulative (SCIP *scip, SCIP_CONS *cons, int hmax) |
int | SCIPgetHmaxOptcumulative (SCIP *scip, SCIP_CONS *cons) |
Debug Methods | |
static void | checkCounters (SCIP_CONSDATA *consdata) |
Miscellaneous Methods | |
static int | convertBoundToInt (SCIP *scip, SCIP_Real bound) |
Constraint data methods | |
static SCIP_RETCODE | consdataCreate (SCIP *scip, SCIP_CONSDATA **consdata, int nvars, SCIP_VAR **vars, SCIP_VAR **binvars, int *durations, int *demands, int capacity, SCIP_Bool check) |
static SCIP_RETCODE | consdataFree (SCIP *scip, SCIP_CONSDATA **consdata) |
static SCIP_RETCODE | consdataPrint (SCIP *scip, SCIP_CONSDATA *consdata, FILE *file) |
Constraint handler data | |
Method used to create and free the constraint handler data when including and removing the cumulative constraint handler. | |
static SCIP_RETCODE | conshdlrdataCreate (SCIP *scip, SCIP_CONSHDLRDATA **conshdlrdata, SCIP_EVENTHDLR *eventhdlrbinvars, SCIP_EVENTHDLR *eventhdlrintvars) |
static SCIP_RETCODE | conshdlrdataFree (SCIP *scip, SCIP_CONSHDLRDATA **conshdlrdata) |
Macro Definition Documentation
◆ CONSHDLR_NAME
#define CONSHDLR_NAME "optcumulative" |
Definition at line 78 of file cons_optcumulative.c.
◆ CONSHDLR_DESC
#define CONSHDLR_DESC "constraint handler for cumulative constraints with optional activities" |
Definition at line 79 of file cons_optcumulative.c.
◆ CONSHDLR_SEPAPRIORITY
#define CONSHDLR_SEPAPRIORITY 0 |
priority of the constraint handler for separation
Definition at line 80 of file cons_optcumulative.c.
◆ CONSHDLR_ENFOPRIORITY
#define CONSHDLR_ENFOPRIORITY -2060000 |
priority of the constraint handler for constraint enforcing
Definition at line 81 of file cons_optcumulative.c.
◆ CONSHDLR_CHECKPRIORITY
#define CONSHDLR_CHECKPRIORITY -3100000 |
priority of the constraint handler for checking feasibility
Definition at line 82 of file cons_optcumulative.c.
◆ CONSHDLR_SEPAFREQ
#define CONSHDLR_SEPAFREQ 1 |
frequency for separating cuts; zero means to separate only in the root node
Definition at line 83 of file cons_optcumulative.c.
◆ CONSHDLR_PROPFREQ
#define CONSHDLR_PROPFREQ 1 |
frequency for propagating domains; zero means only preprocessing propagation
Definition at line 84 of file cons_optcumulative.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 86 of file cons_optcumulative.c.
◆ CONSHDLR_MAXPREROUNDS
#define CONSHDLR_MAXPREROUNDS -1 |
maximal number of presolving rounds the constraint handler participates in (-1: no limit)
Definition at line 87 of file cons_optcumulative.c.
◆ CONSHDLR_DELAYSEPA
#define CONSHDLR_DELAYSEPA FALSE |
should separation method be delayed, if other separators found cuts?
Definition at line 88 of file cons_optcumulative.c.
◆ CONSHDLR_DELAYPROP
#define CONSHDLR_DELAYPROP FALSE |
should propagation method be delayed, if other propagators found reductions?
Definition at line 89 of file cons_optcumulative.c.
◆ CONSHDLR_NEEDSCONS
#define CONSHDLR_NEEDSCONS TRUE |
should the constraint handler be skipped, if no constraints are available?
Definition at line 90 of file cons_optcumulative.c.
◆ CONSHDLR_PROP_TIMING
#define CONSHDLR_PROP_TIMING SCIP_PROPTIMING_BEFORELP |
Definition at line 92 of file cons_optcumulative.c.
◆ CONSHDLR_PRESOLTIMING
#define CONSHDLR_PRESOLTIMING SCIP_PRESOLTIMING_MEDIUM |
Definition at line 93 of file cons_optcumulative.c.
◆ EVENTHDLR_BINVARS_NAME
#define EVENTHDLR_BINVARS_NAME "optcumulativebinvars" |
Definition at line 102 of file cons_optcumulative.c.
◆ EVENTHDLR_BINVARS_DESC
#define EVENTHDLR_BINVARS_DESC "bound change event handler for binary variables of optcumulative constraints" |
Definition at line 103 of file cons_optcumulative.c.
◆ EVENTHDLR_INTVARS_NAME
#define EVENTHDLR_INTVARS_NAME "optcumulativeintvars" |
Definition at line 105 of file cons_optcumulative.c.
◆ EVENTHDLR_INTVARS_DESC
#define EVENTHDLR_INTVARS_DESC "bound change event handler for integer variables of optcumulative constraints" |
Definition at line 106 of file cons_optcumulative.c.
◆ DEFAULT_ROWRELAX
#define DEFAULT_ROWRELAX FALSE |
add linear relaxation as LP row (otherwise a knapsack constraint is created)?
Definition at line 115 of file cons_optcumulative.c.
◆ DEFAULT_CONFLICTANALYSIS
#define DEFAULT_CONFLICTANALYSIS TRUE |
participate in conflict analysis?"
Definition at line 116 of file cons_optcumulative.c.
◆ DEFAULT_INTERVALRELAX
#define DEFAULT_INTERVALRELAX TRUE |
create a relaxation for each start and end time point interval
Definition at line 117 of file cons_optcumulative.c.
◆ consInitOptcumulative
#define consInitOptcumulative NULL |
initialization method of constraint handler (called after problem was transformed)
Definition at line 3020 of file cons_optcumulative.c.
◆ consExitOptcumulative
#define consExitOptcumulative NULL |
deinitialization method of constraint handler (called before transformed problem is freed)
Definition at line 3024 of file cons_optcumulative.c.
◆ consExitpreOptcumulative
#define consExitpreOptcumulative NULL |
presolving deinitialization method of constraint handler (called after presolving has been finished)
Definition at line 3059 of file cons_optcumulative.c.
◆ consInitsolOptcumulative
#define consInitsolOptcumulative NULL |
solving process initialization method of constraint handler (called when branch and bound process is about to begin)
Definition at line 3063 of file cons_optcumulative.c.
◆ consEnforelaxOptcomulative
#define consEnforelaxOptcomulative NULL |
constraint enforcing method of constraint handler for relaxation solutions
Definition at line 3066 of file cons_optcumulative.c.
◆ consSepasolOptcumulative
#define consSepasolOptcumulative NULL |
separation method of constraint handler for arbitrary primal solutions
Definition at line 3234 of file cons_optcumulative.c.
◆ consActiveOptcumulative
#define consActiveOptcumulative NULL |
constraint activation notification method of constraint handler
Definition at line 3817 of file cons_optcumulative.c.
◆ consDeactiveOptcumulative
#define consDeactiveOptcumulative NULL |
constraint deactivation notification method of constraint handler
Definition at line 3821 of file cons_optcumulative.c.
◆ consEnableOptcumulative
#define consEnableOptcumulative NULL |
constraint enabling notification method of constraint handler
Definition at line 3825 of file cons_optcumulative.c.
◆ consDisableOptcumulative
#define consDisableOptcumulative NULL |
constraint disabling notification method of constraint handler
Definition at line 3829 of file cons_optcumulative.c.
◆ consDelvarsOptcumulative
#define consDelvarsOptcumulative NULL |
variable deletion method of constraint handler
Definition at line 3832 of file cons_optcumulative.c.
Function Documentation
◆ checkCounters()
|
static |
check constraint state (nglbfixedones and nglbfixedzeros)
- Parameters
-
consdata optcumulative constraint data
Definition at line 176 of file cons_optcumulative.c.
References SCIPvarGetLbGlobal(), SCIPvarGetLbLocal(), SCIPvarGetUbGlobal(), and SCIPvarGetUbLocal().
Referenced by applyZeroFixings(), catchAllEvents(), consdataDeletePos(), propagateCons(), and upgradeCons().
◆ convertBoundToInt()
converts the given double bound which is integral to an int; in optimized mode the function gets inlined for performance; in debug mode we check some additional conditions
- Parameters
-
scip SCIP data structure bound double bound to convert
Definition at line 227 of file cons_optcumulative.c.
References bound, SCIP_Real, SCIPisEQ(), and SCIPisIntegral().
Referenced by addRelaxation(), checkRedundancy(), collectVars(), computeMaxEnergy(), createSortedEventpoints(), detectImplications(), enfopsCons(), presolveCumulativeCondition(), propagateCons(), removeIrrelevantJobs(), and solveSubproblem().
◆ consdataCreate()
|
static |
creates constraint data of optcumulative constraint
- Parameters
-
scip SCIP data structure consdata pointer to consdata nvars number of variables vars array of integer variables binvars array of variable representing if the job has to be processed on this machine durations array containing corresponding durations demands array containing corresponding demands capacity available cumulative capacity check is the corresponding constraint a check constraint
Definition at line 250 of file cons_optcumulative.c.
References FALSE, NULL, SCIP_CALL, SCIP_OKAY, SCIPallocBlockMemory, SCIPdebugMessage, SCIPduplicateBlockMemoryArray, SCIPgetTransformedVars(), SCIPisTransformed(), and SCIPmarkDoNotMultaggrVar().
Referenced by SCIP_DECL_CONSTRANS(), and SCIPcreateConsOptcumulative().
◆ consdataFree()
|
static |
frees a optcumulative constraint data
- Parameters
-
scip SCIP data structure consdata pointer to linear constraint data
Definition at line 347 of file cons_optcumulative.c.
References NULL, SCIP_CALL, SCIP_OKAY, SCIPfreeBlockMemory, SCIPfreeBlockMemoryArray, SCIPreleaseCons(), and SCIPreleaseRow().
Referenced by SCIP_DECL_CONSDELETE().
◆ consdataPrint()
|
static |
prints optcumulative constraint to file stream
- Parameters
-
scip SCIP data structure consdata optcumulative constraint data file output file (or NULL for standard output)
Definition at line 390 of file cons_optcumulative.c.
References FALSE, NULL, SCIP_CALL, SCIP_OKAY, SCIPinfoMessage(), SCIPvarGetLbLocal(), SCIPvarGetUbLocal(), and SCIPwriteVarName().
Referenced by SCIP_DECL_CONSPRINT().
◆ conshdlrdataCreate()
|
static |
creates constaint handler data for set partitioning / packing / covering constraint handler
- Parameters
-
scip SCIP data structure conshdlrdata pointer to store the constraint handler data eventhdlrbinvars used event handler for tracing bound changes on binary variables eventhdlrintvars used event handler for tracing bound changes on integer variables
Definition at line 433 of file cons_optcumulative.c.
References NULL, SCIP_CALL, SCIP_OKAY, and SCIPallocBlockMemory.
Referenced by SCIPincludeConshdlrOptcumulative().
◆ conshdlrdataFree()
|
static |
frees constraint handler data for set partitioning / packing / covering constraint handler
- Parameters
-
scip SCIP data structure conshdlrdata pointer to the constraint handler data
Definition at line 456 of file cons_optcumulative.c.
References NULL, SCIP_OKAY, and SCIPfreeBlockMemory.
Referenced by SCIP_DECL_CONSFREE().
◆ unlockRounding()
|
static |
removes rounding locks for the given variable in the given optcumulative constraint
- Parameters
-
scip SCIP data structure cons optcumulative constraint binvar decision variable var start time variable downlock has the integer start time variable a down lock uplock has the integer start time variable an up lock
Definition at line 473 of file cons_optcumulative.c.
References FALSE, SCIP_CALL, SCIP_OKAY, SCIPunlockVarCons(), and TRUE.
Referenced by consdataDeletePos().
◆ catchEventBinvar()
|
static |
catches events for binary variable at given position
- Parameters
-
scip SCIP data structure cons set partitioning / packing / covering constraint eventhdlr event handler to call for the event processing pos array position of variable to catch bound change events for
Definition at line 493 of file cons_optcumulative.c.
References NULL, SCIP_CALL, SCIP_EVENTTYPE_BOUNDRELAXED, SCIP_EVENTTYPE_BOUNDTIGHTENED, SCIP_EVENTTYPE_GBDCHANGED, SCIP_OKAY, SCIPcatchVarEvent(), SCIPconsGetData(), SCIPvarGetLbGlobal(), SCIPvarGetLbLocal(), SCIPvarGetUbGlobal(), and SCIPvarGetUbLocal().
Referenced by catchAllEvents().
◆ dropEventBinvar()
|
static |
drops events for binary variable at given position
- Parameters
-
scip SCIP data structure cons set partitioning / packing / covering constraint eventhdlr event handler to call for the event processing pos array position of variable to catch bound change events for
Definition at line 546 of file cons_optcumulative.c.
References NULL, SCIP_CALL, SCIP_EVENTTYPE_BOUNDRELAXED, SCIP_EVENTTYPE_BOUNDTIGHTENED, SCIP_EVENTTYPE_GBDCHANGED, SCIP_OKAY, SCIPconsGetData(), SCIPdropVarEvent(), SCIPvarGetLbGlobal(), SCIPvarGetLbLocal(), SCIPvarGetUbGlobal(), and SCIPvarGetUbLocal().
Referenced by consdataDeletePos(), and dropAllEvents().
◆ catchEventIntvar()
|
static |
catches events for integer variable at given position
- Parameters
-
scip SCIP data structure cons set partitioning / packing / covering constraint eventhdlr event handler to call for the event processing pos array position of variable to catch bound change events for
Definition at line 593 of file cons_optcumulative.c.
References NULL, SCIP_CALL, SCIP_EVENTTYPE_BOUNDTIGHTENED, SCIP_EVENTTYPE_GBDCHANGED, SCIP_OKAY, SCIPcatchVarEvent(), and SCIPconsGetData().
Referenced by catchAllEvents().
◆ dropEventIntvar()
|
static |
drops events for integer variable at given position
- Parameters
-
scip SCIP data structure cons set partitioning / packing / covering constraint eventhdlr event handler to call for the event processing pos array position of variable to catch bound change events for
Definition at line 628 of file cons_optcumulative.c.
References NULL, SCIP_CALL, SCIP_EVENTTYPE_BOUNDTIGHTENED, SCIP_EVENTTYPE_GBDCHANGED, SCIP_OKAY, SCIPconsGetData(), and SCIPdropVarEvent().
Referenced by consdataDeletePos(), and dropAllEvents().
◆ catchAllEvents()
|
static |
catches bound change events for all variables in transformed optcumulative constraint
- Parameters
-
scip SCIP data structure cons set partitioning / packing / covering constraint eventhdlrbinvars event handler to call for the event processing on binary variables eventhdlrintvars event handler to call for the event processing on integer variables
Definition at line 658 of file cons_optcumulative.c.
References catchEventBinvar(), catchEventIntvar(), checkCounters(), NULL, SCIP_CALL, SCIP_OKAY, and SCIPconsGetData().
Referenced by SCIP_DECL_CONSTRANS(), and SCIPcreateConsOptcumulative().
◆ dropAllEvents()
|
static |
drops bound change events for all variables in transformed optcumulative constraint
- Parameters
-
scip SCIP data structure cons set partitioning / packing / covering constraint eventhdlrbinvars event handler to call for the event processing on binary variables eventhdlrintvars event handler to call for the event processing on integer variables
Definition at line 691 of file cons_optcumulative.c.
References dropEventBinvar(), dropEventIntvar(), NULL, SCIP_CALL, SCIP_OKAY, and SCIPconsGetData().
Referenced by SCIP_DECL_CONSDELETE().
◆ createSortedEventpoints()
|
static |
initialize the sorted event point arrays
- Parameters
-
scip SCIP data structure consdata constraint data starttimes array to store sorted start events endtimes array to store sorted end events startindices permutation with rspect to the start times endindices permutation with rspect to the end times local shall local bounds be used
Definition at line 723 of file cons_optcumulative.c.
References convertBoundToInt(), SCIPsortIntInt(), SCIPvarGetLbGlobal(), SCIPvarGetLbLocal(), SCIPvarGetUbGlobal(), and SCIPvarGetUbLocal().
Referenced by addRelaxation().
◆ computeMaxEnergy()
|
static |
computes the maximum energy for all variables which correspond to jobs which start between the given start time and end time
- Returns
- Maximum energy for the given time window
- Parameters
-
scip SCIP data structure consdata optcumulative constraint data starttime start time endtime end time
Definition at line 769 of file cons_optcumulative.c.
References convertBoundToInt(), SCIP_Longint, SCIPvarGetLbGlobal(), and SCIPvarGetUbGlobal().
Referenced by addRelaxation().
◆ collectVars()
|
static |
collects all variables which correspond to jobs which start between the given start time and end time
- Parameters
-
scip SCIP data structure consdata optcumulative constraint data vars array to store the variables weights array to store the weights nvars pointer to store the number of collected variables starttime start time endtime end time
Definition at line 800 of file cons_optcumulative.c.
References convertBoundToInt(), SCIP_Longint, SCIP_OKAY, SCIPvarGetLbGlobal(), and SCIPvarGetUbGlobal().
Referenced by addRelaxation().
◆ removeRedundantRows()
|
static |
remove row which have a tightness which is smaller or equal to the given one
- Returns
- The number of remaining rows
- Parameters
-
rowtightness array containing the tightness for the previously selected rows startidxs array containing for each row the index for the start event nrows current number of rows tightness tightness to use to detect redundant rows
Definition at line 838 of file cons_optcumulative.c.
Referenced by addRelaxation().
◆ createRow()
|
static |
depending on the parameters setting a row or an knapsack constraint is created
- Parameters
-
scip SCIP data structure conshdlr constraint handler name name of the row vars array of variable representing if the job has to be processed on this machine weights start time variables of the activities which are assigned nvars number of variables capacity available cumulative capacity local create local row rowadded pointer to store if a row was added consadded pointer to store if a constraint was added cutoff pointer to store whether a cutoff occurred
Definition at line 865 of file cons_optcumulative.c.
References FALSE, NULL, SCIP_CALL, SCIP_OKAY, SCIP_Real, SCIPaddCons(), SCIPaddRow(), SCIPaddVarToRow(), SCIPcacheRowExtensions(), SCIPconshdlrGetData(), SCIPcreateConsKnapsack(), SCIPcreateEmptyRowConshdlr(), SCIPdebug, SCIPflushRowExtensions(), SCIPgetDepth(), SCIPinfinity(), SCIPisCutEfficacious(), SCIPprintCons(), SCIPprintRow(), SCIPreleaseCons(), SCIPreleaseRow(), SCIProwIsInLP(), and TRUE.
Referenced by addRelaxation().
◆ addRelaxation()
|
static |
adds linear relaxation as cut to the LP
- Parameters
-
scip SCIP data structure conshdlr constraint handler conshdlrdata constraint handler data structure cons optcumulative constraint rowadded pointer to store if a row was added consadded pointer to store if a constraint was added cutoff pointer to store whether a cutoff occurred
Definition at line 936 of file cons_optcumulative.c.
References BMSclearMemoryArray, collectVars(), computeMaxEnergy(), convertBoundToInt(), createRow(), createSortedEventpoints(), FALSE, MAX, MIN, NULL, removeRedundantRows(), SCIP_CALL, SCIP_Longint, SCIP_LONGINT_FORMAT, SCIP_MAXSTRLEN, SCIP_OKAY, SCIPallocBufferArray, SCIPconsGetData(), SCIPconsGetName(), SCIPdebugMessage, SCIPfreeBufferArray, SCIPrestartSolve(), SCIPsnprintf(), SCIPvarGetLbLocal(), SCIPvarGetUbLocal(), and TRUE.
Referenced by SCIP_DECL_CONSINITLP(), and SCIP_DECL_CONSSEPALP().
◆ collectActivities()
|
static |
collect all activities which are locally (that means in the current branch and bound node) assigned to that machine
- Parameters
-
consdata constraint data binvars array of variable representing if the job has to be processed on this machine vars start time variables of the activities which are assigned durations durations of the activities demands demands of the activities nfixedones pointer to store number of activities assigned to that machine nfixedzeros pointer to store number of binary variables fixed to zeor auxiliary pointer to store if the integer start time variables of the assigned activities are auxiliary variables; that is the case if the optcumulative choice constraints is the only one having locks on these variables
Definition at line 1163 of file cons_optcumulative.c.
References FALSE, SCIPdebugMessage, SCIPvarGetLbLocal(), SCIPvarGetName(), SCIPvarGetNLocksDown(), SCIPvarGetNLocksUp(), SCIPvarGetUbGlobal(), SCIPvarGetUbLocal(), and TRUE.
Referenced by propagateCons(), and upgradeCons().
◆ collectSolActivities()
|
static |
collect all activities which are assigned to that machine in the given solution
- Parameters
-
scip SCIP data structure consdata constraint data sol primal solution, or NULL for current LP/pseudo solution binvars array of variable representing if the job has to be processed on this machine vars start time variables of the activities which are assigned durations durations of the activities demands demands of the activities nvars pointer to store number of activities assigned to that machine nfixedones pointer to store number of binary variables locally fixed to one nfixedzeros pointer to store number of binary variables locally fixed to zero auxiliary pointer to store if the integer start time variables of the assigned activities are auxiliary variables; that is the case if the machine choice constraints is the only one haveing locks on these variables
Definition at line 1218 of file cons_optcumulative.c.
References FALSE, SCIPdebugMessage, SCIPgetSolVal(), SCIPvarGetLbLocal(), SCIPvarGetName(), SCIPvarGetNLocksDown(), SCIPvarGetNLocksUp(), SCIPvarGetUbLocal(), and TRUE.
Referenced by checkCons(), and enfopsCons().
◆ solveCumulative()
|
static |
solves given cumulative condition as independent sub problem
- Note
- The time and memory limit of the SCIP environment in transferred to sub solver
- If the problem was solved to the earliest start times (ests) and latest start times (lsts) array contain the solution values; If the problem was not solved these two arrays contain the global bounds at the time the sub solver was interrupted.
- Parameters
-
scip SCIP data structure nvars number of start time variables (activities) vars start time variables durations array of durations demands array of demands capacity cumulative capacity hmin left bound of time axis to be considered (including hmin) hmax right bound of time axis to be considered (not including hmax) local use local bounds, otherwise global ests array to store the earlier start time for each job lsts array to store the latest start time for each job maxnodes maximum number of branch-and-bound nodes to solve the single cumulative constraint (-1: no limit) solved pointer to store if the problem is solved (to optimality) infeasible pointer to store if the problem is infeasible unbounded pointer to store if the problem is unbounded error pointer to store if an error occurred
Definition at line 1276 of file cons_optcumulative.c.
References NULL, SCIP_CALL, SCIP_OKAY, SCIP_Real, SCIPallocBufferArray, SCIPfreeBufferArray, SCIPgetMemExternEstim(), SCIPgetMemUsed(), SCIPgetRealParam(), SCIPgetSolvingTime(), SCIPisInfinity(), SCIPsolveCumulative(), SCIPvarGetLbGlobal(), SCIPvarGetLbLocal(), SCIPvarGetObj(), SCIPvarGetUbGlobal(), and SCIPvarGetUbLocal().
Referenced by checkRedundancy(), enfopsCons(), SCIPsetSolveCumulative(), and solveSubproblem().
◆ createConflictCons()
|
static |
create a logicor constraint which ensures that the jobs related to binary variables are not assigned in the same time to this optional cumulative constraint
- Parameters
-
scip SCIP data structure name name of conflict constraint binvars array of binary variables nvars number of variables
Definition at line 1350 of file cons_optcumulative.c.
References FALSE, NULL, SCIP_CALL, SCIP_OKAY, SCIPaddCoefLogicor(), SCIPaddCons(), SCIPcreateConsLogicor(), SCIPgetNegatedVar(), SCIPreleaseCons(), SCIPvarGetLbGlobal(), and TRUE.
Referenced by checkRedundancy(), and enfopsCons().
◆ checkRedundancy()
|
static |
check of the given constraint is redundant
- Parameters
-
scip SCIP data structure cons optcumulative constraint which collapsed to a cumulative constraint locally ndelconss pointer to store the number of deleted constraints redundant pointer to store if the constraint is redundant
Definition at line 1384 of file cons_optcumulative.c.
References convertBoundToInt(), createConflictCons(), FALSE, NULL, SCIP_Bool, SCIP_CALL, SCIP_ERROR, SCIP_OKAY, SCIP_Real, SCIPallocBufferArray, SCIPchgVarLbGlobal(), SCIPchgVarUbGlobal(), SCIPconsGetData(), SCIPconsGetName(), SCIPdelConsLocal(), SCIPfreeBufferArray, SCIPinProbing(), SCIPsortRealPtrPtrIntInt(), SCIPvarGetLbGlobal(), SCIPvarGetNLocksDown(), SCIPvarGetNLocksUp(), SCIPvarGetUbGlobal(), solveCumulative(), and TRUE.
Referenced by SCIP_DECL_CONSPROP().
◆ solveSubproblem()
|
static |
solve the cumulative sub problem
- Parameters
-
scip SCIP data structure cons optcumulative constraint which collapsed to a cumulative constraint locally conflictanalysis should conflict analysis be called for infeasible subproblems consdata constraint data binvars array of variable representing if the job has to be processed on this machine vars start time variables of the activities which are assigned durations durations of the activities demands demands of the activities nvars number of activities assigned to that machine nfixedvars pointer to store the numbver of fixed variables nchgbds pointer to store the number of changed bounds ndelconss pointer to store the number of deleted constraints cutoff pointer to store if the constraint is violated
Definition at line 1531 of file cons_optcumulative.c.
References convertBoundToInt(), FALSE, NULL, SCIP_Bool, SCIP_CALL, SCIP_CONFTYPE_PROPAGATION, SCIP_ERROR, SCIP_OKAY, SCIP_Real, SCIPaddConflictBinvar(), SCIPaddConflictLb(), SCIPaddConflictUb(), SCIPallocBufferArray, SCIPanalyzeConflictCons(), SCIPdelConsLocal(), SCIPfixVar(), SCIPfreeBufferArray, SCIPinitConflictAnalysis(), SCIPinProbing(), SCIPsortRealPtrPtrIntInt(), SCIPtightenVarLb(), SCIPtightenVarUb(), SCIPvarGetLbLocal(), SCIPvarGetUbLocal(), solveCumulative(), and TRUE.
Referenced by propagateCons().
◆ checkCons()
|
static |
check if the given constrait is valid; checks each starting point of a job whether the remaining capacity is at least zero or not. If not (*violated) is set to TRUE
- Parameters
-
scip SCIP data structure cons constraint to be checked sol primal solution, or NULL for current LP/pseudo solution violated pointer to store if the constraint is violated printreason should the reason for the violation be printed?
Definition at line 1692 of file cons_optcumulative.c.
References collectSolActivities(), NULL, SCIP_Bool, SCIP_CALL, SCIP_OKAY, SCIPallocBufferArray, SCIPcheckCumulativeCondition(), SCIPconsGetData(), SCIPconsGetName(), SCIPdebugMessage, and SCIPfreeBufferArray.
Referenced by SCIP_DECL_CONSCHECK().
◆ enfopsCons()
|
static |
check if the given constrait is valid; checks each starting point of a job whether the remaining capacity is at least zero or not. If not (*violated) is set to TRUE
- Parameters
-
scip SCIP data structure cons constraint to be checked trysol primal solution to construct, or NULL violated pointer to store if the constraint is violated/infeasible consadded pointer to store if a constraint was added solfeasible pointer to store if the constraint solution is potentially feasible
Definition at line 1747 of file cons_optcumulative.c.
References collectSolActivities(), convertBoundToInt(), createConflictCons(), FALSE, NULL, SCIP_Bool, SCIP_CALL, SCIP_OKAY, SCIP_Real, SCIPallocBufferArray, SCIPcheckCumulativeCondition(), SCIPconsGetData(), SCIPconsGetName(), SCIPdebugMessage, SCIPfreeBufferArray, SCIPisStopped(), SCIPsetSolVal(), SCIPsortRealPtrPtrIntInt(), SCIPvarGetLbGlobal(), SCIPvarGetUbGlobal(), solveCumulative(), and TRUE.
Referenced by SCIP_DECL_CONSENFOLP(), and SCIP_DECL_CONSENFOPS().
◆ upgradeCons()
|
static |
upgrade constraints to an cumulative constraint
- Parameters
-
scip SCIP data structure cons constraint to be checked ndelconss pointer to store the number of deleted constraints nupgdconss pointer to store the number of upgrade constraints mustpropagate pointer to store if the constraints has to be propagated
Definition at line 1951 of file cons_optcumulative.c.
References checkCounters(), collectActivities(), FALSE, NULL, SCIP_Bool, SCIP_CALL, SCIP_MAXSTRLEN, SCIP_OKAY, SCIPaddCons(), SCIPaddConsLocal(), SCIPallocBufferArray, SCIPconsGetData(), SCIPconsGetName(), SCIPconsIsChecked(), SCIPconsIsDeleted(), SCIPconsIsDynamic(), SCIPconsIsEnforced(), SCIPconsIsInitial(), SCIPconsIsLocal(), SCIPconsIsModifiable(), SCIPconsIsPropagated(), SCIPconsIsRemovable(), SCIPconsIsSeparated(), SCIPconsIsStickingAtNode(), SCIPcreateConsCumulative(), SCIPdebugMessage, SCIPdelCons(), SCIPdelConsLocal(), SCIPfixVar(), SCIPfreeBufferArray, SCIPreleaseCons(), SCIPsetHmaxCumulative(), SCIPsetHminCumulative(), SCIPsnprintf(), and TRUE.
Referenced by SCIP_DECL_CONSPRESOL(), and SCIP_DECL_CONSPROP().
◆ fixIntegerVariable()
|
static |
since the binary variable is fixed to zero, depending in the objective coefficient of the integer variable and the rounding locks, we might can fix the integer variable
- Parameters
-
scip SCIP data structure var integer variable to fix downlock does the variable has down lock given by the optcumulative constraint uplock does the variable has up lock given by the optcumulative constraint nchgbds pointer to store the number changed variable bounds
Definition at line 2075 of file cons_optcumulative.c.
References SCIP_Bool, SCIP_CALL, SCIP_INVALID, SCIP_OKAY, SCIP_Real, SCIPfixVar(), SCIPinProbing(), SCIPinRepropagation(), SCIPisNegative(), SCIPisPositive(), SCIPisZero(), SCIPvarGetLbLocal(), SCIPvarGetNLocksDown(), SCIPvarGetNLocksUp(), SCIPvarGetObj(), and SCIPvarGetUbLocal().
Referenced by applyZeroFixings(), and propagateCons().
◆ consdataDeletePos()
|
static |
deletes coefficient at given position from constraint data
- Parameters
-
scip SCIP data structure consdata cumulative constraint data cons knapsack constraint pos position of coefficient to delete
Definition at line 2148 of file cons_optcumulative.c.
References checkCounters(), dropEventBinvar(), dropEventIntvar(), FALSE, NULL, SCIP_CALL, SCIP_OKAY, SCIPconsGetHdlr(), SCIPconsGetName(), SCIPconshdlrGetData(), SCIPconsIsTransformed(), SCIPdebugMessage, SCIPvarGetName(), and unlockRounding().
Referenced by applyZeroFixings(), detectImplications(), presolveCumulativeCondition(), and removeIrrelevantJobs().
◆ applyZeroFixings()
|
static |
remove all jobs for which the binary variable is globally fixed to zero
- Parameters
-
scip SCIP data structure cons constraint to be checked nchgcoefs pointer to store the number changed coefficients nchgbds pointer to store the number changed variable bounds
Definition at line 2208 of file cons_optcumulative.c.
References checkCounters(), consdataDeletePos(), fixIntegerVariable(), NULL, SCIP_CALL, SCIP_OKAY, SCIPconsGetData(), SCIPconsIsChecked(), SCIPdebugMessage, SCIPvarGetName(), SCIPvarGetUbGlobal(), and TRUE.
Referenced by SCIP_DECL_CONSPRESOL(), and SCIP_DECL_CONSPROP().
◆ removeIrrelevantJobs()
|
static |
remove jobs which have a duration or demand of zero (zero energy) or lay outside the efficient horizon [hmin, hmax); this is done in the SCIP_DECL_CONSINITPRE() callback
- Parameters
-
scip SCIP data structure cons constraint to propagate
Definition at line 2256 of file cons_optcumulative.c.
References consdataDeletePos(), convertBoundToInt(), NULL, SCIP_CALL, SCIP_OKAY, SCIPconsGetData(), SCIPconsGetName(), SCIPdebugMessage, SCIPvarGetLbGlobal(), SCIPvarGetName(), and SCIPvarGetUbGlobal().
Referenced by SCIP_DECL_CONSINITPRE().
◆ presolveCumulativeCondition()
|
static |
presolve cumulative condition w.r.t. effective horizon by detecting irrelevant variables
- Parameters
-
scip SCIP data structure cons constraint to be checked nfixedvars pointer to store the number of fixed variables nchgcoefs pointer to store the number of changed coefficients nchgsides pointer to store the number of changed sides cutoff buffer to store whether a cutoff is detected
Definition at line 2317 of file cons_optcumulative.c.
References BMSclearMemoryArray, consdataDeletePos(), convertBoundToInt(), NULL, SCIP_Bool, SCIP_CALL, SCIP_OKAY, SCIPallocBufferArray, SCIPconsGetData(), SCIPconsGetName(), SCIPdebugMessage, SCIPfixVar(), SCIPfreeBufferArray, SCIPpresolveCumulativeCondition(), SCIPvarGetLbGlobal(), and SCIPvarGetUbGlobal().
Referenced by SCIP_DECL_CONSPRESOL().
◆ createSetPackingCons()
|
static |
create an an set partitioning constraint
- Parameters
-
scip SCIP data structure var1 first variable var2 second variable
Definition at line 2402 of file cons_optcumulative.c.
References NULL, SCIP_CALL, SCIP_OKAY, SCIPaddCoefSetppc(), SCIPaddCons(), SCIPcreateConsBasicSetpack(), SCIPdebugPrintCons, and SCIPreleaseCons().
Referenced by detectImplications().
◆ createVarboundCons()
|
static |
create variable bound constraint
- Parameters
-
scip SCIP data structure binvar binary variable x intvar integer variable y bound variable bound lower variable lower bound? (Otherwise upper bound)
Definition at line 2423 of file cons_optcumulative.c.
References bound, NULL, SCIP_CALL, SCIP_OKAY, SCIP_Real, SCIPaddCons(), SCIPcreateConsBasicVarbound(), SCIPdebugPrintCons, SCIPinfinity(), SCIPreleaseCons(), SCIPvarGetLbGlobal(), and SCIPvarGetUbGlobal().
Referenced by detectImplications().
◆ createBounddisjunctionCons()
|
static |
create bound disjunction constraint
- Parameters
-
scip SCIP data structure binvar binary variable x intvar integer variable y lb lower bound ub lower bound
Definition at line 2461 of file cons_optcumulative.c.
References NULL, SCIP_BOUNDTYPE_LOWER, SCIP_BOUNDTYPE_UPPER, SCIP_CALL, SCIP_OKAY, SCIP_Real, SCIPaddCons(), SCIPallocBufferArray, SCIPcreateConsBasicBounddisjunction(), SCIPdebugPrintCons, SCIPfreeBufferArray, and SCIPreleaseCons().
Referenced by detectImplications().
◆ detectImplications()
|
static |
detect implication
- Parameters
-
scip SCIP data structure cons optcumulative constraint nchgcoefs pointer to store the number of changed coefficients naddconss pointer to store the number of added constraints
Definition at line 2507 of file cons_optcumulative.c.
References consdataDeletePos(), convertBoundToInt(), createBounddisjunctionCons(), createSetPackingCons(), createVarboundCons(), FALSE, NULL, SCIP_CALL, SCIP_OKAY, SCIPconsGetData(), SCIPconsGetName(), SCIPdebugMessage, SCIPvarGetLbGlobal(), SCIPvarGetName(), SCIPvarGetUbGlobal(), and TRUE.
Referenced by SCIP_DECL_CONSPRESOL().
◆ propagateCons()
|
static |
propgates given constraint
- Parameters
-
scip SCIP data structure cons constraint to be checked conflictanalysis should conflict analysis be called for infeasible subproblems nfixedvars pointer to store the number of fixed variables nchgbds pointer to store the number changed variable bounds ndelconss pointer to store the number of deleted constraints cutoff pointer to store if a cutoff (infeasibility) was detected
Definition at line 2719 of file cons_optcumulative.c.
References BMSclearMemoryArray, SCIP_Profile::capacity, checkCounters(), collectActivities(), convertBoundToInt(), FALSE, fixIntegerVariable(), NULL, SCIP_Bool, SCIP_CALL, SCIP_OKAY, SCIP_PRESOLTIMING_ALWAYS, SCIP_Real, SCIPaddConflictBinvar(), SCIPallocBufferArray, SCIPanalyzeConflictCons(), SCIPcomputeHmin(), SCIPconsGetData(), SCIPconsIsChecked(), SCIPcreateWorstCaseProfile(), SCIPdebugMessage, SCIPendProbing(), SCIPfixVarProbing(), SCIPfreeBufferArray, SCIPinProbing(), SCIPinRepropagation(), SCIPisStopped(), SCIPnewProbingNode(), SCIPprofileCreate(), SCIPprofileDeleteCore(), SCIPprofileFree(), SCIPprofileInsertCore(), SCIPpropagateProbing(), SCIPpropCumulativeCondition(), SCIPstartProbing(), SCIPtightenVarLb(), SCIPtightenVarUb(), SCIPvarGetLbLocal(), SCIPvarGetName(), SCIPvarGetNLocksDown(), SCIPvarGetNLocksUp(), SCIPvarGetUbLocal(), solveSubproblem(), and TRUE.
Referenced by SCIP_DECL_CONSPRESOL(), and SCIP_DECL_CONSPROP().
◆ SCIP_DECL_CONSHDLRCOPY()
|
static |
copy method for constraint handler plugins (called when SCIP copies plugins)
Definition at line 2988 of file cons_optcumulative.c.
References CONSHDLR_NAME, NULL, SCIP_CALL, SCIP_OKAY, SCIPconshdlrGetName(), SCIPincludeConshdlrOptcumulative(), and TRUE.
◆ SCIP_DECL_CONSFREE()
|
static |
destructor of constraint handler to free constraint handler data (called when SCIP is exiting)
Definition at line 3004 of file cons_optcumulative.c.
References conshdlrdataFree(), NULL, SCIP_CALL, 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 3029 of file cons_optcumulative.c.
References CONSHDLR_NAME, NULL, removeIrrelevantJobs(), SCIP_CALL, SCIP_OKAY, SCIPconshdlrGetData(), SCIPconshdlrGetName(), and SCIPfindHeur().
◆ SCIP_DECL_CONSEXITSOL()
|
static |
solving process deinitialization method of constraint handler (called before branch and bound process data is freed)
Definition at line 3070 of file cons_optcumulative.c.
References NULL, SCIP_CALL, SCIP_OKAY, SCIPconsGetData(), and SCIPreleaseRow().
◆ SCIP_DECL_CONSDELETE()
|
static |
frees specific constraint data
Definition at line 3096 of file cons_optcumulative.c.
References consdataFree(), CONSHDLR_NAME, dropAllEvents(), NULL, SCIP_CALL, SCIP_OKAY, SCIPconshdlrGetData(), SCIPconshdlrGetName(), and SCIPvarIsTransformed().
◆ SCIP_DECL_CONSTRANS()
|
static |
transforms constraint data into data belonging to the transformed problem
Definition at line 3125 of file cons_optcumulative.c.
References catchAllEvents(), consdataCreate(), NULL, SCIP_CALL, SCIP_OKAY, SCIP_STAGE_TRANSFORMING, SCIPconsGetData(), SCIPconsGetName(), SCIPconshdlrGetData(), SCIPconsIsChecked(), SCIPconsIsDynamic(), SCIPconsIsEnforced(), SCIPconsIsInitial(), SCIPconsIsLocal(), SCIPconsIsModifiable(), SCIPconsIsPropagated(), SCIPconsIsRemovable(), SCIPconsIsSeparated(), SCIPconsIsStickingAtNode(), SCIPcreateCons(), SCIPdebugMessage, and SCIPgetStage().
◆ SCIP_DECL_CONSINITLP()
|
static |
LP initialization method of constraint handler
Definition at line 3173 of file cons_optcumulative.c.
References addRelaxation(), FALSE, NULL, SCIP_Bool, SCIP_CALL, SCIP_OKAY, SCIPconshdlrGetData(), and SCIPconsIsInitial().
◆ SCIP_DECL_CONSSEPALP()
|
static |
separation method of constraint handler for LP solutions
Definition at line 3200 of file cons_optcumulative.c.
References addRelaxation(), FALSE, NULL, SCIP_Bool, SCIP_CALL, SCIP_CONSADDED, SCIP_CUTOFF, SCIP_DIDNOTFIND, SCIP_OKAY, SCIP_SEPARATED, and SCIPconshdlrGetData().
◆ SCIP_DECL_CONSENFOLP()
|
static |
constraint enforcing method of constraint handler for LP solutions
Definition at line 3239 of file cons_optcumulative.c.
References CONSHDLR_NAME, enfopsCons(), FALSE, NULL, SCIP_Bool, SCIP_CALL, SCIP_CONSADDED, SCIP_FEASIBLE, SCIP_INFEASIBLE, SCIP_OKAY, SCIPconshdlrGetData(), SCIPconshdlrGetName(), SCIPcreateCurrentSol(), SCIPdebugMessage, SCIPfreeSol(), SCIPheurPassSolTrySol(), SCIPprintSol(), and TRUE.
◆ SCIP_DECL_CONSENFOPS()
|
static |
constraint enforcing method of constraint handler for pseudo solutions
Definition at line 3310 of file cons_optcumulative.c.
References CONSHDLR_NAME, enfopsCons(), FALSE, NULL, SCIP_Bool, SCIP_CALL, SCIP_CONSADDED, SCIP_FEASIBLE, SCIP_INFEASIBLE, SCIP_OKAY, SCIPconshdlrGetData(), SCIPconshdlrGetName(), SCIPcreateCurrentSol(), SCIPdebugMessage, SCIPfreeSol(), SCIPheurPassSolTrySol(), and TRUE.
◆ SCIP_DECL_CONSCHECK()
|
static |
feasibility check method of constraint handler for integral solutions
Definition at line 3366 of file cons_optcumulative.c.
References checkCons(), CONSHDLR_NAME, FALSE, NULL, SCIP_Bool, SCIP_CALL, SCIP_FEASIBLE, SCIP_INFEASIBLE, SCIP_OKAY, and SCIPconshdlrGetName().
◆ SCIP_DECL_CONSPROP()
|
static |
domain propagation method of constraint handler
Definition at line 3394 of file cons_optcumulative.c.
References applyZeroFixings(), checkRedundancy(), FALSE, NULL, propagateCons(), SCIP_Bool, SCIP_CALL, SCIP_CUTOFF, SCIP_DIDNOTFIND, SCIP_OKAY, SCIP_REDUCEDDOM, SCIPconshdlrGetData(), SCIPconsIsDeleted(), SCIPdebugMessage, SCIPincConsAge(), SCIPinProbing(), SCIPresetConsAge(), TRUE, and upgradeCons().
◆ SCIP_DECL_CONSPRESOL()
|
static |
presolving method of constraint handler
Definition at line 3493 of file cons_optcumulative.c.
References applyZeroFixings(), detectImplications(), FALSE, NULL, presolveCumulativeCondition(), propagateCons(), SCIP_Bool, SCIP_CALL, SCIP_CUTOFF, SCIP_DIDNOTFIND, SCIP_MAXSTRLEN, SCIP_OKAY, SCIP_SUCCESS, SCIPaddCons(), SCIPconsGetData(), SCIPconsGetName(), SCIPconsIsChecked(), SCIPconsIsDynamic(), SCIPconsIsEnforced(), SCIPconsIsInitial(), SCIPconsIsLocal(), SCIPconsIsModifiable(), SCIPconsIsPropagated(), SCIPconsIsRemovable(), SCIPconsIsSeparated(), SCIPconsIsStickingAtNode(), SCIPcreateConsOptcumulative(), SCIPdebugMessage, SCIPdelCons(), SCIPinProbing(), SCIPnormalizeCumulativeCondition(), SCIPreleaseCons(), SCIPsnprintf(), SCIPsplitCumulativeCondition(), TRUE, and upgradeCons().
◆ SCIP_DECL_CONSRESPROP()
|
static |
propagation conflict resolving method of constraint handler
Definition at line 3663 of file cons_optcumulative.c.
References BMSclearMemoryArray, FALSE, NULL, SCIP_Bool, SCIP_CALL, SCIP_DIDNOTFIND, SCIP_OKAY, SCIP_SUCCESS, SCIPaddConflictBinvar(), SCIPaddConflictLb(), SCIPaddConflictUb(), SCIPallocBufferArray, SCIPconsGetData(), SCIPconsGetName(), SCIPconshdlrGetData(), SCIPdebugMessage, SCIPfreeBufferArray, SCIPrespropCumulativeCondition(), SCIPvarGetLbAtIndex(), and TRUE.
◆ SCIP_DECL_CONSLOCK()
|
static |
variable rounding lock method of constraint handler
Definition at line 3775 of file cons_optcumulative.c.
References NULL, SCIP_CALL, SCIP_LOCKTYPE_MODEL, SCIP_OKAY, SCIPaddVarLocksType(), and SCIPconsGetData().
◆ SCIP_DECL_CONSPRINT()
|
static |
constraint display method of constraint handler
Definition at line 3836 of file cons_optcumulative.c.
References consdataPrint(), NULL, SCIP_CALL, SCIP_OKAY, and SCIPconsGetData().
◆ SCIP_DECL_CONSCOPY()
|
static |
constraint copying method of constraint handler
Definition at line 3849 of file cons_optcumulative.c.
References FALSE, NULL, SCIP_Bool, SCIP_CALL, SCIP_OKAY, SCIPallocBufferArray, SCIPconsGetData(), SCIPconsGetName(), SCIPcreateConsOptcumulative(), SCIPfreeBufferArray, SCIPgetVarCopy(), and TRUE.
◆ SCIP_DECL_CONSPARSE()
|
static |
constraint parsing method of constraint handler
Definition at line 3912 of file cons_optcumulative.c.
References NULL, SCIP_CALL, SCIP_MAXSTRLEN, SCIP_OKAY, SCIP_Real, SCIPallocBufferArray, SCIPcreateConsOptcumulative(), SCIPdebugMsg, SCIPfreeBufferArray, SCIPparseVarName(), SCIPsetHmaxOptcumulative(), SCIPsetHminOptcumulative(), SCIPstrCopySection(), SCIPstrToRealValue(), SCIPvarGetName(), and TRUE.
◆ SCIP_DECL_EVENTEXEC() [1/2]
|
static |
Definition at line 4021 of file cons_optcumulative.c.
References EVENTHDLR_BINVARS_NAME, FALSE, NULL, SCIP_EVENTTYPE_GLBCHANGED, SCIP_EVENTTYPE_GUBCHANGED, SCIP_EVENTTYPE_LBRELAXED, SCIP_EVENTTYPE_LBTIGHTENED, SCIP_EVENTTYPE_UBRELAXED, SCIP_EVENTTYPE_UBTIGHTENED, SCIP_INVALIDDATA, SCIP_OKAY, SCIPerrorMessage, SCIPeventGetType(), SCIPeventhdlrGetName(), and SCIPinProbing().
◆ SCIP_DECL_EVENTEXEC() [2/2]
|
static |
Definition at line 4070 of file cons_optcumulative.c.
References EVENTHDLR_INTVARS_NAME, FALSE, NULL, SCIP_OKAY, SCIPeventhdlrGetName(), and SCIPinProbing().
◆ SCIPincludeConshdlrOptcumulative()
SCIP_RETCODE SCIPincludeConshdlrOptcumulative | ( | SCIP * | scip | ) |
creates the handler for optcumulative constraints and includes it in SCIP
- Parameters
-
scip SCIP data structure
Definition at line 4100 of file cons_optcumulative.c.
References consActiveOptcumulative, consDeactiveOptcumulative, consDelvarsOptcumulative, consDisableOptcumulative, consEnableOptcumulative, consEnforelaxOptcomulative, consExitOptcumulative, consExitpreOptcumulative, CONSHDLR_CHECKPRIORITY, CONSHDLR_DELAYPROP, CONSHDLR_DELAYSEPA, CONSHDLR_DESC, CONSHDLR_EAGERFREQ, CONSHDLR_ENFOPRIORITY, CONSHDLR_MAXPREROUNDS, CONSHDLR_NAME, CONSHDLR_NEEDSCONS, CONSHDLR_PRESOLTIMING, CONSHDLR_PROP_TIMING, CONSHDLR_PROPFREQ, CONSHDLR_SEPAFREQ, CONSHDLR_SEPAPRIORITY, conshdlrdataCreate(), consInitOptcumulative, consInitsolOptcumulative, consSepasolOptcumulative, DEFAULT_CONFLICTANALYSIS, DEFAULT_INTERVALRELAX, DEFAULT_ROWRELAX, EVENTHDLR_BINVARS_DESC, EVENTHDLR_BINVARS_NAME, EVENTHDLR_INTVARS_DESC, EVENTHDLR_INTVARS_NAME, FALSE, NULL, SCIP_CALL, SCIP_OKAY, SCIPaddBoolParam(), SCIPincludeConshdlrBasic(), SCIPincludeEventhdlrBasic(), SCIPsetConshdlrActive(), SCIPsetConshdlrCopy(), SCIPsetConshdlrDelete(), SCIPsetConshdlrDelvars(), SCIPsetConshdlrDisable(), SCIPsetConshdlrEnable(), SCIPsetConshdlrEnforelax(), SCIPsetConshdlrExit(), SCIPsetConshdlrExitpre(), SCIPsetConshdlrExitsol(), SCIPsetConshdlrFree(), SCIPsetConshdlrInit(), SCIPsetConshdlrInitlp(), SCIPsetConshdlrInitpre(), SCIPsetConshdlrInitsol(), SCIPsetConshdlrParse(), SCIPsetConshdlrPresol(), SCIPsetConshdlrPrint(), SCIPsetConshdlrProp(), SCIPsetConshdlrResprop(), SCIPsetConshdlrSepa(), and SCIPsetConshdlrTrans().
Referenced by runShell(), and SCIP_DECL_CONSHDLRCOPY().
◆ SCIPcreateConsOptcumulative()
SCIP_RETCODE SCIPcreateConsOptcumulative | ( | SCIP * | scip, |
SCIP_CONS ** | cons, | ||
const char * | name, | ||
int | nvars, | ||
SCIP_VAR ** | vars, | ||
SCIP_VAR ** | binvars, | ||
int * | durations, | ||
int * | demands, | ||
int | capacity, | ||
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 | ||
) |
creates and captures a optcumulative constraint
- Parameters
-
scip SCIP data structure cons pointer to hold the created constraint name name of constraint nvars number of variables (jobs) vars array of integer variable which corresponds to starting times for a job binvars array of variable representing if the job has to be processed on this machine durations array containing corresponding durations demands array containing corresponding demands capacity available cumulative capacity 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 seperated 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 4174 of file cons_optcumulative.c.
References catchAllEvents(), consdataCreate(), CONSHDLR_NAME, FALSE, NULL, SCIP_CALL, SCIP_OKAY, SCIP_PLUGINNOTFOUND, SCIP_STAGE_PROBLEM, SCIPconshdlrGetData(), SCIPcreateCons(), SCIPerrorMessage, SCIPfindConshdlr(), and SCIPgetStage().
Referenced by createCipFormulation(), createMipCpFormulation(), SCIP_DECL_CONSCOPY(), SCIP_DECL_CONSPARSE(), and SCIP_DECL_CONSPRESOL().
◆ SCIPsetHminOptcumulative()
SCIP_RETCODE SCIPsetHminOptcumulative | ( | SCIP * | scip, |
SCIP_CONS * | cons, | ||
int | hmin | ||
) |
set the left bound of the time axis to be considered (including hmin)
- Parameters
-
scip SCIP data structure cons constraint data hmin left bound of time axis to be considered
Definition at line 4253 of file cons_optcumulative.c.
References CONSHDLR_NAME, NULL, SCIP_INVALIDCALL, SCIP_OKAY, SCIPconsGetData(), SCIPconsGetHdlr(), SCIPconshdlrGetName(), and SCIPerrorMessage.
Referenced by SCIP_DECL_CONSPARSE().
◆ SCIPgetHminOptcumulative()
returns the left bound of the time axis to be considered
- Parameters
-
scip SCIP data structure cons constraint
Definition at line 4277 of file cons_optcumulative.c.
References CONSHDLR_NAME, NULL, SCIPABORT, SCIPconsGetData(), SCIPconsGetHdlr(), SCIPconshdlrGetName(), and SCIPerrorMessage.
◆ SCIPsetHmaxOptcumulative()
SCIP_RETCODE SCIPsetHmaxOptcumulative | ( | SCIP * | scip, |
SCIP_CONS * | cons, | ||
int | hmax | ||
) |
set the right bound of the time axis to be considered (not including hmax)
- Parameters
-
scip SCIP data structure cons constraint data hmax right bound of time axis to be considered
Definition at line 4297 of file cons_optcumulative.c.
References CONSHDLR_NAME, NULL, SCIP_INVALIDCALL, SCIP_OKAY, SCIPconsGetData(), SCIPconsGetHdlr(), SCIPconshdlrGetName(), and SCIPerrorMessage.
Referenced by SCIP_DECL_CONSPARSE().
◆ SCIPgetHmaxOptcumulative()
returns the right bound of the time axis to be considered
- Parameters
-
scip SCIP data structure cons constraint
Definition at line 4320 of file cons_optcumulative.c.
References CONSHDLR_NAME, NULL, SCIPABORT, SCIPconsGetData(), SCIPconsGetHdlr(), SCIPconshdlrGetName(), and SCIPerrorMessage.