Scheduling a Two-Stage Multiproduct Process with Limited Product

features such as limited shelf-lives of intermediate products, batch splitting at the storage, a batch filling multiple orders, and general product sp...
0 downloads 0 Views 166KB Size
490

Ind. Eng. Chem. Res. 2003, 42, 490-508

Scheduling a Two-Stage Multiproduct Process with Limited Product Shelf Life in Intermediate Storage Sushant Gupta and I. A. Karimi* Department of Chemical & Environmental Engineering, National University of Singapore, 4 Engineering Drive 4, Singapore 117576, Singapore

Many commonly occurring multistage facilities in noncontinuous chemical industries can be modeled as a two-stage process with intermediate storage. A two-step mixed-integer linear programming (MILP) approach is developed for such a class of problems with real and complex features such as limited shelf-lives of intermediate products, batch splitting at the storage, a batch filling multiple orders, and general product specifications. Step 1 forms optimal lots and batches to meet the orders, while step 2 schedules them. Twelve new formulations based on several novel constraint sets to assign consecutive orders to a unit are proposed and evaluated using several examples involving up to 90 batches. These sets are useful even for multistage scheduling problems other than the present problem. For this problem, minimizing setups and tardiness together seems easier and better than minimizing tardiness alone. Introduction Many batch/semicontinuous processes in food, cosmetic, pharmaceutical, polymer, and electronic industries employ a batch stage followed by multiple multistage semicontinuous trains, intermediate storage, and another batch stage followed by multiple multistage semicontinuous trains or simply the latter. The multistage operations before the storage produce the products in raw forms, while those after the storage render them in finished forms such as pallets, pills, fibers, staples, bottles, etc. In many instances, notably in the industries involving food and pharmaceuticals, the intermediate product is unstable with a limited shelf life. In fact, a local plant producing epoxy-molding compounds provided the motivation for this work. It employs a batch stage followed by multiple multistage semicontinuous trains, an intermediate storage, and then many multistage semicontinuous finishing trains. This entire multistage noncontinuous process can be modeled as a twostage process in which the first stage is batch and the second is batch/semicontinuous and the product in the intermediate storage has a limited product shelf life. Production in many such plants is driven by one or more customer orders for each material type with varying due dates. Scheduling production in such plants is often a weekly affair because of the fluctuating market demands. However, this is a difficult task because of several interesting real and complex operational features such as the limited shelf life of the intermediate products, discrete lot sizes for stage 1 processing, a lot from stage 1 resulting in multiple batches of different sizes in stage 2, a product order being filled by multiple batches of different sizes instead of a single batch, and multiple batches filling an order processing simultaneously on different units. To our knowledge, a systematic methodology addressing such a class of real and complex batch processes does not exist in the literature. Various issues and perspectives in the scheduling of batch process operations have been reported in the * Corresponding author. Phone: 65 874 2186. Fax: 65 779 1936. E-mail: [email protected].

reviews by Applequist et al.,1 Reklaitis,2 Zentner and Pekny,3 and Shah.4 In addition to the works on general batch plants,5-10 several works have addressed specific configurations to exploit problem-specific features to reduce computation times. For instance, Cerda et al.11 developed a continuoustime MILP formulation for the short-term scheduling of a single-stage batch plant with parallel units using a single set of variables for order-unit assignments and order sequencing. They addressed problems where the batches of the same order are successively processed in the same unit, i.e., campaign mode of operation. Moreover, they assumed that orders are filled by an integer number of identical batches of full size. Later, for a structurally similar plant, Mendez et al.12 addressed problems where orders are filled by multiple batches and a batch is shared among orders. However, they allowed batches of the same order to be processed on different units for more flexibility. Furthermore, they relaxed the assumption of an integer number of batches filling an order. To transform orders into equivalent sets of batches, they developed an MILP formulation. This formulation also decides which batch fills which orders or, in other words, assigns a due date to each batch. Their objective in this batching process was to minimize work-in-process inventory. Having done this, they developed a continuous-time MILP model to schedule the batches to meet the orders as close as possible to their due dates. They used separate variables for assignment and sequencing to get a reduction in binary variables in contrast to Cerda et al.11 Karimi and McDonald13 presented a slot-based continuous-time MILP formulation for the planning and scheduling problems in industrial facilities with parallel and semicontinuous/ batch processors incorporating several realistic features such as profit margins, transitions, inventory costs, safety stocks, and due-date penalties but did not consider any resource constraints. More recently, Lamba and Karimi14,15 and Mendez et al.16 addressed resource constraints such as raw material, availability of units, and manpower for scheduling parallel production lines.

10.1021/ie020396i CCC: $25.00 © 2003 American Chemical Society Published on Web 01/01/2003

Ind. Eng. Chem. Res., Vol. 42, No. 3, 2003 491

Scheduling in plants with multiple stages is more complex than that in a single-stage plant. Pinto and Grossmann17 developed a continuous-time MILP model for short-term scheduling in multistage batch plants with parallel nonidentical units. They used parallel time axes for units and orders and, using time slots, defined a set of tetra-index binary variables (stage-order-slotunit) for unit-order assignments and order sequencing. They minimized earliness and did not consider sequencedependent changeovers. Because their model could not solve industrial size problems in reasonable time, they developed an alternate MILP model with a preordering heuristic18 to reduce solution times. Following this work, Hui et al.19,20 presented a continuous-time formulation for multistage, multiproduct batch plants. They used tri-index binary variables (order-order-stage) for order sequencing and did not use time slots. They addressed sequence-dependent changeovers and sought schedules with minimum earliness. They could only solve problems with five orders to optimality in reasonable time. All of these works on multistage batch plants did not consider the initial state of the plant and assumed that all units and orders were available at the start of the scheduling period. Gupta and Karimi21 presented an improved MILP formulation for multiproduct, multistage batch plants, which requires fewer constraints and reduces the computation times by around 65% as compared to previous works.19,20 They proposed an industrially more realistic and computationally more efficient scheduling objective of minimizing tardiness and incorporated common operational considerations such as both sequence- and unit-dependent setup times, the initial plant state, and order-unit release times. The two-stage process considered in this paper models a generic class of multistage noncontinuous processes that occur quite commonly in many chemical industries. A key feature of the process, which occurs commonly in real plants, is that lot-sizing decisions are required at both stages and lot splitting may occur at intermediate storage. Like Mendez et al.,12 we consider problems where multiple batches fill an order and batches of a certain order may process on different units and even simultaneously. However, in addition, we consider that the shelf lives of intermediate products is limited. This problem becomes even more difficult because orders are processed in equivalent sets of batches in both stages and relations between the batches in both stages must be established appropriately. Because the batching formulation of Mendez et al.12 does not apply to this problem, we develop a new formulation to determine the optimal lots and batches to fill a given set of orders. In contrast to the batching formulation of Mendez et al.,12 we do not assign due dates to batches. Furthermore, we do not allow a nonzero intermediate inventory at the end of the scheduling period. Using the optimal batches from the batching formulation, we develop a continuoustime MILP formulation for scheduling these batches such that the orders are met with their required quantities at promised due dates. We consider a general scenario where the order changeovers depend on both processing units and sequence of orders. Our model incorporates the release times of units and orders and takes into account the initial state of the plant. One main feature of this work is that it presents models with new approaches for assigning consecutive orders to a single unit, which use

Figure 1. Schematic diagram of a two-stage coupled process with parallell units.

about half as many constraints as compared to previous approaches. On the basis of our experience with a local plant, we also propose a new scheduling objective of minimizing the tardiness of order completions together with unit setups. We begin the paper with a detailed problem description and then develop MILP formulations. Next, we numerically evaluate the alternate MILP models to identify the best. Problem Description The plant has two stages with parallel, nonidentical, batch, or semicontinuous processing units. The units within a stage are nonidentical in the sense that their suitability for processing products and their processing rates are different. Let J denote the set of all units (j ) 1 - J) in the plant and J1 and J2 denote the sets of units in stages 1 and 2, respectively. Figure 1 shows a schematic diagram of the plant. The plant manufactures products of several material types and specifications. Let K denote the set of material types (k ) 1 - K). Each material type has P properties, which relate to their processing characteristics. Let PV denote the set of all possible values for these properties. Each product has two specifications s1 and s2. Let S1 denote the set of s1 specifications (s1 ) 1 - S1) and S2 the set of s2 specifications (s2 ) 1 - S2). Material is first processed in stage 1, then transferred to intermediate storage, and then processed in stage 2 to obtain a final product with specifications s1 and s2. Some material types require preprocessing before stage 1. Let KP (KP ⊆ K) denote the set of material types which require preprocessing. Material type k ∈ KP can start processing only after time MRTk, called the material release time for type k. Furthermore, some material types are sensitive in that they cannot process first on a unit. Let KS (KS ⊂ K) denote the set of sensitive material types.

492

Ind. Eng. Chem. Res., Vol. 42, No. 3, 2003

Not all units in stages 1 and 2 can process material type k. Let JKk denote the set of all units that can process material type k. In addition to this, units in stage 2 are grouped (g ) 1 - G) on the basis of the product specification s1 that they can produce. All units in a group g produce the same specifications s1. Let S1g denote the set of specifications s1 which the units in group g can produce and J2s1 the set of units in stage 2 that can produce specification s1. Also, let G denote the set of all groups of units. The plant production is driven by product orders. Although a purchase order may demand products of multiple material types, we break it up into multiple orders of a single material type each. Let O denote the set of all orders (o ) 1 - O). We assume that information for each order o consists of (1) one material type k, (2) quantity of order OQo, (3) values for specifications (s1 and s2), and (4) due date do. Let Ok denote the set of orders of material type k. Because the plant may have an initial inventory (at the beginning of the scheduling period), some orders with earlier due dates are met fully/ partially by that inventory. Hence, we assume that the net quantity of orders required from production is RQo. Material is processed in lots of fixed sizes in stage 1 units. Let S denote the set of allowed lot sizes (s ) 1 S) in stage 1 and Sk (Sk ⊆ S) denote the set of lot sizes in which material type k can be processed. Let LSs denote the set of lots of size s and LQs the quantity of material in each lot. Each lot consists of single material type k. Let LKk denote the set of lots of material type k, L the set of lots (l ) 1 - L) of all material types (k ) 1 - K), and Lsk the set of lots of size s and material type k. Lots of material type k (l ∈ LKk) are used to produce orders of material type k, i.e., o ∈ Ok. Intermediate product is processed in batches of variable sizes in stage 2 units, and there are minimum and maximum batch size limits, which depends on the material type and specifications s1 and s2. Note that a lot may be split among several orders, but a batch cannot be used to satisfy several orders. The required quantity RQo of order o is met by a set of batches. Let BOo denote the set of batches for order o and B denote the set of batches (b ) 1 - B) for all orders (o ) 1 - O). Let BQLo and BQU o denote the minimum and maximum batch sizes for an order o and BQb (BQLo e BQb e BQU o) denote the quantity of material in a batch b. Because orders have a single material type k and specification s1, let BKk and BS1s1 denote the set of batches of material type k and batches of specification s1, respectively. Finally, let I ) L ∪ B and i denote a lot or a batch in I. Also, let JIi and IJj denote the set of units that can process a lot or batch i and the set of lots and batches that can be processed on unit j, respectively. The processing time for a lot depends on its size s and the unit j on which it is processed, while the processing time for a batch depends on the batch size BQb, material type k, and specifications s1 and s2. Let the processing time of a batch of size BQU o for order o be denoted by . We assume that the processing time BTb of a BTU o batch b of order o is given by

BTb )

BQb BQU o

BTU o

Changeovers of lots and batches may require some unit setup times depending on their properties. The unit

