Generated on Fri Aug 24 2012 04:52:24 for Gecode by doxygen 1.8.1.1
Scheduling constraints

Functions

void Gecode::cumulatives (Home home, const IntVarArgs &m, const IntVarArgs &s, const IntVarArgs &p, const IntVarArgs &e, const IntVarArgs &u, const IntArgs &c, bool at_most, IntConLevel icl=ICL_DEF)
 Post propagators for the cumulatives constraint.
void Gecode::cumulatives (Home home, const IntArgs &m, const IntVarArgs &s, const IntVarArgs &p, const IntVarArgs &e, const IntVarArgs &u, const IntArgs &c, bool at_most, IntConLevel icl=ICL_DEF)
 Post propagators for the cumulatives constraint.
void Gecode::cumulatives (Home home, const IntVarArgs &m, const IntVarArgs &s, const IntArgs &p, const IntVarArgs &e, const IntVarArgs &u, const IntArgs &c, bool at_most, IntConLevel icl=ICL_DEF)
 Post propagators for the cumulatives constraint.
void Gecode::cumulatives (Home home, const IntArgs &m, const IntVarArgs &s, const IntArgs &p, const IntVarArgs &e, const IntVarArgs &u, const IntArgs &c, bool at_most, IntConLevel icl=ICL_DEF)
 Post propagators for the cumulatives constraint.
void Gecode::cumulatives (Home home, const IntVarArgs &m, const IntVarArgs &s, const IntVarArgs &p, const IntVarArgs &e, const IntArgs &u, const IntArgs &c, bool at_most, IntConLevel icl=ICL_DEF)
 Post propagators for the cumulatives constraint.
void Gecode::cumulatives (Home home, const IntArgs &m, const IntVarArgs &s, const IntVarArgs &p, const IntVarArgs &e, const IntArgs &u, const IntArgs &c, bool at_most, IntConLevel icl=ICL_DEF)
 Post propagators for the cumulatives constraint.
void Gecode::cumulatives (Home home, const IntVarArgs &m, const IntVarArgs &s, const IntArgs &p, const IntVarArgs &e, const IntArgs &u, const IntArgs &c, bool at_most, IntConLevel icl=ICL_DEF)
 Post propagators for the cumulatives constraint.
void Gecode::cumulatives (Home home, const IntArgs &m, const IntVarArgs &s, const IntArgs &p, const IntVarArgs &e, const IntArgs &u, const IntArgs &c, bool at_most, IntConLevel icl=ICL_DEF)
 Post propagators for the cumulatives constraint.
void Gecode::unary (Home home, const IntVarArgs &s, const IntArgs &p, IntConLevel icl=ICL_DEF)
 Post propagators for scheduling tasks on unary resources.
void Gecode::unary (Home home, const IntVarArgs &s, const IntArgs &p, const BoolVarArgs &m, IntConLevel icl=ICL_DEF)
 Post propagators for scheduling optional tasks on unary resources.
void Gecode::unary (Home home, const TaskTypeArgs &t, const IntVarArgs &flex, const IntArgs &fix, IntConLevel icl=ICL_DEF)
 Post propagators for scheduling tasks on unary resources.
void Gecode::unary (Home home, const TaskTypeArgs &t, const IntVarArgs &flex, const IntArgs &fix, const BoolVarArgs &m, IntConLevel icl=ICL_DEF)
 Post propagators for scheduling optional tasks on unary resources.
void Gecode::unary (Home home, const IntVarArgs &s, const IntVarArgs &p, const IntVarArgs &e, IntConLevel icl=ICL_DEF)
 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, IntConLevel icl=ICL_DEF)
 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, IntConLevel icl=ICL_DEF)
 Post propagators for scheduling tasks on cumulative resources.
void Gecode::cumulative (Home home, IntVar c, const TaskTypeArgs &t, const IntVarArgs &flex, const IntArgs &fix, const IntArgs &u, IntConLevel icl=ICL_DEF)
 Post propagators for scheduling tasks on cumulative resources.
void Gecode::cumulative (Home home, int c, const TaskTypeArgs &t, const IntVarArgs &flex, const IntArgs &fix, const IntArgs &u, const BoolVarArgs &m, IntConLevel icl=ICL_DEF)
 Post propagators for scheduling optional tasks on cumulative resources.
