On the Computation of the Efficient Frontier of the Portfolio Selection Problem

An easy-to-use procedure is presented for improving the ε-constraint method for computing the efficient frontier of the portfolio selection problem endowed with additional cardinality and semicontinuous variable constraints. The proposedmethod provides not only a numerical plotting of the frontier but also an analytical description of it, including the explicit equations of the arcs of parabola it comprises and the change points between them. This information is useful for performing a sensitivity analysis as well as for providing additional criteria to the investor in order to select an efficient portfolio. Computational results are provided to test the efficiency of the algorithm and to illustrate its applications. The procedure has been implemented in Mathematica.


Introduction
The portfolio selection problem consists of finding an efficient portfolio in the sense of obtaining a tradeoff between the expected return and the risk of the investment.Most portfolio selection models are based on the original Markowitz model 1, 2 , in which the expected return of a given portfolio is measured by e t x, where e is the vector of mean returns of the assets and x contains the weight of each asset in the portfolio.On the other hand, the risk is measured by x t Vx, where V is the covariance matrix.In general, the matrix V is positive semidefinite, but we will assume that it is positive definite.This is the case if the returns of the assets are linearly independent as random variables.
In these terms, the Markowitz model can be formulated as the following quadratic programming problem, which we abbreviate as continuous variable problem CP as opposed Table 1: Comparison between the ε-constraint and the MPQ method taken from 8 .The first column contains the number of assets, the second one the average CPU-time in seconds for the ε-constraint method calculating a 20-point sample of the efficient frontier the numbers in italics being estimates , and the third one contains the average CPU-time of the MPQ method calculating the exact efficient frontier.As Tables 1 and 2 below show, this method is useless in practice for large instances of CP , and a fortiori for large instances of the much more complex problem with the additional constraints described.However, for medium-sized instances, the standard commercial packages like GAMS 13 or LINGO 14 happen to be powerful enough to deal with the EC1 stage of the ε-constraint method in a few minutes for instance, for a 100-asset sample, GAMS takes about 7 minutes to calculate a 500-point sample .The purpose of this paper is to make a proposal regarding the EC2 stage.
The point is that all the interpolation methods used to this end vary from the linear interpolation providing continuous nonsmooth curves to other classical, relatively simple, interpolation methods providing smooth curves see 15 .The main disadvantage of these methods is that they are good ways for approximating smooth curves by continuous or smooth curves, but looking for a smooth curve is not a good idea when we know that the true curve we are trying to capture is not even continuous.
More precisely, our proposal is an algorithm for calculating locally exact pieces of the efficient frontier around each point in the sample calculated at the EC1 stage of the procedure.It does provide a sequence of intervals together with the equations of the arcs of parabola composing the efficient frontier in each interval, as well as a pair of vectors parametrizing the corresponding efficient portfolio as a function of the expected return.It does not necessarily obtain the exact efficient frontier, but it provides an analytical interpolation of a given sample which is the best interpolation that can be obtained from it, in the sense that it is locally exact, that is, it is exact in a neighbourhood of each point of the sample.Moreover, for small problems it can be adapted to an enumeration algorithm providing the exact frontier.

The KTEF Procedure
Here we describe the kernel of the interpolation procedure that we propose as an alternative for the EC2 stage in the ε-constraint method.It is applied to the following variant of CP , where two vectors l and u of lower and upper bounds for the assets have been incorporated.Hence, we have a continuous bounded variable problem CBP : CBP Min .x t Vx s.t. e t x ≥ r Since it is a continuous quadratic problem, its optimal solution could be obtained theoretically by algebraically solving its Kuhn-Tucker conditions.In order to write them, we need to introduce the Lagrangian function: where λ, μ are real numbers and λ, μ are vectors λ, μ, λ i and μ i being the Kuhn-Tucker multipliers of the problem .Then the Kuhn-Tucker conditions are: primal feasibility: e t x ≥ r,

