Fast Computation of Pareto Set for Bicriteria Linear Programs with Application to a Diet Formulation Problem ()
1. Introduction
Animal diet formulation is a very important problem from an economic and environmental point of view, so it is an interesting example in operations research. Many modern animal diet formulation methods tend to take into account nitrogen and phosphorus excretions that are detrimental from an environmental point of view. Following [1] , it is appropriate to apply a tax on excretions so as to change the behavior of the producers in the swine industry. These changes in behavior are studied using a formulation of the problem as a bicriteria problem and are obtained by the determination of the Pareto set of the problem. For linear models, this Pareto set is a simple polygonal line. This fact implies that changes in behavior of the producers are abrupt and correspond to particular values of the tax. In other words even in increasing the tax it can happen that there is no change in behavior. Behavior changes happend only at very particular values of the tax. We will see that these behaviors correspond to efficient extreme points of the Pareto set, and to every extreme point corresponds a tax interval so that any value of the tax in this interval leads to the behavior given by that extreme point.
The computation and visualization of the Pareto set, also known as the efficiency set, for bicriteria linear programming problems is a useful tool for decision makers. We could try to compute this set in the decision space [2] - [10] , but due to the high dimension of this space, it can be a quite large and complicated set. Methods to obtain this set are also complicated, see for example [11] . Fortunately, the geometric aspect of the Pareto set in the criterion (or outcome) space for bicriteria linear program is quite simple [12] .
The outline of the paper is the following. The bicriteria problem is presented in Section 2. We will see in Section 3, that the Pareto set of a bicriteria linear problem is a simple polygonal line with L + 1 extreme points joined by L adjacent segments. Then in Section 4 we presents the link between the geometric structure of the Pareto set and the weighted-sums approach. Then an elementary algorithm to determine the Pareto set in the criterion space is suggested and its complexity is analyzed. Let us point out that this method uses only elementary result from a linear program solver, that is to say the optimal solution (values of the decision variables). This fact is an interesting property of the method.
Few methods exist for computing the Pareto set in the criteria space. One such method is presented in [13] . The method requires information about the dual, assume the feasible set is compact, and determine the Pareto set with at most 2L + 4 calls to a linear program solver. Another simple method for bi-criteria problems is presented in [12] to obtain the Pareto set in the criterion space. The algorithm is based on information about the reduced costs of all nonbasic variables, which is equivalent to have information about the solution of the dual problem. For bi-criteria linear problems we could also use a parametric analysis to obtain the Pareto set [11] [14] . The last two methods require that the software used to solve a linear program send information about the dual, reduced cost or postoptimal analysis, which is not always possible for a simple linear program solver. Unfortunately, even if it seems that those two methods require around 2L iterations, their complexities are nowhere analyzed. Moreover they can cycle as explained in [15] (pages 281-282), and [16] (pages 162-166).
Finally, in Section 5, we compute the Pareto sets for least cost diet formulation problems for pig, or any monogastric animal, taking into account the nitrogen and/or phosphorus excretions. Tax systems related to efficient extreme points of this problem are described.
2. Bicriteria Linear Programming Problem
Let us consider the standard form of the bicriteria linear programming problem [11]
where x is a column vector in
, and the
's (
) are two row vectors
in
. The feasible set
in
is defined by
, where A is a
-matrix, and b is a column vector in
. Let C be the
-matrix given by
The feasible set in the criterion space
is then
. It is well-known that
and
are polyhedral sets in
and
respectively. Throughout this paper we will suppose that the two criteria are lower bounded on
which means that for
we have
3. Structure of the Pareto Set
3.1. Efficiency Set
A feasible solution
is an efficient solution if and only if it does not exist any other feasible solution
such that 1)
for
, and 2)
for at least one
. The set of all efficient solutions is called the efficiency set noted
, also called Pareto set. The corresponding set in the criterion space is the set
.
3.2. Geometric Structure
Under the assumption that the two cost vectors
and
are linearly independant, Using weighted-sums, we can replace the bicriteria linear programming problem by a single criterion linear programming problem. We consider
and the weighted-sum function is
and we consider the single criteria problem for
The value function
of
is defined by
From [11] we have
Hence the efficiency set
in the decision space is a connected set and is the union of faces, edges and vertices of
. This set may be quite complex due to the high dimension of the decision space. On the other side
, which is the image in
of
by a linear transform, is a much simpler set.
Since we have assumed that both criteria are lower bounded on
, it follows that
is a simple compact polygonal line. Indeed in that case
is the union of a finite number L of segments
where
and such that
with
To each segment is associated a weight
such that the vector
is orthogonal to the segment
in
. To each point Q of
is associated an interval
defined by
where
with
for
.
3.3. Weak Efficiency Set
We will call weak efficiency set, or weak Pareto set, the set defined by
Obviously
. In the criteria space we will have
. Geometrically in the criterion space
, this means we add to
possibly a vertical segment or a ray from
in the positive direction of
,
,
and/or a horizontal segment or a ray from
in the positive direction of
,
,
where
and
are nonnegative finite or infinite values. They are the maximal values of
such that
and
are both subsets of
. To these points on
we set
3.4. Link to Parametric Analysis
The parametric analysis is based on the weighted-sum given by
for
, and the value function in this case is defined by
Instead of
, we could consider the single criteria problem for
Since
and
are related by the formulae
to the efficient extreme points
on the efficiency set
correspond also the following intervals for the parameter
where
In many applications, the parameter
is in fact a tax over the the second criteria (for a minimization problem). Interesting enough is to observe that the behavior change (extreme point) only for the critical values
of the parameter
. Indeed when
increases and its value passes through
, the optimal point, extreme point, move from
to
. Thus, any level of taxes
strictly between the values
and
causes the same behavior described by
.
4. Computation of the Pareto Set
4.1. Preliminaries
Let us associate to any
the weighted-sum function given by
Then the value function
associated to
is such that
Hence we have the following results.
Theorem 4.1. [12] Let
, we have
if and only if
.
Theorem 4.2. [12] Let
and
. Then
and
if and only if
. It follows that Q is one of the
(
).
Theorem 4.3. [17] The function
is continuous, piecewise linear and concave. The abscissae of slope changes are the increasing values
for
.
Let us observe that the slope associated to
strictly decreases for Q going from
to
on
, since
increases and
decreases steadily. We deduce the next results.
Theorem 4.4. [12] Let
and
be two distinct points on
. For
,
is orthogonal to the segment
if and only if
.
Theorem 4.5. Let
and
be two distinct points on
and
, such that
is orthogonal to the segment
. For a fixed
, the function
is constant as a function of Q on the segment
. Let us note this constant value by
. Moreover
1) if
then
,
and
;
2) if
then
.
Theorem 4.6. Let
and
be two distinct points on
. If
is such that
then
. Moreover there exists
such that
and
.
Theorem 4.7. Let
and
be two distinct points on
. Let
and
, and consider the following two lines
and
(A) If
, the point of intersection of
and
is
where
so
and
(B) If
, then
which contains the segment
.
4.2. Algorithm
In this section we consider both criteria upper bounded on
. In the forthcoming algorithm we initialize the process with the two points
and
on
. Then we gradually obtain a sequence of points
on
, and
a sequence of intervals associated to these points
such that
and
At the end of the process
and we have
with
for
.
Algorithm (Pareto bicriteria)
STEP 0. Initialization.
(A) Enter the data of the problem.
(B) Determine
for
and set
. For
and
set
. We get the initial point
which as the same first coordinate as
, and
which as the same second coordinate as
. Those two points might not be on
, but are on
.
(C) Set
and
;
(D) Set
and
;
(E) Set
.
STEP 1. As long that there exists an index i such that
, select one such index i and do:
(A) Find
such that
, hence
such that
is orthogonal to the segment
(see Theorem 4.4);
(B) Solve
, compute
with
;
(C) Update the list of points
and their intervals
:
I) Modification of the intervals. If
then all the segment
is in
(see Theorem 4.5), and
is defined on
by (see Theorems 4.1 and 4.5)
![]()
We modify as follow:
a) for
:
;
b) for
:
;
In the sequel no more point will be generated on
.
II) Point insertion and interval modification. If
then
, insert the point and modify intervals as follows (see Theorem 4.6):
a) Insert
between
and
in the list with
;
b) Set
;
c) If
, then
and any
is in
, hence we modify
by setting
;
d) If
, then
and any
is in
, hence we modify
by setting
.
STEP 2. For any i such that
, remove
from the list and set
.
STEP 3. End of the process (and
). The output is the list
.
Let us observe that this process use only optimal solutions of
, optimal values of the decision variables, which is easily obtained from any elementary linear program solver.
Remark 4.8. This algorithm produces at each iteration an inner and an outer approximation. The inner approximation is the polygonal line joining the
for
. The outer approximation is the polygonal line joining the points
,
,
,
,
,
,
,
,
,
,
, as long as the
’s are well determined (see Theorem 4.7). At the end of the algorithm the two approximations agree.
4.3. Complexity
In this section we are going to determine the maximum number of calls to a linear program solver to completely determine the Pareto set, or equivalently its
efficient extreme points
. The result is given in the last theorem of this section and says that it takes at most
calls to a linear program solver to generates the
extreme points
.
We will use the following ordering on
. For any two distinct points
and
on
, we will say that
precedes
on
, or equivalently that
follows
on
, if moving from on
in the direction from
to
we move from
to
. We will note
or equivalently
.
Theorem 4.9. The algorithm generates at most 3 points on
on
and two of these points are
and
.
Proof. Let us remark that the algorithm will eventually find a point in
for any
. Let
be the first point generated by the algorithm in
. This first point can be generated at STEP 0, an initial point, if
for
or
for
. Otherwise, it is generated through STEP 1-C-II, with
and
. Then this point is included in the list, and there are three cases to study:
1)
for a
and we have
with
. We will have
, or
if the lower bound is modified through STEP 1-C-II-c (if
and
).
2)
for a
and we have
with
. We will have
, or
if the upper bound is modified through STEP 1-C-II-d (if
and
).
3)
for
and we have
.
Let
be the second point generated by the algorithm in
.
must be one of the two points used to generate
, and hence
. This point
is generated through STEP 1-C-II, and it is included in the list. There are two cases to study:
1)
and
, we will have
and
. Consequently
and
with
modified as in the preceding case. Moreover if
we will modify the upper bound to get
.
2)
and
, we will have
and
. Consequently
and
with
modified as in the preceding case. Moreover if
we will modify the lower bound to get
.
Two points of
are now in the list. We can have a point
with
or an extreme point
, with
, or
, with
. Otherwise the two points are the extreme points
and
. In that case, if
and
, it can happen that
and we will have terminated with the interval
. Otherwise let us note
the third point generated in
. There are two cases to study:
1) We have only one extreme point
, or
, of the segment in the list and
. As in the preceding paragraph, we will introduce it in the list, and depending of the case, by passing through STEP 1-C-II,
if
and
, or
if
and
. Moreover, we will have respectively
or
.
2) We already have two extreme points
and
in the list. In that case
and
and we will have
and
. We pass through STEP 1-C-I and we modify the intervals to get
et
. Since
,
is not added to the list.
In the sequel, the algorithm generate no more point on
because if we have two points
and
we have
, or else, if we have three points,
and
and
we have
and
.
Theorem 4.10. If
, respectively
, then
, respectively
, is eventually removed of the list without any supplementary call to the linear program solver.
Proof. When
is introduced in the list, there is no supplementary call for
. Similarly for the interval
when
is introduced in the list. The points
and
are removed from the list at STEP 2 since
and
.
Theorem 4.11. The algorithm generates the extreme points
of the Pareto set in at most
calls to a linear program solver.
Proof. The initialization STEP 0 requires 2 calls. For STEP 1, as we generate the
for
and possibly one supplementary call for each segment
for
, there is at most
calls. Hence the algorithm requires at most
calls.
5. A Real World Application: Pig Diet Formulation
To illustrate our method of computation of the Pareto set we consider the pig diet formulation problem taking into account not only the cost of the diet but also environmental considerations, such as the reduction of nitrogen or phosphorus excretions. One way to analyze this problem is to rewrite the problem as bicriteria problem. Hence the Pareto set indicates the effect of the reduction of excretions, nitrogen or phosphorus, on the cost of the diet. This information is certainly useful for a decision maker which have to choose a diet which decrease the excretions without being too expensive [1] . Even if in thispaper we describe the problem for the swine industry, the method could be applied to any monogastric animal: pig, rabbit, chicken, etc.
5.1. Classical Model
The least cost diet problem, introduced in [18] , is a classical linear programming problem [19] [20] [21] . A decision variable
is assigned to each ingredient and represents the amount (in kg) of the jth ingredient per unit weight (1 kg) of the feed. Together, they form the decision vector
in our model. The model's objective function is the diet cost. A vector of unit costs
is used, where each
represents the unit cost of the jth ingredient (euro/kg or $/kg). Thus the total cost of a unit of weight (1 kg) of diet
is
which must be minimized over the set of feasible diets denoted by
. The classic least cost animal diet formulation model is:
![]()
The constraints impose some bounds on the quantity of the different ingredients in the diet. For example a unit of feed is produced (a 1 kg mix), expressed by the constraint
. Some ingredients, or combinations of ingredients, can be imposed on the diet. These restrictions give rise to equality constraints (=) or inequality constraints (≥ or ≤). More specifically, to satisfy protein requirements, the following constraints are introduced for the L groups of amino acids contained in the ingredients. We set
![]()
where
represents the amount of digestible amino acid l contained in a unit of ingredient j and
is the minimum amount of digestible amino acid l required. Finally, the diet must satisfy the digestible phosphorus requirements
given by
![]()
where
is the amount of digestible phosphorus contained in a unit of ingredient j.
5.2. Modelling of Nitrogen and Phosphorus Excretions
Nitrogen and phosphorus excretions are directly related to the excess of amounts of protein (amino acids) and phosphorus in the diet. Hence, we have to establish the protein and the phosphorus contents of the diet and take into account the parts that are actually assimilated.
The protein content of a diet
is
, where
is the amount of protein per unit of ingredient j. The total excretion of protein
is then given by the amount in protein of the diet from which we remove the amount of protein effectively digested given by
, then
![]()
Hence decreasing the total excretion
is equivalent to decrease the protein content
of the diet while maintained fixed the needs
in protein.
As for the nitrogen, the amount of phosphorus of a unit weight diet
is
, where
is the amount of phosphorus per unit of ingredient j. The amount
is the the amount of phosphorus which is actually digested. In this way the phosphorus excretion
is given by the phosphorus content of the diet from which we remove the amount of phosphorus which is actually digested
![]()
Hence, decreasing the phosphorus excretion
is equivalent to decreasing the phosphorus content
of the diet while maintained fixed the needs
in phosphorus.
5.3. Data
The ingredients and their corresponding variables are described in Table 1. Table 2 contains the entire model together with the values of the technical coefficients of the model.
5.4. Software
The algorithm was programmed in MATLAB, which includes in its standard library the linear program solver called Linprog. This software can use the simplex method or an interior point method.
5.5. Two Criteria Models and Results
At first we analyse the relation between the cost of the diet and the two different excretions (nitrogen and phosphorus). As a curiosity, we also consider the interactions between the two kind of excretions: nitrogen and phosphorus.
![]()
Table 1. List of available ingredients.
5.5.1. Cost and Excretions
We have considered two separate bicriteria models. We look for least cost diets while taking into account the nitrogen excretion for the first model and the phosphorus excretion for the second model. For each of these two bicriteria problems, the Pareto curve indicates the diet cost increase caused by an excretion decrease.
While considering the nitrogen excretion, the problem is :
![]()
Table 3 presents the set of efficient extreme points of the Pareto set in the criterion space, and the Pareto curve is sketched in Figure 1. For this problem, the algorithm detects
segments and 11 efficient extreme points

