Classes | |
class | Gecode::ArrayTraits< PrimArgArray< TaskType > > |
Traits of TaskTypeArgs. More... | |
Typedefs | |
typedef PrimArgArray< TaskType > | Gecode::TaskTypeArgs |
Passing task type arguments. | |
Enumerations | |
enum | Gecode::TaskType { Gecode::TT_FIXP, Gecode::TT_FIXS, Gecode::TT_FIXE } |
Type of task for scheduling constraints. More... | |
Functions | |
void | Gecode::cumulatives (Home home, const IntVarArgs &machine, const IntVarArgs &start, const IntVarArgs &duration, const IntVarArgs &end, const IntVarArgs &height, const IntArgs &limit, bool at_most, IntConLevel icl=ICL_DEF) |
Post propagators for the cumulatives constraint. | |
void | Gecode::cumulatives (Home home, const IntArgs &machine, const IntVarArgs &start, const IntVarArgs &duration, const IntVarArgs &end, const IntVarArgs &height, const IntArgs &limit, bool at_most, IntConLevel icl=ICL_DEF) |
Post propagators for the cumulatives constraint. | |
void | Gecode::cumulatives (Home home, const IntVarArgs &machine, const IntVarArgs &start, const IntArgs &duration, const IntVarArgs &end, const IntVarArgs &height, const IntArgs &limit, bool at_most, IntConLevel icl=ICL_DEF) |
Post propagators for the cumulatives constraint. | |
void | Gecode::cumulatives (Home home, const IntArgs &machine, const IntVarArgs &start, const IntArgs &duration, const IntVarArgs &end, const IntVarArgs &height, const IntArgs &limit, bool at_most, IntConLevel icl=ICL_DEF) |
Post propagators for the cumulatives constraint. | |
void | Gecode::cumulatives (Home home, const IntVarArgs &machine, const IntVarArgs &start, const IntVarArgs &duration, const IntVarArgs &end, const IntArgs &height, const IntArgs &limit, bool at_most, IntConLevel icl=ICL_DEF) |
Post propagators for the cumulatives constraint. | |
void | Gecode::cumulatives (Home home, const IntArgs &machine, const IntVarArgs &start, const IntVarArgs &duration, const IntVarArgs &end, const IntArgs &height, const IntArgs &limit, bool at_most, IntConLevel icl=ICL_DEF) |
Post propagators for the cumulatives constraint. | |
void | Gecode::cumulatives (Home home, const IntVarArgs &machine, const IntVarArgs &start, const IntArgs &duration, const IntVarArgs &end, const IntArgs &height, const IntArgs &limit, bool at_most, IntConLevel icl=ICL_DEF) |
Post propagators for the cumulatives constraint. | |
void | Gecode::cumulatives (Home home, const IntArgs &machine, const IntVarArgs &start, const IntArgs &duration, const IntVarArgs &end, const IntArgs &height, const IntArgs &limit, bool at_most, IntConLevel icl=ICL_DEF) |
Post propagators for the cumulatives constraint. | |
void | Gecode::unary (Home home, const IntVarArgs &s, const IntArgs &p) |
Post propagators for scheduling tasks on unary resources. | |
void | Gecode::unary (Home home, const IntVarArgs &s, const IntArgs &p, const BoolVarArgs &m) |
Post propagators for scheduling optional tasks on unary resources. | |
void | Gecode::unary (Home home, const TaskTypeArgs &t, const IntVarArgs &s, const IntArgs &p) |
Post propagators for scheduling tasks on unary resources. | |
void | Gecode::unary (Home home, const TaskTypeArgs &t, const IntVarArgs &s, const IntArgs &p, const BoolVarArgs &m) |
Post propagators for scheduling optional tasks on unary resources. | |
void | Gecode::unary (Home home, const IntVarArgs &s, const IntVarArgs &p, const IntVarArgs &e) |
Post propagators for scheduling tasks on unary resources. | |
void | Gecode::unary (Home home, const IntVarArgs &s, const IntVarArgs &p, const IntVarArgs &e, const BoolVarArgs &m) |
Post propagators for scheduling optional tasks on unary resources. | |
void | Gecode::cumulative (Home home, int c, const TaskTypeArgs &t, const IntVarArgs &flex, const IntArgs &fix, const IntArgs &u) |
Post propagators for scheduling tasks on cumulative resources. | |
void | Gecode::cumulative (Home home, int c, const TaskTypeArgs &t, const IntVarArgs &s, const IntArgs &p, const IntArgs &u, const BoolVarArgs &m) |
Post propagators for scheduling optional tasks on cumulative resources. | |
void | Gecode::cumulative (Home home, int c, const IntVarArgs &s, const IntArgs &p, const IntArgs &u) |
Post propagators for scheduling tasks on cumulative resources. | |
void | Gecode::cumulative (Home home, int c, const IntVarArgs &s, const IntArgs &p, const IntArgs &u, const BoolVarArgs &m) |
Post propagators for scheduling optional tasks on cumulative resources. | |
void | Gecode::cumulative (Home home, int c, const IntVarArgs &s, const IntVarArgs &p, const IntVarArgs &e, const IntArgs &u) |
Post propagators for scheduling tasks on cumulative resources. | |
void | Gecode::cumulative (Home home, int c, const IntVarArgs &s, const IntVarArgs &p, const IntVarArgs &e, const IntArgs &u, const BoolVarArgs &m) |
Post propagators for scheduling optional tasks on cumulative resources. |
typedef PrimArgArray<TaskType> Gecode::TaskTypeArgs |
Passing task type arguments.
Definition at line 98 of file scheduling.hh.
enum Gecode::TaskType |
Type of task for scheduling constraints.
Definition at line 91 of file scheduling.hh.
void Gecode::cumulatives | ( | Home | home, |
const IntVarArgs & | machine, | ||
const IntVarArgs & | start, | ||
const IntVarArgs & | duration, | ||
const IntVarArgs & | end, | ||
const IntVarArgs & | height, | ||
const IntArgs & | limit, | ||
bool | at_most, | ||
IntConLevel | icl = ICL_DEF |
||
) |
Post propagators for the cumulatives constraint.
This function creates propagators for the cumulatives constraint presented in "A new multi-resource cumulatives constraint with negative heights", Nicolas Beldiceanu and Mats Carlsson, Principles and Practice of Constraint Programming 2002.
The constraint models a set of machines and a set of tasks that should be assigned to the machines. The machines have a positive resource limit and the tasks each have a resource usage that can be either positive, negative, or zero. The constraint is enforced over each point in time for a machine where there is at least one task assigned.
The limit for a machine is either the maximum amount available at any given time (at_most = true), or else the least amount to be used (at_most = false).
home | current space |
machine | ![]() ![]() |
start | ![]() ![]() |
duration | ![]() ![]() |
end | ![]() ![]() |
height | ![]() ![]() |
limit | ![]() ![]() |
at_most | at_most tells if the amount of resources used for a machine should be less than the limit (at_most = true) or greater than the limit (at_most = false) |
icl | Supports value-consistency only (icl = ICL_VAL, default). |
Int::ArgumentSizeMismatch | thrown if the sizes of the arguments representing tasks does not match. |
Int::OutOfLimits | thrown if any numerical argument is larger than Int::Limits::max or less than Int::Limits::min. |
Definition at line 139 of file cumulatives.cpp.
void Gecode::cumulatives | ( | Home | home, |
const IntArgs & | machine, | ||
const IntVarArgs & | start, | ||
const IntVarArgs & | duration, | ||
const IntVarArgs & | end, | ||
const IntVarArgs & | height, | ||
const IntArgs & | limit, | ||
bool | at_most, | ||
IntConLevel | icl = ICL_DEF |
||
) |
Post propagators for the cumulatives constraint.
Post propagators for the cumulatives constraint.
This function creates propagators for the cumulatives constraint presented in "A new multi-resource cumulatives constraint with negative heights", Nicolas Beldiceanu and Mats Carlsson, Principles and Practice of Constraint Programming 2002.
The constraint models a set of machines and a set of tasks that should be assigned to the machines. The machines have a positive resource limit and the tasks each have a resource usage that can be either positive, negative, or zero. The constraint is enforced over each point in time for a machine where there is at least one task assigned.
The limit for a machine is either the maximum amount available at any given time (at_most = true), or else the least amount to be used (at_most = false).
home | current space |
machine | ![]() ![]() |
start | ![]() ![]() |
duration | ![]() ![]() |
end | ![]() ![]() |
height | ![]() ![]() |
limit | ![]() ![]() |
at_most | at_most tells if the amount of resources used for a machine should be less than the limit (at_most = true) or greater than the limit (at_most = false) |
icl | Supports value-consistency only (icl = ICL_VAL, default). |
Int::ArgumentSizeMismatch | thrown if the sizes of the arguments representing tasks does not match. |
Int::OutOfLimits | thrown if any numerical argument is larger than Int::Limits::max or less than Int::Limits::min. |
Definition at line 149 of file cumulatives.cpp.
void Gecode::cumulatives | ( | Home | home, |
const IntVarArgs & | machine, | ||
const IntVarArgs & | start, | ||
const IntArgs & | duration, | ||
const IntVarArgs & | end, | ||
const IntVarArgs & | height, | ||
const IntArgs & | limit, | ||
bool | at_most, | ||
IntConLevel | icl = ICL_DEF |
||
) |
Post propagators for the cumulatives constraint.
Post propagators for the cumulatives constraint.
This function creates propagators for the cumulatives constraint presented in "A new multi-resource cumulatives constraint with negative heights", Nicolas Beldiceanu and Mats Carlsson, Principles and Practice of Constraint Programming 2002.
The constraint models a set of machines and a set of tasks that should be assigned to the machines. The machines have a positive resource limit and the tasks each have a resource usage that can be either positive, negative, or zero. The constraint is enforced over each point in time for a machine where there is at least one task assigned.
The limit for a machine is either the maximum amount available at any given time (at_most = true), or else the least amount to be used (at_most = false).
home | current space |
machine | ![]() ![]() |
start | ![]() ![]() |
duration | ![]() ![]() |
end | ![]() ![]() |
height | ![]() ![]() |
limit | ![]() ![]() |
at_most | at_most tells if the amount of resources used for a machine should be less than the limit (at_most = true) or greater than the limit (at_most = false) |
icl | Supports value-consistency only (icl = ICL_VAL, default). |
Int::ArgumentSizeMismatch | thrown if the sizes of the arguments representing tasks does not match. |
Int::OutOfLimits | thrown if any numerical argument is larger than Int::Limits::max or less than Int::Limits::min. |
Definition at line 159 of file cumulatives.cpp.
void Gecode::cumulatives | ( | Home | home, |
const IntArgs & | machine, | ||
const IntVarArgs & | start, | ||
const IntArgs & | duration, | ||
const IntVarArgs & | end, | ||
const IntVarArgs & | height, | ||
const IntArgs & | limit, | ||
bool | at_most, | ||
IntConLevel | icl = ICL_DEF |
||
) |
Post propagators for the cumulatives constraint.
Post propagators for the cumulatives constraint.
This function creates propagators for the cumulatives constraint presented in "A new multi-resource cumulatives constraint with negative heights", Nicolas Beldiceanu and Mats Carlsson, Principles and Practice of Constraint Programming 2002.
The constraint models a set of machines and a set of tasks that should be assigned to the machines. The machines have a positive resource limit and the tasks each have a resource usage that can be either positive, negative, or zero. The constraint is enforced over each point in time for a machine where there is at least one task assigned.
The limit for a machine is either the maximum amount available at any given time (at_most = true), or else the least amount to be used (at_most = false).
home | current space |
machine | ![]() ![]() |
start | ![]() ![]() |
duration | ![]() ![]() |
end | ![]() ![]() |
height | ![]() ![]() |
limit | ![]() ![]() |
at_most | at_most tells if the amount of resources used for a machine should be less than the limit (at_most = true) or greater than the limit (at_most = false) |
icl | Supports value-consistency only (icl = ICL_VAL, default). |
Int::ArgumentSizeMismatch | thrown if the sizes of the arguments representing tasks does not match. |
Int::OutOfLimits | thrown if any numerical argument is larger than Int::Limits::max or less than Int::Limits::min. |
Definition at line 169 of file cumulatives.cpp.
void Gecode::cumulatives | ( | Home | home, |
const IntVarArgs & | machine, | ||
const IntVarArgs & | start, | ||
const IntVarArgs & | duration, | ||
const IntVarArgs & | end, | ||
const IntArgs & | height, | ||
const IntArgs & | limit, | ||
bool | at_most, | ||
IntConLevel | icl = ICL_DEF |
||
) |
Post propagators for the cumulatives constraint.
Post propagators for the cumulatives constraint.
This function creates propagators for the cumulatives constraint presented in "A new multi-resource cumulatives constraint with negative heights", Nicolas Beldiceanu and Mats Carlsson, Principles and Practice of Constraint Programming 2002.
The constraint models a set of machines and a set of tasks that should be assigned to the machines. The machines have a positive resource limit and the tasks each have a resource usage that can be either positive, negative, or zero. The constraint is enforced over each point in time for a machine where there is at least one task assigned.
The limit for a machine is either the maximum amount available at any given time (at_most = true), or else the least amount to be used (at_most = false).
home | current space |
machine | ![]() ![]() |
start | ![]() ![]() |
duration | ![]() ![]() |
end | ![]() ![]() |
height | ![]() ![]() |
limit | ![]() ![]() |
at_most | at_most tells if the amount of resources used for a machine should be less than the limit (at_most = true) or greater than the limit (at_most = false) |
icl | Supports value-consistency only (icl = ICL_VAL, default). |
Int::ArgumentSizeMismatch | thrown if the sizes of the arguments representing tasks does not match. |
Int::OutOfLimits | thrown if any numerical argument is larger than Int::Limits::max or less than Int::Limits::min. |
Definition at line 179 of file cumulatives.cpp.
void Gecode::cumulatives | ( | Home | home, |
const IntArgs & | machine, | ||
const IntVarArgs & | start, | ||
const IntVarArgs & | duration, | ||
const IntVarArgs & | end, | ||
const IntArgs & | height, | ||
const IntArgs & | limit, | ||
bool | at_most, | ||
IntConLevel | icl = ICL_DEF |
||
) |
Post propagators for the cumulatives constraint.
Post propagators for the cumulatives constraint.
This function creates propagators for the cumulatives constraint presented in "A new multi-resource cumulatives constraint with negative heights", Nicolas Beldiceanu and Mats Carlsson, Principles and Practice of Constraint Programming 2002.
The constraint models a set of machines and a set of tasks that should be assigned to the machines. The machines have a positive resource limit and the tasks each have a resource usage that can be either positive, negative, or zero. The constraint is enforced over each point in time for a machine where there is at least one task assigned.
The limit for a machine is either the maximum amount available at any given time (at_most = true), or else the least amount to be used (at_most = false).
home | current space |
machine | ![]() ![]() |
start | ![]() ![]() |
duration | ![]() ![]() |
end | ![]() ![]() |
height | ![]() ![]() |
limit | ![]() ![]() |
at_most | at_most tells if the amount of resources used for a machine should be less than the limit (at_most = true) or greater than the limit (at_most = false) |
icl | Supports value-consistency only (icl = ICL_VAL, default). |
Int::ArgumentSizeMismatch | thrown if the sizes of the arguments representing tasks does not match. |
Int::OutOfLimits | thrown if any numerical argument is larger than Int::Limits::max or less than Int::Limits::min. |
Definition at line 189 of file cumulatives.cpp.
void Gecode::cumulatives | ( | Home | home, |
const IntVarArgs & | machine, | ||
const IntVarArgs & | start, | ||
const IntArgs & | duration, | ||
const IntVarArgs & | end, | ||
const IntArgs & | height, | ||
const IntArgs & | limit, | ||
bool | at_most, | ||
IntConLevel | icl = ICL_DEF |
||
) |
Post propagators for the cumulatives constraint.
Post propagators for the cumulatives constraint.
This function creates propagators for the cumulatives constraint presented in "A new multi-resource cumulatives constraint with negative heights", Nicolas Beldiceanu and Mats Carlsson, Principles and Practice of Constraint Programming 2002.
The constraint models a set of machines and a set of tasks that should be assigned to the machines. The machines have a positive resource limit and the tasks each have a resource usage that can be either positive, negative, or zero. The constraint is enforced over each point in time for a machine where there is at least one task assigned.
The limit for a machine is either the maximum amount available at any given time (at_most = true), or else the least amount to be used (at_most = false).
home | current space |
machine | ![]() ![]() |
start | ![]() ![]() |
duration | ![]() ![]() |
end | ![]() ![]() |
height | ![]() ![]() |
limit | ![]() ![]() |
at_most | at_most tells if the amount of resources used for a machine should be less than the limit (at_most = true) or greater than the limit (at_most = false) |
icl | Supports value-consistency only (icl = ICL_VAL, default). |
Int::ArgumentSizeMismatch | thrown if the sizes of the arguments representing tasks does not match. |
Int::OutOfLimits | thrown if any numerical argument is larger than Int::Limits::max or less than Int::Limits::min. |
Definition at line 199 of file cumulatives.cpp.
void Gecode::cumulatives | ( | Home | home, |
const IntArgs & | machine, | ||
const IntVarArgs & | start, | ||
const IntArgs & | duration, | ||
const IntVarArgs & | end, | ||
const IntArgs & | height, | ||
const IntArgs & | limit, | ||
bool | at_most, | ||
IntConLevel | icl = ICL_DEF |
||
) |
Post propagators for the cumulatives constraint.
Post propagators for the cumulatives constraint.
This function creates propagators for the cumulatives constraint presented in "A new multi-resource cumulatives constraint with negative heights", Nicolas Beldiceanu and Mats Carlsson, Principles and Practice of Constraint Programming 2002.
The constraint models a set of machines and a set of tasks that should be assigned to the machines. The machines have a positive resource limit and the tasks each have a resource usage that can be either positive, negative, or zero. The constraint is enforced over each point in time for a machine where there is at least one task assigned.
The limit for a machine is either the maximum amount available at any given time (at_most = true), or else the least amount to be used (at_most = false).
home | current space |
machine | ![]() ![]() |
start | ![]() ![]() |
duration | ![]() ![]() |
end | ![]() ![]() |
height | ![]() ![]() |
limit | ![]() ![]() |
at_most | at_most tells if the amount of resources used for a machine should be less than the limit (at_most = true) or greater than the limit (at_most = false) |
icl | Supports value-consistency only (icl = ICL_VAL, default). |
Int::ArgumentSizeMismatch | thrown if the sizes of the arguments representing tasks does not match. |
Int::OutOfLimits | thrown if any numerical argument is larger than Int::Limits::max or less than Int::Limits::min. |
Definition at line 209 of file cumulatives.cpp.
void Gecode::unary | ( | Home | home, |
const IntVarArgs & | s, | ||
const IntArgs & | p | ||
) |
Post propagators for scheduling tasks on unary resources.
Schedule tasks with start times s and processing times p on a unary resource. The propagator uses the algorithms from: Petr Vilím, Global Constraints in Scheduling, PhD thesis, Charles University, Prague, Czech Republic, 2007.
The propagator performs overload checking, detectable precendence propagation, not-first-not-last propagation, and edge finding.
void Gecode::unary | ( | Home | home, |
const IntVarArgs & | s, | ||
const IntArgs & | p, | ||
const BoolVarArgs & | m | ||
) |
Post propagators for scheduling optional tasks on unary resources.
Schedule optional tasks with start times s, processing times p, and whether a task is mandatory m (a task is mandatory if the Boolean variable is 1) on a unary resource. The propagator uses the algorithms from: Petr Vilím, Global Constraints in Scheduling, PhD thesis, Charles University, Prague, Czech Republic, 2007.
The propagator performs overload checking, detectable precendence propagation, not-first-not-last propagation, and edge finding.
void Gecode::unary | ( | Home | home, |
const TaskTypeArgs & | t, | ||
const IntVarArgs & | s, | ||
const IntArgs & | p | ||
) |
Post propagators for scheduling tasks on unary resources.
Schedule tasks with flexible times flex and fixed times fix on a unary resource. For each task, it depends on t how the flexible and fix times are interpreted:
t[i]
is TT_FIXP
, then flex[i]
is the start time and fix[i]
is the processing time.t[i]
is TT_FIXS
, then flex[i]
is the end time and fix[i]
is the start time.t[i]
is TT_FIXE
, then flex[i]
is the start time and fix[i]
is the end time.The propagator uses the algorithms from: Petr Vilím, Global Constraints in Scheduling, PhD thesis, Charles University, Prague, Czech Republic, 2007.
The propagator performs overload checking, detectable precendence propagation, not-first-not-last propagation, and edge finding.
TT_FIXP
or that could generate an overflow. void Gecode::unary | ( | Home | home, |
const TaskTypeArgs & | t, | ||
const IntVarArgs & | s, | ||
const IntArgs & | p, | ||
const BoolVarArgs & | m | ||
) |
Post propagators for scheduling optional tasks on unary resources.
Schedule optional tasks with flexible times flex, fixed times fix, and whether a task is mandatory m (a task is mandatory if the Boolean variable is 1) on a unary resource. For each task, it depends on t how the flexible and fix times are interpreted:
t[i]
is TT_FIXP
, then flex[i]
is the start time and fix[i]
is the processing time.t[i]
is TT_FIXS
, then flex[i]
is the end time and fix[i]
is the start time.t[i]
is TT_FIXE
, then flex[i]
is the start time and fix[i]
is the end time.The propagator uses the algorithms from: Petr Vilím, Global Constraints in Scheduling, PhD thesis, Charles University, Prague, Czech Republic, 2007.
The propagator performs overload checking, detectable precendence propagation, not-first-not-last propagation, and edge finding.
TT_FIXP
or that could generate an overflow. void Gecode::unary | ( | Home | home, |
const IntVarArgs & | s, | ||
const IntVarArgs & | p, | ||
const IntVarArgs & | e | ||
) |
Post propagators for scheduling tasks on unary resources.
Schedule tasks with start times s, processing times p, and end times e on a unary resource. The propagator uses the algorithms from: Petr Vilím, Global Constraints in Scheduling, PhD thesis, Charles University, Prague, Czech Republic, 2007.
The propagator does not enforce , this constraint has to be posted in addition to ensure consistency of the task bounds.
The propagator performs overload checking, detectable precendence propagation, not-first-not-last propagation, and edge finding.
The processing times are constrained to be non-negative.
Throws an exception of type Int::ArgumentSizeMismatch, if s and p are of different size.
void Gecode::unary | ( | Home | home, |
const IntVarArgs & | s, | ||
const IntVarArgs & | p, | ||
const IntVarArgs & | e, | ||
const BoolVarArgs & | m | ||
) |
Post propagators for scheduling optional tasks on unary resources.
Schedule optional tasks with start times s, processing times p, end times e, and whether a task is mandatory m (a task is mandatory if the Boolean variable is 1) on a unary resource. The propagator uses the algorithms from: Petr Vilím, Global Constraints in Scheduling, PhD thesis, Charles University, Prague, Czech Republic, 2007.
The propagator does not enforce , this constraint has to be posted in addition to ensure consistency of the task bounds.
The processing times are constrained to be non-negative.
The propagator performs overload checking, detectable precendence propagation, not-first-not-last propagation, and edge finding.
Throws an exception of type Int::ArgumentSizeMismatch, if s, p, or m are of different size.
void Gecode::cumulative | ( | Home | home, |
int | c, | ||
const TaskTypeArgs & | t, | ||
const IntVarArgs & | flex, | ||
const IntArgs & | fix, | ||
const IntArgs & | u | ||
) |
Post propagators for scheduling tasks on cumulative resources.
Schedule tasks with flexible times flex, fixed times fix, and use capacity u on a cumulative resource with capacity c. For each task, it depends on t how the flexible and fix times are interpreted:
t[i]
is TT_FIXP
, then flex[i]
is the start time and fix[i]
is the processing time.t[i]
is TT_FIXS
, then flex[i]
is the end time and fix[i]
is the start time.t[i]
is TT_FIXE
, then flex[i]
is the start time and fix[i]
is the end time.The propagator performs time-tabling, overload checking, and edge-finding. It uses algorithms taken from:
Petr Vilím, Max Energy Filtering Algorithm for Discrete Cumulative Resources, in W. J. van Hoeve and J. N. Hooker, editors, CPAIOR, volume 5547 of LNCS, pages 294-308. Springer, 2009.
and
Petr Vilím, Edge finding filtering algorithm for discrete cumulative resources in O(kn log n). In I. P. Gent, editor, CP, volume 5732 of LNCS, pages 802-816. Springer, 2009.
Definition at line 47 of file cumulative.cpp.
void Gecode::cumulative | ( | Home | home, |
int | c, | ||
const TaskTypeArgs & | t, | ||
const IntVarArgs & | s, | ||
const IntArgs & | p, | ||
const IntArgs & | u, | ||
const BoolVarArgs & | m | ||
) |
Post propagators for scheduling optional tasks on cumulative resources.
Schedule tasks with flexible times flex, fixed times fix, use capacity u, and whether a task is mandatory m (a task is mandatory if the Boolean variable is 1) on a cumulative resource with capacity c. For each task, it depends on t how the flexible and fix times are interpreted:
t[i]
is TT_FIXP
, then flex[i]
is the start time and fix[i]
is the processing time.t[i]
is TT_FIXS
, then flex[i]
is the end time and fix[i]
is the start time.t[i]
is TT_FIXE
, then flex[i]
is the start time and fix[i]
is the end time.The propagator performs time-tabling, overload checking, and edge-finding. It uses algorithms taken from:
Petr Vilím, Max Energy Filtering Algorithm for Discrete Cumulative Resources, in W. J. van Hoeve and J. N. Hooker, editors, CPAIOR, volume 5547 of LNCS, pages 294-308. Springer, 2009.
and
Petr Vilím, Edge finding filtering algorithm for discrete cumulative resources in O(kn log n). In I. P. Gent, editor, CP, volume 5732 of LNCS, pages 802-816. Springer, 2009.
Definition at line 86 of file cumulative.cpp.
void Gecode::cumulative | ( | Home | home, |
int | c, | ||
const IntVarArgs & | s, | ||
const IntArgs & | p, | ||
const IntArgs & | u | ||
) |
Post propagators for scheduling tasks on cumulative resources.
Schedule tasks with start times s, processing times p, and use capacity u on a cumulative resource with capacity c.
The propagator performs time-tabling, overload checking, and edge-finding. It uses algorithms taken from:
Petr Vilím, Max Energy Filtering Algorithm for Discrete Cumulative Resources, in W. J. van Hoeve and J. N. Hooker, editors, CPAIOR, volume 5547 of LNCS, pages 294-308. Springer, 2009.
and
Petr Vilím, Edge finding filtering algorithm for discrete cumulative resources in O(kn log n). In I. P. Gent, editor, CP, volume 5732 of LNCS, pages 802-816. Springer, 2009.
Definition at line 125 of file cumulative.cpp.
void Gecode::cumulative | ( | Home | home, |
int | c, | ||
const IntVarArgs & | s, | ||
const IntArgs & | p, | ||
const IntArgs & | u, | ||
const BoolVarArgs & | m | ||
) |
Post propagators for scheduling optional tasks on cumulative resources.
Schedule optional tasks with start times s, processing times p, used capacity u, and whether a task is mandatory m (a task is mandatory if the Boolean variable is 1) on a cumulative resource with capacity c.
The propagator performs time-tabling, overload checking, and edge-finding. It uses algorithms taken from:
Petr Vilím, Max Energy Filtering Algorithm for Discrete Cumulative Resources, in W. J. van Hoeve and J. N. Hooker, editors, CPAIOR, volume 5547 of LNCS, pages 294-308. Springer, 2009.
and
Petr Vilím, Edge finding filtering algorithm for discrete cumulative resources in O(kn log n). In I. P. Gent, editor, CP, volume 5732 of LNCS, pages 802-816. Springer, 2009.
Definition at line 152 of file cumulative.cpp.
void Gecode::cumulative | ( | Home | home, |
int | c, | ||
const IntVarArgs & | s, | ||
const IntVarArgs & | p, | ||
const IntVarArgs & | e, | ||
const IntArgs & | u | ||
) |
Post propagators for scheduling tasks on cumulative resources.
Schedule tasks with start times s, processing times p, end times e, and use capacity u on a cumulative resource with capacity c.
The propagator does not enforce , this constraint has to be posted in addition to ensure consistency of the task bounds.
The propagator performs time-tabling, overload checking, and edge-finding. It uses algorithms taken from:
Petr Vilím, Max Energy Filtering Algorithm for Discrete Cumulative Resources, in W. J. van Hoeve and J. N. Hooker, editors, CPAIOR, volume 5547 of LNCS, pages 294-308. Springer, 2009.
and
Petr Vilím, Edge finding filtering algorithm for discrete cumulative resources in O(kn log n). In I. P. Gent, editor, CP, volume 5732 of LNCS, pages 802-816. Springer, 2009.
Definition at line 180 of file cumulative.cpp.
void Gecode::cumulative | ( | Home | home, |
int | c, | ||
const IntVarArgs & | s, | ||
const IntVarArgs & | p, | ||
const IntVarArgs & | e, | ||
const IntArgs & | u, | ||
const BoolVarArgs & | m | ||
) |
Post propagators for scheduling optional tasks on cumulative resources.
Schedule optional tasks with start times s, processing times p, end times e, used capacity u, and whether a task is mandatory m (a task is mandatory if the Boolean variable is 1) on a cumulative resource with capacity c.
The propagator does not enforce , this constraint has to be posted in addition to ensure consistency of the task bounds.
The propagator performs time-tabling, overload checking, and edge-finding. It uses algorithms taken from:
Petr Vilím, Max Energy Filtering Algorithm for Discrete Cumulative Resources, in W. J. van Hoeve and J. N. Hooker, editors, CPAIOR, volume 5547 of LNCS, pages 294-308. Springer, 2009.
and
Petr Vilím, Edge finding filtering algorithm for discrete cumulative resources in O(kn log n). In I. P. Gent, editor, CP, volume 5732 of LNCS, pages 802-816. Springer, 2009.
Definition at line 210 of file cumulative.cpp.