3.3
We see that all of them are linear equalities or inequalities except for the complementary slackness ones.Each complementary slackness condition splits into two alternative linear equations that, when combined, give rise to 2•4 n systems of linear equations and inequalities, where n is the number of assets considered however, since the equations x i l i and x i u i cannot be satisfied simultaneously, they are immediately reduced to 2 • 3 n .
That is why the explicit resolution of the Kuhn-Tucker conditions is not a viable method, even for a small-sized problem of, for example, 10 variables, the amount of equation systems to be solved being exponentially high.Consequently, this approach is not dealt with in the literature except for very small instances of the problem such as the two-asset case 16 , or in the simplest case consisting of problem CP without the sign constraints, that is, allowing short sales see 17, 18 .One of the main ideas that we plan to exploit here is that if a solution of the Kuhn-Tucker conditions for a given value of r is known in our context, as the result of the EC1 stage of the ε-constraint method , such a solution determines a specific case of the complementary slackness conditions, and in turn a single system of linear equations and inequalities that can be solved parametrically on r.The result is an exact piece of the efficient frontier of CBP .
We have called KTEF the algorithm that partially solves in this sense the Kuhn-Tucker conditions to calculate a piece of the efficient frontier.In order to present it, we formulate some preliminary considerations.
Let us call r − and r the minimum and the maximum expected return of an efficient portfolio.For r > r the portfolio selection problem becomes infeasible, whereas for r < r − the optimal solution is the same as for r r − .Hence, we can assume that r − ≤ r ≤ r .Bearing in mind that we are assuming the variance-covariance matrix V to be positive definite, we know that for each level of return r − ≤ r ≤ r the problem has a unique optimal solution x with expected return exactly equal to r , which is its only Kuhn-Tucker point.This implies that the first constraint in 3.1 is satisfied with an equality: e t x r.

3.4
Hence, when stating the Kuhn-Tucker conditions, we can take this equation as the first primal feasibility condition and delete the first complementary slackness one.
For each variable x i , the pair of conditions λ i l i − x i 0, μ i u i − x i 0 gives rise to three possibilities: Hence, in each case, the index set I {1, . . ., n} splits into three disjoint subsets I L ∪ U ∪ N, where and N I \ L ∪ U .Let us call one of these cases degenerate if it can provide a Kuhn-Tucker point for at most one value of r considered as a parameter of the model .Notice that every case in which N contains at most one index is degenerate.Indeed, if N ∅, the sets L and U determine the whole portfolio x, so that r must be that determined by 3.4 .If N {i 0 }, the value of x i 0 is determined by equation and r is again determined by 3.4 .Since the Kuhn-Tucker conditions cannot provide an interpolation when the given case is degenerate, KTEF stops as soon as this situation is detected, in particular if N contains less than two indices.Otherwise, from the sets L and U, the KTEF procedure solves the Kuhn-Tucker conditions parametrically on r, that is, it calculates two vectors g and h such that the optimal portfolio is x g rh, 3.8 for all r varying in a certain interval r min , r mix , also determined by KTEF.Moreover, it also calculates the coefficients a, b, c such that the efficient frontier over the above-mentioned interval is the arc of parabola described by the quadratic equation ar 2 br c.
Inputs V, e, l, u, L, U. Step Step 10 Define a set UB of upper bounds for r containing: Step 11 Define r max min UB.
Step 12 If r min ≥ r max the case is degenerate STOP .
See Algorithm 1 for the pseudocode of the KTEF-procedure.The details of the calculations, together with the justification that it actually solves the Kuhn-Tucker conditions, can be found in the Appendix.Notice that the output of the algorithm also contains the terms λ 0 , λ 1 , λ L0 , λ L1 , μ U0 , μ U1 which determine the Khun-Tucker multipliers.See the Appendix for their specific meaning.

Computing the Efficient Frontier
In this section, we present a KTEF-based procedure, which we call KTEF-S see Algorithm 2 for the pseudocode , for performing the second stage of the ε-constraint method EC2 for the portfolio selection problem endowed with semicontinuous variable and cardinality constraints additional linear constraints can also be included in our proposal without modifying it essentially, but we will not consider it in practice for the sake of clarity .

Semicontinuous Variables
Portfolios with many small nonzero weights are usually considered unacceptable by many investors and, on the other hand, the investor may also impose upper bounds for the sake of Inputs V, e, l, u, { x j , y j } k j 1 .For each j 1, ..., k a Let x j , e j , l j , u j be the vectors obtained from x j , e, l, u, respectively, by deleting the components corresponding to indexes i such that y ji 0. b Calculate L j and U j from x j according to 3.6 End Eliminate the terms in the sequence { x j , y j } k j 1 giving rise to repeated terms in the sequence { y j , L j , U j } k j 1 .For each j 1, ..., k a Let V j be the submatrix of V obtained by deleting the rows and columns for which y ji 0. b Call KTEF V j , e j , l j , u j , L j , U j , which provides an interval r min j , r max j and the coefficients a j , b j , c j of the equation of an arc of parabola.on error KTEF Algorithm 2: The KTEF-S algorithm.
diversification.Since it would be absurd to force the portfolio to contain a minimum amount of each possible asset, we need to declare each weight x i as a semicontinuous variable, that is, allow it to take the value 0 or, in another case, to vary within a given interval l i , u i .