setup times for a lot or batch changeover are nonzero if the lots have different P properties and batches have different specifications s1. The setup time for a lot changeover is both sequence-dependent (sequence of lots) and unit-dependent, while the setup time for a batch changeover is only sequence-dependent (sequence of specifications s1). Let IS denote the set of lots and batches of sensitive material types k ∈ KS. Lots or batches of sensitive material type i ∈ IS cannot follow a lot or a batch with which they require a unit setup. Moreover, such lots and batches cannot process first on a unit. The shelf life of products in intermediate storage is limited. This means that the intermediate material must start processing in stage 2 within a finite time that depends on the material type. Let SLk denote the shelf life of the intermediate material of type k. In addition to the above features, we assume the following. 1. A unit cannot process more than one lot or batch at a time and vice versa. 2. No resource constraints except units and time are considered. 3. Processing of lots and batches is nonpreemptive. 4. Transfer times from stage 1 to intermediate storage and intermediate storage to stage 2 are negligible. 5. Time zero denotes the start of the current scheduling period. 6. States of all units (lots and batches they are processing and the extents of their processing) in the plant at time zero are known. 7. A unit j can start processing a lot or batch only after time URTj, called the unit release time. 8. Due dates, processing times, and setup times are deterministic and known a priori. 9. Unlimited intermediate storage (UIS) is available for intermediate products. 10. Quantity LQs in lots of size s (s ∈ Sk) are integer multiples of all BQU o (o ∈ Ok). The scheduling problem involves the production of L lots and B batches in stages 1 and 2, respectively, with the above features and assumptions. The main decisions for both lots and batches are to (1) determine their numbers and quantities, (2) determine their unit assignments, (3) sequence them on units, and (4) determine their start times such that the plant is able to meet the demand of O orders with minimum due-date violations. In the following we present our strategy to achieve these decisions. Solution Strategy. Because of the complexity of the above scheduling problem, we propose a two-step approach. In step 1, we create optimal sets of L lots and B batches, which meet the required quantities of O orders. We do this in a way that minimizes the setups, surplus production, and partial batches. Then, in step 2, we schedule these lots and batches to minimize the tardiness of order completions along with setups, ensuring that no intermediate material expires. Because the changeover time between two successive lots is nonzero, only if the lots have different values of P properties, we group lots with the same values of P properties into one family f. Let F denote the set of such families. In the following, we develop mixed-integer linear programming (MILP) formulations for both steps 1 and 2. For step 1, time representation is not needed, while we use a continuous-time representation without time slots for step 2. We begin with the formulation for step 1.

Ind. Eng. Chem. Res., Vol. 42, No. 3, 2003 493

and to force BPo to 1 when BQPo is positive, we write

Step 1: Forming Lots and Batches for Orders The goal of step 1 is to determine (1) the numbers of lots of various sizes for each material type and (2) the numbers and sizes of batches for each order. To this end, let NLsk denote the number of lots of size s and material type k and NBU o denote the number of batches of maximum size for order o. Throughout this paper, unless a specific range is specified for an index in a constraint, assume that the constraint is written for all possible values of that index. Lots of material type k (l ∈ LKk) are used to produce multiple orders o ∈ Ok. To minimize the number of lots and surplus intermediate material, we divide the total quantity required for orders of material type k into lots instead of dividing their individual quantities into lots. The required quantity for type k is given by the sum of RQo of all orders of type k. As mentioned earlier, material type k can only process in lots of sizes s ∈ Sk. The quantity of material in lots of size s is denoted by LQs. To ensure that a sufficient amount of material k is produced, we use

∑ NLskLQs g o∈O ∑ RQo

s∈Sk

(1)

k

Because the right-hand side may not exactly equal the left-hand side, there may be some extra material EQk produced from stage 1, i.e.,

EQk )

∑ NLskLQs - o∈O ∑ RQo

s∈Sk

(2)

k

To avoid wastage of the extra material EQk from stage 1, we add this material to one or more orders of material type k in stage 2. Then, let PQo denote the produced quantity for order o. Because the extra material produced from stage 1 must equal the material added to orders in stage 2, we have

EQk )

∑ (PQo - RQo)

(3)

o∈Ok

As mentioned earlier, each order o is filled by its own set of batches b ∈ BOo and the size of batches must not exceed the maximum batch size BQU o . We divide the quantity PQo into the maximum number NBU o of and one batch representing batches of largest size BQU o the remainder quantity BQPo as follows. U P PQo ) NBU o BQo + BQo

(4)

Because NBU denotes the maximum number of o P U batches of size BQU o , it is clear that BQo < BQo . P Moreover, if BQo is positive, then it must be greater than or equal to the minimum batch size for order o, i.e., BQLo . To count the total number of partial batches, we define a binary variable BPo as follows.

BPo )

{

1 if BQPo is positive 0 otherwise

To force BPo to zero when BQPo is zero, we write

BQPo g BQLo BPo

(5)

P BQPo e BQU o Bo

(6)

Note that when BQPo is zero, i.e., BPo ) 0, eq 6 is relaxed and when BQPo is positive, i.e., BPo ) 1, eq 5 reduces to BQPo g BQLo . With this, we complete the constraints for step 1. Now we decide the objective function to find the optimal numbers of lots and batches. Objective Function. There exist several combinations of the numbers of lots and batches that meet the demands of O orders. The choice of a combination of lots and batches depends mainly on three goals. First, as the numbers of lots and batches increase, the number of unit setups also would increase. So, to minimize the total number of setups, it would be desirable to minimize the total number of lots and batches. Material can be processed in more than one size in stage 1. An obvious way to minimize the number of lots is to process material in the largest size allowed. However, this may give surplus intermediate material and may incur an inventory cost. Moreover, this surplus material may end up increasing the number of batches in stage 2. So, the second goal may be to minimize this surplus amount. Hence, we minimize the number of lots together with the amount of surplus intermediate material. The surplus material from stage 1 must be processed in stage 2 to avoid wastage. Now the question is, for which orders must we produce more or how should this surplus be distributed among orders? We distribute the surplus in a way that minimizes the batches for all P orders. Therefore, we minimize NBo ) NBU o + Bo or the number of batches for order o. Finally, the third goal is to maximize equipment utilization by making full-size (vs partial) batches and maximum-size lots. In other words, we minimize the partial batches for all orders. To achieve the above three objectives, we propose the following objective for the lot-sizing problem:

minimize

[

∑∑ (

k∈K s∈Sk

( )]

NLsk) + ws

EQk

+

min LQs s [

(NBo + wpBPo )] ∑ o∈O

(7)

where ws and wp are the weights to minimize the surplus material and the number of partial batches, respectively. Observe that we have divided EQk by the smallest lot size to make it dimensionless and on par with the other three terms. Selecting ws ∼ 1 and wp ∼ 1 assigns approximately equal importance to all three goals. One can select greater or smaller weights to assign varying priorities to the different goals. However, one must weigh several costs or factors in order to decide the proper weights. These include the setup cost for one lot in stage 1, the setup cost for one batch in stage 2, the inventory cost of the final product, the stability of the final product, the unit cost ($ per kg of material) of processing a partial batch vs that of processing a full batch, the frequencies and amounts of product orders, the customers, batchto-batch consistency, etc. These and other issues are extremely important in plants that produce perishable

494

Ind. Eng. Chem. Res., Vol. 42, No. 3, 2003

products such as food, pharmaceuticals, electronic materials, etc. For instance, if the plant has dedicated customers who order on a regular basis, the products are quite stable and the inventory costs are not high, and then it may not be bad to allow the production of more surplus material because the material would be used up fairly quickly by future orders. In this case, it is better to select low or zero ws. If the customers require that the material must be consistent in that the entire delivered product must be from the recent batches and cannot be a mix of materials from old and recent batches, then one must minimize the extra surplus material by selecting a high ws. If the setup costs for lots in stage 1 and/or batches in stage 2 are high, then full-size batches and maximum-size lots would be preferred, which can be achieved by selecting low ws and high wp. Clearly, because of the many factors involved, it is not possible to give exact guidelines on how to select weights. Therefore, we settled on a formulation that gives freedom to the user to judge the relative importance of the three goals based on the various factors, plant preference, and experience. If one does not get a desired solution for a given situation, then one can always revise the weights to obtain a better solution. Also, the formulation allows one to tailor the weights for specific orders and products. This is easily done by replacing ws and wp by wsk and wpo in eq 7. Now, one can assign priorities that vary with materials and customers. Last, observe that the objectives for stages 1 and 2 are only weakly coupled and can be achieved almost independently. We have tried to make this point by using brackets to clearly separate the objectives of stages 1 and 2. This means that ws and wp are not correlated in any manner and may be chosen independently of each other. Having decided on the lots and batches required to meet the orders, we schedule their production in stages 1 and 2, respectively. To this end, we develop a new MILP formulation. Step 2: Scheduling Lots and Batches Step 2 requires five main decisions: (1) assign lots and batches to specific units of stages 1 and 2, respectively, (2) sequence lots and batches on each unit, (3) determine the start times of lots and batches, (4) assign lots to batches, and (5) assign batches to orders. We now define variables and constraints that enable these five decisions. We begin with assigning lots and batches to various processing units. Lot and Batch Assignment. To assign a lot or a batch i to a specific unit j for processing, we define a binary variable Zij as follows.

Zij )

{

1 if a lot or a batch i is processed on unit j 0 otherwise

Because a lot/batch i ∈ I must be assigned to exactly one unit j from the set JIi of units that can process i, we have

∑ Zij ) 1

(8)

j∈JIi

Appendix A of Gupta and Karimi21 shows that Zij, although defined as a binary, can be treated as a continuous variable with bounds 0 e Zij e 1. Next, we sequence the lots and batches on each unit.

Sequencing Lots and Batches. From all of the lots/ batches assigned to a unit j, exactly one lot/batch i must process first on that unit. Moreover, as we mentioned earlier, lots/batches of the sensitive material type, i.e., i ∈ IS, cannot process first on a unit. To choose the first lot or batch, we define a binary variable ZFij as follows.

ZFij ) 1 if a lot or a batch i is processed first on unit j 0 otherwise

{

Because a unit j can process at the most one lot/batch in the first place, we have

∑ ZFij e 1

(9)

i∈ IJj i*IS

The equality will hold true for units that process at least one lot/batch. Lots/batches that do not process first on any unit must follow other lots/batches. To decide this, we define another binary variable Xii′ as follows.

Xii′ ) 1 if a lot/batch i′ is processed after a lot/ batch i on some unit 0 otherwise

{

Clearly, there are only two possible positions for a lot/ batch i to process in stages 1 and 2. Either they are processed first on some unit j or they follow another lot/ batch i′ on some unit. In other words,

Xi′i ) 1 ∑ ZFij + ∑ i′∈I

j∈JIi

Note that we write this equation for all pairs (i, i′) ∈ I. However, we need not write it for all pairs (i, i′) ∈ I, as we explain next. Set I consists of both lots and batches. Because they are processed in different stages and units, they cannot follow each other. Lots and batches of material type k can only be processed on units j ∈ JKk, and batches of specification s1 can only be produced on units j ∈ J2s1. So, two lots or batches i and i′ may need completely different subsets of units for processing and hence cannot be consecutive. Also, lots and batches of the sensitive material type i ∈ IS cannot follow lots and batches with which they require a unit setup. This means that each lot or batch has a set of feasible predecessors and successors. Let FPi denote the set of feasible predecessors of a lot or batch i. Rewriting the last equation for only feasible pairs (i, i′), we get

∑ ZFij + i′∈FP ∑ Xi′i ) 1

j∈JIi

(10)

i

Note that, in eq 10, the term ∑j∈JIiZFij does not include ZFij’s for sensitive lots/batches i ∈ IS. Throughout this section, ZFij’s are only defined for lots/batches i ∉ IS. Now a lot or a batch i cannot have more than one successor i′. Also, i′ must be a feasible successor of i. Therefore, defining FSi as the set of feasible successors of i, we write

∑ Xii′ e 1

i′∈FSi

(11)

Ind. Eng. Chem. Res., Vol. 42, No. 3, 2003 495

The above inequality allows a lot or batch i to process last on some unit because the last lot or batch will not have any successors. Unit Assignment. To assign consecutive lots/batches (i, i′) to a single unit j, we first ensure that they are not assigned to units that cannot process them both. Such units are given by j ∈ (JIi - JIi′) ∪ (JIi′ - JIi), and we call them uncommon units. This is equivalent to ensuring that consecutive lots/batches (i, i′) are only assigned to units that can process them both. Such units are given by j ∈ JIi ∩ JIi′, and we call them common units. Even after ensuring this, it is possible that consecutive lots/batches process on different common units. Therefore, we need additional constraints to force consecutive lots/batches (i, i′) to one common unit j. Note that the two lots/batches i and i′ are consecutive if Xii′ + Xi′i ) 1. One way to ensure that they cannot be assigned to uncommon units is to use

2(Xii′ + Xi′i) +



j∈(JIi-JIi′)

Zij +



Zi′j e 2

j∈(JIi′-JIi)

i′ > i, i′ ∈ FSi ∪ FPi (12) Observe that Xii′ + Xi′i ) 1 w Zij ) Zi′j ) 0 for uncommon units from the above constraint. Because eq 12 is symmetric with respect to i and i′, we can write it for just combinations of (i, i′) and not permutations. By doing this, we reduce the number of constraints by half. As mentioned before, we now need another constraint to ensure that (i, i′) process on one common unit j, i.e., ZijZi′j ) 1 for some j ∈ JIi ∩ JIi′. One way to achieve this is to use

Zij e Zi′j + 1 - Xii′ - Xi′i j ∈ JIi ∩ JIi′, i′ > i, i′ ∈ FSi ∪ FPi (13a) Observe that when Xii′ + Xi′i ) 1, eq 13a will reduce to

