Dear Christian,
I'll try to better explain the problem:
if we don't mind of calendars in our perfect world of "jobs" "tasks" and
"machines" we can view the time line as a continumm from "timeOrigin" to
"timeHorizion" discretized by timeUnits.
If now we apply a "calendar" to our time axis, we can see it as "holes" in
the continuum where tasks,we can imagine interruptible for semplicity, need
to "meet" each other starts and ends constraints.
If we are extremely lucky we need only a global calendar in the factory to
that we again can ignore it from the point of view of the scheduler simply
by the fact that all begin togheter and finish togheter.
In a real factory we have many "calendars", even one for each machine, so
the model tries to harmonize the extremely variability due to organization
or maintenace or human factors.
If we consider tasks non interruptible our "holes" (say in holidays) are
modelled by "idle tasks" with fixed starts and durations so we never can
start a task of 10 hours if we have 2 hours left before lunch.
But if we consider the tasks interruptible the model must adapt the duration
of task with the sum of the "holes" of interruptions or split the original
task in many subtasks.
The solution I adopted models the calendars as many time lines (one for each
calendar) with the respect to the global, so for example:
global 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
24
mach1 1 2 3 4 5 6 7 8
mach2 1 2 3 4 5 6 7 8 9 10
as we can see the 3rd time unit for mach1 corresponds to the 11th time unit
in global and 1st in mach2.
For that, serialization on machines is simply executed in a virtually
continuous timeLine and sincronization among tasks is done on the global
timeLine through the FD.element.
Adriano
-
Please send submissions to users@mozart-oz.org
and administriva mail to users-request@mozart-oz.org.
The Mozart Oz web site is at http://www.mozart-oz.org/.