Cardinality Constraints
They appear as diversification constraints, introducing into the model an investor's preferences about how many assets an acceptable portfolio must contain, or even how many assets it must contain from several fixed groups of assets.
Semicontinuous variables can be incorporated into the model by means of auxiliary binary variables, obtaining the following semicontinuous variable problem SCP :

4.1
Here y i takes the value 1 if the ith asset appears in the portfolio and 0 otherwise.We have added hats to the problem data in order to keep the notation of KTEF when called later.The binary variables y i can also be used to incorporate the cardinality constraints.For instance, we can impose where m and M are, respectively, a lower and an upper bound on the number of assets composing the portfolio.Similarly, some bounds can be imposed on the number of assets taken from a specific subset.Any such cardinality constraint i.e., any condition on the binary variables y i can be added without altering our method at all.The input of the KTEF-S algorithm is the output of the first stage of the ε-constraint method EC1 , namely, a dotted sample { x j , y j } k j 1 of the efficient frontier calculated by means of any suitable procedure for medium-sized problems, many commercial packages like GAMS or LINGO can be used .
For each point x j , y j , we apply KTEF to the instance P y of the problem CBP obtained by removing the variables x i from SCP with any set of additional cardinality constraints such that y i 0. This provides an interval r min j , r max j and the coefficients a j , b j , c j of the equation a j r 2 b j r c j of an arc of parabola, which is a piece of the exact efficient frontier of the problem P y .In order to compare the arcs defined on the possibly overlapping intervals r min j , r max j , we extend them to the functions where K is a large enough number greater than any possible level of risk .Function R j r provides the lowest level of risk that we can find for a given level of return r from the fact that we know that x j , y j is an efficient portfolio for SCP where R r K means that we cannot find any efficient portfolio from this fact .The best risk we can find for a given r is R r min j R j r .The last part of the KTEF-S calculates the function R r , which is the best approximation to the efficient frontier that we can get from the sample.
We want to calculate the function R r min j R j r expressed as a sequence of lines and arcs of parabola on a respective sequence of intervals.The extreme points of these intervals i.e., the points where the minimum of the functions R j changes from being attained at one index j 0 to being attained at another one j 1 can be of three different kinds.
1 The intersection point of two arcs of parabola corresponding to two different sample points, that is a point r satisfying a i r 2 b i r c i a j r 2 b j r c j .

4.4
Notice that it is also necessary for r to belong to the domains of both parabolas, that is, The intersection point of an arc of parabola of an R j r with the first constant piece of another R j r , that is, a point r satisfying a j r 2 b j r c j a j r 2 min j b j r min j c j , 4.6 with r min j ≤ r ≤ r max j , j / j .
3 The end point of an arc of parabola, that is, one of the points r max j .Figure 1 shows an example of each type of change point.The KTEF-S procedure calculates the finite set Points of all points of type 1, 2, 3, so that the set of all change points will be found as a subset of Points.For technical reasons, we also include the minimum r min of all r min j .To select the subset Change of change points from the set Points, we order Points {p 1 , p 2 , . . ., p s } and calculate the middle points m k p k p k 1 /2.Let t k be the index j where the minimum min j R j m k is attained.Since m k < p k 1 < m k 1 , if t k / t k 1 , there must be a change point between m k and m k 1 , which should be p k 1 , since it is the only member of Points in that interval.Hence the set Change can be obtained as the set of the points p k 1 such that t k / t k 1 .Notice that we never check if p 1 really is a change point, but we clearly have p 1 r min , which cannot be a change point.We also define a set Good containing the indexes t k 1 such that t k / t k 1 .Hence, if we enumerate the elements of Change as {r 1 , r 2 , . ..} and those of Good as {g 1 , g 2 , . ..}, we have that, for r ∈ r i , r i 1 , the minimum R r min j R j r is attained at R g i r .The data corresponding to indexes outside Good can be dismissed.
The output of the procedure consists of the sequence {r i } of change points together with the sequence { a i , b i , c i } of coefficients of parabola corresponding to the efficient frontier over the interval r i , r i 1 .