differ in the numbers of actual constraints, the numbers of nonzeros in the constraints, and the way in which the Zij’s are set to 0 or 1. Because all of these factors impact the computation times, the decision on which set is the best will be based on a detailed numerical evaluation in a later section. Having assigned and sequenced lots/batches on specific units and having ensured that consecutive lots/ batches (i, i′) process on one common unit, we proceed to set the start times and end times for processing of lots and batches in stages 1 and 2, respectively. Lot Timings. To determine the production timings of lots in stage 1, we define variables Tsl and Tel as the start and end times for processing of lot l. Because the processing time of a lot depends on the lot size s and the unit where the lot is processed, let LTsj denote the processing time of lots of size s and on unit j. It is straightforward that the end time of a lot is equal to the start time plus the processing time. Hence, we have

Tel ) Tsl +

∑ LTsjZlj

l∈ LSs

(22)

j∈JLl

Earlier, we clubbed all lots with the same values of P parameters in a single family f and denoted the set of such families by F. Let LFf denote the set of lots in a family f. Changeover of consecutive lots of different families only needs a unit setup. Let cff′j denote the setup time required for a changeover of a lot of family f to a lot of family f ′ on unit j. Now, if a lot l′ of family f ′ follows a lot l of family f, i.e., Xll′ ) 1, then lot l′ can start processing only after lot l finishes processing and the unit is set up to process lot l′. Moreover, lot l must be from the set of feasible predecessors of lot l′ denoted by FPl′. We write this as

M(1 - Xll′) + Tsl′ g Tel +



cff ′jZl′j

j∈JLl∩JLl′

j ∈ JIi ∩ JIi′, i′ > i, i′ ∈ FSi ∪ FPi (13b)

l′ ∈ LFf ′, l ∈ LFf ∩ FPl′, (f, f′) ∈ F (23)

We now show that eq 13b forces ZijZi′j ) 1 for one common unit j, whenever one of the following two conditions is met. 1. Zij ) 1 for some unit j ∈ JIi ∩ JIi′. 2. Zi′j ) 1 for some unit j ∈ JIi ∩ JIi′ and Zij ) 0, ∀ j ∈ (JIi - JIi′). When condition 1 is met, it is easy to see that Zij ) 1 w Zi′j ) 1 from eq 13b. Now, when condition 2 is met, Zi′j ) 1 w Zi′j′ ) 0, ∀ j′ ∈ JIi′, j′ * j, from eq 8. This makes Zij′ ) 0, ∀ j′ ∈ JIi ∩ JIi′, j′ * j, from eq 13b. Then Zij ) 0, ∀ j ∈ (JIi - JIi′), will make Zij ) 1 from eq 8. Thus, eq 13a ensures ZijZi′j ) 1 for one common unit j, as long as one of the above two conditions is met. Because eq 12 meets both of the conditions, eqs 12 and 13a form a valid constraint set to force consecutive lots/batches (i, i′) on a single unit j. Note that eq 13a gets relaxed when Xii′ + Xi′i ) 0, and it is enough to write eq 13a for combinations of (i, i′) only and not permutations. The constraint set (eqs 12 and 13a) presented above is just one valid set of unit assignment constraints. It turns out that there are several, in fact 12, different ways of writing these constraints. For the sake of brevity, we derive the additional 11 sets in Appendix A and list them in Table 1. Each set comprises two constraints. The first constraint forces Zij ) 0 or Zi′j ) 0 or both for uncommon units, while the second forces Zij ) Zi′j ) 1 for one common unit j. The various sets

where M is a large positive number to relax the constraint when Xll′ ) 0. Batch Timings. Similarly for a batch b, we define Tsb and Teb as the start and the end times for its processing. The processing time for a batch b depends on the quantity BQb, the type of material k, and the specifications (s1, s2). As mentioned earlier, the processing time for maximum batch size BQU o of order o is and the processing time BTb of a batch denoted by BTU o U b of order o is given by BTb ) (BQb/BQU )BT o o . Because the end time for processing of batch b is given by its start time plus the processing time, we have

Zij e Zi′j

Teb ) Tsb +

BQb BQU o

BTU o

b ∈ BOo

(24)

As stated in the problem description, the unit setup time for changeover of batches is nonzero if the batches are of different specification s1. Consecutive batches of the same specification s1 do not require a setup. The setup times are only sequence-dependent (sequence of specification s1). Let cs1,s1′ denote the setup time required for changeover of batches of specification s1 to batches of specification s1′. If a batch b′ of specification s1′ follows batch b of specification s1, i.e., Xbb′ ) 1, then b′ can start processing only when b finishes processing

496

Ind. Eng. Chem. Res., Vol. 42, No. 3, 2003

Table 1. Various Sets of Unit Assignment Constraints set

eq

unit assignment constraints

1

12

2(Xii′ + Xi′i) +

Zij e Zi′j + 1 - Xii′ - Xi′i

2

13a 12



Zij +

j∈(JIi-JIi′)



2(Xii′ + Xi′i) +

Zij +

j∈(JIi-JIi′)

Zi′j e Zij + 1 - Xii′ - Xi′i

13c 12

3



2(Xii′ + Xi′i) +

Zij +

j∈(JIi-JIi′)

Zij e Zi′j + 1 - Xii′

13d 12

4



2(Xii′ + Xi′i) +

Zij +

j∈(JIi-JIi′)



Xii′ + Xi′i +

Zi′j e 2

i′ > i, i′∈ FSi ∪ FPi

IC 2

Zi′j e 2

j ∈ JIi ∩ JIi′, i′ > i, i′∈ FSi ∪ FPi i′ > i, i′∈ FSi ∪ FPi

IC 2 IC 2

Zi′j e 2

j ∈ JIi ∩ JIi′, i′ > i, i′∈ FSi ∪ FPi i′ > i, i′∈ FSi ∪ FPi

IC 2 IC 2

Zi′j e 2

j ∈ JIi ∩ JIi′, i′ ∈ FSi i′ > i, i′ ∈ FSi ∪ FPi

IP 2 IC 2

j ∈ JIi ∩ JIi′, i′ ∈ FSi i′ > i, i′ ∈ FSi ∪ FPi

IP 2 IC 2

j ∈ JIi ∩ JIi′, i′ > i, i′ ∈ FSi ∪ FPi i′ ∈ FSi

IC 2 IP 2

j ∈ JIi ∩ JIi′, i′ ∈ FSi i′ > i, i′ ∈ FSi ∪ FPi

IP 2 IC 2

j ∈ JIi ∩ JIi′, i′ > i, i′ ∈ FSi ∪ FPi i′ ∈ FSi

IC 2 IP 2

j ∈ JIi ∩ JIi′, i′ ∈ FSi j ∈ JIi - JIi′, i′ > i, i′ ∈ FSi ∪ FPi j ∈ JIi ∩ JIi′, i′ > i, i′ ∈ FSi ∪ FPi j ∈ JIi - JIi′, i′ ∈ FSi j ∈ JIi ∩ JIi′, i′ ∈ FSi j ∈ JIi′ - JIi, i′ > i, i′ ∈ FSi ∪ FPi j ∈ JIi ∩ JIi′, i′ > i, i′∈ FSi ∪ FPi j ∈ JIi′ - JIi, i′ ∈ FSi j ∈ JIi ∩ JIi′, i′ ∈ FSi

IP 2 IC 2 IC 2 IP 2 IP 2 IC 2 IC 2 IP 2 IP 2

j∈(JIi′-JIi)



j∈(JIi′-JIi)



j∈(JIi′-JIi)



j∈(JIi′-JIi)

Zi′j e Zij + 1 - Xii′

13e 14

5



max no.a

index ranges

Zij e 1

j∈(JIi-JIi′)

Zij e Zi′j + 1 - Xii′ - Xi′i

13a 15

6

Xii′ +



Zij e 1

j∈(JIi-JIi′)

Zij e Zi′j + 1 - Xii′

13d 16

7

Xii′ + Xi′i +



Zi′j e 1

j∈(JIi′-JIi)

Zi′j e Zij + 1 - Xii′ - Xi′i

13c 17

8

Xii′ +



Zi′j e 1

j∈(JIi′-JIi)

10 11 12 a

Zi′j e Zij + 1 - Xii′ Xii′ + Xi′i + Zij e 1 Zij e Zi′j + 1 - Xii′ - Xi′i Xii′ + Zij e 1 Zij e Zi′j + 1 - Xii′ Xii′ + Xi′i + Zi′j e 1 Zi′j e Zij + 1 - Xii′ - Xi′i Xii′ + Zi′j e 1 Zi′j e Zij + 1 - Xii′

13e 18 13a 19 13d 20 13c 21 13e

9

Maximum numbers of actual constraints for each common unit. C refers to combinations and P to permutations of (i, i′).

and the unit is set up to process batch b′. Additionally, batch b must belong to the set of feasible predecessor of batch b′ denoted by FPb′. In other words,

M(1 - Xbb′) + Tsb′ g Teb + cs1,s1′ b′ ∈ BS1s1′, b ∈ BS1s1 ∩ FPb′, (s1, s1′) ∈ S1g (25) where M is a large positive number to relax the constraint when Xbb′ ) 0. Relation between Lot Timings and Batch Timings. Material from lots l ∈ LKk is used to produce orders of only type k, i.e., o ∈ Ok. Because each order o has its own set of batches b ∈ BOo, BKk denotes the set of batches of material type k. Hence, lots l ∈ LKk are used to produce batches b ∈ BKk. To decide the batches for lot l, we define a binary variable Ylb as follows.

Ylb )

{

1 if batch b is obtained from lot l 0 otherwise

A lot may divide into multiple batches, but a batch always comes from a single lot. Hence, we must have

∑ Ylb ) 1 l∈LK

b∈BKk

(26)

k

Because we assumed that quantity LQs in lots of size s (s ∈ Sk) are integer multiples of all BQU o (o ∈ Ok) and by material balance from eq 3, the sum of the quantities

of batches produced from lot l must equal the quantity in the lot. In other words,

∑ YlbBQb ) LQs

l ∈ Lsk, s ∈ Sk

(27)

b∈BKk

The batches b ∈ BKk produced from lot l ∈ LKk, i.e., Ylb ) 1, can start processing in stage 2 only after the lot l finishes processing in stage 1. Thus, we have

M(1 - Ylb) + Tsb g Tel

l ∈ LKk, b ∈ BKk (28)

where M is a large positive number to relax the constraints for batches that are not produced from lot l, i.e., Ylb ) 0. We mentioned earlier that the shelf life of the intermediate material is limited and depends on material type k. Hence, lots of material type k have a shelf life of SLk. To avoid wastage of material, batches that are produced from lot l of material type k must start their processing within a finite time SLk after the lot l finishes its processing in stage 1. So, we must have

Tsb e Tel + SLk + M(1 - Ylb)

l ∈ LKk, b ∈ BKk (29)

where M is a large positive number to relax the constraints for batches that are not produced from lot l, i.e., Ylb ) 0.

Ind. Eng. Chem. Res., Vol. 42, No. 3, 2003 497

Initial Plant State. A unit j can start processing a lot or a batch from a new production schedule only after its release time URTj. Based on the properties of the lot/batch it was processing, the unit may require a setup time to start processing a new lot/batch. Because the criterion for a unit setup differs for both of the stages, we write different equations for stages 1 and 2. We define c0fj as the setup time required when lots of family f are processed first on unit j. Because lots l ∈ LFf, which are processed first on a unit j (ZFlj ) 1) can start processing only after the unit is released and set up to process the lot l, we get

Tsl g

∑ ZFlj(URTj + c0fj)

l ∈ LFf

(30)

j∈JLl

Note that the above gets relaxed for ZFlj ) 0. Similarly for stage 2, we define c0s1,j as the setup time required when batches of specification s1 are processed first on unit j. Because the batches b ∈ BS1s1, which are processed first on a unit j (ZFbj ) 1), can start processing only after the unit is released and set up to process the batch b, we get

Tsb g

∑ ZFbj(URTj + c0s1,j)

b ∈ BS1s1 (31)

j∈JBb

Note that the above gets relaxed for ZFbj ) 0. Finally, material type k ∈ KP requires preprocessing before stage 1. The time required for preprocessing depends on the material type and is denoted by MRTk, the material release time for type k. Lots l ∈ LKk of material types k ∈ KP can start processing only after time MRTk. Hence, we must have

Tsl g MRTk

l ∈ LKk, k ∈ KP

(32)

Miscellaneous. It is clear that a lot or a batch i can process first on a unit j, only if it is assigned to that unit. In other words, ZFij ) 1 w Zij ) 1, or

j ∈ JIi

Zij g ZFij

b ∈ BOo

(34)

To meet the above goal of on-time delivery, an appropriate objective function would be to minimize the weighted overall tardiness of order completions as

Minimize

∑ poTdo

Ero g do - Teb

(35)

o∈O

where a user-assigned parameter po prioritizes order o. This objective function may produce orders earlier than their due dates and may incur some inventory cost. To reduce this cost, it may be desirable to minimize earliness in the production of orders. Earliness Ero of

b ∈ BOo

(36)

