1
$\begingroup$

My title may need some help, but I am asking about a specific optimization problem and whether the interaction between correlated terms is a concern and whether I am setting up the objective function correctly.

If we have a variable cost that is a percentage (x) of gross revenue and another variable cost (y) that is tied to the number of total products (n), we find that the profit increases as the number of products increases. To add to the complexity of this, each product can be sold at a variety of different prices to different customers.

For example, we could sell 2 products to 3 customers at $10, $15, $12 for products A, B, B, respectively.

To sell to everyone must pay costs of \$(10+15+12) * 30% = \$11.10 as well as product costs of 2 * \$9 = \$18. So we have in my function below an objective score (to minimize) of -\$37 + \$11.1 + \$18 = -\$7.90.

It seems clear here that we are only able to sell product B at \$12.00 because the product cost of $9 is 'shared' between the two customers.

If we had only sold to customer 3 at \$12 we would have a contribution to the objective of -\$12 + \$3.60 + \$9 = \$0.60. If we had only sold to customer 2 at \$15 it would be -\$15 + \$4.50 + \$9 = -\$1.50, but combined it is -\$27 + \$8.10 + \$9 = -\$9.90.

If we are optimizing to maximize net profit, is it correct to have an objective function =

[-gross_revenue + (gross_revenue * x%) + n*y] ?

Are the other (or better) approaches to implementing this? Is the interaction between sales and product costs creating collinearity that would be a concern?

  • 0
    Just to make sure, your product cost is not per unit, but per unique product, and it is equal across unique products, correct? Also, what are the choice variables with respect to which you wish to optimize?2017-02-16
  • 0
    That is correct. The product cost is per unique product. It is equal across unique products. We are seeking to determine which customers to sell to. Additionally, each customer may desire more than one product.2017-02-16
  • 0
    Principal Component Analysis (PCA) is a pretty standard way of dealing with collinearity. You could preform PCA, and perform the optimization problem in this space, and then convert back to the original space.2017-02-16

1 Answers 1

2

So, to put it all in notation, I'm imagining something like the following.

Let

  • $i$ index customers,
  • $j$ index products,
  • $q_{i,j}$ be the desired quantity of customer $i$ for product $j$,
  • $p_{i,j}$ be the price that customer $i$ pays for product $j$,
  • $a_i \in \{0,1\}$ be an indicator of whether you sell to that customer (in an all or nothing sense).
  • $x$ be the cost as a percentage of gross revenue, and
  • $c$ be the cost per unique product, with
  • $\boldsymbol{1}_{>0}$ being an indicator function for positive sales quantities.

I'm assuming that all $q_{i,j}$ and $p_{i,j}$ are known. Your goal is to find the values of $a_i \, \forall \, i$ that maximizes profit (minimizes the negative profit). $$ \underset{a_i \, \forall \, i}{\arg \max} \, \pi = (1-x)\left[\sum_{i}a_{i}\left[\sum_{j}q_{i,j}p_{i,j}\right]\right] - c\sum_{j} \boldsymbol{1}_{>0}\left(\sum_{i}a_{i}q_{i,j}\right) $$

I think that is what you were describing. This function has a finite domain, so there is no problem with existence of an optimum, but it may not be unique. But if the goal is profit maximization, then non-uniqueness doesn't seem like a problem, in the sense that you just pick one of the set of optima, and let factors outside of the model help you decide.

Finding an optimum, on the other hand, could be difficult. This is an integer programming problem. I don't have any personal experience computing solutions, but you might take a look at the list of methods from wikipedia