Chapter 3. Methodology
3.4 Heuristic approach
3.4.1 Modified shifting bottleneck procedure (MSBP)
A generic modified shifting bottleneck heuristic (MSBP) can be described as follows:
Step 1. Let M0 = ∅ and M represent the set of machine types. Let R0 = ∅ and R represent the set of component types
Step 2. Remove all the disjunctive arcs and allocation arcs in the graph. Obtain the total weighed tardiness, TWTmax, of the graph by finding the longest path from the source node to the top node of every job.
Step 3. For each of the component types in R – R0, solve the material allocation subproblems using the optimization method or dispatching rule.
Step 4. Designate the component type h with the greatest total weighted tardiness Tmax(h) as the “bottleneck component”. If there exists a tie for largest total weighted tardiness, designate the component type h with the average total weighted tardiness Tave(k) as the “bottleneck component”. If there is a tie for largest average total weighted tardiness, then designate the first component that is tied for largest average total weighted tardiness the “bottleneck” (an arbitrary rule).
Add component type h to the set R0 and schedule component type h using the solution found in the material allocation subproblem, named MAh, for component type h.
Step 5. Add the allocation arcs that specify purchase orders to the operations on component type h to the graph. Revise the total weighted tardiness using the equation TWTmax(R0 ∪ h, M0) = Tmax(h).
Step 6. If |R0| = 1, then local reoptimization is not needed, go to step 3. If |R0| > 1, then resequence the component types in R0 one at a time until a full cycle goes by without any improvement. After resequencing a component, say component type l, put the component type back into R0 in the same place that it was removed from and add the allocation arcs that specify the orders to the operations on component type l to the graph. Adjust the total weighed tardiness: TWTmax(R0 ∪ l, M0) = Tmax(l). If |R0| = |R|, then go to step 7. Otherwise, go to step 3.
Step 7. For each of the machine types in M – M0, solve the machine allocation and sequence subproblems, named CAm, using the optimization method or dispatching rule.
Step 8. Designate the machine type k with the greatest maximum total weighted tardiness Tmax(k) as the “bottleneck machine”. If there exists a tie for largest maximum total weighted tardiness, designate the machine type k with the greatest average lateness Tave(k) as the “bottleneck machine”. If there is a tie for largest average total weighted tardiness, then designate the first machine that is tied for largest average total weighted tardiness the “bottleneck” (an arbitrary rule). Add machine type k to the set M0 and schedule machine type k using the solution found machine allocation subproblem for machine type k.
Step 9. Add the disjunctive arcs that specify the order of the operations on machine type k to the graph. Revise the total weighted tardiness using the equation TWTmax(R0,
M0 ∪ k) = Tmax(k).
Step 10. Resequence the component types in R0 one at a time until a full cycle goes by without any improvement. After resequencing a component, say component type l, put the component type back into R0 in the same place that it was removed from and add the allocation arcs that specify the orders to the operations on component type l to the graph. Adjust the total weighed tardiness: TWTmax(R0 ∪ l, M0) = Tmax(l). Then go to step 11.
Step 11. If |M0| = 1, then local reoptimization is not needed, go to step 7. If |M0| > 1, then resequence the machine types in M0 one at a time until a full cycle goes by without any improvement. After resequencing a machine, say machine type l, put the machine type back into M0 in the same place that it was removed from and add the disjunctive arcs that specify the order of the operations on machine type l to the graph. Adjust the total weighted tardiness: TWTmax(R0, M0 ∪ l) = Tmax(l). If |M0| = |M|, then terminate the procedure. Otherwise, go to step 7.
There are four modified shifting bottleneck procedures (MSBP) which are developed to solve assembly job shop scheduling problems. There methods are SB1, SB2, SB3 and SB4. The difference between these MSBP methods is the degree of solution
accuracy obtained from subproblems. The four MSBP methods are summarized in Table 3.4.
Table 3.4 The description of MSBP methods
SB1 SB2 SB3 SB4
SB1 uses the optimization method to solve both material and capacity subproblems. The material allocation subproblem and capacity schedule subproblem in SB1 can be formulated as MA1 and CA1. However, the computational time requiring to solve SB1 may still increase exponentially as the size of subproblems increase. To reduce the complexity of SB1, the longest path algorithm is applied to represent the precedence constraints in SB2. By doing so, the total number of constraints is expected to reduce to a reasonable level. The material allocation subproblem in SB2 can be formulated as MA2 and the capacity allocation subproblem in SB2 can be formulated as CA2. The SB3 uses the dispatching rule to solve material allocation subproblems and apply optimization method, CA1, which use the same mathematical formulation as SB1, to solve capacity
subproblems. The SB4 uses the dispatching rule to solve capacity allocation subproblems and apply optimization method, MA1, to solve material allocation subproblems.
Material allocation subproblem (MA1):
For each h∈R\ R0
Equation 1 is the objective function of the problem, which designs to minimize the total weighted tardiness for all jobs. Equation 2 and 3 represent the operation sequences from the scheduled machines at set M0. Equation 4, 5 and 6 represent the material allocations from scheduled components at set R0. Equation 7, 8 and 9 are
material constraints, which used to allocation components to material requirements for the component type h.
Capacity allocation subproblem (CA1):
For each k∈M \ M0
min
∑
−v
v v
v s d
w *max( ,0) v ∈ Z, ---(1)
tj – ti ≥ pi, (i,j)∈∪(Sp :p∈M0)∪A ---(2)
ti ≥ 0, i∈N ∪R ---(3)
tj – ti ≥ pi ∨ ti – tj ≥ pj, (i, j) ∈ Ek, k∈M \ M0 ---(4)
∑
≤i
n n
i q
y, (i,n)∈∪(Uc :c∈R0)∪C ---(5)
∑
=n
i n
i q
y, (i,n)∈∪(Uc :c∈R0)∪C ---(6)
n
i a
t ≥ (i,n)∈∪(Uc :c∈R0)∪C ---(7)
Equation 1 is the objective function used to minimize the total weighted tardiness for all jobs. Equation 2 and 3 represent the operation sequences from the scheduled machines at set M0. Equation 4 are capacity constraints, which used to decide the machine sequence for the specific machine type k. Equation 5, 6 and 7 represent the material allocations from scheduled components at set R0.
Material allocation subproblem (MA2):
Equation 1 is the objective function to minimize the total weighted tardiness for all jobs. Equation 2 represents the completion time of job v, which is calculated from the start time of operation i plus the value of longest path from operation i to job v or the value of longest path from source node to job v. Equation 3, 4 and 5 represent the material allocations from scheduled components at set R0. Equation 6, 7 and 8 are material constraints, which used to allocation components to material requirements for the component type h. In MA2, there are no capacity constraint equations because the delay from capacity conflict is added in the longest path calculation.
Capacity allocation subproblem (CA2):
min
∑
−v
v v
v s d
w *max( ,0) v ∈ Z, ---(1)
) , ( )
,
(i v s l S v l
t
sv = i + ∨ v = i∈N*,k∈M \M0 ---(2) tj – ti ≥ pi, (i,j)∈∪(Sp :p∈M0)∪A ----(3) ti ≥ l(S,i), i∈N*,k∈M \M0 ---(4)
tj – ti ≥ pi ∨ ti – tj ≥ pj, (i, j) ∈ Ek, k∈M \ M0 ---(5)
Where N* is the set of operations to be processed on machine k and l( ji, ) is the value of longest path from operation i to operation j.
Equation 1 is the objective function designs to minimize the total weighted tardiness for all jobs. Equation 2 represents the completion time of job v, which is calculated from the start time of operation i plus the value of longest path from operation i to job v or the value of longest path from source node to job v. Equation 3 represents the machines sequences from scheduled machines at set M0. Equation 4 ensures that all start time of operations are greater than the value of longest path from the source node to itself.
Equation 5 represents the capacity constraints used to decide the machine sequence for machine type k.