Applying the KTEF Procedure to the Continuous Case
Although there are more efficient methods for computing the efficient frontier of a linear constrained continuous portfolio selection problem, it should be mentioned that in this case KTEF provides an interesting alternative to the usual ε-constraint method i.e., the two-stage procedure described in the introduction which also provides the exact efficient frontier.The idea is that instead of first calculating a sample for an arbitrary sequence of expected returns, the KTEF algorithm can guide the selection of the sample so that the number of calls to the solver that calculates the sample points is reduced to the minimum necessary to get the exact frontier.
Let us describe this procedure, which we have called KTEF-C, which applies KTEF to the continuous case see Algorithm 3 for the pseudocode .Besides calling the KTEF procedure, it also uses a subroutine H whose inputs are the data V, e, l, u of the model together with a level of return r and whose output is the efficient portfolio x for that r.As we have mentioned, the procedures implemented in the usual commercial standard optimization packages such as GAMS or LINGO are widely used for sampling efficient frontiers and they are capable of dealing with any reasonable problem.
At the beginning of the KTEF-C procedure, another subroutine R is called once in order to calculate r as the maximum return that can be attained on the feasible set of 3.1 without the first constraint.
The output of the KTEF-C algorithm is a set S containing a sequence of outputs of KTEF, that is, of the form where the intervals r min , r max are almost disjoint they have at most their endpoints in common and cover the whole interval r − , r of the efficient frontier, the corresponding vectors x g rh parametrize the efficient portfolios, and the parabolas ar 2 br c parametrize the efficient frontier.The rest of the data parametrize the Kuhn-Tucker multipliers.
Notice that the loop starting in the line labeled 2 must end after a finite number of iterations, since there is a finite number of possibilities for L and U and each degenerate case corresponds to at most one value of r.Hence, there is just a finite number of possible values for r giving rise to a degenerate case.In practice, the probability of choosing an r corresponding to a degenerate case is very small, so that the error case will never hold.
Each time the main loop starting in 1 is executed, a new nondegenerate interval r min , r max is found.Since the number of such nondegenerate intervals is finite because the number of nondegenerate possibilities for the sets L and U is also finite , the KTEF algorithm always stops, and the number of iterations is exactly the number of nondegenerate intervals composing the efficient frontier, that is, the least necessary number of iterations needed to compute the whole efficient frontier.
Finally, we note that the non-degenerate intervals cover the whole interval r − , r , since if C denotes the union of such intervals, then C is a closed subset of r − , r whose complementary set is finite, and hence closed.The connectedness of the interval implies that C r − , r , that is, that all the Kuhn-Tucker points appear in the non-degenerate cases.That is why the degenerate cases can be disregarded.

Testing the Algorithms
In this section, we present some computational results in order to test the efficiency of our proposed algorithms.We have used a database of historical data of 1000 assets taken from the Russell 2000 stock market index 19 .The percentage of zero entries of all the covariance matrices considered in our computational proofs oscillates between 10% and 18%, so they are far from being sparse.The EC1 stage of the ε-constraint method has been handled with GAMS and our algorithms for the EC2 stage have been implemented in Mathematica.
For the continuous case, it is well known see Section 1 that there are much more efficient procedures than ε-constraint.For instance, in Table 1 we reproduce a table from 8 comparing the ε-constraint method with the MPQ method proposed by Steuer, Qi and Hirschberger, which calculates the exact efficient frontier.We see that the CPU-times of the MPQ method are substantially better and also that the ε-constraint method becomes inviable for large instances of the problem.We also refer to Table 12.1 in 12 , where two variants of the ε-constraint one using the so-called "Wolfe-simplex algorithm" and a second one using Matlab are compared with MPQ, Markowitz's critical line algorithm and the improved version of the latter proposed by those authors.The largest case considered for the ε-constraint method corresponds to a 500-asset instance and the reported Matlab CPU-time is 141.6 seconds per point.
On the other hand, for the semicontinuous case no alternative is known, and the CPUtimes of solving mixed integer programs are much greater.Table 2 contains the mean CPUtime per point we have obtained for some instances with a different number of assets in the continuous and semicontinuous case.We have obtained better times than those of 8 for the continuous case but presumably the MPQ results would be similarly improved by a faster computer and the CPU-times for MPQ in Table 1 are better than ours in any case .In the semicontinuous case, the EC1 stage of the ε-constraint method becomes inviable for 600-asset instances of the problem, and barely useful for 400-asset instances for which a, say, 20-point sample requires about three and a half hours of computations .
However, these considerations concern to the EC1 stage of the ε-constraint method whereas our algorithms deal with the EC2 stage.Hence, once it is assumed that the εconstraint method is to be used because of its simplicity in the continuous case or out of necessity in the semicontinuous one , the only possible comparison would be with the usual interpolation methods.These methods vary from the simple piecewise linear interpolation i.e., joining a given sequence of dots with straight lines to methods that are a bit more sophisticated, guaranteeing that the resulting curve will be differentiable like spline interpolation 15 .These methods are implemented in almost every commercial package, their computational time is negligible, and it is even disregarded when computing CPU-times of the ε-constraint method.Thus, it is obvious that our algorithms for interpolating a given sample of the efficient frontier by means of the Kuhn-Tucker conditions will take necessarily more time than the usual ones, which simply adjust small degree polynomials.Hence, we can only test our algorithms in the sense of granting that, for those instances of the problem for which the ε-constraint method is viable, the CPU-time added by our interpolation method is acceptable in view of the advantages it provides.
In this way, Table 3 contains the CPU-time which needs the KTEF-S algorithm to process one case i.e., a given choice of sets L, U, and N as a function of the number of assets.We need to deal with "time per case" because several points of a given sample can correspond to the same case, and hence even starting with equal length samples, the number of processed cases may differ.
Our computations show that the CPU-time of KTEF-S depends polynomially quadratically, in fact on the number of cases arising from the input sample.For instance, Figure 2 shows that this function fits almost exactly its quadratic least square approximation in a 50-asset example.We have observed the same almost exact fitting in all cases we have checked.All the obtained parabolas have a very small second derivative.Table 4 shows some equations of the interpolating parabolas we have obtained.Let us also remark that the CPU-time corresponding to the calls to KTEF is just a minor percentage of the total CPU-time.For instance, from the 6.46 seconds used to process the 98 different cases generated from a 100-point sample in the instance used to generate Figure 2, only 0.11 correspond to the calls to KTEF.The rest corresponds to the computation of the change points.