So, if we wish to produce orders as close as possible to their due dates, i.e., JIT (Just-In-Time) scheduling, then we may use the objective function

Minimize wt

∑ poTdo + weo∈O ∑ poEro

(37)

o∈O

where wt and we are user-assigned weights to minimize tardiness and earliness, respectively. In most cases, early orders will not incur inventory cost because they will be shipped as soon as they are finished. Also, if orders finish processing much before their due dates, then either the customer lead time has been overestimated or the plant is underutilized. In that case, schedules obtained using eq 37 will exhibit equipment idle times in the beginning of the scheduling period. Because most schedules invariably are revised after a few days, such idle times are not desirable because they reduce operating flexibility. Moreover, problems with eq 37 as the objective require more computation time as compared to those with the objective of minimizing tardiness alone.21 Hence, eq 35 is a preferred objective function over eq 37. Minimizing the number of setups is also an important goal for many plants. If we process lots of the same families and batches of same specifications s1 consecutively, we can reduce the number of setups. To identify the number of initial setups, let J0f and J0s1 denote the sets of units that are processing lots of family f and batches of specification s1 at time zero, respectively. The number of setups required in stage 1 is given by

NS1 )

∑ ∑ ∑ f∈F f ′∈F l′∈LF f ′*f

(33)

This completes the development of constraints for the step 2 formulation. We now decide an the objective function for step 2. Scheduling Objective. One important goal of a plant producing customer orders with due dates is to deliver orders on time. In this problem, orders may be filled by multiple batches, so for an order to meet its due date, all of its constituent batches must finish production before the due date. If any batch of order o finishes after its due date, the order is considered as tardy with tardiness Tdo given by

Tdo g Teb - do

an order o is the maximum difference between its due date and the end of processing of its batches. In other words,



f′

l∈LFf∩FPl′

Xll′ +

∑ ∑ ∑ ∑ ZFlj f∈F f ′∈F j∈J l∈LF ∩LJ f′

0f

f ′*f

(38)

j

while that in stage 2 is given by

NS2 )

∑ ∑ ∑





g∈G s1∈S1g s1′∈S1g b′∈BS1s1′ b∈BS1s1∩FPb′ s1′*s1

∑ ∑ ∑ ∑

Xbb′ +



g∈G s1∈S1g s1′∈S1g j∈J0s1 b∈BJj∩BS1s1′ s1′*s1

ZFbj (39)

The second terms in eqs 38 and 39 count the number of initial setups, i.e., when units start processing lots/ batches from the new production schedule. Using eqs 38 and 39, a new objective function to minimize the number of setups together with tardiness is

Minimize (wt

∑ poTdo) + (w1NS1) + (w2NS2)

(40)

o∈O

where w1 and w2 are user-defined weights to minimize setups in stages 1 and 2, respectively. With this, the scheduling problem can be stated as minimization of any of the objectives (eqs 35, 37, or 40) subject to eqs 8-11, 22, and 33 and one unit assignment constraint set from

498

Ind. Eng. Chem. Res., Vol. 42, No. 3, 2003

Table 2. Material Type (k), Specifications (S1 and S2), Order Required Quantity (RQo), Due Date (do), Maximum Batch Size, and Its Processing Time for O Orders

o

k

s1

s2

order quantity OQo

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15

1 1 1 2 2 3 3 3 4 4 2 3 1 4 1

a1 c1 b1 c1 e1 f1 a1 e1 c1 c1 d1 a1 b1 f1 d1

a2 b2 a2 b2 c2 d2 b2 a2 e2 c2 a2 b2 c2 d2 e2

60 55 30 95 50 110 40 25 45 33 50 40 60 30 30

a

do (h) initial inventory 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10

RQo

sets 1 and 2

set 3a

50 45 20 85 40 100 30 15 35 23 40 30 50 20 20

80 100 50 130 120 200 220 230 250 270 140 250 90 100 110

80 100 80 110 90 100 70 75 90 100 90 90 100 85 100

set 3b

max batch sizea

processing time for max batch size (h)

80 100 50 100 80 70 100 75 90 80 90 100 90 85 100

10 10 10 10 10 10 10 10 10 5 10 10 10 10 10

3.0 4.0 5.0 3.0 3.0 2.0 3.0 4.0 3.0 3.0 2.0 3.0 3.0 4.0 3.0

The minimum batch size for all orders is 1.

Table 3. Lot Processing Times (h) for Stage 1 for Different Lot Sizes and Units

Table 6. Properties (P1 and P2), Lot Sizes, and Shelf Lives for Material Typesa

lot sizes

shelf life (h)

unit

1

2

3

1 2

2.0 2.0

3.0 3.0

5.0 4.0

property

Table 4. Setup Times (h) between Lots of Different Families on Units of Stage 1 f′ 1

2

k

P1

P2

family f

1

2

3

sets 1 and 2

sets 3a and 3b

sensitive

1 2 3 4

p1 p2 p1 p1

p3 p3 p4 p3

1 2 3 1

10b 10 10

20 20 20

30 30 30

100 100 100 100

50 50 50 50

no no no yes

a Dashes indicate that the material type cannot be processed in this lot size. b These numbers indicate the actual quantities in lots.

3

f

unit 1

unit 2

unit 1

unit 2

unit 1

unit 2

1 2 3

0.0 1.0 2.0

0.0 2.0 2.0

1.0 0.0 2.0

1.0 0.0 1.0

1.0 1.0 0.0

2.0 2.0 0.0

Table 5. Setup Times (h) between Batches with Different Specifications S1a s1′ s1

al

b1

c1

d1

e1

f1

a1 b1 c1 d1 e1 f1

0.0 5.0 -

5.0 0.0 -

0.0 7.0 7.0 7.0

7.0 0.0 7.0 7.0

7.0 7.0 0.0 7.0

7.0 7.0 7.0 0.0

-

lot size

a

Dashes indicate that batches of these specifications cannot be processed on the same unit.

Table 1. Each set from Table 1 will result in a unique model. We call these models M1, M2, M3, ..., M12. To identify the best model, we compare the performance of M1-M12 using problems of varying sizes, having different objective functions and problem data. We implemented all formulations in GAMS 2.5 v19.622 and used CPLEX 7.0 on a SUN enterprise 250 server (SUN OS 5.7, single Ultra SPARC II 400 MHz processor, and 2 GB RAM). Model Evaluation For evaluating models M1-M12, we consider a twostage plant with data as in Tables 2-7. The data are derived and are not exactly the same as those from a real plant for reasons of confidentiality. Figure 1 represents the schematic diagram of a two-stage coupled process. The plant has two units in stage 1 and 20 units

Table 7. Allowable Material Types, Specifications S1, Release Times URTj, and Family/Specification (f/S1) of Lots/Batches Processed at Time Zero for Units

j

k

s1

URTj (h)

f/s1 of lot/batch processed at time zero

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22

1, 2, 3, 4 1, 3 1, 2, 3, 4 1, 4 1, 2, 3, 4 1, 4 1, 4 1, 4 1, 2, 3, 4 1, 2, 3, 4 1, 4 1, 2, 3, 4 1, 2, 3, 4 1, 4 1, 2, 3, 4 1,4 1, 2, 3, 4 1,4 1, 2, 3, 4 1,4 1, 2, 3, 4 1, 2, 3, 4

a a a1, b1 a1, b1 a1, b1 al, b1 c1, d1, e1, f1 c1, d1, e1, f1 c1, d1, e1, f1 c1, d1, e1, f1 c1, d1, e1, f1 c1, d1, e1, f1 c1, d1, e1, f1 c1, d1, e1, f1 c1, d1, e1, f1 c1, d1, e1, f1 c1, d1, e1, f1 c1, d1, e1, f1 c1, d1, e1, f1 c1, d1, e1, f1 c1, d1, e1, f1 c1, d1, e1, f1

2.0 2.0 2.0 2.0 2.0 2.0 2.0 2.0 2.0 2.0 0.0 2.0 20 0.0 2.0 0.0 2.0 2.0 2.0 2.0 2.0 2.0

1 2 a1 a1 a1 b1 d1 d1 c1 c1 idleb f1 f1 idle c1 idle d1 c1 c1 f1 c1 e1

a Specifications s1 are applicable to units of stage 2 only. b Idle units are ready to process lots/batches from a new schedule.

in stage 2. The units are labeled as 1 and 2 in stage 1 and 3-22 in stage 2. The plant produces four material types labeled 1-4, six s1 specifications labeled a1-f1, and five s2 specifications labeled a2-e2. Table 2 presents the data on 15 orders (labeled 1-15), due dates, and the maximum sizes and processing times of batches for each order. Table 3 presents the processing times for

Ind. Eng. Chem. Res., Vol. 42, No. 3, 2003 499

lots, while Tables 4 and 5 present the changeover times of lots and batches, respectively. Tables 6 and 7 present the data on material types and units, respectively. Each material type has two properties P1 and P2 with a common set of values (p1-p4). As shown in Table 6, we form three families (1-3) of lots with different sets of property values. We create three instances of the above plant data by varying the number of orders, scheduling objectives, due dates, and shelf lives as follows. Set 1. This has three problems (labeled 1-5, 1-10, and 1-15) with 5, 10, and 15 orders, respectively. Minimizing tardiness (eq 35) is the scheduling objective in all three problems. Set 2. This has three problems (labeled 2-5, 2-10, and 2-15) with 5, 10, and 15 orders, respectively. We minimize tardiness and setups (eq 40) in these problems using wt ) 10 000, w1 ) 0, and w2 ) 60. We use w1 ) 0 because the numbers of batches are almost double the numbers of lots, so setups in stage 2 are expected to be much more than those in stage 1. Furthermore, problems with both w1 * 0 and w2 * 0 could not be solved even after 10 h of solution times. Observe that we give more importance to minimizing tardiness. Sets 3a and 3b. In sets 3a and 3b, we reduce the due dates and shelf lives to constrain the problem further. Thus, we use 50 h as the shelf life in problems 2-10 and 2-15 with different due dates as shown in Table 2. For all problems, we assume that tardiness weight po in eqs 35 and 40 is unity. Furthermore, we assume that no material type requires preprocessing before stage 1, i.e., MRTk ) 0, ∀ k, so eq 32 disappears for all of the problems and models. We first solve step 1 for 5, 10, and 15 orders to obtain the optimal lots and batches as shown in Table 8. Then, we use this information to solve problems in sets 1-3. Then, we analyze the performance of models M1-M12 on test problems described above to select the best model. Table 9 lists the numbers of variables (continuous and binary), nonzeros, and constraints for 5, 10, and 15 orders. Because the number of variables depends on the number of orders, all models have the same numbers of binary and continuous variables. Nevertheless, observe that all models have different numbers of nonzeros and constraints. M1, M2, M5, and M7 have the least nonzeros and constraints, while M10 and M12 have the most. In fact, the latter have 60-65% more constraints and 30-35% more nonzeros than the former. Because of this difference in the numbers of constraints and nonzeros, all models perform differently for the same problem. An important factor that affects a model’s performance is the value of M used in eqs 23, 25, 28, and 29. We notice that the solution times for the same problem and model vary by a few hours for two different values of M. In addition to this, the solution times do not follow any definite trend with the value of M. Thus, even though M can be any large positive value, it must be selected judiciously and it is impossible to fix an optimal value of M a priori. To account for this erratic effect of M, it is necessary to judge a model based on its average performance over several values of M and not just one. Therefore, we solve all test problems using M ) 300, 500, 600, 700, 800, and 1000 to get an average performance of a model.

Table 8. Optimal Lots and Batches for Problems in Sets 1-3

k

lots

1 34-36 37 2 38-40 3 41-45 4 46 47

order order lot quantity quantity size order required produced 30 10 30 20 30 10

1 50-53

30

2 54-56 57 and 58 59-65 3 66

30 20 20 10

4 67 and 68

30

66-71 72

30 10

73-77 2 78

30 20

3 79-87

20

88 and 89 4 90

30 20

1

1 2 4 6 9

1-5 and 2-5 50 50 45 50 85 90 100 100 35 40

1-10, 2-10, 3a-10, and 3b-10 1 50 50 2 45 50 3 20 20 4 85 90 5 40 40 6 100 100 7 30 30 8 15 20 9 10

35 23

35 25

1-15, 2-15, 3a-15, and 3b-15 1 50 0 2 45 50 3 20 20 13 50 50 15 20 20 4 85 90 5 40 40 11 40 40 6 100 100 7 30 30 8 15 20 12 30 30 9 35 35 44 5 10 23 25 14 20 20

batches

batch size

1-5 6-10 11-19 20-29 30-33

10 10 10 10 10

1-5 6-10 11 and 12 13-21 22-25 26-35 36-38 39 and 40 41-43 44 45-59

10 10 10 10 10 10 10 10 10 5 5

1-5 6-10 11 and 12 50-54 55 and 56 13-21 22-25 57-60 26-35 36-38 39 and 40 61-63 41-43

