Generated on Mon May 10 06:46:51 2010 for Gecode by doxygen 1.6.3

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 $ machine_i $ is the machine assigned to task $ i $
start $ start_i $ is the start date assigned to task $ i $
duration $ duration_i $ is the duration of task $ i $
end $ end_i $ is the end date assigned to task $ i $
height $ height_i $ is the height is the amount of resources consumed by task $ i $
limit $ limit_r $ is the amount of resource available for machine $ r $
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 $ machine_i $ is the machine assigned to task $ i $
start $ start_i $ is the start date assigned to task $ i $
duration $ duration_i $ is the duration of task $ i $
end $ end_i $ is the end date assigned to task $ i $
height $ height_i $ is the height is the amount of resources consumed by task $ i $
limit $ limit_r $ is the amount of resource available for machine $ r $
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 $ machine_i $ is the machine assigned to task $ i $
start $ start_i $ is the start date assigned to task $ i $
duration $ duration_i $ is the duration of task $ i $
end $ end_i $ is the end date assigned to task $ i $
height $ height_i $ is the height is the amount of resources consumed by task $ i $
limit $ limit_r $ is the amount of resource available for machine $ r $
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 $ machine_i $ is the machine assigned to task $ i $
start $ start_i $ is the start date assigned to task $ i $
duration $ duration_i $ is the duration of task $ i $
end $ end_i $ is the end date assigned to task $ i $
height $ height_i $ is the height is the amount of resources consumed by task $ i $
limit $ limit_r $ is the amount of resource available for machine $ r $
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 $ machine_i $ is the machine assigned to task $ i $
start $ start_i $ is the start date assigned to task $ i $
duration $ duration_i $ is the duration of task $ i $
end $ end_i $ is the end date assigned to task $ i $
height $ height_i $ is the height is the amount of resources consumed by task $ i $
limit $ limit_r $ is the amount of resource available for machine $ r $
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 $ machine_i $ is the machine assigned to task $ i $
start $ start_i $ is the start date assigned to task $ i $
duration $ duration_i $ is the duration of task $ i $
end $ end_i $ is the end date assigned to task $ i $
height $ height_i $ is the height is the amount of resources consumed by task $ i $
limit $ limit_r $ is the amount of resource available for machine $ r $
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 $ machine_i $ is the machine assigned to task $ i $
start $ start_i $ is the start date assigned to task $ i $
duration $ duration_i $ is the duration of task $ i $
end $ end_i $ is the end date assigned to task $ i $
height $ height_i $ is the height is the amount of resources consumed by task $ i $
limit $ limit_r $ is the amount of resource available for machine $ r $
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 $ machine_i $ is the machine assigned to task $ i $
start $ start_i $ is the start date assigned to task $ i $
duration $ duration_i $ is the duration of task $ i $
end $ end_i $ is the end date assigned to task $ i $
height $ height_i $ is the height is the amount of resources consumed by task $ i $
limit $ limit_r $ is the amount of resource available for machine $ r $
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.