Production Scheduling of a Large-Scale Industrial ... - ACS Publications

May 28, 2006 - BASF IT SerVices GmbH, SC-PE-Q920, D-67056 Ludwigshafen, Germany. The medium-term production scheduling of a multipurpose, multiproduct...
0 downloads 11 Views 332KB Size
8234

Ind. Eng. Chem. Res. 2006, 45, 8234-8252

Production Scheduling of a Large-Scale Industrial Batch Plant. I. Short-Term and Medium-Term Scheduling Stacy L. Janak and Christodoulos A. Floudas* Department of Chemical Engineering, Princeton UniVersity, Princeton, New Jersey 08544-5263

Josef Kallrath BASF Aktiengesellschaft, Scientific Computing, GVC/S-B009, D-67056 Ludwigshafen, Germany

Norbert Vormbrock BASF IT SerVices GmbH, SC-PE-Q920, D-67056 Ludwigshafen, Germany

The medium-term production scheduling of a multipurpose, multiproduct industrial batch plant is modeled using a novel mathematical framework. The methodology consists of the decomposition of the whole scheduling period into successive short horizons of a few days. A decomposition model is implemented to determine each short horizon and the corresponding products to be included. Then, a novel continuous-time formulation for short-term scheduling of batch processes with multiple intermediate due dates is applied to each short horizon selected, leading to a large-scale mixed-integer linear programming (MILP) problem. The scheduling model includes over 80 pieces of equipment and can take into account the processing recipes of hundreds of different products. Several characteristics of the production plant are incorporated into the scheduling model and actual plant data are used to model all parameters. Two different modes of operation are presented along with representative production schedules to demonstrate the effectiveness of the proposed formulation. 1. Introduction In multiproduct and multipurpose batch plants, different products can be manufactured via the same or a similar sequence of operations by sharing available pieces of equipment, intermediate materials, and other production resources. They are ideally suited to manufacture products that are produced in small quantities and for which the production recipe or the customer demand pattern is likely to change. The inherent operational flexibility of this type of plant provides the opportunity for increased savings through the realization of an efficient production schedule which can reduce inventories, production and transition costs, and production shortfalls. The problem of production scheduling and planning for multiproduct and multipurpose batch plants has received a considerable amount of attention during the last two decades. Extensive reviews have been written by Reklaitis,1 Pantelides,2 Shah,3 and more recently by Floudas and Lin.4,5 Most of the work in the area of multiproduct batch plants has dealt with either the long-term planning problem or the short-term scheduling problem. Both planning and scheduling deal with the allocation of available resources over time to perform a set of tasks required to manufacture one or more products. However, long-term planning problems deal with longer time horizons (e.g., several months or years) and are focused on higher-level decisions such as timing and location of additional facilities and levels of production. In contrast, short-term scheduling models address shorter time horizons (e.g., several days) and are focused on determining detailed sequencing of various operational tasks. The area of medium-term scheduling, however, which involves medium time horizons (e.g., several weeks) and still aims to determine detailed production schedules, can * To whom all correspondence should be addressed. Tel.: (609) 2584595. Fax: (609) 258-0211. E-mail: [email protected].

result in very large-scale problems and has received much less attention in the literature. For short-term scheduling, most of the proposed approaches can be classified into two main groups based on time representation: discrete-time models and continuous-time models. Early attempts relied on the discrete-time approach, in which the time horizon is discretized into a number of time intervals of equal duration and events such as the beginning and ending of a task are associated with the boundaries of these time intervals (Kondili et al.6 and Shah et al.7). The main advantage of the discrete-time approach is that it provides a reference grid of time for all operations competing for shared resources, allowing the various constraints involved in the problem to be formulated in a relatively straightforward and simple manner. The main limitations of these discrete-time models are that (i) they correspond to an approximation of the time horizon and (ii) they result in an unnecessary increase in the number of binary variables and, consequently, in the overall size of the model. To address the inherent limitations of the discrete-time models, methods based on continuous-time representations have been developed. These can be broadly classified into sequential processes and general network-represented processes. The major difference between these two types of processes is that sequential processes are order- or batch-oriented and do not require the explicit consideration of mass balances. General networkrepresented processes correspond to the more general case in which batches can merge and/or split, and material balances must be taken into account explicitly. Most of the resulting formulations used to describe general network-represented processes have been based on either the state-task network (STN) process representation developed by Kondili et al.6 or the resource-task network (RTN) process representation developed by Pantelides.2 One of the first methods used to formulate continuous-time models for the scheduling of single-stage or multistage sequen-

10.1021/ie0600588 CCC: $33.50 © 2006 American Chemical Society Published on Web 05/28/2006

Ind. Eng. Chem. Res., Vol. 45, No. 25, 2006 8235

tial processes is based on the concept of time slots. These time slots represent the sequence of the processing of the specified products at each stage where the product assignment to each slot and its associated processing times are variables to be determined. At each stage in the process, there can be single or multiple parallel units, and when multiple units are involved, time slots are defined for each unit. Research contributions following this direction include those presented by Pinto and Grossmann,8-11 Karimi and McDonald,12 Lamba and Karimi,13,14 and recently by Sundaramoorthy and Karimi.15 In addition, because of the batch- or order-oriented characteristics of sequential processes, it is possible to define continuous variables directly to represent the timing of the batches without the use of time slots. This alternate direction has also been pursued to formulate continuous-time scheduling models for sequential processes and, when compared to slot-based formulations, can be more accurate and lead to better solutions. Models utilizing continuous variables for task timings are presented by Cerda´ et al.,16 Me´ndez and Cerda´,17,18 Me´ndez et al.,19,20 and Lee et al.21 For general network-represented processes, two types of approaches have been developed to formulate continuous-time scheduling models: global eVent-based models and unit-specific eVent-based models. Global eVent-based models use a set of events or time slots that are common for all tasks and all units, while unit-specific eVent-based models define events on a unit basis, allowing tasks corresponding to the same event point but in different units to take place at different times. The earliest efforts utilizing global eVent-based models were presented by Zhang and Sargent,22,23 Mockus and Reklaitis,24-26 and Schilling and Pantelides.27 Recent developments include the work presented by Castro et al.28,29 Majozi and Zhu,30 Lee et al.,31 Wang and Guignard,32 and Maravelias and Grossmann.33,34 In addition, Giannelos and Georgiadis35 define a continuous-time model which they consider to be a unit-specific eVent-based representation of time. However, special sequencing restrictions are introduced which effectively transform the model into a global eVent-based representation of time. Unit-specific eVent-based models have been developed by Floudas and co-workers.36-41 They proposed a novel continuoustime formulation for short-term scheduling of batch, semicontinuous, and continuous processes. This formulation introduces the original concept of event points, which are a sequence of time instances located along the time axis of a unit, each representing the beginning of a task or the utilization of the unit. The location of event points are different for each unit, allowing different tasks to start at different times in each unit for the same event point. Extensions of the formulation consider design and scheduling simultaneously,39 medium-term scheduling problems,40 and the inclusion of resource constraints and various storage policies.41 A comprehensive study which compares and establishes the tradeoffs between the slot-based, global eVent-based, and unit-specific eVent-based continuoustime formulations is presented by Shaik et al.42 For medium-term scheduling, relatively little work has been presented in the literature. Medium-term scheduling problems can be quite computationally complex; thus, it is common for mathematical programming techniques to be used in their solution. The most widely employed strategy to overcome the computational difficulty is based on the idea of decomposition. The decomposition approach divides a large and complex problem, which may be computationally expensive or even intractable when formulated and solved directly as a single MILP model, to smaller subproblems, which can be solved much

more efficiently. There have been a wide variety of decomposition approaches proposed in the literature. In addition to decomposition techniques developed for general forms of MILP problems, various approaches that exploit the characteristics of specific process scheduling problems have also been proposed. In most cases, the decomposition approaches only lead to suboptimal solutions; however, they substantially reduce the problem complexity and the solution time, making MILP-based techniques applicable for large, real-world problems. Pinto and Grossmann9 proposed a decomposition scheme for the scheduling of multistage batch plants that may contain equipment in parallel. The solution strategy employed first solves an MILP model which minimizes the total in-process time while determining the assignments of orders to units. Next, an LP model is solved to minimize earliness and eliminate unnecessary setups. Wilkinson et al.43 presented a method for producing accurate aggregate models of multipurpose plant operations which represents a strict relaxation of the detailed scheduling model. The aggregate formulation provides a tight upper bound on the solution to the original problem and can be solved in considerably less computational time. Bassett et al.44 discussed a number of decomposition-based approaches for the solution of large-scale batch scheduling problems. The first approach utilizes a time-based decomposition with a hierarchical approach that separates the problem into a planning level and a scheduling level. These levels are solved iteratively, and various techniques are used to remove infeasibilities. A second approach, called a reverse rolling window, utilizes a hybrid planning/scheduling formulation in which only a small section of the horizon is determined in detail at each iteration. Then, a sequence of such problems are solved in reverse order for the time instances. The authors also consider a resource-based decomposition approach and a task-unit aggregation approach. Dimitriadis et al.45 proposed forward and backward rollinghorizon algorithms for the solution of medium-term scheduling problems. These rolling-horizon algorithms are based on separating the overall scheduling horizon into two blocks of time, a detailed time block and an aggregate time block. The problem is then solved in a sequence of iterations where, at each iteration, the previous solution of the detailed time block is fixed and part of the aggregate time block is moved into the detailed time block. Elkamel et al.46 developed a heuristic decomposition algorithm for the scheduling of batch plants which consists of two basic components. First, longitudinal decomposition is used to partition the units in the plant into different subsets capable of performing different sets of tasks. Next, axial decomposition is used to assign the product orders into groups based on their due dates as well as the unit groups. Then, the orders are scheduled sequentially along the time axis. Gupta and Maranas47 proposed a procedure to partition a large, midterm planning problem into smaller subproblems using hierarchical Lagrangean relaxation of key complicating constraints. This procedure is used together with an upper-boundgenerating heuristic within a subgradient optimization framework. Harjunkoski and Grossmann48 presented a decomposition strategy for the scheduling of production in an industrial steel plant. First, customer orders are partitioned into groups with similar properties, and each group is optimally scheduled as a flowshop problem. Then, an LP/MILP model is used to account for setup times and properly allocate some shared equipment. Lin et al.40 considered the medium-range production scheduling of a multiproduct batch plant using a rolling-horizon approach. In their approach, the overall scheduling problem is decomposed into a series of smaller short-term scheduling subproblems in

8236

Ind. Eng. Chem. Res., Vol. 45, No. 25, 2006

Figure 1. State-task network (STN) representation of plant.