10 10 10 10 10 10 10 10 10 10 10 10 10

45-49 64 and 65

5 10

To compare the performance of models for a given problem, we define an average CPU time, a relative CPU time, and a model relative CPU time as follows.

average CPU time ) average with respect to M of CPU times relative CPU time ) CPU time of a model for a given M least CPU time among all models for the same M model relative CPU time ) average with respect to M of relative CPU times We rank all models using the above criteria. We give equal rank to models whose performances are nearly the same. To compare model ranks for different problems, we find the model rank out of 100 for each problem as follows.

model rank out of 100 )

100 × model rank maximum rank among all models

Now, we begin our evaluation of models with set 1. Set 1. Recall that the problems in set 1 (1-5, 1-10, and 1-12) minimize tardiness alone. Table 10 presents the CPU times. As expected, problem 1-5 is the easiest to solve and problem 1-15 is the toughest. In fact, most models fail to reach the optimal solution for problem

500

Ind. Eng. Chem. Res., Vol. 42, No. 3, 2003

Table 9. Model Statistics (Variables, Nonzeros, and Constraints) for Various Models and Problems statistics variables orders continuous binary 5

471

1319

10

679

2363

15

869

3638

others

M1

M2

M3

M4

M5

M6

M7

M8

M9

M10

M11

M12

nonzeros constraints nonzeros constraints nonzeros constraints

25 519 6 168 48 816 11 849 73 023 17 743

25 519 6 168 48 816 11 849 73 023 17 743

32 409 9 613 61 522 18 202 90 725 26 594

32 409 9 613 61 522 18 202 90 725 26 594

24 972 6 168 47 201 11 849 70 608 17 743

32 399 10 036 61 506 18 989 90 698 27 815

24 824 6 168 47 855 11 849 71 496 17 743

32 129 10 036 60 514 18 989 89 199 27 815

25 450 6 384 47 363 11 853 70 646 17 754

32 729 10 036 62 322 19 805 91 876 28 993

24 736 6 236 48 333 12 507 72 315 18 642

32 189 10 096 60 338 18 813 88 878 27 494

M10

M11

M12

Table 10. Computation Timesa for Problems 1-5, 1-10, and 1-15 M 300 500 600 700 800 1000

performance measure

500 600 700 800 1000

500 600 700 800 1000 average CPU time (s) model relative CPU time model rank a

M3

M4

M5

M6

M7

M8

M9

81 107 100 2.00 136 2.62 76 1.00 124 1.75 91 1.34 101 1.63 4

146 1.92 120 2.40 178 3.42 180 2.37 170 2.39 167 2.46 160 2.49 10

76 1.00 50 1.00 52 1.00 129 1.70 116 1.63 83 1.22 84 1.26 1

84 1.11 87 1.74 127 2.44 119 1.57 134 1.89 87 1.28 106 1.67 5

96 1.26 97 1.94 80 1.54 80 1.05 71 1.00 85 1.25 85 1.34 2

107 1.41 196 3.92 138 2.65 131 1.72 181 2.55 128 1.88 147 2.36 8

76 1.00 106 2.12 94 1.81 112 1.47 73 1.03 68 1.00 88 1.40 3

145 1.91 131 2.62 148 2.85 115 1.51 115 1.62 94 1.38 125 1.98 7

CPU time (s) relative CPU time CPU time (s) relative CPU time CPU time (s) relative CPU time CPU time (s) relative CPU time CPU time (s) relative CPU time CPU time (s) relative CPU time

103 1.36 102 2.04 106 2.04 80 1.05 134 1.89 98 1.44 104 1.64 4

90 1.18 97 1.94 154 2.96 93 1.22 93 1.31 106 1.56 106 1.70 6

CPU time (s) relative CPU time CPU time (s) relative CPU time CPU time (s) relative CPU time CPU time (s) relative CPU time CPUtime (s) relative CPU time CPU time (s) relative CPU time

894 1.99 835 2.30 972 1.55 2000 3.69 674 1.67 794 1.08 1028 2.05 4

557 1.24 363 1.00 836 133 1315 2.43 404 1.00 734 1.00 702 1.33 1

1-10 1114 1638 2.48 3.65 1677 1365 4.62 3.76 2000 839 3.19 1.34 1061 766 1.96 1.41 1634 659 4.04 1.63 1775 1199 2.42 1.63 1544 1078 3.12 2.24 9 5

1338 2.98 970 2.67 2000 3.19 1088 2.01 920 2.28 881 1.20 1200 2.39 6

1276 2.84 1289 3.55 1341 2.14 1688 3.11 733 4.29 1815 2.47 1524 3.07 8

449 1.00 506 1.39 1689 2.69 2000 3.69 722 1.79 1320 1.80 1114 2.06 4

979 2.18 2000 5.51 1078 1.72 542 1.00 958 2.37 765 1.04 1054 2.30 5

675 1.50 745 2.05 762 1.22 655 1.21 858 2.12 940 1.28 773 1.56 3

1748 3.89 979 2.70 1693 2.70 776 1.43 743 1.84 1567 2.13 1251 2.45 7

1592 3.55 854 2.35 1500 2.39 2000 3.69 2000 4.95 1187 1.62 1522 3.09 8

721 1.61 571 1.57 627 1.00 648 1.20 715 1.77 873 1.19 693 1.39 2

CPU time (s) relative CPU time CPU time (s) relative CPU time CPU time (s) relative CPU time CPU time (s) relative CPU time CPU time (s) relative CPU time CPU time (s) relative CPU time

3975 1.32 3665 1.43 5000 1.45 3505 1.00 5000 1.21 5000 |1.26 4358 1.28 2

1-15: 5000 1.66 5000 1.95 5000 1 .45 5000 1.43 5000 1.21 5000 1.26 5000 1.49 7

Time Limit 5000 s 5000 5000 5000 1.66 1.66 1.66 5000 4648 5000 1.95 1.81 1.95 5000 3917 5000 1.45 1.14 1.45 5000 4729 5000 1.43 1.35 1.43 5000 4948 5000 1.21 1.19 1.21 5000 5000 5000 1.26 1.26 1.26 5000 4707 5000 1.49 1.40 1.49 7 5 7

5000 1.66 5000 1.95 5000 1.45 5000 1.43 5000 l.221 5000 1.26 5000 1.49 7

37981 1.26 4523 1.76 5000 1.45 3975 1.13 4147 1.00 5000 1.26 14407 1.31 3

4351 1.44 4011 1.56 5000 145 5000 1.43 5000 1.21 3976 1.00 14556 1.35 4

5000 1.66 5000 1.95 5000 1.45 4555 1.30 5000 1.21 5000 1.26 4926 1.47 6

50001 1.66 5000 1.95 5000 1.45 5000 1.43 5000 1.21 5000 1.26 5000 1.49 7

5000 1.66 5000 1.95 5000 1.45 5000 1.43 5000 1.21 5000 1.26 5000 1.49 7

3019 1.00 2569 1.00 3446 1.00 5000 1.43 5000 1.21 5000 1.26 4006 1.15 1

average CPU time (s) model relative CPU time model rank 300

M2

1-5 156 116 2.05 1.53 156 107 3.12 2.14 142 120 2.73 2.31 151 84 1.99 1.11 146 113 2.06 1.59 169 111 2.49 1.63 153 109 2.41 1.72 9 6

average CPU time (s) model relative CPU time model rank 300

M1

A CPU time in bold indicates that the model failed to give an optimal solution in this time.

1-15 even in 3 h. Hence, we terminate the solver after 5000 s for problem 1-15. In Table 14, we present the model ranks out of 100 and their averages for problems 1-5, 1-10, and 1-15. Observe that M3-M6 and M10 have average ranks of 62-97. M7 performs the best with an average rank of 32. The next best models are M1 and M12. Although M11 does not perform well for 1-10 and 1-15, it performs well for 1-5. Similarly, M2 does not perform well for 1-15, but it performs the best for 1-10.

M9 performs well for 1-5 and 1-10 but does not perform well for 1-15. M8 has an average rank of 54. Set 2. Recall that the problems in set 2 minimize tardiness and setups together. Table 11 presents the CPU times for the problems. Like set 1, M3-M6, M8, and M10 fail to perform well for all three problems and have average ranks of 62-92 out of 100. In this case, M2 comes first, with an average rank of 29. M9 and M11 are the next best, with average ranks of 33 and 35,

Ind. Eng. Chem. Res., Vol. 42, No. 3, 2003 501 Table 11. Computation Timesa for Problems 2-5, 2-10, and 2-15 M

performance measure

M1

M2

M3

M4

M5

M6

M7

M8

M9

M10

M11

M12

33 1.10 37 1.61 42 10.50 45 1.29 34 6.80 29 1.00 37 3.72 3

30 1.00 42 1.83 32 8.00 40 1.14 49 9.80 37 1.28 38 3.84 3

49 1.63 53 2.30 55 13.75 58 1.66 66 13.20 57 1.97 56 5.75 5

52 1.73 43 1.87 4 1.00 40 1.14 5 1.00 45 1.55 32 1.38 1

53 1.77 44 1.91 48 12.00 48 1.37 37 7.40 45 1.55 46 4.33 4

38 1.27 42 1.83 38 9.50 46 1.31 38 7.60 42 1.45 41 3.83 3

72 2.40 64 2.78 50 12.50 62 1.77 69 13.80 55 1.90 62 5.86 5

34 1.13 23 1.00 33 8.25 36 1.03 37 7.40 39 1.34 34 3.36 2

45 1.50 72 3.13 44 11.00 54 1.54 37 7.40 59 2.03 52 4.43 4

2-5 300 500 600 700 800 1000

CPU time (s) relative CPU time CPU time (s) relative CPU time CPU time (s) relative CPU time CPU time (s) relative CPU time CPU time (s) relative CPU time CPU time (s) relative CPU time

43 1.43 45 1.96 27 6.75 35 1.00 31 6.20 40 1.38 37 3.12 2

37 1.23 35 1.52 31 7.75 35 1.00 33 6.60 30 1.03 34 3.19 2

60 2.00 61 2.65 74 18.50 58 1.66 57 11.40 55 1.90 61 6.35 6

CPU time (s) relative CPU time CPU time (s) relative CPU time CPU time (s) relative CPU time CPU time (s) relative CPU time CPU time (s) relative CPU time CPU time (s) relative CPU time

205 1.53 156 1.58 209 2.25 174 1.34 120 1.22 118 1.23 164 1.52 2

166 1.24 99 1.00 188 2.02 132 1.02 98 1.00 134 1.40 136 1.28 1

2-10 197 187 1.47 1.40 241 205 2.43 2.07 176 221 1.89 2.38 231 145 1.78 1.12 265 254 2.70 2.59 160 201 1.67 2.09 212 202 1.99 1.94 3 3

257 1.92 133 1.34 131 1.41 201 1.55 156 1.59 96 1.00 162 1.47 2

140 1.04 184 1.86 262 2.82 289 2.22 294 3.00 206 2.15 229 2.18 4

156 1.16 140 1.41 93 1.00 130 1.00 111 1.13 225 2.34 143 1.34 2

186 1.39 199 2.01 164 1.76 228 1.75 234 2.39 189 1.97 200 1.88 3

152 1.13 104 1.05 94 1.01 157 1.21 129 1.32 140 1.46 129 1.20 1

189 1.41 185 1.87 185 1.99 251 1.93 170 1.73 296 3.08 213 2.00 3

134 1.00 154 1.56 139 1.49 135 1.04 176 1.80 115 1.20 142 1.35 2

170 1.27 160 1.62 213 2.29 138 1.06 171 1.74 128 1.33 163 1.55 2

CPU time (s) relative CPU time CPU time (s) relative CPU time CPU time (s) relative CPU time CPU time (s) relative CPU time CPU time (s) relative CPU time CPU time (s) relative CPU time

405 1.65 764 13.07 395 1.51 697 2.61 600 3.28 669 3.20 588 2.551 4

389 1.59 471 1.89 416 1.59 267 1.00 453 2.48 307 1.47 3841 1.67 2

2-15 771 504 3.15 2.06 525 655 2.11 2.63 1500 738 5.73 2.82 1004 1500 3.76 5.62 717 541 3.92 2.96 905 585 4.33 2.80 904 754 3.83 3.15 7 6

545 2.22 673 2.70 405 1.55 1077 4.03 1500 8.20 405 1.94 768 3.44 6

486 1.98 744 2.99 277 1.06 704 2.64 703 3.84 821 3.93 623 2.74 5

644 2.63 705 2.83 506 1.93 489 1.83 591 3.23 491 2.35 571 2.47 4

382 1.56 506 2.03 503 1.92 819 3.07 520 2.84 326 1.56 509 2.16 3

285 1.16 340 1.37 1262 1.00 275 1.03 3781 2.07 266 1.27 301 1.321 2

652 2.66 653 2.62 595 2.27 348 1.30 408 2.23 305 1.46 494 2.09 3

