Job Shops (Deterministic)
Algorithm 7.1.3 Generation of all Active Schedules) Step 1. (Initial Condition)
The second set consists of ten constraints, one for each operation. An example is
Cmax−y11≥10 (=p11).
The set of disjunctive constraints contains eight constraints: three each for machines 1 and 2 and one each for machines 3 and 4 (there are three opera- tions to be performed on machines 1 and 2 and two operations on machines 3 and 4). An example of a disjunctive constraint is
y11−y12≥3 (=p12) or y12−y11≥10 (=p11).
The last set includes ten nonnegativity constraints, one for each starting
time. ||
That a scheduling problemcan be formulated as a disjunctive programdoes not imply that there is a standard solution procedure available that will work satisfactorily. Minimizing the makespan in a job shop is a very hard problem and solution procedures are either based on enumeration or on heuristics.
To obtain optimal solutions branch-and-bound methods are required. The branching as well as the bounding procedures that are applicable to this prob- lemare usually of a special design. In order to describe one of the branching procedures a specific class of schedules is considered.
Definition 7.1.2 (Active Schedule). A feasible schedule is called active if it cannot be altered in any way such that some operation is completed earlier and no other operation is completed later.
A schedule being active implies that when a job arrives at a machine, this job is processed in the prescribed sequence as early as possible. An active schedule cannot have any idle period in which the operation of a waiting job could fit.
Fromthe definition it follows that an active schedule has the property that it is impossible to reduce the makespan without increasing the starting time of some operation. Of course, there are many different active schedules. It can be shown that there exists among all possible schedules an active schedule that minimizes the makespan.
A branching scheme that is often used is based on the generation of all active schedules. All such active schedules can be generated by a simple algorithm. In this algorithm Ω denotes the set of all operations of which all predecessors already have been scheduled (i.e., the set of all schedulable operations) andrij
the earliest possible starting time of operation (i, j) inΩ. The setΩ is a subset of setΩ.
Algorithm 7.1.3 (Generation of all Active Schedules)
184 7 Job Shops (Deterministic) Step 2. (Machine Selection)
Compute for the current partial schedule t(Ω) = m in
(i,j)∈Ω{rij+pij}
and leti∗ denote the machine on which the minimum is achieved.
Step 3. (Branching)
LetΩ denote the set of all operations(i∗, j)on machine i∗ such that ri∗j< t(Ω).
For each operation inΩ consider an (extended) partial schedule with that operation as the next one on machinei∗.
For each such (extended) partial schedule delete the operation fromΩ, include its immediate follower inΩ and return to Step 2. ||
Algorithm7.1.3 is the basis for the branching process. Step 3 performs the branching fromthe node that is characterized by the given partial schedule;
the number of branches is equal to the number of operations inΩ. With this algorithmone can generate the entire tree and the nodes at the very bottomof the tree correspond to all the active schedules.
So a node V in the tree corresponds to a partial schedule and the partial schedule is characterized by a selection of disjunctive arcs that corresponds to the order in which all the predecessors of a given setΩhave been scheduled. A branch out of nodeV corresponds to the selection of an operation (i∗, j)∈Ω as the next one to go on machinei∗. The disjunctive arcs (i∗, j)→(i∗, k) then have to be added to machinei∗ for all operations (i∗, k) still to be scheduled on machinei∗. This implies that the newly created node at the lower level, say nodeV, which corresponds to a partial schedule with only one more operation in place, contains various additional disjunctive arcs that are now selected (see Figure 7.2). Let D denote the set of disjunctive arcs selected at the newly created node. Refer to the graph that includes all the conjunctive arcs and set D as graphG(D). The number of branches sprouting from nodeV is equal to the number of operations inΩ.
To find a lower bound for the makespan at nodeV, consider graphG(D).
The length of the critical path in this graph already results in a lower bound for the makespan at node V. Call this lower bound LB(V). Better (higher) lower bounds for this node can be obtained as follows.
Consider machineiand assume that allother machines are allowed to pro- cess, at any point in time, multiple operations simultaneously (since not all disjunctive arcs have been selected yet in G(D), it may be the case that, at some points in time, multiple operations require processing on the same ma- chine at the same time). However, machine i must process its operations one after another. First, compute the earliest possible starting timesrij of all the operations (i, j) on machine i; that is, determine in graph G(D) the length
NodeV′ Node Node
selection of (i*, j)
⍀’ = {(i*, j) (i*, l)}
All disjunctive arcs (i*, j) → (i*, k), for all operations (i*, k)
still to be scheduled, are added.
selection of (i*, l) All disjunctive arcs
(i*, l) → (i*, k), for all operations (i*, k)
still to be scheduled, are added.
V V
″
Fig. 7.2Branching tree for branch-and-bound approach
of the longest path fromthe source to node (i, j). Second, for each operation (i, j) on machinei, compute the minimum amount of time needed between the completion of operation (i, j) and the lower boundLB(V), by determining the longest path fromnode (i, j) to the sink in G(D). This amount of time, to- gether with the lower bound on the makespan, translates into a due datedij for operation (i, j), i.e.,dij is equal toLB(V) minus the length of the longest path fromnode (i, j) to the sink pluspij. Consider now the problemof sequencing the operations on machineias a single machine problem with jobs arriving at different release dates, no preemptions allowed and the maximum lateness as the objective to be minimized, i.e., 1|rj |Lmax (see Section 3.2). Even though this problemis strongly NP-hard, there are relatively effective algorithms that generate good solutions. The optimal sequence obtained for this problem im- plies a selection of disjunctive arcs that can be added (temporarily) toD. This then may lead to a longer overall critical path in the graph, a larger makespan and a better (higher) lower bound for node V. At node V this can be done for each of themmachines separately. The largest makespan obtained this way can be used as a lower bound at nodeV. Of course, the temporary disjunctive arcs inserted to obtain the lower bound are deleted as soon as the best lower bound is determined.
Although it appears somewhat of a burden to have to solve m strongly NP-hard scheduling problems in order to obtain one lower bound for another strongly NP-hard problem, this type of bounding procedure has performed rea- sonably well in computational experiments.
186 7 Job Shops (Deterministic)
1, 1
U 2, 2
0
0
0 1, 2 4, 2 3, 2 6 V
1, 3
2, 1 3, 1
2, 3 (a)
(b)
4, 3
1, 1
U 2, 2
0
0
8 3
10
4 7
10
8 3 5
8
4
3
10 10
8
5
4
4 7 3
0 1, 2 4, 2 3, 2 6 V
1, 3
2, 1 3, 1
2, 3 4, 3
Fig. 7.3Precedence graphs at Level 1 in Example 7.1.4
Example 7.1.4(Application of Branch-and-Bound)
Consider the instance described in Example 7.1.1. The initial graph contains only conjunctive arcs and is depicted in Figure 7.3.a. The makespan corre- sponding to this graph is 22. Applying the branch-and-bound procedure to this instance results in the following branch-and-bound tree.
Level 1: Applying Algorithm7.1.3 yields Ω={(1,1), (2,2), (1,3)}, t(Ω) = m in (0 + 10,0 + 8,0 + 4) = 4,
i∗= 1,
Ω={(1,1),(1,3)}.
So there are two nodes of interest at level 1, one corresponding to operation (1,1) being processed first on machine 1 and the other to operation (1,3) being processed first on machine 1.
If operation (1,1) is scheduled first, then the two disjunctive arcs depicted in Figure 7.3.b are added to the graph. The node is characterized by the two disjunctive arcs
(1,1)→(1,2),
(1,1)→(1,3).
The addition of these two disjunctive arcs immediately increases the lower bound on the makespan to 24. In order to improve this lower bound one can generate for machine 1 an instance of 1|rj|Lmax. The release date of jobj in this single machine problem is determined by the longest path from the sourceU to node (1, j) in Figure 7.3.b. The due date of jobjis computed by finding the longest path fromnode (1, j) to the sink, subtractingp1j fromthe length of this longest path, and subtracting the resulting value from24. These computations lead to the following single machine problem for machine 1.
jobs 1 2 3 p1j 10 3 4 r1j 0 10 10 d1j 10 13 14
The sequence that minimizesLmaxis 1,2,3 withLmax= 3. This implies that a lower bound for the makespan at the corresponding node is 24 + 3 = 27.
An instance of 1|rj |Lmax corresponding to machine 2 can be generated in the same way. The release dates and due dates also follow from Figure 7.3.b (assuming a makespan of 24), and are as follows.
jobs 1 2 3 p2j 8 8 7 r2j 10 0 14 d2j 20 10 21
The optimal sequence is 2,1,3 with Lmax = 4. This yields a better lower bound for the makespan at the node that corresponds to operation (1,1) being scheduled first, i.e., 24 + 4 = 28. Analyzing machines 3 and 4 in the same way does not yield a better lower bound.
The second node at Level 1 corresponds to operation (1,3) being scheduled first. If (1,3) is scheduled to go first, two different disjunctive arcs are added to the original graph, yielding a lower bound of 26. The associated instance of the maximum lateness problem for machine 1 has an optimal sequence 3,1,2 withLmax= 2. This implies that the lower bound for the makespan at this node, corresponding to operation (1,3) scheduled first, is also equal to 28. Analyzing machines 2, 3 and 4 does not result in a better lower bound.
The next step is to branch fromnode (1,1) at Level 1 and generate the nodes at the next level.