27.06.2013 Views

Models for Global Constraint Applications - Cork Constraint ...

Models for Global Constraint Applications - Cork Constraint ...

Models for Global Constraint Applications - Cork Constraint ...

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

3.3.2 Frozen Schedule<br />

The scheduling system is not just used to create one master schedule, but is<br />

constantly re-run to update the schedule with the latest production data, so<br />

that the effects of delays on customer deliveries are immediately visible. When<br />

rescheduling we do not want the system to re-arrange the schedule completely.<br />

In the user interface we have the possibility to “freeze” the schedule of a line<br />

up to a given task. This fixes the order of the tasks, but not their start times,<br />

as these might be affected by the work in progress. This “freezing” can also be<br />

used to protect manual changes in the schedule.<br />

3.3.3 Task Ordering<br />

If we have multiple tasks producing the same product, then we can order them<br />

according to their due date. This reduces the amount of bin capacity we will<br />

need <strong>for</strong> this product and cuts some part of the search tree.<br />

3.3.4 Throughput Learning<br />

∀i,j∈I : ri = rj ∧ duei < duej =⇒ si < sj<br />

(36)<br />

The accuracy of the schedule depends to a large extend on the accuracy of the<br />

throughput data which controls the duration of tasks and to some extend the<br />

machine assignment. The system contains a learning module which periodically<br />

checks actual production data in order to recalculate the throughput data <strong>for</strong><br />

each product. The user can interact with this module by excluding certain<br />

measurements or by <strong>for</strong>cing a particular value.<br />

3.4 Search<br />

In a problem like this where there are many different types of variables with domains<br />

which even initially are very different in size it is not possible to rely on a<br />

standard labelling routine which selects the variables without an understanding<br />

of their purpose in the model.<br />

We have developed a number of strategies which interleave the assignment<br />

of successor and setup variables, but which also use the start or end variables<br />

<strong>for</strong> task selection.<br />

a This is a standard labelling routine, which was not able to find any solution<br />

<strong>for</strong> the sample problems below. It was there<strong>for</strong>e not included in the result<br />

tables.<br />

b This strategy first assigns <strong>for</strong> each selected task the setup and then the successor<br />

variable. The selection is done by the most constrained successor<br />

variable. Doing this <strong>for</strong> all tasks fixes the machine assignment and the<br />

sequence of tasks on each machine. At the end it labels the start of all<br />

tasks to the earliest time point.<br />

c Like b, but select the task with the smallest value in the successor variable.<br />

d Like b, but select the task with the most constrained setup variable first.<br />

19

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!