3346
Ind. Eng. Chem. Res. 2003, 42, 3346-3360
Optimal Periodic Scheduling of Batch Plants Using RTN-Based Discrete and Continuous-Time Formulations: A Case Study Approach Pedro M. Castro,*,† Ana P. Barbosa-Po´ voa,‡ and Henrique A. Matos§ Departamento de Modelac¸ a˜ o e Simulac¸ a˜ o de Processos, INETI, 1649-038 Lisboa, Portugal, and Centro de Estudos de Gesta˜ o and Departmento de Engenharia Quı´mica, Instituto Superior Te´ cnico, 1049-001 Lisboa, Portugal
This paper considers the problem of deriving an optimal periodic schedule for an industrial batch plant. Both discrete and continuous-time formulations, based on the general resource task network process (RTN) representation, are employed. For a given cycle time, the proposed discrete-time formulation results in a mixed integer linear programming (MILP) program that can be solved to optimality in a reasonable time, even for a fine discretization of the time grid. The optimal cycle time is then determined by solving a sequence of fixed cycle time problems. On the other hand, the continuous-time formulation results in a mixed integer nonlinear (MINLP) problem that under the assumption of constant throughput becomes a MILP. This can be solved to optimality within reasonable computational effort only for a relatively small number of event points, making it practically impossible to find the global optimum. These results favor the use of the discrete-time formulation over its continuous-time counterpart. 1. Introduction In the chemical processing context, scheduling refers to the procedures and processes of allocating resources and equipment over time to execute the chemical and physical processing tasks required to manufacture chemical products. Scheduling is required whenever there is a competition among activities for scarce resources over time. It is a decision-making process aiming to optimize one or more objectives by taking into account the production requirements and available resources as well as process interaction and their relation to the environment. Batch plants are usually operated in either a shortterm mode or a campaign mode. The short-term mode of operation is appropriate where the demands for the different products are subject to rapid change. The scheduling horizon is relatively short (typically 1 week to 1 month), with schedules showing few similarities from one planning period to the next. On the other hand, campaign-mode operation is appropriate where product demands are stable over extended periods of time. In such cases, plants may be dedicated to a single product or a small subset of their potential products for relatively long periods of time (campaigns), thus reducing the cost of changeovers. In campaign-mode operation, it is often profitable to establish a regular periodic operating schedule in which the same sequence of operations is carried out repeatedly. In particular, the use of an operating cycle of relatively short duration (typically on the order of days) greatly simplifies the operation and control of the plant. The goal of periodic * To whom correspondence should be addressed. Tel.: +351217162712. Fax: +351-217167016. E-mail: pedro.castro@ ineti.pt. † INETI. ‡ Centro de Estudos de Gesta˜o, Instituto Superior Te´cnico. § Departmento de Engenharia Quı´mica, Instituto Superior Te´cnico.
scheduling is to optimize the utilization of resources over a cycle by ignoring the start-up and shutdown phases of the production and, in most cases, to determine the optimal cycle time. These problems have received considerable attention over the past couple of decades. Many diverse approaches, mathematical formulations, and solution algorithms attempting to exploit the characteristics of specific categories of problems have been proposed. However, realistic problems rarely fall entirely within a single category so more recent work has been concentrated on more general representations and algorithms. Reviews can be found in Reklaitis1 and Pantelides.2 Early attempts to establish general scheduling algorithms were based on a uniform discretization of the time horizon. Kondili et al.3 used the concept of the state-task network (STN) and formulated the problem of deriving an optimal short-term schedule as a mixed integer linear program, MILP. Their formulation was then extended to the optimal periodic scheduling of batch plants by the work of Shah et al.4 The key feature of this formulation is the exploitation of the concept of task “wrap-around”. By notionally wrapping around tasks that extend past the end of a cycle to the beginning of the same cycle, Shah et al.4 ensured that the scheduling problem can be formulated and solved in its entirety by modeling the plant operation and the associated constraints over a single cycle. For a given cycle time, the problem is formulated as a MILP, with the optimal cycle time being determined by solving a sequence of fixed cycle time problems. The main limitation of discrete-time representations results from the fact that the duration of all processing tasks must be a multiple of the discretization time, which implies a formulation with a high number of decision variables for reasonable accuracy in realistic applications. This encouraged recent work toward the development of efficient methods of comparable generality based on continuous-time representations, such as
10.1021/ie0203781 CCC: $25.00 © 2003 American Chemical Society Published on Web 06/04/2003
Ind. Eng. Chem. Res., Vol. 42, No. 14, 2003 3347
those proposed by Sahinidis and Grossmann,5 Zhang and Sargent,6 Mockus and Reklaitis,7 Pinto and Grossmann,8 Schilling and Pantelides,9,10 Ierapetritou and coworkers,11-13 and Castro et al.14 The first continuous-time formulation for short-term scheduling based on the resource-task network process representation (RTN), introduced by Pantelides,2 was proposed by Zhang and Sargent.6 Their formulation resulted in a mixed integer nonlinear program, MINLP, which was then linearized in an exact form to give rise to a very difficult to solve MILP problem. Later, Schilling and Pantelides,9 presented a simpler RTN formulation but their resulting MILP model was still very difficult to solve. More recently, the same authors proposed a similar formulation for periodic scheduling (Schilling and Pantelides10). However, the complexity of the underlying mathematical problem, a MINLP that cannot be linearized exactly, is even higher. To solve this problem, a special branch-and-bound algorithm was developed that branches in both discrete and continuous variables and that can be parallelized in an effective manner. To reduce the computational burden associated with the model of Schilling and Pantelides,9 Castro et al.14 proposed a different short-term formulation. Instead of constraining the difference between the absolute times of the two event points (t and t′) to the exact processing time of the task that starts at t and ends at t′, they also allow that difference to be greater than the processing time. In this way, nonlimiting tasks are made to last longer than their processing times in order to decrease the number of event points required to solve the problem. Consequently, simpler and less degenerate mathematical models are obtained, which can be solved in significantly less CPU time. The only disadvantage is that zero-wait policies cannot be guaranteed. In this paper, the idea of Castro et al.14 is used to propose a substantially different RTN periodic scheduling formulation from the one of Schilling and Pantelides.10 This is then applied to the solution of a real industrial periodic scheduling problem, which was previously addressed by the same authors (Castro et al.15) with a RTN discrete-time short-term formulation that considered several production cycles, including the start-up and shutdown cycles. To provide a comparison between discrete- and continuous-time formulations, the same problem is solved with a RTN discrete-time periodic scheduling formulation adapted from the work of Shah et al.4 for the STN process representation. The rest of this paper is structured as follows: in section 2 the case study is described. Section 3 introduces some fundamental concepts concerning the representation of time and the resource-task network process representation. In section 4, the discrete- and continuous-time formulations developed to handle the scheduling problem are described in detail. The problem data are then given in section 5, while the solution of the resulting MILP problems is left for section 6. In section 7, a comparison between the discrete-time formulation and the continuous-time formulation is performed. Finally, the conclusions are presented in section 8. 2. Problem Description The industrial problem taken as case study consists of a pulp cooking process, which is formed by a set of four parallel batch digesters (D3, D4, D5, and D6) of
different capacities. These digesters process wood chips and chemicals and produce pulp in aqueous suspension. A batch on a particular digester consists of an ordered sequence of various operations: (i) charging the digester with wood chips; (ii) filling it with chemicals; (iii) heating its contents with steam; (iv) cooking at a specified cooking temperature; (v) relieving high pressure and (vi) low pressure; (vii) blowing the digester contents into a storage reservoir, the blow tank. At the plant the heating stage is the process bottleneck. There is limited steam availability and as a consequence waiting periods during this stage are frequent. Each digester, while being heated, shares the available steam with other two digesters: first with the one immediately ahead of it and later on with the one immediately behind it. For a given pair, the amount of steam that goes for each digester is dependent on the size of both digesters and on their relative position in the schedule, so the digester sequence affects the makespan. To adequately model the interaction between the digesters during the heating stage, this has been divided into three tasks: (i) steam sharing, (ii) heating to 90 °C, and (iii) final heating, which correspond to different operating conditions (further details can be found in Castro et al.15). The digesters share other resources besides steam, such as the chip conveyor, acid-filling pumps, high- and low-pressure degas tanks, and the blow tank. Thus, two different digesters cannot use any of these resources simultaneously. The scheduling model must be able to consider these common resource limitations and determine the start and completion times of all tasks of the cooking process. Since product demand is stable over relatively long periods of time, the purpose is to establish a regular periodic pattern that simplifies the operation and control of the plant. Thus, the objective of the scheduling problem is to minimize the cycle time. 3. Fundamental Concepts In this section, the fundamental concepts on which our formulations are based are presented. 3.1. Representation of Time. The structure of scheduling formulations is largely dictated by the treatment of time. In most formulations, the time horizon of interest (H) is divided into several time intervals/slots, with events taking place only at the interval boundaries. As the underlying mathematical model must characterize the potential occurrence of events (beginning or ending of tasks) at each time point, the more time intervals considered, the larger the size of the mathematical model. Two types of time representation can be employed: the discrete- or the continuous-time representation. If time intervals have fixed and uniform durations, discrete-time representations are obtained. In this work we employ a discrete representation of time in which a cycle is discretized into T time intervals of equal duration, δ. As shown in Figure 1, in our notation, the slot boundaries in each cycle are numbered from t ) 1 to t ) T + 1, with the latter coinciding with the start of the next cycle, that is, t ) 1. In continuous-time formulations, on the other hand, the length of each time interval is unknown and is to be determined. As a result, the time horizon (H) becomes a variable, the cycle time, instead of a parameter. Two different types of approaches are common: those using a common time grid for all resources (Mockus and
3348
Ind. Eng. Chem. Res., Vol. 42, No. 14, 2003
Figure 1. Discrete-time representation over one cycle.
Figure 2. Continuous-time representation over one cycle. Table 1. Resources, States, and Tasks Required by the Process index
resources (R)
states (S)
1 2 3
wood-chips conveyor acid-filling pump steam line
digester with chips digester with chips and acid
4
high-pressure degas tank
digester at 90 °C
5
low-pressure degas tank
6
blow tank
7
digester no. 3
8 9 10 11 12 13 14
digester no. 4 digester no. 5 digester no. 6 raw material final product
digester after using the steam released by D3/4 digester after using the steam released by D4/5 digester after using the steam released by D5/6 digester at cooking temperature digester with cooked pulp digester at 3 bar digester at 1.2 bar
Reklaitis,7 Schilling and Pantelides,9,10 and Castro et al.14) and those using a different time grid for each resource (Zentner and Reklaitis,16 Pinto and Grossmann,8 and Ierapetritou and co-workers11-13). The continuous-time representation adopted in this work uses the former approach; see Figure 2. 3.2. Resource-Task Network (RTN) Process Representation. The resource-task network process representation2 regards all processes as bipartite graphs comprising two types of nodes: resources and tasks. The concept of resource is entirely general and includes all entities that are involved in the process steps, such as materials (raw materials, intermediates, and products), processing and storage equipment (tanks, reactors, etc.), and utilities (operators, steam, etc.). A task is an abstract term for an operation that transforms a certain set of resources into another set. All the resources and tasks required to represent the cooking process described in section 2 are given in Table 1. The process resources, set R, include all the relevant plant equipment as well as the raw material (although there are two raw materials, wood chips and acid, for the purpose of this paper it is sufficient to combine them into a single resource) and final product. Besides R, another set of resources is required to ensure that all digesters follow the correct sequence of tasks. The elements of set S can be viewed as representing the intermediate material states in the process and are always referred to a certain digester, an element of set D. The tasks under consideration, set K, include all the processing steps and can involve a change of state in
tasks (K) wood-chips filling acid filling heating until 90 °C without prior use of steam from another digester heating until 90 °C after using the steam released by D3/4 heating until 90 °C after using the steam released by D4/5 heating until 90 °C after using the steam released by D5/6 final heating without steam release to another digester final heating with steam release to D3/4 final heating with steam release to D4/5 final heating with steam release to D5/6 cooking high-pressure degassing low-pressure degassing pulp blowing
more than one digester at the same time. Like the states, a task always refers to a certain digester. The RTN of the cooking process is represented in Figure 3. The process begins with the wood-chips filling task (K1), which consumes a given amount (in tonnes) of raw material (R11) and two other resources at its beginning: (i) the wood-chips conveyor (R1) and (ii) the corresponding digester (R7 if the task is carried out in D3, R8 if in D4, R9 if in D5, or R10 if in D6). At the end of the task, the two discrete resources are restored and the digester with wood-chips state (S2) is produced. This state is then consumed by the acid-filling task (K2) and so on, until the cycle is concluded by the blowing task (K14), which produces a given amount of the final product (R12) at its end. In Figure 3 the heating stage is simplified. To model all steam-sharing alternatives, four tasks H0(i,j) (K3, ..., K6) and four tasks H1(i,j) (K7, ..., K10), with i, j ∈ D, are required for each digester. These give rise to the complex superstructure presented in Figure 4. Any digester can start its heating stage by the execution of one of four heating tasks. The quickest way for digester i to reach 90 °C (S4) is through task H0(i,i) (K3). The other three paths, H1(j,i), with j * i, take more time but take advantage of the steam-sharing possibility between i and the digester further ahead in the schedule, digester j. Tasks H1(j,i), with j * i, implicitly consider that the major part of the available steam is directed to digester j while digester i uses the remainder. At the end of tasks H1(j,i), with j * i, the heating stage is concluded for digester j (S8) while for digester
Ind. Eng. Chem. Res., Vol. 42, No. 14, 2003 3349
Figure 3. RTN representation of the cooking process where the heating stage (tasks k ) 3 to k ) 10) is simplified.
i it is just beginning. The exact produced state of digester i (S5, S6, or S7), representing different temperatures for the pulp suspension (see Castro et al.15) depends on j. After task H1(j,i), digester i concludes the first stage of heating with task H0(i,j), which produces state S4. To reach S8, digester i can then ignore the steam-sharing possibility with the digester further behind in the schedule, by executing task H1(i,i) (K7), or carry out one of the three possible H1(i,l) tasks, with i * l. To simplify the drawing, all tasks H1(i,j), with i * j, appear twice (these are represented as gray-filled rectangles), and the steam line resource (R3) and the four digester resources (R7-R10) have been omitted. 4. Mathematical Formulations The proposed discrete- and continuous-time periodic scheduling formulations are presented next. In both, the concept of task “wrap-around” (introduced by Shah et al.4) is used to overcome the problem of modeling the execution of tasks that span across two cycles. For example, any task instance starting within the cycle of interest but not finishing before its end can be viewed simply as wrapping around to the start of the cycle and continuing from there (forward wrap-around). A similar remark can be made for tasks starting within the previous cycle and ending within the cycle of interest (backward wrap-around). To facilitate the formulation of some constraints, we define the wrap-around time operator as follows:
Ω(t) )
{
t Ω(t + |T|)
if t g 1 if t < 1
This allows backward wrap-around in time. For example, if the total number of time intervals (|T|) is equal to 10, then Ω(0) ) Ω(10) ) 10. 4.1. Discrete-Time Formulation. The periodic scheduling of the cooking system represented in the RTNs of Figure 3 and Figure 4 is achieved by considering the following constraints. 4.1.1. Excess Resource Balances. The excess resource balances express the fact that the excess amount of a resource over interval t is equal to that over interval t - 1 adjusted by the amounts consumed and produced at the beginning of interval t by active tasks. One set of constraints is required for each type of resource. τk,d
Rr,t ) Rr,Ω(t-1) +
∑ ∑ ∑ µk,d,r,θNk,d,Ω(t-θ) - ∆r|t)1,rg11
k∈Kd∈Dθ)0
∀ r ∈ R, t ∈ T (1)
τk,d
Ss,i,t ) Ss,i,Ω(t-1) +
∑ ∑ ∑ νk,d,s,i,θNk,d,Ω(t-θ)
k∈Kd∈Dθ)0
∀ s ∈ S, i ∈ D, t ∈ T (2)
In the above equations, the extent variables Nk,d,t are of the binary type and assign the beginning of task k of digester d at interval t. The other variables used are the excess variables Rr,t and Ss,i,t, and ∆r: the amount
3350
Ind. Eng. Chem. Res., Vol. 42, No. 14, 2003
Figure 4. RTN representation of the heating stage.
of resource r generated in the cycle. In eq 1, it is implicit that ∆r may only assume nonpositive vales for the raw material (R11) and nonnegative values for the final product (R12). The parameters µk,d,r,θ and νk,d,s,i,θ represent the amount of resource r (s in digester i) produced or consumed by task k of digester d at a time θ relative to the start of task k, while the parameter τk,d represents the fixed duration of task k in digester d (expressed in time interval units). The resource balance constraints 1 and 2 characterize how the amount of unused resource varies over the cycle but do not relate these to the total amount of resource that is available. For some resources (e.g., different types of material), the above indeterminacy of the actual resource levels is not important. For the raw material and final product the only quantity of significance is the net amount ∆r produced/consumed over the cycle, while for the intermediates (resource states) the optimization will determine appropriate values for the excess resource levels Ss,d,t so that the resource capacity constraints (see below) are satisfied at all times. Where the resource levels indeterminacy must be addressed is in the case of the equipment resources. For these resources it must be ensured that the total available amount is not altered by the plant start-up procedure. Rtotal r This is accomplished by the overall resource balance over the start-up cycle: τk,d
+ Rr,|T| ) Rtotal r
∑ ∑ ∑ ∑ µk,d,r,θNk,d,t-θ
k∈Kd∈Dt∈ Tθ)0
∀ r ∈ R, r < 11 (3)
The wrap-around operator Ω( ) is not required in eq 3 since there is no cycle prior to the start-up cycle. 4.1.2. Excess Resource Capacity Constraints. Excess resource values specify equipment availability and storage requirements for processing materials. Thus, the excess amount of each resource (the elements of set R are listed in Table 1) must lie within given upper and lower non-negative bounds. All relevant process equipment correspond to a different resource so
0 e Rr,t e 1 ∀ r ∈ R, r < 11, t ∈ T
(4)
For the material resources we assume a maximum storage capacity equal to the amount processed in one batch by all four digesters (see Figure 3):
0 e Rr,t e 1087 ∀ r ∈ R, r g 11, t ∈ T
(5)
The excess state variables also have an upper bound of 1. However, to improve the efficiency of the solver in the branch-and-bound search procedure, it is convenient to reduce the number of degenerate solutions of the periodic scheduling problem. At the plant, there are two sources of waiting periods for digester i during the heating stage:15 (a) immediately after the end of the acid-filling task; (b) when sharing steam with digester j, which is further ahead in the schedule. As the latter source is implicitly considered in task H1(i,j), only the former source needs to be taken care of. Thus, only an excess amount of state S3 is allowed:
Ind. Eng. Chem. Res., Vol. 42, No. 14, 2003 3351
0 e S3,d,t e 1 ∀ d ∈ D, t ∈ T
(6)
Ss,d,t ) 0 ∀ s ∈ S, s * 3, d ∈ D, t ∈ T
(7)
4.1.3. Operational Constraints. Periodic scheduling formulations ought to include methods for reducing solution degeneracy arising from cyclic schedule permutations. As noted by Shah et al.,4 any feasible solution of a periodic scheduling problem may be used to produce another such solution simply by shifting all time-dependent variables by one time interval while using the wrap-around operator. This may result in branch-and-bound search algorithms examining what is effectively the same node for up to |T| times. Of the several methods that are available for partially avoiding this inefficiency (Schilling and Pantelides10) we use the anchoring of the schedule. This option involves selecting one task that takes place at least once during the cycle and then insisting that an instance of this task starts at a certain time point (e.g., t ) 1) by setting the corresponding extent variable to 1. The fixing of an integer variable allows the presolving techniques implemented in commercial MILP solvers to carry out some further variable eliminations and substitutions. Thus, better computational performances are expected when the selected task is one that leads to a large number of variable eliminations, that is, one that has a large extent. In our problem the best result was achieved when selecting the cooking task (of all the tasks that take place at least once, it is the one that lasts longer; see Table 2) of the digester that has a larger production per batch, D6 (see Figure 3):
N11,6,1 ) 1
(8)
4.1.4. Objective Function. A typical objective function is the maximization of the final product (R12) amount generated by the process per unit time. Alternative optimization objectives can easily be considered.
max
∆12 H
(9)
4.2. Continuous-Time Formulation. As referred to above, the continuous-time formulation considers the length of each time interval as a variable instead of a parameter. This decision has important modeling implications. Let us start with the model variables. While the excess resource variables remain the same, the extent variables need to be modified to include one more time index since both the start and the ending point of a task must be identified. A binary variable N h k,d,t,t′ is now used to assign the end of task k, of digester d, which began at time t, to time t′. The total amount of resource r consumed at the start of that task is given by
h k,d,t,t′ µk,d,rN
Table 2. Duration of the Nonheating Tasks (min) task
D3
D4
D5
D6
wood-chips filling (K1) acid filling (K2) cooking (K11) high-pressure degassing (K12) low-pressure degassing (K13) pulp blowing (K14)
45 50 152 30 34 20
54 50 142 34 36 30
60 44 120 36 48 37
62 43 120 36 46 34
It is now convenient to identify some of the parameters that are implicit in the RTN process representation of Figure 3. At the start of the wood-chips-filling task (K1), three different resources are consumed (the raw material, R11, the wood-chips conveyor, R1, and the digester no. 4, R8). Taken as an example the first task of digester 4, the corresponding parameters are the following: µ1,4,11 ) -272, µ1,4,1 ) -1, and µ1,4,8 ) -1. Then, at the end of the task, the latter resources are regenerated: µ j 1,4,1 ) 1 and µ j 1,4,8 ) 1. And the digester with wood-chips state (S2) of digester 4 is produced: υ1,4,2,4 ) 1. The periodic scheduling of the cooking system is achieved by the following constraints. 4.2.1. Timing Constraints. The difference between the absolute times of any two event points (t and t′) is allowed to be either equal to or greater than the processing time (Rk,d) of all tasks starting and ending at those same event points, instead of constraining it to the exact processing time. Two sets of constraints are required to model the above statement, depending on whether t is greater or lower than t′ (with t * t′, since a task cannot start and end at the same event point). The first set is the only one required for short-term scheduling.14 To decrease the number of pairs (t,t′) that need to be considered, we restrict the number of event points that are allowed between the beginning and end of a given task to a maximum value, specified through parameter ∆t (∆t ∈ [1, |T|[). The influence of this parameter in the performance of the model is studied in section 6.2.2.
Tt′ - Tt g Rk,dN h k,d,t,t′ ∀ k ∈ K, d ∈ D, t ∈ T, t′ ∈ T, t < t′ e ∆t + t (14) The second set derives from the use of the concept of task “wrap-around” (see section 4), which allows a task to end at an event point that precedes its starting point. To relate any two event points (t,t′) with t′ e ∆t + t |T|, one needs only to observe that the length of the direct path, t f t + 1 f ... f |T| f 1 f ... f t′, is equal to the length of the time horizon (H) minus that of the reverse path, t′ r ... r t. Hence,
Tt - Tt′ e H - Rk,dN h k,d,t,t′ ∀ k ∈ K, d ∈ D, t ∈ T, t′ ∈ T, t′ e ∆t + t - |T| (15)
h k,d,t,t′ υk,d,s,iN
(12)
Note that if a task does not start at event point t or end at t′ (N h k,d,t,t′ ) 0), constraints 14 and 15 are relaxed (Tt′ - Tt g 0 ∀ t ∈T, t′ ∈ T, t < t′ e ∆t + t and Tt - Tt′ e H ∀ t ∈T, t′ ∈T, t′ e ∆t + t - |T|). A maximum value for the cycle time (Hmax) is defined in order to delete the parts of the tree with an objective worse than that value in the initial moments of the branch-and-bound search procedure. Naturally, the cycle time (H) and consequently the absolute time of all event points must not exceed that maximum value:
h k,d,t,t′ υ j k,d,s,iN
(13)
H e Hmax
(10)
while the amount produced at its end is calculated by
h k,d,t,t′ µ j k,d,rN
(11)
For a given state s of digester i, the expressions are similar:
(16)
3352
Ind. Eng. Chem. Res., Vol. 42, No. 14, 2003
Tt e Hmax ∀ t ∈ T
(17)
The first event point defines the beginning of the cycle (see Figure 2):
T1 ) 0
(18)
4.2.2. Excess Resource Balances. The amount of a resource r at event point t is equal to that at the previous event point (t - 1) adjusted by the amounts generated discretely by all tasks starting or ending at t.
Rr,t ) Rr,Ω(t-1) +
∑∑
∑ t′∈T
(
k∈Kd∈D
preceding it. This is accomplished by fixing all excess resource variables of the digester equipment and all excess state variables to zero.
µk,d,rN h k,d,t,t′ +
Rr,t ) 0 ∀ r ∈ R, 7 e r e 10, t ∈ T
(23)
Ss,d,t ) 0 ∀ s ∈ S, d ∈ D, t ∈ T
(24)
4.2.4. Operational Constraints. The condition that all digesters must process one batch can be enforced with the following constraints:
∑ t∈T
∑
N h k,d,t,t′ ) t′∈T t