for
. A total of 22 calls to the linear program solver was required (the predicted maximum is
).
From its associated weighted-sum model given by

Table 3. Efficient extreme points in the criterion space
and the corresponding taxes for
. and the corresponding taxes.
![]()
Table 3. Efficient extreme points in the criterion space
and the corresponding taxes for
. and the corresponding taxes.
![]()
Figure 1. Pareto curve: nitrogen excretion vs diet cost.
we get the following expression for its value function
, defined for
, by
![]()
defined for
, and
. So this expression depends on the interval
in which
is.
For the parametric model given by
![]()
we get the following expression for its value function
defined for
by
![]()
defined for
, and
. So this expression depends on the interval
in which
is.
So we see that for any tax value in
we will always have the same expression for the value function
, or the same behavior given by the efficient extreme point
, and the change in the behavior will happend only when the taxation level
passes through the extremities
or
of this interval
A similar analysis holds for the second bicriteria problem with phosphorus excretion. Indeed, for the phosphorus excretion problem, the model is:
Table 4 presents the efficient extreme points in the criterion space while the Pareto curve is sketched in Figure 2. For this problem, the algorithm detects
segments and 23 extreme points
![]()
for
. A total of 45 calls to the linear program solver was required (the predicted maximum is
).
From its associated weighted-sum model given by
![]()
![]()
Table 4. Efficient extreme points in the criterion space
for
, and the corresponding taxes.
![]()
Figure 2. Pareto curve: phosphorus excretion vs diet cost.
we get the following expression for its value function
defined for
by
![]()
defined for
, and
. So this expression depends on the interval
in which
is.
For the parametric model given by
![]()
we get the following expression for its value function
defined for
by
![]()
defined for for
, and
. So this expression depends on the interval
in which
is.
So we see that for any tax value in
we will always have the same expression for the value function
, or the same behavior given by the efficient extreme point
, and the change in the behavior will happend only when the taxation level
passes through the extremities
or
of this interval.
These problems of taxation are nice examples of abrupt (discrete) changes in behavior depending on the level of taxation of one criterion.
5.5.2. The Two Kinds of Excretion as Criteria
As a curiosity, we have computed the Pareto set for the bicriteria problem where the two kinds of excretions are considered. This bicriteria problem is given by
![]()
Table 5 presents the set of efficient extreme points of the Pareto set in the criteria space. Its corresponding Pareto curve is sketched in Figure 3. This table shows the opposite effect of trying to reduce simultaneously both excretions. Minimizing one excretion leads to an increse in the other excretion. For this problem, the algorithm detects
segments and 6 extreme points. A total of 12 calls to the linear program solver was required (the predicted maximum is
).
For each
, the value function is
![]()
Figure 3. Pareto curve: phosphorus excretion vs nitrogen excretion.
![]()
for
. For all value of the parameter
in the interval
we will have the same expression for the value functionn
or the same behavior
and a change in the behavior will happend for values of the parameter
corresponding to the extremities
ou
of this interval.
Let us observe that the last line of Table 3 (
) corresponds to the first line of Table 5 (
) and the last line of Table 4 (
) corresponds to the last line of Table 5 (
).
6. Conclusion
In this paper we have considered bicriteria linear programming problems and have presented an elementary and efficient algorithm to compute the Pareto set in the criterion space. We have illustrated the method on a real important application. This application also suggests that it could be interresting to extend the method to three-criteria problems. Moreover it could be interesting to compare our method to other methods to find the Pareto set in the criterion space, but it is out of the scope of this paper and could be a nice subject for a future research.
Acknowledgements
This work has been supported in part by the Natural Sciences and Engineering Research Council of Canada and by the canadian corporation Swine Innovation Porc.