245 1.00 249 1.00 395 1.51 519 1.94 183 1.00 209 1.00 300 1.24 1

538 2.20 322 1.29 435 1.66 375 1.40 527 2.88 676 3.23 479 2.11 3

average CPU time (s) model relative CPU time model rank 300 500 600 700 800 1000 average CPU time(s) model relative CPU time model rank 300 500 600 700 800 1000 average CPU time (s) model relative CPU time model rank a

A CPU time in bold indicates that the model failed to give an optimal solution in this time.

respectively. Note that M11 performs the best for 2-15 and M9 performs the best for 2-10. Although M7 performs the best for 2-15, its performance on 2-10 and 2-15 is average. Last, M1 and M12 have average ranks of 47 and 53, respectively. If we consider the overall performance of models for sets 1 and 2, we can easily eliminate M3-M6, M8, and M10 because their average ranks are between 60 and 95. However, none of M1, M2, M7, M9, M11, and M12 stands out as the best model. Hence, to choose the best model among them, we solve problems of set 3 with these models only. Recall that problems in set 3 are designed to be more difficult. Sets 3a and 3b. Problems in sets 3a and 3b use the same objective as that in set 2, but due dates and shelf lives are different (see Tables 2 and 6). Tables 12 and 13 present the computation times for problems in sets 3a and 3b, respectively. Table 14 presents the average model ranks out of 100 for sets 3a and 3b. For set 3a, M2, M7, M9, and M12 have average ranks of 70-100.

M11 performs the best and solves example 3a-10 for all values of M in contrast to other models, which cannot solve 3a-10 for even one value of M. Also, M11 takes the least CPU time (287 s) to solve 3a-15. M1 is the next best model with an average rank of 42. For set 3b, M1, M2, M7, and M9 are the worst, with average ranks of 70-80. M11 again performs the best, and M12 is the next best model. On the basis of the performances of models for problems in sets 3a and 3b, we select M11 as the best model and M1 and M12 as the next best and discard the rest. Thus, considering the overall performance of models in all problems of sets 1, 2, 3a, and 3b, we conclude that M11 is the best model for solving the present problem, while M1 and M12 are the next best. Remarks During this work, we made several specific as well as general observations that may apply to even other batch scheduling problems.

502

Ind. Eng. Chem. Res., Vol. 42, No. 3, 2003

Table 12. Computation Timesa for Problems 3a-10 and 3a-15 M 300

performance measure CPU time (s) relative CPU time CPU time (s) relative CPU time CPU time (s) relative CPU time CPU time (s) relative CPU time CPU time (s) relative CPU time CPU time (s) relative CPU time

500 600 700 800 1000 average CPU time (s) model relative CPU time model rank 300

CPU time (s) relative CPU time CPU time (s) relative CPU time CPU time (s) relative CPU time CPU time (s) relative CPU time CPU time (s) relative CPU time CPU time (s) relative CPU time

500 600 700 800 1000 average CPU time (s) model relative CPU time model rank

M1

M2

M7

M9

M11

M12

3a-10 255 1.34 223 1.40 178 1.48 1000 10.53 189 1.89 142 1.33 331 2.99 2

228 1.19 291 1.83 256 2.13 164 1.73 100 1.00 1000 9.35 340 2.87 2

1000 5.24 675 4.25 120 1.00 95 1.00 893 8.93 289 2.70 512 3.85 4

916 4.80 198 1.25 246 2.05 1000 10.53 130 1.30 313 2.93 467 3.81 4

191 1.00 258 1.62 210 1.75 527 5.55 312 3.12 107 1.00 268 2.34 1

254 1.33 159 1.00 339 2.83 272 2.86 205 2.05 1000 9.35 372 3.24 3

3a-15 759 1.00 798 1.04 1500 1.65 971 1.10 1500 2.45 990 3.45 1086 1.78 1

1500 1.98 1500 1.95 1500 1.65 1500 1.70 1500 2.45 1500 5.23 1500 2.49 3

1500 1.98 1350 1.75 1500 1.65 1500 1.70 1500 2.45 1500 5.23 1475 2.46 3

862 1.14 1500 1.95 909 1.00 1113 1.26 611 1.00 1500 5.23 1083 1.93 1

1500 1.98 867 1.12 1500 1.65 1500 1.70 1500 2.45 287 1.00 1192 1.65 1

1500 1.98 771 1.00 1500 1.65 881 1.00 1500 2.45 801 2.79 1159 1.81 2

M2

M7

M9

M11

M12

3b-10 167 1.84 231 1.49 174 1.12 1000 9.62 111 1.00 1000 8.77 447 3.97 4

91 1.00 155 1.00 221 1.43 178 1.71 112 1.01 829 7.27 264 2.24 2

399 4.38 220 1.42 155 1.00 399 3.84 177 1.59 206 1.81 259 2.34 2

235 2.58 240 1.55 1000 6.45 544 5.23 1000 9.01 278 2.44 550 4.54 5

131 1.44 224 1.45 170 1.10 104 1.00 161 1.45 114 1.00 151 1.24 1

218 2.40 294 1.90 508 3.28 340 3.27 133 1.20 303 2.66 299 2.45 3

3b-15 1500 1.00 1500 3.01 1500 1.13 725 1.00 1500 1.00 1500 4.05 1371 1.87 3

1500 1.00 1500 3.01 1500 1.13 1500 2.07 1500 1.00 1500 4.05 1500 2.04 4

1500 1.00 1500 3.01 1500 1.13 1500 2.07 1500 1.00 1500 4.05 1500 2.04 4

1500 1.00 1500 3.01 1500 1.13 1500 2.07 1500 1.00 370 1.00 1312 1.54 2

1500 1.00 498 1.00 1324 1.00 1500 2.07 1500 1.00 1019 2.75 1224 1.47 1

1500 1.00 744 1.49 1500 1.13 1060 1.46 1500 1.00 979 2.65 1214 1.46 1

Table 13. Computation Timesa for Problems 3b-10 and 3b-15 M 300 500 600 700 800 1000

performance measure CPU time (s) relative CPU time CPU time (s) relative CPU time CPU time (s) relative CPU time CPU time (s) relative CPU time CPU time (s) relative CPU time CPU time (s) relative CPU time

average CPU time (s) model relative CPU time model rank 300 500 600 700 800 1000 average CPU time (s) model relative CPU time model rank a

CPU time (s) relative CPU time CPU time (s) relative CPU time CPU time (s) relative CPU time CPU time (s) relative CPU time CPU time (s) relative CPU time CPU time (s) relative CPU time

M1

A CPU time in bold indicates that the model failed to give an optimal solution in this time.

The problems in set 2, in which we minimize tardiness and setups (eq 40) together, are much easier to solve than those in set 1, in which we minimize tardiness (eq

35) only. The average CPU times for problems 2-5, 2-10, and 2-15 are 44, 175, and 556 s, respectively, while those for 1-5, 1-10, and 1-15 are 114, 1123, and 4747 s,

Ind. Eng. Chem. Res., Vol. 42, No. 3, 2003 503 Table 14. Model Ranks out of 100 for Various Models and Problems in Sets 1-3a problem 1-5 1-10 1-15 average normalized model rank for set 1 2-5 2-10 2-15 average normalized model rank for set 2 average normalized model rank for sets 1 and 2 3a-10 3a-15 average normalized model rank for set 3a 3b-10 3b-15

performance measure M1 M2 M3 M4 M5 M6 M7 M8 M9 M10 M11 M12 model rankb normalized model rank model rankb normalized model rank model rankc normalized model rank model rankc normalized model rank model rankc normalized model rank model rankc normalized model rank model rankd normalized model rank model rankd normalized model rank model ranke normalized model rank model ranke normalized model rank

average normalized model rank for set 3b average normalized model rank for sets 3a and 3b average normalized model rank for sets 1-3

4 40 4 44 2 29 38 2 33 2 50 4 57 47 42 2 50 1 33 42 4 80 3 75 78 60 51

6 60 1 11 7 100 57 2 33 1 25 2 29 29 43 2 50 3 100 75 2 40 4 100 70 73 58

9 90 9 100 7 100 97 6 100 3 75 7 100 92 94 -

6 60 5 56 5 71 62 3 50 3 75 6 86 70 66 -

4 40 6 67 7 100 69 3 50 2 50 6 86 62 65 -

10 100 8 89 7 100 96 5 83 4 100 5 71 85 91 -

1 10 4 44 3 43 32 1 17 2 50 4 57 41 37 4 100 3 100 100 2 40 4 100 70 85 61

5 50 5 56 4 57 54 4 67 3 25 3 43 62 58 -

a A dash indicates that the model was eliminated from our study based on the performance in sets 1 and 2. respectively.

respectively. Moreover, most models fail to give the optimal solution for 1-15 in even 5000 s. Furthermore, the schedules of problems in set 2 show 50% fewer setups than those of problems in set 1. The setups for 1-15 are 40-50, while those for 2-15 are 1520. When we minimize setups and tardiness together, we reduce the time spent on unit setups or, in other words, maximize the utilization of units. This is evident when we compare the makespans of problems 1-15 and 2-15. The schedule of 1-15 has a makespan of roughly 140 h, while that for 2-15 has a makespan of 100 h (approximately 30% reduction) only. Moreover, both schedules have zero tardiness. This means that there are multiple solutions with zero tardiness, and the objective of minimizing tardiness with setups chooses a better solution. Note that minimizing setups may not always minimize the makespan. Considering the above two observations, we can clearly say that minimizing setups together with tardiness is superior to (in terms of both schedule quality and solution times) minimizing tardiness alone for the current scheduling problem. The former seems to result in schedules with minimum tardiness, setups, and lower makespan. However, note that this observation applies to this specific problem only and should not be generalized to any other problem. Furthermore, our experience with a local batch plant supports our assertion in that both tardiness and setups are important to the plant management and they do prefer minimizing both together. Thus, for this specific problem, the objective of tardiness plus setups is better than that of tardiness alone. The CPU times for problems in sets 3a and 3b are almost double those of problems in set 2 (2-10 and 2-15). This is due to the reduced shelf lives and tighter due dates for the former as compared to the latter. The shelf life for set 3 is half that of set 2 (50 vs 100), and the difference between the earliest and latest due date for set 3 is about 20% that of set 2 (40-50 h vs 220 h).

2 20 3 33 6 86 46 3 50 1 75 2 29 35 40 4 100 1 33 67 5 100 2 50 75 71 56 b-e

8 80 7 78 7 100 86 5 83 3 50 3 43 67 76 -

3 30 8 89 7 100 73 2 33 2 50 1 14 33 53 1 25 1 33 29 1 20 1 25 23 26 39

7 70 2 22 1 14 36 4 67 2 50 3 43 53 44 3 75 2 67 71 3 60 l 25 43 57 51

See Tables 10-13,

Our results show a dramatic impact of the value of M on CPU times for all problems. This impact is more pronounced for problems with more orders. For example, consider problem 3b-15 as solved by M9 (see Table 13). We get an optimal solution for M ) 1000, but for all other values of M (300, 500, 600, 700, and 800), we did not get an optimal solution even after 1500 s. It is clear that the value of M is critical in the performance of a model. However, the existing literature seems to have overlooked this because rarely is even the value of M in models with big-M constraints cited in existing papers. Furthermore, we find that models are compared using a single, unreported value of M. Of course, no guidelines are available because the performance varies erratically with M. In light of this observation, logic demands that models with big-M constraints must be compared based on several values of M and for several problems in order to make a sound judgement on their performances. In contrast to the batching formulation of Mendez et al.,12 which applies to a single-stage process only, our formulation links two stages with different sizing decisions. Furthermore, unlike Mendez et al.,12 we do not assign due dates to batches and do not assume that the orders must be completed before their due dates. We just ensure that the lots and batches meet the orders and no intermediate material is left unprocessed. In this sense, our batching formulation is more general than that of Mendez et al.12 Examples We first solve four examples to explain step 1 of our two-step algorithm, and then we present a solution of problem 3a-15 using M11. We label the four examples for step 1 as 4-1-4-4. Each example has five orders of one material type. Table 15 presents the solutions of step 1 for examples 4-1-4-4. Example 4-1. In this example, we first illustrate that the order quantities and lot sizes are such that we have

504

Ind. Eng. Chem. Res., Vol. 42, No. 3, 2003

Table 15. Division of Orders into Lots and Batches for Examples 4-1-4-4 lot size

no. of logs

order quantity required

order quantity produced

1 2 3 4 5

20.8 30.4 52 23.2 17.1 143.5

22.5 30.5 52.0 25.0 20.0 150.0

1 2 3 4 5

10.2 30.1 70.3 19.2 10.2 140.0

14.0 30.5 70.5 20.0 15.0 150.0

1 2 3 4 5

30 50 50 20 10 160.0

30 70 50 20 10 180.0

1 2 3 4 5

30 40 40 20 10 140.0