successive time horizons, which are connected through material and unit availabilities. A two-level decomposition framework is utilized to determine the current time horizon and the products to be included, which takes into account demand distribution and unit utilization and imposes limits on the complexity of the resulting short-term scheduling problem. Then, for each subhorizon, a continuous-time, MILP-based short-term scheduling model is applied to determine the detailed production schedule. The decomposition model and the short-term scheduling model are solved iteratively for each short horizon until the schedules for the whole period under consideration are generated. Wu and Ierapetritou49 presented a number of different heuristic-based decomposition approaches for the efficient solution of large-scale scheduling problems. They consider timebased decomposition, required production method, and resourcebased decomposition. Their formulation utilizes Lagrangean relaxation and Lagrangean decomposition to generate upper bounds that are used in an iterative fashion with the lower bounds obtained through the heuristic approaches to obtain production schedules for realistic-size problems. In this work, we propose an enhanced state-task network MILP model for the medium-term production scheduling of a multiproduct industrial batch plant. The proposed approach extends the work of Ierapetritou and Floudas36 and Lin et al.40 to consider a large-scale production facility and account for various storage policies (UIS, NIS, and ZW), variable batch sizes and processing times, batch mixing and splitting, sequencedependent changeover times, intermediate due dates, products used as raw materials, and several modes of operation. The rest of the paper is organized as follows. In Section 2, the problem statement is presented, and in Sections 3-5, the mathematical formulation is described. Next, in Section 6, two different modes of operation are considered and then tested with actual plant operating data. Finally, in Section 7, results and conclusions are provided. 2. Problem Statement In the problem under investigation, we consider the mediumrange production scheduling problem of a multiproduct batch plant, which is defined as follows: given (i) the production recipe (i.e., the processing times for each task at the suitable

units and the amount of the materials required for the production of each product), (ii) the available units and their capacity limits, (iii) the available storage capacity for each of the materials, and (iv) the medium-range time horizon under consideration, then the objective is to determine (i) the optimal sequence of tasks taking place in each unit, (ii) the amount of material being processed at each time in each unit, and (iii) the processing time of each task in each unit, so as to satisfy the market requirements expressed as specific amounts of products at given time instances within the time horizon while maximizing the production. In the multiproduct batch plant investigated, there are several different types of operations (or tasks) termed operation type 1 through operation type 6. The plant has many different types of units, and over 80 are modeled explicitly. Hundreds of different products can be produced, and for each of them, one of the processing recipes shown in Figure 1 or a slight variation is applied. The recipes are represented in the form of statetask network (STN), in which the state node is denoted by a circle and the task node by a rectangle. The STN representation provides the flow of material through various tasks in the production facility to produce different types of final products and does not represent the actual connectivity of equipment in the plant. For the first type of STN shown in Figure 1, raw materials (or state F) are fed into a type 1 unit and undergo operation type 1 to produce an intermediate (or state I1). This intermediate then undergoes operation type 3 in a type 3 unit to produce another intermediate (or state I2). This second intermediate is then sent to a type 4b unit before the resulting intermediate material (or state I3) is sent to a type 6 unit to undergo an operation type 6 task to produce a final product (or state P). The information on which units are suitable for each product is given. All the units are utilized in a batch mode with the exception of the type 5 and 6 units, which operate in a continuous mode. The capacity limits of the type 1, type 2, and type 3 units vary from one product to another, while the capacity limits of the type 4a, 4b, 5, and 6 units are the same for all suitable products. The processing time or processing rate of each task in the suitable units is also specified. When switched from one type of product to another, some type 1 units need a cleaning time between tasks. In addition, some products require other

Ind. Eng. Chem. Res., Vol. 45, No. 25, 2006 8237

products as their raw materials, creating very complicated statetask networks. There are also several additional restrictions in the production recipes of certain products which have been included. The time horizon considered for production scheduling is a few weeks or longer. Customer orders are fixed throughout the time horizon with specified amounts and due dates. There is no limitation on external raw materials, and we apply the zerowait storage condition or limited intermediate storage capacity for all materials based on actual plant data. There are two different types of products produced, category 1 and 2. Category 1 products proceed through different type 6 units than category 2 products. This is the only distinction between the recipes of a particular product that can be either category 1 or 2. 2.1. Campaign Mode Production. The sixth STN shown in Figure 1 shows a special type of product, denoted as a campaign product. For this type of product, raw materials are fed into up to three type 1 units and undergo operation type 1 to produce an intermediate, or state I1. This intermediate is then sent to one of two type 4a units before being processed in the type 5 unit, which is a continuous unit. Finally, the intermediate material (or state I3) is sent to a type 6 unit, producing a final campaign product (or state P). Because product changeovers in the type 5 unit can be undesirable, there was a need to introduce the ability to fix campaigns for continuous production of a single product in the type 5 unit, called campaign mode production. In addition, because of the potentially complicated raw material requirements for the intermediate, I1, and the limited amount of space available in the two type 4a units, the production schedule for the three associated type 1 units, two type 4a units, and the type 5 unit must be considered separately from the overall scheduling problem in order to determine a feasible campaign production schedule for the type 5 unit. The campaign mode production is determined before considering the overall scheduling problem so that the three type 1 units may also be used to produce other products in the overall production schedule, if possible. Note that either campaign mode production can be enforced or production scheduling of the type 5 unit and associated units can be determined along with the overall production schedule, called noncampaign mode production. 3. Overall Framework The overall methodology for solving the medium-range production scheduling problem is to decompose the large and complex problem into smaller short-term scheduling subproblems in successive time horizons.40 The flowchart for this rolling-horizon approach is shown in Figure 2. The first step is to input relevant data into the formulation. Then, if necessary, campaign mode production is determined. Next, the overall medium-term scheduling problem is considered. A decomposition model is formulated and solved to determine the current time horizon and corresponding products that should be included in the current subproblem. According to the solution of the decomposition model, a short-term scheduling model is formulated using the information on customer orders, inventory levels, and processing recipes. The resulting MILP problem is a largescale, complex problem which requires a large computational effort for its solution. When a satisfactory solution is determined, the relevant data is output and the next time horizon is considered. The above procedure is applied iteratively in an automatic fashion until the whole time horizon under consideration has been scheduled. Note that the decomposition model determines how many days and products to consider in the small scheduling horizon

Figure 2. Flowchart of the rolling-horizon approach.

subject to an upper limit on the complexity of the resulting mathematical model. However, the complexity limit can be violated in order to ensure that each small scheduling horizon contains a minimum number of days. Products are selected for the scheduling horizon if there is an order for the product, if the product has an order within a set amount of time into the future (or ahead time), if the product is used as a raw material for another product which is included, if the product was still processing in the previous scheduling horizon, or if the product is a campaign product and is included in a campaign for the current horizon. 4. Decomposition Model A key component of the rolling-horizon approach is the determination of the time horizon and the products which should be included for each short-term scheduling subproblem. We extend the two-level decomposition formulation of Lin et al.,40 which partitions the entire scheduling horizon into shorter subhorizons by taking into account the tradeoff between demand satisfaction, unit utilization, and model complexity. In the first level, the number of days in the time horizon and the main products which should be included are determined. In the second level, additional products are added to the horizon so that each of the first-stage units, or type 1 units, are highly utilized. 4.1. Level 1 Formulation. The proposed formulation requires the indices, sets, parameters, and variables listed in the Nomenclature section at the end of this paper. On the basis of

8238

Ind. Eng. Chem. Res., Vol. 45, No. 25, 2006

this notation, the mathematical model for the level 1 decomposition problem involves the following constraints and objective function. 4.1.1. Horizon Continuity.

day(d) g day(d + 1), ∀d ∈ D, d > Df, d < |D| (1) These constraints express the requirement that a day d can only be included in the current horizon if the previous day was also selected, generating a continuous sequence of days in the selected horizon. 4.1.2. Inclusion of Products with Demands in the Current Horizon.

pprod(s) g day(d), ∀d ∈ D, d > Df, s ∈ Df, rsd > 0 (2) These constraints enforce that any state s with demand due on day d must be included in the horizon if day d is included in the horizon. 4.1.3. Inclusion of Products with Demands in the Future.

pprod(s) g day(d - ahdsd), ∀d ∈ D, d > Df, s ∈ Sf, ahdsd > 0, d > ahdsd (3) These constraints enforce that if a state s with demand due on day d needs ahd(s,d) day(s) in advance to start processing in order to meet its due date and day (d - ahdsd) falls in the horizon, then state s must also be included in the horizon. 4.1.4. Exclusion of Products without Demands in the Current Horizon or the Future.

pprod(s) e day(d) +



d∈D d>Df rsd>0



day(d - ahdsd) +

d∈D d>Df ahdsd>0 rsd>0



product state s', which is used as a raw material for another intermediate product state s (i.e., prawss′ > 0), must be included in the horizon if state s is included in the horizon from the constraint in eq 6. 4.1.6. Exclusion of Intermediate Products Not Needed as Raw Materials.

pprod(s') e

day(d),

(5)

d'∈D d'gd d'ed+3

The constraints in eq 4 enforce the condition that, if a state s does not have demands due on day d, in the ahead time (ahdsd), in the type 5 unit (campsd′) in the next 3 days, or from the last horizon (lasts ) 0), then it must not be included in the current horizon. 4.1.5. Inclusion of Intermediate Products Used as Raw Materials.

pprod(s') g pprod(s), ∀s ∈ Sf, s' ∈ Si, prawss' > 0 (6) These constraints express the requirement that intermediate product state s' which is used as a raw material for final product state s (i.e., prawss′ > 0) must be included in the horizon if state s is included in the horizon.

pprod(s') g pprod(s), ∀s, s' ∈ Si, prawss' > 0

pprod(s),

These constraints enforce the condition that, if an intermediate product state s' is not used as a raw material for another product s that is included in the horizon and is not still processing from the previous horizon (lasts′ ) 0), then it must not be included in the current horizon. 4.1.7. Inclusion of Products from Previous Horizon.

pprod(s) g lasts, ∀s ∈ Sp

(9)

These constraints ensure that, if an intermediate product state s is still processing from the previous horizon or from inventory in the first horizon, then it must be included in the current horizon. 4.1.8. Inclusion of Campaign Products.

pprod(s) g day(d ), ∀s ∈ Sf, ST5, d ∈ D, d > Df, Y(d ) > 0 (10)

nepd·[ where Y(d) is a variable defined for clarity that checks if the product s has demands in the type 5 unit between days d and d + 3.

campsd'



s∈Sp prawss'>0

The constraints in eq 10 enforce the condition that, if a campaign product is included in a campaign which falls during the current horizon or in the next 3 days after the current horizon, then the campaign product s must also be included in the horizon. Note that Y(d) is defined in eq 5. 4.1.9. Model Complexity Limit.

d∈D d>Df Y(d)>0



pprod(s) +

∀s' ∈ Si, lasts' ) 0 (8)

∀s ∈ Sf, lasts ) 0 (4)

Y(d ) )



s∈Sf fillss'>0

(7)

The constraints in eq 7 express the requirement that intermediate

∑ ∑ ∑ ∑pprod(s)·day(d)] e ubin + slbin

(11)

d∈D s∈Sf i∈Is j∈Ji d>Df