Analysis of the Efficient Frontier
In this section, we present some examples illustrating the possibilities of analyzing the efficient frontier provided by our algorithms.The main idea is that when the efficient frontier is calculated by means of any of the usual interpolation methods, that is, mathematical techniques for obtaining in the simplest way a continuous or even smooth curve from a finite set of points, the only economical information contained in the result is a finite set of efficient portfolios, since the interpolating arcs have no economical meaning.This suffices to plot the frontier with enough accuracy so that an investor can choose a level of return taking into account the corresponding risk level.On the other hand, the interpolations made by means of our algorithms have a precise economical meaning since, starting from a sufficiently large sample of the frontier, they provide the exact frontier, specifically, a piecewise parametrization of the infinite set of efficient portfolios and in particular the change points, that is, the return values where the composition of the efficient portfolio changes.
This leads to the question of how many points are necessary in order to obtain the exact efficient frontier.In the continuous case, the KTEF-C algorithm determines the exact number of points that are needed, whereas in the semicontinuous case we cannot say anything a priori.Table 5 contains the number of arcs of parabola and number of portfolio compositions found from different samples for different instances of SCP .We have checked 50 different instances they are taken from the database used in previous section, except for the 88-asset case, which is considered in Example 7.1 of several sizes but, since there is no obvious way of aggregating the results, we have opted for showing a few representative cases.Notice that Table 5 shows that the complexity of the frontier is not proportional to the number of assets.
In all the cases, we have considered the difference on the number of compositions found from a 1000-point sample and that found from a 5000-point sample does not exceed two additional cases.This means that in the frontier calculated in the first case, there are a few very small intervals where a slightly better composition exists.It is clear that finding these small corrections does not compensate the additional computational effort required by the EC1 stage of the ε-constraint method we note also that the number of intervals found does not seem to stabilize, but this concerns to the set of constraints being active for each return level, which is of minor interest for an investor .Hence, our computational results indicate that a 1000-point sample is a reasonable size, at least for 100-asset instances.However, we must remark that, in practice, it is more convenient to draw a rough version of the efficient frontier so that the investor can choose the particular zone where he or she would invest, according to the tradeoff between risk and return he or she considers acceptable, and then calculate a, say, 200-or 500-point sample of that particular zone, providing easily a more accurate description of it that what we could obtain for the whole frontier from a 5000-point sample.In this way, larger instances of SCP can be handled in a reasonable time.In any case, the fact is that postprocessing the sample by using the KTEF-S procedure instead of a typical interpolation offers many advantages with only a small additional CPUtime.The most immediate one is obtained at the very first step of the algorithm, where the sample is filtered to retain just one point for each Kuhn-Tucker complementary slackness case.For instance, as Table 5 shows, a 1000-point sample is immediately reduced to a subsample with less than 100 points without any loss of information at all, since the Kuhn-Tucker conditions applied to the reduced sample provide a representation of the efficient frontier which exactly interpolates all the removed points.Hence, our algorithm makes the previously discussed convenience of working with medium-sized or large samples viable.Moreover, our algorithm not only greatly simplifies the output of the standard ε-constraint

