3.7.225. Scheduling with machine choice, calendars and preemption
modelling: scheduling with machine choice, calendars and preemption A set of constraints that can be used for modelling aΒ scheduling problem where:
We have tasks that have both to be assigned to machine and time.
Each task has a fixed duration.
Machines can run at most one task at a given instant.
Each machine has its own fixed unavailability periods (i.e., a calendar of unavailability periods).
AnΒ unavailability period that allows (respectively forbids) a task to be interrupted and resumed just after is calledΒ crossable (respectivelyΒ non-crossable). A task that can be (respectively cannot be) interrupted by a crossable unavailability period is calledΒ resumable (respectively non-resumable).
We have a precedence constraint between specific pairs of tasks. Each precedence forces that a given task ends before the start of another given task.
This model illustrates the use of two time coordinates systems:
The first coordinate system, so called the virtual coordinate system, does not consider at all the crossable unavailability periods associated with the different machines. Since resumable tasks can be preempted by machine crossable unavailability, all resource scheduling constraints (i.e., , ) are expressed within this first coordinate system. This stands from the fact that resource scheduling constraints like or do not support preemption.
The second coordinate system, so called the real coordinate system, considers all timepoints whether they correspond or not to crossable unavailability periods. All temporal constraints (i.e., precedence constraints represented by constraints in this model) are expressed with respect to this second coordinate system.
Consequently, each task has a start and an end that are expressed within the virtual coordinate system as well as within the real coordinate system.
Each task, whether it is resumable or not, is passed to the resource scheduling constraints as well as to the precedence constraints. In addition, we represent each non-crossable unavailability period as a fixed task that is also passed to the resource scheduling constraints.
The constraint ensures the link between variables (i.e., the start and the end of the tasks no matter whether they are resumable or not) expressed in these two coordinate systems with respect to the crossable unavailability periods.
We now provide the corresponding detailed model. Given:
A set of machines , where each machine has a list of fixed unavailability periods. An unavailability is defined by the following attributes:
The crossable flag tells whether unavailability is crossable () or not ().
The machine indicates the machine (i.e., a value in ) to which unavailability corresponds (i.e., since different machines may have different unavailability periods).
The start of the unavailability which indicates the first unavailable timepoint of the unavailability.
The end of the unavailability which gives the last unavailable timepoint of the unavailability.
A set of tasks , where each task (with ) has the following attributes which are all domain variables except the resumable flag and the virtual duration:
The resumable flag tells whether task is resumable () or not ().
The machine indicates the machine (i.e., a value in ) to which task will be assigned.
The virtual start gives the start of task in the virtual coordinate system.
The virtual duration corresponds to the duration of task without counting the eventual unavailability periods crossed by task .
The virtual end provides the end of task in the virtual coordinate system. We have that .
The real start gives the start of task in the real coordinate system.
The real duration corresponds to the duration of task including the eventual unavailability periods crossed by task . When task is non-resumable (i.e.,Β ) its real duration is equal to its virtual duration (i.e.,Β ).
The real end indicates the end of task in the real coordinate system. We have that .
The link between the virtual starts (respectively virtual ends) and the real starts (respectively real ends) of the different tasks of is ensured by a constraint. More precisely, for each task (with ), no matter whether it is resumable or not, we create the following items for the collection :
The first item links the virtual and the real start of task , while the second item relates the virtual and real ends. For each machine (with ) and its corresponding list of crossable unavailability periods, denoted , we create the following item of the collection :
To express the resource constraint, i.e., the fact that two tasks assigned to the same machine should not overlap in time, we use a constraint. For each task (with ) we create one item for the collection as well as one item for the collection:
The first item corresponds to an object with as unique identifier, with a rectangular shape identifier and with as the coordinates of its lower left corner. The second item corresponds to a rectangular shape with as unique identifier, as shift offset with respect to its lower left corner, and as the sizes of the rectangular shape.
Similarly, to express that each task does not overlap a non-crossable unavailability period, we create for each non-crossable unavailability period one item for the collection as well as one item for the collection:
Finally, a precedence constraint between two distinct tasks and (with ) is modelled by an inequality constraint between the real end of task and the real start of task , namely . FigureΒ 3.7.60 provides a toy example of such problem with:
Four machines, numbered from 1 to 4, where:
Machine has two crossable unavailability periods respectively corresponding to intervals and .
Machine has two crossable unavailability periods respectively corresponding to intervals and , as well as one non-crossable unavailability period corresponding to interval .
Machine has a single non-crossable unavailability corresponding to interval .
Machine has a single crossable unavailability period corresponding to interval .
Five tasks, numbered from 1 to 5, where:
Task is a non-resumable task that has a virtual duration of 3.
Task is a resumable task that has a virtual duration of 2.
Task is a non-resumable task that has a virtual duration of 3.
Task is a resumable task that has a virtual duration of 5.
Task is a resumable task that has a virtual duration of 2.
Finally, (1)Β all five tasks should not overlap, (2)Β task should precedes task and (3)Β task should precedes task .
Figure 3.7.60. Illustration of the scheduling problem with crossable and non-crossable unavailability periods as well as with resumable and non-resumable tasks: partΒ (A) gives the real time coordinate system where all precedence constraints are stated, while partΒ (B) provides the virtual time coordinate system β from which all crossable unavailability periods are removed β where the non-overlapping constraint is stated
A survey on machine scheduling problems with unavailability constraints both in the deterministic and stochastic cases can be found inΒ [SaidyTaghaviFard08]. Unavailability can have multiple causes such as:
In the context of production scheduling, machine unavailability corresponds to accepted orders that were already scheduled for a given date. This can typically corresponds to unavailability periods at the beginning of the planning horizon. Preemptive maintenance can also be another cause of machine unavailability.
In the context of timetabling, unavailability periods may come from work regulation which enforces not to work in a continuous way more than a given limit. Unavailability periods may also come from scheduled meetings during the working day.
In the context of distributed computing where cpu time is donated for performing huge tasks, machines are typically partially availableΒ [DiedrichJansenSchwarzTrystram09].