The left-hand side of this constraint gives an estimate of the number of binary variables (i.e., wv(i,j,n) variables from the short-term scheduling model) in the resulting short-term scheduling problem. The number of binary variables in an MILP problem can provide an estimate of the scale and complexity of the problem. Thus, if we limit the number of binary variables to ubin and allow a violation of slbin that is penalized in the objective function, then we can control the tractability of the short-term scheduling problem that is generated by considering pprod(s) products and day(d) days. 4.1.10. Production Limit.

∑ ∑ pprod(s)·day(d)·rsd e uprd

(12)

d∈D s∈Sf d>Df

The left-hand side of this constraint gives the amount of production required to meet all the demands that are due on the selected days, day(d), and for the selected products, pprod(s). Thus, the value of uprd can be used to limit the number of days and products selected to avoid requiring too much production. This constraint is not necessary but can be used to impose additional limits on the selected time horizon if desired.

Ind. Eng. Chem. Res., Vol. 45, No. 25, 2006 8239

time (i.e., sls ) 1), then the operation type 1 task i associated with product s is included, or react(i) ) 1. 4.2.2. Inclusion of Products Selected in Level 1 Left Over from Previous Horizon.

4.1.11. Objective Function.

Max

∑ day(d )+ LI1 ∑ wts·pprod(s) - LI2·slbin

d∈D d>Df

s∈Sp

(13)

The objective function for the level 1 decomposition model is to maximize the duration of the horizon and the number of products selected while penalizing any violation of the model complexity constraint. Thus, we want to include as many days and products as possible in our short-term scheduling model while not exceeding the limit on the model complexity. The coefficients LI1 and LI2 are used to balance the relative importance of each term. The formulation for the level 1 decomposition problem described above is a mixed-integer nonlinear programming problem (MINLP) because of the bilinear term pprod(s)‚day(d) in eqs 11 and 12. We can introduce a new [0,1] continuous variable prday(s, d) and a set of constraints to replace the bilinear term with an equivalent linear formulation.50 4.1.12. Reformulation of Bilinear Term.

prday(s, d) e day(d), ∀s ∈ Sp, d ∈ D, d > Df

(14)

prday(s, d) e pprod(s), ∀s ∈ S , d ∈ D, d > D (15) p

f

prday(s, d) g day(d) + pprod(s) - 1, ∀s ∈ S , d ∈ D, d > Df (16) p

This set of linear constraints is equivalent to prday(s,d)) pprod(s)‚day(d) because the prday(s,d) are defined as continuous variables in [0,1]. 4.1.13. Reformulation of Model Complexity Limit and Production Limit.

nepd·[

∑ ∑ ∑ ∑ prday(s,d)] e ubin + slbin

(17)

d∈D s∈Sf i∈Is j∈Ji d>Df

∑ ∑ prday(s,d)·rsd e uprd

(18)

d∈D s∈Sf d>Df

When the constraints in eqs 1-16 are included and eqs 11 and 12 are replaced with eqs 17 and 18, respectively, the original MINLP is transformed into an equivalent MILP problem and can be solved to global optimality efficiently. 4.2. Level 2 Formulation. After the days in the time horizon and main products are determined in the first level, a secondlevel mathematical model is formulated to ensure efficient utilization of the type 1 units, which occur first in the processing recipes. In this level, additional operation type 1 tasks, suitable in the type 1 units, are added to the short-term scheduling horizon in order to ensure the type 1 units are efficiently utilized. The second-level proposed formulation requires the indices, sets, parameters, and variables listed in the Nomenclature section at the end of this paper. On the basis of this notation, the mathematical model for the level 2 decomposition problem involves the following constraints and objective function. 4.2.1. Inclusion of Products Selected in Level 1 with Demand in the Horizon or Ahead Time.

react(i) g sls, ∀i ∈ IT1, s ∈ Sp, Si

(19)

These constraints ensure that, if a product is selected in the first level because it has demands in the selected horizon or ahead

react(i) g lasts, ∀i ∈ IT1, s ∈ Sp, Si

(20)

These constraints ensure that, if a product is selected in the first level because it had leftover material from the previous horizon (i.e., lasts > 0), then the operation type 1 task i associated with product s is included, or react(i) ) 1. 4.2.3. First Stage Unit Utilization.

∑ react(i)·ptmin i

i∈IT1

suitij ∑ j∈J i

∑ j∈J

×

capmax ij

i

[



s∈Scat1,S



dems + i

sls+lasts)1 dems>0



s∈Scat2,S

i

dems +

s'∈Scat1

sls+lasts)1 packs',s>0 dems>0 sls'+lasts')0



s∈Scat2Si





s'∈Scat1S

stmax + s i

sls+lasts)0 dems>0

T1 stmax s ] g lower·H·| J | (21)

s'∈Scat1

sls+lasts)0 packs',s>0 dems>0 sls'+lasts')0

The left-hand side of this constraint represents a lower bound on the total number of hours that the first-stage, or type 1, units (i.e., JT1) are used by operation type 1 processing tasks (i.e., IT1) to satisfy demands for products in the current horizon, in the ahead time, or still processing from the previous horizon. These first-stage units must have enough suitable demand to allow them to be utilized a minimum amount of their total available time, represented through the parameter “lower”. This constraint ensures that these first-stage units are effectively utilized in the short-term scheduling horizon selected. Note that the left-hand side of the constraint is broken into several terms so that demands for a category 1 s and a category 2 s' product which use the same intermediate material (i.e., packss′ > 0) are not double counted. 4.2.4. Objective Function.

Min

∑ react(i)

(22)

i∈IT1

The objective function for the level 2 decomposition model is to minimize the total number of first-stage tasks included so that the size and complexity of the resulting short-term scheduling problem is not too large while still maintaining a minimum level of utilization of the first-stage units, or type 1 units. The formulation for the level 2 decomposition problem described above is an MILP problem and can easily be solved to optimality. 5. Short-Term Scheduling Model Once the decomposition model has determined the days in the time horizon and the products to be included, a novel continuous-time formulation for short-term scheduling with multiple intermediate due dates is applied to determine the detailed production schedule. This formulation is based on the models of Floudas and co-workers36-41 and is expanded and enhanced in this work to take into account specific aspects of the problem under consideration.

8240

Ind. Eng. Chem. Res., Vol. 45, No. 25, 2006

5.1. Basic Formulation. The proposed short-term scheduling formulation requires the indices, sets, parameters, and variables listed in the Nomenclature section at the end of this paper. On the basis of this notation, the mathematical model for the shortterm scheduling of an industrial batch plant with intermediate due dates involves the following constraints. 5.1.1. Allocation Constraints.



wv(i,j,n) e 1, ∀j ∈ J, n ∈ N, n e N

max

ST(s,n) ) STO(s) - D(s,n) -

(23)

B(i,j,n), ∑Fcis∑ j∈J i∈Ics

∀s ∈ Sin,

i

n ∈ N, n ) 1 (29) STF(s) ) ST(s,n) - Df(s,n) +

B(i,j,n), ∑ Fpis ∑ j∈J i∈Ips

∀s ∈ Sin,

i

n ∈ N, n ) Nmax (30)

i∈Iin,Ij

These constraints express the requirement that, for each unit j and at each event point n, only one of the tasks that can be performed in the unit (i.e., i ∈ Ij) should take place. 5.1.2. Capacity Constraints. in max capmin ij ·wv(i,j,n) e B(i,j,n) e capij ·wv(i,j,n), ∀i ∈ I ,

j ∈ Ji, n ∈ N, n e Nmax (24) These constraints express the requirement for the batch size of a task i processing in a unit j at event point n, B(i,j,n), to be greater than the minimum amount of material, capmin ij , and less , that can be than the maximum amount of material, capmax ij processed by task i in unit j. If wv(i,j,n) ) 1, then the constraints in eq 24 correspond to lower and upper bounds on the batch size, B(i,j,n), and if wv(i,j,n) ) 0, then the B(i,j,n) variables are forced to be zero. 5.1.3. Storage Constraints.

st(s,n) ) 0, ∀s ∈ Sin, Sst, s ∉ Scpm, Sunl, n ∈ N, n e Nmax (25) These constraints enforce that those states with no intermediate storage have to be consumed by some processing task or storage task immediately after they are produced.

st(s,n) g stcapmin - slcap(s), ∀s ∈ Sin, Scpm, n ∈ N, s n e Nmax (26) The constraints in eq 26 represent the minimum required storage for state s in a dedicated storage tank where this amount can be violated, if necessary, by an amount slcap(s) which is penalized in the objective function. in cpm , n ∈ N, n e Nmax (27) st(s,n) e stcapmax s , ∀s ∈ S , S

The constraints in eq 27 represent the maximum available storage capacity for state s based on the maximum storage capacity of the dedicated storage tank. 5.1.4. Material Balances.

ST(s,n) ) ST(s,n-1) - D(s,n) +

∑ ∑ j∈J Fcis

i∈Isc

decreased by the amount required by the market at event point n, D(s,n).

B(i,j,n-1) ∑ Fpis ∑ j∈J

i∈Ips in

i

B(i,j,n), ∀s ∈ S , n ∈ N, n > 1,

i

The constraints in eqs 29 and 30 represent the material balance on state s at the first and last event points, respectively. The amount of state s at the first event point is equal to the initial amount, STO(s), decreased by any amounts consumed in the first event point or delivered to market at the first event point. The total amount of state s at the end of last event point, STF(s), is equal to the amount at the beginning of the last event point, ST(s,n), increased by any amounts produced at the last event point and decreased by the amount required by the market at the end of the last event point. 5.1.5. Duration Constraints.

Tf(i,j,n) ) Ts(i,j,n) + FixedTimeij·wv(i,j,n) + RateCTij × B(i,j,n), ∀i ∈ Iin, j ∈ Jp ∪ JT6, Ji, n ∈ N, n e Nmax (31) These constraints represent the relationship between the starting and finishing times of task i in unit j at event point n for all processing tasks (i.e., Jp) and all operation type 6 tasks (i.e., JT6), where FixedTimeij are the fixed processing times for batch tasks and zero for continuous tasks and RateCTij are the inverse of processing rates for continuous tasks and zero for batch tasks, respectively.

Tf(i,j,n) g Ts(i,j,n), ∀i ∈ Iin, j ∈ JT4, Ji, n ∈ N, n e Nmax (32) The constraints in eq 32 also represent the relationship between the starting and finishing times of task i in unit j at event point n, but for operation type 4a and 4b tasks (i.e., JT4). They do not impose exact durations for tasks in these units but just enforce that all tasks must end after they start.

Tf(i,j,n) ) H, ∀s ∈ Sin, Sst, s ∉ Sunl, i ∈ Iin, Ips , j ∈ JT4, Ji, n ∈ N, n ) Nmax (33) These constraints are written only for tasks in units which are processing a nonstorable state (i.e., Sst and not Sunl) and enforce that task i taking place at the last event point n must finish at the end of the horizon. 5.1.6. Sequence Constraints: Same Task in the Same Unit.

