~
Computers ind. Engng Vol. 32. No. 4, pp. 867 878, 1997 1997 Elsevier Science Ltd. All rights reserved Printed in Great Britain PII: S0360-8352(97)00017-X 0360-8352/97 $17.oo+ o.o0
Pergamon DIAGNOSTIC
SCHEDULING
PRODUCTION
IN FINITE-CAPACITY
ENVIRONMENTS
VALERIE T A R D I F ~ and M A R K L. SPEARMAN 2 ~Graduate Program in Operations Research and Industrial Engineering, Department of Mechanical Engineering, The University of Texas at Austin, Austin, TX 78712, U.S.A. and -'School of Industrial and Systems Engineering, Georgia Institute of Technology, Atlanta, GA 30332, U.S.A.
(Receired 15 May 1996) Abstract--Planning releases and prioritizing work in manufacturing facilities must be done with the often conflicting goals of meeting due dates and minimizing in-process inventory. The ideal system is one in which the planner can enter the current logistical configuration and let the system evaluate the configuration's feasibility by developing a schedule. If a feasible schedule is obtained, the system reports on the schedule derived, otherwise it provides diagnostic information suggesting how the situation can be improved. The user can then decide to keep the current schedule, at the risk of missing due dates, or might choose to modify the inputs (e.g. renegotiate a due date, schedule overtime), retest them with the system, and continue until an acceptable work plan has been established. Our procedure, MRP-C, performs the necessary operations needed at the core of such a decision-support system. M RP-C generates good schedules for finite capacity production scheduling problems when all demands can be met within capacity limitations. Otherwise, it detects scheduling infeasibilities if the instance has no feasible schedule. provides analysis on the possible causes of the infeasibilities and suggests modifications of the input to make the schedule feasible. ~ 1997 Elsevier Science Ltd
1. INTRODUCTION
The goal of production scheduling is to plan releases and prioritize work to ensure that all customer orders are met on time, with a minimum of work in process, the shortest possible cycle times, and a maximum utilization of available resources. Unfortunately, these goals are conflicting. We are much more likely to finish all jobs on time if utilization of the resources is kept low. Similarly, we can satisfy customer requirements quickly and regularly if we keep an enormous inventory. Thus, the problem of production scheduling is to somehow reach a compromise between these conflicting objectives and implement a consistent policy that maximizes profitability of the enterprise. Material Requirements Planning (MRP) is widely used to determine production schedules in manufacturing systems. The basic idea [1] is to translate customer requirements into quantities and due dates for components, based on bill-of-material and lead-time information. However, the procedure assumes a component's lead time is a function of the component alone and is not affected by congestion in the production facility. Since having late jobs is considered much worse than carrying excess inventory, lead times tend to be inflated. This gives rise to greater inventory levels and, consequently, to longer cycle times. Traditional scheduling methods approach the problem differently. Algorithms and dispatch rules seek to minimize total "cost". This cost might include makespan, setups, late jobs, lost utilization, or inventory. Many classical approaches focus on one objective (e.g. makespan [2], weighted tardiness [3]). The assumption, often correct, is that operations managers are willing to miss some due dates in order to save on inventory or vendoring costs. In numerous discussions with planners, Hopp and Spearman [4] have found no planners comfortable with equating a tardy job to some amount of extra work-in-process (WIP) and then allowing the computer to make the tradeoff. Most planners felt that the many intangibles involved in scheduling make totally automatic scheduling all but impossible. All would prefer a tool that allows them to evaluate the,feasibility of a candidate schedule and then, if the schedule is not feasible, suggest ways to make it so. Such suggestions might include adding additional capacity by using overtime, adding temporary workers, or by sub-contracting. Other changes include 867
868
Valerie T a r d i f a n d M a r k L. S p e a r m a n
delaying due dates of certain jobs and splitting large jobs. All of these changes typically involve more than just the basic information used in scheduling. They also involve planner judgments that often cannot be quantified. For instance, which customers will tolerate a late or partial shipment? Which parts can be sub-contracted? Which groups of workers can be asked to work overtime? Current optimization- or simulation-based approaches are unable to perform these functions. Indeed, in a recent study [5] very few of the software implementations surveyed offered more than a trivial diagnostic capability. What is needed is a tool that will determine whether there is a feasible production schedule for a specific scenario (i.e. a set of demands, capacities, WIP, and finished goods). If a feasible schedule exists, it might be too feasible, that is, it may be possible to meet more demand than has been presented. If the scenario is not feasible, the system should suggest changes to make it feasible. Our procedure, MRP-C, performs the following necessary operations needed at the core of such a decision-support system. MRP-C (1) generates capacity feasible schedules with minimum inventory when all demands can be met within capacity limitations. Otherwise, it (2) detects scheduling infeasibilities if the instance has no feasible schedule, (3) provides analysis on the possible causes of the infeasibilities, and (4) suggests modifications to the input to make the schedule feasible. Classical scheduling approaches do not fully exploit the power of computers to evaluate many alternatives quickly and provide efficient means to assess the tradeoffs in minimizing inventory, meeting customer demands, and satisfying capacity limits. In the past few years, several commercial scheduling software providers have begun providing decision-support features in their products but their algorithms are proprietary and therefore have not been disclosed. Our approach is based on this new paradigm [10] that users require decision-support rather than decision-making software as do constraint-based programming and other artificial intelligence scheduling systems (e.g. Refs. [6, 7]). Scheduling systems need to provide "what-if' capabilities as well as a range of optimal and near-optimal solutions to be accepted and effective as production management tools. Such systems could not exist without the recent advancements in computing power and technology. Ahead now lies the task to harness this power and develop the next-generation decision-support tools. In the next sections, we discuss the different types of schedule infeasibilities and how they arise. We present a procedure designed to detect these infeasibilities and to offer recommendations to improve the schedule, and illustrate the procedure with an example. 2. T W O T Y P E S O F S C H E D U L E
INFEASIBILITY
The MRP II paradigm attempts to give planners a tool needed to develop and evaluate production schedules. The master production schedule (MPS) provides the demand. The material requirements planning (MRP) module nets demand, determines material requirements, and then offsets them to provide a schedule of releases. Finally, the capacity requirements planning (CRP) module checks this schedule for feasibility. This is exactly what the planner needs. However, both MRP and CRP perform infinite capacity scheduling and thus do not represent faithfully what happens in the plant. Similarly, CRP is inadequate to check MRP schedules for many of the same reasons that MRP fails. Furthermore, even if CRP detects an infeasibility, it does not offer useful diagnostics [4]. In order to appreciate what can go wrong in production scheduling, consider an example of a production facility with a maximum output rate of 100 units per day and an average cycle time of three days. Assume there are 95 units that will finish at the end of day 1, 90 units that will finish at the end of day 2, and 100 units that have just started. The forecast of demands is given in Table 1. The total demand for the first three days is 280 units, for which there is 285 units of WlP. The demand for the next 12 days is 1190 units for which there is 1200 units of capacity available in addition to the 5 units of WIP left over. Thus, in the aggregate, there appears to be no problem. Table I. Demand for the example Day Amount due
1 90
2 100
3 90
4 80
5 70
6 115
7 105
8 II0
9 140
10 120
II 100
12 95
13 I10
14 75
15 70
869
Diagnostic production scheduling 1600 --
-
/t\ 1400 --
/
\x
ii
1200
--
~ e ~
Maximum Cumulative Production Cumulative Demand
.....
Surplus Capacity
\ ~"
iiiiiII
.oJ
x
~ ~ ~ ~, ~.~
.,~
60
2_ 50
..,,,~ ~ 40 30
~%%
1000
20 10
800 -0 600
-10 400 -20 200
-30
1
1
1
1
1
1
I
I
I
1
1
"(
2
3
4
5
6
7
8
9
10
I1
12
13
-40 14
15
Fig. 1. D e m a n d vs. a v a i l a b l e p r o d u c t i o n a n d W I P .
However, upon closer examination we see that there is a problem. At the end of the first day the production facility will produce 95 units for a demand of 90 units, leaving 5 units. After the second day, 90 more units will be produced but the demand for that day is 100, leaving a deficit of 5 units. At the end of the third day, 100 units are completed. These 100 units will cover the 90 units of demand on the third day as well as the 5 unit deficit for the day before. Unfortunately, there are also other problems. Even running at full capacity, Fig. 1 shows that production cannot keep up with demand. On day 9, production again falls short. The solid line labeled "maximum cumulative production" represents the maximum output rate, i.e. 95, 90, 100, 100, 100..... 100. The circles indicate the cumulative demand. Maximum cumulative production falls below the cumulative demand. Thus the schedule is infeasible. The dashed "surplus capacity" line, whose scale is on the right, is also superimposed on the plot. The surplus is the difference between the maximum cumulative production and the cumulative demand. Negative values indicate infeasibility. This curve first becomes negative in day 2 - the infeasibility caused by insufficient WlP in the production facility. After that, we can produce more than demand and the surplus curve becomes positive. It becomes negative again on day 9, and stays negative until day 15 when production can meet demand. In this example, there are two kinds of schedule infeasibility. The first is caused by WIP positioning and is called a WIP infeasibility. In this case, it does not matter how much capacity is available, the WIP will not become "finished goods" in time. The other kind of infeasibility, capacity infeasibility, is caused by insufficient capacity. While there is sufficient total capacity over the 15 periods, the demand is positioned such that there is insufficient capacity during the middle of the planning horizon. Each infeasibility requires a different remedy. Since adding capacity will not help the WlP infeasibility, the only solution is to delay due dates. If 5 units of the 100 units due in day 2 could be delayed to day 3, that portion of the schedule would be feasible. Capacity infeasibilities can be remedied in two ways: (1) add capacity or (2) delay due dates. If, before day 9, overtime was allowed to generate another 40 units of output, the schedule would be feasible. However, this will increase the final surplus. Alternatively, if some demand could be delayed further, the schedule would become feasible. For instance, if 40 units of the 115 units demanded in period 6 are moved to periods 14 and 15 (20 units each), the schedule would be feasible.
870 3. C A P A C I T A T E D
MATERIAL
REQUIREMENTS
PLANNING
- MRP-C
In this section, we present a procedure designed to detect and remedy scheduling infeasibilities. It differs from M R P by explicitly considering capacity. Hence, the name "capacitated material requirements planning" or MRP-C. M RP-C uses two of the fundamental relations between WIP and cycle time: (1) cycle time cannot be less than some minimum value regardless of the capacity (i.e. raw process time), and (2) the ratio of WIP to cycle time cannot exceed capacity (Little's law). The values used in MRP-C for raw process time and capacity must not be the "ideal" numbers. Instead of the raw process time, MRP-C uses the minimum practical lead time Tp (i.e. the time to go through the production facility with no queuing). This will include any common delays such as "waiting to move", and will usually be larger than the raw process time. Likewise, the capacity is set to the effective maximum production rate C, and not the actual bottleneck capacity. By using only two values, MRP-C captures the basic relationships between WIP and cycle time for an entire process without the burden of a detailed simulation or specific capacity knowledge of each tool. The basic procedure has two phases. The first detects WIP infeasibitities and the second detects capacity infeasibilities. Before we make them formal, we introduce the following notation. Parameters Tv = planning horizon, Tp = minimum practical lead time, w, = WIP that will be finished at the end of period t = 0,1 ..... TF (w, = 0 for Tp < t < Tv), D, = demand due at the end of period t = 1..... Tv, C, = effective maximum output rate in period t = 1..... Tv. Variables X, = production output in period t = 1..... Tv, L = amount of inventory carried over in period t = Tp..... Tv. The first range of time periods, {t = 0,1,2 ..... Tp}, covers what has been completed (time period 0), and what is currently in process (time periods 1,2 ..... Tp). WlP in various states of production is indicated by w,, t = 0,1,...,Tp, where w0 is "finished goods" for the production facility. For Tp < t < T~, w, = 0. The first phase of the procedure computes the net WIP, N,, at the end of period t to check for WIP feasibility. Then it computes the net demand, D,, at the end of period t. The steps are given in the following pseudo-code. Detect WIP Infeasibility
No,--Wo For t = 1.... Tv, N,~-N,, + w , - D,
if N, > 0, then b , ~ 0 , else D,+--min {[N,I,D,}
(1)
(2)
End. For t = 1..... Tp, if D, - Y~.2_',b, > 0=:,WlP infeasible End. The net WIP, N,, starts with the current finished WIP, w0. For each consecutive period, N, will be equal to the previous period's net WlP, N,_ ,, plus the WlP that will be finished at the end of the period, w,, less the demand, D, (see expression (1)). Like M R P netting, the next step is to convert N, into net demand, D,. If N, > 0, then the net demand D, is zero. Otherwise, D, is the minimum between N, and D, (see expression (2)). If any of the values of D, are less than zero for t < Tp,
Diagnostic production scheduling
871
the schedule is WIP infeasible. The only way to remedy a WIP infeasibility is to delay demand. The amounts delayed equal ( D , - £1.-'~D,.)+ for 1 < t < Tp. The netting step is executed for each period and therefore yields computational complexity O(T~.). The infeasibility detection step is executed on work currently in process and has computational complexity O(Tp). The second phase of the procedure computes a production schedule that will satisfy the net demand with the minimum amount of WIP. This WIP, denoted L, is produced in previous periods in order to satisfy demand in periods of insufficient capacity. The algorithm is shown below. Detect Capacity Infeasibility 17i*--desired finish inventory For t = Tv down to Tp + 1, X , ~ m i n {D, + I,,C,}
(3)
L - . ~ D , + L - Xl
(4)
End. For t = Tp down to 1, X,~w, If Ir~ > 0 ~ capacity infeasible End. The second phase of the procedure computes a production schedule that will satisfy the net demand with the minimum amount of WIP. The procedure is iterative and computes the schedule from the end of the time horizon backwards. Each period is considered only once, resulting in computational complexity O(Tv). IT~ is the desired level of ending inventory (usually zero). At each period, the level of production output, X,, will be either the total demand D, + L, or the maximum production output, C,, whichever is less (see expression (3)). Therefore, either C , - X, = 0 or D, + L - X, = 0 (see expression (4)). This implies that (C, - X,)L_ i = 0 for all t. We show that this property is sufficient to ensure that this schedule requires the minimum amount of inventory required to meet all due dates. Proposition 1 I f ( 2 , j , ) is a feasible production schedule and satisfies the property (C, - X,)L _ L = 0 Jbr all time periods t, then ( 2 , i , ) minimizes Y ~ oL. Proof. The problem can be formulated as a linear program ~ with dual ~.
s.t.:
min ~ I,
~ : m a x ~ (b,n, - C,z,)
L ,+X,-L=b,,
s.t.:g,-~,
x, O, IT~ = O,
~,-z, O, no = ~T, + ~ = O.
,<1,
Set fro = 0, ff~ = 1, ~~,_~ + 1, ~' = ~ 0,
if X, = C,, otherwise,
~TF+~= 1 and 5, = ~,, for t = 1.... ,Tv. It is easy to check that (~,5) is dual feasible. In addition, either X,=C, orS,=0sinceS,=~,=0,
for a l l t
and either ~,-~,
~= ! or X, < C,, implying that ] , _ ~ = 0 s i n c e ( C , - X , ) i ,
~ = 0 for all t.
Therefore, all complementary slackness conditions are satisfied and ~=0i, is optimal.
872
Valerie Tardif and Mark
L. S p e a r m a n
In fact, it is easy to show that if (X,,L) is optimal for the problem, it also satisfies the condition that (C, - J',)i, , = 0 for all t. So we have a necessary and sufficient condition for optimality. Florian and Klein [8] and Baker et al. [9] give similar characterizations for the necessary conditions of an optimal solution for dynamic lot sizing problems with capacities. Note that 7t, and z, also provide sensitivity analysis. The value associated with ~, specifies the increase in total inventory resulting from an increase of one unit in the net demand in period t. Alternatively, the value associated with z, specifies the increase in total inventory resulting from a decrease of one unit in the effective maximum output rate in period t. These values provide information on time periods causing infeasibilities. In fact, ~, and z, indicate the number of periods for which inventory must be carried in order to meet the demand requirement. In addition, consider a period t such that ~, > 0 and ~,+ 1 = 0. If ~, + Tp = t, then the demand exceeding capacity in period t directly results in a capacity infeasibility. However, ~, itself does not provide information on the magnitude of the resulting infeasibility. Fortunately, min {L-. ..... It,} does, and with that information in hand we can provide recommendations on how to resolve these infeasibilities effectively.
4. R E C O M M E N D A T I O N S
If Irp is positive, the schedule is capacity infeasible. Ir~ amount of additional on-hand inventory would be needed at t = Tp in order to make the schedule feasible. This infeasibility can be remedied by either adding capacity to reduce the required inventory or by delaying some due dates. This section shows how this can be done optimally. Consider our example again. However this time suppose there are 10 units of finished WIP on-hand at the start. The resulting levels of production output and other quantities are shown in Table 2. Column 2, labeled w,, shows the WIP currently in process. Note that this is zero for t > 3 since Tp = 3. Net WIP, N,, shown in Column 4, starts at the initial WIP level, No = 10, and then is computed by adding the finished WIP, w,, and subtracting the demand D, (see expression (1)). N, allows easy computation of the net demand D, in Column 5. Since D, = 0 in periods 1, 2 and 3, the schedule is WIP feasible. Column 6 is the maximum output rate, C, = 100, in every period. C o m p u t i n g / , in Column 7 starts in period 15 with L~ = 0. This allows the computation of X~5 as min {D,5 + L5,C,5} = 70 (see expression (3)). Since demand is fully met, L4 = 0. Things do not get interesting until period 13. At that point, D,3 = 110, Ii3 = 0, and C~3 = 100. Thus, X,3 = 100 and 1,2 = 10. In period 12, D,2 = 95 and L2 = 10. Since C,2 = 100, this yields X,2 = 100 and II1 = 5. The procedure continues in this fashion until it reaches period 4. Then /)4 = 65, and I4 = 65. Since C4 = 100, this yields X~ = 100 and 13 = 30. In other words, 30 extra units of inventory are needed in period 3, Tp, in order to make the schedule capacity feasible.
Table 2. Resulting production and inventory levels Data
t
w,
0 I 2 3 4 5 6 7 8 9 10 I1 12 13 14 15
10 95 90 100
Detect W l P inf.
C, 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100
Detect cap. inf.
D,
N,
D,
90 100 90 80 70 115 105 110 140 120 100 95 110 75 70
10 15 5 15 -65 -135 250 - 355 -465 - 605 - 725 - 825 - 920 - 1030 - 1105 - 1175
0 0 0 65 70 115 105 ll0 140 120 100 95 110 75 70
1,
X,
30 65 95 80 75 65 25 5 5 10 0 0 0
95 90 100 100 100 100 100 100 100 100 100 100 100 75 70
Diagnostic production scheduling
873
This can be remedied in various ways. The most obvious is to increase capacity in period 4 to 130. However, it may not be practical to require a 30% increase in capacity over such a short period. A better way might be to increase the production output rate by 10% over periods 4-6. Alternatively, we can increase capacity in periods 9, 10 and 13 to 105, 120 and 105 respectively. This alternative generates the least amount of excess WIP because capacity is added as late as possible. The following procedure generates an overtime schedule satisfying due date requirements with minimum excess inventory. Let O,, t = T~ + 1..... Tv be the amount of overtime scheduled in period t to satisfy all demands on time. Compute Overtime Schedule For t = Tv down to Tp + 1, O,,--min {/, _, ..... Ir~} For v = Tp..... t -
(s)
1 L~I,-
O,
(6)
End. End. The procedure computes the overtime needed from the end of the horizon backwards. Expression (5) computes the exact amount of inventory yielding a capacity infeasibility at each period. Each period is considered only once. However, at each iteration, inventory values are updated, yielding computational complexity O(T~). By updating the I variables at each iteration (see expression (6)), the procedure uses no more overtime than is necessary to make the schedule capacity feasible. Period 13 is the first period with non-zero min {I12,Ill..... 13}. 0]3 = 5 and/,., v = 3 ..... 12 are reduced by 5. Once updated, period 10 is the next period with non-zero min {I9,I8,...,I3} and O,0 = 20. At the next iteration, min {18,17..... 13} = 5 and thus 09 = 5, effectively scheduling the needed overtime to meet all demands on time. Overtime is scheduled only when the demand cannot be satisfied with inventory or production. Therefore, either O, = 0 or E~ = ~(C, - X~) = 0. This implies that (Y.~= L(C, - X,))O, = 0 for all time periods t. We show that this property is sufficient to ensure that this schedule requires the minimum amount of overtime and inventory required to meet all due dates. Note that one time unit of overtime at time t is equivalent to carrying one unit of inventory from time period 0 to time period t in the previous problem ~ , an alternative now disallowed since I0 = 0. So a cost of t applied to each time unit of overtime yields an objective function equivalent to the one in ~ . Proposition 2 I f (f(,i,,O,) is a feasible production schedule and satisfies the conditions (El= ~ ( C , - f(,))O, = 0 and ( C , - f(,)i,_ , = 0 for all time periods t, then (f(,,i,,O,) minimizes E~= o(tO, + I,). Proof. Applying a cost of t to each time unit of overtime in period t yields the problem .~' and its dual ~': ~':
¥ min ~,(tO, + L) t~l
s.t.:
L-~ + X, - O, = D,, it', < C,, X,,O,,I, > O, Io = Ir~ = O,
~':max ~(b,lt,-
C,z,)
t=l
s.t.:rc, - n,_ ~ < 1, rt, - z, < 0, rt,< t, z, >_ O, 7Zo= nr~ . ~ = O.
Set (r~,,Z) as in the proof of Proposition 1. It is easy to check that (~,~) is again dual feasible. In addition, E',=~(C,- ,~'~)= 0 implies that .(', = C, for all s~[l,t]. This, in turn, implies that
874
Valerie Tardif and Mark L. Spearman
if, = ~,-t + 1 . . . . . ~, + t - 1 = t. Thus, if O, > 0, if, - t = 0. Alternatively, E', = ~(C~ - ){3 > 0 implies that 7~,.= 0 for some v~[1,t]. This, in turn, implies that ~, = if,_ ~ + 1 . . . . . 7~ + t - 1 = t and thus that if, < t. Therefore, the additional complementary slackness condition is also satisfied and (~',ff,,O,) is optimal. If capacity cannot be increased, demand must be delayed. A way to remedy the problem is to move 30 units of the 115 units of demand in period 6 out to periods 14 and 15 (25 units and 5 units respectively), resulting in only one order needing renegotiation. Another way is to take 5 units out of period 13, 20 units out of period 10, and 5 units out of period 9, and to add them to periods 14 and 15 as above. This alternative is attractive for two reasons. It generates the least amount of excess inventory because only amounts that cannot be met with the original schedule are delayed, and it minimizes lateness because the amounts are delayed to the earliest period with left-over capacity. The following procedure adjusts demands so as to minimize total lateness. Let P, be the amount of demand in period t which cannot be satisfied on time in the original scenario, and thus needs to be delayed. Let A,, be the portion of P, delayed to period t' and B, be the amount of inventory backlogged in period t. For t = 1..... Tv, B, is initially set to 0. Push Demands CrF + ~ ~ (i.e. additional period with infinite capacity) For t = Tv down to Tp + 1, P , ~ m i n {L ,..... &}
(7)
D,*--D, - P, F o r v = T p ..... t - l , L ,--L - P,
(8)
t'~t + 1 While P, > 0 B,,_I~B,,_~ + P,
(9)
A c ~ m i n { P , , C , , - X,.} D,,*--D,, + A,, P,~P, A,, X,.~X,, + A,. t'+--t' + 1 End. End. -
The procedure identifies the demands which will be late in the original schedule from the end of the horizon backwards. At each period, inventory variables are adjusted and the earliest unsaturated time period is computed by searching forward in time. This back-and-forth procedure results in computational complexity O(T~). Expression (7) computes the portion of the demand which cannot be met. That amount is therefore delayed to the next period with left-over capacity. By updating the inventory variables at each iteration (see expression (8)), the procedure makes no more modifications than is necessary to make the schedule capacity feasible. Period 13 is the first period with non-zero min {I,_ fl,_,,...,Irp}. Therefore, PI3 = 5 needs to be delayed and BI3 = 5. Since period 14 has left-over capacity (i.e. C~4 - X~4 = 25 so At4 = min {P~3,C~4 - X~4} = 5), the demand is delayed to period 14. Once updated, period 10 is the next period with non-zero min {L,L ..... L} and thus P~0 = 20 and B~0 = 20. That amount is also
Diagnostic
production
~J75
scheduling
Table 3. Adjustments to the d e m a n d s and resulting production and inventory levels Data t 0 I 2 3 4 5 6 7 8 9 10 11 12 13 14 15
w, 10 95 90 100
Adjustments
C,
D,
100 100 100 100 100 100 100 100 100 100 100 I00 100 100 100
90 100 90 80 70 115 105 110 140 120 I00 95 110 75 70
P,
-5 -20
-5 + 25 +5
Detect W I P inf.
new D,
N,
D,
90 100 90 80 70 115 105 110 135 100 I00 95 105 100 75
10 15 5 15 - 65 - 135 - 250 - 355 - 465 - 600 -- 700 -- 800 - 895 -- 1000 - I100 - 1175
0 0 0 65 70 115 105 110 135 100 lO0 95 105 100 70
Detect cap, inf. I,
X,
0 35 65 50 45 35 0 0 0 5 0 0 0
95 90 100 100 100 100 100 100 100 100 I00 100 100 100 75
delayed to period 14, effectively setting BH = 20, B~2 = 20 and B~3 = 5 + 20 = 25. At the next iteration, min {L,L,...,I3} = 5 and thus P9 = 5. That amount is delayed to period 15 since period 15 has left-over capacity. The adjustments to the demands and resulting feasible production output levels are shown in Table 3. The procedure effectively reschedules the unmet demands to the closest periods. Demand is delayed only when it cannot be satisfied with inventory or production. Therefore, either L > 0 or B , > 0 but not both. In addition, B , > 0 only when C~=X~ for s = l .... ,t. This implies that E~ =~(Cs - X~))B, = 0 for all time periods t. Finally, if)(, < C,, then no delaying is needed and B, = 0 for s = t,...,Tv. This implies that (E~=,/~,)(C, - X,) = 0. We show that these three properties are sufficient to ensure that this schedule requires the minimum amount of inventory and delayed demand required to meet all due dates. Note again that delaying demand is needed only when the problem would otherwise be infeasible. Therefore, one unit of delayed demand from time period t to time period t + 1 is equivalent to carrying one unit of inventory from time period 0 to time period t in the previous problem ~ . So a cost of t applied to each unit of backlogged inventory in time period t, B,, ensures that no demand is backlogged when production or inventory can be used to satisfy it. Proposition 3 If (f(,,Z,[~,) is feasible and satisfies the conditions Z/~, = 0 (E'~_i(c, - )(~))/}, = 0, (E~=,/~)(C,- X , ) = 0 and ( C , - f(,)Z-J= 0 for all time periods t, then (f(,,],,[L) minimizes
z~= o(tB, + t,). Proof. Applying a cost of t to each unit of demand backlogged in period t yields the problem ~ " and its dual 9": ~tt:
rv ~":max ~ ( b , T t , - C,z,)
min ~ I, + tI,t=l
s.t.:
t=l
I,_I + B,+ X , - L - B , _ , = b , , X, <_ C,,
s.t.:-t
X, >_ 0,Io = Bo = lr~ = BT~ = 0,
z, > 0,~o = nr~ +, = O.
7~, -- z, _< O,
Since we add an extra period, Tv + i, with infinite capacity at the end horizon, there exists a v such that X, < C,. Set r% = 0, for t = v - 1
..... 1, f f , = ~ f f ' +~ + t ' (if,+1-- 1,
~'r%_ ~ + 1, for t = v + 1..... Tv, rL = [ 0,
if B , > 0 , if L > 0 ,
if )(, = C,, otherwise,
876
Valerie Tardif and Mark L. Spearman
and z7, = rL, for t = 1..... Tv. It is easy to check that (rZ,:?) is dual feasible. In addition, either /~, = 0 or
(C, - X,
~tE[1,v)~rL = ff,+l + t ~ , + l
=0, - if, = - t
and either i, = 0 or C, = .~-,, =rL
i+
l~rL--ff,_l=
1
for all t. Therefore, all complementary slackness conditions are satisfied and (.~,,i,,/~,) minimizes
Z~: o(tB, + I,). 5. C O N C L U S I O N S
If a schedule has insufficient capacity or WIP is not properly placed, then no amount of dispatching or reordering priorities will remedy the situation. The MRP-C procedure is designed to detect such infeasibilities. Making the schedule feasible by delaying jobs and by adding capacity is a job best done by a human planner. Only the planner knows which jobs can be changed and what the capabilities of the production facility really are. MRP-C thus provides the planner with the information needed to do this important job. Consider our example again. Using To, the time to go through the production facility with no queuing, as the fixed M R P lead time for the products, MRP/CRP generates the load profiles illustrated in Fig. 2. The loads in periods 3 to 7 and in period 10 are above the allowed capacity of 100 units. This will result in considerable congestion in the system and in added WIP and longer cycle times. In fact, in our situation, this extra queuing will result in cycle times of 3.5 days on average. The careful manager will therefore prefer to use a lead time of 4 days to be more conservative. Using a fixed MRP lead time of 4 days for the products, the demand at the end of day 3 now becomes infeasible. Adding this demand to the demand of day 4, MRP/CRP generates the load profiles illustrated in Fig. 3. Now the loads in periods 1 to 6 and in period 9 are above the allowed capacity of 100 units. Unfortunately, no information beyond this analysis is provided. An experienced planner will know that he can increase production in periods 8, 10, and 11 to meet the delayed [ ] Load at Station 140
--
m
120
"-1 I00
I
80 60 40 20 0
I
I
I~
I
I 4
I 5
6
I
I
! ,1
10
I
II
Fig. 2. L o a d profiles generated from M R P / C R P with a 3 day lead time.
12
Diagnostic production scheduling
877
[ ] Load at Station 140 -120
--
I00
--
80
m
_
7
--
60-40 -20-0
I
I
i
I
4
5
I
I
6
l
1
I
I
l0
I1
Fig. 3. Load profiles generated from MRP/CRP with a 4 day lead time.
demands. While such changes are easy to make in this simple case, it can be extremely difficult to do in a realistic situation with many periods and products. MRP-C can aid significantly in this task. Finally, we present a summary of computational experience. 20 test problems were randomly generated to represent actual data for a large circuit board plant with total capacity of around 2000 panels per day. Each printed circuit board consists of several layers of epoxy resin, copper and circuitry, laminated together to form a composite which is then chemically treated, machined and tested. Each board typically makes two passes through the lamination presses, becoming more customized after each pass. Thus scheduling is a difficult problem and to simplify their task, management at the firm dedicates two of its presses to the "first pass" lamination and three others to the "second pass" lamination, even though all presses are identical. Our computational study focused on infeasibilities resulting from this policy. Order quantities, due dates, current WlP levels were uniformly distributed over the given horizon of three months. In all cases, our procedure identified the WIP and capacity infeasibilities resulting from demand exceeding expectation. In addition, the procedure provided recommendations on how to achieve a more effective allocation of capacity at the first pass lamination to generate a smooth inventory input to the second pass lamination. From a computational complexity perspective, MRP-C is extremely fast and provides solutions instantaneously, even on a personal computer. It considers capacity explicitly and provides the planner with feasible production and inventory levels when all due dates can be met. Second, it provides useful diagnostics and recommendations on how to remedy the infeasibilities if initial production plans are not feasible. It can be used to replace the core logic of MRP/CRP without creating the need to redesign the whole system. It adds finite-capacity analysis and diagnostic capabilities to MRP/CRP while remaining general in scope. REFERENCES 1. Orlicky, J., Material Requirements Planning: the New Way of Life in Production and Inventory Management. McGraw Hill, New York, 1975. 2. Johnson, S. M., Optimal two- and three-stage production schedules with setup times included. Naval Research Logistics Quarterly, 1953, I, 61-68. 3. Morton, T. E. and Pentico, D. W., Heuristic Scheduling Systems. Wiley, New York, 1993. 4. Hopp, W. J. and Spearman, M. L., Factory Physics: The Foundations of Operations Management. Irwin, Homewood, 1996.
5. Arguello, M., Review of scheduling software setup costs. Technology Transfer 93091822A-XFR, SEMATECH, Austin, TX, 1994. 6. Beck, H., The management of job-shop scheduling constraints in TOSCA. Technical Report 121, Artificial Intelligence Applications Institute, University of Edinburgh, Edinburgh, U.K., 1993. 7. LePape, C., Scheduling as intelligent control of decision-making and constraint propagation. In Intelligent Scheduling, ed. M. Zweben and M. Fox. Morgan Kaufmann, San Francisco, CA, 1994.
878
Valerie Tardif and Mark L. Spearman
8. Florian, M. and Klein, M., Deterministic production planning with concave costs and capacity constraints. Management Science, 1971, 18, 12-20. 9. Baker, K. R., Dixon, P., Magazine, M. J. and Silver, E. A., An algorithm for the dynamic lot-size problem with time-varying production capacity constraints. Management Science, 1978, 24, 1710-1720. 10. Tardif, V., Detecting and correcting scheduling infeasibilities in a multi-level, finite-capacity, production environment. Doctoral Dissertation, Department of Industrial Engineering and Management Sciences, Northwestern University, Evanston, IL, 1995.