Earliness and Tardiness Costs
5.7 Distinct Due Dates
The general E/T problem contains different due dates in the job set. This feature tends to make it more difficult to determine a minimum-cost schedule than in the problems discussed thus far. However, if the due dates are treated as deci- sion variables, the problem turns out to be relatively easy to solve. When the due
5 Earliness and Tardiness Costs 120
dates are completely flexible, we can select any sequence we wish (using a secondary objective) and setdj=Cj. In addition, if we choose total flowtime Fas the secondary objective, we can trade-off total E/T costs with total flowtime, using the following objective function:
f S =
n
j= 1
αEj+βTj+γFj
The solution is given by SPT, with the schedule starting at time zero. This solution also minimizesD=Σdj(which is typically the objective when due dates are decisions, as in Section 2.4.3).
In the general case, we assume that due dates are given and distinct and that the objective function is
f S =
n
j= 1
αjEj+βjTj
This problem is NP-hard even in the symmetric case with identical costs.
Moreover, Theorems 5.1 and 5.2 do not extend to this case. In particular, inserted idle time may be desirable. Although the best sequence without inserted idle time is not necessarily the best sequence after allowing idle time, the search for an optimal schedule can be decomposed into two subproblems:
(i) finding a good job sequence and (ii) scheduling inserted idle time. The second step involves scheduling the start times of all jobs, and we next examine this problem in more detail.
Consider the scheduling problem for a given job sequence, and assume that the jobs are numbered by sequence position. A schedule can be partitioned into blocks, which are sets of contiguous jobs in the schedule. Idle time is inserted betweenblocks but notwithinblocks. We can think of the schedule as if jobs were made available (or released) to the shop intermittently, in groups. The groups correspond to the blocks, and the time at which a block is permitted to start is called itsrelease date. In an optimal schedule, the last job in any block cannot be early, and the first job in a block cannot be tardy unless it starts at time zero (which can happen only in the first block).
The procedure begins by assigning the first job to the first block and schedul- ing it to complete at its due date or, if this is not feasible, to start at time zero.
Jobs are then considered in the order in which they appear in the given sequence. If jobjis early when appended to the existing block, then it is resched- uled to complete at its due date, thus starting a new block. Otherwise, jobjis appended to the existing block, starting when job (j−1) completes. At this stage, if we can achieve a better total cost by shifting all jobs in the block earlier, we do so. This shift is possible only if we have inserted idleness, or a gap, between the previous block and the current block. (If the current block starts at time zero, then it has a gap of zero.) If the gap between the blocks is consumed
5.7 Distinct Due Dates 121
(becomes zero) before the block’s cost is minimized, we merge the blocks. Any further shift now applies to the merged block. We can characterize an optimal release date of a block by adapting Theorem 5.4b to apply only to the jobs inside the block. Because the due dates are distinct, instead of requiring thebth job to finish precisely on time, we now require at most (b−1) jobs to be strictly early and at most (n−b) jobs to be strictly tardy. (To satisfy both conditions, at least one job would have to be precisely on time.) A block that cannot satisfy this adapted condition must start as soon as possible: It should be merged with the previous block –and the merged block must then satisfy the same condition–or start at time zero.
∎Example 5.4 Consider the following nine-job example, with unit earliness costα= 1 and unit tardiness costβ= 3.
Jobj 1 2 3 4 5 6 7 8 9
pj 1 4 3 6 2 7 6 2 5
dj 4 6 7 10 28 31 35 38 40
We take the jobs in numbered order, which is also the EDD sequence.
Job 1 is due at time 4, so it can avoid costs by starting at 3. Job 2 cannot follow job 1 and complete on time, so we schedule it immediately following job 1, leading to completion at time 8. The cost of jobs 1 and 2 is 1 × 0 + 3 × 2 = 6.
We examine the possibility of starting job 1 earlier. If it starts at time 2, its earliness cost is 1, but job 2 starts at time 3, completes at 7, and incurs a cost of 3. The total cost for the two-job block is 4, an improvement. If the block starts at time 1, its cost drops to 2, and if the block starts at time zero, its total cost rises to 4. So we keep jobs 1 and 2 as a block starting at time 1.
Next, consider job 3. Added to the block, job 3 completes at time 9, and the three-job block incurs a cost of 8. If the block starts at time zero, its total cost drops to 7, so we start the schedule at time zero. No further shifting is possible.
Next, consider job 4, which can start at time 8 and complete at time 14, mak- ing it late by 4. No shifting is possible. Job 5 could start at time 14, but it would then be quite early, so we start a new block consisting of job 5 alone, starting at time 26.
Next, consider job 6. Added to the second block, job 6 completes at time 35.
The total cost for the second block is then 12, and we probe for cost reduction by starting the block earlier. We can shift the block to start as early as time 22, in which case job 6 completes at its due date, and the block incurs total cost of 4.
5 Earliness and Tardiness Costs 122
Next, consider job 7. Added to the second block, job 7 completes at time 37.
We can shift the block 2 time units earlier, starting at time 20, to minimize the total cost in the block.
Next, consider job 8, which would be early if appended to the second block.
We start a third block at time 36, allowing job 8 to complete at its due date.
Finally, consider job 9. Added to the third block, job 9 completes at time 43.
The third block can be shifted earlier to reduce the total cost incurred by its jobs, but when the block is shifted earlier by one time unit, the time gap between the second and third blocks disappears. Those two blocks become merged, and no shift to an earlier start can reduce total costs.
The full schedule consists of two blocks, one starting at time zero with job 1, and the second starting at time 20 with job 5. Jobs 1–4 constitute the first block, in which the jobs are processed without inserted idle time, so the block com- pletes at time 14. Jobs 5–9 constitute the second block, in which the jobs are processed without inserted idle time, completing at time 42. In the second block, four of the five jobs are early or on time, satisfying the condition of The- orem 5.4a. This condition does not apply to the first block because it could not be shifted earlier than time zero.
For the special case of symmetric and identical costs (αj=α=β=βj), it is computationally easy to decide how far back to push a block. At each stage, the procedure tries to maintainb > a, wherebdenotes the number of nontardy jobs in the block, andadenotes the number of tardy jobs in the block. When jobjis added at the end of the block, ifb > aor if the schedule starts at time zero, then no improvement is possible at this stage. Otherwise, job j, along with the preceding jobs in its block, should be shifted earlier until one of three possibilities occurs: (i) the start of the entire schedule is shifted back to time zero, (ii) some job in the block completes exactly at its due date, or (iii) the inserted idle time following the previous block is squeezed to zero and the blocks are merged. When one of these three conditions is encountered, we proceed to the scheduling of job (j+ 1), and we stop when all jobs are sched- uled. An algorithm for scheduling inserted idle time for a given sequence can be implemented in polynomial time, even when the costs are not symmetric and identical, although a slightly more efficient implementation is possible in the special case. The computational efficiency is relevant because such a procedure must be incorporated into a routine that searches for the optimal sequence.
Given that the idle time can easily be optimized for a specified job sequence, the task remaining is to locate the best sequence. Branch-and-bound approaches to finding the optimal sequence have demonstrated the capability to solve problems containing at least 20 jobs, but larger problems are some- times difficult to handle. Computational tests on small problems indicate that a neighborhood search heuristic yields solutions that average within 2% of optimum.
5.7 Distinct Due Dates 123