30 40 40 20 10 140.0

orders

extra quantity produced

max batch size

1.7 0.1 0.0 1.8 2.9 6.5

10 10 10 5 5

3.8 0.4 0.2 0.8 4.8 10.0

10 10 10 5 5

0.0 20.0 0.0 0.0 0.0 20.0

10 10 10 5 5

0.0 0.0 0.0 0.0 0.0 0.0

10 10 10 5 5

min batch size

4-1 10 30

0a 5

total

0.5

2 (10) + 1 (2.5)b 3 (10) + 1 (0.5) 5 (10) + 1 (2) 5 (5) 4 (5) 22b

0.5

1 (10) + 1 (4) 3 (10) + 1 (0.5) 7 (10) + 1 (0.5) 4 (5) 3 (5) 21

4-2 20 30

0 5

total

no. (size) of batches

4-3 30

6

total

1

3 (10) 7 (10) 5 (10) 4 (5) 2 (5) 21

4-4 10 30

total a

2 4

1

3 (10) 4 (10) 4 (10) 17

This indicates that there are 0 lots of size 10. b This indicates the total number of batches.

to produce extra material in stage 1. Then, we show how this extra material is distributed among the orders. Observe that the total quantity of orders is 143.5 units. With lot sizes of 10 and 30, it is not possible to produce this exactly. Hence, the lots that produce a minimum amount of extra quantity are five lots of size 30. Now, the extra quantity of 6.5 units must be distributed among five orders. This is because the intermediate inventory has a limited shelf life and we should not have finite intermediate inventory at the end of scheduling horizon. The distribution of the extra material is not done equally as seen in Table 15. There are several ways of distributing this material, and the model chooses one. For instance, to produce 30.4 units for order 2, we need three batches of maximum size 10 and one batch of minimum size 0.5. Thus, it is necessary to add at least 0.1 units to order 2. Now, the remaining extra quantity of 6.4 units is distributed among the four orders to form most batches of maximum size and also to minimize the total number of batches. Example 4-2. In this example we illustrate that we have to produce extra material to meet the requirement of minimum batch size. Here the required quantity is 140 units, which can be made by four lots of 30 and one lot of 20 without producing anything extra. However, orders 1-3 and 5, if divided into their maximum batch sizes, would need extra quantities of 0.2, 0.1, 0.3, and 0.2, respectively. All of these are less than the minimum batch size. Note that to maximize the capacity utilization, it is desirable to process as many full batches as possible. Hence, in this case, we are forced to produce extra quantity to ensure the minimum batch size. Again, the minimum number of lots, which produce a minimum amount of extra quantity, is five lots of size 30. The extra quantity of 10 units is distributed in such a way

that the minimum batch size is ensured and the number of total batches is minimized. Example 4-3. In this example, we illustrate that while distributing the extra quantity, we give priority to orders with greater maximum batch size. By doing this, we need a smaller number of batches to process the extra material. Because we have only one lot size of 30, we are forced to produce an extra quantity of 20 units. If we allocate this quantity to orders 4 or 5 (with the maximum batch size of 5), we would certainly require more batches. On the other hand, if we allocate this quantity to orders 1, 2, or 3 (with the maximum batch size of 10), then we would need fewer batches. Therefore, the model chooses order 2 and forms two batches of 10 units to make the extra quantity of 20 units. Example 4-4. In all of the above examples, we were forced to produce extra. In this example, we have a choice of producing an extra quantity and reducing the lots or forming more lots but with no extra quantity. The required quantity for orders is 140 units. One option is to make five lots of 30 with an extra quantity of 10. The other option is to make four lots of 30 and two lots of 10 (in all six lots) with no extra quantity. Because our objective function in step 1 (eq 7) gives more importance to minimizing the extra quantity, the model chooses six lots with zero extra quantity instead of five lots with 10 units of extra quantity. Also, note that, if we produce the extra quantity, then we need one more batch of 10 units. Now, we solve problem 3a-15 using model M11 and M ) 1000. Recall that problem 3a-15 minimizes tardiness and setups in stage 2. We first have to get from step 1 the optimal numbers and sizes of lots and batches, which meet the orders. This gives us 25 lots

Ind. Eng. Chem. Res., Vol. 42, No. 3, 2003 505

Figure 2. Start times and assignment of logs/batches to the units of stages 1 and 2 for problem 3a-15 using model M11 with M ) 1000. The number inside the box is the lot/batch index i, and that below is the start time of the lot/batch. Table 16. Assignment of Batches to Lots for Problem 3a-15 Using Model M11 and M ) 1000 lot index (i)

batch index (i)

lot index (i)

batch index (i)

66 67 68 69 70 71 72 73 74 75 76 77 78

5, 6, 52a 2, 12, 55 9, 51, 54 7, 8, 56 1, 4, 11 10, 50, 53 3 21, 25, 58 13, 18, 59 19, 24, 60 14, 15, 17 16, 22, 23 20, 57

79 80 81 82 83 84 85 86 87 88 89 90

26, 39 35, 40 28, 63 29, 33 27, 62 31, 34 38, 61 36, 37 30, 32 42, 44, 49, 64 41, 45, 46, 47, 48 43, 65

a

Batches 5, 6, and 52 are produced from lot 66.

and 65 batches as shown in Table 8. Note that we number the batches from 1 to 65 and lots from 66 to 90. The orders, lots, and batches of the same material type are grouped together. Figure 2 presents the start times for production and unit assignments for all lots/ batches, and Table 16 presents the assignment of batches to lots, i.e., which batches are produced from which lot. As mentioned earlier, a lot/batch of sensitive material type cannot be the first to process on a unit and cannot follow a lot/batch with which it requires a setup. Observe that lots 88-90 and batches 45-49 and 6465, which are of sensitive material type 4, follow these conditions. One interesting thing to notice is that the schedule does not require any setups in stage 2, i.e., all batches on each unit are of the same specification s1. Moreover, the batches at time zero are also of the same specification. On the other hand, there are 15 setups in stage 1. This is because we only minimize setups in stage 2 and not in stage 1.

Batches of an order o are not necessarily processed on the same unit, and they finish processing at different times but before the due date of the parent order, i.e., no order is tardy. Note that the batches produced from a lot l start processing in stage 2 before the shelf life of the material in the lot expires. For example, lot 73 finishes processing at 49 h and produces batches 21, 25, and 58. The start times of these batches, 73, 49, and 54 h, respectively, are well within the shelf life (99 h, i.e., 49 + 50 h) of the material in lot 73. The makespan of the schedule is 88 h, and the latest due date is 110 h. Therefore, the schedule finishes much earlier than the last due date. Conclusion In this paper, we addressed a class of widely occurring real and complex scheduling problems, which has not received attention so far in the literature and for which no formulation or solution algorithm exists. The twostage process considered in this paper can actually model a variety of multistage processes involving parallel, nonidentical batch/semicontinuous units. It includes several novel and real features that have rarely been addressed in the literature. These include finite (as opposed to zero or infinite) shelf life for the intermediate product, predefined lot sizes in the subprocess before the storage, lot splitting into multiple batches of different sizes after the storage to satisfy multiple product orders, and a general setup/changeover framework that is applicable to many real batch plants. These features occur commonly in many industries such as food, pharmaceuticals, polymer, electronic materials, etc. We developed a two-step MILP approach based on several novel alternative MILP formulations for scheduling the above real and complex process. Unlike

506

Ind. Eng. Chem. Res., Vol. 42, No. 3, 2003

existing formulations for the batching problem in singlestage plants, our formulation for step 1 deals with two linked stages with an unstable intermediate product and accommodates the real and complex features of predefined lot sizing before the storage, batch splitting at the storage, and continuous batch sizing after the storage while minimizing surplus production, setups, and partial batches. Our formulations for step 2 have several unique features that make them different from the previous formulations for related simpler problems. First, we proposed several new ways of assigning consecutive orders/batches to a single unit (unit assignment constraints), which do not exist in the literature. Our new constraint sets use approximately half as many constraints as previous approaches do. Based on a thorough numerical evaluation, we identified M11 as the best model for this problem. M11 uses 30-50% fewer constraints and roughly 50% fewer nonzeros as compared to the existing approaches for related but simpler problems. Our new unit assignment constraints are useful for and applicable to multistage batch processes with parallel units. In this paper, we recommend minimizing setups and tardiness together as the preferred scheduling objective for this problem as compared to minimizing tardiness alone. This is because the former, in addition to being in line with the actual needs of real plants, makes the problem easier to solve and gives superior schedules than the latter. From our work, we also recommend that one must use several values of M to compare models with big-M constraints to get reliable conclusions. Finally, by addressing a real, complex, and common class of noncontinuous plants and presenting a systematic approach that is able to solve problems with up to 90 batches, this paper makes an important and significant contribution toward solving industrially important batch process scheduling problems. Appendix A Note that eq 13a is written for combinations of (i, i′) only and, hence, swapping i and i′ in eq 13a gives us a new constraint as follows.

Zi′j e Zij + 1 - Xii′ - Xi′i j ∈ JIi ∩ JIi′, i′ > i, i′ ∈ FSi ∪ FPi (13c) When Xii′ + Xi′i ) 1, eq 13c reduces to Zi′j e Zij, j ∈ JIi ∩ JIi′, i′ > i, i′ ∈ FSi ∪ FPi. Like eq 13b, this also requires either Zi′j ) 1 for j ∈ JIi ∩ JIi′ or (Zij ) 1 for j ∈ JIi ∩ JIi′ and Zi′j ) 0, ∀ j ∈ JIi′ - JIi) so as to force ZijZi′j ) 1 for one common unit j. Equation 12 meets both of these conditions, so eqs 12 and 13c form the second valid constraint set for unit assignment. Now, if we use just Xii′ instead of Xii′ + Xi′i in eq 13a, then we must write eq 13a for all permutations of (i, i′). This gives us a new constraint

Zij e Zi′j + 1 - Xii′

j ∈ JIi ∩ JIi′, i′ ∈ FSi (13d)

Note that eq 13d gives the following two constraints for any pair of lots/batches i and i′

Zij e Zi′j + 1 - Xii′

j ∈ JIi ∩ JIi′

Zi′j e Zij + 1 - Xi′i

j ∈ JIi ∩ JIi′

We can show that the above will force ZijZi′j ) 1 for one common unit j, when one of the following two conditions is met. 1. (Zij ) 1 for one j ∈ JIi ∩ JIi′, when Xii′ ) 1) and (Zi′j ) 1 for one j ∈ JIi ∩ JIi′, when Xi′i ) 1). 2. (Zi′j ) 1 for one j ∈ JIi ∩ JIi′ and Zij ) 0, ∀ j ∈ JIi - JIi′, when Xii′ ) 1) and (Zij ) 1 for one j ∈ JIi ∩ JIi′ and Zi′j ) 0, ∀ j ∈ JIi′ - JIi, when Xi′i ) 1). These two conditions have separate scenarios for Xii′ ) 1 and Xi′i ) 1 because we do not know a priori which of Xii′ and Xi′i will become one. Again, eq 12 meets both conditions, so eqs 12 and 13d form the third valid constraint set to assign consecutive lots/batches (i, i′) to one common unit j. Similarly, we can rewrite eq 13c with only Xii′ and get a new alternative as follows.

Zi′j e Zij + 1 - Xii′

j ∈ JIi ∩ JIi′, i′ ∈ FSi (13e)

Like eq 13d, eq 13e also requires one of the following two conditions to force ZijZi′j ) 1 for one common unit j. 1. (Zi′j ) 1 for one j ∈ JIi ∩ JIi′, when Xii′ ) 1) and (Zij ) 1 for one j ∈ JIi ∩ JIi′, when Xi′i ) 1). 2. (Zij ) 1 for one j ∈ JIi ∩ JIi′ and Zi′j ) 0, ∀ j ∈ JIi′ - JIi, when Xii′ ) 1) and (Zi′j ) 1 for one j ∈ JIi ∩ JIi′ and Zij ) 0, ∀ j ∈ JIi - JIi′, when Xi′i ) 1). Again, eq 12 meets both conditions, so eqs 12 and 13e form the fourth valid constraint set to assign consecutive lots/batches (i, i′) to one common unit j. Looking at the required conditions for eqs 13a and 13c-e, we realize that it is not necessary to force both Zij and Zi′j to zero for uncommon units. Even if we force one of them (say i) to process on a common unit, the other (i′) can be forced to process on the same unit, using any of eqs 13a and 13c-e. So, now we present sets where we first force either Zij ) 0 or Zi′j ) 0 for uncommon units and then use any of eqs 13a and 13c-e to force ZijZi′j ) 1 for one common unit j. To this end, we first modify eq 12 to force only Zij ) 0 for uncommon units as follows:

Xii′ + Xi′i +



i′ > i, i′ ∈ FSi ∪ FPi

Zij e 1

j∈(JIi-JIi′)

(14)

