Computers & Operations Research 37 (2010) 396 -- 405
Contents lists available at ScienceDirect
Computers & Operations Research journal homepage: w w w . e l s e v i e r . c o m / l o c a t e / c o r
Satisfying market demands with delivery obligations or delivery charges Yongjun Xiao a , Kevin Taaffe b, ∗ a b
China Center for Information Industry Development, Beijing 100846, China Department of Industrial Engineering, Clemson University, 110 Freeman Hall, Clemson, SC 29634, USA
A R T I C L E
I N F O
Available online 21 June 2009 Keywords: Lot sizing Market selection Delivery obligations Delivery charges
A B S T R A C T
Consider a firm that receives deterministic, time-varying demands for its product. The firm has the flexibility to choose its customer base and receive market-specific revenues for its product. In addition to market revenue and market demand, the parameters of a negotiated contract can also play a role in market selection and fulfillment decisions. Two such parameters are (1) delivery obligation penalties and (2) delivery charges. In this paper, we determine optimal solution approaches for problem settings when either of these contract parameters is present. Our tailored solution techniques can solve each problem in a fraction of the time required by a state-of-the-art commercial optimization solver. © 2009 Elsevier Ltd. All rights reserved.
1. Introduction Manufacturers that produce make-to-order goods often make critical order acceptance decisions prior to planning production for those orders. Market or order attractiveness can be influenced by several factors, including those that are revenue-based (such as demand and unit sales price) as well as those that are cost-based (such as production, ordering, holding, and shortage costs). In this research, we address two forms of contractual costs that affect a market's profitability. First, we introduce a delivery obligation penalty into the demand selection problem. Many customers would desire a minimum demand fulfillment below which the manufacturer would pay a penalty. The manufacturer could also institute an internal obligation penalty to “encourage” selection of certain markets even when the market does not appear to be that attractive. We then examine several fixed delivery charge considerations that are faced by manufacturers. Not only will there be an all-or-nothing charge for creating and delivering an order, but the charge could be dependent on several items, such as demand fulfillment level of each market, demand fulfillment of a group of markets, or the number of markets served within a group. This paper presents models and solution approaches that incorporate these important contractual considerations in determining the optimal set of markets and their satisfaction levels. The classical uncapacitated economic lot-sizing problem (ELSP) was first addressed by Wagner and Whitin [1], with a large number of researchers studying the ELSP (see, e.g., Wolsey [2] and Brahimi et al. [3]). Over the past four decades, developing new models for
∗ Corresponding author. E-mail address:
[email protected] (K. Taaffe). 0305-0548/$ - see front matter © 2009 Elsevier Ltd. All rights reserved. doi:10.1016/j.cor.2009.06.011
dynamic requirements planning problems has been one of the most consistently active research areas in operations management. The literature has seen many extensions and generalizations of this problem class, including extensions to handle backlogging [4], serial systems [5], multistage assembly systems [6], general multistage structures [7], and subcontracting and overtime options [8]. Many extensions in the literature also focus on delivery time issues. Geunes et al. [9] addressed uncapacitated order selection with delivery-time flexibility settings in which customers permit an order to be delivered within certain flexible periods. Lee et al. [10] considered contexts in which demand is satisfied within certain demand time windows for the uncapacitated, single-stage lot-sizing problem. Dauzère-Pérès et al. [11] introduced a lot-sizing model with production time windows where each demand must be satisfied within its own time window. Additional examples of order delivery flexibility based on time windows can be found in [12–17]. All of these research streams address the delivery time aspect, trying to reduce cost by achieving on-time delivery, but they do not directly consider the delivery charge (cost) associated with the scale or size of deliveries. However, in practical settings, this would also be an important aspect of product delivery. Given a set of customer orders, manufacturers are constantly seeking which customers to produce for as well as the quantities to produce when developing periodic production requirements. Geunes et al. [9] discussed an optimization model for addressing order selection flexibility in integrated production and demand planning. Geunes et al. [18] studied a production planning problem that addresses the relationship between product pricing and order acceptance/rejection decisions. Through these pricing decisions, the production planning model implicitly decides what demand levels the firm should satisfy in order to maximize contribution to profit
Y. Xiao, K. Taaffe / Computers & Operations Research 37 (2010) 396 -- 405
after production. Taaffe and Geunes [19] provided order selection models by integrating order-selection and production-planning decisions under limited production capacities. To our knowledge, past operations modeling literature has not considered long term customer service relationships when addressing order selection problems. From the viewpoint of manufacturers, pursuing such relationships may mean sacrificing short term profit in certain markets, knowing that the customer may become much more profitable in the near future. To measure a customers' long-term value, one method is to introduce a “penalty” parameter for not selecting the customer during the current production planning horizon. This idea is inspired by models in which penalty costs are applied late deliveries. Several researchers have studied the effect of stockouts, penalties, or lost sales in single-item lot-sizing problems. Sandbothe and Thompson [20] and Liu and Tu [21] proposed dynamic programming solution strategies when faced with capacitated lotsizing problems, while Aksen et al. [22] provided a polynomial-time algorithm to solve an uncapacitated lot-sizing problem with immediate lost sales. In a stochastic setting, Dellaert and Melo [23,24] introduced penalty costs as a means of accommodating back order deliveries, i.e., orders that are not satisfied on time are backordered and a penalty cost is incurred. Lee et al. [10] also employed the concept of a “penalty” to cope with early/late delivery times. In Section 2, we formulate our demand selection and production planning problems with delivery obligations and delivery charges. In Section 3, we provide tailored solution approaches to each model that do not depend on the use of a commercial optimization solver. Section 4 contains the computational tests and solution insights for the models studied, followed by concluding remarks in Section 5. 2. Delivery obligation and delivery charge models 2.1. Minimum demand penalty avoidance model—[P] Consider a firm that manufactures a product to meet predetermined demands over a finite time horizon T. Producing in any time period t requires a production setup at a cost St and each unit costs an additional ct to manufacture. We assume that the producer faces no production capacity limits and that no shortages are permitted (i.e., no backlogging). Items can be held in inventory at a cost of ht per unit remaining at the end of period t. Let J(t) denote the number of markets (or customers) in period t. Let djt denote the quantity requested by market j in period t, for which the market will pay rjt per unit. The producer has the flexibility to decide which market demands it will choose to meet in each period and the quantity of demand it will satisfy in each market. Let pjt denote the penalty associated with not meeting the minimum demand fulfillment associated with market j in period t. Note that the penalty charge may not always be contract-based. For example, a producer may recognize that not serving one customer could affect their relationships with other customers, and an obligation penalty is imposed to account for this. We use the following notation to denote the minimum demand penalty: M: A parameter to denote the penalty control, M ⱖ 1. ⎧ ⎪ ⎨ 1 if at least 100(1/M)% of demand j in period t Yjt = is satisfied, ⎪ ⎩ 0 otherwise. The producer, therefore, wishes to maximize net profit, defined as the total revenue from sales minus total production (setup + variable) and holding costs incurred over the T period horizon. To formulate this problem we define the following decision variables: xt : Number of units produced in period t. yjt : A fraction of demand djt that the producer choose to satisfy.
397
It : Inventory remaining at the end of period t: 1 if we setup in period t, zt = 0 otherwise. We present the delivery obligation problem with minimum level fulfillments as ⎧ ⎫ J(t) T ⎨ ⎬ [P] maximize (rjt djt yjt − pjt (1 − Yjt )) − St zt − ct xt − ht It , ⎩ ⎭ t=1
j=1
(1) subject to
J(t)
djt yjt + It = xt + It−1 ,
∀t,
(2)
j=1
x t ⱕ zt
J(t) T
djs ,
∀t,
(3)
s=t j=1
(1/M)Yjt ⱕ yjt , xt , It ⱖ 0,
∀j, t,
∀t,
0 ⱕ yjt ⱕ 1, zt , Yjt ∈ {0, 1},
(4) (5)
∀j, t, ∀j, t.
(6) (7)
Constraint set (4) enforces the penalty charge when the minimum delivery amount is not satisfied. Suppose that the firm will not pay a penalty when they satisfy at least (1/M)100% of a customer's demand. Since Yjt is binary, then serving this customer (Yjt =1) implies that we can only avoid a penalty if the fraction of demand satisfied exceeds the minimum demand obligation level (i.e., yjt ⱖ (1/M)Yjt ). Notice that when Yjt is replaced by yjt in the objective function, the delivery obligation penalty is paid in proportion to the amount of product demand not satisfied (and constraint set (4) is not necessary). The resulting problem form has been previously solved by Taaffe and Geunes [19] and Aksen et al. [22]. Aksen et al. [22] consider all unsatisfied demand to be immediate lost sales. 2.2. Delivery charge based on individual markets satisfied—[D1] We denote Fjt as the fixed cost of choosing to serve market j in period t. This cost might include, for example, a shipping cost plus any sales and administration expenses required. In the following model formulations, we consider more complex (and possibly more realistic) delivery charge scenarios. We assume there are predetermined levels of demand fulfillment at which the delivery charge increases, i.e., the delivery charge acts as a step function based on demand fulfilled. Consider the possible types of delivery charge functions described in Fig. 1. Each range or level of production can be represented by k, and there is a fixed charge of Fjtk if we satisfy demand j in period t at level k. Types F1, F2, and F3 are intended to approximate a linear increase, convex increase, and concave increase in fixed charges at the breakpoints. The actual convex and concave functions are denoted by the dashed lines. Consider a firm that can deliver small order sizes with their own fleet of short trucks. However, for larger orders, they must contract this service to a third party and pay a premium for this service. Type F2 would represent such a case. When economies of scale are present (which is more often the case), a Type F3 function would be appropriate. To prepare the formulation, let K represent the number of equally spaced intervals over [0,1], and let yjtk denote the fraction of demand satisfied for market j in period t if demand (j, t) is satisfied within level k (k = 1, 2, . . . , K). Given the above notation, if yjtk lies between (k − 1)/K and k/K, we say demand j is satisfied at level k.
398
Y. Xiao, K. Taaffe / Computers & Operations Research 37 (2010) 396 -- 405
F1
F3
0
Demand Satisfaction
Delivery Charge
Delivery Charge
Delivery Charge
F2
0
Demand Satisfaction
0
Demand Satisfaction
Fig. 1. Potential delivery charge functions.
If some positive yjtk exists, then all yjtk (k k ) must be zero, indicating that the demand can only be satisfied at one level within the entire set of K levels. The indicator variable to force such behavior is introduced as 1 if yjtk > 0, vjtk = 0 otherwise. We now present the problem with delivery charges assessed as a function of individual demands ⎧ ⎛ ⎛ ⎞ ⎞ J(t) T ⎨ K K ⎝rjt djt ⎝ yjtk ⎠ − Fjtk vjtk ⎠ [D1] maximize ⎩ t=1
j=1
k=1
− St zt − ct xt − ht It
subject to
J(t) K
⎫ ⎬ ⎭
k=1
that the firm has a single delivery operation. Moreover, the delivery charge in one period cannot be assumed to be the summation of the delivery charges incurred by all chosen markets in period t, as economies of scale exist when grouping its customer deliveries together. In this setting, the per-period satisfaction level is calculated based on the fraction of total demand satisfied in a given period. We include an indicator variable vtk that is equal to 1 if we satisfy any positive fraction of total demand in period t at satisfaction level k, and 0 otherwise. The actual delivery charge is now denoted by Ftk . We formulate this problem as follows:
[D2] maximize
⎛ ⎞ J(t) T K ⎝ rjt djt yjt − St zt − ct xt − ht It − Ftk vtk ⎠ , t=1
,
djt yjtk + It = xt + It−1 ,
j=1
k=1
(13)
(8) subject to
∀t,
J(t)
djt yjt + It = xt + It−1 ,
∀t,
j=1
j=1 k=1
x t ⱕ zt
J(t) T
djs ,
x t ⱕ zt
∀t,
yjtk ⱕ 1,
djs ,
∀j, t,
(9)
(k − 1)vtk /K <
J(t)
djt yjt
j=1
k=1 K
∀t,
s=t j=1
s=t j=1 K
J(t) T
J(t)
djt ⱕ kvtk /K,
∀t, k,
j=1
(14) vjtk ⱕ 1,
∀j, t,
(10)
k=1
(k − 1)vjtk /K < yjtk ⱕ kvjtk /K, xt , It ⱖ 0,
∀j, t, k,
(11)
∀t,
vjtk , zt ∈ {0, 1},
K
vtk ⱕ 1,
∀t,
0 ⱕ yjt ⱕ 1, ∀j, t, k,
(12)
where Fjtk ⱖ Fjt(k−1) > 0 for all j, t, and k. Again, we are maximizing expected profit in the objective function, and fixed delivery charges (in addition to fixed production costs) are now present. Inventory balance constraints and production upper bounds are still included as well. Constraint set (9) restricts the total demand assignment for market j in period t to be less than or equal to 100%. Constraint set (10) ensures that, if market j in period t is selected, exactly one of the demand satisfaction levels k is applied, i.e., only one yjtk > 0, for all k = 0, 1, . . . , K. Constraint set (11) states the relationship between the quantity satisfied and the fixed charge intervals. Notice that for all vjtk = 0, yjtk is also forced to zero. For the selected production level k, yjtk can take on any value between (k − 1)/K and k/K. 2.3. Delivery charge based on total demand fulfilled—[D2] Instead of determining a demand's production level based on the fraction of demand satisfied in each unique market, we now assume
(15)
k=1
xt , It ⱖ 0,
∀j, t, ∀t,
vtk , zt ∈ {0, 1},
∀t, k,
where Ftk ⱖ Ft(k−1) > 0 for all t and k. Constraint set (14) states the relationship between the fraction of demand satisfied in period t and the fixed delivery charge intervals. Similar to problem [D1], constraint set (15) ensures that the demand satisfaction level (DSL) lies on at most one predefined level. 2.4. Delivery charge based on market subgroups satisfied—[D3] In many practical scenarios, customers are located in different areas, and different areas may render different delivery charges. In order to reduce delivery cost, manufactures may divide all the customers into groups according to their locations to support strategically batched deliveries. In this problem, we first break a market set in period t into N disjointed order subsets. Let M(n, t) denote the markets contained in the nth subset in period t. We assume that the
Y. Xiao, K. Taaffe / Computers & Operations Research 37 (2010) 396 -- 405
number of satisfied markets in the same subset determines the delivery charges. We also define bntk to be number of satisfied market orders in subset M(n, t) at level k. We also have the following indicator variables: vntk = wjt =
1 if we satisfy bntk > 0 markets in subset M(n, t) at level k, 0
otherwise,
1, if we satisfy any positive fraction of demand j in period t, 0,
otherwise.
As before, yjt is the fraction of market demand j satisfied in period t. We update the parameter Fntk to represent the delivery charge if we satisfy total demand in subset M(n, t) at level k, and we introduce Ljnt to be 1 if market j in period t belongs to market subset M(n, t), and 0 otherwise. We formulate this problem as follows:
[D3] maximize
⎛ J(t) T ⎝ rjt djt yjt − St zt − ct xt t=1
j=1
− ht It −
N K
⎞ Fntk vntk ⎠ ,
(16)
n=1 k=1
subject to
J(t)
djt yjt + It = xt + It−1 ,
∀t,
j=1
x t ⱕ zt
J(t) T
djs ,
∀t,
s=t j=1 K
bntk =
J(t)
∀n, t,
wjt Ljnt ,
(17)
(k − 1)vntk
J(t)
Ljnt /K < bntk ⱕ kvntk
j=1
J(t)
rj − ct −
Ljnt /K, (18)
vntk ⱕ 1,
∀n, t, 1
(19)
k=1
0 ⱕ yjt ⱕ wjt , xt , It ⱖ 0,
∀j, t,
∀t,
zt , vntk , wjt ∈ {0, 1},
−1
hi ⱖ 0,
(20)
i=t
j=1
∀n, t, k, K
require a setup and how much production should occur in each period. We will show that such a problem has the ZIO property, which allows the use of a dynamic programming solution approach based on the shortest path algorithm (see, e.g., Wagner and Whitin [1]). For ease in presentation, we begin with a fixed charge network representation of problem [P] without penalty charges (see Fig. 2). We have one production source node, and production flow nodes that can supply product in any period. The inventory holding arcs allow product to be carried forward to future periods, while the revenue arcs describe the contribution to profit for each market satisfied. The dummy source node serves as a means of satisfying market demands not selected, while the corresponding dummy demand node is necessary to offset the dummy supply. We then extend the network representation to accommodate formulation [P]. In Fig. 3, a maximum of one market satisfaction arc will be chosen for each demand djt , based on whether or not a penalty charge is incurred at that satisfaction level. Notice that there are fixed setup charges on the production flow arcs, while the market satisfaction and inventory holding arcs have unit variable costs. The Wagner–Whitin method is often equivalently posed as a shortest path problem on a graph containing T + 1 nodes (see Fig. 4). This method relies on the existence of an optimal ZIO policy in which a setup only occurs in a period t if we hold no inventory at the end of period t − 1. The validity of this property can also be shown to hold as a result of the spanning tree property of a fixed charge network flow problem as shown in Fig. 2. We interpret the length of arc (t, t ) as the maximum profit possible from satisfying demands in periods t, . . . , t − 1 assuming a single production setup in period t. To offset the cost of this setup (St ), we will satisfy market j demand in period (t ⱕ < t ) based on the following expression:
j=1
k=1
399
∀n, t, k,
where Fntk ⱖ Fnt(k−1) > 0 for all n, t, and k. Constraint set (17) defines the number of markets satisfied in subset n of period t. Constraint set (18) states the relationship between the number of markets satisfied in subset n of period t and the fixed delivery charge interval. As in [D1] and [D2], constraint set (19) ensures that the DSL lies on at most one predefined level for any subset n in period t.
i.e., if the unit revenue from market j in period exceeds the unit production cost in period t plus the per-unit holding cost incurred for holding the item from period t to period . We now must decide if markets not selected based on Eq. (20) should still be served at the minimum level to avoid the delivery obligation penalty, even though its contribution to the objective function is not positive. We can make such an assessment based on the following equation: ⎛ ⎞ −1 hi ⎠ + Mpj ⱖ 0. (21) dj ⎝rj − ct − i=t
This implies that we will satisfy a market demand j in period whose contribution to profit is negative but less than the cost of incurring a penalty. By including pj in the criteria for determining profitable arc calculations, this impacts the level of demand satisfaction per market. We only need to consider a subset of all possible values for yj , as is presented in the following property:
3.1. Solution approach to [P]
Property 1 (Optimal demand satisfaction level—[P]). Given the choice to satisfy any quantity of demand less than or equal to dj for market j in period , an optimal solution exists such that yj ∈ {0, 1/M, 1}.
Our approach to solving these delivery obligation problems is to invoke two key properties that exist for each problem—a demand satisfaction level (DSL) property and a zero-inventory ordering (ZIO) property. In each case, we will satisfy demand in each period based on whether or not there is a contribution to profit. Once we identify the demand satisfaction levels (using the DSL property), we solve a new production planning problem to determine which periods
Proof. We prove this by contradiction. First let 1/M < yj < 1, with an objective function value of Z, and assume the most recent pro −1 hi ⱕ rj , we duction period occurred in period t (t ⱕ ). If ct + i=t can continue to increase production until yˆ j = 1, with Zˆ ⱖ Z. Otherwise, decrease production until yˆ j = 1/M, and update the objective function value to Zˆ > Z. Production would remain at yˆ j = 1/M if −1 dj (rj − ct − i=t hi ) + Mpj ⱖ 0.
3. Solution approach to demand selection problems
400
Y. Xiao, K. Taaffe / Computers & Operations Research 37 (2010) 396 -- 405
Fig. 2. Fixed charge network representation for a demand selection problem.
We now present the ZIO property for problem [P]. Property 2 (Zero-inventory ordering—[P]). For all periods in the planning horizon, an optimal solution exists such that both production in period t and inventory carried from period t − 1 are not positive, i.e., xt It−1 = 0.
Fig. 3. Fixed charge network representation of demand flow for problem [P].
1
2
3
4
5
Fig. 4. Shortest path network structure for production planning problems.
Proof. Consider any production period t , and assume xt It −1 > 0, which also implies xt > 0 and It −1 > 0. Assume the last production before t occurs in period t. The cost to produce one unit in period −1 −1 hi . If ct + ti=t hi > ct , then t and consume in period t is ct + ti=t it is more desirable to produce in period t , as shifting one unit of production from t to t increases the contribution to profit. To maximize this contribution, each unit produced in t for consumption in t will now be produced in t , which implies It −1 = 0. If ct + t −1 i=t hi ⱕ ct , then it is at least as desirable to produce in period t, as shifting one unit of production from t to t increases or maintains the same contribution to profit. To maximize this contribution, each unit produced in t for consumption in t will now be produced in t, which implies xt = 0. We can now assume that any candidate solution has a structure similar to that described in Property 1. Let O1t () denote the set of market demands in period that are produced in full in period t, and let O2t () denote all market demands in period that are produced at a fraction of 1/M in period t. Then the maximum profit possible if we do a setup in period t and use that setup to satisfy demands in period (t ⱕ < t ), which we denote by MP s (t, t ), is given by ⎛ ⎞ −1 −2 t t t −1 ⎜ ⎟ (rj − ct )dj − h ⎝ djk ⎠ MP s (t, t ) = =t j∈O1t ()
Now consider 0 < yj < 1/M. A fixed penalty cost of pj must be −1 included for production below 1/M. If ct + i=t hi ⱕ rj , increasing production to yˆ j = 1/M will not reduce the objective function value −1 hi > rj , decreasing production until yˆ j =0 will (i.e., Zˆ ⱖ Z). If ct + i=t increase the contribution to the objective function such that Zˆ > Z. Thus, the only possible values for market satisfaction are 0, 1/M, and 1. Note that M = 1 implies a special case in which each demand is either satisfied in full or not at all. The solution approach remains the same, as we can still calculate the optimal DSL from Property 1.
=t
k=+1 j∈O1t ()
⎛ ⎞ −1 t −1 −1 t 1 ⎝ + dj rj − ct − hi ⎠ − St − pj , M 2 =t j∈Ot ()
i=t
=t j∈J ()
(22) where J () = J()\(O1t () ∪ O2t ()). If MP s (t, t ) is greater than 0 we set the length of arc (t, t ) equal to MP s (t, t ); otherwise we set the length of arc (t, t ) equal to zero and assume no setup occurs in period t if the optimal solution (the longest path in the graph) contains arc (t, t ). After finding the longest path in the graph we can determine which markets to satisfy in each period by checking the elements
Y. Xiao, K. Taaffe / Computers & Operations Research 37 (2010) 396 -- 405
of the sets O1t () and O2t () for all arcs (t, t ) contained in the longest path. Time complexity analysis: Here we give the worst-case complexity of this problem. Let Jmax = maxt=1, ...,T J(t). In each period, the process of determining the DSL at which an order should be satisfied requires time t(3Jmax ). Therefore, calculating all arc lengths requires time t(3Jmax T(T + 1)/2), which is bounded by O(Jmax T 2 ). Since finding the longest path is bounded by O(T 2 ), the overall complexity is bounded by O(Jmax T 2 ). 3.2. Solution approach to [D1] With the addition of the delivery charge term, we are faced with two fixed charges, one for production setup and now one for the delivery charge. In order to obtain a problem that has the ZIO property, we first identify the possible DSL values for each market and period, determine the best DSL (i.e., fix all yjt values), and solve the remaining problem using the Wagner–Whitin approach. Property 3 (Optimal demand satisfaction level—[D1]). Given the choice to satisfy any quantity of demand less than or equal to dj for market j in period , an optimal solution exists where yj = k/K, k = 0, 1, . . . , K. Proof. We prove this by contradiction. Consider fractional demand satisfaction of yj dj where (k − 1)/K < yj < k/K for k = 1, . . . , K, resulting in a delivery charge of Fjk . Given production in period t −1 (t ⱕ ), if rj − ct − i=t hi ⱖ 0 (i.e., if the variable contribution to profit is nonnegative), we can produce up to kdj /K before incurring an increase in the fixed delivery charge. Otherwise, we can reduce to (k − 1)dj /K before receiving a reduction in the fixed delivery charge. At either of these production levels, a cost comparison would still be necessary. We now have only K + 1 possible DSLs to examine, where yj = k/K, k = 0, 1, . . . , K. We must, however, alter our rules for constructing the sets of profitable markets and for calculating MP s (t, t ) to account for these additional costs. If we had a single fixed cost level for each market j and period t (Fjt ), the set of profitable markets Ot () would now include all markets such that
to satisfy demands in period t, . . . , t − 1 now is given by ⎫⎞ ⎛ ⎛⎧ ⎞ −1 t −1 ⎬ ⎨ k(j, )dj ⎝rj − ct − ⎝ MP s (t, t ) = hi ⎠ −Fjk(j,) ⎠ − St . ⎭ ⎩ K =t j∈Ot ()
i=t
(25) (t, t ),
After obtaining the values of all the MP s we use the same method as that in problem [P] to assign the length of arcs and find the longest path in the network graph. Time complexity analysis: Here we give the worst-case complexity of this algorithm. Let Jmax = maxt=1, ...,T J(t). In each period, the process of determining the DSL at which an order should be satisfied requires time t(KJmax ). Therefore, calculating all arc lengths requires time t(KJmax T(T + 1)/2). This results in a complexity of O(KJmax T 2 ). 3.3. Solution approach to [D2] Before calculating the arc length for (t, t ), we must know which market/period combinations to satisfy and at what demand satisfaction level to serve each market/period combination. Since the delivery charge Ftk is determined by the fraction of total demand satisfied in period t, and this total demand is not dependent solely on the characteristics of individual markets, the solution approach requires additional attention as compared to problem [D1]. Similar to the previous models, if we can pre-solve for the DSLs (for every combination of two consecutive production setups (t, t ), then the resulting problem contains the ZIO property. Suppose we incur a setup in period t and a subsequent setup in period t . If market j in period (t ⱕ < t ) is unprofitable without consideration −1 hi ⱕ 0, it will be rejected of the delivery charge, i.e., rj − ct − i=t since it cannot contribute profit to the objective. However, if market j in period is profitable, it does not imply that the demand will be fulfilled, since there may be an associated increase in the cost of the delivery charge if the total fraction of demand satisfied in period extends to the next DSL k. In order to find the DSLs associated with each unique (t, t ) production cycle, we arrive at the following subproblem of [D2]: ⎛ ⎛ ⎞ −1 −1 J() t t ⎝ ⎝rj − ct − hi ⎠ dj yj [D2-sub] maximize =t
⎛ dj ⎝rj − ct −
−1
⎞ hi ⎠ ⱖ Fjt .
401
−
(23)
K
j=1
i=t
⎞
Fk vk ⎠ ,
k=1
i=t
By removing the DSL decision from the optimization problem, we again have a fixed charge network flow problem that contains the ZIO property. However, the arc length calculation is slightly different when we apply the Wagner–Whitin dynamic programming solution method. Suppose we choose to produce in period t and incur the corresponding setup cost, St , and that no other setup can occur until at least period t . To offset the cost of this setup, we now satisfy the demand for market j in period (t ⱕ < t ) if and only if ⎧ ⎫ ⎛ ⎞ −1 ⎨ kd ⎬ j ⎝ ⎠ rj − ct − max hi − Fjk ⱖ 0. ⎭ k∈{1,2, ...,K} ⎩ K
(24)
i=t
Let k(j, ) be the optimal value to the maximization problem associated with (24). If (24) holds, we will satisfy demand (j, ) at level k(j, ) and incur the associated delivery charge of Fjk(j,) . Assigning Ot () to represent the set of markets such that (24) holds, the maximum profit possible if we do a setup in period t and use that setup
subject to
(k − 1)vk /K ⱕ
J()
dj yj
j=1
t ⱕ < t ,
J()
dj ⱕ kvk /K,
j=1
k = 1, . . . , K,
0 ⱕ yj ⱕ 1,
j = 1, . . . , J(t), t ⱕ < t ,
vk ∈ {0, 1},
t ⱕ < t , k = 1, . . . , K.
(26)
Given a setup in period t, we can obtain the elements of the set Ot () containing the markets chosen to satisfy in period and the quantities of demand satisfied for each chosen market. In fact, we can provide an algorithm to obtain the market/period satisfaction levels (and, thus, the arc lengths for each (t, t )) without requiring a linear or integer programming implementation. First, we define the possible values for the optimal DSL for any period. Property 4 (Optimal demand satisfaction level—[D2]). An optimal J() J() d y / j=1 dj = k/K, k = 0, 1, . . . , K. solution exists such that j=1 j j Moreover, there will be at most one fractional demand assignment yj per satisfaction period .
402
Y. Xiao, K. Taaffe / Computers & Operations Research 37 (2010) 396 -- 405
Proof. Let the total fractional demand satisfied be defined by (k − J() J() 1)/K < j=1 dj yj / j=1 dj < k/K for k = 1, . . . , K, with an associated delivery charge of Fk . Now assume that we satisfy a single market j at some fractional DSL of yj dj . Given production in period t (t ⱕ ), −1 hi ⱖ 0 (i.e., if the variable contribution to profit if rj − ct − i=t is nonnegative), we can continue to increase production (or satisfaction) of market j until we encounter a change (or fixed charge increase) in the cost structure associated with further demand satisfaction. This can only happen at the next satisfaction level, or k/K, above which a new delivery charge of Fk+1 is incurred. Otherwise, we can reduce yj to 0 as its profit contribution must be negative. Now consider fractional demand satisfaction in period of y1 d1 and y2 d2 in markets 1 and 2, respectively. There is no marketspecific setup or fixed cost in problem [D2], which implies the only difference in market satisfaction cost is the per-unit revenue of rj . Without loss of generality, let r1 > r2 . Maintaining the same toJ() tal satisfaction level in period , or j=1 dj yj , we can update the satisfaction levels as follows. If d1 − d1 y1 > d2 y2 , increase y1 to 2 j=1 dj yj /d1 and decrease y2 to 0. Otherwise, increase y1 to 1 and decrease y2 to d2 y2 − (d1 − d1 y1 )/d2 . A similar approach can be performed on all other markets in period , which will result in a maximum of one fractional market satisfaction. This algorithm is greedy in nature, where market-period production combinations are satisfied based on their profitability and the current satisfaction level k. The algorithm is described next. constraint:delivery3-D3 [D2] Subproblem algorithm: Calculating MP s (t, t ): 1. Sequence the markets in periods t ⱕ < t in nonincreasing or −1 hi ). The indexed der of per-unit net revenue, or (rj − ct − i=t ()
ordering is represented by [m] = 1, . . . , J(). Set MP 0 (t, t ) = 0, and set k = 1. 2. Calculate the maximum net profit by satisfying the market demands indexed according to Step 1, i.e., satisfy market ([m], ) before beginning to satisfy market ([m + 1], ). Stop satisfying markets when the demand available at level k has been consumed, or when the last profitable market (according to Step 1) has been satisfied in full. Note that this allows for at most one market-period combination to have a fractional satisfaction. Sub() tract Fk from this quantity, and denote the result as MP k (t, t ), for all (t ⱕ < t ). Repeat this step for k = 2, . . . , K. () 3. Compare the K + 1 values of maximum net profit MP k (t, t ), and obtain the maximum net profit in period , denoted by MP () (t, t ), () where MP () (t, t ) = max{MP k (t, t )|k = 0, 1, . . . , K}. 4. Calculate the total maximum profit possible in period t, . . . , t − 1 (denoted as MP s (t, t )) as
MP s (t, t ) = (t, t )
−1 t
=t
MP
()
(t, t ) − St .
(27)
If MP s is greater than 0 we set the length of arc (t, t ) equal to MP s (t, t ); otherwise we set the length of arc (t, t ) equal to 0. After obtaining the arc lengths of all (t, t ) node pairs, we can implement the Wagner–Whitin dynamic programming approach and find the longest path in the graph to determine the optimal production levels per period and DSLs for all markets. The DSLs can be found by checking the elements of the sets Ot () ( = t, . . . , t ) for all (t, t ) pairs contained in the selected path. Time complexity analysis: Here we give the worst-case complexity of this problem. Let Jmax = maxt=1, ...,T J(t). In the subproblem algorithm, the sequence process takes t(Jmax log2 Jmax ) time. The process from Steps 2 to 4 takes t(Jmax ) in the worse case. Therefore, calculating all of the arc lengths takes time [t(Jmax log2 Jmax ) + t(Jmax )]T(T + 1)/2, where T is the number of planning periods. Since finding the
longest path is bounded by O(T 2 ), the overall complexity is bounded by O(Jmax T 2 log2 Jmax ). 3.4. Solution approach to [D3] In applying our solution approach to problem [D3], we need to identify the potential markets to satisfy in each period and the DSL for each market. Since the delivery cost is not determined by the amount of satisfied demand in each market, but instead by the number of markets selected, the optimal policy is to satisfy all demand in the markets that we select. That is to say, the all-or-nothing property holds for [D3]. Property 5 (Optimal demand satisfaction level—[D3]). Given the choice to satisfy any quantity of demand less than or equal to djt for market j in period t, an optimal solution exists where a market is either satisfied in full or not at all (i.e., yjt ∈ {0, 1}). Proof. We prove this by contradiction. Consider fractional production of market j in period t, i.e., 0 < yjt < 1. The delivery charge Fnk is determined based on the number of markets selected in subset ⱖ 0 (i.e., if the variable contribution to M(n, t). If rj − c − t−1 i= hi profit is nonnegative), we can continue to increase production until yjt = 1 without incurring an increase in the fixed delivery charge (and without decreasing the objective function value). Otherwise, we can reduce production to yjt = 0 and increase the objective function value. Since delivery cost is dependent on the markets chosen within a subset, we decompose the market selection in each period into subproblems through which we can obtain these chosen markets. We require a subproblem formulation for every possible production setup pair (t, t ) and all markets that can be selected within this production interval, i.e., any market j in period where =t, . . . , t −1. The formulation can be stated as
[D3-sub] maximize
⎧
⎛
⎩
⎝rj − ct −
−1 J() t ⎨
=t
−
j=1
N K
Fnk vnk
n=1 k=1
subject to
K k=1
bntk =
J()
⎫ ⎬ ⎭
−1 t
⎞ hi ⎠ dj yj
i=t
,
yj Ljn ,
(28)
t ⱕ < t , ∀n,
j=1
(k − 1)vnk
J()
Ljn /K ⱕ bnk ⱕ kvnk
J()
j=1
Ljn /K,
j=1
t ⱕ < t , ∀n, k, K
vnk ⱕ 1,
t ⱕ < t , ∀n, k,
k=1
yj , vnk ∈ {0, 1},
t ⱕ < t , ∀j, n, k.
We can obtain all of the profitable markets from the nth subset in period by solving this model. For subproblem [D3], we can provide an algorithm to obtain the market/period satisfaction levels (and, thus, the arc lengths for each (t, t )) without requiring a linear or integer programming implementation. As with the [D1] and [D2] problems, we preserve the ZIO property since we maintain a concave cost structure for the basic network structure shown in Fig. 4.
Y. Xiao, K. Taaffe / Computers & Operations Research 37 (2010) 396 -- 405
We now provide the algorithm to obtain the net profit in period if setup is occurred in period t. [D3] Subproblem algorithm: Calculating MP s (t, t ): 1. Set n = 1. 2. Sequence the markets in subset M(n, ) in nonincreasing order −1 hi ). Set of their per-unit contribution to profit, or (rj − ct − i=t (n,)
MP 0 (t, t ) = 0, and set k = 1. 3. Calculate the maximum net profit by satisfying markets in full and indexed according to Step 2, where the number of satisfied markets is restricted to the number allowed at level k, which is J() k j=1 Ljn /K. Subtract Fnk from this quantity, and denote the (n,)
result as MP k
(t, t ). Repeat this step for k = 2, . . . , K.
(n,)
4. Compare the K + 1 values of maximum net profit MP k (t, t ), and obtain the maximum net profit in subset M(n, ), denoted by (n,) MP (n,) (t, t ), where MP (n,) (t, t ) = max{MP k (t, t )|k = 0, 1, . . . , K}. 5. Repeat Steps 2–4 for n = 2, . . . , N. 6. Obtain the total net profit, MP () (t, t ), by adding the profits from (n,) (t, t ). all subsets, i,e., MP () (t, t ) = N n=1 MP 7. Calculate the total maximum profit possible in period t, . . . , t − 1, denoted by MP s (t, t ), as MP s (t, t ) =
−1 t
=t
MP () (t, t ) − St .
(29)
If MP s (t, t ) is greater than 0 we set the length of arc (t, t ) equal to MP s (t, t ); otherwise we set the length of arc (t, t ) equal to 0. Finding the longest path in the graph will determine which markets to satisfy in each period by checking the elements of the sets Ot () for all arc (t, t ) contained in the selected path. Time complexity analysis: We apply the same method as in problem [D2] to analyze the complexity of this problem. Both methods have a similar algorithm structure, except that we calculate the arc length N times per period in problem [D3]. Therefore, the overall complexity is O(NJmax T 2 log2 Jmax ).
403
Table 1 Parameters for creation of test instances. Parameter measurement
Range
Applicable to
Number of markets Number of periods Setup cost (varies from period-to-period) Per unit per period holding cost Per unit market revenue (varies from market-to-market) Per unit production cost (varies from period-to-period)
(50,100,200,500) 16 U[$1000X,$2000X]a $2 U[$25,$35]
[P],[D1] [D2],[D3]
Market size Penalty value
U[10,70] A: U[$10,$20] B: U[$50,$100]
Penalty control parameter (M) Levels of demand satisfaction (K) Charge at the Kth level (yK ) Delivery charge functions (k = 1, . . . , K)
(1,3,5,10) 5 U[$100,$600] F1 : yk = (k/K)yK 2 yK F2 : yk = (k/K) F3 : yk = k/KyK
[P]
Number of sub-groups
5
[D3]
a
U[$20,$30]
[P]
[D1],[D2] [D3]
X = 1, 2, 3, 4 for total markets of 50, 100, 200, and 500.
Table 2 Solution time comparison (in seconds). Model
Solve method
Markets per period 50
100
200
500
P
CPLEX P-ALG
2.19 0.01
2.67 0.03
3.40 0.05
5.69 0.13
D1
CPLEX D1-ALG
5.53 0.02
7.90 0.03
12.91 0.05
29.23 0.12
D2
CPLEX D2-ALG
2.15 0.01
2.16 0.03
2.17 0.09
2.30 0.43
D3
CPLEX D3-ALG
4.42 0.01
4.89 0.02
6.46 0.05
12.13 0.16
4. Computational tests This section discusses a broad set of computational tests intended to evaluate our optimal solution approaches in terms of solution time and to provide solution insights under different parameters. Within each problem ([P], [D1], [D2], and [D3]), we use four different settings for the number of markets per period: 50, 100, 200, and 500. Table 1 provides the parameters and corresponding set of distributions used for randomly generating the parameter values in our test cases. Note that U[a, b] denotes a uniform distribution on the interval [a,b]. For all models, we obtain four combinations specified by markets, periods, setup costs, holding costs, market revenues, production costs, and market size. For each unique choice of parameter distribution settings we generated 10 random problem instances. Considering penalty data (penalty values and penalty control parameters), we obtain 32 unique parameter distribution settings for problem [P], resulting in 320 test instances to evaluate. For delivery charge formulations [D1], [D2] and [D3], the total number of parameter combinations for each model is 12. We then set five DSLs associated with unique levels of delivery charges. A uniform distribution of U[100, 600] is used to generate the charges at the 5th and final DSL. The values of other levels are calculated based on the three delivery charge functions shown in Table 1. These functions are designed to provide insight into how market selection and ordering will vary based on the delivery cost step functions—F1, F2, and F3. In all, we tested 12 parameter settings (four market levels and three delivery charge functions), resulting in 120 test instances each for [D1], [D2], and [D3].
4.1. Time comparison of methods All mixed integer programming formulations were solved using CPLEX on a Dell OptiPlex GX620 machine with 2.8 GHz CPU and 2.0 GB of RAM. Table 2 presents the solution times resulting from both the commercial solver and our tailored algorithms, which were coded in C++ and run on the same computer. We present a single average solution time for all test instances for a particular number of markets. Even though CPLEX can solve the test instances in a relatively short amount of time, our algorithms are significantly faster in finding the optimal solution, especially for problems with 200 or 500 markets. Again, our algorithms do not require a commercial solver. For future research, we intend to use this solution approach to the uncapacitated case as the underlying method for solving cases with production capacities present. 4.2. Solution insights The purpose of examining several parameter settings is to not only prove that our approach outperforms a state-of-the-art commercial optimization solver, but also to understand the effect that each parameter has on the selection or rejection of markets. Table 3 provides a summary of solution values and the number of markets selected for each problem “group”. For problems with the
404
Y. Xiao, K. Taaffe / Computers & Operations Research 37 (2010) 396 -- 405
Table 3 Solution results for problem [P]. MSa 50
Penalty A
100
200
500
Mb
Table 4 Solution results of problem [D1], [D2] and [D3].
SVc
FSd
1 e S 3
1 S 5
1 S 10
1.0 3.0 5.0 10.0
196 196 196 196
414.30 472.03 534.34 627.06
48.54 47.03 47.03 47.03
0 2.03 0 0
0 0 2.48 0
0 0 0 2.82
B
1.0 3.0 5.0 10.0
195 196 196 196
575.90 254.33 461.12 620.16
49.53 47.06 47.03 47.03
0 2.92 0 0
0 0 2.97 0
0 0 0 2.97
A
1.0 3.0 5.0 10.0
377 377 377 377
099.40 244.53 444.48 778.10
94.63 91.27 91.29 91.29
0 4.79 0 0
0 0 6.24 0
0 0 0 7.81
B
1.0 3.0 5.0 10.0
373 376 376 377
633.90 065.16 940.68 681.64
97.82 91.44 91.29 91.28
0 8.30 0 0
0 0 8.68 0
0 0 0 8.72
A
1.0 3.0 5.0 10.0
794 794 795 795
600.50 877.83 236.22 785.38
190.82 185.01 184.79 184.99
0 8.67 0 0
0 0 11.43 0
0 0 0 13.65
B
1.0 3.0 5.0 10.0
788 793 794 795
814.60 055.60 504.44 672.62
196.30 184.79 184.79 184.79
0 14.77 0 0
0 0 15.18 0
0 0 0 15.21
A
1.0 3.0 5.0 10.0
1 1 1 1
992 993 994 995
578.10 256.90 039.78 301.19
479.17 462.70 462.70 462.70
0 22.67 0 0
0 0 28.09 0
0 0 0 34.05
B
1.0 3.0 5.0 10.0
1 1 1 1
979 988 992 995
224.90 937.26 293.94 011.92
491.14 462.70 462.70 462.70
0 36.22 0 0
0 0 37.17 0
0 0 0 37.30
a
MS denotes the market size in each period. M denotes the penalty control parameter used in [P]. c SV denotes the average solution value. d FS denotes the average number of markets fully satisfied each period. e 1 S denotes the average number of markets which are satisfied at a fraction of 3 each period. b
1 3
same market size and penalty distribution, the penalty control parameter (or M in the formulations) plays a role in determining the selection or rejection of markets. Some portion of those markets partially satisfied when M = 3, 5, or 10 are now satisfied in full at M = 1. As the results show, larger values of M result in greater profitability (and more satisfied markets). As M goes to infinity, we would see the effect of removing the delivery obligation penalty altogether. We also note that problems with penalty distributions labeled as “B” result in more selected markets than those labeled as “A”. The underlying reason is that the “B” penalty distribution setting generates penalties large enough that it forces the model to select the markets which were evaluated as unprofitable by problems with an “A” penalty distribution. Table 4 presents a similar set of results for the problems where delivery charges are present. Given a certain market size, when the delivery charge function is set as F2 in problem [D1] (we refer to this as [D1–F2]), the objective function value and number of selected markets are always higher than those of [D1–F1] and [D1–F3]. Problems [D1–F1] and [D1–F3] obtain similar but not identical solution values and numbers of selected markets. For problem [D3], we notice that [D3-F2] also obtains the highest solution value across the three delivery charge functions but with a smaller number of markets selected as compared to [D3–F1] and [D3–F3]. In problem [D3], the DSL is defined by the number of
MS
DCFa
D1 SV
D2 b
SM
SV
D3 SM
SV
SM
50
F1 F2 F3
38 859.02 56 435.16 39 665.60
16.24 40.85 16.00
191 629.68 191 396.10 191 378.30
47.11 46.91 47.15
170 242.10 172 008.20 169 564.10
45.68 44.26 46.45
100
F1 F2 F3
75 522.13 108 909.16 74 974.10
31.11 78.21 31.04
373 411.34 373 160.66 373 086.54
91.78 91.16 91.68
352 180.60 353 928.90 351 447.30
90.34 89.26 90.77
200
F1 F2 F3
167 348.48 243 535.14 171 219.80
64.18 160.47 64.08
791 747.54 791 478.38 791 463.20
185.29 184.49 185.39
770 107.00 771 511.60 769 640.90
183.87 183.21 184.31
500
F1 F2 F3
440 782.50 627 287.64 442 453.00
161.84 406.46 161.72
1 992 540.92 1 992 238.32 1 992 337.38
465.74 462.67 464.13
1 970 745.70 1 971 837.80 1 970 390.00
462.22 461.74 462.54
a b
DCF denotes the type of delivery charge function. SM denotes the average number of selected markets each period.
Fig. 5. Frequency of each demand satisfaction level.
markets satisfied within each market subgroup, instead of being based on the total demand satisfied. This new DSL definition implies that the most profitable markets (the combination of net revenue and demand) are satisfied first. Under this selection principle, function F2 renders the model to select fewer orders to avoid charges but obtain higher profit. We illustrate the distribution of the DSLs for all delivery charge functions for the case of [D1] with 50 markets (see Fig. 5). In this figure, we notice that markets are satisfied at any of the five predefined satisfaction levels in [D1–F2], while most markets are satisfied in full in problems [D1–F1] and [D1–F3]. 5. Conclusions Market selection in production planning is an important and active topic in modern industry management, especially in make-toorder production. When manufacturers have discretion to accept or deny production markets, determining the best set of markets based on both revenue and production/delivery cost implications can be quite challenging. We have introduced several models to account for scenarios in which a penalty charge or delivery charge is present based on market satisfaction levels. For each problem, we offer tailored solution algorithms that all outperform a state-of-the-art commercial solver. The algorithms exploit properties of the underlying requirements planning problem in obtaining consistently small solution times. When production capacities are an issue, the properties exhibited in this research would no longer hold. However, we are hopeful that the research to the uncapacitated problem will lead to a quality solution approach to the capacitated problem, where solutions can still be obtained quickly without loss in solution quality.
Y. Xiao, K. Taaffe / Computers & Operations Research 37 (2010) 396 -- 405
Acknowledgments This paper is partially supported by the China Scholarship Council. We would also like to thank Dr. Tieke Li for providing Yongjun Xiao the opportunity to work with Dr. Kevin Taaffe as a visiting scholar.
References [1] Wagner H, Whitin T. Dynamic version of the economic lot size model. Management Science 1958;5:89–96. [2] Wolsey L. Progress with single-item lot-sizing. Journal of Operational Research 1995;86:395–401. [3] Brahimi N, Dauzère-Pérès S, Najid N, Nordli A. Single item lot sizing problems. European Journal of Operational Research 2006;168:1–16. [4] Zangwill W. A backlogging model and a multi-echelon model of a dynamic economic lot sizing problem. Management Science 1969;15(9):506–27. [5] Love S. A facilities in series inventory model with nested schedules. Management Science 1972;18:327–38. [6] Afentakis P, Gavish B, Karmarkar U. Computationally efficient optimal solutions to the lot-sizing problem in multistage assembly systems. Management Science 1984;30:222–39. [7] Afentakis P, Gavish B. Optimal lot-sizing algorithms for complex product structures. Operations Research 1986;34:237–49. [8] Integrated Capacity, Merzifonluoglu Y, Geunes J, Romeijn HE. Integrated Capacity, Demand, and production planning with subcontracting and overtime options. Naval Research Logistics 2007;54(4):433–47. [9] Geunes J, Merzifonluoglu Y, Romeijn HE, Taaffe K. Demand selection and assignment problems in supply chain planning. In: Tutorials in operations research. INFORMS; 2005. [10] Lee C, Çetinkaya S, Wagelmans A. A dynamic lot sizing model with demand time windows. Management Science 2001;47(10):1384–95.
405
[11] Dauzère-Pérès S, Brahimi N, Najid N, Nordli A. The single-item lot sizing problem with time windows. Technical Report 02/4/AUTO, Ecole des Mines de Nantes; 2002. [12] Charnsirisakskul K, Griffin P, Keskinocak P. Order selection and scheduling with leadtime flexibility. IIE Transactions 2004;36(7):697–707. [13] Jaruphongsa W, Çetinkaya S, Lee C. A two-echelon inventory optimization model with demand time window considerations. Journal of Global Optimization 2004;30(4):347–66. [14] Jaruphongsa W, Çetinkaya S, Lee C. Warehouse space capacity and delivery time window considerations in dynamic lot-sizing for a simple supply chain. International Journal of Production Economics 2004;92(2):169–80. [15] Hwang H. Dynamic lot-sizing model with production time windows. Naval Research Logistics 2007;54(6):692–701. [16] Hwang H. An efficient procedure for dynamic lot-sizing model with demand time windows. Journal of Global Optimization 2007;37(1):11–26. [17] Hwang H, Jaruphongsa W. Dynamic lot-sizing model for major and minor demands. European Journal of Operational Research 2008;184(2):711–24. [18] Geunes J, Romeijn HE, Taaffe K. Requirements planning with pricing and order selection flexibility. Operations Research 2006;54(2):394–401. [19] Taaffe K, Geunes J. Models for integrated customer order selection and requirements planning under limited production capacity. In: Pardalos P, Migdalas A, Baourakis G, editors. Supply chain and finance. River Edge, NJ: World Scientific; 2004. [20] Sandbothe R, Thompson G. A forward algorithm for the capacitated lot size model with stockouts. Operations Research 1990;38(3):474–86. [21] Liu X, Tu Y. Production planning with limited inventory capacity and allowed stockout. International Journal of Production Economics 2008;111:180–91. [22] Aksen D, Altinkemer K, Chand S. The single-item lot-sizing problem with immediate lost sales. European Journal of Operational Research 2003;147: 558–66. [23] Dellaert N, Melo M. Heuristic procedures for a stochastic lot-sizing problem in make-to-order manufacturing. Annals of Operations Research 1995;59:227–58. [24] Dellaert N, Melo M. Production strategies for a stochastic lot-sizing problem with constant capacity. European Journal of Operational Research 1996;92(2):281–301.