Ts(i,j,n+1) g Tf(i,j,n) + ExtraTimei·wv(i,j,n), ∀i ∈ Iin, j ∈ Ji, n ∈ N, n < Nmax (34)

n e Nmax (28) According to these constraints, the amount of material of state s at event point n is equal to that at event point n - 1 increased by any amounts produced at event point n - 1, decreased by any amounts consumed at event point n, and

These sequence constraints state that task i starting at event point n + 1 should start after the end of the same task performed in the same unit j which has finished at the previous event point, n, where extra time is added after task i at event point n, if necessary.

Ind. Eng. Chem. Res., Vol. 45, No. 25, 2006 8241

5.1.7. Sequence Constraints: Different Tasks in the Same Unit.

Ts(i,j,n+1) g Tf(i',j,n) + (τi'i + ExtraTimei')·wv(i',j,n) H[1 - w(i',j,n)], ∀j ∈ J, i, i' ∈ Iin, Ij, i * i', n ∈ N, n < Nmax (35) The constraints in eq 35 are written for tasks i and i′ that are performed in the same unit j at event points n + 1 and n, respectively. If both tasks take place in the same unit, they should be at most consecutive. Thus, if task i′ occurs at event point n, then the starting time of the following task must be greater than the finishing time of that task, (i.e., Ts(i,j,n+1) g T f(i′,j,n)) plus any cleanup and extra time. However, if task i′ does not occur at event point n, then the constraint is relaxed and the two times are not related. 5.1.8. Sequence Constraints: Different Tasks in Different Units.

Ts(i,j,n+1) g Tf(i',j',n) - H[1 - wv(i',j',n)], ∀s ∈ Sin, i ∈ Iin, Ics , i' ∈ Iin, Ips , j ∈ Ji, j' ∈ Ji', j * j', n ∈ N, n < Nmax (36) These constraints relate tasks i and i′ which are performed in different units j and j′ but take place consecutively according to the production recipe. Note that, if task i′ finishes in unit j′ at event point n, then we have Ts(i,j,n+1) g T f(i′,j′,n) and, hence, task i in unit j has to start after the end of task i′ in unit j′. Otherwise, the constraint is relaxed and the two times are not related. 5.1.9. Sequence Constraints: Zero-Wait Condition for Different Tasks in Different Units.

T (i,j,n+1) e T (i',j',n) + H[2 - wv(i',j',n) - wv(i,j,n+1)], ∀s ∈ Sin, Sst, s ∉ Sunl, i ∈ Iin, Ics , i' ∈ Iin, Ips , j ∈ Ji, s

suitable for order k if i ∈ Ik and is an operation type 6 task for a category 1 product if i ∈ IT6b. Thus, each order should be processed by at least one task, depending on its amount, and the slack variable slorder(k) indicates if order k was not met with at least one task and is penalized in the objective function. Similarly, the constraints in eq 39 enforce the condition that each order k for category 1 product state s on day d can be met with at most rkksd/Bmin s  tasks. Together, the constraints in eqs 38 and 39 provide lower and upper bounds on the number of tasks that can be used to meet a specific order k.

suitij·y(i,k,n) g ∑ ∑ ∑ j∈J

k∈Kin,Ki

wv(i,j,n), ∀i ∈ Iin, IT6b,

j∈Ji,JT6

i

n ∈ N, n e Nmax (40)





y(i,k,n) e

k∈Kin,Ki

wv(i,j,n), ∀i ∈ Iin, IT6b, n ∈ N,

j∈Ji,JT6

n e Nmax (41) The constraints in eqs 40 and 41 link the delivery of order k through task i at event point n to the beginning of task i in any suitable unit j at event point n so that every category 1 operation type 6 task must be linked to at least one order delivery and vice versa. Thus, the constraint in eq 40 enforces that, if a binary variable is activated for operation type 6 task i, then at least one order delivery must be activated. Similarly, the constraint in eq 41 ensures that, if no binary variables are activated for operation type 6 task i at event point n, then no delivery variables can be activated. In this way, the delivery of each order is linked to the operation type 6 task used to make the product state for the order.

kD(k,s,n+1) + kDf(k,s,n+1) g C(1 - y(i,k,n)), ∀s ∈ S , S in



i∈Iin,Ik,IT6b





y(i,k,n) + slorder(k) g 1, ∀k ∈ K

in



k∈Kin,K

kD(k,s,n), ∀s ∈ Sin, Scat1, n ∈ N, s

n∈N neNmax



i∈Iin,Ik,IT6b n∈N neNmax

y(k,i,n) e

, k ∈ Kin, Ks, i ∈ Ik, IT6b,

The constraints in eq 42 relate the individual order delivery variables to the batch size of the operation type 6 task used to satisfy the order. If an order k is met by task i at event point n (i.e., y(i,k,n) ) 1), then at least one operation type 6 task is active for task i at event point n and, thus, at least one B(i,j,n) variable is >0. Consequently, these constraints ensure that the individual order delivery variable for order k takes on a value greater than or equal to the batch size of the operation type 6 task used to satisfy the order. Note that kD(k,s,n+1) and kDf(k,s,n+1) are both order delivery variables for order k of state s at event point n + 1; however, kDf(k,s,n+1) is only defined for the last event point, since it indicates deliveries made after the last event point. Also, C is a large, positive constant used to relax the constraint if necessary. It must be as large as the maximum batch size for task i in any suitable unit j.

D(s,n) ) (38)

cat1

n ∈ N, n < Nmax (42)

j' ∈ Ji', j * j', n ∈ N, n < Nmax (37) These constraints are written for different tasks i and i′ that take place consecutively with the intermediate state s having no possible intermediate storage and, thus, subject to the zerowait condition. Combined with the constraint in eq 36, these constraints enforce that task i in unit j at event point n + 1 starts immediately after the end of task i′ in unit j′ at event point n if both tasks are activated. 5.1.10. Order Satisfaction Constraints. The order satisfaction constraints provided here are written to ensure that all orders for category 1 products are met on time and with the required amount. Both under- and overproduction as well as early and late production are represented with slack variables that are penalized in the objective function. Note that these constraints can be modified to represent different requirements for production, if desired.

B(i,j,n) ∑ j∈J i

f

n e Nmax (43)

∑ ∑

s∈Sin,Scat1 d∈Din sls>0 rkksd>0

  rkksd Bmin s

, ∀k ∈ K

in

Df(s,n) )



kDf(k,s,n), ∀s ∈ Sin, Scat1, n ∈ N,

k∈Kin,Ks

n ) Nmax (44) (39)

The constraints in eq 38 try to ensure that each order k is met at least one time with operation type 6 task i, where task i is

The constraints in eqs 43 and 44 relate the individual order delivery variables to the overall delivery variables used in the material balance constraints. From the constraints in eq 42, the

8242

Ind. Eng. Chem. Res., Vol. 45, No. 25, 2006

individual order delivery variables are related to the batch size of the operation type 6 task used to satisfy an order. Thus, to properly link the material used to satisfy individual orders with the material balances of product states, constraints are needed to sum the individual order delivery variables to generate overall order delivery variables that can then be included in the mass balances for each product state s at each event point n.



[kD(k,s,n+1) + kDf(k,s,n+1)] + sla1(k,s,d) g

n∈N n 0 (45)



[kD(k,s,n+1) + kDf(k,s,n+1)] + stf(s) -

n∈N n 0 (46) in

in

These constraints determine the under- and overproduction, respectively, of order k for state s on day d. The constraints in eq 45 try to enforce the individual order delivery variables to exceed the amount due for order k (i.e., rkksd) where slack variables sla1(k, s, d) are activated in the case of underproduction. Similarly, the constraints in eq 46 try to enforce the individual order delivery variables plus any amount of the product state left at the end of the horizon not to exceed the amount due for order k, where slack variables sla2(k,s,d) are activated in the case of overproduction. Note that both of these slack variables are penalized in the objective function.

Tf(i,j,n) - slt1(k,s,d,n) e duek(k,s,d) + H(2 - wv(i,j,n) y(i,k,n)), ∀s ∈ Sin, Scat1, k ∈ Kin, Ks, i ∈ Iin, Ik, IT6b, j ∈ Ji, n ∈ N, n e Nmax, d ∈ Din, rkksd > 0 (47) T f(i,j,n) + slt2(k,s,d,n) g (duek(k,s,d) - 24) H(2 - wv(i,j,n) - y(i,k,n)), ∀s ∈ Sin, Scat1, k ∈ Kin, Ks, i ∈ Iin, Ik, IT6b, j ∈ Ji, n ∈ N, n e Nmax, d ∈ Din, rkksd > 0 (48) These constraints determine the late and early production, respectively, of order k for state s on day d. The constraints in eq 47 try to enforce the finishing time of task i used to satisfy order k at event point n to be less than the due date of order k where slack variables slt1(k,s,d,n) are activated in the case of late production. Similarly, the constraints in eq 48 try to enforce the finishing time of task i used to fulfill order k at event point n to be greater than the beginning of the day d on which the order is due (i.e., duek(k,s,d) - 24). Otherwise, slack variables slt2(k,s,d,n) are activated indicating early production. Both slack variables are penalized in the objective function. 5.1.11. Demand Satisfaction Constraints.

tot(s) ) stf(s) +





(51)

The constraints in eqs 49-51 are used to determine the overall underproduction for both category 1 and 2 products in the current time horizon. First, the constraints in eq 49 determine the total production for all product states s (i.e., tot(s)) in the current horizon. Then, the constraints in eq 50 sum the overall delivery variables for category 1 products and activate the slack variables sll(s) if the sum does not exceed the demand for category 1 product state s. Similarly, the constraints in eq 51 calculate the amount of underproduction (i.e., sll(s)) for category 2 product state s based on its overall demand in the time horizon. The slack variable sll(s) is then penalized in the objective function, where category 1 and 2 products can be penalized at different weights.

∑ ∑∑

in rw B(i,j,n) + sllraw(s) g demraw s , ∀s ∈ S , S ,

i∈Iin, Ips j∈Ji n∈N neNmax in f

s' ∈ S , S , praws's > 0, dems' > 0, demraw s > 0 (52)

The constraints in eq 52 determine the amount of underproduction for intermediate product states s that are needed as raw materials for final product states s'. Thus, the total amount of material processed by task i used to make raw material state s must exceed the demand for the raw material. Otherwise, the slack variable sllraw(s) is activated and then penalized in the objective function. 5.1.12. Bound Constraints. The bound constraints are used to impose lower and upper bounds on the continuous variables including slack variables. They are also used to fix some binary and continuous variables to be zero when necessary.