void Gecode::cumulative (Home home, IntVar c, const TaskTypeArgs &t, const IntVarArgs &flex, const IntArgs &fix, const IntArgs &u, const BoolVarArgs &m, IntConLevel icl=ICL_DEF)
 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, IntConLevel icl=ICL_DEF)
 Post propagators for scheduling tasks on cumulative resources.
void Gecode::cumulative (Home home, IntVar c, const IntVarArgs &s, const IntArgs &p, const IntArgs &u, IntConLevel icl=ICL_DEF)
 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, IntConLevel icl=ICL_DEF)
 Post propagators for scheduling optional tasks on cumulative resources.
void Gecode::cumulative (Home home, IntVar c, const IntVarArgs &s, const IntArgs &p, const IntArgs &u, const BoolVarArgs &m, IntConLevel icl=ICL_DEF)
 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, IntConLevel icl=ICL_DEF)
 Post propagators for scheduling tasks on cumulative resources.
void Gecode::cumulative (Home home, IntVar c, const IntVarArgs &s, const IntVarArgs &p, const IntVarArgs &e, const IntArgs &u, IntConLevel icl=ICL_DEF)
 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, IntConLevel icl=ICL_DEF)
 Post propagators for scheduling optional tasks on cumulative resources.
void Gecode::cumulative (Home home, IntVar c, const IntVarArgs &s, const IntVarArgs &p, const IntVarArgs &e, const IntArgs &u, const BoolVarArgs &m, IntConLevel icl=ICL_DEF)
 Post propagators for scheduling optional tasks on cumulative resources.

Detailed Description


Function Documentation

void Gecode::cumulatives ( Home  home,
const IntVarArgs &  m,
const IntVarArgs &  s,
const IntVarArgs &  p,
const IntVarArgs &  e,
const IntVarArgs &  u,
const IntArgs &  c,
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 propagator does not enforce $s_i+p_i=e_i$, this constraint has to be posted in addition to ensure consistency of the task bounds.

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:
homecurrent space
m$ m_i $ is the machine assigned to task $ i $
s$ s_i $ is the start time assigned to task $ i $
p$ p_i $ is the processing time of task $ i $
e$ e_i $ is the end time assigned to task $ i $
u$ u_i $ is the amount of resources consumed by task $ i $
c$ c_r $ is the capacity, the amount of resource available for machine $ r $
at_mostat_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)
iclSupports value-consistency only (icl = ICL_VAL, default).
Exceptions:
Int::ArgumentSizeMismatchthrown if the sizes of the arguments representing tasks does not match.
Int::OutOfLimitsthrown if any numerical argument is larger than Int::Limits::max or less than Int::Limits::min.

Definition at line 114 of file cumulatives.cpp.

void Gecode::cumulatives ( Home  home,
const IntArgs &  m,
const IntVarArgs &  s,
const IntVarArgs &  p,
const IntVarArgs &  e,
const IntVarArgs &  u,
const IntArgs &  c,
bool  at_most,
IntConLevel  icl = ICL_DEF 
)

Post propagators for the cumulatives constraint.

 \copybrief cumulatives()

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 propagator does not enforce $s_i+p_i=e_i$, this constraint has to be posted in addition to ensure consistency of the task bounds.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:
homecurrent space
m$ m_i $ is the machine assigned to task $ i $
s$ s_i $ is the start time assigned to task $ i $
p$ p_i $ is the processing time of task $ i $
e$ e_i $ is the end time assigned to task $ i $
u$ u_i $ is the amount of resources consumed by task $ i $
c$ c_r $ is the capacity, the amount of resource available for machine $ r $
at_mostat_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)
iclSupports value-consistency only (icl = ICL_VAL, default).
Exceptions:
Int::ArgumentSizeMismatchthrown if the sizes of the arguments representing tasks does not match.
Int::OutOfLimitsthrown if any numerical argument is larger than Int::Limits::max or less than Int::Limits::min.

Definition at line 123 of file cumulatives.cpp.

void Gecode::cumulatives ( Home  home,
const IntVarArgs &  m,
const IntVarArgs &  s,
const IntArgs &  p,
const IntVarArgs &  e,
const IntVarArgs &  u,
const IntArgs &  c,
bool  at_most,
IntConLevel  icl = ICL_DEF 
)

