Robust Price Optimization of Multiple Products under Interval Uncertainties
Abstract
In this paper, we solve the multiple product price optimization problem under interval uncertainties of the price sensitivity parameters in the demand function. The objective of the price optimization problem is to maximize the overall revenue of the firm where the decision variables are the prices of the products supplied by the firm. We propose an approach that yields optimal solutions under different variations of the estimated price sensitivity parameters. We adopt a robust optimization approach by building a data-driven uncertainty set for the parameters, and then construct a deterministic counterpart for the robust optimization model. The numerical results show that two objectives are fulfilled: the method reflects the uncertainty embedded in parameter estimations, and also an interval is obtained for optimal prices. We also conducted a simulation study to which we compared the results of our approach. The comparisons show that although robust optimization is deemed to be conservative, the results of the proposed approach show little loss compared to those from the simulation.
1 Introduction
In today’s marketplace, price is considered as a key driver for optimizing revenue as it significantly affects the demand on products. Thus, the price optimization problem has long been studied as a significant decision-making problem for companies. There are numerous books, e.g., Phillips [23], Talluri and van Ryzin [27] and Özer and Phillips [22], that provide more comprehensive reviews on various price optimization models.
In this paper, we present a data-driven robust optimization (RO) based approach for the multi-product price optimization problem (MPPO) for a food supplier. The objective of the problem is to maximize the revenue of selling the products supplied by the firm while the decision variables are the prices of these products. We assume that for each product, a response function describes the demand for the product that depends on the price of the product itself as well as on the corresponding prices of its complementary and substitute products. The parameters of the demand function, which reflect the consumers’ demand sensitivity to prices are typically estimated through various statistical approaches with associated confidence intervals. In practice, the price optimization problem is solved by assuming that the mid-points of the confidence intervals as the point estimators of the parameters to compute an approximation of the demands and the associated revenues at various prices. However, the solution obtained by this approximate problem may not reflect well the uncertainty involved in the parameter estimates.
In most of the existing studies, the demand functions with price variables are built with parameters whose values are obtained either from a priori knowledge or from exact estimates using existing data. Nevertheless, in practice the estimates of these parameters may take significantly different values in different circumstances, i.e., different customers may have different sensitivities to price, or customers may have different price reactions at different periods of the year. By neglecting such uncertainties, the demand functions may result in potentially inaccurate or even incorrect demand estimates at various prices. As suggested by a few researchers, e.g., Nahmias [21], Simchi-Levi et. al. [25] and Sheffi [24], many point estimates used in modern operations management decision models are wrong or meaningless. Instead, they recommend that the point estimates be replaced by their corresponding ranges to handle uncertainties.
Although in the field of revenue management, most conventional approaches aim to maximize the expected value of the revenue (e.g. Agrawal and Seshadri [1]), the risk-neutrality of the expected value may not well capture risk preferences of decision makers in many applications. Therefore, Levin et. al. [17], among the others, proposed the use of value-at-risk constraints to handle uncertainty in a more risk-averse fashion. However, one needs to estimate a probability distribution for the uncertain value and this often becomes a challenging task in practice. Furthermore, these parameters with probability information impose additional complexities to the underlying optimization models.
Our goal is to propose an approach to deal with the uncertainty involved in the estimated parameters of the demand functions. Our RO approach replaces point estimates by interval forecasts and requires no specific probability distribution. Instead, we choose a hyperplane uncertainty set based on constraining the deviation of uncertainty parameters from the nominal values. As an additional benefit, our RO approach addresses the risk-averse tendencies of decision makers.
To the best of our knowledge, the idea of RO was first introduced by Soyster [26]. Since then, especially with the advent of efficient algorithms to solve optimization problems, the field has attracted much more attention, and expanded significantly over the last few decades. RO addresses optimization problems with uncertainty in which the uncertainty model is not stochastic, but rather deterministic and set-based. For example, in 1995, Mulvey et. al. [20] developed a robust optimization approach to solve large-scale systems for a set of decision-making problems. The paper introduces a general framework for achieving a solution that is robust in terms of both feasibility and optimality with respect to all realizations of uncertain data. It also presents several applications solved using this approach.
The literature on computationally tractable RO models is rich. For instance, linear programming with ellipsoidal uncertainty sets has been addressed in [3], [4], [5], [14] and [15]. In such a case, the optimization problem will correspond to a set of conic quadratic programming optimization problems. Alternatively, RO models with polyhedral uncertainty sets which can be formulated with linear/integer variables are also well-studied (see [4, 10, 11] for examples). For a thorough review of RO, we refer the interested readers to [7].
One of the most crucial steps in applying RO approaches is to construct an uncertainty set such that it contains all, or almost surely all, possible variations of uncertain data. Bound constraints and ellipsoidal uncertainty sets have been commonly used in many treatments [9]. However, these approaches are often ad-hoc, with emphases on sets that preserve computational tractability. Bertsimas and Brown [6] and Bertsimas et. al. [8] have proposed methods to construct polyhedral uncertainty sets using statistical hypothesis tests.
Previously, RO has been applied to several variations of the price optimization problem. Thiele [28] applied an RO approach to the pricing problem of a single product over a finite time horizon with a capacity limit. The uncertainty in the paper is the demand of the product which is assumed to be a function of price. The problem considered is different from the multiple products price optimization problem in our paper. In another paper, Thiele [29] proposed an RO approach for a problem with multiple products where a capacitated resource constraint is enforced, and the uncertainty is on the demand of the products. In contrast to the uncertainty set in both papers, our paper directly addresses the uncertainty on the sensitivity to the underlying prices in the demand functions which auguments the uncertainty in the demand of the products.
In addition, Tien and Jaillet [18] studied an interesting pricing problem with general extreme value (GEV) choice models for customers. They assumed that the parameters of the choice model lie in an uncertainty set. They first consider an unconstrained pricing problem, then present an alternative version, and analyze the pricing problem with over-expected-revenue-penalties. For the Multinomial Logit (MNL) demand function and a rectangular uncertainty set, the RO problem can be converted to a deterministic one that can be solved efficiently.
The rest of our paper is organized as follows. In Section 2, we explain the multi-product price optimization model. The underlying uncertainty as well as the approach we use to handle the uncertainty are explained in Section 3. We then present our numerical experiments in Section 4. Finally, we conclude the paper with several findings and point out some potential future research directions in Section 5.
2 The Price Optimization Model
In this section, we first formulate the deterministic case of the multi-product price optimization problem which is modeled as a nonconvex quadratic problem with bilinear terms. We then present a relaxation of the problem into a linear program.
2.1 The Deterministic MPPO Model
For our MPPO, we assume a linear price-response function as suggested by Phillips [23]:
(2.1) |
where and are the respective intercept and slope of the linear price-response function which represents the sales volume as a function of price. The satiating price , defined as the maximum allowed price at which demand drops to zero, is given by . Phillips [23] points out that the elasticity of the linear price-response function is - which ranges from 0 at and approaches infinity as approaches .
In reality, it is well known that the demand of a product is often influenced by not only the price of itself, but also the prices of its complementary and substitute products. Therefore we extend the linear function (2.1) to incorporate the prices of complementary and substitute products. Let represent the set of product indexes. The extended demand function for product can be expressed by introducing additional price variables along with complementary/substitute products:
(2.2) |
where is the price of the complementary/substitute product , represents the corresponding cross-effect of product on own product , and is the set of associated complementary/substitute products for product .
The MPPO is to maximize the total revenue subject to a set of constraints:
(2.3) |
where (hence ) , , , and are finite. The constraints in (2.3) defined by matrix and vector represent business rules in practice.
We assume that the above problem is well-defined and feasible. We also assume that for , , so the demand of a product decreases when its price increases, and for any complementary product and for any substitute product .
Thus, the objective function
is, in general, a nonconvex quadratic function with bilinear terms.
2.2 A Relaxation of the Deterministic MPPO Model
For the quadratic and bilinear terms, and , in (2.3), we introduce two new sets of variables and , respectively. With this substitution, (2.3) is transformed into:
(2.4a) | |||||
(2.4b) | |||||
(2.4c) | |||||
(2.4d) | |||||
(2.4e) |
where the objective function (2.4a) is now linear, but the constraints (2.4c) and (2.4d) contain quadratic and bilinear terms, respectively.
Notice that for a given , since and , and . Because we are dealing with a maximization problem, it follows that will attain its least negative value at at optimality. Therefore, Problem (2.4) and Problem (2.3) are equivalent and consequently, we can deal with Problem (2.4) from this point on.
We now apply relaxations to Problem (2.4) to address the nonlinear constraints (2.4c) and (2.4d) and transform the problem into a more tractable linear program. First, we replace the quadratic term by its piecewise linear approximation by discretizing its domain into segments:
Then at the th knot:
Therefore, we can relax constraint (2.4c) with the following set of supporting hyperplanes of :
Figure 1 illustrates how this linearization technique to approximate the quadratic function .
Next, for constraint (2.4d), we relax the bilinear terms by introducing McCormick envelopes ([19, 2]) as follows:
With the above relaxations, Problem (2.4) becomes:
(2.5a) | |||||
(2.5b) | |||||
(2.5c) | |||||
(2.5d) | |||||
(2.5e) | |||||
(2.5f) | |||||
(2.5g) | |||||
(2.5h) |
3 Uncertainty
In our MMPO model, we assume that the uncertainty is on and which vary between their corresponding lower and upper bound values. Our goal is to find optimal price decisions so that the decisions remain optimal with respect to all possible realizations of and . In this section, we first propose an RO approach to achieve the above goal. We then show how we construct an uncertainty set in building an RO model. Finally, we describe our method to solve the RO model.
3.1 The Robust Optimization Model for MPPO
The RO model is constructed by considering the worst-case scenario under all possible realizations of the uncertain parameter. Therefore, the RO counterpart of the objective function of Problem (2.5) is written as a Max-Min problem as follows:
Hence, Problem (2.5) under uncertainty becomes:
(3.1) |
where is the uncertainty set of . We will describe a method for constructing the uncertainty set later.
By introducing an ancillary variable , we reformulate the model (3.1) as
(3.2a) | ||||
3.2 Uncertainty Set Construction
We denote and as two pre-determined numbers of uniformly distributed realizations and for uncertain parameters and , respectively, from their corresponding interval estimates. Given the set of realizations, we define the following attributes for the uncertainty set for each product :
-
•
Mean of scenarios:
can be interpreted as the nominal value for the sensitivity parameter . Likewise, for , we have:
-
•
Standard deviation of scenarios: The standard deviations of the samples of realizations for and are calculated as follows.
and
Now, for and writing for the vectors of all and for the vector of all , we construct the uncertainty set as follows:
(3.3c) | ||||
(3.3d) | ||||
(3.3e) | ||||
(3.3f) | ||||
(3.3g) |
where , , and .
Note that the constraints (3.3d) and (3.3f) in the above construction ensure that the maximum normalized deviation of the uncertain parameter and , respectively, from the nominal values among all the products remains under a certain positive scalar . The parameter is called budget of uncertainty [12]. Constraintd (3.3e) and (3.3g) also define bounds on individual and , respectively.
The budget of uncertainty constraint could also be specified by imposing a limit on the total amount of deviation across all products [13] as follows:
We therefore reformulate the uncertainty set as a polytope:
(3.4) |
3.3 Solution Approach for the RO Model
Note that the right-hand side of the constraint (3.2a) constitutes an optimization problem. We substitute the uncertainty set in (3.2a) with a hyperplane derived from (3.4), and yield the following optimization problem:
(3.5a) | |||||
(3.5b) | |||||
(3.5c) | |||||
(3.5d) | |||||
(3.5e) | |||||
(3.5f) | |||||
(3.5g) | |||||
(3.5h) | |||||
(3.5i) | |||||
(3.5j) | |||||
By introducing dual multipliers , , , , , , , , and associated with constraints (3.5a)-(3.5j), respectively, the dual problem becomes:
(3.6) |
In accordance with weak duality, any feasible solution to (3.6) provides a lower bound to (3.4). Therefore, we can enforce (3.2a) by adding the following constraint
where is feasible solution for (3.6). Therefore, the Max-Min problem can be reformulated as:
(3.7a) | |||||
(3.7b) | |||||
(3.7c) | |||||
(3.7d) | |||||
(3.7e) | |||||
(3.7f) | |||||
(3.7g) | |||||
(3.7h) | |||||
(3.7i) |
The above formulation constitutes the RO model associated with a budget of uncertainty parameter . This RO model is a conventional linear programming model that can be readily solved using standard linear programming solvers. We report the results of our numerical experiments based on this model in the subsequent section.
4 Numerical Experiments
We implemented the RO model presented above using Python 3.5.2. We employed Gurobi 7.0 [16] to solve the linear programming model in (3.7). All tests reported were conducted on Amazon’s Elastic Compute Cloud running Amazon Linux AMI 2018.03 on a machine with dual Intel(R) Xeon(R) 16-core E5-2686 v4 CPU @ 2.3GHz and 500GB memory.
4.1 Test Instance Description
We tested the proposed approach on 40 different instances from the data of a major food distributor in the United States. The company sells products to its customers via its geographically scattered divisions. Table 1 lists the name of the test instances (such that each instance represents a specific division), the number of products and number of cross terms (nonzero terms) within a given time period in each instance.
Sample | # Products | # Cross Terms | Sample | # Products | # Cross Terms |
---|---|---|---|---|---|
S1 | 14,072 | 153 | S2 | 11,563 | 247 |
S3 | 15,665 | 151 | S4 | 1,148 | 19 |
S5 | 310 | 5 | S6 | 1,975 | 23 |
S7 | 887 | 16 | S8 | 987 | 15 |
S9 | 3,934 | 23 | S10 | 2,078 | 35 |
S11 | 1,635 | 14 | S12 | 2,008 | 16 |
S13 | 1,281 | 18 | S14 | 629 | 10 |
S15 | 11,442 | 149 | S16 | 2,940 | 79 |
S17 | 1,807 | 70 | S18 | 924 | 53 |
S19 | 4,222 | 126 | S20 | 1,675 | 26 |
S21 | 1,768 | 11 | S22 | 333 | 22 |
S23 | 3,353 | 29 | S24 | 1,232 | 34 |
S25 | 389,954 | 0 | S26 | 288,719 | 0 |
S27 | 69,107 | 1,313 | S28 | 141,475 | 3,409 |
S29 | 35,679 | 0 | S30 | 298,750 | 0 |
S31 | 23,269 | 439 | S32 | 9,518 | 201 |
S33 | 23,092 | 413 | S34 | 23,249 | 481 |
S35 | 20,593 | 366 | S36 | 18,862 | 232 |
S37 | 375,069 | 0 | S38 | 271,054 | 0 |
S39 | 83,211 | 2,139 | S40 | 112,555 | 2,686 |
4.2 Parameter Values of the RO method
The value of plays a crucial role in our tests. We select and test the values as follows. First, let us revisit the constraint involving :
Obviously, the minimum value for is zero, in which case all the values will be equal to their nominal value . We can also find the maximum value for by:
and
Therefore, we choose . We then divide the interval [0,] into 10 equally distanced segments, namely , where and , and test each of the values in our subsequent experiments.
Other parameters of the model are and , the numbers of samples used for calculating the means and variances for and . We set these two parameters to 50 and 5, respectively, reflecting the fact that the cross price elasticities are usually associated with smaller intervals compared with the own price elasticities, as found in our real data sets.
4.3 Test Results
To present our results, we show how changing the value of affects the optimal value of the robust counterpart problem (3.7). To do this, we calculate the percent difference between the maximum and the minimum value of associated with values of in problem (3.7). The maximum and minimum values of are attained when and , i.e., the least conservative case and the most conservative case, respectively. We summarize the results in Table 2 by only displaying percent of decline from the least conservative to the most conservative case. We observe that the differences are all within in the range with an average of 1.14%.
Sample | Decline (%) | Sample | Decline (%) |
---|---|---|---|
S1 | 4.0869 | S2 | 0.7784 |
S3 | 6.1058 | S4 | 5.2174 |
S5 | 0.0964 | S6 | 0.2366 |
S7 | 0.0844 | S8 | 0.1391 |
S9 | 3.5418 | S10 | 0.1005 |
S11 | 0.3744 | S12 | 0.1979 |
S13 | 0.1200 | S14 | 0.1398 |
S15 | 0.3392 | S16 | 0.0951 |
S17 | 0.1019 | S18 | 0.0716 |
S19 | 0.1092 | S20 | 0.1906 |
S21 | 0.0898 | S22 | 0.0757 |
S23 | 0.2508 | S24 | 0.0681 |
S25 | 0.8945 | S26 | 1.8451 |
S27 | 0.0501 | S28 | 0.0691 |
S29 | 2.4146 | S30 | 0.5939 |
S31 | 6.9645 | S32 | 2.6059 |
S33 | 1.2579 | S34 | 0.2168 |
S35 | 0.1478 | S36 | 0.8719 |
S37 | 3.0746 | S38 | 1.1271 |
S39 | 0.4145 | S40 | 0.3026 |
The distribution of the percent differences is depicted in the box plot of Figure 2. The detailed results are shown in the Appendix (Table 5).