Tf(i,j,n) g startj, ∀i ∈ I, j ∈ Ji, n ∈ N T s(i,j,n) g startj, ∀i ∈ I, j ∈ Ji, n ∈ N Tf(i,j,n) e H, ∀i ∈ I, j ∈ Ji, n ∈ N Ts(i,j,n) e H, ∀i ∈ I, j ∈ Ji, n ∈ N STO(s) ) 0, ∀s ∉ S0 f STF(s) e demtot s , ∀s ∈ S f tot(s) e demtot s , ∀s ∈ S

D(s,n), Df(s,n) ) 0, ∀s ∉ Sp or n ∈ N, n > Nmax D(s,n), Df(s,n) e

∑ ∑ rk(k,s,d),

∀s ∈ Sp, n ∈ N,

d ∈ Dink ∈ Kin

n e Nmax kD(k,s,n), kDf (k,s,n) ) 0, ∀k ∉ Kin or s ∉ Sk or n ∈ N, n > Nmax

[D(s,n) + Df(s,n)], ∀s ∈ Sin (49)

n∈N neNmax

n∈N neNmax

tot(s) + sll(s) g dems, ∀s ∈ Sin, Scat2

kD(k,s,n), kDf(k,s,d ) e



rk(k,s,d ), ∀s ∈ Sk, n ∈ N,

d ∈ Din

[D(s,n) + Df(s,n)] + sll(s) g dems, ∀s ∈ Sin, Scat1 (50)

n e Nmax cpm slcap(s,n) e stcapmin s , ∀s ∈ S

(53)

Ind. Eng. Chem. Res., Vol. 45, No. 25, 2006 8243

sla1(k,s,n), sla2(k,s,n) ) 0, ∀k ∉ Kin or s ∉ Sk or

Minimization of Number of Binary Variables.

d ∉ Din or rk(k,s,d) ) 0 sla1(k,s,n) e rk(k,s,d), ∀k ∈ K , s ∈ Sk, d ∈ D in

Min

∑∑ ∑

in in sla2(k,s,n) e demtot s , ∀k ∈ K , s ∈ Sk, d ∈ D

slt1(k,s,d,n), slt2(k,s,d,n) ) 0, ∀k ∉ Kin or s ∉ Sk or d ∉ Din or rk(k,s,d) ) 0 or n ∈ N, n > Nmax

Min

d ∈ D , n ∈ N, n e N

n ∈ N, n e Nmax sll(s) e dems, ∀s ∈ Sp

D(s,n), Df(s,n) ) 0, ∀s ∉ Sin or n ∈ N, n > Nmax 5.1.13. Objective Function. There are several different objective functions that can be employed with a general shortterm scheduling problem. In this work, we maximize the sale of final products while penalizing several other terms including the slack variables introduced previously. Each of the terms is defined below. Maximization of Sales.

prices·tot(s)

(54)

This term represents the maximization of the value of the final products and is the main term of the objective function. Minimization of Starting Times of Tasks.

∑∑ ∑

Ts(i,j,n)·wv(i,j,n)

(55)

n∈N neNmax

This term seeks to minimize the sum of the starting times of all active processing tasks. This is done to encourage all tasks to start as early as possible in the scheduling horizon. Note that this results in a bilinear term which can be replaced with an equivalent linear term and set of constraints as follows.50

Min

∑∑ ∑

i∈Iin j∈Ji

(62)

This term minimizes the number of category 1 orders k that are not filled in the time horizon. Minimization of Individual Order Amount Slack Variable.

Min

tts(i,j,n)

(56)

n∈N neNmax

s.t. tts(i,j,n) e Ts(i,j,n), ∀i ∈ Iin, j ∈ Ji, n ∈ N, n e Nmax (57) tts(i,j,n) e H·wv(i,j,n), ∀i ∈ Iin, j ∈ Ji, n ∈ N, n e Nmax (58) tts(i,j,n) g Ts(i,j,n) - H(1 - wv(i,j,n)), ∀i ∈ Iin, j ∈ Ji, n ∈ N, n e Nmax (59)

∑ ∑ ∑ sla1(k,s,d) + µ·sla2(k,s,d )

(63)

k∈Kin s∈Scat1 d∈Din

This term minimizes the amount of over- and underproduction of orders for category 1 products in the time horizon, where the coefficient µ allows over- and underproduction to be penalized by different amounts. Minimization of Individual Order Due Date Slack Variable.

s∈Sin,Sp

i∈Iin j∈Ji

(61)

k∈Kin

n > Nmax

Min

∑ slorder(k)

Min

wv(i,j,n), B(i,j,n) ) 0, ∀i ∉ Iin or j ∉ Ji or n ∈ N,



∑ priors·sll(s)

This term seeks to minimize the slack variable that is activated when product state s does not meet its overall demand for the time horizon. Coefficient priors allows the ability to assign different weights to different product states. Minimization of Orders Satisfaction Slack Variable.

rw sllraw(s) e demraw s , ∀s ∈ S

Max

y(i,k,n) (60)

s∈Sf

max

slt2(k,s,d,n) e duek(k,s,d ), ∀k ∈ Kin, s ∈ Sk, d ∈ Din,

∑∑ ∑

k∈Kin i∈Ik n∈N neNmax

This term seeks to minimize the number of active binary variables in the final production schedule. Minimization of Overall Demand Satisfaction Slack Variable.

slt1(k,s,d,n) e H - duek(k,s,d), ∀k ∈ Kin, s ∈ Sk, in

wv(i,j,n) +

i∈Iin j∈Ji n∈N neNmax

in

Min

∑ ∑ ∑ n∈N ∑

µ·slt1(k,s,d,n) + slt2(k,s,d,n) (64)

k∈Kin s∈Scat1 d∈Din

neNmax

This term seeks to minimize the amount of early and late production of orders for category 1 products due in the time horizon where the coefficient µ allows early and late production to be penalized to different degrees. Minimization of Raw Material Demand Slack Variable.

Min

raw ∑ priorraw s ·sll (s)

(65)

s∈Srw

This term minimizes the slack variables activated when insufficient raw material state s is produced during the time horizon where priorraw allows different states to be penalized by s different amounts. Minimization of Minimum Tank Inventory Slack Variable.

Min

∑ ∑

slcap(s,n)

(66)

s∈Scpm n∈N neNmax

This term seeks to minimize the slack variables activated when insufficient intermediate state s is stored in its dedicated storage tank at each event point.

8244

Ind. Eng. Chem. Res., Vol. 45, No. 25, 2006

Then, by combining all of these terms, the overall objective function becomes



Max ω

-κ [

∑∑ ∑

wv(i,j,n) +

∑∑∑

y(i,k,n)]

∑ priors·sll(s) - φ ∑ slorder(k)

∑ ∑ ∑

∑ ∑

k∈Kin i∈Ik n∈N neNmax

s∈Sf

-R[

tts(i,j,n)

i∈Iin j∈Ji n∈N neNmax

i∈Iin j∈Ji n∈N neNmax



∑∑ ∑

prices·tot(s) - λ

s∈Sin,Sp

i∈Iin,Ij

∑ ∑ ∑ ∑

sla1(k,s,d) + µ·sla2(k,s,d)] µ·slt1(k,s,d,n) + slt2(k,s,d,n)]

k∈Kin s∈Scat1 d∈Din n∈N neNmax



raw ∑ priorraw s ·sll (s) - δ ∑ ∑ n∈N

s∈Srw

FixedTimeij·wv(i,j,n) e H, ∀j ∈ J

(68)

n∈N neNmax

(67)

k∈Kin

k∈Kin s∈Scat1 d∈Din

-β[

5.2.1. Tightening of Task Durations. Following the tightening constraints defined in Janak et al.,41 the constraints in eq 68 are introduced to tighten the relaxed solution of the proposed formulation. Specifically, these constraints tighten the formulation by enforcing the condition that the summation of the processing times of the tasks assigned to a specific unit j should be less than or equal to the time horizon.

slcap(s,n)

s∈Scpm

neNmax

where each of the coefficients is used to balance the relative weight of each term in the overall objective function. Typical values for each of the coefficients are as follows: ω ) 1, λ ) 1, κ ) 10, γ ) 1000, φ ) 1000, R ) 2000, β ) 500, µ ) 0.01, η ) 50, and δ ) 10. ω is the coefficient for the maximization of sales term in the objective function, and since this term is the main term, ω typically should have a value ∼1. In addition, λ and κ are used to minimize the starting times of tasks and the number of active binary variables, respectively, and each should be on the order of 10, so that these terms are each approximately an order of magnitude less than the maximization of sales term. Also, γ, φ, R, and β are each used to weight the slack variables corresponding to demand and order satisfaction in both amount and due date and should have values on the order of 1000. Note that, the larger these coefficients, the more heavily unmet demands and due dates are penalized. Thus, for cases when notable demands are unmet (i.e., more than a few percent), these terms should be similar in size to the maximization of sales term, and for cases when significant demands are unmet (i.e., 20% or more), these terms should dominate the overall objective function value. The coefficient µ is used to balance the relative values of the slack variables for over- versus underproduction and late versus early production so that a small value of µ causes underproduction and late production to be more heavily penalized. Finally, η and δ are coefficients for the artificial demands on raw materials and minimum tank inventories, respectively, both of which are relatively less important than the other objective function terms. Thus, they are given smaller weights on the order of 10. 5.2. Additional Constraints. The mathematical formulation for short-term scheduling described in the previous section results in an MILP problem which can be solved with a commercial solver, such as CPLEX.51 Although the unit-specific continuous-time formulation has been shown to be computationally effective compared to other existing formulations, solving the resulting MILP problem can still be very computationally challenging (e.g., the solution may require considerable CPU time for proof of optimality of the short-term scheduling problem). Thus, to improve the modeling and solution of the short-term scheduling problem, the following constraints are considered.

The addition of the constraints in eq 68 leads to relaxed solutions with smaller sums of processing times, or smaller durations. This in turn leads to fewer activated binary variables and tightens the bounds on the continuous variables. Then, because the continuous variables appear in the objective function, the addition of these constraints can result in tighter relaxations. 5.2.2. Restrictions on Binary Variables. To ensure good utilization of the first-stage units, or type 1 units, the following constraint is formulated to force a minimum number of tasks to take place.

∑ ∑ ∑

wv(i,j,n) g mintasks

(69)

j∈JT1 i∈Iin,Ij n∈N neNmax j∉JT5

The constraint in eq 69 forces a minimum number of binary variables wv(i,j,n) to be active in the type 1 units (i.e., j ∈ JT1), where the type 1 units used in the type 5 unit campaign are excluded. The minimum number of active tasks, mintasks, is determined using the demand for each product, dems, and the maximum suitable batch size used to produce product state s, Bmax s , as follows.

mintasks )



s∈Sp dems>0

  dems Bmax s

(70)

Note that this constraint can be modified to provide an upper bound on the number of active binary variables and can also be written on a unit-specific or even task-specific basis. 5.2.3. Number of Event Points. The number of event points used in each short-term scheduling horizon can be determined in a straightforward manner. This is done using both the number of days in the horizon and the average processing time of the tasks in the bottleneck units. The number of event points in a horizon is calculated as follows,

