I have the following optimization objective function for a dynamic pricing problem:

\begin{align*} sum\_profit = \sum_{i \in sales\_point} \Bigg( constant[i] + {elasticity[i]} \cdot (movement[i] + actual\_prices[i] - comp\_price[i]) + \log\left({price[i]} - costs[i]\right) - \lambda[i]\cdot \left(1 - e^{alpha \cdot {exceed[i]^2}}\right) \Bigg) \end{align*}

with \begin{align*} exceed[i] = max(0,movement[i] + actual\_prices[i] - comp\_price[i] ) \end{align*} represent a penalty on surpassing the competitor price. and my volume model \begin{align*} volume[i] = constant[i] + {elasticity[i]} \cdot (movement[i] + actual\_prices[i] - comp\_price[i]) \end{align*}

I want to add a constraint that is the volume weighted mean of price movements needs to be equal to a given user input. However, adding this constraints \begin{align*} weighted\_volume\_mean = \frac{\sum_{i \in sales\_point} (mouvement[i] \cdot volume[i])}{\sum_{i \in sales\_point} (volume[i])} = user\_input \end{align*} Tends to de-optimize lot of sales points that have little volume by lowering massively the prices on high sales point. I dont want my sales points related to each other. I currently achieve what i want by lowering all competitor prices aritifically until i achieve the wanted mean price. Is there a way to be able to do that without artifically lowering all competitor prices.



Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Browse other questions tagged or ask your own question.