4.4 Simulation Validation
We further validate our RO approach by comparing results from a set of Monte Carlo simulation tests with our RO solutions. We run a Monte Carlo simulations by taking uniformly distributed samples from the interval and from , and then solving each of the price optimization problems with given sampling values for and :
(4.1) |
The value of the simulation will then be the mean of optimal values from each replication, i.e. .
In these experiments, with , we compare the values of the simulation with the values of RO formulation (3.7). This comparison discloses the degree of conservativeness of the RO solutions. To perform such a comparison, we compare with the least conservative case (achieved at ), the most conservative case and the average across all values, and calculate the corresponding difference ratios. For instance the difference ratio in the column under is attained from
Table 3 summarizes these comparisons. while a negative value of difference ratio in the table implies that the RO value is better than the simulation, a positive value shows conversely. Note that most of the instances (35 out of 40) have positive values in column, indicating RO results are worse than the simulation values. However, in most of such cases (30 out of 35) the difference ratios are less than 0.5%, and there are only three cases where the difference ratios are over 1%. This implies that for the most conservative scenarios, RO solution yields results with little losses as compared to the solutions from the simulation. On the other hand, in the least conservative case (under column ), most (31 of 40) differences are negative, demonstrating RO results are better than those from the simulations, while there are only nine instances where it is not and only in one of which the difference ratio is above 0.32%.
Sample | (%) | Average (%) | (%) | Sample | (%) | Average (%) | (%) |
---|---|---|---|---|---|---|---|
S1 | -1.8890 | 0.2668 | 0.9437 | S2 | -0.0190 | 0.2335 | 0.2986 |
S3 | -2.8905 | 0.4543 | 1.9151 | S4 | 0.2826 | 3.6168 | 5.0061 |
S5 | -0.1005 | -0.1198 | -0.0184 | S6 | -0.1459 | 0.0224 | 0.0721 |
S7 | 0.0542 | 0.0965 | 0.1128 | S8 | 0.1286 | 0.1395 | 0.1465 |
S9 | -5.0707 | -2.6889 | -1.8811 | S10 | 0.0430 | 0.1518 | 0.1716 |
S11 | -0.2461 | -0.0556 | 0.0774 | S12 | -0.0706 | 0.0239 | 0.1493 |
S13 | -0.0518 | 0.1993 | 0.2539 | S14 | -0.0023 | 0.0169 | 0.0832 |
S15 | -0.1280 | 0.0184 | 0.2112 | S16 | -0.0800 | 0.0541 | 0.1453 |
S17 | -0.1146 | -0.0004 | 0.0926 | S18 | 0.0192 | 0.0281 | 0.0357 |
S19 | -0.0865 | -0.0006 | 0.0103 | S20 | -0.1491 | -0.0081 | 0.0242 |
S21 | -0.0953 | 0.0578 | 0.0941 | S22 | 0.0062 | 0.0327 | 0.0401 |
S23 | -0.2302 | -0.0727 | 0.0346 | S24 | 0.0034 | 0.0293 | 0.0658 |
S25 | -0.6957 | -0.1953 | 0.1140 | S26 | -1.5647 | -0.1403 | 0.3698 |
S27 | -0.0236 | 0.0398 | 0.0529 | S28 | -0.1683 | -0.0924 | -0.0981 |
S29 | -1.8245 | -03922 | 0.3490 | S30 | -0.5110 | 0.0049 | 0.1277 |
S31 | -10.1855 | -5.0828 | -2.4091 | S32 | 1.8656 | 2.6629 | 3.4037 |
S33 | -0.2890 | 0.2004 | 0.3969 | S34 | -0.0104 | 0.0221 | 0.0562 |
S35 | -0.0402 | 0.0493 | 0.0873 | S36 | -1.3137 | -0.1453 | 0.296 |
S37 | -4.7585 | -3.0283 | -2.0466 | S38 | -0.8910 | -0.236 | 0.2993 |
S39 | -0.0165 | 0.0100 | 0.1477 | S40 | 0.3194 | 0.5114 | 0.6030 |
The other major benefit that we observe in our experiments is the gain from the computational time required for our RO approach. Table 4 lists the solution time of both RO approach and simulation. The solution times are significantly higher in simulation comparing to those using the RO approach. This is aligned with the expectations as the simulation needs to solve number of linear programs whereas the RO approach needs to only solve one linear program. The comparison of the solution time shows that the relative difference calculated by has a geometric mean of 21.2 which means the simulation on average takes 21 times longer to solve. The advantage in computation times of our RO approach represents a significant benefit that could be achieved in many practical applications.
Sample | RO | Simulation | Sample | RO | Simulation |
---|---|---|---|---|---|
(s) | (s) | (s) | (s) | ||
S1 | 18.1 | 298.7 | S2 | 17.5 | 323.5 |
S3 | 9.7 | 203.3 | S4 | 0.2 | 6.3 |
S5 | 0.2 | 8.6 | S6 | 0.4 | 14.6 |
S7 | 0.3 | 8.4 | S8 | 0.3 | 10.4 |
S9 | 1.0 | 31.5 | S10 | 0.7 | 22.8 |
S11 | 0.3 | 10.1 | S12 | 0.3 | 11.6 |
S13 | 0.5 | 15.3 | S14 | 0.1 | 3.5 |
S15 | 5.5 | 118.5 | S16 | 1.4 | 39.7 |
S17 | 0.4 | 11.5 | S18 | 0.2 | 5.5 |
S19 | 1.2 | 40.2 | S20 | 0.4 | 11.3 |
S21 | 0.7 | 22.6 | S22 | 0.1 | 1.9 |
S23 | 1.5 | 37.2 | S24 | 0.2 | 7.7 |
S25 | 323.6 | 2746.9 | S26 | 206.0 | 1759.1 |
S27 | 332.7 | 5622.9 | S28 | 888.8 | 35712.6 |
S29 | 8.1 | 182.3 | S30 | 187.0 | 1842.6 |
S31 | 106.0 | 1410.4 | S32 | 23.2 | 395.4 |
S33 | 90.6 | 1152.9 | S34 | 79.8 | 1259.7 |
S35 | 71.2 | 1044.9 | S36 | 29.2 | 492.9 |
S37 | 313.9 | 2630.8 | S38 | 177.8 | 1649.9 |
S39 | 436.6 | 12469.6 | S40 | 436.6 | 12469.6 |
5 Conclusions and Future Directions
In this paper, we investigate a multiple product price optimization problem with a linear demand function associated with prices on reference products as well as associated complementary/substitute products. The problem is associated with uncertainty where the sensitivity parameters on the product prices are expressed using uncertainty intervals. In contrast to the common practice of solving the problem with a point estimator of the interval, we devise a new robust optimization based approach to handle such uncertainty intervals.
In our proposed approach, we construct an uncertainty set based on all realizations of the parameters. The set depends on the budget of uncertainty parameter that controls the level of conservatism. With this set, a robust optimization formulation counterpart is developed that takes the uncertainty set into account, and it can be solved as a linear programming model. We further test our proposed model and solution approach based on several real data sets. As is expected, by increasing the budget of uncertainty value of the uncertainty set parameter, the optimal revenue decreases. An additional set of simulation experiments shows that although robust optimization is typically a more conservative approach, the losses of optimal values with the approach, in most instances, are quite insignificant. From the solution time perspective, while the simulation requires much longer time to solve, the proposed RO method, designed to address the uncertainty issue, can yield robust solutions in much shorter time at the price of being a little conservative.
We plan to further our research in several areas in the future. First, we currently use a uniform sampling approach from the intervals of the sensitivity parameters. However, in reality, some more refined information including posterior distribution may be collected and estimated for such parameters. A more appropriate sampling approach can be employed to better suit the posterior distribution of the parameters with uncertainty.
Also, in our robust optimization approach, we formulate the uncertainty set as explained in , which was linearized in (3.4). However, there are some other approaches in the literature that might result in different approximation of the uncertainty associated with the parameters (for example [8].) Such new approximation methods are worth exploring in the future.
Finally, we find a simple linear demand response function appropriate for our application. More complicated demand response models, such as MNL demand functions, may be more appropriate and accurate in other price optimization applications. Hence, studying RO approach with such models could be an interesting future direction.
References
- [1] V. Agrawal and S. Seshadri. Impact of uncertainty and risk aversion on price and order quantity in the newsvendor problem. Manufacturing & Service Operations Management, 2:410–423, 10 2000.
- [2] F.A. Al-Khayyal and J.E. Falk. Jointly constrained biconvex programming. Mathematics of Operations Research, 8(2):159–317, 1983.
- [3] A. Ben-Tal and A. Nemirovski. Robust convex optimization. Mathematics of Operations Research, 23(4):769–805, 1998.
- [4] A. Ben-Tal and A. Nemirovski. Robust solutions of uncertain linear programs. Operations Research Letters, 25:1–13, 1999.
- [5] A. Ben-Tal and A. Nemirovski. Robust solutions of linear programming problems contaminated with uncertain data. Mathematical Programming, 88(3):411–424, 2000.
- [6] D. Bertsimas and D. Brown. Constructing uncertainty sets for robust linear optimization. Operations Research, 57(6):1483–1495, 2009.
- [7] D. Bertsimas, D.B. Brown, and C. Caramanis. Theory and applications of robust optimization. SIAM Review, 53(3):464–501, 2011.
- [8] D. Bertsimas, V. Gupta, and N. Kallus. Data-driven robust optimization. Mathematical Programming, 167(2):235–292, 2018.
- [9] D. Bertsimas, D. Pachamanova, and M. Sim. Robust linear optimization under general norms. Operations Research Letters, 32(6):510–516, 2004.
- [10] D. Bertsimas and M. Sim. Robust discrete optimization and network flows. Mathematical Programming, 98(1):49–71, 2003.
- [11] D. Bertsimas and M. Sim. The price of robustness. Operations Research, 52(1):35–53, 2004.
- [12] D. Bertsimas and A. Thiele. Robust and data-driven optimization: Modern decision making under uncertainty. Tutorials in Operations Research, 4:95–122, 04 2006.
- [13] Dimitris Bertsimas, Eugene Litvinov, Xu Sun, Jinye Zhao, and Tongxin Zheng. Adaptive robust optimization for the security constrained unit commitment problem. IEEE Transactions on Power Systems, 28:52–63, 02 2013.
- [14] L. El Ghaoui and H. Lebret. Robust solutions to least-squares problems with uncertain data. SIAM Journal on Matrix Analysis and Applications, 18(4):1035–1064, 1997.
- [15] L. El Ghaoui, F. Oustry, and H. Lebret. Robust solutions to uncertain semidefinite programs. SIAM Journal on Optimization, 9(1):33–52, 1998.
- [16] Gurobi Optimization, LLC. Gurobi optimizer reference manual, 2020.
- [17] Y. Levin, J. McGill, and M. Nediak. Risk in revenue management and dynamic pricing. Operations Research, 56:326–343, 04 2008.
- [18] T. Mai and P. Jaillet. Robust multi-product pricing under general extreme value models, 2019, 1912.09552.
- [19] G.P. McCormick. Computability of global solutions to factorable nonconvex programs: Part I — Convex underestimating problems. Mathematical Programming, 10:147–175, 1976.
- [20] J.M. Mulvey, R.J. Vanderbei, and S.A. Zenios. Robust optimization of large-scale systems. Operations Research, 43(2):264–281, 1995.
- [21] S. Nahmias. Production and Operations Analysis. McGraw-Hill, New York, 5th edition, 2005.
- [22] Ö. Özer and R. Phillips. The Oxford Handbook of Pricing Management. Oxford University Press, 2012.
- [23] R. Phillips. Pricing and Revenue Optimization. Stanford University Press, Stanford, CA, 2005.
- [24] Y. Sheffi. The Resilient Enterprise: Overcoming Vulnerability for Competitive Advantage. MIT Press, Cambridge, MA, 2005.
- [25] D. Simchi-Levi, P. Kaminsky, and Simchi-Levi E. Managing the Supply Chain: The Definitive Guide for the Business Professional. McGraw-Hill, New York, 2004.
- [26] A.L. Soyster. Convex programming with set-inclusive constraints and applications to inexact linear programming. Operations Research, 21(5):1154–1157, 1973.
- [27] K.T. Talluri and G.J. van Ryzin. The Theory and Practice of Revenue Management. International Series in Operations Research & Management Science. Springer US, Boston, MA, 2005.
- [28] A. Thiele. Single-product pricing via robust optimization. Working Paper, 2006.
- [29] A. Thiele. Multi-product pricing via robust optimization. Journal of Revenue and Pricing Management, 8:67–80, 2009.
Appendix
Table 5 presents each value with its associated optimal objective function value (revenue) of each instance. For ease of exposition, the optimal revenue value (denoted as ) is normalized so the base scenario with is set to zero. As we also expected, the larger the value, the smaller , as the problem becomes more conservative.
Optimal Values | |||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Sample | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | Decline (%) | |
S1 | 0.0 | 0.65 | 1.3 | 1.9 | 2.6 | 3.2 | 3.9 | 4.5 | 5.2 | 5.8 | 6.5 | 4.0869 | |
1.000000 | 0.981036 | 0.964493 | 0.959536 | 0.959145 | 0.959132 | 0.959131 | 0.959131 | 0.959131 | 0.959131 | 0.959131 | |||
S2 | 0.0 | 0.55 | 1.1 | 1.7 | 2.2 | 2.8 | 3.3 | 3.9 | 4.4 | 5.0 | 5.5 | 0.7784 | |
1.000000 | 0.997144 | 0.994409 | 0.992639 | 0.992311 | 0.992245 | 0.992220 | 0.992216 | 0.992216 | 0.992216 | 0.992216 | |||
S3 | 0.0 | 0.46 | 0.92 | 1.4 | 1.8 | 2.3 | 2.8 | 3.2 | 3.7 | 4.1 | 4.6 | 6.1058 | |
1.000000 | 0.980973 | 0.962698 | 0.948051 | 0.940493 | 0.939001 | 0.938953 | 0.938943 | 0.938942 | 0.938942 | 0.938942 | |||
S4 | 0.0 | 0.39 | 0.78 | 1.2 | 1.6 | 1.9 | 2.3 | 2.7 | 3.1 | 3.5 | 3.9 | 5.2174 | |
1.000000 | 0.986918 | 0.973921 | 0.960932 | 0.948030 | 0.947895 | 0.947826 | 0.947826 | 0.947826 | 0.947826 | 0.947826 | |||
S5 | 0.0 | 0.35 | 0.71 | 1.1 | 1.4 | 1.8 | 2.1 | 2.5 | 2.8 | 3.2 | 3.5 | 0.0964 | |
1.000000 | 0.999791 | 0.999583 | 0.999374 | 0.999165 | 0.999040 | 0.999036 | 0.999036 | 0.999036 | 0.999036 | 0.999036 | |||
S6 | 0.0 | 0.4 | 0.8 | 1.2 | 1.6 | 2.0 | 2.4 | 2.8 | 3.2 | 3.6 | 4.0 | 0.2366 | |
1.000000 | 0.999404 | 0.998809 | 0.998223 | 0.997753 | 0.997637 | 0.997634 | 0.997634 | 0.997634 | 0.997634 | 0.997634 | |||
S7 | 0.0 | 0.4 | 0.8 | 1.2 | 1.6 | 2.0 | 2.4 | 2.8 | 3.2 | 3.6 | 4.0 | 0.0844 | |
1.000000 | 0.999798 | 0.999596 | 0.999395 | 0.999204 | 0.999156 | 0.999156 | 0.999156 | 0.999156 | 0.999156 | 0.999156 | |||
S8 | 0.0 | 0.39 | 0.77 | 1.2 | 1.5 | 1.9 | 2.3 | 2.7 | 3.1 | 3.5 | 3.9 | 0.1391 | |
1.000000 | 0.999667 | 0.999334 | 0.999002 | 0.998704 | 0.998611 | 0.998609 | 0.998609 | 0.998609 | 0.998609 | 0.998609 | |||
S9 | 0.0 | 0.4 | 0.8 | 1.2 | 1.6 | 2.0 | 2.4 | 2.8 | 3.2 | 3.6 | 4.0 | 3.5418 | |
1.000000 | 0.988791 | 0.977581 | 0.966854 | 0.964664 | 0.964583 | 0.964582 | 0.964582 | 0.964582 | 0.964582 | 0.964582 | |||
S10 | 0.0 | 0.42 | 0.83 | 1.2 | 1.7 | 2.1 | 2.5 | 2.9 | 3.3 | 3.7 | 4.2 | 0.1005 | |
1.000000 | 0.999753 | 0.999507 | 0.999260 | 0.999055 | 0.998999 | 0.998995 | 0.998995 | 0.998995 | 0.998995 | 0.998995 | |||
S11 | 0.0 | 0.39 | 0.77 | 1.2 | 1.5 | 1.9 | 2.3 | 2.7 | 3.1 | 3.5 | 3.9 | 0.3744 | |
1.000000 | 0.999164 | 0.998361 | 0.997558 | 0.996762 | 0.996259 | 0.996256 | 0.996256 | 0.996256 | 0.996256 | 0.996256 | |||
S12 | 0.0 | 0.39 | 0.77 | 1.2 | 1.5 | 1.9 | 2.3 | 2.7 | 3.1 | 3.5 | 3.9 | 0.1979 | |
1.000000 | 0.999501 | 0.999001 | 0.998502 | 0.998129 | 0.998021 | 0.998021 | 0.998021 | 0.998021 | 0.998021 | 0.998021 | |||
S13 | 0.0 | 0.41 | 0.83 | 1.2 | 1.7 | 2.1 | 2.5 | 2.9 | 3.3 | 3.7 | 4.1 | 0.1200 | |
1.000000 | 0.999697 | 0.999394 | 0.999091 | 0.998829 | 0.998801 | 0.998800 | 0.998800 | 0.998800 | 0.998800 | 0.998800 | |||
S14 | 0.0 | 0.38 | 0.77 | 1.1 | 1.5 | 1.9 | 2.3 | 2.7 | 3.1 | 3.4 | 3.8 | 0.1398 | |
1.000000 | 0.999686 | 0.999372 | 0.999058 | 0.998750 | 0.998604 | 0.998602 | 0.998602 | 0.998602 | 0.998602 | 0.998602 | |||
S15 | 0.0 | 0.48 | 0.95 | 1.4 | 1.9 | 2.4 | 2.9 | 3.3 | 3.8 | 4.3 | 4.8 | 0.3392 | |
1.000000 | 0.998885 | 0.997798 | 0.996985 | 0.996681 | 0.996632 | 0.996617 | 0.996609 | 0.996609 | 0.996608 | 0.996608 | |||
S16 | 0.0 | 0.41 | 0.83 | 1.2 | 1.7 | 2.1 | 2.5 | 2.9 | 3.3 | 3.7 | 4.1 | 0.0951 | |
1.000000 | 0.999764 | 0.999529 | 0.999293 | 0.999094 | 0.999049 | 0.999049 | 0.999049 | 0.999049 | 0.999049 | 0.999049 | |||
S17 | 0.0 | 0.41 | 0.83 | 1.2 | 1.7 | 2.1 | 2.5 | 2.9 | 3.3 | 3.7 | 4.1 | 0.1019 | |
1.000000 | 0.999742 | 0.999484 | 0.999226 | 0.999010 | 0.998982 | 0.998981 | 0.998981 | 0.998981 | 0.998981 | 0.998981 | |||
S18 | 0.0 | 0.41 | 0.82 | 1.2 | 1.6 | 2.1 | 2.5 | 2.9 | 3.3 | 3.7 | 4.1 | 0.0716 | |
1.000000 | 0.999821 | 0.999642 | 0.999464 | 0.999313 | 0.999285 | 0.999284 | 0.999284 | 0.999284 | 0.999284 | 0.999284 | |||
S19 | 0.0 | 0.44 | 0.88 | 1.3 | 1.8 | 2.2 | 2.6 | 3.1 | 3.5 | 4.0 | 4.4 | 0.1092 | |
1.000000 | 0.999714 | 0.999429 | 0.999143 | 0.998933 | 0.998908 | 0.998908 | 0.998908 | 0.998908 | 0.998908 | 0.998908 | |||
S20 | 0.0 | 0.38 | 0.77 | 1.2 | 1.5 | 1.9 | 2.3 | 2.7 | 3.1 | 3.5 | 3.8 | 0.1906 | |
1.000000 | 0.999560 | 0.999120 | 0.998679 | 0.998257 | 0.998097 | 0.998094 | 0.998094 | 0.998094 | 0.998094 | 0.998094 | |||
S21 | 0.0 | 0.39 | 0.77 | 1.2 | 1.5 | 1.9 | 2.3 | 2.7 | 3.1 | 3.5 | 3.9 | 0.0898 | |
1.000000 | 0.999793 | 0.999585 | 0.999378 | 0.999176 | 0.999104 | 0.999102 | 0.999102 | 0.999102 | 0.999102 | 0.999102 | |||
S22 | 0.0 | 0.41 | 0.81 | 1.2 | 1.6 | 2.0 | 2.4 | 2.8 | 3.3 | 3.7 | 4.1 | 0.0757 | |
1.000000 | 0.999818 | 0.999635 | 0.999453 | 0.999292 | 0.999246 | 0.999243 | 0.999243 | 0.999243 | 0.999243 | 0.999243 | |||
S23 | 0.0 | 0.39 | 0.79 | 1.2 | 1.6 | 2.0 | 2.4 | 2.8 | 3.2 | 3.6 | 3.9 | 0.2508 | |
1.000000 | 0.999300 | 0.998601 | 0.997901 | 0.997588 | 0.997496 | 0.997492 | 0.997492 | 0.997492 | 0.997492 | 0.997492 | |||
S24 | 0.0 | 0.41 | 0.82 | 1.2 | 1.6 | 2.0 | 2.5 | 2.9 | 3.3 | 3.7 | 4.1 | 0.0681 | |
1.000000 | 0.999831 | 0.999663 | 0.999494 | 0.999352 | 0.999320 | 0.999319 | 0.999319 | 0.999319 | 0.999319 | 0.999319 | |||
S25 | 0.0 | 0.62 | 1.2 | 1.9 | 2.5 | 3.1 | 3.7 | 4.3 | 4.9 | 5.6 | 6.2 | 0.8945 | |
1.000000 | 0.996451 | 0.992945 | 0.991132 | 0.991061 | 0.991056 | 0.991055 | 0.991055 | 0.991055 | 0.991055 | 0.991055 | |||
S26 | 0.0 | 0.65 | 1.3 | 1.9 | 2.6 | 3.2 | 3.9 | 4.5 | 5.2 | 5.8 | 6.5 | 1.8451 | |
1.000000 | 0.992429 | 0.985244 | 0.982216 | 0.981786 | 0.981554 | 0.981550 | 0.981550 | 0.981549 | 0.981549 | 0.981549 | |||
S27 | 0.0 | 0.57 | 1.1 | 1.7 | 2.3 | 2.9 | 3.4 | 4.0 | 4.6 | 5.2 | 5.7 | 0.0501 | |
1.000000 | 0.999812 | 0.999630 | 0.999518 | 0.999504 | 0.999501 | 0.999500 | 0.999500 | 0.999500 | 0.999499 | 0.999499 | |||
S28 | 0.0 | 0.62 | 1.2 | 1.9 | 2.5 | 3.1 | 3.7 | 4.4 | 5.0 | 5.6 | 6.2 | 0.0691 | |
1.000000 | 0.999720 | 0.999459 | 0.999331 | 0.999316 | 0.999311 | 0.999309 | 0.999309 | 0.999309 | 0.999309 | 0.999309 | |||
S29 | 0.0 | 0.62 | 1.2 | 1.8 | 2.5 | 3.1 | 3.7 | 4.3 | 4.9 | 5.5 | 6.2 | 2.4146 | |
1.000000 | 0.990004 | 0.981477 | 0.977098 | 0.976042 | 0.975912 | 0.975857 | 0.975854 | 0.975854 | 0.975854 | 0.975854 | |||
S30 | 0.0 | 0.6 | 1.2 | 1.8 | 2.4 | 3.0 | 3.6 | 4.2 | 4.8 | 5.4 | 6.0 | 0.5939 | |
1.000000 | 0.997535 | 0.995168 | 0.994144 | 0.994083 | 0.994070 | 0.994063 | 0.994061 | 0.994061 | 0.994061 | 0.994061 | |||
S31 | 0.0 | 0.7 | 1.4 | 2.1 | 2.8 | 3.5 | 4.2 | 4.9 | 5.6 | 6.3 | 7.0 | 6.9645 | |
1.000000 | 0.968040 | 0.940502 | 0.930946 | 0.930493 | 0.930380 | 0.930359 | 0.930356 | 0.930355 | 0.930355 | 0.930355 | |||
S32 | 0.0 | 0.59 | 1.2 | 1.8 | 2.4 | 3.0 | 3.6 | 4.2 | 4.8 | 5.4 | 5.9 | 2.6059 | |
1.000000 | 0.989968 | 0.981014 | 0.975376 | 0.974279 | 0.974051 | 0.973967 | 0.973953 | 0.973945 | 0.973941 | 0.973941 | |||
S33 | 0.0 | 0.58 | 1.2 | 1.7 | 2.3 | 2.9 | 3.5 | 4.1 | 4.7 | 5.2 | 5.8 | 1.2579 | |
1.000000 | 0.995042 | 0.990318 | 0.987787 | 0.987447 | 0.987430 | 0.987423 | 0.987421 | 0.987421 | 0.987421 | 0.987421 | |||
S34 | 0.0 | 0.57 | 1.1 | 1.7 | 2.3 | 2.8 | 3.4 | 4.0 | 4.5 | 5.1 | 5.7 | 0.2168 | |
1.000000 | 0.999182 | 0.998445 | 0.997991 | 0.997875 | 0.997843 | 0.997833 | 0.997832 | 0.997832 | 0.997832 | 0.997832 | |||
S35 | 0.0 | 0.65 | 1.3 | 1.9 | 2.6 | 3.2 | 3.9 | 4.5 | 5.2 | 5.8 | 6.5 | 0.1478 | |
1.000000 | 0.999383 | 0.998828 | 0.998545 | 0.998530 | 0.998523 | 0.998522 | 0.998522 | 0.998522 | 0.998522 | 0.998522 | |||
S36 | 0.0 | 0.56 | 1.1 | 1.7 | 2.2 | 2.8 | 3.4 | 3.9 | 4.5 | 5.1 | 5.6 | 0.8719 | |
1.000000 | 0.996699 | 0.993594 | 0.991802 | 0.991374 | 0.991324 | 0.991304 | 0.991291 | 0.991284 | 0.991281 | 0.991281 | |||
S37 | 0.0 | 0.65 | 1.3 | 1.9 | 2.6 | 3.2 | 3.9 | 4.5 | 5.2 | 5.8 | 6.5 | 3.0746 | |
1.000000 | 0.985972 | 0.972225 | 0.969320 | 0.969271 | 0.969257 | 0.969254 | 0.969254 | 0.969254 | 0.969254 | 0.969254 | |||
S38 | 0.0 | 0.65 | 1.3 | 2.0 | 2.6 | 3.3 | 3.9 | 4.6 | 5.2 | 5.9 | 6.5 | 1.1271 | |
1.000000 | 0.995359 | 0.990956 | 0.988909 | 0.988752 | 0.988731 | 0.988729 | 0.988729 | 0.988729 | 0.988729 | 0.988729 | |||
S39 | 0.0 | 0.61 | 1.2 | 1.8 | 2.4 | 3.0 | 3.6 | 4.2 | 4.9 | 5.5 | 6.1 | 0.4145 | |
1.000000 | 0.998126 | 0.996349 | 0.995896 | 0.995861 | 0.995856 | 0.995856 | 0.995855 | 0.995855 | 0.995855 | 0.995855 | |||
S40 | 0.0 | 0.65 | 1.3 | 2.0 | 2.6 | 3.3 | 3.9 | 4.6 | 5.2 | 5.9 | 6.5 | 0.3026 | |
1.000000 | 0.998797 | 0.997742 | 0.997134 | 0.996982 | 0.996976 | 0.996975 | 0.996974 | 0.996974 | 0.996974 | 0.996974 |