The function cp::SequentialSchedule(j,s_j,d_j,e_j) models a resource
that can handle only one job at a time. A job \(j\) is scheduled
from start time \(s_j\) until, but not including, end time
\(e_j\) and over a number of periods \(d_j\). This function
returns 1 if the jobs are scheduled such that no two jobs overlap.
cp::SequentialSchedule(jobBinding,! (input) an index bindingjobBegin,! (input) an expressionjobDuration,! (input) an expressionjobEnd! (input) an expression)
An index binding that specifies and possibly limits the scope of
indices. This argument follows the syntax of the index binding argument
of iterative operators.
jobBegin
An expression that involves variables. The result is a vector with an
element for each possible value of the indices in jobBinding.
jobDuration
An expression that may involve variables. The result of this expression
is an integer non-negative value. The result is a vector with an element
for each possible value of the indices in jobBinding.
jobEnd
An expression that involves variables. This expression has the same data
type as jobBegin. The result is a vector with an element for each
possible value of the indices in jobBinding.
This function returns 1 if the jobs can be scheduled such that no two
jobs overlap. If the index binding argument job is empty, this
function will return 1. Otherwise it returns 0.
Note
The arguments to this function involve discrete AIMMS variables and
AIMMS parameters, not AIMMS activities.
This and similar constraints are also known in the Constraint
Programming literature as unary or disjunctive constraints.
The following example models the intuitive idea that with an increase in
the size of a task also the time window in which that task is to be
executed increases.