Note that Xii′ + Xi′i ) 1 w Zij ) 0 for uncommon units j ∈ JIi - JIi′. This forces Zij ) 1 for one j ∈ JIi ∩ JIi′ from eq 8. To get Zi′j ) 1 for that j, we use one of eqs 13a and 13c-e. Any of them will force Zi′j ) 1, if one of their respective conditions is met. It is easy to see that eq 14 meets condition 1 of eq 13a. Then, eqs 13a and 14 form the fifth valid constraint set to assign consecutive lots/ batches (i, i′) to one common unit j. Recall that eq 14, like eq 12, is also written for combinations of (i, i′) only and not permutations. Now, if we use only Xii′ in eq 14, then we must write it for all permutations of (i, i′) and we get a new constraint as follows.

Xii′ +



Zij e 1

i′ ∈ FSi

j∈(JIi-JIi′)

This, for any pair (i, i′), gives

Xii′ +



Zij e 1

j∈(JIi-JIi′)

(15)

Ind. Eng. Chem. Res., Vol. 42, No. 3, 2003 507

Xi′i +



of eqs 13a, 13c, 13d, or 13e to force ZijZi′j ) 1 for one common unit j, but they have a separate constraint for each uncommon unit to force either Zij ) 0 or Zi′j ) 0.

Zi′j e 1

j∈(JIi′-JIi)

It can be shown that these satisfy condition 1 of eq 13d, so eqs 13d and 15 form the sixth valid constraint set to assign consecutive lots/batches (i, i′) to one common unit j. Equation 14 forced Zij ) 0 for uncommon units j ∈ JIi - JIi′. Alternatively, we can force Zi′j ) 0 for uncommon units j ∈ JIi′ - JIi by replacing i by i′ in eq 14 and get

Xii′ + Xi′i +



Zi′j e 1

i′ > i, i′ ∈ FSi ∪ FPi

j∈(JIi′-JIi)

(16)

Equation 16 meets condition 1 of eq 13c and so eqs 13c and 16 form the seventh valid constraint set. For eq 16 also, if we have only Xii′, then it must be written for all permutations (i, i′) of lots/batches as follows.

Xii′ +



Zi′j e 1

i′ ∈ FSi

(17)

j∈(JIi′-JIi)

Like eq 15, eq 17 meets condition 1 of eq 13e, so eqs 13e and 17 form the eighth valid constraint set. Observe that eqs 14-17 have a summation term on the left-hand side, which sums up all Zij’s or Zi′j’s for all uncommon units j ∈ JIi - JIi′ or j ∈ JIi′ - JIi. Because of this term, we need not write the constraints for each unit j. However, if we remove the summation over j and only have Zij or Zi′j on the left-hand side, then we must write the constraints for each unit j. This idea gives us four different constraints as follows.

Xii′ + Xi′i + Zij e 1 j ∈ JIi - JIi′, i′ > i, i′ ∈ FSi ∪ FPi (18) Xii′ + Zij e 1

j ∈ JIi - JIi′, i′ ∈ FSi

(19)

Xii′ + Xi′i + Zi′j e 1 j ∈ JIi′ - JIi, i′ > i, i′ ∈ FSi ∪ FPi (20) Xii′ + Zi′j e 1

j ∈ JIi′ - JIi, i′ ∈ FSi

(21)

Observe that now the units j ∈ JIi - JIi′ or j ∈ JIi′ - JIi appear as index ranges for the constraints. As argued for eqs 14-17, eqs 18-21 meet condition 1 of eqs 13a and 13c-e and form the 9th, 10th, 11th, and 12th constraint sets to assign consecutive lots/batches (i, i′) to one common unit j, respectively. To summarize, we have three types of unit assignment constraint sets. Sets 1-4 force both Zij ) 0 and Zi′j ) 0 for all uncommon units j ∈ JIi - JIi′ and j ∈ JIi′ - JIi, respectively, whenever Xii′ + Xi′i ) 1. Then, they use any of eqs 13a, 13c, 13d, or 13e to force ZijZi′j ) 1 for one common unit j. Sets 5-8 force either Zij ) 0 or Zi′j ) 0 for uncommon units and then use any of eqs 13a, 13c, 13d, or 13e to force ZijZi′j ) 1 for one common unit j. Finally, sets 9-12 also force either Zij ) 0 or Zi′j ) 0 for uncommon units and then use any

Notation Indices j ) unit g ) group of units in stage 2 k ) material type s1, s1′ ) specification 1 s2 ) specification 2 s ) lot size o ) order l, l′ ) lots b, b′ ) batches i, i′ ) lots/batches f, f ′ ) families of lots Sets J ) units J1 ) units in stage 1 J2 ) units in stage 2 G ) groups of units in stage 2 K ) material types KS ) material types that are sensitive KP ) material types that require preprocessing before stage 1 PV ) possible values for P properties of material types S1 ) specification s1 S2 ) specification s2 S ) lot sizes O ) orders L ) lots B ) batches I ) lots/batches IS ) lots and batches of the sensitive material type F ) families of lots with the same values of P properties JKk ) units that can process material type k J2s1 ) units that can produce specification s1 JIi ) units that can process lot/batch i JISi ) units on which sensitive lot/batch i cannot process first JBb ) units that can process batch b JBSb ) units on which sensitive batch b cannot process first JLl ) units that can process lot l JLSl ) units on which sensitive lot l cannot process first J0f ) units that are processing lots of family f at time zero J0s1 ) units that are processing batches of specification s1 at time zero S1g ) specification s1 that can be produced in group g of units Sk ) lot sizes allowed for material type k Ok ) orders of the material type k BOo ) batches of order o BKk ) batches of material type k BS1s1 ) batches of specification s1 BJj ) batches that can be processed on unit j LFf ) lots belonging to family f LJj ) lots that can be processed on unit j LKk ) lots of material type k LSs ) lots of lot size s Lsk ) lots of size s and material type k IJj ) lots/batches that can be processed on unit j FPl ) feasible predecessors of lot l FPb ) feasible predecessors of batch b FPi ) feasible predecessors of lot/batch i FSi ) feasible successors of lot/batch i

508

Ind. Eng. Chem. Res., Vol. 42, No. 3, 2003

Binary Variables Zij ) assigns lot/batch i to unit j ZFij ) assigns lot/batch i to process first on unit j Xii′ ) sequences lot/batch i′ after lot or batch i Ylb ) assigns lot l to produce batch b BPo ) becomes 1 when there is a partial batch for order o Integer Variables NLsk ) number of lots of size s and material type k U NBU o ) number of batches of size BQo for order o NBo ) total number of batches for order o Continuous Variables Ts ) start time of lot/batch Te ) end time of lot/batch Tdo ) tardiness in completion of order o Ero ) earliness in completion of order o NS1 ) number of setups in stage 1 NS2 ) number of setups in stage 2 PQo ) material quantity produced for order o EQk ) extra quantity of material type k produced from stage 1 BQPo ) material quantity in the partial batch for order o Parameters do ) due date of order o OQo ) quantity of order o as per purchase order RQo ) required quantity for order o from production BQU o ) maximum batch size for order o BQLo ) minimum batch size for order o BQb ) quantity of material in batch b LQs ) quantity of material in lots of size s SLk ) shelf life of intermediate product of type k P ) properties of material type k LTsj ) processing time of lots of size s on unit j BTU o ) processing time of maximum batch size for order o BTb ) processing time of batch b cff′j ) setup time for changeover of lots of family f to those of f ′ on unit j c0fj ) setup time for unit j to start processing lots of family f cs1,s1′ ) setup time for changeover of batches of specification s1 to those of s1′ c0s1,j ) setup time for unit j to start processing batches of specification s1 URTj ) release time of unit j MRTk ) release time for lots of material type k M ) large positive value po ) weight to prioritize processing of order o wp ) weight to minimize partial batches ws ) weight to minimize surplus material from stage 1 wt ) weight to minimize tardiness we ) weight to minimize earliness w1 ) weight to minimize unit setups in stage 1 w2 ) weight to minimize unit setups in stage 2

Literature Cited (1) Applequist, G.; Samikoglu, O.; Pekny, J.; Reklaitis, G. V. Issues in the use, design and evolution of process scheduling and planning systems. ISA Trans. 1997, 36 (2), 81. (2) Reklaitis, G. V. Overview of Scheduling and Planning of Batch process operations. Presented at the NATO Advanced Study Institute, Batch Process Systems Engineering, Antalya, Turkey, 1992.

(3) Zentner, M. G.; Pekny, J. F. Learning To Solve Process Scheduling Problems: The Role Of Rigorous Knowledge Acquisition Frameworks. In Foundations of Computer Aided Process Operations; Rippin, D. W. T., Hale, J. C., Davis, J. F., Eds.; CACHE: Austin, TX, 1994. (4) Shah, N. Single and Multisite Planning and Scheduling: Current Status and Future Challenges. Proceedings of the Third Conference on Foundations of Computer Aided Process Operations (FOCAPO’98), 1998. (5) Kondili, E.; Pantelides, C. C.; Sargent, R. W. H. A General Algorithm for Short-term Scheduling of Batch Operations. I. MILP Formulation. Comput. Chem. Eng. 1993, 17, 211-227. (6) Shah, N.; Pantelides, C. C.; Sargent, R. W. H. A General Algorithm for Short-term Scheduling of Batch Operations. II. Computational Issues. Comput. Chem. Eng. 1993, 17, 229-244. (7) Pantelides, C. C. Unified Framework for Optimal Process Planning and Scheduling. Proc. 2nd Conf. Found. Computer Aided Process Oper. (FOCAPO II) 1994, 253-274. (8) Zhang, X.; Sargent, R. W. H. The Optimal Operation of Mixed Production FacilitiessA General Formulation and Some Approaches for the Solution. Comput. Chem. Eng. 1996, 20, 897904. (9) Schilling, G.; Pantelides, C. C. A Simple Continuous-time Process Scheduling Formulation and a Novel Solution Algorithm. Comput. Chem. Eng. 1996, 20, S1221-S1226. (10) Ierapetritou, M. G.; Floudas, C. A. Effective ContinuousTime Formulation for Short-term Scheduling. 1. Multipurpose Batch Processes. Ind. Eng. Chem. Res. 1998, 37, 4341-4359. (11) Cerda, J.; Henning, G. P.; Grossmann, I. E. A MixedInteger Linear Programming Model for Short-Term Scheduling of Single-Stage Multiproduct Batch Plants with Parallel Lines. Ind. Eng. Chem. Res. 1997, 36, 1695-1707. (12) Mendez, C. A.; Henning, G. P.; Cerda, J. Optimal Scheduling of Batch Plants Satisfying Multiple Product orders with different due-dates. Comput. Chem. Eng. 2000, 24, 2223-2245. (13) Karimi, I. A.; McDonald, C. M. Planning and scheduling of parallel semicontinuous processes. 2. Short-term scheduling. Ind. Eng. Chem. Res. 1997, 36, 2701. (14) Lamba, N.; Karimi, I. A. Scheduling Parallel Production Lines with Resource Constraints. 1. Model Formulation, Ind. Eng. Chem. Res. 2002, 41 (4), 779-789. (15) Lamba, N.; Karimi, I. A. Scheduling Parallel Production Lines with Resource Constraints. 2. Decomposition Algorithm, Ind. Eng. Chem. Res. 2002, 41 (4), 790-800. (16) Mendez, C. A.; Henning, G. P.; Cerda, J. Short-term scheduling of multiproduct batch plants under limited resource capacity. Latin Am. Appl. Res. 2001, 31, 455-462. (17) Pinto, J. M.; Grossmann, I. E. A Continuous Time Mixed Integer Linear Programming Model for Short Term Scheduling of Multistage Batch Plants. Ind. Eng. Chem. Res. 1995, 34, 30373051. (18) Pinto, J. M.; Grossmann, I. E. An Alternate MILP Model for Short-term Scheduling of Batch Plants with Preordering Constraints. Ind. Eng. Chem. Res. 1996, 35, 338-342. (19) Hui, C. W.; Gupta, A. A novel MILP formulation for shortterm scheduling of multistage multi-product batch plants. Comput. Chem. Eng. 2000, 24, 1611-1617. (20) Hui, C. W.; Gupta, A.; Meulen, H. A. J. A novel MILP formulation for short-term scheduling of multi-stage multi-product batch plants with sequence-dependent constraints. Comput. Chem. Eng. 2000, 24, 2705-2717. (21) Gupta, S.; Karimi, I. A. An Improved MILP Formulation for Scheduling Multi-product, Multi-stage Batch Plants. Ind. Eng. Chem. Res. 2002, submitted for publication. (22) Brooke, A.; Kendrick, D.; Meeraus, A.; Raman, R. GAMS: A User’s Guide; GAMS Development Corp.: 1998.

Received for review May 28, 2002 Revised manuscript received September 16, 2002 Accepted November 15, 2002 IE020396I