Multi-Objective Linear Optimisation Pareto Solution

105 Views Asked by At

I'm looking at optimising weightings over a set of different amounts to achieve a total, whilst minimising the amount over the total these are.

Think: I have macronutrient targets, I want to make sure I hit them but don't go over by an excessive amount so what 'weight' of each meal would I want.

So the constraint is:

$\left( \begin{array} QP_{11} & P_{12} & P_{13} \\ P_{21} & P_{22} & P_{23} \\ P_{31} & P_{32} & P_{33} \\ P_{41} & P_{42} & P_{43} \end{array}\right) \cdot \left(\begin{array} Qw_1 \\ w_2 \\ w_3 \end{array} \right) \ge \left( \begin{array} QT_1 \\ T_2 \\ T_3 \\ T_4 \end{array} \right)$

Whilst we want to minimise:

$\mathrm{min} \left[\left( \begin{array} QP_{11} & P_{12} & P_{13} \\ P_{21} & P_{22} & P_{23} \\ P_{31} & P_{32} & P_{33} \\ P_{41} & P_{42} & P_{43} \end{array}\right) \cdot \left(\begin{array} Qw_1 \\ w_2 \\ w_3 \end{array} \right) - \left( \begin{array} QT_1 \\ T_2 \\ T_3 \\ T_4 \end{array} \right)\right]$

I'm having a bit of trouble on where to start with this though. I know that for a problem with two objectives I could just make one objective as efficient as possible, but not really sure where to start here. And of course if the matrix P was 3x3 if it has an inverse the problem is automatically solved.

I'd also possibly want to expand this to more than three weightings. So any algorithm would need to be extendable to n-objectives and indeed m payoffs.

Are there any names of specific algorithms for this? Ideally something that is suitable for automation given a P matrix and a T vector.

1

There are 1 best solutions below

4
On

Your problem can be summarized as $\min_{s,x}\{s : Ax+s\geq b, s\geq 0\}$. Weighted sum optimization gives a Pareto Solution as long as each weight is strictly positive: $\min_{x,s}\{w^Ts : Ax+s\geq b, s\geq 0\}$. These problems can be solved with the simplex method (available with linprog in scipy or Matlab).