Say I have several portfolios of the format:
Product Name | Product Amount | Price per unit |
---|---|---|
A_1 | 10 | 2 |
B_1 | 20 | 6 |
... | ... | ... |
Z_1 | 30 | 7 |
We can call this $\text{Portfolio}_{1}$.
Similarly, $\text{Portfolio}_{2}$ could look like:
Product Name | Product Amount | Price per unit |
---|---|---|
A_2 | 100 | 3 |
B_2 | 50 | 8 |
... | ... | ... |
Z_2 | 50 | 17 |
For simplicity's sake we can assume we have 13 distinct portfolios.
I have two groups of customers. One that enters in a one year contract with me in January and the other group enters in February.
I know the monthly demand for each group in each month. However, my objective is to reach an "average annual price target".
For example, say the January group has monthly demand targets of
$[10,200,300,400,500,600,700,800,900,100,110,120]$
Where the index of each element corresponds to the monthly demand. So I need to allocate $10$ units from $\text{Portfolio}_{1}$, $200$ units from $\text{Portfolio}_{2}$ etc.
From $\text{Portfolio}_{1}$ I can allocate all of product $A_1$. I then need to calculate the average price, which in this case is
$J_{1} = \frac{10*2}{10} = 2$
From $\text{Portfolio}_{2}$ I could allocate all of $A_2, B_2, Z_2$ to meet the monthly demand of $200$ (Note that we also need to allocate products from $\text{Portfolio}_{2} $ to meet the demand for the February group). And the resulting average price would be
$J_{2} = \frac{100*3 + 50*8 + 50*17}{200}$
My objective is to reach a target of all the averages, lets say for the January group this is 50. And for the Febuary group it is 100 I.e.
$J^{*} = \frac{J_1 + J_2 + ... + J_{12}}{12} = 50$
$F^{*} = \frac{F_1 + F_2 + ... + F_{12}}{12} = 100$
So the January group gets products from $\text{Portfolio}_{1},..., \text{Portfolio}_{12}$. The Febuary group gets products from $\text{Portfolio}_{2},..., \text{Portfolio}_{13}$. So as you can see, there is some overlap.
My approach:
I have never worked with multi-objective algorithms before so I am not even sure if they are applicable. So any feedback on my naive approach would be appreciated.
So, as my objective is to reach a target average value, I broke this down to linear programming problems. For example, as I know that the January group has a target of 50, I set up 12 linear programming problems where I allocated products from each portfolio with the objective of reaching a value of 50 for each component, subject to the monthly demand constraint.
I.e., I wanted each $J_1, J_2, ... J_{12}$ to reach a value of 50, subject to meeting the monthly demand constraints. Similarly, for February, I wanted each $F_1,...F_{12}$ to be 100, subject to the monthly demand constraint for the February group.
So my question is essentially if there is a better approach. Rather than having each $J_i, F_i$ be the "annual average target", is there a better distribution?
EDIT:
The confusion I am having with setting this up as a single linear program (where I aim to minimise the sum of absolute deviation from $J*, F*$) is that it seems like I have two types of decision variables now. I have the individual monthly components (the J_i, F_i) and the allocation of products. Where the allocation of products obviously affect the (J_i, F_i). So as $J_i, F_i$ are functions of the product allocations I suppose there is in fact just one decision variable but I am just having a hard time formulating the problem.
So would the problem look something like:
$\min_{J_{1},...,J_{12},F_{1},...F_{12}} [(J^{*} - 50) + (F^{*} - 100)]$
Where I would somehow have to impose the demand constraints on each $J_{i}, F_{i}$? But since (J_i, F_i)'s are average prices, I don't quite see how I can impose demand constraint on them.