Post propagators for the cumulatives constraint.

 \copybrief cumulatives()

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 propagator does not enforce $s_i+p_i=e_i$, this constraint has to be posted in addition to ensure consistency of the task bounds.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:
homecurrent space
m$ m_i $ is the machine assigned to task $ i $
s$ s_i $ is the start time assigned to task $ i $
p$ p_i $ is the processing time of task $ i $
e$ e_i $ is the end time assigned to task $ i $
u$ u_i $ is the amount of resources consumed by task $ i $
c$ c_r $ is the capacity, the amount of resource available for machine $ r $
at_mostat_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)
iclSupports value-consistency only (icl = ICL_VAL, default).
Exceptions:
Int::ArgumentSizeMismatchthrown if the sizes of the arguments representing tasks does not match.
Int::OutOfLimitsthrown if any numerical argument is larger than Int::Limits::max or less than Int::Limits::min.

Definition at line 132 of file cumulatives.cpp.

void Gecode::cumulatives ( Home  home,
const IntArgs &  m,
const IntVarArgs &  s,
const IntArgs &  p,
const IntVarArgs &  e,
const IntVarArgs &  u,
const IntArgs &  c,
bool  at_most,
IntConLevel  icl = ICL_DEF 
)

Post propagators for the cumulatives constraint.

 \copybrief cumulatives()

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 propagator does not enforce $s_i+p_i=e_i$, this constraint has to be posted in addition to ensure consistency of the task bounds.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:
homecurrent space
m$ m_i $ is the machine assigned to task $ i $
s$ s_i $ is the start time assigned to task $ i $
p$ p_i $ is the processing time of task $ i $
e$ e_i $ is the end time assigned to task $ i $
u$ u_i $ is the amount of resources consumed by task $ i $
c$ c_r $ is the capacity, the amount of resource available for machine $ r $
at_mostat_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)
iclSupports value-consistency only (icl = ICL_VAL, default).
Exceptions:
Int::ArgumentSizeMismatchthrown if the sizes of the arguments representing tasks does not match.
Int::OutOfLimitsthrown if any numerical argument is larger than Int::Limits::max or less than Int::Limits::min.

Definition at line 141 of file cumulatives.cpp.

void Gecode::cumulatives ( Home  home,
const IntVarArgs &  m,
const IntVarArgs &  s,
const IntVarArgs &  p,
const IntVarArgs &  e,
const IntArgs &  u,
const IntArgs &  c,
bool  at_most,
IntConLevel  icl = ICL_DEF 
)

Post propagators for the cumulatives constraint.

 \copybrief cumulatives()

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 propagator does not enforce $s_i+p_i=e_i$, this constraint has to be posted in addition to ensure consistency of the task bounds.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:
homecurrent space
m$ m_i $ is the machine assigned to task $ i $
s$ s_i $ is the start time assigned to task $ i $
p$ p_i $ is the processing time of task $ i $
e$ e_i $ is the end time assigned to task $ i $
u$ u_i $ is the amount of resources consumed by task $ i $
c$ c_r $ is the capacity, the amount of resource available for machine $ r $
at_mostat_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)
iclSupports value-consistency only (icl = ICL_VAL, default).
Exceptions:
Int::ArgumentSizeMismatchthrown if the sizes of the arguments representing tasks does not match.
Int::OutOfLimitsthrown if any numerical argument is larger than Int::Limits::max or less than Int::Limits::min.

Definition at line 150 of file cumulatives.cpp.

void Gecode::cumulatives ( Home  home,
const IntArgs &  m,
const IntVarArgs &  s,
const IntVarArgs &  p,
const IntVarArgs &  e,
const IntArgs &  u,
const IntArgs &  c,
bool  at_most,
IntConLevel  icl = ICL_DEF 
)

Post propagators for the cumulatives constraint.

 \copybrief cumulatives()

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 propagator does not enforce $s_i+p_i=e_i$, this constraint has to be posted in addition to ensure consistency of the task bounds.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:
homecurrent space
m$ m_i $ is the machine assigned to task $ i $
s$ s_i $ is the start time assigned to task $ i $
p$ p_i $ is the processing time of task $ i $
e$ e_i $ is the end time assigned to task $ i $
u$ u_i $ is the amount of resources consumed by task $ i $
c$ c_r $ is the capacity, the amount of resource available for machine $ r $
at_mostat_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)
iclSupports value-consistency only (icl = ICL_VAL, default).
Exceptions:
Int::ArgumentSizeMismatchthrown if the sizes of the arguments representing tasks does not match.
Int::OutOfLimitsthrown 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 IntVarArgs &  m,
const IntVarArgs &  s,
const IntArgs &  p,
const IntVarArgs &  e,
const IntArgs &  u,
const IntArgs &  c,
bool  at_most,
IntConLevel  icl = ICL_DEF 
)

