Ind. Eng. Chem. Res. 2008, 47, 9957–9970
9957
More on Completion Time Algorithms for Intermediate Storage Tanks in Multiproduct Batch Process Scheduling Using Matrix Representation Amir Shafeeq,*,† M. I. Abdul Mutalib,† K. A. Amminudin,‡ and Ayyaz Muhammad† Chemical Engineering Department, UniVersiti Teknologi Petronas, 31750 Tronoh, Perak Darul Ridzuan, Malaysia, and Process & Control System Department, Saudi Aramco, Dhahran 31311, Kingdom of Saudi Arabia
In batch process scheduling, the introduction of intermediate storage tanks between process stages result in increasing the efficiency and productivity of the process. The main purpose of this is to minimize the process completion time, i.e. makespan. However, it is important to determine the right number and respective locations of the intermediate storage to ensure optimal investment and operational cost. The generally adopted transfer policies for handling intermediate storage tanks in batch processes are unlimited intermediate storage (UIS) and finite intermediate storage (FIS). In this work, new completion time algorithms for UIS and FIS transfer policies are proposed using matrix representation. The objective of the proposed approach is to calculate the makespan for all possible production sequences for given batch product recipes while at the same time determining the number and location of intermediate storage tanks required. With the assumptions that the intermediate storage could be used to store any intermediate product, the method is verified against the Gantt chart method and the results agreed well. A number of different product recipes are analyzed using a developed computer code. This enables the proposed algorithms to produce solution options for large size batch scheduling problems. 1. Introduction Batch processes are widely preferred over continuous processes due to their ease of production and flexibility toward frequent changes in product specification and demand in many branches of the chemical industry, such as paint, food, pharmaceuticals, and specialty chemicals. Batch processes are mainly split into (i) multiproduct, where more than one product can be produced using same operation sequence, and (ii) multipurpose, where products are produced using the same facilities but with a different operation sequence.1 The purpose of intermediate storage tanks in a batch process is to reduce the idle time of process units thus increasing plant availability.2-4 In multiproduct batch processes, the location and number of intermediate storage units used are crucial toward the productivity gain vis-a`-vis the investment made. Also, there may be risk of sensitive changes in the physical properties of the stored product with respect to time especially for fine chemical products. Therefore, the storable time of the intermediates in the storage should be given special emphasis while developing an optimal production scheduling model.5,6 The previous literature suggests two transfer policies for transferring product intermediates between stages using storage tanks namely unlimited intermediate storage (UIS) and finite intermediate storage (FIS). The advantage of UIS over FIS is in terms of the number of storage tanks. In UIS, the storage tank is always available when needed, i.e. the number of storage tanks is not limited, and it depends on the number of products and individual product recipe.7 However this is not the case with FIS. For FIS, the number of storage tanks is limited and they are shared between the products. This could be the advantage of FIS over UIS in terms of economical solution for batch process scheduling. FIS is usually applied in combination with other transfer policies i.e. FIS and NIS. FIS refers to the availability of finite * Towhomcorrespondenceshouldbeaddressed.Phone:+60124069384. Fax: +6053654090. E-mail:
[email protected]. † Universiti Teknologi Petronas. ‡ Saudi Aramco.
intermediate storage, and NIS refers to no intermediate storage. Another important aspect of the shared storage system in FIS is the location of the storage tanks.8 Recent development has suggested the use of mobile storage which enables movement to other required locations after task completion allows more than one use. For its implementation, some researchers went to the extent of proposing pipeless technology for material transfer between units.8 Nevertheless, for any intermediate storage transfer policies adopted, the completion time of the batch process, i.e. the makespan, poses an important decision parameter during optimization of batch scheduling.9-14 Until recently, various mathematical algorithms such as the mixed integer linear and nonlinear programming (MILP and MINLP) were proposed as the approach to determine the optimal solution. In addition to the number and location of the storage tanks used, the sizing of the storage was also considered. However, the mathematical algorithms used were reasonably complex and difficult to understand. This has motivated the current work to suggest a set of new completion time algorithms. This paper presents an extension to our earlier work15 which was more about the development of completion time algorithms for ZW and NIS transfer policies using matrix representation. 1.1. Completion Time Algorithms in the Literature for UIS and FIS. The completion time algorithms available in the literature employ mathematical programming techniques such as MILP and MINLP to solve for batch scheduling problems. Although these techniques are very efficient and offer desired level of flexibility for various batch scheduling problems, they also Table 1. Processing Time of Four Products in Three Stages for Example 1 processing time (h) products
S1
S2
S3
A B C D
5 6 3 3
8 5 5 4
6 2 3 2
10.1021/ie800068j CCC: $40.75 2008 American Chemical Society Published on Web 11/07/2008
9958 Ind. Eng. Chem. Res., Vol. 47, No. 24, 2008
Figure 1. Gantt chart for four products in three stages for example 1.
Figure 2. Illustration of storage tanks arrangement for the product sequence ABCD. Table 2. Makespan and Slack Variables for All Possible Sequences of Four Products in Table 1 Production Sequence
makespan (h)
W1,1
W1,2
W2,1
W2,2
W3,1
W3,2
V1,2
V1,3
V2,2
V2,3
V3,2
V3,3
ABCD ABDC ADBC ADCB ACDB ACBD BCAD BCDA BDCA BDAC BADC BACD CABD CADB CDAB CDBA CBDA CBAD DBAC DBCA DCBA DCAB DACB DABC
29 30 30 29 29 29 32 34 34 32 31 30 27 27 28 31 32 30 31 33 31 28 28 29
2 2 5 5 5 5 2 2 2 2 0 0 0 0 2 2 0 0 0 0 1 1 0 0
1 1 2 2 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
4 4 3 6 7 4 2 4 3 1 5 5 2 5 1 0 2 0 0 2 0 1 5 2
0 0 0 0 0 0 0 0 0 0 2 1 1 2 0 0 0 0 0 0 0 0 1 1
6 5 5 5 5 6 7 3 3 6 6 7 4 3 3 0 1 5 5 2 0 3 4 4
0 0 0 0 0 0 2 0 0 1 0 0 0 0 1 0 0 2 1 0 0 1 0 0
0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 3 3 2 2 6 6 5 5 1 1 3 3 5 5 3 3 7 7
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
2 1 1 1 0 1 5 1 3 6 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
1 3 3 2 3 2 0 6 5 0 1 0 1 1 0 6 6 0 0 5 6 0 1 2
present a significant level of complexity in terms of the number of mathematical equations that need to be formulated. References 7-9 suggested the formulation to calculate completion time for a multiproduct batch process that follows the UIS and FIS transfer policies respectively using linear programming techniques. Reference 10 developed a new algorithm based on LBTA (list based threshold accepting algorithm) to find the optimal production sequence for UIS transfer policy with significant reduction in solution time compared with ref 7. In this paper, a new set of completion time algorithm for both the aforementioned transfer policies are suggested using relatively simple mathematics. The objective is to reduce the solution time and complexity in terms of number of variables in the case of large scheduling problems. The proposed approach is also able to identify the suitable locations of temporary storage with the storable time of intermediates in the storage between the process stages. 2. Problem Statement-Unlimited Intermediate Storage Policy (UIS) The following set of assumptions is made for the purpose of demonstrating the proposed approach for a batch process with “n” number of products and “m” number of stages: • The transfer and setup times are assumed negligible.
0 0 0 0 1 1 2 2 0 0 1 1
0 0 6 3 2 6 6 3 2 5 0 0
• In the event when the next process stage is not yet available, the product intermediate is transferred to the temporary storage made available immediately after the process is completed. However, if the next process stage is available, the product intermediate is sent directly to the next stage. • The storage time inside temporary storage depends on the availability of the next stage. • The number and location of temporary storages would be treated separately for each stage. 2.1. Gantt Chart Method. For a start, a set of hypothetical batch process recipes is used where a Gantt chart method is conducted to determine the makespan and the temporary storage required. Example 1. In this example, the makespan calculation is performed for four products A, B, C, and D. The respective batch process recipes for the four products based on three processing stages are shown in Table 1. The makespan in this case is 29 h as calculated using the Gantt chart method (Figure 1). Careful examination of the Gantt chart reveals that calculation of makespan could be done using several paths. It is also observed that there is discontinuity in one of the paths shown as the blank space in between third stages of product B and C
Ind. Eng. Chem. Res., Vol. 47, No. 24, 2008 9959
Figure 3. Illustration of storage tank arrangement for the product sequences CABD and CADB.
Figure 4. Illustration of storage tank arrangement for the product sequences CDBA and DCBA.
and C and D in Figure 1. This path discontinuity refers to the idle time between the stages during which the unit remains idle. Therefore, while determining the makespan of a batch process using any path, determination of the idle time, if it exists between the stages, is also important. Let us explore some of the possible paths to determine the makespan of the batch process as in Figure 1. One option is to take the sum of AS1, AS2, AS3, BS3, CS3, and DS3. Figure 1 shows that this path requires calculation of the idle time between the product B and C and C and D. The second possible path is to calculate the makespan by adding AS1, AS2, BS2, CS2, DS2, and DS3. From Figure 1, it is observed that the makespan calculation using this path does not require any idle time calculation. Another path could be taking the sum of AS1, AS2, BS2, CS2, CS3, and DS3. Again this path requires determination of the idle time between the products C and D. The makespan calculated for all the above paths produces the same answer, i.e. 29 h. Thus, it offers flexibility in choosing the path for calculating the makespan. Nevertheless, it is recommended that a common path is adopted for any number of products and stages for the purpose of developing an algorithm for determining the makespan. In this work, the development of a new algorithm for the makespan calculation will follow the path AS1, AS2, AS3, BS3, CS3, and DS3. The path will be extended for the case of more products and number of stages added. From Figure 1, it is also observed that the temporary storages are needed at four locations (represented by the hanging arrows), i.e. after the first stage (S1) for storing the intermediates for product B, C, and D, respectively. For the next stage (S2), it can be easily shown that one temporary storage is needed which is to store the product B intermediate before sending it over to the next stage (S3). The purpose of temporary storage is only to hold the product intermediates until the next processing stage is made available.
Table 3. Transfer Time Required for Four Products in Three Stages for UIS Transfer Policy Transfer Time (h) T rows (j) no. columns (i)
products
0
1
2
3
1 2 3 4
C A B D
2 2 1 1
3 2 2 2
3 2 3 1
2 2 2 1
Table 4. Setup Time Required for Four Products in Three Stages for UIS Transfer Policy Setup Time (h) U rows (j) no. columns (i)
products
1
2
3
1 2 3
C and A A and B B and D
2 4 5
4 3 4
5 4 2
Table 5. Processing Time of Four Products in Three Stages for Example 2 processing time (h) products
S1
S2
S3
A B C D
4 12 3 2
10 4 3 2
5 7 4 2
2.2. Matrix Approach. The following steps describe in detail the development of the matrix approach for the batch process with unlimited intermediate storage transfer policy. Step 1. Arrange the batch process recipes in a matrix Mi,j (where i )1, 2, 3, 4 represents products in rows and j ) 1, 2, 3 represents stages in columns) according to the arrangement for the production sequence to be analyzed. Note that A, B, C, and D represent the products while S1, S2, and S3 represent the stages. For the matrix shown below, the
9960 Ind. Eng. Chem. Res., Vol. 47, No. 24, 2008
Figure 5. Gantt chart for four products in three stages with transfer and setup times for UIS transfer policy.
Figure 6. Illustration of storage tank arrangement for the product sequence of CABD.
Figure 7. Gantt chart for four products in three stages for example 2.
(hanging arrow in above Gantt charts) after the stage, i.e. the time for which the intermediates have to wait inside the temporary storage until the next stage is made available. For the purpose of calculation, this variable is assigned using the letter “W” to signify the waiting time. Due to availability of the temporary storage all the time, there would not be any idle time between the first stages of all the products and as such V1,1, V2,1, and V3,1 are always zero. It is also observed from the Gantt chart method that there would not be any waiting time in the last stages of all products. As such, the above matrix with the introduction of the variable W could be rewritten as follows:
production sequence follows the order where product A is produced first, followed byproduct B, then C and last product D. 1 2 3 4
1 AS1 BS1 CS1 DS1
2 AS2 BS2 CS2 DS2
3 AS3 BS3 CS3 DS3
Step 2. Introduce the slack variables located in between the rows for the first, second, and third columns. The slack variables represent the possible idle time location between process stages. 1 2 3 4
1 AS1 V1,1 BS1 V2,1 CS1 V3,1 DS1
2 AS2 V1,2 BS2 V2,2 CS2 V3,2 DS2
1 1 AS1
3 AS3 V1,3 BS3 V2,3 CS3 V3,3 DS3
Step 3. From the observation made on the Gantt chart method, it is clear that in addition to the slack variable, there exists another variable that represent the waiting time
2 BS1W1,1 3 CS1W2,1 4 DS1W3,1
2 AS2 V1,2 BS2W1,2 V2,2 CS2W2,2 V3,2 DS2W3,2
3 AS3 V1,3 BS3 V2,3 CS3 V3,3 DS3
Step 4. Determine the values of all slack variables as follows: V1,2 ) BS1 - AS2 V1,3 ) (V1,2 + BS2) - AS3 V2,2 ) (BS1 + CS1) - (AS2 + V1,2 + BS2) V2,3 ) (V1,2 + BS2 + V2,2 + CS2) - (AS3 + V1,3 + BS3) V3,2 ) (BS1 + CS1 + DS1) - (AS2 + V1,2 + BS2 + V2,2 + CS2) V3,3 ) (V1,2 + BS2 + V2,2 + CS2 + V3,2 + DS2) - (AS3 + V1,3 + BS3 + V2,3 + CS3) It must be noted that if the value of any slack variable “V” is negative, it would be assigned a zero value and that value would
Figure 8. Illustration of storage tanks arrangement for the product sequence ABCD.
Ind. Eng. Chem. Res., Vol. 47, No. 24, 2008 9961 Table 6. Makespan and Slack Variables for All Possible Sequences of Four Products in Table 5 production sequence
makespan (h)
W1,1
W2,1
W3,1
W1,2
W2,2
W3,2
V1,2
V2,2
V3,2
V1,3
V2,3
V3,3
I2,1
I3,1
I2,2
I3,2
ABCD ABDC ADBC ADCB ACDB ACBD BCAD BCDA BDCA BDAC BADC BACD CABD CADB CDAB CDBA CBDA CBAD DBAC DBCA DCBA DCAB DACB DABC
33 33 33 37 37 32 36 38 38 37 37 37 32 32 32 36 36 36 37 36 36 32 32 33
0 0 8 8 7 7 1 1 2 2 0 0 0 0 1 1 0 0 0 0 0 0 0 0
1 2 0 2 3 0 0 2 1 0 8 7 0 8 0 0 2 0 0 1 0 0 7 0
2 1 1 0 0 2 8 2 2 7 2 3 2 0 0 0 0 8 7 0 0 0 0 1
0 0 3 3 2 2 4 4 5 5 0 0 0 0 2 2 0 0 0 0 0 0 0 0
4 5 0 2 4 0 0 4 2 0 3 2 0 3 0 0 5 0 0 4 0 0 2 0
4 2 4 0 0 5 3 0 0 2 2 4 5 0 0 0 0 3 2 0 0 0 0 4
2 2 0 0 0 0 0 0 0 0 0 0 1 1 0 0 9 9 10 10 1 1 2 2
0 0 2 0 0 2 0 0 0 0 0 0 2 0 1 9 0 0 0 0 9 1 0 2
0 0 0 7 7 0 0 0 0 0 0 0 0 2 2 0 0 0 0 0 0 2 2 0
1 1 0 0 0 0 0 0 0 0 3 3 7 7 0 0 9 9 12 12 2 2 10 10
0 01 0 0 0 2 0 0 3 0 0
0 0 0 5 5 0 0 4 4 0 0 0 0 1 1 3 3 0 0 2 3 1 0 0
0 0 0 5 5 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 5 5 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 2 2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
2 2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
1 0 7 9 0 3 3 0 9 7 0 1
be assigned to the preceding waiting time in the storage tank i.e. W.
makespan ) AS1 + AS2 + AS3 + BS3 + CS3 + DS3 + V1,3 + V2,3 + V3,3
Step 5. The makespan for the multiproduct batch process is calculated using the formula;
2.3. Generalized Mathematical Expression. From the procedure developed above, generalized mathematical expres-
Figure 9. Illustration of storage tanks arrangement for the product sequences ACBD, CABD, CADB, CDAB, DCAB, and DACB.
9962 Ind. Eng. Chem. Res., Vol. 47, No. 24, 2008 Table 7. Transfer Time Required for Four Products in Three Stages for FIS Transfer Policy Transfer Time (h) T columns (j) no. rows (i)
products
0
1
2
3
1 2 3 4
A C B D
2 3 2 2
3 2 3 1
2 2 2 1
1 2 2 3
Table 8. Setup Time Required for Four Products in Three Stages for FIS Transfer Policy Setup Time (h) U
storage for the preceding stage; no temporary storage is needed after the preceding state and W will be zero. Using the calculated value obtained for all the slack variables, the makespan is calculated using the following mathematical expressions for n number of products processed in m number of process stages. m
makespan )
n
∑M
1,j +
j)1
i,m +
i)2
columns (j)
1
1
2
3
1 5
1 2 3
A and C C and B B and D
2 3 2
3 4 3
2 6 2
2 6W1,1
Table 9. Setup Time Required for Storage Tank for Four Products in Three Stages for FIS Transfer Policy
3 3W2,1
Setup Time (h) G
4 3W3,1 2
3
1 2 3 4
A C B D
2 2 3 2
2 3 4 3
2 2 6 2
sions could be developed for the matrix approach particularly for the calculation of the slack variables V, waiting time W, and the makespan. The developed mathematical expressions are applicable to n number of products to be processed in m number of stages as shown below: V1,j ) (M2,j-1 + V1,j-1) - M1,j
(∑
j ) 2 ... m
i+1
Vi,j )
k)2
i
Mk,j-1 +
∑ k)1
Vi,1 ) 0
) (∑ k)1
(1)
i ) 1 ... n - 1
i
Vk,j-1 -
i-1
Mk,j +
∑V
k,j
k)1
2 8 V1,2 5W1,2 V2,2 5W2,2 V3,2 4W3,2
3 6 V1,3 2 V2,3 3 V3,3 2
The matrix above shows the arrangement of the batch process recipes according to the selected production sequence of A, B, C, and D. Note that all the slack variables Vi,j and the waiting times Wi,j are introduced in the matrix. The calculations for the slack variables using eqs 1 and 2 are shown below.
columns (j) 1
n g 2, m g 2
i,m
i)1
Validation of the method is done by applying it on the same process recipe as in Table 1. The result is shown below:
products
products
∑V
(3)
no. rows (i)
no. rows (i)
n-1
∑M
)
V1,2 ) (M2,1 - M1,2) ) -2 ) 0, W1,1 ) 2 W1,2 ) 1 V1,3 ) (M2,2 + V1,2) - M1,3 ) -1 ) 0, V2,2 ) (M2,1 + M3,1) - (M1,2 + M2,2 + W2,1 ) 4 V1,2) ) -4 ) 0, V2,3 ) (M2,2 + M3,2 + V1,2 + V2,2) - (M1,3 + W )0 M2,3 + V1,3) ) (5 + 5 + 0 + 0) - (6 + 2 + 0) ) 2, 2,2 V3,2 ) (M2,1 + M3,1 + M4,1) - (M1,2 + M2,2 + W3,1 ) 6 M3,2 + V1,2 + V2,2) ) -6 ) 0, V3,3 ) (M2,2 + M3,2 + M4,2 + V1,2 + V2,2 + W3,2 ) 0 V3,2) - (M1,3 + M2,3 + M3,3 + V1,3 + V2,3) ) 1, Using the results obtained above, the makespan is calculated using eq 3.
j ) 2 ... m, i ) 2 ... n - 1 (2)
If any value of V1,j (j ) 2...m) and Vi,j (j ) 2...m, i ) 2...n - 1) is negative, the value of zero is assigned to the slack variable V between the particular stages and that value will be assigned to W1,j-1 (j ) 2...m) and Wi,j-1 (j ) 2...m, i ) 2...n - 1), respectively. This represents waiting time inside the temporary
m
makespan )
∑
n
M1,j +
j)1
∑ i)2
n-1
Mi,m +
∑V
i,m ) 29
h
i)1
Note that the result obtained is equal to the result obtained from the Gantt chart method as demonstrated in Example 1. Next, the number of temporary storage required is determined.
Figure 10. Gantt chart for four products in three stages with transfer and setup times for FIS transfer policy.
Ind. Eng. Chem. Res., Vol. 47, No. 24, 2008 9963
Figure 11. Illustration of storage tank arrangement for the product sequence of ACBD.
Since all the values of W1,1, W2,1, W3,1, and W1,2 are greater than 0, it indicates the need for four temporary storage units, i.e., three after the first stage and one after the second stage (Figure 2). 2.4. Optimal Production Sequence. The number of possible production sequences determined from the permutation rule for four products i.e., A, B, C, and D, is P(4) ) 4! ) 24 and is shown in Table 2 below. For each of the possible production sequence, the matrix approach calculates the makespan, the number of intermediate storages required, and thier respective locations. In order to speed up the routine calculations, a computer program was developed using Microsoft Visual C++. From Table 2, two possible solutions were identified as being the best candidates for optimum production sequence, namely CABD and CADB. The decision made at this juncture is purely based on the least makespan i.e., 27 h. The required number of temporary storage for both sequences is also found to be the same i.e., two after the first and one after the second stage, as shown in Figure 3. On the other hand, if the minimum number of temporary storage required are also judged as a criteria for optimum solution, two other production sequences namely CDBA and DCBA as shown in Figure 4, could also be considered as candidate for best solution although their makespan is 31 h. The judgment is left to the designer to decide. 2.5. Transfer and Setup Time. Let us take one of the optimum sequence CABD from the list of two optimum sequences from Table 2 offering minimum makespan for demonstrating the inclusion of transfer and setup times with makespan. The setup time for temporary storage is assumed negligible because in UIS, the temporary storage is fully dedicated and available whenever required.7 The required transfer and setup time for each product in three stages is shown in Tables 3 and 4. The method is described in the following steps. The numbers (0, 1, 2, 3), (1, 2, 3, 4) in Table 3 and (1, 2, 3), (1, 2, 3) in Table 4 represent columns and rows, respectively. Step 1. Add up the processing times of all the products with the transfer times in all the stages. 1 2 3 4
1 T1,0 + 3 + T1,1 T2,0 + 5 T3,0 + 6 T4,0 + 3
2 T1,2 + 5 T2,1 + 8 T3,1 + 5 T4,1 + 4
3 T1,3 + 3 T2,2 + 6 T3,2 + 2 T4,2 + 2
The resulting matrix after the addition of the transfer time in setup 1 will be as follows: 1 1 8 2 7W1,1 3 7W2,1 4 4W3,1
2 8 V1,2 10W1,2 V2,2 7W2,2 V3,2 6W3,2
3 5 V1,3 8 V2,3 5 V3,3 3
Step 2. The slack variables between first stages of all products i.e. V1,1, V2,1, and V3,1 are not shown because there would not
Table 10. Product Recipe for Four Products and Four Stages for Case Study 17 stage processing time
stage transfer time
product
S1
S2
S3
S4
T0
T1
T2
T3
T4
P1 P2 P3 P4
10 15 20 13
20 8 7 7
5 12 9 17
30 10 5 10
2 3 2 2
2 3 4 2
2 3 2 1
2 3 2 4
3 1 1 2
stage setup time product sequence
U1
U2
U3
U4
P1-P2 P1-P3 P1-P4 P2-P1 P2-P3 P2-P4 P3-P1 P3-P2 P3-P4 P4-P1 P4-P2 P4-P3
3 2 1 4 1 3 2 1 2 4 1 3
1 2 4 1 1 2 1 2 2 3 4 2
2 1 2 2 4 3 4 3 2 4 3 2
4 3 2 3 3 2 3 2 2 3 3 1
Table 11. Optimal Solution with Makespan, Idle Time, and Waiting Time for Case Study 1 CPU time (s) optimal makespan sequence (h) P1P4P3P2
120
idle time + stage setup time (h) H1,1 H1,3 H2,1 H2,3 H3,1 H3,3
) ) ) ) ) )
1 6 3 2 1 5
H1,2 H1,4 H2,2 H2,4 H3,2 H3,4
) ) ) ) ) )
4 2 7 1 10 3
waiting present literature time (h) work W1,1 W1,2 W1,3 W2,1 W2,2 W2,3 W3,1 W3,2 W3,3
) ) ) ) ) ) ) ) )
8 0 7 0 3 9 0 0 0
0.032
2.81
be any idle time between first stages of all products in accordance with UIS transfer policy. As such V1,1, V2,1, and V3,1 are assigned zero value. Compare the values of these slack variables with setup time between first stages of all products. Select the higher value as a result of comparison and denote it using letters H1,1, H2,1, and H3,1, respectively. Determine the slack variables “V1,2” between first two matrix elements of the first two products using eq 1. Compare the value of slack variable with the setup time required U1,2, select the higher value from comparison, and denote it using letter “H1,2”. Calculate the preceding value of the waiting time “W1,1” using eq 4 below. The same procedure is repeated for calculating the slack variable between next stages of first two products i.e. “V1,3” using eq 1 by replacing V1,2 with H1,2, comparing it with the setup times “U1,3”. Select the higher value as a result of the comparison, and denote it using letter “H1,3”. Determine the preceding waiting time “W1,2” using eq 4 below. For any negative value of W, a zero value will be taken instead and that value of W will be added to H. A negative value of W shows that product has to pass through the temporary storage before transferring to next stage. This is because the
9964 Ind. Eng. Chem. Res., Vol. 47, No. 24, 2008
W using eq 6 below with slack variable H which is the result of comparison of slack variable V and the required setup times U.
Table 12. Product Recipe for Eight Products and Four Stages for Case Study 27 stage processing time product P1 P2 P3 P4 P5 P6 P7 P8
S1
S2
10 15 20 13 8 6 7 14
S3
20 8 7 7 3 9 5 13
stage transfer time S4
5 12 9 17 16 22 15 6
30 10 5 10 7 7 12 4
T0
T1
2 3 2 2 1 3 1 2
T2
2 3 4 2 1 3 2 4
T3
2 3 2 1 1 2 1 1
stage setup time
T4
2 3 2 4 3 2 2 1
3 1 1 2 2 2 1 2
stage setup time
productsequence U1 U2 U3 U4 productsequence U1 U2 U3 U4 P1-P2 P1-P3 P1-P4 P1-P5 P1-P6 P1-P7 P1-P8 P2-P1 P2-P3 P2-P4 P2-P5 P2-P6 P2-P7
3 2 1 1 3 3 2 4 1 3 3 1 2
1 2 4 3 2 1 3 1 1 2 1 1 2
2 1 2 2 1 2 3 2 4 3 2 2 1
4 3 2 3 1 1 2 3 3 2 2 4 1
P2-P8 P3-P1 P3-P2 P3-P4 P3-P5 P3-P6 P3-P7 P3-P8 P4-P1 P4-P2 P4-P3 P4-P5 P4-P6
3 2 1 2 2 2 1 2 4 1 3 1 3
stage setup time
2 1 2 2 1 1 4 2 3 4 2 3 1
1 4 3 2 2 1 2 3 4 3 2 3 2
3 3 2 2 1 3 2 1 3 3 1 2 2
stage setup time
product sequence U1 U2 U3 U4 product sequence U1 U2 U3 U4 P4-P7 P4-P8 P5-P1 P5-P2 P5-P3 P5-P4 P5-P6 P5-P7 P5-P8 P6-P1 P6-P2 P6-P3 P6-P4 P6-P5 P6-P7
1 2 2 2 2 1 4 2 4 1 3 4 2 2 2
1 3 2 2 3 1 3 3 3 2 3 1 3 1 2
3 1 1 3 3 3 3 2 2 1 2 1 4 1 3
1 3 4 2 3 4 1 3 2 2 3 2 1 4 2
P6-P8 P7-P1 P7-P2 P7-P3 P7-P4 P7-P5 P7-P6 P7-P8 P8-P1 P8-P2 P8-P3 P8-P4 P8-P5 P8-P6 P8-P7
1 2 1 2 1 3 1 2 1 4 2 3 3 3 2
3 3 1 1 2 2 2 1 1 1 1 4 1 3 3
3 2 1 2 1 2 4 1 2 4 3 1 3 1 1
3 1 1 2 3 2 1 1 1 4 2 1 2 1 1
time delay in the availability of the next stage becomes equal or less than the transfer time of the product intermediate to and from the temporary storage. For the purpose of calculation in such cases, the, W, will be assigned a zero value and the word “pass” will be used to demonstrate it.
[
if H1,j+1 > V1,j+1, W1,j ) (H1,j+1 + M1,j+1)(H1,j + M2,j + T2,j) else W1,j ) 0 if (H1,j+1 > V1,j+1 and W1,j e 0), H1,j+1)H1,j+1 + (-W1,j) and W1,j ) 0 (pass)
]
H1,1 ) 2 U1,2 ) 4,
H1,2 ) 4
W1,1 ) (H1,2 + M1,2) - (H1,1 + M2,1 + T2,1) ) 1 V1,3 ) (M2,2 + H1,2) - M1,3 ) 9
U1,3 ) 5,
[
i
Mk,j-1 +
k)2
W1,2 ) 0 Determine the slack variables between stages of next products by reformulating eq 2 as eq 5 and replacing slack variable V with H based on the comparison of calculated slack variables and required setup times. Determine the preceding waiting times
∑H
(
(∑
(
k,j-1 +
k)2
-
i
i
∑M
k,j +
k)1
∑T
∑
k,j-1 +
k,j +
i
Tk,j +
k)2 i
k)2
∑H
k,j
)
k)1
∑H
)
k,j-1
k)1
]
i-1
∑T k)2
i
Mk,j +
k)1 i+1
i+1
k,j-1
k)1
i
∑M
)
i
Tk,j-1 +
k)2
∑H k)1
-
k,j
)
(5)
else Wi,j-1 ) 0 if (Hi,j > Vi,j and Wi,j-1 e 0), Hi,j ) Hi,j + (-Wi,j-1) and Wi,j-1 ) 0 (pass) j ) 2 ... m, i ) 2 ... n - 1 (6) H2,1 ) 4
V2,2 ) (M2,1 + M3,1 + T2,1 + H1,1 + H2,1) - (M1,2 + M2,2 + T2,2 + H1,2) ) -2 ) 0 U2,2 ) 3,
H2,2 ) 3
W2,1 ) (M1,2 + M2,2 + T2,2 + H1,2 + H2,2) - (M2,1 + M3,1 + T2,1 + T3,1 + H1,1 + H2,1) ) 3 V2,3 ) (M2,2 + M3,2 + T2,2 + H1,2 + H2,2) - (M1,3 + M2,3 + T2,3 + H1,3) ) 2 U2,3 ) 4,
H2,3 ) 4
W2,2 ) (M1,3 + M2,3 + T2,3 + H1,3 + H2,3) - (M2,2 + M3,2 + T2,2 + T3,2 + H1,2 + H2,2) ) -1 ) 0 H2,3 ) 4 + 1 ) 5 H3,1 ) 5 V3,2 ) (M2,1 + M3,1 + M4,1 + T2,1 + T3,1 + H1,1 + H2,1 + H3,1) (M1,2 + M2,2 + M3,2 + T2,2 + T3,2 + H1,2 + H2,2) ) -4 ) 0 U3,2 ) 4,
H3,2 ) 4
W3,1 ) (M1,2 + M2,2 + M3,2 + T2,2 + T3,2 + H1,2 + H2,2 + H3,2) (M2,1 + M3,1 + M4,1 + T2,1 + T3,1 + T4,1 + H1,1 + H2,1 + H3,1) ) 6 V3,3 ) (M2,2 + M3,2 + M4,2 + T2,2 + T3,2 + H1,2 + H2,2 + H3,2) (M1,3 + M2,3 + M3,3 + T2,3 + T3,3 + H1,3 + H2,3) ) 39 - 36 ) 3 H3,3)3,
W3,2 ) 0
Finally, the makespan with all setup times included will be calculated by reformulating equation (eq 3) with slack variable V replaced by H and applying the resulting matrix obtained in step 1 above as follows: n
m
makespan )
∑ j)1
H1,3 ) 9
∑
if Hi,j > Vi,j, Wi,j-1 )
U3,3 ) 2,
j ) 1 ... m - 1 (4) V1,2 ) (M2,1 + H1,1) - M1,2 ) 1,
(∑ i+1
Vi,j )
M1,j +
∑ i)2
n-1
Mi,m +
∑ i)1
n
Hi,m +
∑T
i,m ) 21 +
i)2
16 + 17 + 5 ) 59 h The illustration of the transfer and setup time location between stages of all the products in a multiproduct batch process with unlimited intermediate storage transfer policy is done using the Gantt chart method in Figure 5. Number of Storage Tanks. Next, the number of temporary storage required is determined. Since the values of W1,1, W2,1,
Ind. Eng. Chem. Res., Vol. 47, No. 24, 2008 9965 Table 13. Optimal Solution with Makespan, Idle Time, and Waiting Time for Case Study 2 CPU time (s) optimal sequence
makespan (h)
P5P4P1P7P2P6P3P8
173
idle time + stage setup time (h) H1,1 H1,3 H2,1 H2,3 H3,1 H3,3 H4,1 H4,3 H5,1 H5,3 H6,1 H6,3 H7,1 H7,3
) ) ) ) ) ) ) ) ) ) ) ) ) )
1 3 4 8 3 2 1 1 1 2 4 1 2 3
H1,2 H1,4 H2,2 H2,4 H3,2 H3,4 H4,2 H4,4 H5,2 H5,4 H6,2 H6,4 H7,2 H7,4
) ) ) ) ) ) ) ) ) ) ) ) ) )
stage transfer time
product
S1
S2
S3
S4
S5
S6
T0
T1
T2
T3
T4
T5
T6
P1 P2 P3 P4
10 15 10 20
15 8 22 12
20 12 9 7
12 10 5 10
8 9 6 10
11 13 9 4
2 3 2 2
2 3 4 2
2 3 2 1
2 3 2 4
3 1 1 2
2 1 2 2
1 2 2 1
stage setup time storage setup time product sequence U1 U2 U3 U4 U5 U6 product G1 G2 G3 G4 G5 G6 P1-P2 P1-P3 P1-P4 P2-P1 P2-P3 P2-P4 P3-P1 P3-P2 P3-P4 P4-P1 P4-P2 P4-P3
3 2 1 4 1 3 2 1 4 4 1 3
1 2 4 1 1 2 1 2 2 3 4 2
2 1 2 2 4 3 4 3 2 4 3 2
4 3 2 3 3 2 3 2 2 3 3 1
2 1 3 2 1 2 3 2 2 1 4 2
3 4 2 2 1 1 1 2 1 2 2 3
P1 P2 P3 P4
1 2 2 1
2 2 3 3
2 1 3 2
2 4 1 3
1 1 2 2
4 2 1 2
Table 15. Optimal Solution with Makespan, Idle Time, Waiting Time, and Holding Time for Case Study 3 optimal makespan idle time + stage waiting sequence (h) setup time (h) time (h) P1P2P3P4
136
H1,1 H1,3 H1,5 H2,1 H2,3 H2,5 H3,1 H3,3 H3,5
) ) ) ) ) ) ) ) )
3 H1,2 ) 4 W1,1 2 H1,4 ) 5 W1,2 8 H1,6 ) 6 W1,3 1 H2,2 ) 2 W1,4 4 H2,4 ) 3 W1,5 1 H2,6 ) 1 W2,1 4 H3,2 ) 2 W2,2 5 H3,4 ) 5 W2,3 10 H3,6 ) 3 W2,4 W2,5 W3,1 W3,2 W3,3 W3,4 W3,5
) ) ) ) ) ) ) ) ) ) ) ) ) ) )
0 I1,1 6 I1,3 pass I1,5 0 I2,2 0 I2,4 0 I3,1 0 I3,3 pass I3,5 pass 6 0 0 0 0 0
holding time (h) ) ) ) ) ) ) ) )
0 0 0 0 0 0 0 0
I1,2 I1,4 I2,1 I2,3 I2,5 I3,2 I3,4
) ) ) ) ) ) )
present work
literature
) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) )
85.012
120.68
W1,1 W1,2 W1,3 W2,1 W2,2 W2,3 W3,1 W3,2 W3,3 W4,1 W4,2 W4,3 W5,1 W5,2 W5,3 W6,1 W6,2 W6,3 W7,1 W7,2 W7,3
0 pass 0 0 0 0 10 pass 14 0 4 11 pass 8 1 0 10 pass 0 0 0
ring to the next processing stage. Hence, there is a need of another temporary storage after the second stage. The batch process arrangement in this scenario is illustrated in Figure 6.
Table 14. Product Recipe for Four Products and Six Stages for Case Study 38 stage processing time
12 12 8 3 1 1 1 1 2 4 12 2 9 2
waiting time (h)
CPU time (s) 0 0.062 0 0 0 0 0 0
and W3,1 are greater than 0, it indicates the need for three temporary storage after first stage. The negative value obtained in case of W2,2 shows that product has to pass through the temporary storage tank without waiting inside it before transfer-
3. Problem Statement-Finite Intermediate Storage Policy (FIS) The FIS transfer policy is used in cases where temporary storages are shared among different products for economic plant operation. The number of temporary storage tanks is limited and depends on the economic criterion. The FIS transfer policy is always used with FIS/NIS policy. This means that in the case of the unavailability of temporary storage due to limited numbers, i.e. FIS policy, the intermediates have to stay in the same process unit, i.e. NIS policy is adopted. This paper considers the availability of storage tanks separately, i.e. one after each stage as described in the following paragraphs. For the purpose of developing the makespan algorithm for a batch process with n number of products and m number of stages, the following assumptions are considered. 1. Transfer and setup time are assumed negligible. 2. If the downstream processing stage or temporary storage is not available, the product intermediate will remain in the current processing stage. In this context, the transfer policy of NIS is adopted. 3. Storable time of intermediates in temporary storage depends on the availability of next processing stage. 4. Only one temporary storage is available for each processing stage. 3.1. Gantt Chart Method. Example 2. This example performs the makespan calculation for a four product batch process A, B, C, and D. The respective processing times for the four products based on three processing stages are shown in Table 5. The calculated makespan in this case is 33 h as shown in Figure 7. Figure 7 shows the need of a temporary storage to store the product C intermediate after its first stage (S1). The storable time calculated is 1 h, i.e. BS2-CS1. However, the need of a temporary storage again arises after 2 h of processing the product D intermediate followed by the processing of the product C intermediate in first stage (S1). As temporary storage is available at that point in time, it is used to store the product D intermediate
9966 Ind. Eng. Chem. Res., Vol. 47, No. 24, 2008
after its first stage (S1). The storable time for the product D intermediate in the temporary storage is 2 h. Figure 7 also shows that storable time for the product C intermediate in the temporary storage after its second stage (S2) is 4 h i.e. BS3-CS2. However, need of temporary storage again arises after 2 h in the second stage (S2) for the product D intermediate. But at that point of time, temporary storage is still holding the product C intermediate after its second stage (S2). Therefore NIS policy is adopted to hold the product D intermediate in the second stage (S2) until the time temporary storage is available. The holding time calculated is 2 h. The storable time for storing the product D intermediate after its second stage (S2) is 4 h because during this time, the third stage (S3) is processing the product C intermediate. Note that the makespan for the batch sequence can be calculated using the same path as adopted in example 1 above i.e., by taking the sum of AS1, AS2, AS3, BS3, CS3, and DS3. However, there exists idle time between the stages AS3 and BS3 that must also be included in the makespan calculation. In this case, the idle time between the stages AS3 and BS3 is 1 h. 3.2. Matrix Approach. The developed matrix approach for batch processes with finite intermediate storage is explained in the following steps. Step 1. Arrange the product recipes that make up the batch scheduling design problem according to the arrangement below. Note that A, B, C, and D represent the products while S1, S2, and S3 represent the stages with processing times according to the process sequence for producing each product. In this respect, the
scheduling will be based on a sequence where the product A is produced first, followed byproduct B, C, and, last, product D. 1 2 3 1 AS1 AS2 AS3 2 BS1 BS2 BS3 3 CS1 CS2 CS3 4 DS1 DS2 DS3 Step 2. Introduce the slack variables located in between the rows for the first, second, and third columns. 1 2 3 1 AS1 AS2 AS3 V1,1 V1,2 V1,3 2 BS1 BS2 BS3 V2,1 V2,2 V2,3 3 CS1 CS2 CS3 V3,1 V3,2 V3,3 4 DS1 DS2 DS3 Step 3. From the observation made on the Gantt chart method, it is clear that in addition to the slack variables, other variables have to be included to represent the waiting time inside the temporary storage and the holding time inside the current processing stage. For the purpose of calculation, these variables have been represented by the letters W and I, respectively. Similar to the UIS transfer policy, the slack variables in between the first stages of all the products in FIS transfer
Figure 12. Gantt chart for production sequence P1P4P3P2 for case study 1 (UIS transfer policy).
Figure 13. Gantt chart for production sequence P5P4P1P7P2P6P3P8 for case study 2 (UIS transfer policy).
Ind. Eng. Chem. Res., Vol. 47, No. 24, 2008 9967
policy would always be zero, i.e. V1,1, V2,1, and V3,1 are always zero. It is also observed from the Gantt chart method that there would not be any waiting time and holding time in the last stages of all the products. As such, the above matrix with the introduction of the slack variables W and I could be rewritten as follows: 1
2 AS2 V1,2 BS2W1,2, I1,2 V2,2 CS2, W2,2I2,2 V3,2 DS2W3,2, I3,2
1 AS1 2 BS1W1,1, I1,1 3 CS1W2,1, I2,1 4 DS1W3,1, I3,1
to W1,j-1 (j ) 2...m) and Wi,j-1 (j ) 2...m, i ) 2...n - 1), respectively, i.e. waiting time inside the intermediate storage tank otherwise no intermediate storage tank is needed and W will be zero. Finally, the makespan will be calculated using eq 3. The following example will illustrate the application of the matrix approach. 1 1 4
3 AS3 V1,3 BS3 V2,3 CS3 V3,3 DS3
2 12W1,1, I1,1 3 3W2,1, I2,1 4 2W3,1, I3,1
2 10 V1,2 4W1,2, I1,2 V2,2 3W2,2, I2,2 V3,2 2W3,2, I3,2
3 5 V1,3 7 V2,3 4 V3,3 2
Step 4. Determine the values of all the slack variables as follows:
V1,2 ) M2,1 - M1,2)2,
V1,2 ) BS1 - AS2
V2,2 ) (M2,1 + M3,1 + I1,1 + I2,1) - (M1,2 + M2,2 + V1,2 + I1,2) ) -1 ) 0, W2,1)1, I2,2 ) 0
V1,3 ) (V1,2 + BS2) - AS3 V2,3 ) (V1,2 + BS2 + I1,2 + V2,2 + CS2) - (AS3 + V1,3 + BS3) V3,2 ) (BS1 + I1,1 + CS1 + I2,1 + DS1) - (AS2 + V1,2 + BS2 + I1,2 + V2,2 + CS2 + I2,2) V3,3 ) (V1,2 + BS2 + I1,2 + V2,2 + CS2 + I2,2 + V3,2 + DS2) (AS3 + V1,3 + BS3 + V2,3 + CS3) It must be noted that if any of the slack variable V values are negative, they would be assigned a zero value and that value would be assigned to the preceding waiting time in the temporary storage, i.e. W, and if W is not available, it will be assigned to preceding value of I. Step 5. The makespan for the multiproduct batch process is calculated using the formula; makespan ) AS1 + AS2 + AS3 + BS3 + CS3 + DS3 + V1,3 + V2,3 + V3,3 3.3. Generalized Mathematical Expression. From the procedure developed above, generalized mathematical expressions could be developed for the matrix approach particularly for the calculation of the slack variables V, waiting time W, and holding time I. The developed mathematical equations are applicable to n number of products to be processed in m number of stages as shown below:
[
Vi,1 ) 0,
I1,j ) 0
i ) 1 ... n - 1,
Ii,m ) 0
j ) 1 ... m
i ) 2 ... n - 1
if (Mi+1,j-1 + Vi,j-1) e Wi-1,j-1, Ii,j-1 ) Wi-1,j-1 (Mi+1,j-1 + Vi,j-1) else Ii,j-1 ) 0 Vi,j )
(
i+1
i
∑M
k,j-1 +
k)2
(∑ i
i
∑V
k,j-1 +
k)1 i-1
Mk,j +
k)1
j ) 2 ... m,
∑V
∑I
k,j +
k)1
)
k,j-1
k)1 i-1
∑I
k,j
k)1
)
i ) 2 ... n - 1
-
]
V1,3 ) (M2,2 + V1,2) - M1,3)1,
W1,2)0,
I2,1 ) 0
V2,3 ) (M2,2 + M3,2 + V1,2 + V2,2 + I1,2 + I2,2) - (M1,3 + M2,3 + V1,3 + I1,3) ) -4 ) 0, W2,2)4, I3,1 ) 0
V2,2 ) (BS1 + I1,1 + CS1) - (AS2 + V1,2 + BS2 + I1,2)
V1,j ) (M2,j-1 + V1,j-1) - M1,j j ) 2 ... m
W1,1 ) 0
(7)
(8)
if any value of V1,j (j ) 2...m) and Vi,j (j ) 2...m, i ) 2...n - 1) is negative, the value of zero is assigned to the slack variable V between the particular stages and that value will be assigned
V3,2 ) (M2,1 + M3,1 + M4,1 + I1,1 + I2,1 + I3,1) - (M1,2 + M2,2 + M3,2 + V1,2 + V2,2 + I1,2 + I2,2) ) -2 ) 0, W3,1 ) 2, I3,2 ) 2 V3,3 ) (M2,2 + M3,2 + M4,2 + V1,2 + V2,2 + V3,2 + I1,2 + I2,2 + I3,2) - M1,3 + M2,3 + M3,3 + V1,3 + V2,3 + I1,3 + I2,3) ) -4 ) 0, W3,2 ) 4 Hence from eq 3, the makespan is calculated as follows: m
makespan )
∑M
1,j +
j)1
n
∑M
i,m +
i)2
n-1
∑V
i,m ) 33
h
i)1
Figure 8 illustrates the configuration of the batch process under study according to the production sequence ABCD. The small shaded box inside second stage illustrates the holding time of the product D (i.e., I3,2 ) 2 h) after completion due to unavailability of the temporary storage “Tank-2” which is due to the presence of the product C intermediate. 3.4. Optimal Production Sequence. The number of possible production sequences from the permutation rule for four products i.e., A, B, C, and D is P(4) ) 4! ) 24 are shown in Table 6. The developed matrix formulation is then applied to determine the process makespan for each possible sequence. The decision of optimal production sequence can be made on the basis of minimum process makespan from Table 6. In order to speed up the routine calculations, a programming tool is developed in Microsoft Visual C++. From Table 6, six possible solutions are identified as the best candidates for optimum production sequence, namely ACBD, CABD, CADB, CDAB, DCAB, and DACB (Figure 9). The decision here is made purely on the basis of least makespan i.e., 32 h. The final decision is left to the designer to choose for the production sequence of his choice. 3.5. Transfer and Setup Time. The procedure to allocate the transfer and setup time can be developed for batch processes with the finite intermediate storage policy. The preliminary information required determining the makespan of multiproduct batch process with the transfer and setup time is the transfer and setup time data for each product in a multiproduct batch process.
9968 Ind. Eng. Chem. Res., Vol. 47, No. 24, 2008
Figure 14. Gantt chart for production sequence P1P2P3P4 for case study 3 (FIS transfer policy).
Let us take one of the optimum sequence ACBD from the list of six optimum sequences in Table 6 offering minimum makespan for demonstrating the inclusion of transfer and setup time with makespan. In FIS, the setup time for temporary storage is also included because storage tanks are not fully dedicated as were in UIS.8 The required transfer and setup time for each product in three stages is shown in Tables 7-9. The numbers (0, 1, 2, 3), (1, 2, 3, 4) in Table 7 and (1, 2, 3), (1, 2, 3) in Table 8 and 9 represent columns and rows, respectively. The method is described in the following steps. Step 1. Add up the processing times of all the products with the transfer time in all the stages as shown below. 1 2 3 4
1 T1,0 + 4 + T1,1 T2,0 + 3 T3,0 + 12 T4,0 + 2
2 T1,2 + 5 T2,1 + 3 T3,1 + 4 T4,1 + 2
3 T1,3 + 10 T2,2 + 4 T3,2 + 7 T4,2 + 2
The resulting matrix after the addition of transfer time in setup 1 will be as follows: 1 1 9 2 6W1,1, I1,1 3 14W2,1, I2,1 4 4W3,1, I3,1
2 12 V1,2 5W1,2, I1,2 V2,2 7W2,2, I2,2 V3,2 3W3,2, I3,2
3 6 V1,3 6 V2,3 9 V3,3 3
Step 2. The slack variables between first stages of all products i.e. V1,1, V2,1, and V3,1 are not shown because there would not be any idle time between first stages of all products in accordance with the FIS transfer policy. As such, V1,1, V2,1, and V3,1 are assigned a zero value. Compare the values of these slack variables with setup time between first stages
of all products. Select the higher value as a result of comparison and denote it using letters H1,1, H2,1, and H3,1 respectively. Determine the slack variables V1,2 between first two matrix elements of the first two products using eq 7. Compare the value of slack variable with the setup time required U1,2, select the higher value from the comparison and denote it using letter H1,2. Calculate the preceding value of waiting time W1,1 using eq 9 below. The same procedure is repeated for calculating the slack variable between the next stages of first two products i.e. V1,3 using eq 7 by replacing V1,2 with H1,2, comparing it with the setup times U1,3. Select the higher value as a result of the comparison and denote it using letter H1,3. Determine preceding waiting time W1,2 using eq 9. For any negative value of W, a zero value will be taken instead and that value of W will be added to H. Negative value of W shows that product has to pass through the temporary storage before transferring to next stage. This is because the time delay in the availability of the next stage becomes equal or less than the transfer time of the product intermediate to and from the temporary storage. For the purpose of calculation in such cases, W will be assigned a zero value and the word pass will be used to demonstrate it.
[
if H1,j+1 > V1,j+1, W1,j ) (H1,j+1 + M1,j+1)(H1,j + M2,j + T2,j) else W1,j ) 0 if (H1,j+1 > V1,j+1 and W1,j e 0), H1,j+1 ) H1,j+1 + (-W1,j) and W1,j ) 0 (pass)
]
j ) 1 ... m - 1 (9)
H1,1 ) 2 V1,2 ) (M2,1 + H1,1) - M1,2 ) -4 ) 0
U1,2 ) 3,
H1,2 ) 3
W1,1 ) (H1,2 + M1,2) - (H1,1 + M2,1 + T2,1) ) 5 V1,3 ) (M2,2 + H1,2) - M1,3 ) 2 W1,2 ) 0
U1,3 ) 2,
H1,3 ) 2
Ind. Eng. Chem. Res., Vol. 47, No. 24, 2008 9969
Determine the slack variables between stages of next products by reformulating eq 8 as eq 10 and replacing slack variable V with H based on the comparison of calculated slack variables and the required setup times. Determine the preceding waiting times W using eq 11 below with slack variable H which is the result of comparison of slack variable V and the required setup times U.
[ [
if Gi,j-1 e (Mi+1,j-1 + Hi,j-1)(Wi-1,j-1 + Ti,j-1), Gi,j-1 ) 0 if (Mi+1,j-1 + Hi,j-1) e (Wi-1,j-1 + Ti,j-1 + Gi,j-1), Ii,j-1 ) (Wi-1,j-1 + Ti,j-1 + Gi,j-1)(Mi+1,j-1 + Hi,j-1) else Ii,j-1 ) 0 i+1
Vi,j ) (
i
∑M
k,j-1 +
k)2
∑T
k,j-1 +
k)2
i
i
∑H
∑I
i
i-1
k,j-1 +
k)1
i
(
∑M
∑T
k,j +
k,j-1)-
k)1
k,j +
k)1
k)2
∑H
k,j +
k)1
(∑
(∑
i+1
∑
Mk,j-1 +
k)2
Mk,j +
if (Hi,j > Vi,j
∑
Tk,j +
i
∑H
k,j-1 +
k)1
∑ k)1 i
I1,j ) 0, Ii,m ) 0
Hk,j +
∑I
)
k,j-1
k)1
Wi,j-1 ) 0 and Wi,j-1 e 0), Hi,j ) Hi,j + (-Wi,j-1) and Wi,j-1 ) 0 (pass) j ) 2 ... m,
i ) 1 ... n - 1,
]
m
i-1
∑I
)
k,j
k)1
else
-
]
i ) 2 ... n - 1 (11) j ) 1 ... m
W2,1 ) 0
I2,2 ) 0 V2,3 ) (M2,2 + M3,2 + T2,2 + H1,2 + H2,2 + I1,2 + I2,2) - (M1,3 + M2,3 + T2,3 + H1,3 + I1,3) ) 6 U2,3)6,
H2,3 ) 6,
I3,1 ) 0,
H3,1 ) 2
W2,2 ) 0
V3,2 ) (M2,1 + M3,1 + M4,1 + T2,1 + T3,1 + H1,1 + H2,1 + H3,1 + I1,1 + I2,1 + I3,1) - (M1,2 + M2,2 + M3,2 + T2,3 + T3,3 + H1,2 + H2,2 + I1,2 + I2,2) ) 0 U3,2 ) 3,
∑M
1,j +
j)1
H2,1 ) 3
H2,2 ) 5,
H3,3 ) 2
makespan )
V2,2 ) (M2,1 + M3,1 + T2,1 + H1,1 + H2,1 + I1,1 + I2,1) - (M1,2 + M2,2 + T2,2 + H1,2 + I1,2) ) 5 U2,2 ) 4,
U3,3 ) 2,
The makespan of the resulting matrix from step 1 can be calculated by reformulating eq 3 as used earlier in the case of UIS as follows:
It is important to note that the setup time for temporary storage, G, would be considered into the above calculations after the processing of product intermediates of second product as shown in eq 10. This is because no temporary storage is required after the processing of product intermediates of first product due to availability of all process stages. I2,1)0,
V3,3 ) (M2,2 + M3,2 + M4,2 + T2,2 + T3,2 + H1,2 + H2,2 + H3,2 + I1,2 + I2,2 + I3,2) - (M1,3 + M2,3 + M3,3 + T2,3 + T3,3 + H1,3 + H2,3 + I1,3 + I2,3) ) -3 ) 0
W3,2 ) (M1,3 + M2,3 + M3,3 + T2,3 + T3,3 + H1,3 + H2,3 + H3,3 + I1,3 + I2,3) - (M2,2 + M3,2 + M4,2 + T2,2 + T3,2 + T4,2 + H1,2 + H2,2 + H3,2 + I1,2 + I2,2 + I3,2) ) 4
i ) 2 ... n - 1 (10) i
k)2
Tk,j-1 +
k)2
k,j)
k)1
i
k)1
i+1
∑I
j ) 2 ... m,
i
if Hi,j > Vi,j, Wi,j-1 )
i-1
I3,2 ) 0
H3,2 ) 3
W3,1 ) (M1,2 + M2,2 + M3,2 + T2,2 + T3,2 + H1,2 + H2,2 + H3,2 + I1,2 + I2,2) - (M2,1 + M3,1 + M4,1 + T2,1 + T3,1 + T4,1 + H1,1 + H2,1 + H3,1 + I1,1 + I2,1 + I3,1) ) 2
n
∑M
i,m +
i)2
n-1
∑H
i,m +
i)1
n
∑T
i,m ) 62
h
i)2
The makespan obtained with the setup and transfer times between the stages of all the products in a multiproduct batch process with finite intermediate storage transfer policy is illustrated using the Gantt chart method in Figure 10. Figure 11 illustrates the configuration of the batch process under study with the transfer and setup time included according to the production sequence ACBD. 4. Case Studies To illustrate the application of the newly developed completion time algorithms, case studies from relevant literature are analyzed using computer code in Microsoft Visual C++ on an Intel Pentium 4 CPU, 2.80 GHz. CPU time in the case studies refers to time taken for an output file that lists makespan, waiting time (in the case of UIS), and waiting time and holding time (in the case of FIS) for product intermediates of all possible production sequences. The data for case studies 1, 2, and 3 are shown in Tables 10, 12, and 14. The optimal solutions obtained for these case studies are shown in Tables 11, 13, and 15, and respective Gantt charts are shown in Figures 12, 13, and 14, respectively. In the case studies, W ) 0 means that there is no need of temporary storage for product intermediate. However, there are cases when product intermediate has to pass through the temporary storage although it will not reside in the temporary storage as illustrated in Figure 5 for product B intermediate after stage 2. This is because the preceding stage is not ready to process the product intermediate and the waiting time for product B intermediate after stage 2 in Figure 5 will be consumed in transferring the product B intermediate to and from the temporary storage. To represent such cases, when it is need of product intermediate to only pass through the temporary storage without waiting inside it, W ) pass, is shown in Tables 11, 13, and 15 for the above case studies. 5. More Examples To illustrate the efficiency of the newly developed completion time algorithms, a number of examples with different product recipes are analyzed in Table 16, respectively. The CPU time computed in Table 16 is for producing the output file that lists out all possible sequences of the given product recipe with makespan and calculation of all other variables i.e. variables representing idle time, holding time, and waiting time according to the transfer policy adopted. The results are obtained using an Intel Pentium Processor 4 CPU 2.80 GHz.
9970 Ind. Eng. Chem. Res., Vol. 47, No. 24, 2008 Table 16. CPU Time Computed for Various Product Recipes of Batch Process with UIS and FIS Transfer Policies CPU time (s) products 4 5 6 7 8
stages 6 8 9 10 20
UIS
FIS
0.035 0.073 1.375 3.125 290.17
0.067 0.094 1.397 3.725 294.32
6. Conclusion This paper introduces new completion time algorithm for two generally adopted intermediate storage policies namely UIS and FIS in multiproduct batch processes. The approach presented in this paper is capable of determining the process makespan as well as suggests new strategies for handling the number and location of the temporary storage between process stages. In addition, the inclusion of the transfer and setup time with the makespan calculation represents the application of proposed algorithms in real world batch scheduling problems. The completion time algorithm is verified for various batch process recipes using a computer code developed for this purpose. The benefits of other suboptimal solutions generated with the optimal solution are also discussed for flexible scheduling design. Note Added after ASAP Publication: The version of this paper that was published on the Web 11/7/2008 had an additional change near the end of section 3.5 (regarding discussion of Figure 10). The corrected version was reposted to the Web November 13, 2008. Literature Cited (1) Orcun, S.; Altinel, I. K.; Hortacsu, O. General continuous time models for production planning and scheduling of batch processing plants: mixed integer linear program formulations and computational Issues. Comput. Chem. Eng. 2001, 25, 371–389. (2) Grau, R.; Espuna, A.; Puigjaner, L. Completion times in multipurpose batch plants with set-up, transfer and clean-up times. Comput. Chem. Eng. 1996, 20, S1143-S1148.
(3) Vecchietti, Aldo, R.; Montagna, J. Alternatives in the optimal allocation of intermediate storage tank in multiproduct batch plants. Comput. Chem. Eng. 1998, 22, S801-S804. (4) Liu, Y. u.; Karimi, I. A. Scheduling multistage, multiproduct plants with nonidentical parallel units and unlimited intermediate storage. Chem. Eng. Sci. 2007, 62, 1549–1566. (5) Gupta, S.; Karimi, I. A. Scheduling a two stage multiproduct process with limited product shelf life in Intermediate storage. Ind. Eng. Chem. Res. 2003, 42, 490–508. (6) Ha, J. K.; Chang, H. K.; Lee, E. S.; Lee, I. B.; Lee, B. S.; Yi, G. Intermediate storage tank operation strategies in the production scheduling of multi-product batch processes. Comput. Chem. Eng. 2000, 24, 1633– 1640. (7) Kim, M.; Jung, J. H.; Lee, I. B. Optimal Scheduling of Multiproduct Batch Processes for Various Intermediate Storage Policies. Ind. Eng. Chem. Res. 1996, 35, 4058–4066. (8) Jung, J. H.; Lee, H. K.; Lee, I. B. Completion times algorithm of multiproduct batch processes for common intermediate storage policy (CIS) with nonzero transfer and setup times. Comput. Chem. Eng. 1996, 20, 845– 852. (9) Ku, H. M.; Karimi, I. A. Scheduling in Multiproduct Batch Processes with Finite Interstage Storage: An MILP Formulation. Ind. Eng. Chem. Res. 1988, 27, 1840. (10) Lee, D. S.; Vassiliadis, V. S.; Park, J. M. List-Based ThresholdAccepting Algorithm for Zero-Wait Scheduling of Multiproduct Batch Plants. Ind. Eng. Chem. Res. 2002, 41, 6579–6588. (11) Moon, S.; Park, S.; Lee, W. K. New MILP Models for Scheduling of Multiproduct Batch Plants under Zero-Wait Policy. Ind. Eng. Chem. Res. 1996, 35, 3458–3469. (12) Burkard, R. E.; Fortuna, T.; Hurkens, C. A. J. Makespan minimization for chemical batch processes using non-uniform time grids. Comput. Chem. Eng. 2002, 26, 1321–1332. (13) Caraffa, V.; Ianes, S.; Bagchi, T. P.; Sriskandarajah, C. Minimizing makespan in a blocking flowshop using genetic algorithms. Int. J. Product. Econ. 2001, 70, 101–115. (14) Dupont, L.; Dhaenens-Flipo, C. Minimizing the makespan on a batch machine with non-identical job sizes: an exact procedure. Comp. Oper Res. 2002, 29, 807–819. (15) Shafeeq, A.; Abdul Mutalib, M. I.; Amminudin, K. A.; Muhammad, A. New completion time algorithms for sequence based scheduling in multiproduct batch processes using matrix Chem. Eng. Res. Des. 2008, 86, 1167-1181.
ReceiVed for reView January 15, 2008 ReVised manuscript receiVed July 8, 2008 Accepted September 5, 2008 IE800068J