Computing Optimal Stock Levels for Common ... - CiteSeerX

0 downloads 0 Views 282KB Size Report
Pittsburgh, PA 15213. January 1994; Revised April 1995 ... The end-products share, in di erent ratios, several common components. While ... Each program in this set is equivalent to a one-period recourse problem. At the heart ..... Suppose now that the period-1 demand, 1, has a density on 0;1)m (by which we mean that.
Computing Optimal Stock Levels for Common Components in an Assembly System Sridhar Tayur GSIA Carnegie Mellon University Pittsburgh, PA 15213 January 1994; Revised April 1995 Abstract

Managing component inventories e ectively in assembly systems with several products that share many common components can lead to improved customer service. We consider a two-level, nite-horizon assembly problem with multiple end-products that have random demands and share several common components. The objective is to minimize the total cost which comprises of holding excess components and paying a penalty on backlogged demand of the end-products. We model this problem as a multi-period stochastic program. We show that it can be decomposed into a set of nested stochastic programs, each similar in structure to a one-period problem. We show that the problem is convex. We develop a simulation-based method for estimating the derivatives of costs with respect to component stock levels. These derivative estimates are then used in an optimization procedure to obtain optimal values. Our estimation algorithm takes advantage of special structure in the imbedded linear programs. Experiments suggest that our algorithm converges to good values on industrial size problems in reasonable time. Extensions to compute derivatives with respect to demand parameters, executing our algorithm in a rolling horizon, solving an in nite horizon stationary problem and taking advantage of special demand structures are also discussed. Key words: Assembly systems; component commonality; stochastic program; simulation; derivative estimation; dual simplex; sensitivity analysis.

1 Introduction Our model is a periodic-review, nite horizon, assembly system with n components and m end-products facing stochastic demand. Our original motivation to study this problem came from a need to analyze IBM's PS/2 line of business which has the following characterstics. The lead times for components are long and the product demands are highly variable and correlated. The end-products share, in di erent ratios, several common components. While the assembly capacity can be considered unlimited, the component producers need to have a base plan several periods in advance due to their capacity constraints and yield problems. 1

These base plans may be updated within some reasonable bounds in the next time period. This kind of setting calls for having to place orders for component stocks much earlier than the demand occurences, but actually assembling them only after the demands have occured. These characterstics, in most part, seem to be shared by several other manufacturers in this industry, as well as in certain other related high-technology industries. In particular, this situation is very typical when dealing in feature based products (such as personal computers) where several end-products share a large number of common components. We model the nite horizon problem as a multi-period stochastic program. Stochastic demands for the end-products occur in every period; the demands across products and time periods may be correlated. These demands (and possible backorders that exist) are met to the best extent possible from available component stock. Holding and penalty costs are linear; there are no xed ordering costs. The holding costs are on the components that are left over at the end of a period, while the backorder costs are on the backorders of the end-products. The goal is to nd a good set of component stocks, indexed by component type and the time-period in which they are to be delivered, that are to be ordered in advance. We show that this multi-period stochastic program decomposes into a set of nested stochastic programs. Each program in this set is equivalent to a one-period recourse problem. At the heart of the procedure to solve the multi-period problem is a method for estimating from simulation, derivatives of inventory costs with respect to stock levels of the components. We also show that our nite horizon problem is convex. We can then use the derivative estimates to solve the optimization problem via a gradient step. An advantage of simulation-based derivative estimates is that they help in the search for improved parameter values while allowing for complex features { such as correlated and/or non-stationary demands { that are generally outside the scope of analytical models. Note that the convergence of our estimator is over the number of independent simulation runs (replications) for derivatives of nite-horizon costs. A brief review of available literature on component commonality is as follows. Papers dealing with the component commonality problem either use a chance-constrained model (with a constraint on service levels) or have a penalty cost for backorders: see, for example, Baker (1985, 86), Collier (1981, 82), Eynan and Rosenblatt (1991), Gerchak and Henig (1986), Gerchak, Magazine and Gamble (1988). Typically, a one-period problem under restricted assumptions on U (component to product matrix) or F (demand distribution) is considered. The focus of these papers have been to (a) provide insight into the trade-o s between standardization and price, (b) provide proofs of the bene ts of co-ordinated component stocking and (c) provide solution methods for simple cases. The results of these papers are applicable only for special 2

demand distributions, single period situations and small number of products and components. In Srinivasan et al (1992), a multi-period model has been formulated (with chance constraints) with general U and non-stationary demands. However, only approximations of the model were solved heuristically, using standard non-linear programming methods. A dual method that relies on gradients is developed by Komaromi (1986) for a one period problem with general U . In general, computing the gradients in chance-constrained programming with joint constraints is computationally very dicult (see Wets(1989) for a good discussion). Recognizing this dif culty, a di erent algorithmic approach is taken in Kannan, Mount and Tayur (1995) where a randomized polynomial-time algorithm that requires only objective function values (and not the gradients) is developed to solve a one period problem with general U and log-concave F . General stochastic programs with recourse have been studied extensively and several theoretical results have been obtained. Wets (1989) contains an extensive survey and an excellent critique. The relevant theoretical results include the following: (1) sucient conditions for a two-stage program to be convex; (2) showing that a ner discretization leads to a solution closer to the optimal. However, there are no theoretical results that can connect the amount of discretization required to be within a given error bound on the vector of optimal solution. Practical computational methods are not readily available in complete generality, although, the special case of simple recourse, or problems that have network structure in imbedded linear programs (LP) have met with good success. (A LP with network structure can be solved 20200 times faster than those with no structure.) A good reference is Ermoliev and Wets (1988). Recently, several techniques have been developed that rst convert a multi-period problem into a large linear program by discretizing the demand distribution (or by scenario aggregation), and then use fast factorization techniques as well as parallel architecture to solve this LP. Berger, Mulvey and Ruszcynski (1994) provides a state-of-the-art technique and numerical comparisons with other general purpose methods. Their method has met with very good success in several applications. We applied this method to our problem, with moderate success: a 3-period problem with 400 demand possibilities having 20 products and 10 components took 30 minutes on a workstation (the U matrix had a density of 0.5); larger problems (measured in terms of components and products) could not be solved due to memory problems while denser problems (measured in terms of non-zeroes in the U matrix) took signi cantly longer times. When an attempt was made to guarantee that we were within 1% to the optimal vector (and so had to increase the number of demand possibilities or secenarios), even smaller problems were not solvable on a workstation. Even with parallel architecture available on sophisticated machines, the density of the matrix poses severe problems. Furthermore our method takes time linear in 3

number of periods as against the large LP methodology where the time grows exponentially. (Section 5 discusses these issues.) Gradient (or sub-gradient) based methods have been suggested for solving single period models (Wets 1989); however, they have not worked well previously because it was costly to compute these gradients or in certain cases, sub-problems with good network structure did not posess sub-gradients in certain regions (for example, Hsu and Bassok, 1995). Furthermore, gradient based methods have not been studied in detail for general multi-period models. By providing a fast method for re-optimizing and by showing a nested structure, we apply the gradient based technique to our multi-period stochastic recourse problem with satisfactory results. An advantage of our method is the relative ease of implementing it. As we will see in section 3, our situation has such special structure that many cases of multi-period problems can be solved by considering only one-period problems. This cannot be exploited by a general purpose technique. Other researchers working on production problems in the framework of stochastic programs have also found that tailoring algorithms exploiting special structure is better than using general purpose methods; for example, see Escudero et al. (1993), and Hsu and Bassok (1995). The rest of this paper is organized as follows. Section 2 describes the rst-period (or the oneperiod) and the T-period models. Section 3 considers the analysis of both the one-period and the multi-period problems: we prove convexity (section 3.1); provide derivative estimators and the proofs of consistency (section 3.2); provide a quick update procedure for re-optimization (section 3.3); and describe the overall algorithm (section 3.4). Some theoretical results to justify our approach here follow fairly simply from existing results on single period models with demands having a nite support; we provide short proofs for the required extensions. In Section 4, we brie y discuss computing derivatives with respect to demand parameters (section 4.1), discuss executing our algorithm in a rolling horizon (section 4.2), and consider an in nite horizon stationary version of our problem (section 4.3). In Section 5 we report on some numerical experience. Section 6 discusses a special case when answers to multi-period problem can be read o from scaling answers obtained from a single period problem. Section 7 concludes the paper by summarizing the results.

2 Model As discussed in the introduction, we consider a nite horizon (indexed by t, 1  t  T ) with multiple end-products (indexed by j , 1  j  m) and multiple components (indexed by i, 4

1  i  n). We need to compute quantities qit , representing the amount of type i component to be delivered in period t. One unit of end-product j needs uij units of component i. Demands for the end-products are continuous, inventories are reviewed periodically, and un lled orders are backlogged. We assume that F1;:::;m;1;:::;T (f jtg), the joint distribution of end-product demands is known (as is the density f1;:::;m;1;:::;T ), and that random variates f jtr g, 1  r  R can be generated easily. The holding cost for each unit of component i is hi and the penalty cost for each unit of end-product j backorder is wj . We detail the operation of the rst period problem, then explain how the T-period system works.

2.1 First Period Problem Consider the rst period. Within this period, events occur in the following order: First, components arrive for this period. Denote them by qi1 ; i = 1; : : :; n. Second, demands of the end-products occur. Denote these demands by j 1. Third, using the components available, the production level sj 1 (j = 1; : : :; m) for product j is decided. The end-product demands are lled (or a backlog occurs) using sj 1 . The holding cost is on the inventory of components left-over at the end of the period (hi per unit for component i); the penalty cost is on backorder of end-product demand (wj per unit for end-product j ). We never assemble more products than we can sell in any period because the assembly capacity is assumed unlimited. Let h = (h1; : : :; hn ), w = (w1; : : :; wm), q1 = (q11; : : :; qn1) and s1 = (s11 ; : : :; sm1). Let U denote a matrix of elements uij . As it will be obvious from the context, we will not explicitly state whether a vector is a row or a column vector, nor will we display its dimension. Our problem is

^ (q1; 1) minq1 EQ ^ (q1; 1) = mins1 h  (q1 ? U  s1) + w  ( 1 ? s1) where Q such that U  s 1  q1 0  s1  1 ;

which, after a simple rearrangement of the objective function becomes (P) minq1 h  q1 + EQ(q1 ; 1 ) where Q(q1 ; 1) = ?max [(h  U + w)  s1 ? w  1 ] such that U  s 1  q1

0  s1  1 : 5

The stochastic program (P) is to be interpreted as follows. A decision q1 is made (components are ordered), then a demand 1 (of end-products) occurs, to which we respond by making s1 (of end-products) that optimizes the imbedded linear program (denoted by P (q1 ; 1)). We are to nd a q1 that minimizes the total expected cost of holding the left-over components as well as the penalty for unsatis ed end-product demands.

2.2 The T-Period Model We now link multiple periods in series. There are T periods, indexed by t. In periods t  2, both the left-over components at the end of period t ? 1 (if any) and the backorders at the end of period t ? 1 (if any) carry over to period t. Two features thus distinguish the multi-period system from a single period system: (1) Components scheduled to arrive at the beginning of period t, namely qit , are added to those left over from the previous period. We denote available quantity of component type i in period t by q~it . (2) The total number of end-products that need to be produced now equal the sum of the new demand jt and the backlog from the previous period. We denote this quantity by ~jt . The t-th period problem then is as follows. minqt h  qt + EQ(qt ; t) where Q(qt ; t) = ?max [(h  U + w)  st ? w  t] such that U  st  q~t

0  st  ~t

The T -period problem (not to be confused with the T -th period problem), then, is the following: P (PT ) minq1 ;:::;qT Tt=1 (h  qt + EQ(qt ; t)) where Q(qt; t) = ?max [(h  U + w)  st ? w  t] 1  t  T such that U  st  ~qt 1tT 0  st  ~t 1tT and q~t = ~qt?1 + qt ? U  st?1 1tT ~t = ~t?1 ? st?1 + t 1tT

with q~0 = ~0 = s0 = 0. Unlike the rst-period problem (P), the t-period problem (just the same as a T -period problem but we replace T by t) has the balance equations: the equations that link components 6

and backorders carried over from one period to the next. (The base plans qt; 1  t  T are provided to the supplier before actually seeing any demand.) Note that the production decisions in any period are myopic and do not consider information about future periods. We can recast this T -period problem as a nested set of stochastic programs with recourse with a structure similar to the rst -period case as follows. De ne, for 1  t  T , q^t = Ptl=1 ql that denotes the total number of components that will arrive in periods 1; 2 : : :; t. Also, de ne ^st = Ptl=1 sl ^t = Ptl=1 l to denote the cumulative production and demands that takes place in periods 1  l  t. Rewriting all the tth-period problems in terms of the new (cumulative) variables de ned above, we obtain the following set of stochastic programs, one for each 1  t  T , representing up to period t-problem: (P^t ) min^qt h  q^t + EQ(q^t; ^t) where Q(q^t; ^t) = ?max(h  U + w)  ^st + w  ^t such that U  ^st  q^t

0  ^st  ^t:

Each (P^t) can be thought of as a one period problem with demands having a distribution of ^t . (Notice that for t = 1, we obtain the rst-period problem.) We are to nd components given by ^qt; the production quantities for any realized demand are given by ^st. Observe that solving the above T problems will provide us with optimal values of q^t , from which we can obtain the optimal values of qt . Since every qt  0, we need to ensure that ^qt  q^t?1 for all t. We don't put these constraints in the above problems as they can be easily incorporated while updating qiter t in our gradient based algorithm. Similarly, we ensure that ^st  ^st?1 on any sample path as discussed in section 3.2. Very simply, our original T -period problem is the sum of (P^t ); 1  t  T with the added constraints q^t  q^t?1 and ^st  ^st?1 . Solving (P^t) starting from t = 1 to t = T sequentially, provides the optimal solution for (PT). We have the following elegant result that is not typical of multi-period stochastic programs. A more general result, stated in section 3.4, will follow from our analysis of sections 3.1-3.4. 7

Proposition 2.1. If at optimality, all qt values are strictly positive for all t, then the optimal

solution to a s-period problem does not depend on periods s + 1; : : :; T .

3 Analysis The structure of the algorithm to solve the rst period problem is displayed in Figure 1. The algorithm for the T-period problem will be described in section 3.4 and uses a subroutine with the same structure as Algorithm 1. For the validity of the algorithm for the T-period problem, we show that we have a convex program and that the estimates of the derivative are consistent. To speed up computations, we nd quick update procedures as we move from one replication to another as well as when we go from one iteration to another.

 Guess an initial value for q1; call it q11.  Set Done to False. Set iter = 1.  While Not Done { Solve P (qiter ; r) for 1  r  R, and obtain the duals drk , iter 1  k  n. Compute iter q EQ(q ; ) as well as the average of the duals. Let d 1 be the n-vector of 1

1

1

1

derivatives. 1 jj, is less than , set Done = True. { If the norm of the gradient, jjdqiter qiter { Else, set q1iter+1 = max(qiter 1 ? d 1  Step; q0). The maximum is taken componentwise. { iter = iter + 1.  Output qiter 1 as the optimal values.

Figure 1: Algorithm 1 { To obtain optimal values for the rst period problem. The Step can be obtained from a line search or can be a constant.

3.1 Convexity of Objective Function Let us rst consider (P).

Proposition 3.1. If the demands for all the products are non-negative with nite means and variances, then the objective function of (P) is convex with respect to q1 . Proof. It is convenient to rewrite (P) in standard form:

minq1 h  q1 + E 1 ?(h  U + w)  s1 + w  8

1

q1 + (?U)  s1  0 (?I)  s1  ? 1 0  s1 :

such that

!

I Let W denote the the matrix (?U ? I), A denote the matrix ? ?I . Then Q(q1; 1) = min[?(h  U + w)  s1 + w  1 jW0  s1  A  (q1 ; 1)0 ; s1  0]. (Here the 0 denotes transpose). If the following three conditions are satis ed, we have a convex problem (Wets 1982). Assuming that all our demands have nite means and variances, it is straightforward to verify the following. 1. The set fW  u  0; u  0g is non-empty; this is because U  0. 2. The random variable

1

is square-integrable; this is because of nite variance.

3. There exists a constant L such that h  q1 + Q(q1; 1 )  L for all feasible (q1 ; 1); this is because we can take L to be 0. Note that our feasible regions are bounded. 2. Exactly the same proof shows that (P^t ) is convex in q^t . Since the T-period problem is the sum of these (P^t ), and the feasible region q^t  q^t?1 ; ^st  ^st?1 is convex, we have:

Proposition 3.2. If the demands for all the products in all the time periods are non-negative with nite means and variances, then (PT) is a convex program with respect to q^t for t =

1; : : :; T .

Since q^it is a linear increasing function of qit , (PT) is also a convex program with respect to the variables qit . As we discuss in section 3.4, there is some computational advantage in working with both q^it variables and qit variables simultaneously.

3.2 Justi cation of the Consistency of Derivative We show that averaging the derivatives, whenever they exist, to estimate the derivative of the expected value is valid in the sense that the sample-path derivatives they generate are unbiased estimators of derivatives of expectations. We use the simple fact that for a linear program, the dual value of a constraint is the derivative of the objective function with respect to the right hand side of that constraint. If the derivative does not exist at a point, then our result holds for the right-derivative (as against the left-derivative) at this point. 9

We begin by considering the imbedded LP, P (q1 ; 1). In case the demands have a nite support with probability pr for scenario r, we have: (EQ(q1;

R X 0 = ( pr Q(q1 ; 1r))0 1)) r=1 R X = ( pr Q(q1 ; 1r)0) r=1 = E (Q(q1; 1)0):

()

Suppose now that the period-1 demand, 1 , has a density on [0; 1)m (by which we mean that the function x 7! P ( j 1  x) is absolutely continuous for all x  0 and for all 1  j  m). We still have:

Proposition 3.3. (EQ(q ; ))0 = E (Q(q ; )0). Proof. Since E[ ] < 1, every Q(q1 ; 1) has nite expectation. Now changing any qi by  cannot change Q(q1 ; 1) by more than the maximum dual value possible for this constraint. 1

1

1

1

1

1

The maximum is taken over all possible basis possibilities which is a nite number, and so Q(q1 ; 1) (a random function) is Lipschitz with a (random) modulus whose expected value is nite. Applying the dominated convergence theorem allows us to interchange the derivative and the expected value. (This is an alternate proof to proposition 2.12 in Wets, 1989). 2.

A practical way to deal with 1 that has a density is to use R samples; discretization by other means (non-uniform sampling) leads essentially to the same algorithm. Increasing R brings us closer to the true optimum both in cost and in qi1 values. This is because we have a sequence (one for each value of R) of bounded convex functions epi-converging to the true cost function (also convex). We can now apply Proposition 6.4 in Wets (1989) directly. We now study (PT). First consider the derivative with respect to q^it keeping other q^ xed: This is just a one-period problem that a ects (P^t) only. (This may not be possible in some cases because several q^ values are the same; we will discuss this situation in section 3.4 in detail.) Next, consider the derivative with respect to some qkt keeping all other q 's xed. When we increase qkt by  (keeping all other q 's xed), we do not a ect (P^s ) for any s < t, and we a ect all (P^s ) for s  t. In fact, for each of (P^s ) with s  t, q^ks increases by . Thus, we can obtain the derivative of the objective function of (PT) with respect to qkt by summing over all s  t the derivatives of the objective functions of (P^s ) with respect to q^ks . We thus have: 10

Proposition 3.4. 1. For any 1  s  T , dEQd(q^q^ ; ^ ) = E ( dQd(qq^^ ; ^ ) ). s

s

s

ks

s

ks

2. Furthermore, the derivative of the expected T -period cost with respect to qkt equals P (T ? t + 1)hk ? st E ( dQd(qq^^ ; ^ ) ). s

s

ks

There are several ways of dealing with continuous demands in a multi-period situation. We adopt the following approach: we sample from the distribution of t (say R samples of each), and obtain samples for ^t by simply adding up corresponding samples from t. Furthermore, on every sample path, we ensure that ^st  ^st?1 . This does not a ect convexity of feasible region because these constraints are linear. This does not a ect feasibilty on any sample path because the optimal solution to any imbedded LP P (q^t ; ^t) is feasible for an imbedded LP P (q^t+1 ; ^t+1); see next subsection for details. We are simulating the multi-period setting R times and averaging the results. (Exchanging the derivative and expectation when F is not discrete is essentially In nitesimal Perturbation Analysis, IPA). This approach has two advantages: (1) a fast re-optimization procedure is possible as we will see in section 3.3; and (2) the total number of replications is only R for any number of time periods. Note that any discretization procedure (so have pr for sample r) that has the property that it approaches the true distribution as it is made ner, will work in theory and we can use () above. Increasing R brings us closer to the true multi-period distribution, and so we may apply the results from Wets (1989) as for the one period problem: for each R, our multi-period objective function is convex, and epi-converges to the true objective function (also convex), and so the optimal solutions (both cost as well as the component values) converge to the true optimum as R increases. Unfortunately, there is no theoretical result that can estimate the number of samples required for a given accuracy of qit values. Computational testing in section 5 shows that a moderately low number of samples suce for our situation.

3.3 Restoring Dual Feasibility A reason why our gradient based approach is computationally practical is that only the right hand sides of our linear programs change in each iteration (as we change the replication) as well as when we move from from one iteration to another. Furthermore, they change in such a way that dual feasibility can be restored very easily at each change. In a one-period problem, the only two ways in which the right hand side changes are the following: 11

 For a xed q1, as we replicate R times, only the

1

r , 1  r  R, are di erent.

 After R replications, we change q1 for the next iteration. Consider changes in 1 . Suppose we have just solved the linear program of the rth replication (the right hand side contains 1 r ) to optimality. Now we are going to use either 1r+1 or 1r?1 in our next replication. In either case, we need only be concerned now of the optimal non-basic variables that were at their upper bounds in the rth replication; those that were at their lower bounds can be left there. Now suppose

 we simply move the appropriate non-basic variables to their new upper bounds; and  we solve for new values of the basic variables using the new values of the non-basic variables (found in the item above) and the new right hand side (either while retaining the basis matrix.

1

r+1

or

1

r?1 )

This will maintain dual feasibility while retaining, a basic (probably infeasible primal) solution. We call this Update Procedure A. Now consider the case when the change is in q1 iter only. Consider the following approach: If the last right hand side of the previous iteration was using 1R, we start the new iteration from R 1 and replicate down to r = 1. Similarly, if the last right hand side of the previous iteration was using 11, then we would use 11 and replicate up from r = 1 up to r = R. This will ensure that only q changes while keeping the same as we move to the next iteration. Therefore, to restore dual feasibility, simply keep the values of the non-basic variables unchanged, and solve for new values of the basic variables using the new right hand side and the same basis matrix. We call this Update Procedure B. One might be fortunate in that even primal feasibility is retained when making the changes in the right hand sides. In this case, optimality of the current basis is retained, and there is no need for executing the dual simplex algorithm at this step. In addition to the two types of changes of the right hand sides that we encountered in solving (P), a third type of change occurs while solving (PT). Let P (q^rt; ^tr) represent the imbedded linear program of (P^t ) with right hand side ^qrt in the rth replication. Within a replication, say the rth one, as we move from solving P (q^rt ; ^tr) to start P (q^tr++11 ; ^tr+1), both ^qrt+1 and ^tr+1 may be di erent from ^qrt and ^tr. However, we have for all 1  r  R,

q^rt ^tr

+1 +1

 q^rt  ^tr 12

which we exploit now. The rst inequality follows because we enforce it in our iterative updates of qt. The second inequality holds because when we generate the rth sample, we sample from F1;:::;m;1;:::T () in a consistent manner: every sample of tr; 1  t  T automatically satis es r ^r t  0, and we use these to compute t . Now, the dual feasibility can be maintained by the following procedure. 1. If we increase qrt , while retaining the value of tr , following update procedure B with added constraint ^st+1  ^st , we obtain a new solution that is both dual feasible as well as primal feasible. This is because U  0. This implies that the current basis remains optimal. 2. Now changing A.

r t

to

r t+1

will retain dual feasibility, if we follow Update Procedure

In any replication, we will move from t = 1 to t = T , thus enforcing ^st  ^st?1 easily. We will move from one replication to another, or from iteration to another, only through P^1 (and so we store this in every replication when solving t  2). How we nd the updated values for q^t as we move from one iteration to another is discussed next.

3.4 Algorithm for the T-period Problem The most natural method to solve (PT) is to nd gradients with respect to qkt assuming other qkt as xed and updating these values ensuring that qkt  0 at all times. Another way of solving (PT) is to nd derivatives with respect to q^kt keeping other q^ xed. (Note that this is just the same as a 1-period problem derivative and so we appropriately modify Figure 1). We will use a combination of these two approaches. This hybrid approach is motivated by the following observations: (1) if we solve (P^t); 1  t  T without the constraints q^t  q^t?1 to optimality (so just solve T separate one-period problems) and obtain a solution that satis es q^t  q^t?1 (a fairly common occurence), then we have found the optimal solution for (PT ); (2) if some (P^t ) is solved to optimality in an intermediate iteration, then this t does not have to be part of future iterations. Now consider solving (PT) with constraints q^t  q^t?1 enforced at each iteration. We nd the derivatives of the objective functions of (P^t ) with respect to q^kt ; denote these by Dkt = hk ? dEQdq^(q^ ) : If, in some iteration, for some t we have found q^kt values that have Dkt = 0 for all k, and ^qt?1 < q^t < q^t+1 in this iteration, then we don't have to solve (P^t ) in the future iterations (but we have to store the optimal ^st values for each r) as long as ^st?1  ^st remains kt

kt

13

satis ed for every r. Unless the problems are such that several q^kt values are equal (or very close), we have minimal interactions between the T (P^t) problems. The main complication to consider is when several q^kt may be equal in any iteration. In general, we may have

q^k;s?1 < q^ks = : : : = q^k;s+l < q^k;s+l+1 . (q^ + ) Then we use Dk;s+p = hk ? dEQ dq^ + for 0  p  l in the following manner. We update qk;s+p1 P variable (not q^k;s+p1 ) proportional to lp=p1 Dk;s+p ensuring that all negative qks+p variables are set to zero. k;s

k;s

p

p

Intutively, we are doing the following. When there is a `slack' between periods (^qkl < q^k;l+1 ), we are reducing or increasing this slack so that (P^l+1 ) is not a ected as much as possible by problems (P^p ), p 6= l + 1. Computational experience shows that this approach leads to a performance that is linear in number of time periods being considered. Combining the convexity results with the above discussion, we have the following. This is a myopic result that we have do not usually see in multi-period stochastic recourse problems.

Proposition 3.5. If at optimality, qk1 ; qk2 : : : qkl are all strictly positive for some 1 < k < k < : : : < kl  T , then for 1  i  l, we can solve a (ki ? 1)-period problem (same as (PT) except replace T by ki ? 1) without considering periods t  ki . 1

2

4 Some Simple Extensions

4.1 First Derivative with respect to Demand Parameters

We now consider the sensitivity of costs and performance to assumptions on demand distributions. We let each t depend on a parameter , and compute derivatives with respect to . More generally, we can let each component of t depend on some jt , for 1  j  m and 1  t  T . To simplify notation, we use a prime to denote a derivative with respect to . This should not cause confusion since, in this section, we do not consider derivatives with respect to qt. All our proofs in section 3.2 regarding the interchange of the derivative and the expectation hold in this case also, if:

 we assume that for all , F t () has a bounded density on (0; 1)m;  we let  range over an interval (a ; a ) and assume that 1

2

14

{ each t() is Lipschitz on (a ; a ), with probability one, { and that, for t = 1; 2; : : :T , at each  2 (a ; a ), t0() exists with probability one; 1

2

1

2

 with K t denoting a modulus for t(), we assume that fK t ; t  1g have nite expectation.

These assumptions hold for many families of distributions. Our main result then is the following. Proposition 4.1. Under the above conditions, we have E[R?1 PRr=1 Q0r (q^t; ^t)] = E(Q(q^t; ^t))0. Proof. For any basis B in any particular (iteration, replication) pair, let AB denote the basis matrix of the simplex tableau with cB the cost vector coresponding to the basic variables. We note that P P max (cB (AB )?1 ((maxj Tt=1 K jt : : : maxj Tt=1 K jt ))) can serve as a Lipschitz modulus in applyinga proof similar to that of proposition 3.3. The maximum is taken over all basis possibilities in any replication. We are using the fact that composition of Lipschitz functions are themselves Lipschitz and that their moduli multiply. 2. The algorithm to compute these derivatives is very similar to the ones described earlier. Note that sample r can have weight pr di erent from R1 .

4.2 Executing our Algorithm in a Rolling Horizon As should be expected, the algorithms we provided will be actually used in a rolling horizon. To be clear, we will resolve a T period problem at the beginning of every period; this new problem will discard the rst-period of the previous execution and add in a new T th period and (possibly) update the distribution F . This implies that the new rst-period problem may have its initial conditions other than zero. This creates no complication as the only changes are those in the right hand sides or in the generation of the random variates. Our entire algorithm remains unchanged. In terms of real application, we may also have to constrain the values of the new rst-period problem to be within a range of the optimal values of the second period problem found in the previous execution. This is because base plans provided in a previous period can be updated only by a some prescribed amount. This range will depend on the exibility o ered by the suppliers. The most general case is (1) when all the new optimal values are constrained within a certain range of the old optimal values, the period index appropriately matched; and (2) when the values qt can take should be within some range of the current value of qt?1 . Again, 15

this is no problem. In summary, as long as the allowable values of qt form a convex set, our algorithms remain valid. If the feasible values of qt do not form a convex set, the derivative is still consistent; however, we cannot guarantee a global minimum by a gradient method. We note the following. The exibility of updating the q 's has not been incorporated explicitly in (PT). Incorporating the exibility upfront in a T-period model is possible and similar results will hold. However, we would need to simulate T -overlapping sets of T-period problems and need data for 2T periods. Furthermore, we would have additional variables zt (also to be optimized), representing target inventory levels at the beginning of period t (for each component), and our policy would be to try to reach as close to the target level as possible under the constraints due to q.

4.3 An In nite Horizon Stationary Version This is not the main setting of our work, but we mention it brie y for the sake of completeness. Suppose we have stationary demands and an order up to policy can be executed (no base plans are needed in advance). We can provide derivative estimates for the in nite-horizon average costs. Note that in this scenario, we will have an order-upto qi1 policy for each 1  i  n as our policy for every t  1 (i.e., a stationary policy). Since t

for all t  1, are i.i.d.,

we can simply use Algorithm 1 to compute the optimal values. This is becauuse, Algorithm 1 replicates R times by generating the random variates from the same distribution. In summary, the in nite horizon stationary case, if we are looking to compute the order up to values, is the same as the rst-period problem.

5 Numerical Results We tested the algorithm of Berger, Mulvey and Ruszczynski (1994) (DQA, a state-of-theart general purpose algorithm for multi-period stochastic programming) on our problem. The testing was done on a 3-period problem on a R4000 (Personal Iris machine) chip using sequential DQA. For m = n = 2 with 100 (10 samples of period 1 demand, 5 samples of period 2 demand, 2 samples of period 3 demand), 200 (multiply 10,10,2) and 400 (multiply 10,10,4) scenarios, the times are 20, 38 and 131 seconds on a R4000 chip; for m = 20, n = 10, with a total of 100, 200 and 400 scenarios the times were 354, 786, 1791 seconds respectively. The corresponding times for our gradient procedure on a SPARC 20 (about 20 % faster than R4000 chip) are 15 16

seconds (10 samples in rst period, 50 samples in second period, 100 samples in third period), 35 seconds (10 samples in rst period, 100 samples in second period, 200 samples in third period), and 63 seconds (10 samples in rst period, 100 samples in second period, 400 samples in third period) for m = n = 2 and 460, 965 and 1976 seconds for m = 20; n = 10. For more scenarios or larger values of m and n, the problem was not solvable on a workstation using DQA. An extrapolation from the performance of lower density, network structured problems shows that our problem would take signi cantly longer on a parallel machine (with 4 processors) with DQA than the time our gradient approach would take on an ordinary workstation (sequentially): see Figure 8 of Berger, Mulvey and Ruszczynski (1994) for low accuracy DQA. For example with 3 periods, m = n = 50 with 100 scenarios per period, DQA will take at least 3 hours with 4 processors on Silicon Graphics machine. 1 Our gradient based method takes less than 2 hours on a serial implementation. Furthermore, as the number of time periods increase, the DQA grows exponentially in time because the scenarios grow exponentially. Note that the LP methodology would need far more scenarios to capture the same amount of demand information as we use in the gradient approach. For example in DQA experiments we did above, using only 10 samples from period 2 and 2 (or 4) samples from period 3 is insucient to capture demand information. Using such few samples leads to a solution that is not robust; a di erent set of samples of the same size from the same distribution leads to a di erent optimal solution. Increasing the number of samples in these periods made problems even with m = n = 2 not solvable on the IRIS workstation. Furthermore, the parallel (distributed) DQA implementation is signi cantly more sophisticated than our gradient procedure. In fact, even the sequential DQA implementation is more sophisticated than the approach of this paper. Note that our algorithm can be easily parallelized easily because of the nested structure as well as due to replications. 2 These results indicate that our method is useful for moderate and larger problems, while for smaller problems the sequential DQA has a better time performance. We will describe brie y the results of our numerical testing. We use CPLEX for our LP optimizations. Problems of size m = n = 2, m = n = 5, m = n = 10 and m = n = 20 were rst studied as a pilot to understand how the algorithm behaves. The pilot study is the following. 1. Changing the variance of demand: Demands have an uniform distribution, whose mean 1 Thanks to Adam Berger for running (PT) on his serial code and for interpreting the results on parallel

implementation from gure 8 of his paper: We are interpolating linearly although the growth is faster and we are comparing the time with a lower density matrix than (PT). A higher density of U poses severe problems as factorization in DQA would take a lot of time. Also, we do not have the network structure. 2 However, we do not have access to these sophisticated machines. Even Adam Berger does not have ready access to these machines and so we could not test (PT) on parallel DQA.

17

was xed at 62.5, and their range is varied; U(5, 120), U(25, 100), U(40, 85), U(50, 75), U(55, 70) and U(60, 65) were used. Demands with an exponential distribution with mean 62.5 were also tested. 2. Changing the U matrix: Elements of the U matrix were integers and were either selected from U[0,1], U[0,2], U[0, 4] and U[1,4]. Thus we studied both the e ects due to higher uij and increased commonality (the number of non-zero uij ). 3. Choosing a Step:

 Within the gradient step, several step sizes were tested including those that depend

on number of components and the demand range (for uniform distributions).  Further, we also experimented by doing a line search in the direction of the gradient to nd the best step size in this direction. 4. The number of replications; we ran each problem with di erent number of replications to see how the required number of replications depends on demand range, the density of U and number of products and components. Our goal was to ensure that the solution vector obtained with R samples was within 1 % of that obtained with 2R and 4R replications. We provide two sets of examples: (1) In table 2, 300 samples are required for case (A) while 500 samples are required for case (B); (2) in Table 3, 100 samples suce for for case (A) while 200 samples are required for case (B). We also experimented with increasing the number of replications in stages {so away from optimum we have a coarser grid { and using the optimal solution from the previous stage as starting point of the next. 5. The stopping criteria; we experimented with both a gradient based (gradient less that 0.001, 0.005(number of components), 0.00025(number of components) and cost based termination procedure (no improvement in 25, 50 or 100 consecutive iterations; moving average of 50 does not improve signi cantly), and a combination of both. Following Wets (1989), we also studied the moving average of 50 iterations, and terminated when this did not improve signi cantly. 6. Starting point: We considered two starting points. First, the values for component stocks were calculated as if the problem was deterministic. Thus, all components were kept at their mean demand values. Another starting point tested was based on the optimal solutions of independent one-product newsboy problems. While this takes into account the holding costs of components, the penalty cost of the end product and the (marginal) 18

demand variance, it does not take advantage of any commonality (`commonality-ignored' solution). 7. Veri cation of optimum obtained: After the optimal is obtained, we cut the optimal values by half (or double them) and rerun the optimization. In all cases, the new optimal cost was not signi cantly di erent from the rst. We noticed that in the cases where the cost function is not very at, the second optimal vector was not signi cantly di erent from the rst. However, in cases when the cost function is at, the optimal costs are about the same, but the vectors may di er signi cantly; for example with m = n = 5, demands from U(5, 120), stocking level (262, 254, 336, 306, 254) has a cost of 15.48 while the levels (241, 234, 316, 281, 234) costs 15.55. This type of behaviour was observed in Glasserman and Tayur (1995) also. In all cases, increasing the value of R removed this problem. Tables 1-3 show typical results for one-period problems; all stocking levels have been rounded to the nearest integer. By Levels, we mean the stocking levels of the components. Our basic conclusions are the following. 1. More samples (replications) are needed as the variance of demand increases. The number of replications depend more on the variance of demand rather than m or n. For example, if uij is selected from U[0,4], 200 replications were sucient when demand was less variable than U(40, 85), and 300 were sucient for all demands with variance less than or equal to U(5, 120); see Table 1 for m = n = 2. This remained true for m and n values are 5 (see Tables 2 and 3), 10 and 20 (not shown). Also, we found that increasing commonality required an increase in the samples; increasing the range of uij keeping the commonality (number of non-zeroes) the same, did not a ect sample size. For example if uij is selected from U[0,1], U[0,2] or U[0,4] (with the same number of zeroes) and demands from U(40, 85), 300 samples suce; if uij is selected from U[1,4], we need 500 samples (see Table 2). 2. Choosing a gradient step is preferred over the line search. We found that a line search in the gradient direction to choose a dynamic step size is computationally wasteful. Thus a simple step size, that starts with a length proportional to number of components and the demand range, and is cut to one when the algorithm oscillates for a while around the optimum, is suggested. 3. Stopping criteria should be based on a combination of (having a) small gradient and ( nding a lack of) cost function improvement. This is because when the cost function is (almost) peicewise linear, the algorithm oscillates about the optimum and so simply a 19

gradient based termination criteron is not enough. Having gradient less than 0.00025*components along with not allowing more than 100 consective iterations without improvement did consistently well. (The latter criterion can be replaced with a condition on the moving average.) 4. It is better to start with a small number of replications, and after nding the optimum with this number of replications, use it as a starting point to optimize with larger number of samples. (For a very elegant algorithm that adds one sample at a time, see Higle and Sen, 1991). For example, if 400 samples are required, we start with 100 samples and nd a good solution, then move to 200 samples starting from this solution and then nally to 400 samples. When this stage approach is taken, the starting point based on newsboy structure performed no di erent from the starting point based on the mean values. This is not surprising when more than one stage may be required; that it remains true even with one stage is because, as noticed in Srinivasan et al (1992), the commonality-ignored solution can be very distant from the true optimum. So to solve large problems, our suggestion is the following. Start with small number of replications (say from 100 replications and increase them in stages, 100 at a time), use a standard gradient step that is initially quite large (like (components)(1% of right hand side) for example) and is then gradually reduced as the gradient oscillates, and stop when either the gradient is very small or the moving average of cost does not change signi cantly. Line search is not required. Demand A Samples Levels (q) 100 147 184 200 142 175 300 136 165 400 136 165 1000 137 166

Cost Time 7.047 53.2 6.603 120.5 6.602 205.7 6.57 273.3 6.46 671.1

B Levels 161 207 158 201 154 195 154 194 155 196

Cost Time 4.597 35.6 4.299 80.5 4.302 134.8 4.282 181.8 4.215 462.2

C Levels 178 235 177 233 176 231 176 231 177 232

Cost Time 1.52 13.3 1.426 30.9 1.431 47.3 1.427 62.7 1.405 158.6

Table 1: An example with m = n = 2. A stands for demands U(5, 120), B for demands U(25, 100) and C for demands U(50, 75). All times are in seconds on a SPARC 2. 20

Samples 50 100 200 Levels 311 321 318 (A) 243 247 247 583 592 588 536 547 544 753 767 769 Samples 100 200 300 Levels 424 425 431 (B) 478 478 484 649 649 660 780 783 791 766 770 780

300 321 250 598 548 778 500 429 485 659 788 778

500 323 250 600 551 780 1000 429 483 656 788 778

1000 320 250 596 546 774 5000 427 481 661 783 772

Table 2: Effect of U on R. An example with m = n = 5, showing the e ect of sample size and commonality on optimal solution (q1; : : :; q5). (A) corresponds to uij from U[0,4] and (B) corresponds to uij from U[1,4]. Note that in (A) 300 samples suce; but in (B), 500 samples are required. For (B) with 10000 samples, the optimal levels were (425, 481, 652, 780, 771). The demands are from U(40, 85).

Samples 100 200 300 Levels 316 315 316 (A) 249 249 250 610 610 612 555 555 556 793 795 797 Levels 316 316 319 (B) 247 248 251 597 598 606 547 549 553 778 781 789

500 316 249 613 557 796 319 250 606 553 788

1000 316 249 612 555 796 319 250 604 551 786

Table 3: Effect of F on R. An example with m = n = 5, with uij from U[0,4], showing the e ect of sample size and demand variance on optimal solution (q1 ; : : :; q5). (A) corresponds to demands from U(55, 70), and (B) from U(50, 75). In (A), 100 samples suce, while in (B) 200 are required. In fact for (A), with 50 samples, we obtain (313, 248, 607, 552, 789), which is close enough. Compare with (A) of Table 2 which has demands from U(40, 85). 21

m=2 5 10

n=2

5 10 20 30 40 50 7.6 16.8 58.1 65.2 105.2 138.5 212.5 190.5 77.5 213.5 368.2 578.5 616.7 804.9 237.5 540.8 428.5 1054.3 1383.0 1597.5 1968.2

Table 4: Times, in seconds, for problems with 200 samples on a HP 720 Workstation for a one-period problem.

(m; n) (20, 20) (30, 30) (40, 40) (50, 50) Time 16.75 51.7 105.1 135.1 Table 5: Times, in minutes, for problems with 200 samples on a HP 720 Workstation for a one-period problem.

n T =1 T =2 T =3

20 30 40 50

14.3 16.6 40.1 66.3

21.5 18.5 49.2 70.5

34.7 35.1 83.5 116.3

Table 6: Times, in minutes, for problems with 100 samples on a HP 720 Workstation. m = 50. All solutions are within 1 % of the ultimate value found by increasing R and having tighter termination criteria.

n 20 30 40 50

time/iteration iterations ratio of max/min (min, max) 1.52 (300, 404) 2.35 (66, 238) 2.16 (199, 452) 2.24 (72, 436)

Table 7: Showing the wide variance in times per iteration as well as iterations as U; h; w and F are varied. m = 50, R = 100 and T = 1 in all cases. 5 problems were solved at each n. 22

Based on our computations, we noticed the following. 1. Increasing the variance increases cost (for example, see Table 1). 2. Increasing variance either monotonely decreases stocking values or monotonely increases them; the direction depends whether we are stocking less than the mean values (holding is expensive), or higher than the mean values (penalty cost is high). In Table 1, the mean values are 187.5 and 250, and so decreasing variance is increasing stocking levels. 3. The time to nd good solutions generally increases with demand variance and size of the problem (number of components and products), although counter examples exist (see Table 4). For examples, see Table 1 and Tables 4-5. 4. For multi-period problems, the hybrid approach discussed in section 3.4 leads to satisfactory performance. Table 6 shows an example. (In this example, (P^2 ) can be solved very quickly and does not a ect (P^1) and (P^3).) In general, we note the following.

 Even for xed m; n, the total time to compute the optimal can vary signi cantly (this

is somewhat disconcerting, but has been observed in other algorithms also; see Higle and Sen, 1991). Note that total time = (number of iterations)(time per iteration). See Table 7 for some values. Not apparent from the table, but we noticed that the number of iterations required varies depending on F; h; w and the re-optimization time varies depending on U; h; w.  Typically the constraints q^t  q^t?1 are not active at optimality.  The cases when some q^it  q^it?1 is active have the following characterstics: there is a product (say j1) with low w that uses component i more than other products do; product j1 shares a component k (with a high h) with another product j2 with high w; the demand for j2 has low variance until period t ? 1 and has high variance in period t while the demand for j1 has high variance until period t ? 1 but low variance in period t. In this situation, component i will be used less in period t because component k is very likely to be a tight resource, and so if we solve P^t and P^t?1 separately (or independently) we notice that q^it will be lower than q^it?1 at optimality. In all of the cases when this happened, q^it did not di er from q^it?1 signi cantly, explaining our next observation.  Even when we introduced very pathological non-stationarities, the average time required to solve (PT) did not di er signi cantly over T (the average time for one23

period problems). In this sense, (PT) is very nearly T independent one-period problems. It is in this sense, that we mean that our algorithm is linear in number of periods.

6 A Practical Strategy If a multi-period problem (say 3 or more periods) with m = n = 50 needs to be solved, then a faster (heuristic) alternative method (rather than solving optimally as in section 3.4) may be desired. We rst consider a special case to make the basic idea of the heuristic clear.

6.1 A Special Case Consider rst a case when all the demands for the products are identically distributed and are independent (iid). In this situation, it turns out that solving a one period problem with several di erent values of squared co-ecient of variation (scv) and one xed mean vector is sucient to read o the answers for a multi-period problem with any mean demand. Recall how random variates are generated in simulation. We use a uniform U(0,1) variate (say u) as the base; an exponential with mean  generated is  ln(u), and a U(0, b) generated is b  u; Erlang distributions with scv of k1 are generated by rst nding k uniforms and then s multiplying with the means. Now, if all the demands are iid, note that we can work with mean q (with costs scaled appropriately) and we would get the same optimal solution in any and mean replication. Thus the nal answer, taken over all replications, can just be scaled; in fact all our derivative estimates can be appropriately scaled. j

i

After having solved several one period problems, all with the same mean vector but di erent scv's, we can obtain the multi-period base plans by appropriately scaling the answers. We provide an example to clarify the above discussion.

Example. Consider the case when m = n = 2. Let demands for two products each have a

mean of 100, and an exponential distribution. Suppose we have the following table of optimal stocking levels for a one period problem with mean demand 50: scv

q1 q2

1 0.5 0.33 100 92 85 90 85 80

Then our up to 1- period levels are (2  100; 2  90) = (200; 180); up to 2- period levels are (4  92; 4  85) = (368; 340); up to 3-period levels are (6  85; 6  80) = (510; 480). This means 24

the base plans we provide to the supplier are (200, 180) for period 1, (168, 160) for period 2 and (142, 140) for period 3. Note that this solution is optimal; this is because the sum of k identical exponentials is Erlang distributed with scv 1k . 2

6.2 Solving Multi-Period Problems in Practice The above idea can be extended directly to the case when the products have di erent distributions, but their means are in a xed ratio in every period. First compute the best Erlang that ts the cumulative up to t- period demands, ^t for each product. Second, solve one period problems for these squared co-ecients of variation for any xed mean vector with elements in the right ratio. Third, scale to obtain the q^t values. Finally, read o the base plans by di erencing the ^qt values. In principle, once a set of these problems have been solved, only a scaling of the optimal answer from a one period problem (with the appropriate scv values) needs to be done to provide the base plans.

7 Conclusions In this paper we have provided a model and an algorithm to compute optimal values for component stocks in an assembly system with multiple products that share (some or all) common components in presence of random demand. (The two-stage recourse structure inherent in our situation has not been explicitly modeled before.) Both the one period and the nite horizon models were analyzed. The problem formulated is convex, and the multi-period model can be decomposed into a nested set of problems each with the same structure as a single period problem. We showed that the multi-period derivatives can be computed in a simple manner. Computational testing revealed that the algorithm is robust, and that medium sized problems can be solved in reasonable time.

Acknowledgements. I wish to thank N.R. Natraj for help in

Cplex implementation. I

would like to thank Adam Berger for the computational testing of DQA algorithm and help in interpreting results from his paper. Many thanks go to a referee and the associate editor for several of their comments. I would also like to thank P.V. Kamesam for several insightful comments based on his experience with stochastic programming.

References Baker, K. R., Safety Stocks and Component Commonality, Journal of Operations Manage-

ment, vol. 6, no. 1, pp. 13-22, 1985.

25

Baker, K. R., M. J. Magazine and H. L. W. Nuttle, The E ect of Commonality on

Safety Stock in a Simple Inventory Model, Management Science, vol. 32, no. 8, pp. 982-988, 1986. Berger, A., J. Mulvey and A. Ruszczyinski, An Extension of the DQA Algorithm to Convex Stochastic Programs, SIAM J. Optimization, vol. 4, no. 4, pp. 735-753, November 1994. Collier, D. A., The Measurements and Operating Bene ts of Component Part Commonality, Decision Sciences, vol. 12, pp. 85-96, 1981. Collier, D. A., Aggregate Safety Stock Levels and Component Part Commonality, Management Science, vol. 28, no. 11, pp. 1296-1303, 1982. Ermoliev, Y. and R. J-B. Wets, Numerical Techniques for Stochastic Optimization, SpringerVerlag, Berlin, 1988. Escudero, L., P. V. Kamesam, A. King and R. Wets, Production Planning via Scenario Modeling, Annals of OR., vol. 43, pp. 311-355, 1993. Eynan, A. and M. J. Rosenblatt, The Impact of Increasing Component Commonality in a Two-Level System, Working Paper, June 1991. Gerchak, Y. and M. Henig, An Inventory Model with Component Commonality, Operations Research Letters, vol. 5, no. 3, pp. 157-160, 1986. Gerchak, Y, M. J. Magazine and A. B. Gamble, Component Commonality with Service Level Requirements, Management Science, vol. 34, no. 6, pp. 753-760, 1988. Glasserman, P., and S. Tayur, Sensitivity Analysis for Base Stock Levels in Multi-Echelon Production-Inventory Systems, Management Science, vol. 41, no. 2., pp. 263-281, 1995. Higle, Julia and Survajeet Sen, Stochastic Decomposition: An Algorithm for Two-Stage Linear Programs With Recourse, Math. Oper. Res., vol. 16, no. 3, pp. 650-669, August 1991. Hsu, A. and Y. Bassok, A Random Yield Production System with Demand Substitution, Working Paper, IEMS Dept., Northwestern University, 1995. Kannan, R., J. Mount and S. Tayur, A Randomized Algorithm to Optimize over Certain Convex Sets, Math. Oper. Res., May 1995 (to appear). Komaromi, E., A Dual Method for Probabilistic Constrained Problems, Mathematical Programming Study 28 (1986), pp. 94-112. Srinivasan, R., R. Jayaraman, R. Roundy and S. Tayur, Procurement of Common Components in Presence of Uncertainity, IBM Technical Report, 1992. Wets, R., Stochastic Programming: Solution Techniques and Approximation Schemes, in: Mathematical Programming, The State-of-the-Art, eds. A. Bachem, M. Grotschel and B. Korte, (Springer, Berlin, 1982), pp. 566-603. Wets, R., Stochastic Programming in Handbooks in Operations Research and Management Science, vol. 1, North Holland, 1989.

26

Suggest Documents