Continuous Case
We have considered a continuous instance in which each weight is bounded in the interval 0, 0.2 .Figure 3 shows the exact efficient frontier resulting.It comprises 32 arcs of parabola over the intervals 0.00809875, 0.0237277 of expected returns and 0.000491689, 0.00209849 of risk levels.After applying our algorithm, not only do we have the picture of the efficient frontier but also all the related data about the efficient portfolios and Kuhn-Tucker multipliers.This information can be used to perform a sensitivity analysis of a given solution.For instance, if we set a return level r 0.01, the optimal portfolio contains the following 16 assets: BBVA, BDL, CAF, CEP, CUN, IBE, POP, REE, RIO, SOS, STG, TEF, TST, UNF, UPL, and ZEL.However, in Table 6, we see that this solution is only valid over a very small interval  of returns, namely 0.995887, 1.00018 .For r in this interval, the efficient portfolio is given by the expression x g rh, where g {0.21428, −0.105007, −0.122125, −0.0503289, 0.

7.1
For a return level r 0.9%, the efficient portfolio differs from the original one in four assets.This could be checked just by simply solving the problem for this value of r.However, our additional computations allow us to trace the changes in the efficient portfolio as the return decreases.This is shown in Table 6, where we see that assets AND, MCM, and IBG enter the portfolio successively and that finally asset BBVA exits.On the other hand, the number of assets in the efficient portfolio also grows if we increase the return level, but this is just a local behavior, since, as Figure 4 shows, the number of assets globally decreases as the return increases.Our method guarantees that the analysis is exact and we can see that there are many unstable portfolios in the sense that a small change in r may produce a change in the composition of the portfolio.This analysis can also be used to study the convenience of introducing cardinality constraints into the model.Moreover, the equations parametrizing the efficient frontier also given in Table 6 provide a sensitivity analysis of the risk with respect to the return level.

Semicontinuous Case
Next we deal with the same data, but considering semicontinuous variables in the range 0.05, 0.2 and cardinality constraints specifying that the total number of assets in a portfolio must vary within the range 5-10.We apply KTEF-S to equally spaced samples of the efficient frontier.The number of intervals found is indicated in Table 5. Figure 5 a shows the whole efficient frontier calculated from a 600-point sample.The calculations from a 30-point sample provide an almost equal picture, but the larger the sample, the more accurate is the structure we obtain.For instance, Figure 5 b shows an enlargement of the neighborhood of the return value r 0.0229.We see that the convexity and the continuity that the frontier shows on a large scale fail when examined more closely, and these details are missed when considering a smaller sample.We note that the economic theory about the portfolio selection problem relies partially on the continuity and convexity of the frontier, which is granted in the continuous case, but fails in the semicontinuous one, and hence it is relevant to know to what extent it can fail in the specific zone of the frontier where the investor intends to choose an efficient portfolio.On the other hand, if there are different portfolio compositions with similar levels of risk and return, an investor could prefer one of them for other reasons beyond these two values.Hence, knowing the variation in portfolio structures along the frontier is also relevant to making a sensitivity analysis of the problem.

Continuous Case
For this kind of small problem there is no need to call any optimization package.We can apply KTEF to an enumeration of all possible cases for the sets L and U.More precisely, from the 3 5 243 cases, many of them can be removed a priori since they are degenerate leaving Figure 6 shows the efficient frontier of the problem in which the six intervals are highlighted with dots.These are listed in Table 7 together with their corresponding sets L and U, as well as the equation of the corresponding piece of the efficient frontier.
From these equations, we can calculate the derivative of the frontier or, alternatively, notice that it is just the Kuhn-Tucker multiplier λ r associated with the return constraint, which is also given by the algorithm.This derivative allows us in turn to study the smoothness of the frontier.Figure 6 shows also the derivative in the present example, and we see that it is discontinuous at all the points where the equation changes, which means that the efficient frontier is not smooth at these points.For instance, the left and right derivatives at the first change point are, respectively R − 0.107478 0.658789, R 0.107478 0.685976.

7.2
The difference between them is small, so the discontinuity could be difficult to detect without an exact procedure.On the other hand, the jumps can also be large, as at the last change point, where we have R − 0.1236 2.8206, R 0.1236 5.98189.

7.3
This means that starting from a return level near to r 0.1236, the risk of the optimal portfolio is especially sensitive to a small change in r.
The algorithm allows us to calculate the Kuhn-Tucker multipliers.For instance, Table 8 gives the optimal solution for a desired return r 0.11.It contains the optimal values for the variables x i as well as the minimum risk R 0.0444663.The last row contains the nontrivial multipliers, for example λ is the multiplier of the return constraint, that is, the ratio between the increase in the minimum risk and the increase in the specified desired return.Notice that the multiplier μ of the capital constraint is of no interest since the constant 1 on the right-hand side cannot be modified.

Semicontinuous Case
We have considered semicontinuous variables with bounds l 0.2, 0.3, 0.2, 0.3, 0.2 , u 0.6, 0.6, 0.6, 0.6, 0.6 and the cardinality constraint 4.2 with m 2, M 5. Applying KTEF-S to an equally spaced 20-point sample, we get the frontier shown in Figure 7 a .We know that this is in fact the true frontier since we obtain the same result if we apply the exact algorithm consisting of changing the first loop of KTEF-S by an enumeration of all the possibilities for V, e, l, u, L, U. Figure 7 b shows the true frontier together with a standard interpolation of the sample, and we see that there are some remarkable differences.The frontier consists of 12 arcs of parabola with 19 change points, such that the interval between two of them corresponds to an arc or to a vertical line.

Conclusions
Solving the Kuhn-Tucker conditions is a theoretical way of tackling the portfolio selection problem which can be used in very restrictive cases in practice, since it gives rise to nonacceptable exponential CPU-times.Our results show that, however, the Kuhn-Tucker conditions can be efficiently used as an interpolation procedure for the final stage of the εconstraint method, since the CPU-times remain quadratic and, moreover, they turn out to be very small when compared with the CPU-time needed for the first stage.
The interpolation algorithms proposed here are very simple conceptually, and they can be implemented by short codes in any general purpose application like Mathematica, Matlab, and so forth the most complicated operation to perform is the computation of an inverse matrix .This feature, together with the popularity of the ε-constraint method for graphing efficient frontiers, makes our method competitive even with the existing alternatives for the continuous case, since they require more complex implementations not easily available for the economist user that is not a specialist in computation tasks, which, with the aid of our proposal, can get much more than a graph with a relatively small additional CPU-time.
Moreover, our interpolation method has been shown to remain effective when applied to problems with semicontinuous variable and cardinality constraints.For this kind of problems, the ε-constraint is the only known applicable method, and it requires large samples to provide faithful graphs of the frontier.We have shown that, by means of our nontrivial interpolation method, large samples of about 1000 points of the efficient frontier are reduced to a set of less than 100 intervals with its corresponding equations, containing even more information than the original sample.
In general, our procedure provides a simple, structured, analytical expression for the efficient frontier, which is easier to handle than the sample it is calculated from.
For small-sized problems, the analytical description of the frontier obtained with our method is exact, whereas for medium-sized instances, we have shown that a 1000-point sample of the whole frontier or a proportionally reduced sample of a part of it provides a reasonable approximation of the exact frontier in the sense that larger samples provide very few additional portfolio compositions valid for very short intervals that do not compensate the additional computational effort.
In the continuous case, our method determines the minimal sample that is needed to obtain the exact frontier.
For very small instances with no more than seven or eight assets , it can be adapted to an exact enumeration algorithm not to be confused with KTEF-C or KTEF-S that does not require any sample of the efficient frontier.This can be useful for academic purposes.
We have illustrated by two examples the advantages and possibilities provided by our proposal.In general, the computational results show that the shape of the efficient frontier is different in small and medium-sized instances.
i For small-sized problems notice that many private investors are interested in selecting portfolios from a small-sized set of assets , although they are computationally simple to handle, the shape of the efficient frontier can present many irregularities discontinuities and sudden changes of slope which must be taken into account since the risk of an efficient portfolio can be very sensitive to the selected expected return.Hence, the information provided by our method could make an investor move his or her choice to a safer or a more profitable one.
ii As the number of assets increases, the efficient frontier becomes more regular at a large scale, and hence its "microscopic" irregularities are not relevant.However, very small changes in the selected expected return can alter the composition of the corresponding optimal portfolio.In this case, our procedure provides the investor with the intervals where each composition is efficient, so that he or she can select according to additional preferences among several options practically indistinguishable with respect to risk and return.
where A.9 Of course, this requires D not to be 0. In this way, notice first that since V −1 0 is positivedefinite, B > 0 and C > 0. Also r − e t N b.Thus, we see that we are considering a degenerate case, since it can only provide a Kuhn-Tucker point for at most one value of r that given by the previous equation .Therefore, we can assume that D > 0.
Incorporating A.8 into A.4 , we obtain x N g N rh N , where A.11 Therefore, 3.8 is fulfilled taking g g N , b , h h N , 0 .Moreover, decomposing λ λ L , 0 and μ μ U , 0 , where λ L resp., μ U denotes the part of λ resp., μ corresponding to the indexes of L resp.U , we can calculate λ L and μ U from the stationary point conditions corresponding to the indexes in L and U, respectively, A.12 So we have obtained a unique point x, λ, μ, λ, μ satisfying the Kuhn-Tucker equalities for the fixed case.However, it must also satisfy the inequalities to be a Kuhn-Tucker point.In order to make these conditions explicit, let us show how the multipliers depend on r.From A.8 and incorporating 3.8 into A.12 , we obtain A.17 These inequalities provide a finite set of lower and upper bounds for r, which in turn determine a closed interval r min , r max .We conclude that the current case provides a Kuhn-Tucker point just for r min ≤ r ≤ r max .If r max ≤ r min , we will again have a degenerate case.Finally, the minimum risk for a given return within the interval r min , r max is given by R r g rh t V g rh ar 2 br c, A.18 where a h t Vh, b 2g t Vh, c g t Vg. A.19 The KTEF procedure consists of these calculations arranged as the algorithm described before.Its inputs are the data of the model 3.1 together with the sets of indices L and U, and it provides among its outputs a parametrization ar 2 br c of a piece of the efficient frontier of the problem together with the possibly empty interval r min , r max in which it is valid.

Figure 2 :
Figure 2: CPU-time in seconds taken by KTEF-S as a function of the number of processed cases for a 50-asset instance, with its least-square quadratic approximation superimposed.

Figure 4 :
Figure 4: Number of assets in the optimal portfolio.

Figure 5 :
Figure 5: The whole efficient frontier of the problem and a zoom of a part of it.

Example 7 . 2 .
We now consider five assets from the historical data introduced by Markowitz 2 , namely, American Tobacco, AT&T, United States Steel, General Motors and Atcheson, and Topeka & Santa Fe.We have established the bounds 0.1 ≤ x i ≤ 0.3.

Figure 6 :Figure 7 :
Figure 6: The exact efficient frontier of a five-asset problem a and its derivative b .

Ae N − B1 N t V − 1 0
Ae N − B1 N BD.A.10 Hence, we will have D > 0 provided that Ae N − B1 N 0. But clearly, Ae N − B1 N 0 only if e N e 0 1 for a certain e 0 ∈ R, and therefore A.2 give e 0 1 − 1 t N b

Table 2 :
CPU-times in seconds per point of the EC1 stage of the ε-constraint method in the linear and semicontinuous case as a function of the number of assets.The results are mean values obtained by calculating ten 20-point samples corresponding to ten different sets of real data, except for the numbers in italics, which have been obtained by solving a single instance of a single problem computations have been made with GAMS .

1
Set N L ∪ U, N {1, . ..n} ∼ N , extract the vectors e N , e N Calculate λ L0 , λ L1 , μ U0 , μ U1 according to A.15 .Step 8 Define a set LB of lower bounds for r containing: has stoped in a degenerate case discard the point.Endi Define the functions R j r given by 4.3 .iiLetPoints {r max j |j 1, ..., k} ∪ {r min }, where r min is the minimum of all {r min j } j .Points any r ∈ Roots satisfying r min j ≤ r ≤ r max j .Points l Points l 1 /2 for each l.iii Calculate the vector T such that T l is the index j where min j R j m l is attained.iv Let Good {T 1 }, let Change {r min T1 }.
i Append to Change the last point of Points.ii Set a i , b i , c i a gi , b gi , c gi where g i is a short for Good

Table 3 :
CPU-time in seconds per case processed by the KTEF-S algorithm.The results are mean values obtained from ten 30-point samples corresponding to ten different sets of real data computations have been made with Mathematica .

Table 4 :
Some least-square approximation of the CPU-time in seconds of KTEF-S as a function of the number of processed cases.

Table 5 :
Number of intervals arcs of parabola /portfolio compositions found from different samples for several instances of SCP .

Table 6 :
Sensitivity analysis of an efficient portfolio.

Table 8 :
An optimal solution.After applying the algorithm, only 6 provide a piece of the efficient frontier.