Nmax )

 

24 (|Din| + 1) PTavg

(71)

where Nmax is the total number of event points, PTavg is the average processing time for tasks in the bottleneck units, and |Din| is the total number of days in the current horizon. Note that a 1 is added to the expression to make sure that there are a few additional event points. Thus, for the industrial batch plant under consideration, the first step in the STN of Figure 1 for most products is an operation type 1 task. Since the type 1 units employed for these tasks can be used by many products, they are more heavily utilized than other units and are the bottleneck units. The average processing time across all operation type 1 tasks for all products in the type 1 units is between 12 and 20 h. Thus, we have Nmax ) 24/12(|Din| + 1). So if there are 4 days in a subhorizon (i.e., |Din| ) 4), then there are 10 event points in the model used for that horizon.

Ind. Eng. Chem. Res., Vol. 45, No. 25, 2006 8245

Figure 3. Distribution of demands.

5.3. Campaign Mode Production. Campaign mode production is utilized as a part of normal production scheduling for plants that have regular or stable demand patterns and for plants that want to avoid product changeovers. In this study, changeovers of products processed in the type 5 unit can be undesirable, meaning that campaigns of continuous production for a single product need to be enforced. However, because of the potentially complicated raw material and storage requirements for products processed in the type 5 unit, it is necessary to determine the campaign mode production for each of the product campaigns separately and in advance of the regular production scheduling. Thus, to achieve this, a separate short-term scheduling model is solved for each product campaign in sequence until all the product campaigns have been determined. Then, the campaign mode production is fixed in the regular scheduling problem, yielding short-term production schedules that maintain campaign mode production without violating any of the raw material or storage requirements. Note that when the campaign mode production is fixed in the regular scheduling problem, it may be necessary to add one or more event points to the scheduling model to ensure that enough tasks from the campaign can be fixed in the schedule in order to avoid raw material and storage conflicts. 5.3.1. Data for Campaign Mode Production. To determine the campaign mode production, we must know which products should be assigned to each day in the overall horizon and how long each product should process on each day. From this information, we can determine the number of individual product campaigns and the duration of each. Note that, if a single product campaign is excessively long, it can be split up into two or more separate campaigns for the same product. 5.3.2. Model for Campaign Mode Production. Once the data for each campaign has been determined, a variation of the short-term scheduling model presented in Section 5.1 is used to determine the production schedule for each individual product campaign. The constraints in eqs 23-25, 28-37, part of 53, and 68 are all included in the model, and the objective function is made up of eqs 54, 55, and 60, where the bilinear term in objective eq 55 is again replaced with the constraints in eqs 56-59 and the y(i,k,n) variables are removed from objective eq 60. In addition, the variables and constraints used in the campaign production scheduling model are indexed only over

Table 1. Decomposition Results for Example 1

H1 H2 H3 H4 H5 H6 H7 H8

days

main products

additional products

D0-D2 D3-D4 D5-D6 D7-D8 D9-D10 D11-D12 D13-D14 D15-D18

27 31 50 49 37 49 54 45

2 0 0 0 0 0 0 0

the states, tasks, and units utilized in campaign mode production defined by the sets s ∈ ST5, i ∈ IT5, and j ∈ JT5, respectively. This modified short-term scheduling model for campaign mode production results in smaller scheduling problems with better computational performance. Note that more event points can be used in the campaign scheduling model since more tightly scheduled operation type 1 tasks may be necessary in order to satisfy the demands of the campaign. 6. Computational Studies In this section, two example problems are presented to demonstrate the effectiveness of the rolling-horizon framework. Both examples use the proposed framework to determine the medium-range production schedule of an industrial batch plant for a two-week time period which satisfies customer orders for various products distributed throughout the time period. The first example considers production scheduling without any campaign mode production, while the second example incorporates campaign mode production before the overall production scheduling. Both examples are implemented with GAMS 2.5052 and are solved using CPLEX51 with a 3.20 GHz Linux workstation. The dual simplex method is used with best-bound search and strong branching. A relative optimality tolerance equal to 0.001% was used as the termination criterion along with a 3 h time limit and an integer solution limit of 40. The following values are used for the coefficients in the objective function: ω ) 0.5, λ ) 1.0, κ ) 50, γ ) 1000, φ ) 500, R ) 2000, β ) 500, µ ) 0.01, η ) 50, and δ ) 5. The distribution of demands for the entire two-week time period is shown in Figure 3, where the amounts are shown in relative terms. There are two categories of products, category

8246

Ind. Eng. Chem. Res., Vol. 45, No. 25, 2006

Figure 4. Overall production schedule for processing units for example 1.

1 and 2, and a total of 67 different products have demands. There are two different campaign products that can be scheduled for campaign mode production, and an additional eight intermediate products are used to make final products, even though they do not have demands. It is assumed that no final products are available at the beginning of the time horizon although some intermediate materials are available. Also, we assume no limitation on external raw materials, and the zero-wait condition is applied to all intermediate materials unless they are used as raw materials for other final products. In this case, unlimited intermediate storage is allowed. Note that finite intermediate storage is effectively modeled for those intermediates that have a dedicated storage task with a given capacity limit. In addition, there are two types of connections made between each consecutive short-term scheduling horizon in the rolling-horizon framework: the initial available time for each unit and the inventory of intermediate materials. The processing recipes used to make the different products are shown in Figure 1. Operation type 1, 2, 3, 4a, and 4b tasks are performed in a batch mode, while operation type 5 and 6 tasks are performed in a continuous mode. The processing time or processing rate of each task is dependent on both the product and the unit, and the capacity limits of the operation type 1, 2, and 3 tasks vary from one product to another, while the capacity limits of the remaining tasks are the same for all suitable products. When switched from one type of product to another, some units need a cleaning time between tasks. 6.1. Example 1: Nominal Run without Campaign Mode Production. The first example considers the production scheduling of an industrial batch plant where no type 5 unit campaign is imposed. Instead, demands for both campaign products are created throughout the time horizon with a total demand for each product equal to the production imposed by the campaign

in Example 2. There are demands interspersed for all the products from days D1 to D14, as seen in Figure 3, and the total time period is 19 days, from D0 to D18. The rolling-horizon framework decomposes the time horizon into eight individual subhorizons, each with its own products and demands. The results of the decomposition for each time horizon can be seen in Table 1. The final production schedule for the entire time period can be seen in Figures 4 and 5 where the processing units (operation types 1, 2, 3, and 5) are shown in the first figure and the other units (operation types 4a, 4b, and 6) are shown in the second. Each short-term scheduling horizon is represented with a different color beginning with black for the first horizon, red for the second horizon, green for the third horizon, etc. The model and solution statistics for each short-term scheduling horizon can be seen in Table 2, where each horizon runs for the time limit of 3 h. The total demand for the entire 14-day period is 2323.545 and the total production is 2744.005, where 51.674 of the demands are not met. The production schedules obtained satisfy demands for almost all the products, though some due dates are relaxed, and also produce 18.10% more material than the demands require. Many of the processing units are not fully utilized, as shown in Table 3, indicating the potential for even more production in the given time period. Also, note that the processing units become more idle toward the end of the overall time horizon. This is because no demands are specified for the days following day D14 including days D15-D18. Additional demands at the end of the overall time horizon or in the following days would generate a more heavily utilized production schedule. 6.2. Example 2: Nominal Run with Campaign Mode Production. The second example considers the production

Ind. Eng. Chem. Res., Vol. 45, No. 25, 2006 8247

Figure 5. Overall production schedule for nonprocessing units for example 1. Table 2. Model and Solutions Statistics for Example 1

H1 H2 H3 H4 H5 H6 H7 H8

days

event points

objective function

D0-D2 D3-D4 D5-D6 D7-D8 D9-D10 D11-D12 D13-D14 D15-D18

8 6 6 6 6 6 6 10

14 001.69 4 135.24 -105 854.81 -5 496.19 -15 352.37 -11 326.13 -19 401.39 -37 054.00

Table 3. Unit Utilization Statistics for Example 1

binary continuous variables variables constraints 4 880 3 660 5 478 5 376 4 296 5 490 5 568 7 430

33 064 24 923 32 621 32 167 27 613 32 637 32 955 46 827

187 833 125 374 258 852 255 696 175 939 272 802 282 632 321 162

scheduling of an industrial batch plant where production in the type 5 unit is fixed to yield campaigns of predetermined length. The production in the type 5 unit and the associated units (type 1 and 4b units) is then determined before considering the overall scheduling problem so that the type 1 units may also be used to produce other products in the overall production schedule, if possible. The same demands as for Example 1 are used, as seen in Figure 3, and the total time period is again 19 days, from D0 to D18. The rolling-horizon framework decomposes the time horizon into eight individual subhorizons, each with its own products and demands. The results of the decomposition for each time horizon can be seen in Table 4. Note that the decomposition results are very similar to those in Example 1, where no type 5 unit campaign is imposed. The production schedule for the units used to determine the type 5 unit campaign can be seen in Figure 6. The final

unit

time used (h)

time left (h)

percent utilized

type 1-1 type 1-2 type 1-3 type 1-4 type 1-5 type 1-6 type 1-7 type 1-8 type 1-9 type 1-10 type 1-11 type 1-12 type 1-13 type 5

98.00 341.00 329.60 396.00 283.20 402.00 408.00 281.00 322.00 322.20 312.20 177.00 201.00 362.04

358.00 115.00 126.40 60.00 172.80 54.00 48.00 175.00 134.00 133.80 143.80 279.00 255.00 93.96

21.49% 74.78% 72.15% 80.92% 62.06% 88.16% 89.47% 61.62% 70.61% 70.66% 68.46% 38.82% 44.08% 79.39%

Table 4. Decomposition Results for Example 2

H1 H2 H3 H4 H5 H6 H7 H8

days

main products

additional products

D0-D2 D3-D4 D5-D6 D7-D8 D9-D10 D11-D12 D13-D14 D15-D18

27 31 51 53 43 53 56 40

1 0 0 0 0 0 0 0

production schedule for the entire time period can be seen in Figures 7 and 8, where the processing units are shown in the first figure and the other units are shown in the second. Each

8248

Ind. Eng. Chem. Res., Vol. 45, No. 25, 2006

Figure 6. Production schedule for units used in campaign production for example 2.

Figure 7. Overall production schedule for processing units for example 2.

short-term scheduling horizon is again represented with a different color. The model and solution statistics for each shortterm scheduling horizon can be seen in Table 5, where each horizon runs for the time limit of 3 h. The total demand for the entire 14-day period is 2323.545, and the total production is 2719.859, where 15.00 of the demands are not met. The production schedules obtained satisfy demands for all but one product, though some due dates are relaxed, and also produce 17.06% more material than the demands require. Note that, in this example, both of the campaign products exceed the production that is generated by the type 5 unit campaign in Example 1, indicating that the usage of campaign mode production does provide for more efficient utilization of the type 5 unit. In addition, many of the processing units are not fully utilized, as shown in Table 6, indicating the

