Dec 26, 2001 - College of Business, Colorado State University, Ft. Collins, CO, 80528 ... This manufacturer produced for the highly seasonal back-to-school ..... Other related works include those of Hodges and Moore (1970), Myers (1992), Bradley and .... to calculate an allocation curve as well as a method to trade-off.
A HEURISTIC FOR MULTI-ITEM PRODUCTION WITH SEASONAL DEMAND
December 26, 2001 Michael Ketzenberg College of Business, Colorado State University, Ft. Collins, CO, 80528 Richard Metters* Goizueta Business School, Emory University, Atlanta, GA, 30322-2710 (404) 727-7089 John Semple Cox School of Business, Southern Methodist University, Dallas, TX, 75275-0333
* Corresponding author
A HEURISTIC FOR MULTI-ITEM PRODUCTION WITH SEASONAL DEMAND ABSTRACT A heuristic is developed for a common production/inventory problem: multiple products with stochastic, seasonal demand, lost sales, and a constraint on overall production. Heuristics are needed since the calculation of optimal policies is impossible for real world problems. The proposed heuristic is compared with those in current use as well as exact optimal solutions under a variety of conditions. The proposed heuristic is near optimal, deviating from optimality by an average of 1.7% over a two-product experimental design, compared with existing practitioner heuristics, which deviated from optimality by an averages ranging from 4.5 to 10.6%.
(Keywords: Inventory, Production Scheduling, Heuristics)
1. Introduction In many manufacturing environments, limited capacity and strong seasonal demand force businesses to produce and store significant quantities of anticipation stock for future peak periods. As a case in point, one wrapping-paper manufacturer disclosed that 70% of their goods are sold during the Christmas season and that their holiday production begins in January.
Similarly, a candy
manufacturer revealed that production of Christmas candy canes begins during the previous January. Storing large amounts of inventory in anticipation of later sales is not restricted to the production of holiday goods. Capacity limitations coupled with seasonal demand force substantial inventories to be held in such diverse industries as lawnmowers and plastic bags (weather-related industries), pencils and undergarments (back-to-school sales seasonality), dry grocery items such as soups (McKenney and Clark 1995), and even tombstones (Chase, et al. 1998, p.551). Since it is costly to maintain idle capacity during off-peak seasons, the existence of seasonality presents some difficult capacity-allocation decisions who wish to have smooth production schedules (Krane and Braun 1991, Fair 1989). Indeed, the complexity of the problem has prompted many practitioners to produce and carry excessive inventories (Bush and Cooper 1988, Buxey 1993). To effectively manage this inventory problem, three fundamental, but distinct, issues must be addressed in the same algorithm: (i) when to start producing beyond immediate needs in anticipation of the high-demand season; (ii) how to schedule the inventory buildup among products; and (iii) what to produce when current period capacity restrictions will result in immediate shortages. This work is inspired by the production problems of a pencil manufacturer near Nashville, Tennessee. This manufacturer produced for the highly seasonal back-to-school market. Lacking a heuristic or rational plan for production decisions, the operations manager was pressured to allocate capacity among the products based on the political pull of competing marketing managers. Most frequently, products were allocated capacity based on the notion of a “fair share,” where each product was allocated excess capacity in the low demand season based on their projected demand in the high demand season. Although this policy may mollify individual product managers, it is far from optimal. Moreover, the time to commence building anticipation stock was often an issue, a point echoed by many production executives of other seasonal demand firms known to the authors. For reasons to be discussed later, optimal policy calculation is not practical. Consequently, a goal of this paper is to
1
provide operations managers with a practical tool for making better production decisions in this multiproduct seasonal environment.
A second goal is to provide an approximative algorithm in this
environment to support future research. Our objectives will be furthered by the development of an effective and easily implemented heuristic solution. There is a long history in the management sciences of developing such procedures for difficult inventory problems (see, e.g., Ehrhardt 1979). Other areas such as transportation and logistics, yield management, workforce scheduling, layout planning, and Material Requirements Planning have benefited significantly from heuristic construction. Some recent inventory examples include Rajagopalan and Swaninathan (2001) and Belvaux and Wolsey (2001). The essential features of our problem environment include multiple products, seasonal stochastic demand, lost sales, and a general capacity constraint (e.g., machine time, labor, material, budget, etc.). At the start of each period, the production manager must decide how much to produce of each product to minimize total inventory-related costs. Although this problem can be cast as a classical dynamic programming problem, solving the program is impossible. Computational times grow exponentially in the number of products, with CPU times for the single product case measured in minutes, those for the two product case measured in hours, those for the three product case measured in days, etc.
This provides the impetus for the development of our heuristic, whose
performance will be assessed in both theoretical and experimental terms. Our results suggest that the new heuristic is near optimal, deviating from the profitability of an optimal policy by only 1.7% on average in our two-product experiments, and significantly improving upon the existing “fair share” policy, whose profitability deviated by an average of 10.6%. The rest of this paper is organized as follows. Section 2 introduces our notation and provides a general analytic framework for the problem. Related prior research is summarized in Section 3. Optimal solutions are described qualitatively in Section 4. The new heuristic and some competing alternatives are described in Section 5. Section 6 describes the experimental design used for comparing the heuristics and reports on our numerical findings. Conclusions from this research are summarized in Section 7.
2. Mathematical Description For time period t = 1,2,... and product p = 1,2,..,N, the state and action variables, respectively, are
2
itp = inventory of product p on hand at the beginning of period t, and y tp = inventory on hand after production, but before demand. Because we are concerned with seasonal products, we assume that excess demand results in lost sales, hence
itp ≥ 0 . We also assume there is no disposal or deterioration of inventory.
The random demand for product p in period t is represented by xtp ≥ 0 , which is independent across periods and products and has a known discrete probability distribution. We further assume that the distributional parameters vary periodically in a repeating cycle of K periods. The general setting considers an unbounded planning horizon and discounted costs. Here we have explicitly stated both time and product subscripts for y, i, and x. Where the context is clear, time or product subscripts will be suppressed. Table 1 describes the notation that will be used throughout the text.
Let
Gt ( y t1 , y t 2 ,..., y tN ) be the expected single-period holding and lost sales cost in period t:
N ytp Gt ( y t1 , y t 2 ,..., y tN ) = ∑ ∑ (h p ( y tp − m) − v p ⋅ m ) ⋅ φ tp (m) + ∑ (π p (m − y tp ) − v p y tp ) ⋅ φ tp (m) . p =1 m > ytp m =0
(1)
Note that the single-period cost function G depends on t since the demand distribution
φ tp
varies from
period to period.
We assume production costs do not include a “setup” cost. In business terms, this condition is indicative of cross-trained workers, JIT facilities, manufacturing systems with either small setups or setups that can be accomplished off-line and do not inhibit the capacitated resource, or situations where all products are to be produced within the inventory review period regardless of setup costs. In terms of positioning within the research literature, this assumption means that we are interested in finding base stock policy parameters rather than in rationalizing setups.
3
The appropriate optimization can be characterized as a dynamic programming model. For notational convenience, we treat revenue as a negative cost and minimize costs. Here, we use
f t (it1 , it 2 ,..., itN ) to denote the expected cost incurred over an unbounded horizon, where the vector (it1 , it 2 ,..., itN ) is the initial stock level and an optimal production rule is used throughout each period. As is the custom in average cost dynamic programming models, the value
c is the equivalent average
return per period when an optimal policy is used. Formally, the problem is
N ∑ c p ( y tp − itp ) + Gt ( y t1 , y t 2 ,..., y tN ) p =1 f t (it1 , it 2 ,..., itN ) + c = Min N yt 1 , yt 2 ,..., ytN ∈Ω t + + + − − ⋅ f (( y x ) ,..., ( y x ) ) φ ( x ) ∏ t +1 t1 t1 tN tN tp tp ( xt 1 , x∑ p =1 t 2 ,..., xtN ) Here,
d Ω t = y tp ≥ itp ∀ p,
N
p =1
(2)
∑ rp ⋅ ( ytp − itp ) ≤ Rt , and v + = max(v,0) is used to denote the positive
component of v. Although the notation above is necessary for formulating the analytic problem, the thrust of our subsequent work is to develop an effective heuristic for (2).
3. Prior Literature 3.1. Single Product Literature Simpler variants of (2) have received attention in the literature. The one-product, stationary demand version of (2) (also usually assuming backordering rather than lost sales) has been studied by Federgruen and Zipkin (1986a,b), Mapes (1992), Tayur (1993), Ciarallo, Akella and Morton (1994), Glasserman (1997), and Roundy and Muckstadt (2000). Under a variety of conditions, it has been demonstrated that the optimal solution is a modified base stock policy where a single produce-up-to point S represents a target for combined inventory and production, i.e.,
y = min{S , i + R / r} . The
one-product stationary demand variant has also been explored in the context of multi-echelon supply chains (e.g., Glasserman and Tayur 1995, Rappold and Muckstadt 1998). For the uncapacitated, single-product variant of (2), Karlin (1960) and Zipkin (1989) have shown that a single critical number
S t is the goal for production in period t. The production policy
likewise varies with time and assumes the form
y t = max{S t , it } . Similarly, the capacitated single4
product problem is solved by a criticial number for each time period, but that number is a target for production that may or may not be realized due to production capacity limits (Aviv and Federgruen 1997, Kapuscinski and Tayur 1998). This problem has also been explored qualitatively (Metters 1997a) and some heuristics have been developed (Metters 1997b). In uncapacitated environments, the N-product problem is not directly addressed in the literature since, when demands are mutually independent, it easily decomposes into N separate oneproduct problems for typical cost functions. 3.2. Multiple Product Literature The multiple product case poses some fundamental difficulties that do not occur in the single product case. Although a single critical number for each product in each period is an important component of the optimal solution, the solution also depends on the vector of initial inventories. Methods to find the optimal produce-up-to vector for a single time period case have been addressed previously. Karr and Geisler (1956) and Elmaghraby (1960) describe iterative procedures based on marginal cost calculations for such problems. El Agizy (1967) proposes the use of a two-stage linear programming model under uncertainty, and Nahmias and Schmidt (1984) have proposed heuristics. None of these techniques can be extended readily to the multiple-period case, but the intuition developed in these works is helpful in constructing our heuristic. More closely related works address multiple items, multiple time periods, capacitated production, but either stationary stochastic demand, rather than seasonal demand, or backordering, rather than lost sales (Arreola-Risa 1996, DeCroix and Arreola-Risa 1998, Evans 1967, Pena Perez and Zipkin 1997, Sox and Muckstadt 1996). Once again, the optimal production vector is dependent on the entering inventory vector and capacity. These assumptions are more than mathematical embellishments; they substantially change the problem. In the seasonal environment, one must also determine when to begin building anticipation stock, and the optimal product mix proportionally changes over time. The assumption of backordering allows for stocking functions to be aggregated over time and results in considerable simplifications. By comparison, the lost sales assumption introduces intractable mathematical complexities that have been documented elsewhere (see, e.g., Porteus (1990) and Karlin and Scarf (1958)). These additional complications make (2) quite different in character from the aforementioned work. Other related works include those of Hodges and Moore (1970), Myers (1992), Bradley and Arntzen (1999), and Aviv and Federgruen (2001). Hodges and Moore use a combined marginal
5
cost/linear programming approach, but no comparisons to optimality are performed and the method is restricted to the case where total expected demands exceed total capacity. Myers analyzes seasonally demanded fashion-oriented items, but the method precludes building anticipation stock except in the two months prior to sale. Consequently, it was unnecessary to make decisions regarding when to initiate production of anticipation stock and the proper mix to hold. Bradley and Arntzen analyzed deterministic demand. Finally, Aviv and Federgruen address the situation where there is seasonal demand for a single component used in the production of multiple products. The authors additionally assume unsatisfied demand is back-ordered rather than lost. The environment proposed in (2) has been explored in a qualitative way by Metters (1998a), and those qualitative insights will be used in constructing the heuristic. Moreover, the performance of existing practitioner heuristics has been investigated by Metters (1998b). As demonstrated later, the heuristic proposed in this paper is superior to the practitioner heuristics in an overwhelming majority of experimental situations tested.
4. Optimal Solution Characteristics The heuristic that will be proposed is not a simple one. The reason being is that the problem it addresses is complex and has unintuitive characteristics. To be effective, a heuristic should mimic the characteristics of optima. Consequently, we describe the complexity of a solution to (2) in this section. We describe these complexities in stages, first describing the complexities of the single product problem with seasonal demand with capacity constraints; secondly, describing the multiproduct problem with stationary demand; and thirdly, describing the full solution to (2). 4.1. Single Product, Seasonal Demand, and Capacitated Production The single product problem with seasonal demand poses two types of difficulties that must be addressed by our heuristic: the “peak-trough” problem and the “trough-peak” problem (Metters 1997b). The “peak-trough” problem occurs when excessive inventory is carried over from a high demand (“peak”) period into a relatively low demand (“trough”) period. This problem has been analytically solved for the case of no capacity constraints by Karlin (1960) and Zipkin (1989). Their principal theoretical finding relevant to (2) is that the optimal inventory position any time period may
6
depend on the demand in subsequent time periods. Specifically, consider St to be calculated as the optimal solution to the stationary demand problem where demand in all time periods is given by
φ tp ( xtp ) .
Moving to the seasonal demand case, if demand is stochastically larger in subsequent time
periods than in period t, then St remains the solution, but if demand is stochastically smaller in subsequent time periods, then St represents an upper bound. The solution to the uncapacitated problem is a lower bound for the capacitated one, and incorporation of this step is an important starting point in our algorithm. In contrast, the “trough-peak” problem occurs when there is inadequate capacity to meet a future high demand period unless initial inventory levels are substantially higher than those carried during trough periods. The trough-peak problem only occurs in capacitated production environments, and the deterministic demand version of this problem is the classic aggregate planning problem for seasonal demand found in nearly every operations management textbook. Additional complexities to consider in addition to the classic textbook solution are the effects of the convolutions of multiple periods of stochastic demand combined with lost sales. As will be shown in Section 4.3, the traditional deterministic, textbook logic is of limited assistance in the stochastic case. 4.2. Multiple Products, Stationary Demand, and Capacitated Production The structure of the optimal policy for the capacitated two-product problem with stationary demand is well known (Evans 1969) and will serve as a guide for developing our heuristic. The optimal policy is described by three components: the critical vector, the optimal allocation curve, and the optimal policy for excess inventory curve. Figure 1 depicts these three components. The critical vector is S, the dashed line is the optimal allocation curve, and the bold line is the optimal policy for excess inventory curve. Whenever period-beginning inventory levels for both products lie below those of the critical vector (Region II), production is geared toward achieving the levels of the critical vector. If sufficient capacity exists, then one produces up to the critical vector. If insufficient capacity exists, then the optimal produce-up-to point lies on the optimal allocation curve, depicted by the curve formed between the heads of arrows A and B. (The base of each arrow represents the periodbeginning inventory levels and the head represents post-production levels. That is, if initial inventory of both products is zero, we are at the base of arrow B and wish to produce so as to be at the head of
7
arrow B after production). If the period beginning inventory level for one of the products exceeds that of the critical vector (Region I or Region III), then the optimal produce-up-to levels lie on the optimal policy for excess inventory curve, depicted by arrows C and D. Finally, if entering inventory levels exceed the critical vector for both products, then neither product is produced. An obvious necessary element for any heuristic would be to calculate the critical vector S, which will be discussed in the next sub-section. However, Figure 1 also shows that a characteristic of any heuristic should be a method to calculate an allocation curve as well as a method to trade-off excess inventory of one product for another like that depicted in Regions I and III. 4.3. Critical Vector Calculation Consider an individual solution to a particular problem as shown on Table 2. Table 2 displays both the mean demand and the critical vector for each time period and product for the true optimal policy. Case 1 in Table 2 shows the critical vectors for a two-product problem where one of the products has stationary demand and the other has seasonal demand. The critical vectors for Case 1 in Table 2 demonstrate an important counter-intuitive result. It might seem reasonable for the critical vectors to follow the seasonal patterns of the products, with the stationary product having a stationary produce-up-to point and the seasonal product having a seasonal series of produce-up-to points. This production plan would make sense to those who wish to build “focused” factories whose facilities are dedicated to specific product lines (i.e., one seasonal line and one non-seasonal line). This is also consistent with other organizational functions such as marketing and sales, where separate product managers and sales forces serve separate markets. But the optimal solution demonstrates that this type of configuration is far from optimal. The best solution uses highly seasonal produce-up-to points for the stationary product to accommodate the demand fluctuations of the seasonal product. Although mean demand is 8 in each time period for the stationary product, the optimal policy call for a produce up to point between 14 and 26, depending upon the seasonality of the other product. The unintuitive nature of the optimal allocation curve can be expressed numerically here as well. The general solution to time period 8 of Case 1 is depicted in Figure 1. The critical vector is {21,27}, yet the optimal capacitated solution when initial inventory is {0,0} is {17,3} (the head of arrow B). The solution of {17,3} strongly favors production of the first product while the critical
8
vector favors production of the second product. This seeming contradiction is not intuitive at first glance but is easily resolved. The vector {17,3} represents the solution when capacity is insufficient, and favors producing the product with the largest expected revenue, whereas the critical vector in this case represents producing anticipation stock in excess of current period needs. In this respect, it is best to store capacity in the form of the product with the cheapest expected holding cost. Case 2 (both seasonal products) demonstrates another result that runs counter to intuition. Given identical seasonality in both products, one might assume there should be identical critical vectors for each product in each time period. However, the optimal solution employs decidedly uneven critical vectors. The optimal solution initially builds anticipation stock in products with lower holding costs. As an extreme example, in time period 7 only 10 units of product 1 are desired while 51 units of product 2 are recommended. The political ramifications of such an uneven inventory buildup can be severe. Individual product managers will be uncomfortable with a schedule that defers manufacturing of their products until the peak season is near – unless these decisions can be defended as the result of a proven algorithm. A more surprising result for Case 2 concerns the inventory targets set by the optimal policy. Note that the optimal policy begins building anticipation stock in time period 5. However, the targets for periods 9 and 10 would appear to be unattainable if maximum production is begun that late. To make this problem concrete, suppose that the optimal critical vector for period 6 {10,33} can be attained. Applying the logic of deterministic aggregate planning to periods 6 through 9 (that is, adding period capacity and subtracting expected demand), we should enter period 9 with approximately 43 + 20 + 20 - 8 - 8 - 24 = 43 units of inventory. Given 20 units of capacity, it seems unlikely that one could achieve the period 9 inventory target of {38,43}. The key to understanding this apparent paradox is to recall that critical vectors represent targets to be reached if circumstances permit. In our example, the optimal critical vector will usually be unattainable and hence the optimal produce-up-to points will fall on the optimal allocation curve as depicted in Region II of Figure 1. Or, in more plain language, the traditional deterministic logic is of only limited use in this stochastic problem.
5. Heuristic Development
9
Each of the preceding examples figures prominently in the development of our heuristic. We address the peak-trough problem in our heuristic by first calculating the optimal produce-up-to levels for each product individually assuming infinite production capacity, consistent with the work of Zipkin (1989). These values are computed using dynamic programming in our procedure UNCAP and include the costs of carrying excessive inventory. Due to resource restrictions, these values are treated as production targets that are not necessarily achievable. The trough-peak problem is addressed in our heuristic by building anticipation stock whenever future capacity is inadequate to meet basic production goals.
This is done in our procedure
ANTICIPATE, which looks sequentially forward up to one full season (= K periods) to detect any future capacity shortages. If a resource shortage is detected over a future horizon (whose starting point is the subsequent time period), then the current period’s production targets, set during PROC UNCAP, may be revised upward to include anticipation stock. Storage is based on the economic considerations discussed in Section 4.3 and shown on Table 2. Like the critical vector of Evans, PROC ANTICIPATE terminates production of a product whenever the amount stored meets or exceeds its projected needs over the horizon where the shortage is detected. Finally, our heuristic addresses the production problem where current period resources are inadequate to meet current period production targets, like the allocation curve in Figure 1. This is handled by PROC ALLOCATE, whose purpose is to allocate available resources as efficiently as possible to minimize the economic damages of an immediate resource shortage. We now discuss the three procedures in ascending level of difficulty.
10
5.1 Procedures UNCAP, ALLOCATE, and ANTICIPATE Procedure UNCAP This procedure calculates the optimal produce up-to levels for each product assuming no resource restrictions. This involves solving N single-product dynamic programs, a task that does not pose any computational difficulties. The notation is summarized in Table 3.
PROC UNCAP ( t * ) FOR
t = t*,... Rt := ∞
END FOR FOR p = 1, 2,... N SOLVE (2) USING DYNAMIC PROGRAMMING TO GET
S tp∞ , t = t*,..., t * + K .
END FOR RETURN END Procedure ALLOCATE We use the marginal analysis approach of Karr and Geisler (1956) in building the procedure ALLOCATE, whose purpose is to economically allocate a single production resource among competing products for a single time period. It is assumed, without loss of generality, that
rp = 1 for all p. This
allows our marginal allocation decisions to focus on the incremental benefit of a single unit of the production resource. In practice, this assumption can be realized by transforming all demands, distributions, and production targets into equivalent units of resource consumption. All costs and profits would then be calculated on a “per unit resource” basis. Our notation is summarized in Table 4.
11
PROC ALLOCATE (t , S tp∞ [∀p], Rt , S tp [∀p]) Lt := {1,2,..., N } FOR p = 1, 2,... N ∞ IF S tp ≥ S tp THEN L = Lt \ { p} END FOR WHILE Rt
>0 FOR p ∈ Lt AP( p) = v p + π p − c p − (h p + v p + π p − c p ) ⋅ Φ tp ( S tp + 1)
END FOR
p max = Arg max( AP( p )) p∈Lt
S tpmax = S tpmax + 1 IF
S tpmax ≥ S tp∞max THEN Lt = Lt \ { p max }
Rt = Rt − 1 END WHILE RETURN END The input parameters are returned through the variables
t , S tp∞ ( ∀p ), and Rt . The outputs (final production levels) are
S tp ( ∀p ), although these variables are also used to pass initial
inventory levels (inputs) from the calling program. Observe that PROC ALLOCATE revises the
S tp
values upward sequentially, always focusing on the item with the greatest expected profit (identified
p max ), until the current period’s resources ( Rt ) are exhausted.
by
Procedure ANTICIPATE This procedure, the most complicated of the three, decides how muchif anyanticipation stock should be stored in the current period. The procedure borrows heavily from the traditional textbook treatment of anticipation stock.
{S
j1
Under this approach, the optimal inventory vector
, S j 2 ,...., S jN } in a future period j is composed of expected demand and safety stock. Production is
increased in the current period
t * if deterministic estimates of future demand cannot be met over the
corresponding horizon. In our case, this amounts to the following resource test for horizon
12
[t * +1, j ] :
j −1 N ∞ R S S E ( xtp ) ⋅ rp < − + ∑ ∑ ∑ t t* p jp t = t *+1 p =1 t =t * j
If inequality (3) is satisfied, then anticipation stock is added in period
(3)
t * . However, an item can only
be stored if its additional profit in period j exceeds the additional cost of holding it until then. As before, we assume each product consumes a single unit of resource ( r p
= 1 for all p).
Additionally, we assume that this procedure is only called when the current period’s needs (expected demand plus safety stock) can be met with excess capacity to spare. ANTICIPATE is summarized in Table 5.
13
The notation for PROC
PROC ANTICIPATE ( t * , S tp∞ [ ∀t, p ], it* p [ ∀p ], Rt [ ∀t ], S t* p [ ∀p ]) FOR
(4)
p = 1, 2,..., N S t* p := Max(S t∞* p , it* p )
END FOR FOR j = t * +1,....., t * + K
Lt* := {1,2,..., N } j −1
N
N
N
p =1
p =1
RS ( j ) = ∑∑ E ( xtp ) + ∑ S ∞jp − ∑ S t* p − p =1 t =t *
j
∑R
t =t *+1
t
R + = Rt* − ∑ (S t* p − it* p ) N
p =1
(5)
WHILE
RS ( j ) > 0 AND R + > 0 AND Lt* ≠ ∅ FOR p = 1, 2,... N j −1
IF
S t* p ≥ S ∞jp + ∑ E ( xtp ) THEN Lt* = Lt* \ { p} t =t *
j −1 S jp := Max 0, S t* p − ∑ E ( xtp ) t =t *
END FOR
PROC ALLOCATE ( j, S ∞jp [∀p], R j , S jp [∀p ])
(6)
FOR
p ∈ Lt* AC ( p) = −v p − π p + c p + (v p + π p − c p + h p ) ⋅ Φ t* p ( S t* p + 1) + h p ⋅ ( j − t * −1) AP( p) = v p + π p − c p − (h p + v p + π p − c p ) ⋅ Φ jp ( S jp + 1) IF
AC ( p) > AP( p) THEN Lt* = Lt* \ { p}
END FOR IF Lt * ≠ ∅ THEN
(7)
p min = Arg min ( AC ( p )) p∈Lt *
S t* pmin = S t* pmin + 1 RS ( j ) = RS ( j ) − 1 R+ = R+ − 1 END IF
END WHILE
END FOR RETURN END
The input parameters are
t * , S tp∞ ( ∀t, p ), it* p ( ∀p ), Rt ( ∀t ). The output parameters are the final
values of the produce-up-to levels,
S t* p ( ∀p ). These final values represent the production plan that
the operations manager would implement as an approximation to the optimal min-cost policy.
14
The numbers in parentheses identify four sections of the procedure that are discussed next. Section (4) marks the beginning of the outer loop, where projected future resources are tested to see if they can meet basic production goals over the horizon
[t * +1, j ] , ( j ≥ t * +1, j ≤ t * + K ). These ∞
basic production goals are (i) to meet horizon-ending inventory targets ( S jp ) for all products; and (ii) to meet expected demands over the intervening periods for all products. If a future horizon lacks sufficient resources to meet these goals (evidenced by
RS ( j ) > 0 ), then surplus resources in period
t * , denoted by R + , can be used to build anticipation stock. In contrast to the backward progression of dynamic programming used for setting targets, PROC ANTICIPATE looks forward when allocating resources to achieve these targets. This is because it is best to address an immediate and more certain production shortfall instead of a distant and less certain one. The while loop (5) begins by eliminating products for potential storage if their projected initial inventory levels for period j, based on the existing produce-up-to levels and expected demands, already meet future production target levels (i.e.,
S ∞jp ). The projected initial inventory levels for
period j are also used to initialize the variables S jp (p=1,2,….,N) without restriction to the previous filtration.
Anticipation production does not proceed unless there is an economic incentive for doing so, and sections (6) and (7) analyze these incentives. To estimate the marginal profitability of additional units in period j, section (6) begins by allocating the future capacity R j using PROC ALLOCATE. Recall that projected entering inventory levels are already passed to PROC ALLOCATE through the variables S jp (p=1,…, N) initialized in section (5). The produce-up-to levels returned by PROC ALLOCATE thus represent a projected production plan for period j, one that can be used to approximate the marginal profits in period j. Products whose additional accrued storage costs AC ( p ) exceed their additional future profits AP( p) are eliminated from the list of products Lt* to store at present. If Lt* is not empty, then scheduled production of the cheapest item (identified by p min ) is revised upward by one unit in the current time period. This entire process, initiated by the while loop (5), is then repeated until either the economic
15
benefits disappear ( Lt* = ∅ ), the resource shortfall is eliminated ( RS ( j ) = 0 ), or the current period’s resources are exhausted ( R + = 0 ). When the while loop (5) terminates, the heuristic returns to investigate the possibility of building additional anticipation stock to address shortages over longer horizons (the next being [t * +1, j + 1] ) as specified by the pointer j used in the major loop (4).
5.2. The Marginal Analysis (MA) heuristic The three previous procedures are now pulled together into a formal statement of our Marginal Analysis (MA) heuristic. The heuristic has three basic steps. First, we compute production targets based on the solution to the uncapacitated version of (2) using PROC UNCAP. If capacity is adequate to meet production targets in all periods, the uncapacitated solutions are used as final solution vectors. If capacity is not sufficient to reach targeted levels in the current period (period
t * ), the ALLOCATE
procedure is used. If capacity is sufficient to reach current period production targets, but future capacity is insufficient to meet future targets, then the ANTICIPATE procedure is used.
MA HEURISTIC
PROC UNCAP ( t * ) FOR
p = 1, 2,... N S t* p := Max{S t∞* p , it* p }
END FOR N
IF
[
]
Rt* < ∑ ( S t* p − it* p ) ⋅ rp THEN p =1
FOR
p = 1, 2,... N S t* p := it* p
END FOR
PROC ALLOCATE (t*, S t∞* p [∀p], Rt* , S t* p [∀p])
ELSE
PROC ANTICIPATE( t * , S tp∞ [ ∀t, p ], it* p [ ∀p ], Rt [ ∀t ], S t* p [ ∀p ])
END IF STOP END
The outputs of the MA heuristic are the produce-up-to levels
St * p , which are initialized at
appropriate “floor” levels and then revised upward until a final production plan is reached. inadequate capacity exists in period
When
t * , the St * p are initially set to the (known) entering inventory 16
levels and then revised upward using PROC ALLOCATE until the current resources are exhausted. When adequate capacity exists in period
t * , the St * p are initially set to meet current period targets
(expected demand plus safety stock) and then revised upward using PROC ANTICIPATE to account for anticipation stock. This is essentially the sequence of events a production manager would follow: first address the needs of the current period ( t * ) and then use excess capacity to build inventory for future shortages. 5.3 Competing Heuristics
Fair Share Heuristic The “fair share” heuristic simulates the production planning decisions used by the pencil manufacturer: Capacity is allocated to products based on “fairness,” so that all products have inventory levels in proportion to their future expected demand. More formally, a target
S tpfs is set for each product in each time period that corresponds to the
solution of an infinite horizon, stationary demand, single product problem. That is, the target for the combination of production and entering inventory is a variant of the “news-vendor” solution
[
]
S tpfs = Φ tp−1 (π p + v p − c p ) /(h p + π p + v p − c p ) . The decision to initiate anticipation stock is made in a manner described by most textbook treatments of deterministic aggregate planning. Looking forward to period j from the current period j −1
∑ E(x t =t *
tp
t * , if
N
N
j
p =1
p =1
t =t *+1
) + ∑ S jpfs − ∑ S t*fsp − ∑ Rt > 0 ,
then a resource shortfall exists if one only produces to the current period’s newsvendor solution. Anticipation stock is added to products in proportion to their future expected demand until the projected future resource shortfall disappears.
Proportional Heuristic Both the proportional and fixed heuristics are described fully in Metters (1998b). A general description is given here. These heuristics represent idealizations of practitioner behavior noted in the literature (Pohlen 1989, Berry, Vollman and Whybark 1979), and are optimal for non-seasonal, uncapacitated environments.
17
Again, the target
S tpprop is set for each product in each time period in accordance with the single
period “news-vendor” solution. These targets are increased for the time periods leading up to the peak season in accordance with a linear program. Qualitatively, the effect of the linear program is to increase the inventory position target of the low demand periods to compensate for shortfalls in the high demand periods. It is termed the “proportional” heuristic because, under certain demand conditions, the proportional policy sets
S tpprop in exact proportion to shifts in mean demand.
If the demand
distribution is continuous and symmetric (e.g., uniform or normal distribution), costs are stationary over time, and there is a constant ratio
σ tp / E ( xtp ) = γ
), then
γ
of the standard deviation to mean demand for all t (i.e.,
S tpprop / S tˆprop = E ( xtp ) / E ( xtˆp ) . This leads to an intuitive and simple explanation p
of the proportional policy: if expected demand increases by some percentage from one period to another, then increase S by the same percentage.
Fixed heuristic A target
S tpfix is set for each product in each time period by adding a fixed amount of safety
stock to expected demand regardless of seasonality. As in the proportional heuristic, a linear program increases the inventory position target of the low demand periods so that the peak demand period target can be met.
6. Heuristic Performance 6.1. Theoretical Considerations Although the major thrust of our subsequent work is to study the heuristic’s performance in an experimental setting, we begin with a brief look at the heuristic’s behavior under simplified theoretical conditions. First, let us consider the case where demand is stochastic but adequate capacity exists to meet target inventories without building anticipation stock. Here, the heuristic correctly decouples the problem into N uncapacitated problems − one for each product − and returns the optimal policy for each product. A second and more interesting case is where demand is deterministic but capacity is
18
insufficient in some future period to meet target demands. In this case, some sort of planning is required, and the heuristic delivers an optimal policy under a variety of plausible conditions. It is not our intent to provide an exhaustive account of the scenarios for which the heuristic is optimal, but rather to demonstrate its optimality for a representative case. (C1) All N products use (C2)
rp = 1 and share a single high-demand period (the "peak period")
Rt is sufficient to meet demands in each period t provided t ≠ peak period
(C3) Total surplus capacity in the non-peak periods is sufficient to compensate for the marginal resource shortfall in the peak period (C4) The additional cost of holding items for a full cycle never exceeds the profit of the item, i.e., h p ( K − 1) < v p + π p − c p for all p. THEOREM. If conditions (C1), (C2), (C3), and (C4) hold, then the heuristic delivers the optimal policy. Proof (sketch). Conditions (C1) and (C2) ensure that the peak period is the only one for which anticipation stock is stored. Conditions (C1), (C2) and (C3) imply that all (deterministic) demands can be satisfied over a full cycle, which we define to be the K consecutive periods that follow a peak period. Condition (C4) ensures that the cycle's demands will be satisfied by the optimal policy, i.e., it is never optimal to incur a shortage in any product. Moreover, observe that the total profit for one complete cycle is of the form N t* + K
∑ ∑ E(x p =1 t =t *
tp
) ⋅ (v p + π p − c p ) − holding costs for anticipation stock .
Since the double summation term is constant, the optimal policy minimizes the holding costs associated with building anticipation stock. This involves delaying anticipation production until it is absolutely necessary as done in the MA heuristic. That the MA heuristic's production schedule further minimizes the costs associated with holding anticipation stock can be demonstrated using a standard interchange argument between products. Remark 1: Conditions (C1), (C2) and (C4) can be relaxed substantially, but more complicated assumptions are then needed to ensure optimality. Remark 2: We continue to assume, without loss of generality, that each product consumes one unit of resource.
19
6.2. Experimental Design: Two-Product Case The four heuristics described in section 4 are tested under various business conditions by comparison to optimal policies. Exact profitability of both optimal and heuristic policies is determined by dynamic programming, thus our results reflect precise expectations instead of statistical estimates. A drawback to this level of precision is that our test problems feature only two or three products, due to the length and memory requirements of the experimental cells. Tests were performed on a 933 MHz personal computer with 512 MB of RAM (a large amount of RAM is necessary for the approximately 800,000 state space size of the three-product problem). Calculating optimal policies for the two-product problem required approximately 1½ hours per experimental cell, while a single cell of the three-product problem required approximately 1½ days. As optimal policy solution times are exponentially related to the number of products, we estimate that the four-product problem would require weeks of CPU time. The different factors used to evaluate policies are four degrees of demand seasonality (Table 6), two different seasonal cycle lengths, two degrees of demand uncertainty, three different ratios of penalty costs to holding costs, and three different levels of capacity, as outlined on Table 7. Consequently, 144 experimental cells exist for the two-product problem. The parameters and demand distributions are selected to reflect the situation faced by the pencil manufacturer cited earlier. Demand distributions in Table 6 correspond to the seasonal shapes experienced by the firm and are constructed to have the same overall annual mean. The data represent the two distinct markets serviced by the manufacturer: the seasonal retail market for school children, and the stationary commercial market catering to businesses. In total, about 400 SKU's are produced, each reflecting different combinations of wood, paint, lead, eraser, design or packaging. Products for both markets are produced in the same manufacturing facilities. Although some products are sold to both markets, the overlap is not significant. The commercial market exhibits virtually no seasonality, while the retail school market experiences a demand surge in August (this translates into a peak-period of June for the manufacturer). The level of seasonality exhibited in the table is not unusual. Firms that produce for specific holidays (Metters 1997b) and such seemingly stable demand industries as canned soup (McKenney and Clark 1995) experience greater seasonal swings.
20
Capacity is measured as a percentage of mean cycle demand. Demand follows a negative binomial distribution. Products have either 20%, 30%, or 40% gross profit margin and holding costs are 33% of production costs per cycle. The cost of a lost sale, in addition to the loss of revenue, is half the gross margin of the product. Given a holding cost normalized to h1=1 per period and a 20% margin, this leads to
c1 = 36, v1 = 43 and an additional lost sales penalty of 3.5 per unit.
Consequently, the ratio of the total costs of a lost sale (43-36+3.5) to the per-period holding cost is 10.5/1. The second product has an identical ratio of costs, but h2=2 to avoid alternate optimal solutions. 6.3. Results: Two-Product Case The general performances of the heuristics follow a similar pattern for nearly all experimental cells (see Tables 8 and 9). The MA heuristic was closest heuristic to optimality in 142 of the 144 cases with an average deviation from optimality of 1.7%, followed by 4.5% for the fixed heuristic (second best heuristic in 94 cases, third best in 50 cases), 5.5% for the proportional heuristic and 10.6% for the fair share heuristic (worst heuristic in 139 of 144 cases). Worst case performances followed the same trend, with the MA heuristic deviating at most 5.3% from optimality and each of the other heuristics sustaining worst case performance in excess of 15% deviation from optimality. All heuristics are closest to optimality in the experimental cells that require less careful planning: high capacity, high margins, and the least seasonality. These results are easy to explain: as capacity increases, analyzing the tradeoffs between products becomes less critical; when profits are high, one primarily manages shortage costs as excess inventory is relatively less costly. However, even at their best, the practitioner-based heuristics are thoroughly out-performed by the MA heuristic. The two specific cells where the MA heuristic was outperformed were both where K=4, the mildest seasonality tested, and the highest capacity ratios. In those two cases, the Proportional heuristic deviated from optimality by 2.0% and 2.2%, while the MA heuristic deviated by 2.2% and 2.7%. A casual view of Table 9 indicates that some of the varied factors have little effect on optimality deviation or differentiation between heuristics. The number of time periods/cycle and the variance/mean ratio of demand did not have large effects on the results. Further experimentation (not shown) using a cycle length of eight time periods and a variance/mean ratio of five lent further confirmation to the lack of effects of these variables on optimality deviation.
21
However, the capacity level, profit margin, and the extent of seasonality directionally affected all the heuristics in a similar fashion: Increasingly tight capacity, lower profit margins, and heavier seasonality decreased the performance of all heuristics. This view is corroborated by a regression analysis of the factors’ effects on optimality deviation (not shown). Due to the truncation of optimality deviation at zero, we model the logarithm of the percentage deviation from optimality as a function of the experimental variables. Capacity, margin, and seasonality were the only factors where p t * ) for which anticipation stock is stored t = t*, t * +1,....., t * + K .
Rt
Resources available in period t,
it * p
Current inventory of product p
Lt*
List of products to be manufactured in period
S ∞jp
Optimal produce-up-to level for product p in period j assuming infinite capacity
t * and stored for use in period j
t * . This is initialized to the current ∞ period’s uncapacitated production target (i.e., Max{S t * p , it * p } ) and then revised
Produce-up-to level for product p in period
S t* p
upward to include anticipation stock. The final values of
S t* p form the heuristic’s
production plan.
S jp RS ( j )
Projected produce-up-to level for product p in period j (based on current values of S t* p ) levels
R+
[t * +1, j ] assuming current produce-up-to and projected carryover from period t * .
Projected resource shortfall for the horizon
S t* p
Excess resources available in period
t * after meeting existing production targets S t∞* p
AC ( p)
The additional cost of holding an extra unit of product p until period j
AP( p)
The additional profit for having an extra unit of product p available in period j
xtp
Random demand for product p in period t
K
Number of periods in one full seasonal cycle
32
Table 6: Two-Product Demand Seasonality Types: Mean Demand in Each Time Period Four Time Periods Period Seasonality
1
2
3
4
Stationary Mild Moderate Heavy
6 4 6
6 6 6 6
6 8 10 12
6 6 2 2
4
Twelve Time Periods Period Seasonality
1
2
3
4
5
6
7
8
9
10
11
12
Stationary Mild Moderate
6 5 3
6 5 3
6 5 4
6 7 4
6 8 9
6 12 16
6 5 6
6 5 5
6 5 4
6 4 4
6 4 4
3
4
5
12
20
6 7 1 0 1 0
3
3
3
3
Heavy
3
3
Table 7: Two-Product Experimental Design: Varied Quantities 1)
Seasonality: 4 levels (actual data dependent on seasonal cycle length – see Table (format: [product 1, product 2]) [Stationary, Heavy] [Mild, Heavy] [Moderate, Heavy] [Heavy, Heavy] Product margin: 3 levels: 20%, 30%, 40% Time periods in a seasonal cycle: 3 levels: 4, 8, 12 Ratio of capacity to mean demand: 3 levels: 115%, 125%, 150% Variance/mean ratio of demand in each time period: 2 levels: 2, 3
Table 8: Two-Product Results: Ordinal Rankings of Heuristics
Heuristic
Percentage of Experimental Cells (144 cells) Best Heuristic 2nd 3rd Worst Heuristic
33
Marginal Analysis Fixed Proportional Fair Share
99% 0% 1% 0%
1% 65% 33% 0%
0% 35% 62% 3%
0% 0% 3% 97%
Table 9: Two-Product Results: Expected Percentage Profit Deviation from Optimality
Average Optimality Deviation
MA 1.7%
Fixed 4.5%
Proportional 5.5%
Fair Share 10.6%
Percentile Optimality Deviation 0th percentile 25th percentile 50th percentile 75th percentile 100th percentile
0.1% 1.1% 1.4% 2.1% 5.3%
1.6% 2.8% 3.8% 5.5% 15.6%
1.6% 3.0% 4.5% 6.6% 23.3%
5.7% 8.4% 10.0% 11.6% 22.9%
2.4 1.7 1.0
6.4 4.1 3.0
8.5 5.0 3.0
12.2 10.4 9.2
1.3 1.8 2.0
3.3 4.4 5.8
3.7 5.2 7.6
8.9 10.1 12.9
1.5 1.8
4.5 4.5
5.1 5.9
10.6 10.6
1.8% 1.6%
3.9% 5.1%
5.7% 5.3%
12.2% 9.0%
1.4 1.5 1.7 2.2
4.1 4.2 4.4 5.3
3.8 4.8 6.0 7.4
9.8 10.0 11.1 11.5
Capacity 115% of mean demand 125% of mean demand 150% of mean demand Margin 40% 30% 20% Variance/mean 2 3 Time periods/cycle 4 12 Seasonality [Stationary, Heavy] [Mild, Heavy] [Moderate, Heavy] [Heavy, Heavy]
34
Table 10: Three-Product Results: Expected Percentage Profit Deviation from Optimality
Average Optimality Deviation Comparison Group: Two-Product Optimality Deviation for Identical Parameters Capacity 115% of mean demand 125% of mean demand 150% of mean demand Margin 20% 30%
MA 3.9% 2.7%
Fixed 7.6% 6.2%
Proportional 9.9% 9.2%
Fair Share 22.6% 15.7%
6.0% 5.0% 1.5%
9.7% 8.2% 4.9%
13.5% 10.3% 5.8%
23.7% 22.4% 21.9%
4.7% 3.0%
9.7% 5.4%
13.4% 6.4%
27.0% 18.2%
35