Assortment planning and inventory decisions under stock-out based ...

13 downloads 627 Views 401KB Size Report
Sep 5, 2008 - E-mail: [email protected]. ‡Johnson ... substitute in the event of a stock-out. .... theory from the marketing literature.
Assortment planning and inventory decisions under stock-out based substitution∗

Doroth´ee Honhon†,

Vishal Gaur‡,

Sridhar Seshadri§

September 5, 2008

Given a finite set of products with varying prices and costs, stochastic demand and customer preferences, we consider the problem of determining the optimal assortment and inventory levels in order to maximize expected profit in a single-period. We model customer preferences through the definition of customer types, where a type is a ranking of the potential products by order of preference. A customer purchases the highest ranked product available (if any) in the assortment at the time of his visit to the store (dynamic substitution). The total demand comprises of a fixed proportion of customers of each type. We show that an efficient dynamic programming algorithm of pseudo-polynomial complexity O(8n ) can be used to determine the optimal assortment. Our algorithm also gives a heuristic for the general case, i.e., when the proportion of customers of each type is random. In numerical tests, this heuristic performs better and faster than previously known heuristics, especially when the average demand is high and customers have large sets of preferred products.



The authors are thankful to the people who attended presentations at COER, University of Michigan, UT Austin, UNC, University of Utah and INSEAD for helpful comments on previous versions of this manuscript. † Department of Information, Risk, and Operations Management, McCombs School of Business, University of Texas at Austin, 3.440, 1 University Station, Austin, TX 78712. E-mail: [email protected] ‡ Johnson Graduate School of Management, Cornell University, Sage Hall, Ithaca, NY 14853-6201. E-mail: [email protected] § Department of Information, Risk, and Operations Management, McCombs School of Business, University of Texas at Austin, 3.440, 1 University Station, Austin, TX 78712. E-mail: [email protected]

1 Introduction Assortment and inventory decisions are two of the most important decisions in retailing. Retailers frequently have to determine the set of products to carry in their assortment and the amounts of inventory to stock for each product. These decisions depend on not only the price and cost parameters of the products, but also the preferences and substitution behavior of the retailer’s customers. The substitution behavior is said to be assortment-based or static if customers make their choice from the given assortment without knowledge of product availability and also do not substitute in the event of a stock-out. The substitution behavior is said to be stockout-based or dynamic if customers base their choice from the products available in stock at the time of their visit to the store. A rich class of problems has developed in the literature to address joint assortment planning and inventory management. Under assortment-based substitution, optimal solutions to these problems are known for several consumer choice models, including the multinomial logit model, the locational choice model, and generalizations thereof. Under dynamic substitution, the problem is considerably harder, and thus, relatively little is known about the structural properties of the solution. Indeed, Mahajan and van Ryzin (2001) show that the profit function for this problem is not quasi-concave in inventory levels. Consequently, a number of heuristics have been proposed in the literature to solve this problem. In this paper, we model and solve a version of the joint assortment planning and inventory management problem defined as follows. We consider a single-period newsvendor setting and a set of n substitutable products with given prices and costs. We model customer tastes by classifying consumers into different customer types. A type, interchangeably, is a sequence of products that a customer of that type is willing to purchase, arranged in the decreasing order of preference. A customer purchases the highest ranked product (if any) in the assortment at the time of his visit to the store. Our consumer choice model is very general, and other models like the MNL model and the locational choice model can be represented as special cases by efficiently placing restrictions on the set of possible types. Finally, we assume that the total demand is a stochastic continuous random variable with a known distribution, and the number of customers of each type is a fixed 1

proportion of the total demand. Our main results are as follows. First, despite the fact that the expected profit function for this problem admits multiple local optima, we are able to determine the optimal solution efficiently. We do this by exploiting structural properties of the optimal solution that allow us to use dynamic programming. To the best of our knowledge, this is the first result regarding the optimal assortment and inventories under dynamic substitution for arbitrary customer preferences and substitution behavior. We provide an algorithm with a pseudo-polynomial complexity of O(8n ) to solve the dynamic program. This complexity is derived from an upper bound on the number of local optima in the value function. In numerical tests, we find the number of local optima to be far fewer, so that the algorithm is faster than the worst-case bound. Second, our paper presents structural results for the optimal assortment under dynamic substitution. Products differ in their selling price, purchasing cost and salvage value. The profit margin (selling price - purchasing cost) on a product can be viewed as the return on that product, while the difference between selling price and salvage value can be seen as its risk. When the retailer runs out of one product, the overall return and risk of the assortment change. We prove that the products stocked in the optimal solution are such that the return and risk parameters of the subsets of products with positive inventory seen by subsequent customers are ordered in a specific way. For example, suppose that the optimal assortment contains products 1 and 3 and that the optimal quantities are such that product 1 is the first one to run out (when demand is infinite). Then the return of subset S = {1, 3} is greater or equal to that of set {3}. Also the risk of subset {1, 3} is greater or equal to that of subset {3}. Subsets that do not satisfy such an ordering are never included in the optimal solution. We find that this ordering enables the retailer to exploit differences in the prices and costs of products in order to better plan inventory and improve profitability. Thus, our result implies that cost economics of products is an important reason to provide variety. This result applies even in the extreme case in which customer preferences are identical. It enables us in our algorithm to characterize local optima and compare alternative assortments efficiently. Third, our algorithm provides a heuristic for the general case in which the total demand is a discrete random variable and the proportion of customers of each type is random. In our numerical

2

tests, conducted on 1,140 problem instances comprised of a wide range of assortment sizes, demand rates, price and cost parameters, and customer preference distributions, our algorithm gives a higher expected profit than the Sample Path Gradient Algorithm (SPGA) of Mahajan and van Ryzin (2001) in 73.49% of the problem instances and is on average 0.49% worse than the SPGA solution in the remaining cases. It also significantly improves upon computation time; especially when average demand is high, the improvement is in one or more orders of magnitude. Fourth, we analyze the simulation results and identify three reasons for performance differences between heuristics. For example, we consider assortment-based substitution, which is commonly used as a heuristic due to its simple structure. We find that it performs surprisingly well compared to the DP and SPGA heuristics in many cases. However, it is computationally intensive and can lead to a significant loss in expected profit when the overage costs of products are high and the customer population is relatively heterogeneous. Based on our results, we recommend using the DP algorithm if any of the following conditions holds: the mean demand is large, the degree of substitutability is high, the population is homogeneous, or the overage costs are high. The rest of this paper is organized as follows: §2 presents a review of the relevant literature, §3 describes the consumer choice model, §4 presents the optimal solution, §5 gives our numerical

analysis comparing our algorithm with the SPGA and with an assortment-based substitution algorithm, and §6 summarizes the main results, applications, and limitations of our model. The paper has an online appendix that presents all our numerical results.

2 Literature Review Research on assortment planning and inventory management has advanced rapidly in recent years, particularly on modeling consumer choice and substitution behavior using individual-level choice theory from the marketing literature. For discussion, we classify the relevant research papers into those that model static or assortment-based substitution and those that model dynamic or stockout based substitution. Kok et al. (2006) provide an excellent review of the recent literature on assortment planning and its practical applications. Lancaster (1990), Ho and Tang (1998), and

3

Ramdas (2003) provide reviews of broader issues in product variety and product design. Among the earliest papers on assortment planning, Pentico (1974) studies a one-dimensional assortment planning problem with downward substitution for stochastic demand. He obtains the optimal solution with an assumption regarding the sequence of customer arrivals and a ’no crossover’ assumption, which preclude dynamic substitution. Pentico (1976) and (1988), respectively, study one-dimensional and two-dimensional assortment planning problems with deterministic demand, using an EOQ model to formulate inventory costs. In all three papers, conditions are shown in which a planning-horizon type policy, which Pentico calls the ’segmented policy’, is optimal and leads to an efficient dynamic programming formulation. van Ryzin and Mahajan (1999) study the assortment planning and inventory decisions under the multinomial logit (MNL) model for the assortment-based substitution case with exogenous and identical prices. They obtain the optimal solution, and show that it consists of the most popular products from the finite set of potential products to offer. Cachon et al. (2005) generalize the consumer choice process to incorporate search costs, and show that ignoring consumer search in demand estimation can result in an assortment with less variety and lower expected profits than the optimal solution. Hopp and Xu (2005) apply the MNL model to study the joint assortment planning and pricing problem under assortment-based substitution. They show that the optimal assortment for a risk-averse retailer is composed of the variants with the highest quality markups, with price markups being equal to quality markups. Anupindi et al. (2006) use a probit model to represent demand at the household level. They include the customer’s disutility from having to substitute to a less-preferred item into the retailer’s objective function so that the retailer has to balance this long-term cost against short term profits. They find that customer disutility can be significantly reduced at the cost of a small reduction in short term profit. They use household scanner panel data to calibrate their model and find the optimal assortment. de Groote (1994) uses a locational choice model to represent customer choice in a product design problem with product differentiation, pricing, and inventory decisions. Chen et al. (1998) study optimal product positioning and pricing, using a locational model with varying prices, quality levels and reservation prices of customers in the attribute space. Gaur and Honhon (2006) obtain the

4

optimal solution under assortment-based substitution for horizontally differentiated products in a one-dimensional locational choice model. They introduce a unimodal distribution of customers on the attribute space, and show that the products in the optimal assortment are equally spaced and need not include the most popular product. The locational choice model has also been used in studies of competitive product positioning and pricing, see for example, Alptekinoglu and Corbett (2005). Generalizations of the assortment planning problem studied in the literature include brand-level assortment decisions and category management. Chong et al. (2001) consider brand-level assortment decisions using a nested MNL model, and present a local improvement heuristic based on pairwise interchanges of products to solve the problem. Cachon and Kok (2005) consider the problem of simultaneously determining the optimal assortment in a set of categories of complementary products. They determine properties of the optimal solution and compare it to a decentralized solution as often implemented in practice. Whereas all of the above papers consider assortment planning under assortment-based substitution, there have been fewer research papers on the assortment planning problem under dynamic substitution. Smith and Agrawal (2000) consider this problem using a choice model specified by first choice probabilities and a substitution matrix. They present a solution approach by simplifying the problem using service levels instead of inventories and showing that assortment-based substitution yields bounds on the demand for each product under dynamic substitution. Mahajan and van Ryzin (2001) consider this problem for a choice model requiring only the existence of a utility function to represent customer preferences. They develop a stochastic sample path gradient algorithm to determine the optimal assortment and inventory levels in order to maximize expected profits. Kok and Fisher (2004) consider this problem in the context of a supermarket chain. They show how to estimate substitution parameters in an MNL model by leveraging data from stores with varying assortments, and present an algorithm to solve the assortment planning and inventory problem with one-level stock-out based substitution in the presence of shelf-space constraints. Gaur and Honhon (2006) consider this problem under the locational choice model, and present a heuristic and an upper bound based on a polynomial-time combinatorial approximation. Hopp and Xu (2007) use an attraction model of demand and apply a fluid network approximation to 5

estimate demand under dynamic substitution. They use this approximation to study the price and service competition between single-product retailers and the price, service and product assortment competition in a duopoly. The assortment planning problem under dynamic substitution is also related to the multi-item inventory management problem for substitutable items, see for example, Bassok et al. (1999), Lippman and McCardle (1997), Netessine and Rudi (2003), and Rao et al. (2004). These models differ from dynamic substitution because they have a fixed assortment, and they do not require knowledge of the sample path of customer arrivals, assuming instead that the entire demand is known before any of it is satisfied. However, the problem remains complex for a multi-product firm. Thus, assortment planning is a significant area of research. Our paper contributes to this area by providing new insights into the structure of the optimal solution under dynamic substitution.

3 Model formulation 3.1 Consumer Choice Model We consider a product category consisting of n potential products, indexed 1 to n. Each customer is defined by a customer type. A customer type is a sequence of products that a customer of that type is willing to purchase, arranged in decreasing order of preference. For example, a customer of type (1, 2, 4) has product 1 as his first choice, product 2 as his second choice, product 4 as his third choice, and he never buys products 3 and 5 to n. In general, a type τ is a vector (τ1 , ..., τm ) with 0 ≤ m ≤ n of product indices such that {τ1 , ..., τm } ⊆ {1, ..., n}. Let T be the set of all possible types. In the absence of restrictions on the set of possible customer types, we have P P n! . Also, let ατ be the proportion of customers of type τ ∈ T in the |T | = nj=0 Cjn j! = nj=0 (n−j)! P customer population, such that τ ∈T ατ = 1. The type of a customer can result from a utility maximization procedure, that is, each customer assigns a utility Uj to product j = 1, ..., n. He sets the utility of not purchasing any product to U0 .

6

Let U[k] be the k-th greatest value of the utility vector (U0 , U1 , ..., Un ) (assuming there are no ties), the type of the customer is (τ1 , ..., τm ) if Uτk = U[k] for k = 1, ..., m and U0 = U[m+1] . In practice, a retailer does not need to know the utilities in order to use our model. She only needs to estimate the set of possible customer types for the given product category and associate a probability with each one of them. Many of the papers on assortment planning use a consumer choice model which puts restrictions on the set of possible customer types and/or on the proportions ατ . For example, the downward substitution model imposes that ατ = 0 if τ ∈ / {(1, ..., n), (2, ..., n), ..., (n)}. In the one-level substitution matrix model, λj is the probability of a customer wanting product j as a first choice and Cji is the probability of substituting from product j to product i if j is out of stock, where Cji = 0 if j = 1. This corresponds to setting