potential for even more production in the given time period. When compared with the utilization results for Example 1, the type 5 unit is more fully utilized at 82.13% versus 79.39% from Example 1. This is, of course, a direct result of imposing a type 5 unit campaign. In addition, the type 1 units used to make the intermediate state, I1, for the campaign products (units type 1-4, type 1-6, and type 1-7) are each utilized at a lower percentage. This is because the production in these type 1 units is determined before the overall production scheduling in order to meet the raw material requirements for the type 5 unit campaign. Thus, because other products are not considered when determining the campaign, suboptimal schedules can be generated for these type 1 units which leave very little room for additional tasks to be scheduled.

Ind. Eng. Chem. Res., Vol. 45, No. 25, 2006 8249

Figure 8. Overall production schedule for nonprocessing units for example 2. Table 5. Model and Solutions Statistics for Example 2

H1 H2 H3 H4 H5 H6 H7 H8

days

event points

objective function

D0-D2 D3-D4 D5-D6 D7-D8 D9-D10 D11-D12 D13-D14 D15-D18

9 7 9 6 10 9 6 10

18 404.23 25 187.02 -225 587.48 -202 344.24 -264 373.86 -8 734.37 30 567.81 -1 094.54

Table 6. Unit Utilization Statistics for Example 2

binary continuous variables variables constraints 4 914 4 261 8 229 5 791 8 086 8 703 5 665 7 629

34 778 28 997 48 716 33 954 49 648 50 750 33 405 47 467

172 846 149 578 400 480 287 523 374 037 461 415 277 410 383 253

7. Conclusions In this paper, a unit-specific event-based continuous-time formulation is presented for the medium-term production scheduling of a large-scale, multipurpose industrial batch plant. The proposed formulation takes into account a large number of processing recipes and units and incorporates several features including various storage policies (UIS, NIS, and ZW), variable batch sizes and processing times, batch mixing and splitting, sequence-dependent changeover times, intermediate due dates, products used as raw materials, and several modes of operation. The scheduling horizon is several weeks or longer; however, longer time periods can be addressed with the proposed framework. A key feature of the proposed formulation is the use of a decomposition model to split the overall scheduling horizon into smaller subhorizons which are scheduled in a sequential fashion. Also, new constraints are added to the short-

unit

time used (h)

time left (h)

percent utilized

type 1-1 type 1-2 type 1-3 type 1-4 type 1-5 type 1-6 type 1-7 type 1-8 type 1-9 type 1-10 type 1-11 type 1-12 type 1-13 type 5

152.00 327.00 270.60 368.00 264.80 368.00 368.00 323.60 311.60 268.60 303.20 167.00 162.00 374.52

304.00 129.00 185.40 88.00 191.20 88.00 88.00 132.40 144.40 187.40 152.80 289.00 294.00 81.48

33.33% 71.71% 59.21% 80.70% 58.07% 80.70% 80.70% 70.96% 68.33% 58.90% 66.49% 36.62% 35.53% 82.13%

term scheduling model in order to model the delivery of orders at intermediate due dates. The effectiveness of the proposed approach is demonstrated with an industrial case study problem that is solved using two different modes of operation. Results indicate that the rolling-horizon approach is effective at solving large-scale, medium-term production scheduling problems. Acknowledgment The authors gratefully acknowledge support from the National Science Foundation and BASF Aktiengesellschaft, Ludwigshafen, Germany.

8250

Ind. Eng. Chem. Res., Vol. 45, No. 25, 2006

Nomenclature

Parameters

LeVel 1 Formulation:

) maximum capacity of task i in unit j capmax ij H ) duration of the time horizon determined in the first level lower ) lower bound on the utilization level of the type 1 units packss′ ) 0-1 parameter to relate category 1 product s to category 2 product s' because they are made from the same intermediate state ) minimum processing time of a task i in all suitable ptmin i units sls ) 0-1 parameter to indicate if product state s is included in the horizon because it has demands in the horizon or in the ahead time stmax ) total production required for product s in the overall s scheduling horizon suitij ) 0-1 parameter to indicate the suitability of task i in unit j

Indices d ) days i ) processing tasks j ) units s ) states Sets D ) days I ) processing tasks Ij ) tasks which can be performed in unit j Is ) tasks which are used to make product s J ) units Ji ) units which can be used to perform task i S ) states Sf ) states which are final products, after operation type 6 Si ) states which are intermediate products, before operation type 6 Sp ) states which are either final or intermediate products ST5 ) states which are processed in the type 5 unit Parameters ahdsd ) amount of ahead time required to produce product s due on day d campsd ) 0-1 parameter to indicate that campaign product s should be produced on day d Df ) last day from the previous scheduling horizon, initially zero fillss' ) 0-1 parameter to relate final product s to its intermediate product s' before the operation type 6 task lasts ) 0-1 parameter to indicate that product s is still processing from the previous horizon LI1 ) coefficient of sum of products term LI2 ) coefficient of penalty term nepd ) number of event points in a day prawss' ) 0-1 parameter to relate final product s to its raw material product s' rsd ) demand for product s due on day d ubin ) upper bound on the allowable number of binary variables uprd ) upper bound on the amount of production in the horizon wts ) weight of product s in objective function Continuous Variables prday(s,d) ) bilinear term for the product of day(d) and pprod(s) slbin ) slack variable to allow extra days to be added to the horizon Binary Variables day(d) ) indicates if day d is included in selected horizon pprod(s) ) indicates if product s is included in selected horizon LeVel 2 Formulation: Sets IT1 ) set of operation type 1 tasks processed in the first-stage units, or type 1 units JT1 ) set of first-stage units, or type 1 units Si ) set of product states s made from material produced by processing task i Scat1 ) final product states of type category 1 Scat2 ) final product states of type category 2

Binary Variables react(i) ) whether to include operation type 1 task i as an additional task in the scheduling model Short-Term Scheduling Formulation: Indices d ) days i ) processing tasks j ) units k ) orders n ) event points representing the beginning of a task s ) states Sets D ) days in the overall scheduling horizon Din ) days in the current scheduling horizon I ) processing tasks Ij ) tasks which can be performed in unit j Ik ) tasks which process order k Ics ) tasks which consume state s Ips ) tasks which produce state s Iin ) tasks which are included in the current scheduling horizon IT5 ) tasks which are used to determine the type 5 unit campaign IT6b ) tasks which are used to perform operation type 6 for category 1 products J ) units Ji ) units which are suitable for performing task i Jp ) units which are suitable for performing only processing tasks, or operation type 1, 2, 3, and 5 tasks JT1 ) units which are suitable for performing only operation type 1 tasks JT4 ) units which are suitable for performing only operation type 4a and 4b tasks JT5 ) units are which used to determine the type 5 unit campaign JT6 ) units which are suitable for performing only operation type 6 tasks K ) orders Ki ) orders which are processed by task i Ks ) orders which produce state s Kin ) orders which are included in the current scheduling horizon N ) event points within the time horizon S ) states Sk ) states which are used to satisfy order k Scat1 ) states which are category 1 final products Scat2 ) states which are category 2 final products

Ind. Eng. Chem. Res., Vol. 45, No. 25, 2006 8251

Scpm ) states which have minimum or maximum storage limitations Sf ) states which are final products, after operation type 6 Si ) states which are intermediate products, before operation type 6 Sin ) states which are included in the current scheduling horizon Sp ) states which are either final or intermediate products Srw ) states which are products and are used as raw materials for other products Sst ) states which have no intermediate storage ST5 ) states which are used to determine the type 5 unit campaign Sunl ) states which have unlimited intermediate storage S0 ) states which are external raw materials Parameters: Bmax ) maximum suitable batch size used to produce product s state s ) minimum suitable batch size used to produce product Bmin s state s C ) large constant (e.g., 10 000) ) maximum capacity for task i in unit j capmax ij capmin ) minimum capacity for task i in unit j ij dems ) demand for state s in the current scheduling horizon demrw s ) demand for raw material product state s demtot s ) total demand for state s in the overall horizon duekksd ) due date of order k for state s on day d ExtraTimei ) amount of time needed for operation type 3 task after processing task i FixedTimeij ) constant term of processing time for task i in unit j H ) time horizon mintasks ) minimum number of tasks that must occur in the first-stage processing units, JT1 max N ) maximum number of event points in the scheduling horizon prawss′ ) 0-1 parameter to relate final product s to its raw material product s' prices ) price of state s priors ) priority of product state s ) priority of raw material state s priorraw s RateCTij ) variable term of processing time for task i in unit j rkksd ) amount of order k for state s on day d startj ) time at which unit j first becomes available in the current scheduling horizon ) maximum capacity for storage of state s stcapmax s stcapmin ) minimum capacity for storage of state s s R ) coefficient for the demand satisfaction of individual orders term β ) coefficient for the due date satisfaction of individual orders term γ ) coefficient for the overall demand satisfaction slack variable term δ ) coefficient for the minimum inventory requirement in dedicated units term η ) coefficient for the artificial demands on raw material states term κ ) coefficient for the minimizing of binary variables term λ ) coefficient for the minimizing of active start times term µ ) small constant (e.g., 0.01) Fcis ) proportion of state s consumed by task i Fpis ) proportion of state s produced by task i τii′ ) sequence-dependent setup time between tasks i and i′ φ ) coefficient for the satisfaction of orders term

ω ) coefficient for the overall production term Continuous Variables B(i,j,n) ) amount of material undertaking task i in unit j at event point n D(s,n) ) amount of state s delivered at event point n Df(s,n) ) amount of state s delivered after the last event point kD(k,s,n) ) amount of state s delivered at event point n for order k kDf(k,s,n) ) amount of state s delivered after the last event point for order k sla1(k,s,d) ) amount of state s due on day d for order k that is not delivered sla2(k,s,d) ) amount of state s due on day d for order k that is overdelivered slcap(s,n) ) amount of state s that is deficient in its dedicated storage unit at event point n sll(s) ) amount of state s due in the current time horizon but not made sllraw(s) ) amount of raw material product state s artificially due in the current time horizon but not made slorder(k) ) 0-1 variable indicating if order k was met slt1(k,s,d) ) amount of time state s due on day d for order k is late slt2(k,s,d) ) amount of time state s due on day d for order k is early ST(s,n) ) amount of state s at event point n STF(s) ) final amount of state s at the end of the current time horizon STO(s) ) initial amount of state s at the beginning of the current time horizon T f(i,j,n) ) time at which task i finishes in unit j at event point n T s(i,j,n) ) time at which task i starts in unit j at event point n tot(s) ) total amount of state s made in the current time horizon tts(i,j,n) ) starting time of the active task i in unit j at event point n Binary Variables wv(i,j,n) ) assigns the beginning of task i in unit j at event point n y(i,k,n) ) assigns the delivery of order k through task i at event point n Literature Cited (1) Reklaitis, G. V. Overview of Scheduling and Planning of Batch Process Operations. Presented at NATO Advanced Study InstitutesBatch Process Systems Engineering, Antalya, Turkey, 1992. (2) Pantelides, C. C. Unified Frameworks for Optimal Process Planning and Scheduling. In Proceedings of the Second International Conference on Foundations of Computer-Aided Process Operations, Crested Butte, CO, 1993; Rippin, D. W. T., Hale, J. C., Davis, J., Eds.; CACHE: Austin, TX, 1993; pp 253-274. (3) Shah, N. Single- And Multisite Planning and Scheduling: Current Status and Future Challenges. In Proceedings of the Third International Conference on Foundations of Computer-Aided Process Operations, AIChE, Snowbird, UT, 1998; Pekny, J. F., Blau, G. E., Eds.; CACHE: New York, 1998; pp 75-90. (4) Floudas, C. A.; Lin, X. Continuous-Time versus Discrete-Time Approaches for Scheduling of Chemical Processes: A Review. Comput. Chem. Eng. 2004, 28, 2109. (5) Floudas, C. A.; Lin, X. Mixed Integer Linear Programming in Process Scheduling: Modeling, Algorithms, and Applications. Ann. Oper. Res. 2005, 139, 131. (6) 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.