Post propagators for the cumulatives constraint.

 \copybrief cumulatives()

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 propagator does not enforce $s_i+p_i=e_i$, this constraint has to be posted in addition to ensure consistency of the task bounds.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:
homecurrent space
m$ m_i $ is the machine assigned to task $ i $
s$ s_i $ is the start time assigned to task $ i $
p$ p_i $ is the processing time of task $ i $
e$ e_i $ is the end time assigned to task $ i $
u$ u_i $ is the amount of resources consumed by task $ i $
c$ c_r $ is the capacity, the amount of resource available for machine $ r $
at_mostat_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)
iclSupports value-consistency only (icl = ICL_VAL, default).
Exceptions:
Int::ArgumentSizeMismatchthrown if the sizes of the arguments representing tasks does not match.
Int::OutOfLimitsthrown if any numerical argument is larger than Int::Limits::max or less than Int::Limits::min.

Definition at line 168 of file cumulatives.cpp.

void Gecode::cumulatives ( Home  home,
const IntArgs &  m,
const IntVarArgs &  s,
const IntArgs &  p,
const IntVarArgs &  e,
const IntArgs &  u,
const IntArgs &  c,
bool  at_most,
IntConLevel  icl = ICL_DEF 
)

Post propagators for the cumulatives constraint.

 \copybrief cumulatives()

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 propagator does not enforce $s_i+p_i=e_i$, this constraint has to be posted in addition to ensure consistency of the task bounds.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:
homecurrent space
m$ m_i $ is the machine assigned to task $ i $
s$ s_i $ is the start time assigned to task $ i $
p$ p_i $ is the processing time of task $ i $
e$ e_i $ is the end time assigned to task $ i $
u$ u_i $ is the amount of resources consumed by task $ i $
c$ c_r $ is the capacity, the amount of resource available for machine $ r $
at_mostat_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)
iclSupports value-consistency only (icl = ICL_VAL, default).
Exceptions:
Int::ArgumentSizeMismatchthrown if the sizes of the arguments representing tasks does not match.
Int::OutOfLimitsthrown if any numerical argument is larger than Int::Limits::max or less than Int::Limits::min.

Definition at line 177 of file cumulatives.cpp.

void Gecode::unary ( Home  home,
const IntVarArgs &  s,
const IntArgs &  p,
IntConLevel  icl = ICL_DEF 
)

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 negative or that could generate an overflow.

Definition at line 48 of file unary.cpp.

void Gecode::unary ( Home  home,
const IntVarArgs &  s,
const IntArgs &  p,
const BoolVarArgs &  m,
IntConLevel  icl = ICL_DEF 
)

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 negative or that could generate an overflow.

Definition at line 120 of file unary.cpp.

void Gecode::unary ( Home  home,
const TaskTypeArgs &  t,
const IntVarArgs &  flex,
const IntArgs &  fix,
IntConLevel  icl = ICL_DEF 
)

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:

  • If t[i] is TT_FIXP, then flex[i] is the start time and fix[i] is the processing time.
  • If t[i] is TT_FIXS, then flex[i] is the end time and fix[i] is the start time.
  • If 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.

  • Throws an exception of type Int::ArgumentSizeMismatch, if s and p are of different size.
  • Throws an exception of type Int::OutOfLimits, if p contains an integer that is negative for a task with type TT_FIXP or that could generate an overflow.

Definition at line 89 of file unary.cpp.

void Gecode::unary ( Home  home,
const TaskTypeArgs &  t,
const IntVarArgs &  flex,
const IntArgs &  fix,
const BoolVarArgs &  m,
IntConLevel  icl = ICL_DEF 
)

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:

  • If t[i] is TT_FIXP, then flex[i] is the start time and fix[i] is the processing time.
  • If t[i] is TT_FIXS, then flex[i] is the end time and fix[i] is the start time.
  • If 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.

  • Throws an exception of type Int::ArgumentSizeMismatch, if s, p, or m are of different size.
  • Throws an exception of type Int::OutOfLimits, if p contains an integer that is negative for a task with type TT_FIXP or that could generate an overflow.

Definition at line 152 of file unary.cpp.

void Gecode::unary ( Home  home,
const IntVarArgs &  s,
const IntVarArgs &  p,
const IntVarArgs &  e,
IntConLevel  icl = ICL_DEF 
)

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 $s_i+p_i=e_i$, 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.

Definition at line 197 of file unary.cpp.