ατ

 P   if τ = (j) λj (1 − ni=1 Cji )    = λj Cji if τ = (j, i), j 6= i      0 otherwise

In the multinomial logit model, we have ατ =

v Pnτ1

i=0

vi

Pn

vτ2 v0P m Pn ... Pn v v−τP m m−1 vi −vτ1 v − i v τ i=0 i=1 vτi i i=0

i=0

i=1

i

for all τ = (τ1 , ..., τm ) ∈ T where vi is what van Ryzin and Mahajan (1999) call the preference for product i. Finally, in the locational choice model, ατ = F (bτ ) − F (aτ ) where F is the distribution of preferences over the attribute space and [aτ , bτ ] is the portion of the attribute space where customers have type τ . Thus, the customer types and their associated probabilities can be efficiently generated in common problem settings. They do not need to be enumerated a priori. We assume that customer preferences are not affected by the assortment and inventory decisions of the retailer. Customer preferences could depend on prices, however, this dependence is exogenous to our model because we assume prices to be fixed. Let D be the total number of customers that visit the store during a fixed time period; this is the total demand for products in the assortment. We assume that D is stochastic and continuous,

7

but that the retailer knows its distribution a priori. The cdf of D is F , pdf f , and mean µ.1 We also assume that there is a constant proportion of customers of each type at all times, i.e., for all 0 ≤ x ≤ D, there are exactly ατ x customers of type τ out of the first x customers that come to the store for all τ ∈ T . This assumption yields an approximation to the case of discrete demand when each customer has a probability ατ of being of type τ . In that case, the number of customers of type τ is random with mean ατ x. Our constant proportion assumption essentially suppresses the uncertainty at the individual customer level by replacing the number of customer of each type by its expected value (but retains the uncertainty about the number of customers coming to the store). While this assumption is strong, we show in §5 that our algorithm provides a very good heuristic. Finally, we assume that customers come sequentially to the store so that the inventory levels they observe at the time of their visit are the quantities that remain after the previous customers have depleted the assortment. We assume that consumers substitute dynamically, i.e, each customer buys the highest ranked product given his type, which is available in the assortment (if any) at the time of his visit to the store. Let S be the set of products with positive inventory at the time a customer visits the store. We define Z(S) to be the |T | × n matrix which shows the product that customers of different types buy when faced with S, i.e.,

Zτ ,j (S) =

   1

if ∃i : τ i = j, j ∈ S and τ1 , ..., τi−1 ∈ /S

  0

otw.

Let qj be the starting inventory level of product j and q = (q1 , ..., qn ) be the inventory (row) vector. The following example illustrates the workings of the model. Example 1.

Let n = 2. We have T = {(1), (1, 2), (2), (2, 1)}. Let α(1) = 0.1, α(1,2) = 0.3, α(2) = 0.2

and α(2,1) = 0.4. The retailer decides to stock both products and sets q = (2, 4). Suppose the realization of demand is D = 6. As long as both products are in stock, customers of types (1) and (1, 2) buy product 1, while 1

In §4, we present the results assuming that F is continuous. However, the structural results also hold if F is not continuous, as long as the constant proportion assumption is preserved.

8

