Scheduling constraints and branchers
[Programming models]
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. |
Function Documentation
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).
- Parameters:
-
home current space machine is the machine assigned to task
start is the start date assigned to task
duration is the duration of task
end is the end date assigned to task
height is the height is the amount of resources consumed by task
limit is the amount of resource available for machine
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).
- Exceptions:
-
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.
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).
- Parameters:
-
home current space machine is the machine assigned to task
start is the start date assigned to task
duration is the duration of task
end is the end date assigned to task
height is the height is the amount of resources consumed by task
limit is the amount of resource available for machine
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).
- Exceptions:
-
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.
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).
- Parameters:
-
home current space machine is the machine assigned to task
start is the start date assigned to task
duration is the duration of task
end is the end date assigned to task
height is the height is the amount of resources consumed by task
limit is the amount of resource available for machine
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).
- Exceptions:
-
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.
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).
- Parameters:
-
home current space machine is the machine assigned to task
start is the start date assigned to task
duration is the duration of task
end is the end date assigned to task
height is the height is the amount of resources consumed by task
limit is the amount of resource available for machine
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).
- Exceptions:
-
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.
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).
- Parameters:
-
home current space machine is the machine assigned to task
start is the start date assigned to task
duration is the duration of task
end is the end date assigned to task
height is the height is the amount of resources consumed by task
limit is the amount of resource available for machine
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).
- Exceptions:
-
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.
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).
- Parameters:
-
home current space machine is the machine assigned to task
start is the start date assigned to task
duration is the duration of task
end is the end date assigned to task
height is the height is the amount of resources consumed by task
limit is the amount of resource available for machine
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).
- Exceptions:
-
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.
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).
- Parameters:
-
home current space machine is the machine assigned to task
start is the start date assigned to task
duration is the duration of task
end is the end date assigned to task
height is the height is the amount of resources consumed by task
limit is the amount of resource available for machine
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).
- Exceptions:
-
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.
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).
- Parameters:
-
home current space machine is the machine assigned to task
start is the start date assigned to task
duration is the duration of task
end is the end date assigned to task
height is the height is the amount of resources consumed by task
limit is the amount of resource available for machine
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).
- Exceptions:
-
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.
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.
- Throws an exception of type Int::ArgumentSizeMismatch, if s and p are of different size.
- Throws an exception of type Int::ArgumentSame, if s contains the same unassigned variable multiply.
- Throws an exception of type Int::OutOfLimits, if p contains an integer that is not strictly positive or that could generate an overflow.
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.
- Throws an exception of type Int::ArgumentSizeMismatch, if s, p, or m are of different size.
- Throws an exception of type Int::ArgumentSame, if s contains the same unassigned variable multiply.
- Throws an exception of type Int::OutOfLimits, if p contains an integer that is not strictly positive or that could generate an overflow.