void Gecode::unary ( Home  home,
const IntVarArgs &  s,
const IntVarArgs &  p,
const IntVarArgs &  e,
const BoolVarArgs &  m,
IntConLevel  icl = ICL_DEF 
)

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 $s_i+p_i=e_i$, 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.

Definition at line 228 of file unary.cpp.

void Gecode::cumulative ( Home  home,
int  c,
const TaskTypeArgs &  t,
const IntVarArgs &  flex,
const IntArgs &  fix,
const IntArgs &  u,
IntConLevel  icl = ICL_DEF 
)

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:

  • If t[i] is TT_FIXP, then flex[i] is the start time and fix[i] is the processing time.
  • If t[i] is TT_FIXS, then flex[i] is the end time and fix[i] is the start time.
  • If 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.

  • Throws an exception of type Int::ArgumentSizeMismatch, if t, s p, or u are of different size.
  • Throws an exception of type Int::OutOfLimits, if p, u, or c contain an integer that is not nonnegative, or that could generate an overflow.

Definition at line 105 of file cumulative.cpp.

void Gecode::cumulative ( Home  home,
IntVar  c,
const TaskTypeArgs &  t,
const IntVarArgs &  flex,
const IntArgs &  fix,
const IntArgs &  u,
IntConLevel  icl = ICL_DEF 
)

Post propagators for scheduling tasks on cumulative resources.

 \copybrief cumulative(Home,int,const TaskTypeArgs&,const IntVarArgs&,const IntArgs&,const IntArgs&,IntConLevel)

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:

  • If t[i] is TT_FIXP, then flex[i] is the start time and fix[i] is the processing time.
  • If t[i] is TT_FIXS, then flex[i] is the end time and fix[i] is the start time.
  • If 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.andPetr 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.
  • Throws an exception of type Int::ArgumentSizeMismatch, if t, s p, or u are of different size.
  • Throws an exception of type Int::OutOfLimits, if p, u, or c contain an integer that is not nonnegative, or that could generate an overflow.

Definition at line 112 of file cumulative.cpp.

void Gecode::cumulative ( Home  home,
int  c,
const TaskTypeArgs &  t,
const IntVarArgs &  flex,
const IntArgs &  fix,
const IntArgs &  u,
const BoolVarArgs &  m,
IntConLevel  icl = ICL_DEF 
)

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:

  • If t[i] is TT_FIXP, then flex[i] is the start time and fix[i] is the processing time.
  • If t[i] is TT_FIXS, then flex[i] is the end time and fix[i] is the start time.
  • If 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.

  • Throws an exception of type Int::ArgumentSizeMismatch, if t, s p, or u are of different size.
  • Throws an exception of type Int::OutOfLimits, if p, u, or c contain an integer that is not nonnegative, or that could generate an overflow.

Definition at line 175 of file cumulative.cpp.

void Gecode::cumulative ( Home  home,
IntVar  c,
const TaskTypeArgs &  t,
const IntVarArgs &  flex,
const IntArgs &  fix,
const IntArgs &  u,
const BoolVarArgs &  m,
IntConLevel  icl = ICL_DEF 
)

Post propagators for scheduling optional tasks on cumulative resources.

 \copybrief cumulative(Home,int,const TaskTypeArgs&,const IntVarArgs&,const IntArgs&,const IntArgs&,const BoolVarArgs&,IntConLevel)

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:

  • If t[i] is TT_FIXP, then flex[i] is the start time and fix[i] is the processing time.
  • If t[i] is TT_FIXS, then flex[i] is the end time and fix[i] is the start time.
  • If 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.andPetr 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.
  • Throws an exception of type Int::ArgumentSizeMismatch, if t, s p, or u are of different size.
  • Throws an exception of type Int::OutOfLimits, if p, u, or c contain an integer that is not nonnegative, or that could generate an overflow.

Definition at line 182 of file cumulative.cpp.

void Gecode::cumulative ( Home  home,
int  c,
const IntVarArgs &  s,
const IntArgs &  p,
const IntArgs &  u,
IntConLevel  icl = ICL_DEF 
)

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.

  • Throws an exception of type Int::ArgumentSizeMismatch, if s p, or u are of different size.
  • Throws an exception of type Int::OutOfLimits, if p, u, or c contain an integer that is not nonnegative, or that could generate an overflow.

Definition at line 237 of file cumulative.cpp.

void Gecode::cumulative ( Home  home,
IntVar  c,
const IntVarArgs &  s,
const IntArgs &  p,
const IntArgs &  u,
IntConLevel  icl = ICL_DEF 
)

