cons_cumulative.h
Go to the documentation of this file.
34/*---+----1----+----2----+----3----+----4----+----5----+----6----+----7----+----8----+----9----+----0----+----1----+----2*/
72 * - a set of jobs, represented by their integer start time variables \f$S_j\f$, their array of processing times \f$p_j\f$ and of
76 * The cumulative constraint ensures that for each point in time \f$t\f$ \f$\sum_{j: S_j \leq t < S_j + p_j} d_j \leq C\f$ holds.
100 SCIP_VAR** vars, /**< array of integer variable which corresponds to starting times for a job */
124 SCIP_Bool stickingatnode /**< should the constraint always be kept at the node where it was added, even
130 * in its most basic version, i. e., all constraint flags are set to their basic value as explained for the
131 * method SCIPcreateConsCumulative(); all flags can be set via SCIPsetConsFLAGNAME-methods in scip.h
135 * @note the constraint gets captured, hence at one point you have to release it using the method SCIPreleaseCons()
143 SCIP_VAR** vars, /**< array of integer variable which corresponds to starting times for a job */
215/** check for the given starting time variables with their demands and durations if the cumulative conditions for the
223 SCIP_VAR** vars, /**< array of integer variable which corresponds to starting times for a job */
247/** searches for a time point within the cumulative condition were the cumulative condition can be split */
252 SCIP_VAR** vars, /**< array of integer variable which corresponds to starting times for a job */
285 SCIP_VAR** vars, /**< array of integer variable which corresponds to starting times for a job */
294 SCIP_Bool* explanation, /**< bool array which marks the variable which are part of the explanation if a cutoff was detected, or NULL */
312 SCIP_BDCHGIDX* bdchgidx, /**< the index of the bound change, representing the point of time where the change took place */
314 SCIP_Bool* explanation, /**< bool array which marks the variable which are part of the explanation if a cutoff was detected, or NULL */
315 SCIP_RESULT* result /**< pointer to store the result of the propagation conflict resolving call */
329 * @note If the problem was solved to the earliest start times (ests) and latest start times (lsts) array contain the
330 * solution values; If the problem was not solved these two arrays contain the global bounds at the time the sub
335 * - objvals : array of objective coefficients for each job (linear objective function), or NULL if none
343 * - maxnodes : maximum number of branch-and-bound nodes to solve the single cumulative constraint (-1: no limit)
356#define SCIP_DECL_SOLVECUMULATIVE(x) SCIP_RETCODE x (int njobs, SCIP_Real* ests, SCIP_Real* lsts, SCIP_Real* objvals, \
365 SCIP_DECL_SOLVECUMULATIVE((*solveCumulative)) /**< method to use an individual cumulative condition */
370 * @note If the problem was solved to the earliest start times (ests) and latest start times (lsts) array contain the
371 * solution values; If the problem was not solved these two arrays contain the global bounds at the time the sub
380 SCIP_Real* objvals, /**< array of objective coefficients for each job (linear objective function), or NULL if none */
388 SCIP_Longint maxnodes, /**< maximum number of branch-and-bound nodes to solve the single cumulative constraint (-1: no limit) */
395/** creates the worst case resource profile, that is, all jobs are inserted with the earliest start and latest
403 SCIP_VAR** vars, /**< array of integer variable which corresponds to starting times for a job */
408/** computes w.r.t. the given worst case resource profile the first time point where the given capacity can be violated */
416/** computes w.r.t. the given worst case resource profile the first time point where the given capacity is satisfied for sure */
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)
Definition: cons_optcumulative.c:1276
common defines and data types used in all packages of SCIP
int SCIPgetHminCumulative(SCIP *scip, SCIP_CONS *cons)
Definition: cons_cumulative.c:13886
SCIP_RETCODE SCIPpropCumulativeCondition(SCIP *scip, SCIP_PRESOLTIMING presoltiming, int nvars, SCIP_VAR **vars, int *durations, int *demands, int capacity, int hmin, int hmax, SCIP_CONS *cons, int *nchgbds, SCIP_Bool *initialized, SCIP_Bool *explanation, SCIP_Bool *cutoff)
Definition: cons_cumulative.c:14149
SCIP_RETCODE SCIPsetSolveCumulative(SCIP *scip, SCIP_DECL_SOLVECUMULATIVE((*solveCumulative)))
Definition: cons_cumulative.c:14326
int * SCIPgetDurationsCumulative(SCIP *scip, SCIP_CONS *cons)
Definition: cons_cumulative.c:14013
SCIP_RETCODE SCIPsplitCumulativeCondition(SCIP *scip, int nvars, SCIP_VAR **vars, int *durations, int *demands, int capacity, int *hmin, int *hmax, int *split)
Definition: cons_cumulative.c:14099
SCIP_RETCODE SCIPvisualizeConsCumulative(SCIP *scip, SCIP_CONS *cons)
Definition: cons_cumulative.c:14223
SCIP_RETCODE SCIPcreateConsBasicCumulative(SCIP *scip, SCIP_CONS **cons, const char *name, int nvars, SCIP_VAR **vars, int *durations, int *demands, int capacity)
Definition: cons_cumulative.c:13842
int SCIPcomputeHmax(SCIP *scip, SCIP_PROFILE *profile, int capacity)
Definition: cons_cumulative.c:14521
SCIP_RETCODE SCIPpresolveCumulativeCondition(SCIP *scip, int nvars, SCIP_VAR **vars, int *durations, int hmin, int hmax, SCIP_Bool *downlocks, SCIP_Bool *uplocks, SCIP_CONS *cons, SCIP_Bool *delvars, int *nfixedvars, int *nchgsides, SCIP_Bool *cutoff)
Definition: cons_cumulative.c:14118
SCIP_RETCODE SCIPcheckCumulativeCondition(SCIP *scip, SCIP_SOL *sol, int nvars, SCIP_VAR **vars, int *durations, int *demands, int capacity, int hmin, int hmax, SCIP_Bool *violated, SCIP_CONS *cons, SCIP_Bool printreason)
Definition: cons_cumulative.c:14057
SCIP_VAR ** SCIPgetVarsCumulative(SCIP *scip, SCIP_CONS *cons)
Definition: cons_cumulative.c:13950
int * SCIPgetDemandsCumulative(SCIP *scip, SCIP_CONS *cons)
Definition: cons_cumulative.c:14034
SCIP_RETCODE SCIPsolveCumulative(SCIP *scip, int njobs, SCIP_Real *ests, SCIP_Real *lsts, SCIP_Real *objvals, int *durations, int *demands, int capacity, int hmin, int hmax, SCIP_Real timelimit, SCIP_Real memorylimit, SCIP_Longint maxnodes, SCIP_Bool *solved, SCIP_Bool *infeasible, SCIP_Bool *unbounded, SCIP_Bool *error)
Definition: cons_cumulative.c:14356
int SCIPgetHmaxCumulative(SCIP *scip, SCIP_CONS *cons)
Definition: cons_cumulative.c:13930
SCIP_RETCODE SCIPrespropCumulativeCondition(SCIP *scip, int nvars, SCIP_VAR **vars, int *durations, int *demands, int capacity, int hmin, int hmax, SCIP_VAR *infervar, int inferinfo, SCIP_BOUNDTYPE boundtype, SCIP_BDCHGIDX *bdchgidx, SCIP_Real relaxedbd, SCIP_Bool *explanation, SCIP_RESULT *result)
Definition: cons_cumulative.c:14198
int SCIPgetCapacityCumulative(SCIP *scip, SCIP_CONS *cons)
Definition: cons_cumulative.c:13992
SCIP_RETCODE SCIPnormalizeCumulativeCondition(SCIP *scip, int nvars, SCIP_VAR **vars, int *durations, int *demands, int *capacity, int *nchgcoefs, int *nchgsides)
Definition: cons_cumulative.c:14082
SCIP_RETCODE SCIPcreateWorstCaseProfile(SCIP *scip, SCIP_PROFILE *profile, int nvars, SCIP_VAR **vars, int *durations, int *demands)
Definition: cons_cumulative.c:14412
SCIP_RETCODE SCIPsetHminCumulative(SCIP *scip, SCIP_CONS *cons, int hmin)
Definition: cons_cumulative.c:13862
int SCIPgetNVarsCumulative(SCIP *scip, SCIP_CONS *cons)
Definition: cons_cumulative.c:13971
SCIP_RETCODE SCIPsetHmaxCumulative(SCIP *scip, SCIP_CONS *cons, int hmax)
Definition: cons_cumulative.c:13906
SCIP_RETCODE SCIPcreateConsCumulative(SCIP *scip, SCIP_CONS **cons, const char *name, int nvars, SCIP_VAR **vars, 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)
Definition: cons_cumulative.c:13761
int SCIPcomputeHmin(SCIP *scip, SCIP_PROFILE *profile, int capacity)
Definition: cons_cumulative.c:14491
SCIP_RETCODE SCIPincludeConshdlrCumulative(SCIP *scip)
Definition: cons_cumulative.c:13630
Definition: objbenders.h:44
Definition: struct_var.h:109
Definition: struct_cons.h:47
Definition: struct_misc.h:210
Definition: struct_sol.h:74
Definition: struct_var.h:208
Definition: struct_scip.h:70
type definitions for constraints and constraint handlers
type definitions for LP management
type definitions for miscellaneous datastructures
result codes for SCIP callback methods
type definitions for return codes for SCIP methods
type definitions for SCIP's main datastructure
type definitions for storing primal CIP solutions
timing definitions for SCIP
type definitions for problem variables