customers of type (2) and (2, 1) buy product 2. Therefore initially, 40% of the people buy product 1 and 60% of the people buy product 2. We say that products 1 and 2 are depleted at rates of 40% and 60% respectively. Eventually, when the cumulative demand reaches 5 (=

2 0.4


tn .

2

If s products run out at the same time, where s > 1, then ti = ti+1 = ... = ti+s−1 for some i. In this case we define Si+1 , ..., Si+s−1 recursively using Si+x = Si+x−1 \{kx } for x = 1, ..., s. This is a convention which does not affect any of our results.

10

Plugging this value into (1) and (2),

EΠ(q) =

n X

"

" uj qj − (uj + oj )

j=1

n Z X i=1

i−1 X

ti

qj −

ti−1

!

##

Rj (Sk )(tk − tk−1 ) − Rj (Si )(x − ti−1 ) f (x)dx

.

k=1

The expected profit is now expressed in terms of S1 , ..., Sn and t1 , ..., tn , rather than q. Using (3), we obtain,

EΠ(q)

=

n X

" uj

j=1

=

n X

" uj

j=1

=

n X

Rj (Si )(ti − ti−1 ) − (uj + oj )

ti

n X

ti−1

k=i+1

n Z X

i=1

i=1

n X

Z n X

Rj (Si )(ti − ti−1 ) − (uj + oj )

i=1

!

ti−1

Z

j=1

Pn

and oSi =

Rj (Si )(ti − x)f (x)dx ti−1

ti−1

Z

Pn

j=1 Rj (Si )oj ,

!

ti

(ti − x)f (x)dx 

(ti − ti−1 )f (x)dx +

0

j=1

j=1 Rj (Si )uj

!#

ti

Rj (Si )(ti − ti−1 )f (x)dx +

0

i=1

#

Rj (Sk )(tk − tk−1 ) + Rj (Si )(ti − x) f (x)dx

    Z n n X X  Rj (Si )uj  (ti − ti−1 ) −  Rj (Si )(uj + oj )

i=1

Let uSi =

n X

ti−1

for i = 1, ..., n. We say that uSi and oSi

are the underage and overage cost of the subset of products Si . We can rewrite expected profit as:

EΠ(q) =

n X

"

ti−1

Z

Z

(ti − x)f (x)dx

(ti − ti−1 )f (x)dx +

uSi (ti − ti−1 ) − (uSi + oSi )

. (4)

ti−1

0

i=1

!#

ti

We can thus transform the optimization problem as follows:

max EΠ(q) = q≥0

max

(S2 ,...,Sn ):S1 ⊃S2 ⊃...⊃Sn ,|Si |=n−i+1 (t1 ,..,tn ):0≤t1 ≤t2 ≤...≤tn

n X

"

Z

ti

(ti − x)f (x)dx

uSi (ti − ti−1 ) − (uSi + oSi ) ti−1

i=1

Z

ti−1

 (ti − ti−1 )f (x)dx

+

.

(5)

0

In other words, we optimize with respect to t1 , ..., tn and S2 , ..., Sn rather than q. Note that we do not need to optimize with respect to S1 since it is always equal to {1, ..., n}.3 Note that we could incorporate a penalty or substitution cost for customers who do not receive their first choice product into the model. In general, we let rτ ,j be the per-item revenue obtained from a customer of type τ buying product j, once the penalty or substitution cost has been  P P accounted for. The only change is that we have uSi = nj=1 τ ∈T Zτ ,j (Si )ατ rτ ,j − Rj (Si )cj . 3

If k products are not stocked in the assortment, then t1 = ... = tk = 0 and Sk is the initial assortment.

11

Let S1∗ , ..., Sn∗ and t∗1 , ..., t∗n be the values that achieve the maximum expected profit in (5) where S1∗ = {1, ..., n} and we set t∗0 = 0. . We find the optimal inventory vector q∗ from (3); qj∗

n X

=

Rj (Si∗ )(t∗i − t∗i−1 )

for j = 1, ..., n.

(6)

i∈Si∗

Finally, we define the following critical fractiles for sets of products. Given S, T ⊆ {1, ..., n}, let:

θS ≡

θST



uS , uS + oS   uS −uT   

(uS +oS )−(uT +oT )

if (uS + oS ) 6= (uT + oT )

−1

otw.

One way to solve (5) is to fix the sequence {S2 , ..., Sn } and solve for t1 , ..., tn using first order conditions. There is a set of simple conditions to check to see if the stationary point obtained for a fixed {S2 , ..., Sn } is a local maximum. It can be shown that the expected profit function typically admits multiple local maxima. The global maximum is obtained by comparing the value of expected profit at each of the local maxima. There are n! possible sequences when all ti are strictly positive. Add to that the boundary solutions obtained when one or more ti are equal to zero, and there are a total of |T | sequences to evaluate, which is exactly the number of customer types. This number increases very quickly with n, e.g., it is almost 10 million for n = 10. Hence, finding the global maximum this way can be quite time-consuming. In what follows, we propose a more efficient method, based on a dynamic programming formulation.

4 Optimal assortment In this section, we formulate the problem as a dynamic program where the value function measures the maximum expected profit that can be obtained from the remaining customers given the current assortment. We show that the value function is a convex non-increasing function of the demand and has a piecewise structure. Each piece is associated with a different assortment, and these 12

assortments are ordered in a specific manner by their underage and overage costs. Further, we show an upper bound on the number of pieces. We exploit this structure in an efficient algorithm that provides the optimal solution in O(8n ). We then provide illustrations and insights on the structure of the optimal assortment.

4.1 Dynamic Programming Formulation Let hSi (ti−1 , ti ) be the expected profit obtained from D ∈ [ti−1 , ti ), when the set of products with positive inventory is Si . " hSi (ti−1 , ti ) =

ti−1

Z

Z

(ti − x)f (x)dx

(ti − ti−1 )f (x)dx +

uSi (ti − ti−1 ) − (uSi + oSi )

!#

ti

,

ti−1

0

= hSi (ti , 0) − hSi (ti−1 , 0).

Let hSi (ti ) ≡ hSi (ti , 0) be the expected newvendor profit from stocking ti units of a product with underage cost uSi and overage cost oSi . Z

ti

(ti − x) f (x)dx,

hSi (ti ) = uSi ti − (uSi + oSi ) 0

which is a strictly concave function of t with a unique maximum at F −1 (θSi ). We rewrite (4) as

EΠ(q) = hS1 (t1 , 0) +

n X

hSi (ti , ti−1 )

i=2

= hS1 (t1 ) +

n X

[hSi (ti ) − hSi (ti−1 )] .

i=2

And (5) as:

max max (h (t ) − hS2 (t1 )) + ...  S2 :S2 ⊂S1 t2 ≥t1 S2 2 |S2 |=n−1     + max max (hSn (tn ) − hSn (tn−1 )) .  Sn :Sn ⊂Sn−1 tn ≥tn−1 

max EΠ(q) = max hS1 (t1 ) + q≥0

 

t1 ≥0

|Sn |=1

13

(7)

The form of (7) suggests formulating a dynamic program in which the stage i decision is ti and the state variable is ti−1 . For Si ⊆ {1, ..., n} such that |Si | = n − i + 1, let VSi (ti−1 ) be a stage-i value function. It represents the maximum expected profit that can be obtained from D ∈ [ti−1 , ∞) given that Si is the set of products with positive inventory at ti−1 and |Si | = n − i + 1. We have   VSi (ti−1 ) = max hSi (ti ) − hSi (ti−1 ) + ti ≥ti−1 

max

Si+1 :Si+1 ⊂Si |Si+1 |=n−i

  VSi+1 (ti ) 

∀ti−1 ≥ 0

(8)

for i = 1, . . . , n, and VSn+1 (tn ) = 0 for all tn . The backward recursion in (8) requires the computan value functions to tion of the value functions from stage n to stage 1. At each stage there are Ci−1

compute, and therefore, a total of 2n − 1 value functions for all stages. Let V¯Si (ti ) = max Si+1 :Si+1 ⊂Si VSi+1 (ti ), GSi (ti ) = hSi (ti )+V¯Si (ti ) and GSi (ti−1 ) = maxti ≥ti−1 GSi (ti ). |Si+1 |=n−i

Thus, the dynamic program can be written as

VSi (ti−1 ) =

max GSi (ti ) − hSi (ti−1 ) = GSi (ti−1 ) − hSi (ti−1 )

ti ≥ti−1

(9)

for i = 1, . . . , n. The optimal expected profit is given by EΠ(q∗ ) = VS1 (0) where S1 = {1, . . . , n}. Solving the dynamic program (9) is not straightforward because the function GSi (ti ) is generally not well-behaved. Thus, to solve this dynamic program, we require additional properties of VSi (ti−1 ). First, we show that the value function has the piecewise structure in (10). Then, we show that VSi (ti−1 ) is convex and non-increasing in ti−1 , and obtain an upper bound on the number of breakpoints. Using these properties, we construct an algorithm to obtain the optimal expected profit and inventory levels. For each Si ⊆ {1, ..., n} and |Si | = n − i + 1,    AS1 i − hX Si (ti−1 ) 0 ≤ ti−1 ≤ aS1 i ,   1  S i i VSi (ti−1 ) = Ak − hX Si (ti−1 ) aSk−1 < ti−1 ≤ aSk i ,  k     0 ti−1 > aSKiSi .

k = 2, . . . , K Si ,

(10)

Here, K Si is the number of breakpoints in the value function, aS1 i , . . . , aSKiSi are the breakpoints,

14

Si AS1 i , . . . , ASKiSi are constants determined by the dynamic programming solution, and X1Si , . . . , XK Si Si refer to sets of products, which are subsets of {1, ..., n}. To simplify the notation, let XK Si +1 be a

dummy product with overage cost and underage cost equal to zero. Also let aS0 i = 0, aSKiSi +1 = ∞ and ASKiSi +1 = 0. Proposition 1.

For each Si ⊆ {1, ..., n}, |Si | = n − i + 1, (a) VSi (ti−1 ) has the piecewise structure

given by (10) where K Si > 0, 0 < aS1 i < ... < aSKij , XkSi ⊆ Si ⊆ {1, ..., n} and ASk i ≥ 0 for k = 1, ..., K Si . (b) VSi (ti−1 ) is continuous in ti−1 .

From Proposition 1, it follows that at each stage of the dynamic program, we need to store Si only the following quantities: (i) the vector of product subsets (X1Si , ..., XK Si ), (ii) the vector

of breakpoints (aS1 i , ..., aSKiSi ), (iii) the first constant AS1 i . By continuity of VSi , we can derive AS2 i , ..., ASKiSi using the recursion: i i i ) ) + hX Si (aSk−1 − hX Si (aSk−1 ASk i = ASk−1

k = 2, ..., K Si .

k

k−1

While VSi (ti−1 ) is continuous in ti−1 , it is not necessarily differentiable at all points. Thus, there are two types of breakpoints in the value function. We say that aSk i is a differentiable breakpoint (DBP) of VSi if VS0 i exists at aSk i , otherwise we say that it is a non-differentiable breakpoint (NDBP). The following lemma is useful for computing the values of the breakpoints at each stage of the dynamic program. Lemma 1.

(a) For each aSk i in (10), VS0 i (aSk i − ) ≤ VS0 i (akSi + ). (b) The local maxima of GSi are

stationary points of GSi . In other words, the NDBPs of V¯Si cannot be local maxima of GSi .

Lemma 1 can be used to show that the value function is always convex in ti−1 . Proposition 2.

VSi (ti−1 ) is convex and non-increasing in ti−1 .

Proposition 1 implies that the optimal expected profit is AS1 1 where S1 = {1, ..., n}. Further, Proposition 1 and Lemma 1 enable us to obtain the optimal inventory vector q∗ in closed form as a Si Si Si function of (X1Si , ..., XK Si ) and (a1 , ..., aK Si ) for all Si ⊆ {1, ..., n}, and establish some properties

15

of the optimal solution. Lemma 2 below states these results. For use in the lemma, we define ISi (ti−1 ) to be the index of the segment of VSi that contains ti−1 , i.e., ISi (ti−1 ) = k if and only i if ti−1 ∈ [aSk−1 , aSk i ). We keep track of these indices to determine the set of products stocked in

the optimal assortment and the sequence in which they run out. From (6), we see that in order to get q∗ , we only need to determine Si∗ if t∗i > t∗i−1 . So let Ss∗i be the i-th different set of products with positive inventory seen by the demand, that is, let 1 ≤ s1 < ... < sm ≤ n be such that {s1 , ..., sm } = {i : t∗i > t∗i−1 }. Lemma 2 shows how to compute Ss∗l for l = 1, ..., m and t∗i for i = 1, ..., n. Si Si Si Given (X1Si , ..., XK Si ) and (a1 , ..., aK Si ),

Lemma 2.

(a) The optimal sets Ss∗1 , ...Ss∗m are obtained as: Let s1 = n − |X1S1 | + 1 and Ss∗1 = X1S1 . Given Ss∗l and index kl = 1 for l = 1 and kl =  ∗  Ss ∗ Ss∗ Ss∗ l−1 l l otherwise | + 1 and Ss∗l+1 = Xkl +1 for l > 1, if kl < K Ssl then let sl+1 = n − |Xkl +1 ISs∗ akl−1 l

m = l. (b) The optimal values t∗i for i = 1, ..., n are given by 0 = t∗0 = ... = t∗s1 −1 .   = t∗sl +1 = ... = t∗sl+1 −1 t∗sl = F −1 θSs∗ ,Ss∗ l l+1   t∗sm = F −1 θSs∗m = t∗sm +1 = ... = t∗n

(c) θSs∗ < θSs∗ l

l+1

, uSs∗ > uSs∗ l

l+1

and uSs∗ + oSs∗ > uSs∗ l

l

l+1

for l = 1, ..., m − 1

+ oSs∗

l+1

for l = 1, ..., m − 1.

(d) The optimal inventory vector is given by qj∗ =

m X

Rj (Ss∗l )(t∗sl − t∗sl−1 )

for j = 1, ..., n.

l=1

According to Lemma 2(a) the set of products stocked in the assortment is given by X1S1 = Ss∗1 since it is the set of products with positive stock in [0, t∗s1 ). There are |X1S1 | = n − s1 + 1 products in the optimal assortment. If demand reaches t∗s1 , the first product (or set of products) runs out 16

and Ss∗2 is the set of products with positive stock in [t∗s1 , t∗s2 ), etc. until demand reaches t∗sm and all the inventory is depleted. Lemma 2(b) provides the optimal t∗i values for i = 1, ..., n as a function of the optimal subsets Si∗ for i ∈ {s1 , ..., sm }. By optimality we have 0 ≤ t∗1 ≤ t∗2 ... ≤ t∗n . In particular we have 0 = t0 = ... = t∗s1 −1 < t∗s1 = t∗s1 +1 = ... = t∗s2 −1 < t∗s2 .... < t∗sm = t∗sm +1 = ... = t∗n . Lemma 2(c) shows that the optimal subsets Ss∗l for l = 1, ..., m are ordered in increasing sequence of newsvendor fractiles, decreasing sequence of underage cost and decreasing sequence of the sum of underage and overage costs. Note that the ordering of the sum of underage and overage costs is implied by the first two orderings. Also, note that there may not be any specific ordering of subsets in terms of overage costs. Intuition for these orderings is provided in §4.3. Lemma 2(d) follows directly from (6).

4.2 Implementation We now give an algorithm to efficiently solve the dynamic program in (8). Algorithm ˆ Set i = n. For all Sn ⊂ {1, ..., n} such that |Sn | = 1 do

 – K Sn = 1, aS1 n = F −1 (θSn ), X1Sn = Sn and AS1 n = hSn F −1 (θSn ) . Also, set a dummy piece with X2Sn = ∅, u∅ = o∅ = 0, AS2 n = 0, and aS2 n = ∞. ˆ While i > 1, let i → i − 1. For all Si ⊂ {1, ..., n} such that |Si | = n − i + 1 do the following 6 steps

– Step 1: ˜ Si = P Si+1 :Si+1 ⊂Si K Si+1 , * K |Si+1 |=n−i

*

{˜ aS1 i , ..., a ˜SK¯iSi }

=

S

Si+1 :Si+1 ⊂Si |Si+1 |=n−i

S S i ˜ Si −1, {a1 i+1 , ..., aKi+1 ¯Sk i ≤ a ˜Sk+1 for k = 1, ..., K Si+1 } such that a

i i S i ˜ Si , let a * For k = 1, ..., K ˜Sk−1 ≤ ti−1 < a ˜Sk , find A˜Sk ∈ {AISi+1

i+1

|Si+1 | = n − i} and

˜ Si X k



S {XISi+1 (ti−1 ) i+1

A˜Sk i − hX˜ Si (ti−1 ) = k

max

: Si+1 ⊂ Si and

: Si+1 ⊂ Si and |Si+1 | = n − i} such that

Si+1 :|Si+1 |=n−i Si+1 ⊂Si

17

(ti−1 )

S

AISi+1

i+1

(ti−1 )

− hX Si+1

IS (t ) i+1 i−1

(ti−1 ).

¯ Si = X ˜ Si and A¯Si = A˜Si . * Set x = 1, X 1 1 1 1 ˜ Si − 1, if X ˜ Si 6= X ˜ Si , then ( a For k = 1, ..., K ¯Sx i = a ˜Sk i , x := x + 1, A¯Sx i = A˜Sk i and k k+1 ¯ xSi = X ˜ Si ). X k ¯ Si = x and a Set K ¯Sx i = a ˜SK˜iSi . – Step 2: Set m = 0 = x ˜0 . ¯ Si + 1 down to 1, repeat For k = K         i * If uSi + oSi > uX¯ Si + oX¯ Si and a ¯Sk−1 < F −1 (θSi ,X¯ Si ) ≤ a ¯Sk i and GSi F −1 (θSi ,X¯ Si ) > GSi (˜ xm ) k

k

k

k

then · m = m + 1, · x ˜m = F −1 (θSi ,X¯ Si ). k

– Step 3: For r = 1, ..., m let xr = x ˜m−r+1 . – Step 4: If GSi (x1 ) ≥ A¯S1 i , then set b1 = 0. Otherwise find b1 < x1 such that GSi (b1 ) = GSi (x1 ). Find xr−1 < br < xr and GSi (br ) = GSi (xr ), for r = 2, ..., m. – Step 5: For r = 1, ..., m, find cr such that a ¯Scri < br ≤ a ¯Scri+1 and kr such that a ¯Skri −1 ≤ xr < a ¯Skri . – Step 6: Set

K Si

m−1 X

¯ Si − km + 1 (cr+1 − kr ) + K

=

c1 + 3m +

(aS1 i , ..., aSKiSi )

=

r=1 Si Si Si i (¯ a1 , ..., a ¯c1 , b1 , x1 , a ¯Sk1i , ..., a ¯Sc2i , b2 , ...., xm , a ¯Skm , ..., a ¯K ¯ Si )

Si (X1Si , ..., XK Si )

=

AS1 i

=

¯ Si , ..., X ¯ cSi , X ¯ Si , Si , X ¯ Si , ..., X ¯ cSi , X ¯ Si , ...., Si , X ¯ Si , ..., X ¯ S¯iS ) (X 1 c1 +1 c2 +1 k1 km 1 2 K i   GS (x1 ) if GS (x1 ) ≥ A¯Si i i 1  A¯Si otw. 1

ˆ Use Lemma 2 to obtain q.

In Step 1 of the algorithm, we compute V¯Si , the maximum of the value functions VSi+1 for |Si+1 | = n − i and Si+1 ⊂ Si . V¯Si has a piecewise structure given by (10) since it is the maximum of ¯ Si , a ¯ Si to denote value functions which have that same piecewise structure. We use A¯Si , X ¯Si and K its respective constants, subsets, breakpoints and number of breakpoints. In Steps 2 and 3, we compute the DBPs of VSi involving subset Si . By Lemma 1(b), these breakpoints are obtained at stationary points of GSi . Therefore, the algorithm looks for potential stationary points in each segment of GSi starting from right to left. The values are retained if they constitute local maxima 18

and there is no greater local maximum on their right. In Step 4, we use a line search to compute the NDBPs of VSi involving subset Si . In Steps 5-6, the new DBPs and NDBPs are merged with the relevant breakpoints of V¯Si to constitute the set of breakpoints of VSi , and are then renumbered. The proof of correctness of the algorithm is provided in the appendix. In order to determine the complexity of Algorithm 1, we need to establish a bound on the number of breakpoints, K Si , in each value function. Lemma 3.

K Si ≤ 22n−2i+1 + 2n−i for |Si | = n − i + 1.

Si The explanation of this result is the following. The sets X1Si , ..., XK Si which appear as indices of

the h function in each segment of the value function in (10) are associated with one of the 2n−i+1 −1 subsets of Si . However, the same subset can occur more than once in one value function. In order to obtain a bound on K Si , we show that no more than C22

n−i+1 −1

values of k can be such that

XkSi = XxSi for some 1 ≤ x < k . To estimate the work required in the algorithm, we assume that the line search used to find the breakpoints of V¯Si in step 1 and the line search to find an NDBP of VSi in Step 4 are both O(1). Proposition 3.

The complexity of Algorithm 1 is O(8n ).

Proof. The maximum number of breakpoints in all 2n − 1 value functions is equal to n X i=1

X

K Si



n X i=1

Si :Si ⊆{1,...,n} |Si |=n−i+1

=

n X

X

22n−2i+1 + 2n−i



Si :Si ⊆{1,...,n} |Si |=n−i+1

Cin 22n−2i+1 + 2n−i



i=1

≤ =

n X

Cin 22n−1 + 2n−1

i=1 2n−1

2



 + 2n−1 2n

= 23n−1 + 22n−1

which is of O(8n ). In practice, our DP algorithm is very fast, e.g., it takes less than 1 second when n = 5. See §5 19

for more details. Also in the special case in which all customers have the same first choice, Honhon (2006) shows that the optimal solution can be obtained with a similar algorithm with a complexity of only O(n2 ).

4.3 Illustrations and insights Example 2.

Consider a problem with five products with cost parameters given in Table 1. Demand

is normally distributed with mean equal to 100 and standard deviation of 10. Table 1: Underage and overage cost parameters of the five products in Example 2 Price, r Cost, c Salvage value, s Underage cost, u Overage cost, o

1 30 12 9 18 3

2 30 17 16.5 13 0.5

3 30 15 13 15 2

4 30 26 23 4 3

5 30 15 14 15 1

Since we have five products, there are 325 possible customer types. Let each customer type be equally likely, i.e., ατ =

1 325

for all τ ∈ T .

The optimal solution is as follows. The optimal assortment is to stock products 1, 3, and 5 so that t∗1 = t∗2 = 0 and S3∗ = {1, 3, 5}. Product 3 would be the first to run out at t∗3 = 99.71 =  F −1 θ{1,3,5},{1,5} . Then the assortment becomes S4∗ = {1, 5}. If demand reaches t∗4 = 107.38 =  F −1 θ{1,5},{5} , product 1 runs out and we are left with S5∗ = {5}. Finally the retailer runs out  of inventory if demand is greater or equal to t∗5 = 115.34 = F −1 θ{5} . Using (3), we obtain that q∗ = (36.49, 0, 32.83, 0, 42.88) for a total expected profit of 1549.4. Figure 2 plots the value of V{1,3,5} as a function of t2 . The value function has five breakpoints, one of which is an NDBP. Between each pair of breakpoints, the set of products remaining in the assortment for D > t2 varies. {1,3,5}

For example, if we decide to set t2 ≤ a1 {1,3,5}

If 99.71 < t2 ≤ a2

= 99.71, then it is optimal to have S3 = {1, 3, 5}.

= 105.85 then it is optimal to have t3 = t2 and S4 = {1, 5}, etc. From

V{1,2,3,4,5} we get that the optimal value of t2 is zero therefore it is optimal to have S3∗ = {1, 3, 5}. Note that S3∗ = {1, 3, 5} for t2 in (0, 99.71] and (105.85,106.22] but not otherwise, which shows that 20

a subset can ‘appear’ multiple times in a value function. The economic rationale behind the optimal solution can be seen from the marginal expected profits associated with each subset of products in the assortment. The marginal expected profit of the t-th unit of demand given S is uS − (uS + oS ) F (t) if S is the assortment seen by the customer when D = t. Here, uS can be considered as the return of subset S because it corresponds to the maximum marginal expected profit of that subset. Similarly, uS + oS can be considered as the risk of subset S, because it determines how quickly the marginal expected profit decreases with t. Graphically, the marginal expected profit for assortment S as a function of t is a decreasing curve with a vertical intercept equal to its return uS , with a horizontal intercept equal to its newsvendor fractile θS , and with a slope proportional to its risk uS + oS . The expected profit obtained from having customers D ∈ [t, t¯) choosing from assortment S is equal to the area below the marginal expected profit curve of S in this interval. For low values of t, it is very likely that the demand will materialize, and therefore, the marginal expected profit of S is very close to its return. On the other hand, if t is large, the likelihood of demand reaching that value is low and the marginal expected profit of S is close to its overage cost, which is the difference between its return and its risk. For this reason, it is generally optimal to offer different assortments for different values of t and this is achieved by letting products run out sequentially. Graphically, this means switching from the marginal expected profit curve of S to the marginal expected profit curve of T , for T ⊂ S ⊆ {1, ...., n}. For low values of t, it is optimal to select an assortment S with a high return since demand is likely to be greater than t. As t increases, the chance of demand being lower than t increases and it becomes more profitable to switch to an assortment with lower risk and lower return. This is exactly what the inequalities of Lemma 2(c) imply: the set of assortments seen by customers, as products get depleted, should be such that their return and risk parameters are non-increasing. In our example, uS3∗ = 15.80 > uS4∗ = 15.74 > uS5∗ = 12.07 and uS3∗ + oS3∗ = 17.78 > uS4∗ + oS4∗ = 17.64 > uS5∗ + oS5∗ = 12.85. Also, θS3∗ = 0.889 < θS4∗ = 0.891 < θS5∗ = 0.938. Figure 3 plots the marginal expected profits for S = {1, 3, 5}, {1, 5} and {5} as a function of t. Note that the intersection point at which the marginal expected profits of {1, 3, 5} and {1, 5} are equal is given by θ{1,3,5},{1,5} and the intersection point at which the marginal expected profits of {1, 5} and {5} are equal is given by θ{1,5},{5} . We see that {1, 3, 5} yields a higher marginal 21

expected profit for 0 ≤ t < θ{1,3,5},{1,5} , then {1, 5} gives the highest marginal expected profit for θ{1,3,5},{1,5} ≤ t < θ{1,5},{5} and finally {5} for t < θ{1,5},{5} . Also the marginal expected profit for {5} is positive until t = θ{5} . Thus, the optimal inventory levels are such that they yield a marginal expected profit curve given by the upper envelope of the positive portions of three curves. Hence, the conditions Lemma 2(c) guarantee that the optimal marginal expected profit is given by the upper envelope of the positive portions of the marginal expected profit curves for Ss∗1 , ..., Ss∗m . Note that the optimal solution is not necessarily such that the marginal expected profit is maximized for each t with respect to S. In our example, the maximum marginal expected profit for t ∈ [102.08, 105.25) is that of S = {1, 2, 5} but the optimal solution is such that demand in that interval sees assortment {1, 5}. The maximum marginal expected profit for t ∈ [105.25, 112.97) is {2, 5} but the optimal solution is such that demand in that interval sees assortment {1, 5} for t ∈ [105.25, 107.38) and {5} for t ∈ [107.38, 112.97), etc. This is why finding the optimal solution by considering all possible sequences of assortments to determine the marginal expected profit is inefficient, compared to our DP algorithm.

5 Numerical Results for discrete demand and random proportions We assumed in our model that the demand is continuous and that there is a constant proportion of customers of each type at all times, i.e., out of the first x customers there are exactly ατ x type-τ customers for all 0 ≤ x ≤ D and τ ∈ T . An alternative assumption is that the demand is discrete and that each customer visiting the store has a probability ατ of being a type-τ customer for all τ ∈ T . This implies that, out of the first x customers, the number of customers of type τ is random with mean ατ x.4 In this case, unlike in the continuous case, knowing the inventory vector q and the total number of customers visiting the store D is no longer enough to determine sales and profit for the retailer. The choices of individual customers impose another source of stochasticity. Hence, this case is more complex to solve and an efficient method to determine the optimal solution is not 4

In particular, it follows a binomial distribution where x is the number of trials and ατ is the probability of success.

22

yet known. In this section, we use our DP algorithm as a heuristic for solving the assortment problem when demand is discrete and the proportion of customers of each type is random. Let demand D have a Poisson distribution with mean µ. Given µ and ατ for all τ ∈ T , we compute the optimal inventory quantity q∗DP using the DP algorithm treating the proportion of customers of each type as constant. We then use q∗DP as the solution under random proportions. While we use Poisson distribution in our numerical analysis, other discrete distributions may be used similarly. We benchmark the performance of the DP heuristic against two previously known heuristics, one based on assortment-based substitution (ABS), the other being the Sample Path Gradient Algorithm (SPGA) of Mahajan & van Ryzin (2001). Under assortment-based substitution, customers decide the product they want to buy from the set of products with positive inventory at time zero, i.e., S1 , but do not substitute if the product they have chosen is out of stock when they visit the store. Assuming Poisson demand and random proportions, the demand for product j across all customer types is a function of S1 and is given by

P [Dj (S1 ) = i] =

k ∞ X µe−µk X k=1

k!

Cik [Rj (S1 )]i [1 − Rj (S1 )]k−i ,

i=1

where µ is the expected number of customers coming to the store. Hence, the one-period profit in (1) becomes:

Π

ABS

(D, q) =

n X

[uj qj − (uj + oj )Lj (D, S1 , qj )] ,

j=1

where S1 = {k ∈ {1, ..., n} : qk > 0}. Since, for a fixed S1 , each term depends solely on qj it is possible to obtain the optimal quantity for each product using the newsvendor critical fractile formula. The optimal solution under assortment-based substitution, denoted q∗ABS , corresponds to the value of S1 that maximizes expected profit and is found by comparing the expected profit for the 2n − 1 possible values of S1 . We note that enumeration must be used to determine S1 since closed form solutions under assortment

23

based substitution are not available in general, but only for two specific non-trivial utility functions, multinomial logit and locational choice. The SPGA is a simulation-based algorithm which provides a heuristic solution to the assortment problem with discrete demand and random proportions. Let q∗SP GA be the inventory vector obtained by this algorithm. All inventory vectors are rounded to the nearest integer. After obtaining the inventory levels for all heuristics, we use simulation to compare their result. For each sample path, we simulate D and randomly generate the type of every customer using the probabilities ατ for all τ ∈ T . Then, given the starting inventory vector for each heuristic and the sample path of types, we determine which product in the assortment is purchased by each incoming customer and compute the total profit. We then estimate expected profit by taking the average profit over 10,000 sample paths of random customer arrivals (we use a common set of random numbers for every inventory vector). Let EΠD (q∗DP ), EΠD (q∗ABS ) and EΠD (q∗SP GA ) denote the expected profits under the DP, ABS and SPGA heuristics, respectively. To obtain q ∗SP GA , we generate another set of sample paths of random numbers using the Poisson and uniform distributions mentioned above. We set the starting inventory vector equal to qj0 =

µ n

for j = 1, ..., n and step sizes equal to 1/k in iteration k (these step size values are the same as used by Mahajan and van Ryzin (2001)). The total number of iterations is an important factor in the performance of the algorithm since it converges to a stationary point of the expected profit function by iteratively improving the current solution using the latest sample path. We report the results of the SPGA after 1,000 and 10,000 iterations. The performance of the SPGA improves with the number of iterations, but the computing time increases proportionally. We evaluate the performance of the heuristics on 1,140 problem instances in a designed experiment with varying parameter values. We compare the heuristics with respect to their expected profit, computation time in seconds (CPT), assortment size (i.e., the number of product with positive inventory), and total inventory level (i.e., the sum of the inventory levels for all products in the assortment). For all heuristics, we also report the percentage gap with respect to the highest expected profit obtained for that problem instance. All heuristics were coded using Matlab 2007b

24

and run on the same computer.5 The DP heuristic gave the highest expected profit or was within 0.5% of the highest expected profit in 94.19% of the instances and had an average percentage gap from the highest expected profit of 0.15%. The ABS heuristic was within 0.5% of the highest expected profit in 80.99% of the cases, with an average percentage gap of 0.62%. The SPGA heuristic with 1,000 and 10,000 iterations was within 0.5% of the highest expected profit in 32.07% and 36.44% instances, respectively, and had an average percentage gap from the highest expected profit of 6.48% and 4.97%, respectively. The DP heuristic gave a higher expected profit than the SPGA in 72.94% of the problem instances and was on average 0.49% worse than the SPGA solution in the remaining cases. We tested the statistical significance of our results by computing the mean and standard deviation of the difference in profit for each pair of heuristics across the 10,000 sample paths. In all the cases we investigated, we found that the ranking of heuristics in terms of expected profit was statistically significant at 1%. The DP heuristic was the fastest heuristic in 65.53% of the instances with an average CPT of 17.64 seconds. The ABS heuristic was the fastest in 26.48% of the cases and had an average CPT of 32.04 seconds. The SPGA with 1,000 iterations was the fastest in the remaining 7.99% of the cases and had an average CPT of 33.86 seconds. The SPGA with 10,000 iterations was faster than DP and ABS in 2.16% cases, and had an average CPT of 361.79 seconds. In the rest of this section, we determine when and why the performances of the heuristics differ substantially. Since there are many parameters in our control, we identify the reasons for performance differences by grouping the results into three scenarios: in Scenario 1, we study the impact of preferences by varying the degree of substitutability and relative popularity of products, in Scenario 2, we vary the price and cost parameters to determine the effect of safety stock, and in Scenario 3, we examine the impact of the parameters related to problem size, specifically the number of products and total mean demand. Tables 3, 4 and 5 present the results for the three scenarios for a subset of the 1,140 problem instances. Complete results are reported in the online appendix. In Scenario 1, we set n = 5 and mean demand µ = 100, 300 and 500 (Table 3 only reports 5

We used a Desktop HP DC7600 with Pentium 4 @3.6GHz and 3GB of RAM. The CPT for SPGA is slightly underestimated because we do not include the time necessary to generate the random numbers in CPT.

25

the results for µ = 100 as they are similar for µ = 300 and 500). In part (a), we vary the degree of substitutability among products by placing restrictions on customer types. We generate 21 problem instances by varying the probabilities ατ in such a way that customers become less and less willing to substitute. With a slight abuse of notation, let |τ | denote the number of different P products in type τ . Let βj = τ ∈T :|τ |=j ατ be the probability that there are j products in the P type of a customer, for j = 1, . . . , n. We fix (βj ; j = 1, . . . , n) such that nj=1 βj = 1, then we set ατ =

βj (n−j)! n!

where j = |τ | so that each type of size j is equally likely. In the first problem

instance, we set (βj ; j = 1, . . . , n) = (0, . . . , 0, 1) so that all customers are willing to buy each product and each of the n! permutations of (1, ..., n) is equally likely as their types. In the last problem instance, we set (βj ; j = 1, . . . , n) = (1, 0, . . . , 0) so that each preference type includes only one product, i.e., product 1 to n with equal probability. We define the degree of substitutability as P the weighted average of βj , nj=1 jβj , so that it decreases from 5 to 1 in the above instances. We fix the underage and overage costs of the five products as shown in the first five columns of Table 2; we choose these values to allow the critical fractiles of the products to vary in a wide range from 0.8 to 0.33. Table 2: Underage and overage cost parameters of products used in Scenarios 1(a), 2(a) and 3 Product index Price, r Cost, c Salvage value, v Underage cost, u Overage cost, o

1 25 5 0 20 5

2 20 5 0 15 5

3 20 10 0 10 10

4 15 10 0 5 10

5 15 5 0 10 5

6 10 5 0 5 5

7 30 20 0 10 20

8 25 10 0 15 10

In Table 3(a), we see that the DP heuristic significantly outperforms the SPGA when the degree of substitutability is high, but marginally underperforms it otherwise. The performance of the ABS heuristic is generally very good. Its assortment is identical to the DP heuristic throughout and inventory levels are slightly higher since it does not take stock-out based substitution into account. In the extreme case of a degree of substitutability of 1, i.e., a case where each preference type includes only one product, the ABS is theoretically optimal as it reduces to having 5 separate newsvendor profit functions. In this case, the SPGA with only 1,000 iterations performs better

26

than the DP algorithm because the DP heuristic stocks too little inventory in total, due to the fact that it assumes fixed proportion whereas the SPGA assumes random proportion of customers of different types. Since the initial inventory (qj0 ) in the SPGA is positive for all products, the algorithm requires less time to converge to a good solution when it is optimal to stock all or most products. On the other hand, when degree of substitutability is high, we see that the SPGA stocks a larger assortment than the DP or ABS heuristics. This suggests that the SPGA can get stuck in a local optimum whereas both DP and ABS heuristics have the ability to compare across local optima and obtain superior solutions. Thus, SPGA gives the worst expected profit when degree of substitutability is high because it stocks too many products. The CPT of the DP and ABS heuristics are comparable to each other and much smaller than that of the SPGA, even with only 1,000 iterations. In Scenario 1(b), we investigate the impact of the relative popularity of each product. We assume that customer choices are made according to the MNL model, which can be obtained using the customer types representation as described in §3.1. We set the preferences (v1 , . . . , v5 ) as shown in Table 3(b) and the utility of the no-purchase option is set at zero, i.e., v0 = 1. Note from van Ryzin and Mahajan (1999) that a preference vector represents more homogeneous preferences than another vector when the former majorizes the latter. Thus, we vary (v1 , . . . , v5 ) keeping their sum constant. To better isolate the impact of changes in relative popularity, the table shows results obtained using equal underage and overage costs for all five products, oj = uj = 5 for j = 1, . . . , 5. Results for varying values of underage and overage costs are reported in the online appendix. In Table 3(b), we see that the DP heuristic performs significantly better than the SPGA when the population is more homogenous. This is because the SPGA needs more iterations to increase the inventory of the most popular product (in this case product 1) and, as a result, it stocks too little inventory in total. As the difference in popularity of products declines (i.e., as the population becomes more heterogeneous), the performance gap between DP and SPGA declines. The ABS heuristic performs the worst for intermediate levels of heterogeneity, with a worst case performance of 6.1% below the expected profit obtained by the DP heuristic. This is so because, for intermediate levels of heterogeneity, the ABS heuristic does not perceive the need to stock more than one product as it does not account for the dynamic nature of substitution. We can observe this phenomenon by 27

comparing the assortment sizes of ABS and DP heuristics. The DP heuristic is the fastest heuristic in all 9 instances. In Scenario 2, we again set n = 5 and µ = 100. In part (a) we keep the same values for the underage cost of each product (see Table 2), but vary the overage cost in [ˆ oj −4, oˆj +5] in increments of 1 where oˆj is the overage cost of product j as given in Table 2. Increasing oj for all j = 1, ..., n gives an incentive to decrease inventory levels, as it would decrease the amount of safety stock in a newsvendor problem.6 We set ατ = 1/|T | for all τ ∈ T so that each customer has equal chance of being of each possible type. We also computed results for other values of T , which are shown in the online appendix. Table 4(a) shows that the DP heuristic gives the highest expected profit in all 10 cases and it is significantly better than the SPGA. The ABS solution gives a slightly lower value of expected profit than the DP heuristic because it stocks more inventory in total, as it does not account for dynamic substitution. Varying the overage cost does not seem to have a major effect on the performance of the three heuristics in this context. As in Scenario 1 (a), the CPT of the DP and ABS heuristics are comparable to each other and much smaller than that of the SPGA, even with 1,000 iterations. In part (b) of Scenario 2, we assume that the choices are made according to the MNL model with the preferences vj varying as in Scenario 1(b). In Table 4(b) we report the results for (v1 , ..., vn ) = (7, 2, 2, 2, 2) as the other 8 vectors gave similar results. Then we assume that each product has an underage cost of 5 and equal overage costs, which we vary between 1 and 9. We also computed results for varying values of underage and overage costs. These are reported in the online appendix. In Table 4(b) we see that the DP heuristic again gives the highest expected profit in all 9 cases and that it is significantly better than the ABS and SPGA, especially for high overage cost values. The ABS heuristic does not perform well when the overage costs are high because it does not see the benefits of increasing the assortment size that come with dynamic substitution. We further see that the ABS stocks too much inventory when the overage cost is low and too little when it is high. The SPGA stocks all five products but in lower quantities than the DP heuristic when the overage 6

Since we have a multi-product inventory problem, we interpret safety stock as the difference between the total stocking quantity and the total mean demand, µ.

28

cost is high. The DP heuristic is the fastest heuristic in all 9 cases. In Scenario 3, we vary mean demand µ between 50 and 500 in increments of 50 and vary the number of products from 2 to 8. We use the same underage and overage cost parameters as in Scenario 1(a). Regarding customer preferences, we consider 7 cases: (1) we set ατ = 1/|T | for all τ ∈ T , (2)-(4) we use the MNL model for (v1 , ..., vn ) equal to (11, 1, ..., 1), (7, 2, ..., 2) and (3, ..., 3) (5)-(7) we set (β1 , ..., βn ) = (1, 0, ..., 0), ( n1 , ..., n1 ) and (0, ...., 0, 1), where βj is defined in Scenario 1. Table 5 reports only the results for case (1) since they are similar in other cases. Table 5 shows that the DP algorithm gives the best solution in all but two cases and that the performance of the SPGA deteriorates quickly as n and µ increase. We also see that the CPT of all heuristics increase with µ and n. The CPT of the DP and ABS heuristics increase more rapidly with respect to n, while that of the SPGA increases rapidly with µ. We see that CPT and solution quality are related to each other for SPGA. For example, when mean demand is 500 and n = 6, the DP heuristic produces a solution which is 19.7% better than the SPGA with 10,000 iterations; furthermore, the DP heuristic takes 4.4 seconds whereas the SPGA takes 601.9 seconds of computational time. This indicates that the SPGA may need more iterations to converge for a larger mean demand than for a smaller mean demand. For n ≤ 7, the DP algorithm is always faster than the SPGA with 10,000 iterations, but for n = 8, it is slower for small µ, i.e., µ ≤ 200. The ABS heuristic always produces a slightly worse solution than the DP algorithm and its CPT becomes significantly higher than that of the DP for n ≥ 7. In conclusion, we identify three drivers of performance for the heuristics based on our numerical analysis: (1) the ability to compare local optima when there are many local optima. The DP and ABS heuristics do this well while the SPGA does not as it is only guaranteed to converge to a local optimum. (2) the ability to correctly determine the safety stock taking stock-out based substitution into account. The SPGA and DP heuristic do this well since they consider the impact of stockout base substitution but the ABS heuristic does not evaluate demand correctly. In particular, the ABS heuristic tends to stock too much when the overage cost is low and too little when it is high. (3) the ability to account for random proportions given an assortment. The SPGA and ABS heuristic incorporate random proportions while the DP approximates demand by fixed proportions

29

of customer types. The results in Tables 1-3 suggest that the most important driver of performance is (1), then (2) followed closely by (3). In other words, the ability to find the correct local optimum of the profit function is the most crucial to obtaining a higher expected profit. This is especially so when products have different prices and costs. In view of these results, we recommend using the DP algorithm if any of the following conditions holds: the mean demand is large, the degree of substitutability is high, the population is homogeneous, or the overage costs are high. When the number of products to stock is large and mean demand is low, the SPGA can provide a quicker solution, but one should use the DP algorithm if performance with respect to expected profit is an issue. Using the ABS heuristic is usually not recommended when customers dynamically substitute since it never significantly improves the solution from the DP algorithm and often requires more computation time, especially when n is large. Only when the degree of substitutability between products is very low, do we recommend using the SPGA or the ABS heuristic. Some further points of comparison between the DP and SPGA heuristics should be noted. Our heuristic always produces the same solution since it is not simulation-based, whereas the solution provided by the SPGA depends on the sequence of random numbers that are generated. The SPGA is guaranteed to converge to a stationary point of the expected profit function (but not necessarily to the global optimum) when demand is discrete and the proportions of customers of each type are random. Our DP algorithm gives the optimal solution when there is a fixed proportion of customers of each type, but its performance is not guaranteed when these proportions are random. Proving performance bounds for the random proportions case can be a subject for future study.

6 Conclusion We have provided a dynamic programming algorithm of O(8n ) complexity to obtain the optimal assortment and inventory levels under dynamic substitution when demand is continuous and the proportions of customers of each type are constant. When demand is discrete and the proportions of customers of each type are random, we showed that the algorithm provides a heuristic procedure

30

that generally gives better results than those obtained using the SPGA and is also much faster, especially when mean demand is large, the degree of substitutability is high, the population is homogeneous, or the overage costs are high. Our results can be applied directly to any product category since our consumer choice model does not put any restrictions on the set of possible customer types. In practice, the number of customer types that a retailer can expect for a given product category is likely to be much less than |T |, the potential limit for n products. Through market research, the retailer could narrow down the list of possible types through the definition of customer profiles, such as the “price-conscious” customer, the “brand-loyal” customer, etc., and compute the associated proportion of each type in the customer population using past sales data. An important managerial insight of our paper is that incorporating dynamic substitution in assortment planning can lead to a significant gain in expected profit, especially when price and cost parameters vary across products, and even when customers are homogeneous in their preferences.

References Alptekinoglu, A., C.J. Corbett. 2005. Mass Customization versus Mass Production: Variety and Price Competition. Working paper. Anderson School of Management. Anderson, S., A. De Palma, J.F. Thisse. 1992. Discrete Choice Theory of Product Differentiation. MIT Press, Cambridge, MA. Anupindi, R., S. Gupta, M. A. Venkataramanan. 2006. Managing Variety on the Retail Space: Using Household Scanner Panel Data to Rationalize Assortments. Working Paper. University of Michigan. Bassok, Y., R. Anupindi, R. Akella. 1999. Single-Period Multiproduct Inventory Models with Substitution. Oper. Res. 47 632-642. Cachon, G., G. Kok. 2005. Category Management and Coordination in Retail Assortment Planning in the Presence of Basket Shopping Consumers. Working Paper. Duke University. Cachon, G., C. Terwiesch, Y. Xu. 2005. Retail Assortment Planning in the Presence of Consumer Search. M&SOM 7(4) 330-346. Chen, F., J. Eliashberg, P. Zipkin. 1998. Customer Preferences, Supply-Chain Costs, and Product-Line

31

Design. In Product Variety Management: Research Advances, T.-H. Ho and C. S. Tang (Eds.), Kluwer Academic Publishers. Chong, J-K., T-H. Ho, C. S. Tang. 2001. A Modeling Framework for Category Assortment Planning. M&SOM, 3(3) 191-210. de Groote, X. 1994. Flexibility and Marketing/Manufacturing Coordination. International Journal of Production Economics 36 153-167. Gaur, V., D. Honhon. 2005. Product Variety and Inventory Decisions Under a Locational Consumer Choice Model, Management Sci. 52(10) 1528-43. Ho, T-H., C. Tang. 1998. Research Advances in Product Variety Management, Kluwer Academic Publishers. Honhon, D. 2006. Assortment Planning and Inventory Management under Consumer-driven Substitution, Ph.D. Dissertation, Stern School of Business, New York University. Hopp, W.J., X. Xu. 2005. Product Line Selection and Pricing with Modularity in Design, M&SOM 7(3) 172-187. Hopp, W.J., X. Xu, 2007. A Static Approximation for Dynamic Demand Substitution with Applications in a Competitive Market. To appear in Operations Research. Kok, A.G., M.L. Fisher. 2004. Demand Estimation and Assortment Optimization under Substitution: Methodology and Application. Working Paper. Fuqua School of Business, Duke University. Kok, A.G., M.L. Fisher, R. Vaidyanathan. 2006. Assortment Planning: Review of Literature and Industry Practice. Working Paper Fuqua School of Business. Lancaster, K. 1990. The Economics of Product Variety: A survey. Marketing Sci. 9 189-206. Lippman, S. A., K. F. McCardle. 1997. The Competitive Newsboy. Oper. Res. 45 54-65. Mahajan, S., G. van Ryzin. 2001. Stock Retail Assortment under Dynamic Consumer Substitution. Oper. Res., 49 334-351. Netessine, S., N. Rudi. 2003. Centralized and competitive inventory models with demand substitution. Oper. Res. 51(2) 329-335. Pentico, D. W. 1974. The Assortment Problem with Probabilistic Demands. Management Sci. 21 (3) 286-290. Pentico, D. W. 1976. The Assortment Problem with Nonlinear Cost Functions. Oper. Res. 24(6) 1129-1141. Pentico, D. W. 1988. The Discrete Two-dimensional Assortment Problem. Oper. Res. 36 (2) 324-332. Ramdas, K. 2003. Managing Product Variety: An Integrative Review and Research Directions. Production and Operations Management 12 79-101. Rao, U., J. Swaminathan, J. Zhang. 2004. Multi-product inventory planning with downward substitution, stochastic demand and setup costs. IIE Transactions 36 59-71.

32

Shaked, M., J. G. Shanthikumar. 1994. Stochastic Orders and Their Applications. Academic Press, San Diego, CA. Smith, S.A, N. Agrawal. 2000. Management of Multi-Item Retail Inventory Systems with Demand Substitution. Oper. Res., 48 50-64. van Ryzin, G., S. Mahajan. 1999. On the Relationship between Inventory Costs and Variety Benefits in Retail Assortments. Management Sci. 45 1496-1509.

Appendix Proof of Proposition 1. (induction on i, the stage for the dynamic program) For Sn ⊆ {1, ..., n} such that |Sn | = 1, we have

VSn (tn−1 ) =

=

max hSn (tn ) − hSn (tn−1 )     hS F −1 (θS ) − hS (tn−1 ) n n n

if tn−1 ≤ F −1 (θSn ),

  0

otherwise.

tn ≥tn−1

(11)

  VSn is continuous in 0, F −1 (θSn ) because hSn is continuous, and it is continuous at F −1 (θSn )  because VSn F −1 (θSn ) equals zero. This proves (b). We obtain (a) by setting K Sn = 1, X1Sn = Sn ,  AS1 n = hSn F −1 (θSn ) and aS1 n = F −1 (θSn ). Now assume that the result is true for VSi+1 for all Si+1 ⊂ {1, ..., n} such that |Si+1 | = n − i. V¯Si (ti ) = max Si+1 :Si+1 ⊂Si VSi+1 (ti ) is continuous as it is the maximum of continuous functions. |Si+1 |=n−i

V¯Si (ti ) also has the piecewise structure in (10) as it is the upper envelope of a finite number of functions, VSi+1 for all Si+1 ⊂ Si such that |Si+1 | = n − i, which have a piecewise structure by Si ¯ Si be the number of breakpoints in V¯S and let A¯Si , X ¯ Si , a ¯ Si induction. Let K i k k ¯k for k = 1, ..., K

respectively denote the constants, the subset indices and the breakpoints of V¯Si . Since by induction S

we have Xk i+1 ⊂ Si+1 for all Si+1 ⊂ Si such that |Si+1 | = n − i and all k = 1, ..., K S+1 , we then ¯ Si ⊂ Si for all k = 1, ..., K ¯ Si . have X k Gsi (ti ) = hSi (ti ) + V¯Si (ti ) is continuous in ti because both hSi and V¯Si are continuous in ti . However, it may have multiple local optima if V¯Si is not concave in ti (which is always the case as

33

shown in Proposition 2). Let x1 denote the highest interior local maximum of GSi (ti ), x2 denote the highest interior local maximum of Gsi (ti ) for ti > x1 , and so on until xm , where xm is the local maxima such that there is no interior local maximum for ti > xm . Since limti →∞ GSi (ti ) = limti →∞ hSi (ti ) = −∞, x1 exists and is finite. Assume that x0 = 0. Figure 1: Example of Gj and Gj with (a) b1 > 0, (b) b1 = 0.

16.5

590

Gj

Gj 580

16

max Gj

x1

15.5

570

b1

x2

15

560 b1

550

x1

14.5

b2 x 2

14

540

13.5

530

13

520 510 0

max Gj

12.5 5

10

15

20

25 t

30

35

40

45

50

0

5

10

15 t

20

25

30

If GSi (x1 ) < GSi (0), find b1 ∈ (0, x1 ) such that GSi (b1 ) = GSi (x1 ), otherwise let b1 = 0. For r = 2, ..., m, find br ∈ (xr−1 , xr ) such that GSi (br ) = GSi (xr ). From the continuity of GSi , there exist unique values of br , r = 1, . . . , m. Figure 1 illustrates the construction of the values of xr and br in two cases, b1 > 0 and b1 = 0. By construction, GSi (ti−1 ) is constant for ti−1 ∈ (br , xr ] for r = 1, . . . , m, being equal to hSi (xr )+ V¯Si (xr ). It is decreasing in segments (xr−1 , br ], r = 1, . . . , m as well as in (xm , ∞), and is equal to

34

GSi (ti−1 ). Thus, the value of VSi (ti−1 ) = GSi (ti−1 ) − hSi (ti−1 ) can be written as

VSi (ti−1 ) =

               

V¯Si (ti−1 )

if 0 ≤ ti−1 ≤ b1 ,

hSi (x1 ) + V¯Si (x1 ) − hSi (ti−1 )

if b1 < ti−1 ≤ x1

V¯Si (ti−1 )

if x1 < ti−1 ≤ b2

              

... hsi (xm ) + V¯Si (xm ) − hSi (ti−1 )

if bm < ti−1 ≤ xm

V¯Si (ti−1 )

if xm < ti−1 .

(12)

For ti−1 ∈ (br , xr ] for r = 1, ..., m, VSi (ti−1 ) is equal to a constant minus hSi (ti−1 ). For ti−1 ∈ (xr , br ] for r = 1, ..., m and ti−1 ∈ (xm , ∞), VSi (ti−1 ) is equal to V¯Si (ti−1 ), which has a piecewise structure with segments equal to a constant minus hX where X ⊂ Si as shown above. Hence, by carefully renumbering the breakpoints and subset indices, we obtain (a). It remains to be shown that VSi is continuous. We prove this result by contradiction. Assume that GSi (ti−1 ) is not continuous at some tˆi−1 . GSi is non-increasing in ti−1 because the feasibility set {ti : ti ≥ ti−1 } gets smaller as ti−1 increases. Therefore, at tˆi−1 , we must have7 ˆ+ ˆ− ˆ GSi (tˆ− i−1 ) > GSi (ti−1 ). From continuity of GSi and above, we have GSi (ti−1 ) = GSi (ti−1 ) and ˆ+ ˆ+ therefore GSi (tˆi−1 ) > GSi (tˆ+ i−1 ). However GSi (ti−1 ) ≥ GSi (ti−1 ) by definition of G, which gives a contradiction because GSi is continuous. Therefore, GSi (ti−1 ) is continuous in ti−1 and so is VSi (ti−1 ) = GSi (ti−1 ) − hSi (ti−1 ).

Proof of Lemma 1. (induction) In this proof, we employ the definitions of the maximum of value functions V¯Si and breakpoints xr and br , r = 1, . . . , m, from the proof of Proposition 1. For    VSn where Sn ⊆ {1, ..., n} and |Sn | = 1, we see in (11) that VS0 n a1Sn − = h0Sn F −1 (θSn ) = 0 =   VS0 n aS1 n + . Assume that the result is true for VSi+1 for all Si+1 ⊂ Si and |Si+1 | = n − i. A ¯ Si of V¯S is either (i) a breakpoint of VS breakpoint a ¯Sk i for some k < K i i+1 for some Si+1 or (ii) the intersection point between two value functions, say VSi+1 and VSˆi+1 . In (i), we have V¯S0 i (¯ aSk i − ) ≤ 7

These limits exist because the function is monotone.

35

V¯S0 i (¯ aSk i + ) by the induction hypothesis. In (ii), suppose that

V¯Si (ti ) =

   VS (ti ) i+1

i for ti ∈ [¯ aSk−1 ,a ¯Sk i )

  V ˆ (ti ) Si+1

i for ti ∈ [¯ aSk i , a ¯Sk+1 )

,

0 then by definition of V¯Si being the maximum of VSi+1 and VSˆi+1 , we have V¯S− (¯ aSk i ) = VS0 i+1 (¯ aSk i ) = i

−hSi+1 (¯ aSk i ) < −hSˆi+1 (¯ aSk i ) = VSˆ0

i+1

0 (¯ aSk i ) = V¯S− (¯ aSk i ) because hS (t) are strictly concave functions of i

t for all S ⊆ {1, ..., n}. Hence for all breakpoints a ¯Sk i of V¯Si we have V¯S0 i (¯ akSi − ) ≤ V¯S0 i (¯ akSi + ). Consider GSi (ti ) = V¯Si (ti ) + hSi (ti ). Since hSi (ti ) is differentiable everywhere, the points where ¯ Si be an NDBP, i.e., GSi (ti ) is not differentiable are the NDBPs of V¯Si . Let a ¯Sk i for some k < K V¯S0 i (¯ aSk i − ) < V¯S0 i (¯ aSk i + ). Thus, G0Si (¯ akSi − ) < G0Si (¯ aSk i + ). This implies that a ¯Sk i cannot be a local maximum of GSi because the right derivative is greater than the left derivative and proves (b). Thus, xr , which are the local maxima of GSi , are not equal to the NDBPs of V¯Si , and we have 0 + 0 G0Si (xr ) = 0. This implies that GS0 i (x− r ) = 0 and GSi (xr ) = GSi (xr ) = 0, which further implies that

0 + VS0 i (x− r ) = VSi (xr ).

(13)

As shown in Proposition 1, GSi is decreasing at br , r = 1, ..., m and GSi is constant in the segments 0 + 0 − (br , xr ), r = 1, ..., m. Therefore, we have GS0 i (b− r ) < GSi (br ) = 0 which implies that VSi (br )
t∗i−1 ,

if Xk i = Si∗

(14) S∗

S∗

Else, i.e., if Xk i ⊂ Si∗ ,

S∗

then t∗i = t∗i−1 and XI i+1 ∗

(t∗ ) S i+1 i−1

∗ . = Xk i ⊆ Si+1

(15)

To see this, note that from (9), we get t∗i = arg maxti ≥t∗i−1 GSi∗ (ti ). There are two cases. (i) If maxti ≥t∗i−1 GSi∗ (ti ) = GSi∗ (t∗i−1 ) then t∗i = t∗i−1 and from the proof of Proposition 1 this implies ∗ ∗ ∗ ∗ (t∗ ∗ ∗ that VSi∗ (t∗i−1 ) = VSi+1 i−1 ), where Si+1 = arg max Si+1 :Si+1 ⊂Si VSi+1 (ti−1 ). Further, VSi (ti−1 ) = ∗ (t∗ VSi+1 i−1 )

implies that

S∗ Xk i

=

S∗ XI i+1 . ∗ S ∗ (ti−1 ) i+1

S∗

|Si+1 |=n−i

S∗

Also by Proposition 1, this implies that Si∗ ⊂ Xk i ⊆

∗ ∗ Si+1 because Xk i is a subset index in the VSi∗ and VSi+1 value functions. (ii) If, on the other hand,

maxti ≥t∗i−1 GSi∗ (ti ) > GSi∗ (t∗i−1 ), then from Proposition 1, we get t∗i = arg maxti ≥t∗i−1 GSi∗ (ti ) = S∗

S∗

ak i > t∗i−1 and Xk i = Si∗ . S∗

Proof of Lemma 3(a): To prove that Ss∗1 = X1 1 , note that t0 = 0 implies that the relevant S∗

S∗

segment of VS1∗ is the first segment, i.e., k1 = 1. If X1 1 = S1∗ , then by (14), t∗1 = a1 1 > 0, which S∗

S∗

S∗

implies that s1 = 1. If, on the other hand, X1 1 ⊂ S1 , then by (15), t∗1 = t0 = 0 and X1 2 = X1 1 ⊆ S∗

S2∗ . We then repeatedly use (15) until X1 1 = Sk∗ which will happen for k = n − |X1Si | + 1. This S∗

implies that 0 = t0 = t∗1 = ... = t∗k−1 and t∗k = a1 k . And therefore the first subset such that t∗i > 0 is Sk∗ , hence s1 = k. Ss∗

l . Applying the definition of the For subsequent subsets, we need to prove that Ss∗l+1 = Xkl +1

DP, given Ss∗l , the next optimal subset is obtained by solving max Ssl +1 :Ssl +1 ⊂Ss∗l VSsl +1 (t∗sl ) = VSs∗ +1 . Thus, by following steps similar to the proof of Ss∗ +1 l

by Ss∗l+1 = XIS

sl +1

(t∗s ) . l

Ss∗1 ,

l

|Ss +1 |=n−sl l

the next product in the optimal solution is given

We need to show that this product can also be obtained from VSs∗ , i.e., its l

index is given by the segment succeeding kl in VSs∗ . To see this, note from the proof of Proposition 2 l

that V

Ss∗ l

(t∗sl )

=V

Ss∗ +1 l

(t∗sl )

because

t∗sl

Ss∗ +1

is a local maximum of GSs∗ . Therefore, XI l

l (t∗s ) ∗ Ss l l +1

Ss∗

l = Xkl +1 ,

which proves (a). Ss∗

Proof of Lemma 3(b): By Lemma 1(b), akl l is a stationary point of GSs∗ , therefore it is a DBP of VSs∗ and l

Ss∗ − (akl l ) l

VS0 s∗

=

Ss∗ (akl l ) l

−h0Ss∗

=

Ss∗ + (akl l ) l

VS0 s∗

37

=

−h0

∗ Ss l l +1

Xk

Ss∗ (akl l ).

l

This implies that

Ss∗

akl l = F −1 (θ

∗ Ss l l +1

Ss∗ ,Xk l

). From the above this is equal to F −1 (θSs∗ ,Ss∗ l

l+1

). This proves (b).

Ss∗

Proof of Lemma 3(c): Since akl l is a local maximum, we have h00Ss∗ (t) − h00Ss∗ l

(t) ≥ 0, that

l+1

≥ 0, this implies that uSs∗ > uSs∗ . Finally l+1 l   −1 ¯ θSs∗ as it is then the sum of two decreasing GSs∗ (t) = hSs∗ (t) + VSs∗ (t) is decreasing for t > F l l l l   ∗ functions. It follows that any local maximum of GSs should be less than F −1 θSs∗ , so that l l     −1 −1 uSs∗ l

l

l

l+1

+ oSs∗

l+1

l+1

. Since θSs∗ ,Ss∗ l

l+1

l

l

l+1

(c). Proof of Lemma 3(d): Follows directly from (3).

Proof of Algorithm 1. We need to show that (i) in Step 1, it is enough to look at F −1 (θS ,X¯ Si ) i

k

¯ Si + 1 when searching for the local maxima x1 , ..., xm of Gs as defined in the proof of for k = 1, ..., K i Proposition 1; (ii) the values of x1 , ..., xm thus obtained satisfy the property that x1 is the highest interior maximum of GSi , x2 is the highest interior maximum of GSi for ti > x1 , and so on. The remaining steps follow directly from the proof of Proposition 1. To find the local maxima of GSi , we write GSi as:

GSi (ti ) =

            

A¯S1 i − hX¯ Si (ti ) + hSi (ti )

0 ≤ ti ≤ a ¯S1 i

A¯S2 i − hX Si (ti ) + hSi (ti )

¯S2 i a ¯S1 i < ti ≤ a

1

2

(16)

...     Si  A¯SK¯iSi − hX¯ Si (ti ) + hSi (ti ) a ¯K ¯SK¯iSi  ¯ Si −1 < ti ≤ a   S ¯ i K     h (t ) Si ti > a ¯K Si i ¯ Si

In this expression, we used Proposition 1 to expand V¯Si as a piecewise function. Lemma 1 implies ¯ Si such that h0 (x) − that if x is a local maximum of GSi , then G0Si (x) = 0. Thus, there exists X Si k h0¯ Si (x) = 0, so that x = F −1 (θS ,X¯ Si ). Finally, this point is a local maximum if h00Si (x) − h00¯ Si (x) ≥ Xk

i

Xk

k

0, that is if uSi + oSi > uX¯ Si + oX¯ Si . This proves (i). k

k

The ordering of x1 , ..., xm in (ii) follows from the facts that the algorithm searches for local i ¯ Si down to 1, i.e., from right to left, and the maxima in intervals (¯ aSk−1 ,a ¯Sk i ] for k going from K

38

  condition GSi F −1 (θS ,X¯ Si ) > GSi (˜ xm ) ensures that the value of GSi at the candidate value i

F −1 (θ

¯ Si Si ,X k

k

) is greater than all the local maxima found in (¯ aSk i , ∞).

Consider VSi . By Proposition 1, we know that XkSi ⊆ Si for k = 1, ..., K Si .

Proof of Lemma 3.

Since |Si | = n − i + 1, there are at most 2n−i+1 − 1 possible values for XkSi . By Lemma 1, we know that VS0 i (aSk i − ) = −h0

S

Xk i

(aSk i ) ≤ −h0

S

i Xk+1

(aSk i ) = VS0 i (aSk i + ) where the inequality is strict if aSk i is an

NDBP. Also, −hX Si (t) = −uX Si + (uX Si + oX Si )F (t) for k = 1, ..., K Si are increasing functions on k

k

k

k

t ∈ [0, θX Si ) and are such that a pair of function intersects at most once. k

Hence, the problem of finding the maximum value for K Si is equivalent to finding the maximum number of breakpoints for an increasing, possibly discontinuous, function equal to −h0S (t) for some S ⊆ Si between each pair of breakpoints for all t ∈ [0, maxS⊆Si θS ]. Graphically we have 2n−i+1 − 1 different h0S curves and we need to “follow” one curve at a time and maximize the number of breakpoints where a breakpoint can either be a kink if we “switch” from one h0 function to another at their intersection point, or a point of discontinuity if we “jump up” from an h0 function to another one which is higher. Let m = 2n−i+1 − 1. There is at most C2m intersection points on the graph. Suppose that this is the case so that exactly 2 curves intersect at each intersection point. We say that the h0Sˆ function is of rank x at t if it is such that h0Sˆ (t) is the x-th highest value of {h0S (t) : S ⊆ Si }. Let r(t) denote the rank of the h0 function that we follow at t. In order to maximize the number of breakpoints, we should start on the curve with the lowest value at zero, i.e., h0S˜ such that uS˜ = maxS⊆Si uS , hence r(0) = m. From there we can either follow that curve until its first intersection point with another curve, denoted by b1 , or jump up to the curve which is right above.8 Switching curves at the intersection point b1 creates a new breakpoint + but does not affect the value of r(t), i.e., r(b− 1 ) = r(b1 ). Jumping to the curve right above at some

tˆ ∈ (0, b1 ] creates a new breakpoint but decreases the value of r(t), i.e., r(tˆ) = r(tˆ) − 1. In general, every intersection point between two curves is an opportunity to create a new 8

Jumping up to any other curve would not maximize the number of breakpoints as we could always make successive jumps and create more breakpoints.

39

breakpoint without affecting r(t). Since there are are most C2m intersection points, it is possible to create at most C2m such breakpoints. If one switches curves at every intersection point, then r(t) only changes when jumping to the curve above, which can be done at most m − 1 times. Not switching curves at an intersection point does not create a new breakpoint but can cause r(t) to go up by one. In this case the maximum number of discontinuity points increases by one, to m. In general if one switches curves at all but k intersection points, then the maximum number of discontinuity points is m − 1 + k, for k ≤ C2m . In all cases, the maximum number of breakpoints (either kinks for switching curves, or discontinuity points) is equal to C2m + m − 1. Adding the final breakpoint when the last curve hits zero, we obtain a maximum number of breakpoints equal to C2m + m =

m(m+1) . 2

We obtain the result by substituting back for m.

40

Figure 2: V{1,3,5} (t2 ) in Example 2

150

← {1,3,5}

V{1,3,5}

100

50 ← {1,5}

{1,3,5}→ ← {3,5} 0

100

← {5}

106 108

115

t2

Figure 3: Marginal expected profit functions for {1, 3, 5}, {1, 5} and {5} in Example 2

16 {1,2,3} {1,5} {5}

14 ← {1,3,5} is best Marginal expected profit

12 10 8 6

← {1,5} is best

4 2 0

← {5} is best 100 t

41

107

115

42

(β1 , · · · , βn ) (0,0,0,0,1) (0,0,0,0.2,0.8) (0,0,0.2,0,0.8) (0,0.2,0,0,0.8) (0.2,0,0,0,0.8) (0.2,0,0,0.2,0.6) (0.2,0,0.2,0,0.6) (0.2,0.2,0,0,0.6) (0.2,0.2,0,0.2,0.4) (0.2,0.2,0.2,0,0.4) (0.2,0.2,0.2,0.2,0.2) (0.2,0.2,0.2,0.4,0) (0.2,0.2,0.4,0.2,0) (0.2,0.4,0.2,0.2,0) (0.4,0.2,0.2,0.2,0) (0.4,0.2,0.4,0,0) (0.4,0.4,0.2,0,0) (0.6,0.2,0.2,0,0) (0.6,0.4,0,0,0) (0.8,0.2,0,0,0) (1,0,0,0,0)

EΠD 1926 1848 1770 1692 1614 1535 1456 1378 1368 1331 1328 1324 1287 1241 1178 1174 1165 1102 1094 1064 1045 % gap 0 0 0 0 0 0 0 0 0 0 0 0 0.1 0.4 0.2 0.3 0 0 0.2 0.5 0.7

size 1 1 1 1 1 1 1 1 2 2 2 2 2 3 4 4 4 4 4 5 5

inv. 108 104 100 95 91 87 82 78 88 86 86 86 84 92 96 95 97 92 92 103 103

DP (v1 , · · · , vn ) EΠD % gap CPT† size inv. (11,1,1,1,1) 426* 0 0.7 5 93 (10,2,1,1,1) 426* 0 0.6 5 92 (9,2,2,1,1) 426* 0 0.6 5 94 (8,2,2,2,1) 426* 0 0.6 5 94 (7,2,2,2,2) 426* 0 0.6 5 92 (6,3,2,2,2) 426* 0 0.6 5 95 (5,3,3,2,2) 426* 0 0.6 5 93 (4,3,3,3,2) 426* 0 0.6 5 95 (3,3,3,3,3) 426* 0 0.6 5 95 † in seconds. * Expected profit is rounded and varies between 425.76 and 425.83. All pairwise comparisons of expected profit are statistically significant at 1%.

dg sub. 5 4.8 4.6 4.4 4.2 4 3.8 3.6 3.4 3.2 3 2.8 2.6 2.4 2.2 2 1.8 1.6 1.4 1.2 1

DP CPT† 1.1 0.9 0.9 0.9 0.9 1.0 0.9 0.9 1.3 1.4 1.5 1.8 1.9 2.2 2.1 2.3 2.4 2.5 2.7 2.7 1.7

inv. 104 104 100 98 91 90 92 90 93 96 98 93 95 98 95 96 95 98 102 104 107

inv. 84 87 88 91 90 90 92 92 92

SPGA (1000) % gap CPT† size 9.5 12.1 2 7.3 12.1 2 7.4 12.1 3 7.4 12.1 3 7.9 12.0 4 7 12.4 4 5.2 12.0 4 3 12.0 4 5 12.1 4 3.7 12.1 4 4.2 11.9 4 2.5 11.8 4 1.3 11.9 4 0 11.8 4 0.9 11.8 5 0 11.8 4 3.3 11.6 5 0 11.6 5 0.3 11.7 5 0 11.6 5 0.1 11.6 5

(b) using MNL, varying the heterogeneity of preferences ABS SPGA (1000) EΠD % gap CPT† size inv. EΠD % gap CPT† size 419 1.6 1.0 1 91 381 10.6 14.2 5 416 2.3 1.0 1 91 393 7.7 14.1 5 412 3.3 1.0 1 90 400 6.1 14.1 5 407 4.5 1.0 1 89 410 3.8 14.3 5 400 6.1 1.0 1 87 415 2.6 14.1 5 410 3.8 1.0 2 90 418 1.9 14.1 5 417 2.1 1.0 3 91 421 1.2 14.6 5 413 3.1 1.0 3 90 424 0.5 14.3 5 419 1.6 1.0 4 92 426 0 14.2 5

EΠD 1926 1848 1770 1692 1614 1535 1456 1378 1364 1329 1327 1324 1288 1234 1169 1168 1162 1102 1096 1068 1052

(a) varying the degree of substitutability ABS % gap CPT† size inv. EΠD 0 1.0 1 108 1743 0 1.0 1 104 1713 0 1.0 1 100 1639 0 1.0 1 96 1567 0 0.9 1 92 1487 0 1.0 1 87 1427 0 0.9 1 83 1380 0 0.9 1 79 1336 0.3 1.0 2 91 1300 0.2 0.9 2 89 1282 0.1 0.9 2 89 1272 0 0.9 2 89 1291 0 0.9 2 87 1271 1 0.9 3 99 1246 0.9 0.8 4 101 1169 0.8 0.8 4 101 1177 0.3 0.8 4 101 1127 0 0.8 4 97 1102 0 0.8 4 97 1093 0.1 0.7 5 107 1069 0 0.7 5 107 1051

Table 3: Expected profit, percent gap with respect to highest expected profit, computation time, assortment size and total inventory quantity for the four heuristics in Scenario 1

EΠD 383 395 403 411 416 419 422 425 426

EΠD 1772 1727 1678 1602 1514 1488 1423 1353 1316 1292 1280 1298 1274 1246 1180 1177 1159 1102 1094 1069 1052

SPGA (10,000) % gap CPT† size 10.1 144.9 5 7.3 144.1 5 5.4 144.4 5 3.5 144.2 5 2.3 144.3 5 1.6 143.4 5 0.9 145.0 5 0.2 145.2 5 0 144.1 5

SPGA (10,000) % gap CPT† size 8 123.3 2 6.5 123.7 2 5.2 123.4 2 5.3 122.8 2 6.2 122.6 2 3.1 127.6 3 2.3 122.0 4 1.8 121.7 4 3.8 122.2 3 2.9 122.0 4 3.6 121.0 4 2 120.8 4 1.1 120.5 4 0 120.4 4 0 119.9 4 0 119.6 4 0.5 119.0 4 0 119.6 5 0.2 118.6 5 0 118.6 5 0 118.3 5

inv. 85 86 88 91 91 92 93 93 93

inv. 105 105 102 98 92 89 89 88 92 93 96 91 94 99 95 97 96 100 101 104 107

43

D

EΠ 1499 1486 1474 1465 1456 1448 1441 1434 1428 1422

% gap 0.1 0 0.1 0 0 0 0 0 0 0

DP CPT† 0.8 0.8 0.7 0.7 0.6 0.6 0.6 0.5 0.4

DP CPT† 0.9 0.6 0.6 1.6 0.8 0.5 0.5 1.3 0.8 0.5 size 1 1 1 1 1 1 1 1 1 1

inv. 89 86 85 83 82 82 81 80 80 79

D

EΠ 1500 1487 1475 1465 1456 1448 1441 1434 1428 1422

D

inv. 108 100 97 94 91 88 84 81 77

(v1 , ·, vn ) = (7, 2, 2, 2, 2) SPGA (1000) inv. EΠD % gap CPT† size 120 814 0.9 12.2 5 109 699 2.5 12.1 5 100 601 2.6 12.1 5 93 506 2.7 12.1 5 87 414 2.7 12.1 5 85 324 2.6 12.1 5 82 237 2.9 12.1 5 80 153 3 12.2 5 76 73 2.7 12.1 5

(b) with the MNL model, where ABS % gap CPT† size 0.9 1.0 5 0.6 1.0 5 2.4 0.9 3 3.7 0.9 2 6 0.9 1 5.9 0.8 1 5.9 0.8 1 5.9 0.8 1 5.2 0.8 1

inv. 97 94 94 93 91 90 89 88 86 86

(a) with all customer types equally likely ABS SPGA (1000) % gap CPT† size inv. EΠD % gap CPT† size 0 1.0 1 91 1432 4.6 13.1 4 0 0.6 1 88 1393 6.3 8.7 4 0 0.6 1 86 1395 5.4 8.7 4 0 1.8 1 84 1402 4.3 26.3 4 0 0.9 1 83 1399 4 10.7 4 0 0.6 1 82 1384 4.4 8.7 4 0 0.6 1 82 1382 4.1 8.9 4 0 1.4 1 81 1375 4.1 22.6 4 0 0.9 1 80 1392 2.5 10.7 4 0 0.6 1 80 1385 2.6 8.7 4

(o1 , · · · , on ) EΠ % gap size inv. EΠ (1,1,1,1,1) 822 0 5 105 815 (2,2,2,2,2) 717 0 5 103 713 (3,3,3,3,3) 617 0 5 98 602 (4,4,4,4,4) 520 0 5 97 501 (5,5,5,5,5) 425 0 5 92 399 (6,6,6,6,6) 333 0 5 91 313 (7,7,7,7,7) 244 0 5 89 230 (8,8,8,8,8) 158 0 5 84 149 (9,9,9,9,9) 75 0 5 82 71 † in seconds. All pairwise comparisons of expected profit are statistically significant at 1%.

(o1 , · · · , on ) (1,1,6,6,1) (2,2,7,7,2) (3,3,8,8,3) (4,4,9,9,4) (5,5,10,10,5) (6,6,11,11,6) (7,7,12,12,7) (8,8,13,13,8) (9,9,14,14,9) (10,10,15,15,10)

D

EΠD 816 701 603 507 414 325 237 153 73

EΠD 1473 1435 1439 1443 1437 1423 1419 1410 1418 1412

Table 4: Expected profit, percent gap with respect to highest expected profit, computation time, assortment size and total inventory quantity for the four heuristics in Scenario 2

SPGA (10,000) % gap CPT† size 0.8 123.1 5 2.3 123.2 5 2.3 123.2 5 2.5 123.1 5 2.5 123.1 5 2.5 123.2 5 2.8 123.3 5 3 123.3 5 2.5 124.6 5

SPGA (10,000) % gap CPT† size 1.9 100.7 3 3.5 88.1 4 2.5 100.4 4 1.5 463.0 3 1.3 93.3 3 1.8 88.3 3 1.5 96.6 3 1.7 540.7 3 0.7 93.2 2 0.7 88.1 2

inv. 109 100 97 95 91 88 86 81 77

inv. 96 94 91 91 90 90 89 88 88 87

44

DP ABS n µ EΠD % gap CPT† size Inv. EΠD % gap CPT† 2 50 819 0.1 0.1 2 56 818 0.2 0.1 2 100 1668 0 0.1 2 107 1665 0.2 0.1 2 150 2528 0 0.1 2 159 2525 0.1 0.1 2 200 3393 0 0.1 2 210 3390 0.1 0.1 2 250 4254 0 0.1 2 261 4251 0.1 0.2 2 300 5115 0 0.1 2 313 5111 0.1 0.2 2 350 5985 0 0.1 2 364 5981 0.1 0.2 2 400 6840 0 0.1 2 414 6835 0.1 0.3 2 450 7709 0 0.1 2 466 7703 0.1 0.3 2 500 8579 0 0.1 2 517 8573 0.1 0.3 3 50 765 0 0.1 2 51 764 0.1 0.1 3 100 1558 0 0.2 2 100 1556 0.1 0.2 3 150 2359 0 0.2 2 149 2354 0.2 0.2 3 200 3167 0 0.2 2 196 3163 0.1 0.3 3 250 3969 0 0.2 2 244 3964 0.1 0.4 3 300 4773 0 0.2 2 292 4768 0.1 0.5 3 350 5586 0 0.2 2 339 5581 0.1 0.5 3 400 6386 0 0.2 2 387 6380 0.1 0.6 3 450 7195 0 0.2 2 434 7187 0.1 0.7 3 500 8009 0 0.2 2 482 8002 0.1 0.8 4 50 770 0 0.4 2 52 767 0.4 0.2 4 100 1566 0.1 0.4 2 101 1563 0.3 0.4 4 150 2374 0 0.4 2 149 2368 0.3 0.5 4 200 3184 0 0.4 2 197 3180 0.1 0.7 4 250 3992 0 0.5 2 245 3986 0.2 0.9 4 300 4800 0 0.5 2 293 4791 0.2 1.1 4 350 5616 0 0.5 2 340 5608 0.1 1.2 4 400 6421 0 0.5 2 388 6411 0.2 1.4 4 450 7231 0 0.5 2 436 7221 0.1 1.6 4 500 8050 0 0.5 2 484 8040 0.1 1.7 5 50 785 0 1.0 2 52 781 0.5 0.6 5 100 1598 0 1.1 2 102 1593 0.3 1.0 5 150 2420 0 1.2 2 151 2413 0.3 1.4 5 200 3246 0 1.1 2 200 3237 0.3 1.8 5 250 4067 0 1.2 2 248 4057 0.2 2.1 5 300 4889 0 1.4 2 297 4880 0.2 2.5 5 350 5721 0 1.5 2 346 5709 0.2 2.8 5 400 6539 0 1.3 2 395 6527 0.2 3.2 5 450 7366 0 1.3 2 443 7354 0.2 3.5 5 500 8198 0 1.3 2 491 8184 0.2 4.0 6 50 799 0 3.8 2 53 788 1.4 3.5 6 100 1624 0 4.1 2 102 1600 1.5 4.3 6 150 2458 0 4.3 2 153 2449 0.4 5.0 6 200 3296 0 4.1 2 203 3286 0.3 5.8 6 250 4129 0 4.3 2 251 4118 0.3 6.5 6 300 4965 0 4.6 2 301 4951 0.3 7.3 6 350 5807 0 4.6 2 350 5793 0.2 8.0 6 400 6637 0 4.6 2 400 6620 0.3 8.8 6 450 7477 0 4.5 2 448 7460 0.2 9.5 6 500 8320 0 4.4 2 497 8303 0.2 10.4 7 50 910 0 25.1 2 54 908 0.2 39.2 7 100 1857 0 26.5 2 105 1851 0.3 40.8 7 150 2815 0 26.6 2 155 2809 0.2 42.3 7 200 3779 0 26.2 2 206 3772 0.2 43.8 7 250 4738 0 27.1 2 255 4730 0.2 45.3 7 300 5698 0 30.0 2 305 5687 0.2 47.0 7 350 6669 0 30.7 2 354 6662 0.1 48.4 7 400 7623 0 30.3 2 405 7614 0.1 49.9 7 450 8589 0 31.0 2 454 8578 0.1 51.5 7 500 9561 0 30.0 2 503 9549 0.1 52.9 8 50 916 0 323.2 2 54 911 0.5 607.3 8 100 1870 0 330.5 2 105 1864 0.3 641.4 8 150 2834 0 329.7 2 156 2827 0.2 613.7 8 200 3803 0 326.6 2 207 3797 0.2 618.0 8 250 4769 0 329.5 2 257 4762 0.1 619.7 8 300 5735 0 332.8 2 307 5726 0.2 622.9 8 350 6712 0 331.0 2 357 6703 0.1 626.6 8 400 7671 0 332.1 2 407 7661 0.1 630.8 8 450 8644 0 332.4 2 457 8633 0.1 642.2 8 500 9623 0 332.3 2 507 9611 0.1 641.0 † in seconds. All pairwise comparisons of expected profit are statistically significant at 1%. size 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 1 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2

Inv. 57 111 163 215 266 318 370 421 473 524 53 103 153 201 250 298 346 394 442 490 54 104 153 202 250 300 348 396 444 492 55 105 156 206 255 304 354 402 451 500 47 91 158 208 258 308 358 408 457 507 55 107 157 208 258 309 358 408 458 508 56 107 158 209 259 309 360 410 460 511

EΠD 819 1668 2528 3393 4253 5113 5986 6840 7705 8579 761 1453 2259 2987 3742 4468 5168 5953 6711 7407 770 1557 2265 3012 3592 4269 4856 5342 6134 6766 785 1496 2229 2953 3521 4072 4762 5279 5978 6558 798 1615 2249 2863 3576 4234 4780 5153 5870 6342 884 1779 2662 3479 4145 4808 5692 6144 6948 7580 908 1764 2597 3498 4124 4942 5701 6298 7032 7724

SPGA (1000) % gap CPT† size 0.1 6.1 2 0 11.4 2 0 17.0 2 0 22.3 2 0 27.9 2 0 33.4 2 0 38.5 2 0 43.9 2 0.1 49.5 2 0 54.9 2 0.5 6.2 3 6.7 15.6 3 4.2 17.2 3 5.7 22.9 3 5.7 28.4 3 6.4 33.8 3 7.5 39.3 3 6.8 44.8 3 6.7 50.5 3 7.5 55.9 3 0 6.2 2 0.6 11.8 3 4.6 17.3 3 5.4 23.1 3 10 28.9 4 11.1 34.4 4 13.5 39.9 4 16.8 45.7 4 15.2 51.2 4 16 56.9 4 0 6.3 2 6.4 12.3 3 7.9 17.8 4 9 23.5 4 13.4 29.6 5 16.7 35.1 5 16.8 40.7 5 19.3 46.5 5 18.8 52.3 5 20 58.2 5 0.1 6.6 2 0.6 12.4 3 8.5 18.2 4 13.1 24.3 4 13.4 30.3 5 14.7 36.0 5 17.7 41.8 6 22.4 47.8 6 21.5 53.7 6 23.8 59.6 6 2.9 7.1 3 4.2 13.1 3 5.4 19.1 3 7.9 25.3 4 12.5 31.1 5 15.6 37.1 5 14.6 43.0 5 19.4 48.9 7 19.1 55.0 7 20.7 60.9 7 0.9 11.4 3 5.7 17.2 4 8.4 23.2 4 8 29.5 4 13.5 35.6 6 13.8 41.6 6 15.1 47.8 6 17.9 53.8 7 18.6 59.4 8 19.7 65.3 8 Inv. 55 108 159 211 265 315 365 416 469 516 51 101 152 202 254 305 354 406 456 510 52 98 148 196 247 295 347 396 444 496 52 98 148 198 247 298 345 399 447 498 53 99 148 198 246 297 343 394 442 496 54 105 153 204 253 302 349 395 446 498 54 104 155 206 254 303 353 399 448 499

EΠD 820 1668 2528 3394 4254 5115 5986 6840 7708 8580 765 1484 2285 3016 3770 4496 5199 5983 6738 7439 770 1567 2305 3055 3754 4461 5050 5537 6327 6957 785 1549 2318 3043 3651 4305 4993 5509 6208 6789 799 1624 2349 2962 3705 4450 5103 5494 6207 6683 907 1802 2685 3589 4348 5016 5904 6516 7314 8115 916 1806 2637 3541 4330 5158 5914 6546 7360 8180

Table 5: Expected profit, percent gap with respect to highest expected profit, computation time, assortment size and total inventory quantity for the four heuristics in Scenario 3 SPGA (10,000) % gap CPT† size 0 61.1 2 0 115.3 2 0 169.1 2 0 223.9 2 0 278.3 2 0 332.8 2 0 386.1 2 0 440.1 2 0 494.1 2 0 549.1 2 0 65.9 2 4.7 145.7 3 3.1 172.9 3 4.8 230.3 3 5 283.3 3 5.8 338.5 3 6.9 394.5 3 6.3 449.3 3 6.4 505.6 3 7.1 560.9 3 0 63.6 2 0 120.1 2 2.9 176.0 3 4.1 232.4 3 6 287.9 3 7.1 345.3 4 10.1 401.1 4 13.8 457.9 4 12.5 513.7 4 13.6 570.8 4 0 65.6 2 3.1 123.1 3 4.2 181.1 4 6.3 237.4 4 10.2 296.6 4 11.9 353.0 5 12.7 410.7 5 15.8 468.3 5 15.7 525.1 5 17.2 584.4 5 0 68.1 2 0 128.0 2 4.4 185.4 4 10.1 244.7 4 10.3 305.2 4 10.4 363.5 4 12.1 422.0 4 17.2 481.7 6 17 539.2 6 19.7 599.7 6 0.3 74.1 3 3 134.1 3 4.6 193.4 3 5 254.2 3 8.2 313.0 5 12 373.6 5 11.5 441.1 5 14.5 492.7 5 14.8 553.2 5 15.1 614.1 7 0 113.3 2 3.4 174.9 4 7 252.9 4 6.9 296.2 4 9.2 357.6 5 10.1 418.0 6 11.9 479.5 6 14.7 539.9 6 14.9 594.7 6 15 656.4 6 Inv. 55 108 159 211 263 314 365 416 468 517 52 102 150 202 252 303 354 404 454 508 52 100 148 198 246 292 345 394 442 493 52 97 147 197 249 296 344 395 443 496 53 102 147 196 249 298 344 393 442 494 53 103 155 204 251 301 351 401 452 496 54 103 153 205 253 301 351 403 452 503