8252

Ind. Eng. Chem. Res., Vol. 45, No. 25, 2006

(7) 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. (8) Pinto, J. M.; Grossmann, I. E. Optimal Cyclic Scheduling of Multistage Continuous Multiproduct Plants. Comput. Chem. Eng. 1994, 18, 797. (9) 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, 3037. (10) Pinto, J. M.; Grossmann, I. E. An Alternate MILP Model for ShortTerm Scheduling of Batch Plants with Preordering Constraints. Ind. Eng. Chem. Res. 1996, 35, 338. (11) Pinto, J. M.; Grossmann, I. E. A Logic-Based Approach to Scheduling Problems with Resource Constraints. Comput. Chem. Eng. 1997, 21, 801. (12) Karimi, I. A.; McDonald, C. M. Planning and Scheduling of Parallel Semicontinuous Processes. 2. Short-Term Scheduling. Ind. Eng. Chem. Res. 1997, 36, 2701. (13) Lamba, N.; Karimi, I. A. Scheduling Parallel Production Lines with Resource Constraints. 1. Model Formulation. Ind. Eng. Chem. Res. 2002, 41, 779. (14) Lamba, N.; Karimi, I. A. Scheduling Parallel Production Lines with Resource Constraints. 2. Decomposition Algorithm. Ind. Eng. Chem. Res. 2002, 41, 790. (15) Sundaramoorthy, A.; Karimi, I. A. A Simpler Better Slot-Based Continuous-Time Formulation for Short-Term Scheduling in Multipurpose Batch Plants. Chem. Eng. Sci. 2005, 60, 2679. (16) Cerda´, J.; Henning, G. P.; Grossmann, I. E. A Mixed-Integer Linear Programming Model for Short-Term Scheduling of Single-Stage Multiproduct Batch Plants with Parallel Lines. Ind. Eng. Chem. Res. 1997, 36, 1695. (17) Me´ndez, C. A.; Cerda´, J. Optimal Scheduling of a ResourceConstrained Multiproduct Batch Plant Supplying Intermediates to Nearby End-Product Facilities. Comput. Chem. Eng. 2000, 24, 369. (18) Me´ndez, C. A.; Cerda´, J. An MILP Continuous-Time Framework for Short-Term Scheduling of Multipurpose Batch Processes under Different Operation Strategies. Optim. Eng. 2003, 4, 7. (19) Me´ndez, C. A.; Henning, G. P.; Cerda´, J. An MILP ContinuousTime Approach to Short-Term Scheduling of Resource-Constrained Multistage Flowshop Batch Facilities. Comput. Chem. Eng. 2001, 25, 701. (20) Me´ndez, C. A.; Henning, G. P.; Cerda´, J. Short-Term Scheduling of Multiproduct Batch Plants under Limited Resource Capacity. Lat. Am. Appl. Res. 2001, 31, 455. (21) Lee, K.; Heo, S.; Lee, H.; Lee, I. Scheduling of Single-Stage and Continuous Processes on Parallel Lines with Intermediate Due Dates. Ind. Eng. Chem. Res. 2002, 41, 58. (22) 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, 897. (23) Zhang, X.; Sargent, R. W. H. The Optimal Operation of Mixed Production Facilities - Extensions and Improvements. Comput. Chem. Eng. 1998, 22, 1287. (24) Mockus, L.; Reklaitis, G. V. Mathematical Programming Formulation for Scheduling of Batch Operations Based on Nonuniform Time Discretization. Comput. Chem. Eng. 1997, 21, 1147. (25) Mockus, L.; Reklaitis, G. V. Continuous Time Representation Approach to Batch and Continuous Process Scheduling. 1. MINLP Formulation. Ind. Eng. Chem. Res. 1999, 38, 197. (26) Mockus, L.; Reklaitis, G. V. Continuous Time Representation Approach to Batch and Continuous Process Scheduling. 2. Computational Issues. Ind. Eng. Chem. Res. 1999, 38, 204. (27) Schilling, G.; Pantelides, C. C. A Simple Continuous-Time Process Scheduling Formulation and a Novel Solution Algorithm. Comput. Chem. Eng. 1996, 20, S1221. (28) Castro, P.; Barbosa-Po´voa, A. P. F. D.; Matos, H. An Improved RTN Continuous-Time Formulation for the Short-Term Scheduling of Multipurpose Batch Plants. Ind. Eng. Chem. Res. 2001, 40, 2059. (29) Castro, P.; Barbosa-Po´voa, A. P. F. D.; Matos, H. Optimal Periodic Scheduling of Batch Plants using RTN-based Discrete and ContinuousTime Formulations: A Case Study Approach. Ind. Eng. Chem. Res. 2003, 42, 3346. (30) Majozi, T.; Zhu, X. X. A Novel Continuous-Time MILP Formulation for Multipurpose Batch Plants. 1. Short-Term Scheduling. Ind. Eng. Chem. Res. 2001, 40, 5935.

(31) Lee, K.; Park, H. I.; Lee, I. A Novel Nonuniform Discrete Time Formulation for Short-Term Scheduling of Batch and Continuous Processes. Ind. Eng. Chem. Res. 2001, 40, 4902. (32) Wang, S.; Guignard, M. Redefining Event Variables for Efficient Modeling of Continuous-Time Batch Processing. Ann. Oper. Res. 2002, 116, 113. (33) Maravelias, C. T.; Grossmann, I. E. New General Continuous-Time State-Task Network Formulation for Short-Term Scheduling of Multipurpose Batch Plants. Ind. Eng. Chem. Res. 2003, 42, 3056. (34) Maravelias, C. T.; Grossmann, I. E. A Hybrid MILP/CP Decomposition Approach for the Continuous Time Scheduling of Multipurpose Batch Plants. Comput. Chem. Eng. 2004, 28, 1921. (35) Giannelos, N. F.; Georgiadis, M. C. A Simple New ContinuousTime Formulation for Short-Term Scheduling of Multipurpose Batch Processes. Ind. Eng. Chem. Res. 2002, 41, 2178. (36) Ierapetritou, M. G.; Floudas, C. A. Effective Continuous-Time Formulation for Short-Term Scheduling. 1. Multipurpose Batch Processes. Ind. Eng. Chem. Res. 1998, 37, 4341. (37) Ierapetritou, M. G.; Floudas, C. A. Effective Continuous-Time Formulation for Short-Term Scheduling. 2. Continuous and Semicontinuous Processes. Ind. Eng. Chem. Res. 1998, 37, 4360. (38) Ierapetritou, M. G.; Hene´, T. S.; Floudas, C. A. Effective Continuous-Time Formulation for Short-Term Scheduling. 3. Multiple Intermediate Due Dates. Ind. Eng. Chem. Res. 1999, 38, 3446. (39) Lin, X.; Floudas, C. A. Design, Synthesis and Scheduling of Multipurpose Batch Plants via an Effective Continuous-Time Formulation. Comput. Chem. Eng. 2001, 25, 665. (40) Lin, X.; Floudas, C. A.; Modi, S.; Juhasz, N. M. Continuous-Time Optimization Approach for Medium-Range Production Scheduling of a Multiproduct Batch Plant. Ind. Eng. Chem. Res. 2002, 41, 3884. (41) Janak, S. L.; Lin, X.; Floudas, C. A. Enhanced Continuous-Time Unit-Specific Event-Based Formulation for Short-Term Scheduling of Multipurpose Batch Processes: Resource Constraints and Mixed Storage Policies. Ind. Eng. Chem. Res. 2004, 43, 2516. (42) Shaik, M. A.; Janak, S. L.; Floudas, C. A. Comparative Study of Continuous-Time Models for Short-Term Scheduling of Multipurpose Batch Plants. Ind. Eng. Chem. Res. 2006, accepted for publication. (43) Wilkinson, S. J.; Shah, N.; Pantelides, C. C. Aggregate Modelling of Multipurpose Plant Operation. Comput. Chem. Eng. 1995, 19, S583. (44) Bassett, M. H.; Pekny, J. F.; Reklaitis, G. V. Decomposition Techniques for the Solution of Large-Scale Scheduling Problems. AIChE J. 1996, 42, 3373. (45) Dimitriadis, A. D.; Shah, N.; Pantelides, C. C. RTN-Based Rolling Horizon Algorithms for Medium Term Scheduling of Multipurpose Plants. Comput. Chem. Eng. 1997, 21, S1061. (46) Elkamel, A.; Zentner, M.; Pekny, J. F.; Reklaitis, G. V. A Decomposition Heuristic for Scheduling the General Batch Chemical Plant. Eng. Optim. 1997, 28, 299. (47) Gupta, A.; Maranas, C. D. A Hierarchical Lagrangean Relaxation Procedure for Solving Midterm Planning Problems. Ind. Eng. Chem. Res. 1999, 38, 1937. (48) Harjunkoski, I.; Grossmann, I. E. A Decomposition Approach for the Scheduling of a Steel Plant Production. Comput. Chem. Eng. 2001, 25, 1647. (49) Wu, D.; Ierapetritou, M. G. Decomposition Approaches for the Efficient Solution of Short-Term Scheduling Problems. Comput. Chem. Eng. 2003, 27, 1261. (50) Floudas, C. A. Nonlinear and Mixed-Integer Optimization; Oxford University Press: New York, 1995. (51) CPLEX. ILOG CPLEX 9.0 User’s Manual; ILOG, Inc.: Mountain View, CA, 2005. (52) Brooke, A.; Kendrick, D.; Meeraus, A.; Raman, R. GAMS: A User’s Guide; GAMS: San Francisco, CA, 2003.

ReceiVed for reView January 13, 2006 ReVised manuscript receiVed March 30, 2006 Accepted April 4, 2006 IE0600588