Post propagators for scheduling tasks on cumulative resources.

 \copybrief cumulative(Home,int,const IntVarArgs&,const IntArgs&,const IntArgs&,IntConLevel)

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.andPetr 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.

  • Throws an exception of type Int::ArgumentSizeMismatch, if s p, or u are of different size.
  • Throws an exception of type Int::OutOfLimits, if p, u, or c contain an integer that is not nonnegative, or that could generate an overflow.

Definition at line 243 of file cumulative.cpp.

void Gecode::cumulative ( Home  home,
int  c,
const IntVarArgs &  s,
const IntArgs &  p,
const IntArgs &  u,
const BoolVarArgs &  m,
IntConLevel  icl = ICL_DEF 
)

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.

  • Throws an exception of type Int::ArgumentSizeMismatch, if s, p, u, or m are of different size.
  • Throws an exception of type Int::OutOfLimits, if p, u, or c contain an integer that is not nonnegative, or that could generate an overflow.

Definition at line 293 of file cumulative.cpp.

void Gecode::cumulative ( Home  home,
IntVar  c,
const IntVarArgs &  s,
const IntArgs &  p,
const IntArgs &  u,
const BoolVarArgs &  m,
IntConLevel  icl = ICL_DEF 
)

Post propagators for scheduling optional tasks on cumulative resources.

 \copybrief cumulative(Home,int,const IntVarArgs&,const IntArgs&,const IntArgs&,const BoolVarArgs&,IntConLevel)

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.andPetr 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.

  • Throws an exception of type Int::ArgumentSizeMismatch, if s, p, u, or m are of different size.
  • Throws an exception of type Int::OutOfLimits, if p, u, or c contain an integer that is not nonnegative, or that could generate an overflow.

Definition at line 299 of file cumulative.cpp.

void Gecode::cumulative ( Home  home,
int  c,
const IntVarArgs &  s,
const IntVarArgs &  p,
const IntVarArgs &  e,
const IntArgs &  u,
IntConLevel  icl = ICL_DEF 
)

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 $s_i+p_i=e_i$, 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.

  • Throws an exception of type Int::ArgumentSizeMismatch, if s p, or u are of different size.
  • Throws an exception of type Int::OutOfLimits, if u or c contain an integer that is not nonnegative, or that could generate an overflow.

Definition at line 354 of file cumulative.cpp.

void Gecode::cumulative ( Home  home,
IntVar  c,
const IntVarArgs &  s,
const IntVarArgs &  p,
const IntVarArgs &  e,
const IntArgs &  u,
IntConLevel  icl = ICL_DEF 
)

Post propagators for scheduling tasks on cumulative resources.

 \copybrief cumulative(Home,int,const IntVarArgs&,const IntVarArgs&,const IntVarArgs&,const IntArgs&,IntConLevel)

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 $s_i+p_i=e_i$, 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.andPetr 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.

  • Throws an exception of type Int::ArgumentSizeMismatch, if s p, or u are of different size.
  • Throws an exception of type Int::OutOfLimits, if u or c contain an integer that is not nonnegative, or that could generate an overflow.

Definition at line 361 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,
IntConLevel  icl = ICL_DEF 
)

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 $s_i+p_i=e_i$, 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.

  • Throws an exception of type Int::ArgumentSizeMismatch, if s, p, u, or m are of different size.
  • Throws an exception of type Int::OutOfLimits, if u or c contain an integer that is not nonnegative, or that could generate an overflow.

Definition at line 414 of file cumulative.cpp.

void Gecode::cumulative ( Home  home,
IntVar  c,
const IntVarArgs &  s,
const IntVarArgs &  p,
const IntVarArgs &  e,
const IntArgs &  u,
const BoolVarArgs &  m,
IntConLevel  icl = ICL_DEF 
)

Post propagators for scheduling optional tasks on cumulative resources.

 \copybrief cumulative(Home,int,const IntVarArgs&,const IntVarArgs&,const IntVarArgs&,const IntArgs&,const BoolVarArgs&,IntConLevel)

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 $s_i+p_i=e_i$, 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.andPetr 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.

  • Throws an exception of type Int::ArgumentSizeMismatch, if s, p, u, or m are of different size.
  • Throws an exception of type Int::OutOfLimits, if u or c contain an integer that is not nonnegative, or that could generate an overflow.

Definition at line 421 of file cumulative.cpp.