Optimization with Linear Complementarity Constraints

A Mathematical Program with Linear Complementarity Constraints (MPLCC) is an optimization problem where a continuously differentiable function is minimized on a set defined by linear constraints and complementarity conditions on pairs of complementary variables. This problem finds many applications in several areas of science, engineering and economics and is also an important tool for the solution of some NP-hard structured and nonconvex optimization problems, such as bilevel, bilinear and nonconvex quadratic programs and the eigenvalue complementarity problem. In this paper some of the most relevant applications of the MPLCC and formulations of nonconvex optimization problems as MPLCCs are first presented. Algorithms for computing a feasible solution, a stationary point and a global minimum for the MPLCC are next discussed. The most important nonlinear programming methods, complementarity algorithms, enumerative techniques and 0− 1 integer programming approaches for the MPLCC are reviewed. Some comments about the computational performance of these algorithms and a few topics for future research are also included in this survey.


INTRODUCTION
A mathematical problem with linear complementarity constraints (MPLCC) [22,60,70,76] consists of minimizing a continuously differentiable function on a set defined by a general linear complementarity problem (GLCP). The standard form of this problem is stated as follows: subject to Ew = q + Mx + N y (2) x ≥ 0, w ≥ 0 ( 3 ) y ∈ K y (4) x T w = 0 where E ∈ R p×n , M ∈ R p×n , N ∈ R p×m , and K y is a polyhedron in R m . Since the variables x i and w i are nonnegative, then the constraint (5) is equivalent to n inequalities x i w i = 0, i = 1, . . . , n. So in each feasible solution of the MPLCC, for each i = 1, . . . , n, at least one of the variables x i or w i must be equal to zero. These variables are called complementary and lend the name to the problem. In many applications of the MPLCC, some of the variables x i are unrestricted in sign and their complementary variables w i are equal to zero. In this paper we only concentrate on the Standard Form (1)- (5), but most of the ideas and algorithms are easily extended to the latter mixed form of the MPLCC.
The MPLCC is called a Linear (Quadratic) Programming Problem with Linear Complementarity Constraints and is denoted by LPLCC (QPLCC) if its objective function f is linear (quadratic).
The MPLCC seems to be introduced in the papers of Ibaraki [43] and Jeroslow [44] and became very important later as a tool for finding global minima of bilevel programming problems [8,12,18,21,37,47]. Many other formulations of nonconvex programs and applications of the MPLCC have been discussed in the past several years [1,2,10,11,19,22,33,41,40,55,60,61,63,67,70,73,76,80,87]. In this paper we surveyed the most important applications of the MPLCC and formulations of problems as MPLCCs with special emphasis on bilevel, bilinear and nonconvex quadratic programming problems and the eigenvalue complementarity problem.
During the past several years, a great interest has emerged on the design and implementation of efficient algorithms to deal with the MPLCC. Three important issues are related with the solution of an MPLCC, namely the computation of a feasible solution, a stationary point and a global minimum. Finding a feasible solution of the MPLCC consists of solving the GLCP defined by the constraints (2)- (5). This problem is in general NP-hard [54], but it can be solved efficiently for the most important applications and formulations by special purpose algorithms or local nonlinear programming methods. In general, an enumerative technique or 0 − 1 Integer Linear Programming should be used to compute such a feasible solution or to show that the MPLCC is infeasible.
As stated before, any feasible solution (x, y, w) of the MPLCC has to satisfy n complementarity conditions x i w i = 0, i = 1, . . . , n. Due to the similarity with 0 − 1 integer programming, branch-and-bound algorithms were the first techniques to be designed for the computation of a global minimum to the MPLCC [2,6,12,16,23,37,52,87]. The algorithms exploit a binary tree that is generated based on the dichotomy that x i = 0 or w i = 0. Lower-bounds are computed in each node by solving some appropriate relaxed convex program in order to alleviate the search in the tree. RLT, SDP and cutting-planes [17,64,82] have been recommended to the LPLCC for such a goal and can also be used for the QPLCC [13]. The MPLCC can also be reduced into a 0 − 1 integer program [35,40,39,61,82] and solved by some appropriate technique.

JOAQUIM JÚDICE 561
A sequential algorithm was introduced in [47] for solving the LPLCC associated to a linear bilevel program and subsequently improved and applied to other LPLCC formulations [46,48]. The method computes strongly, M-or B-stationary points of the LPLCC with strictly decreasing objective function values until terminating with an approximate global minimum that is usually a global minimum of the LPLCC.
The three different approaches mentioned above are particularly effective for the LPLCC and are also useful for solving QPLCC and MPLCC with convex objective functions. In this paper, we discuss the benefits and drawbacks of these techniques.
The organization of this paper is as follows. In Section 2 some applications and reformulations of optimization problems as MPLCC are surveyed. Section 3 addresses the computation of a feasible solution to the MPLCC. The definitions of strongly, M-and B-stationary points and algorithms for computing such points are discussed in Section 4. The most important techniques for finding global minima of LPLCC and MPLCC are reviewed in Sections 5 to 8. Finally some conclusions and topics for future research are presented in the last section of the paper.

APPLICATIONS AND FORMULATIONS OF NONCONVEX OPTIMIZATION PROBLEMS
The MPLCC has found a large number of applications in several areas of science, engineering, economics and finance. Stackelberg games, market and traffic equilibrium models, contact problems, telecommunication network models, portfolio selection problems and machine learning are some examples of important applications of the MPLCC. We recommend [19,33,60,76] for good descriptions of these applications. The MPLCC has also been very useful as a tool for solving NP-hard optimization problems. These problems are first reformulated as MPLCCs and then solved by appropriate MPLCC techniques. Examples of important optimization problems that should be reformulated as MPLCCs are nonconvex quadratic programming, bilinear programming, bilevel programming, linear complementarity problem, eigenvalue complementarity problem, total least-squares, absolute value programming, optimization with cardinality constraints, computation of independent (or clique) number and estimation of the condition number of a matrix [1,2,10,11,19,22,33,41,40,55,60,61,63,67,70,73,76,80,87]. Next, we address four of these reformulations.
A bilevel programming problem (BPP) [8,18,21] contains a hierarchy between two optimization problems, where the constraints of the leader's problem at the first level are defined as part of a parametric problem considered at a second level and called the follower's problem. In this paper we assume that the remaining constraints of the leader's problem and the constraints of the follower's problem are all linear and that the follower's function is convex and quadratic. Hence the BPP can be defined as follows: Minimize f (x, y) subject to Cx + Dy = r y ∈ K y (6) where f is a continuously differentiable function on an open set containing the feasible set of leader's problem, K y ⊆ R m is a polyhedron in y and x ∈ R n is the optimal solution of the parametric quadratic convex program Note that Q is a symmetric PSD matrix (i.e., x T Qx ≥ 0 for all x ∈ R n ). Replacing the second level quadratic program by its Karush-Kuhn-Tucker conditions [14], the BPP reduces to the following MPLCC: Hence computing a global minimum for the BPP is equivalent to finding a global minimum of the MPLCC: Cx + Dy = r (11) y ∈ K y (12) It is important to note that if the follower's problem (7) contains some equalities or unrestricted variables, then some variables x i or u i are unrestricted in sign and their complementary variables w i or v i respectively are equal to zero.
The bilinear programming problem (BLP) has also been quite investigated due to its large number of applications [2,55,77]. It consists of minimizing a bilinear function in the variables x i and y i on a convex set defined by linear constraints. Therefore it takes the form subject to x ∈ K x , y ∈ K y , where K x ⊆ R n and K y ⊆ R m are polyhedra in the x− and y− variables, respectively. If then BLP can be stated as follows: The dual program of the inner program above is given by By introducing the slack variables w i , v i and t i of the primal and dual programs (16) and (17) respectively and applying the complementarity slackness theorem [66], (x , y) is an optimal solution of the BLP (13)- (15) if and only if (x , y) is a global minimum of the MPLCC Hence a Bilinear Program is equivalent to a QPLCC. A BLP is called Disjoint if there are no constraints involving both x− and y− variables (i.e., the inequalities (14) do not exist). In this case the BLP reduces to an LPLCC of the form As for the Bilevel Program, the QPLCC and LPLCC associated with a Bilinear Program may have some unrestricted variables w i or t i equal to zero when the inner program in (16) contains some equalities or unrestricted variables.

Consider a Quadratic Program (QP) of the form
where H in R n×n is symmetric, A ∈ R m×n , b ∈ R m and c ∈ R n . The Karush-Kuhn-Tucker (KKT) conditions associated to a stationary point of QP are given by [19,67]: If H is a PSD matrix, then QP is convex and the solution of the Linear Complementarity Problem (LCP) (27) gives a global minimum for the QP (26) [19,67]. In general, for any solution of LCP (27) the objective function is linear in the variables x i and v i , as Hence the QP (26) is equivalent to the following LPLCC: As before, the existence of equalities or unrestricted variables x i in the definition of the QP leads to some variables x i or u i unrestricted in sign and their complementary w i or v i equal to zero.
The Eigenvalue Complementarity Problem (EiCP) has been introduced in [80] and used in the stability analysis of finite dimensional elastic systems with frictional contact [73]. Many practical algorithms have been developed during the last years for the solution of this problem and some of its extensions [5,9,25,27,28,51,57,68,74,75,81,84]. Given a matrix A ∈ R n×n and a Positive Definite (PD) matrix B ∈ R n×n (i.e., x T Bx > 0 for all x ∈ R n − {0}), the EiCP consists of finding a complementary eigenvalue λ ∈ R 1 and an associated eigenvector x ∈ R n − {0} satisfying the following conditions Since the problem is homogeneous, the normalization constraint e T x = 1 (e ∈ R n is a vector of ones) should be added to the definition of the problem in order to prevent the null vector to be a solution of EiCP. Let y ∈ R n be the vector such that i.e., Since the left-hand side of (33) is always nonnegative, then the EiCP is equivalent to the MPLCC: Note that the EiCP (31) has always a solution [9], and this implies that the MPLCC (34)-(38) has at least a global minimum with a null objective function value.

FINDING A FEASIBLE SOLUTION
Consider the MPLCC (1)- (5). A Linear Feasible Solution of the MPLCC is a solution (x, y, w) satisfying all the linear constraints (2)-(4). The Linear Feasible Set K of an MPLCC consists of all the linear feasible solutions. An MPLCC is said to be Linear Feasible (Infeasible) if K = ∅ (K = ∅).
As stated before, the complementarity constraint (5) (5), K is usually a nonconvex set. The next example illustrates these definitions: The linear feasible K and feasible K sets are represented in Figure 1. The set K is the dashed region and K is the union of the segment [1,2] in the y 1 -axis with the part of the straight line y 1 = 2 + x 1 (w 1 = 0) on the right of the y 1 -axis. It immediately follows that the MPLCC is feasible (and linear feasible) and its feasible set K is nonconvex. Furthermore there is a unique global minimum for this MPLCC, which is the point (x 1 = 0, y 1 = 1). Since the feasible set of an MPLCC is nonconvex, then finding a feasible solution should be in general a difficult task. In fact, such an objective consists of solving a General Linear Complementarity Problem (GLCP). This problem has been investigated in [24,54,88] and is an interesting extension of the well-known Linear Complementarity Problem (LCP). The LCP has been intensively studied in the past several years [19,67] and consists of finding a solution of the following system As discussed in [19,67] the class of the matrix M plays an important role on the complexity of the LCP. The classes of Positive Definite (PD) and Positive Semi-Definite (PSD) matrices are probably the most important ones and are defined as follows: Efficient local algorithms have been proposed for the solution of the LCP for matrices of these and related classes [19,67]. These classes are also very relevant for the MPLCC, as the following theorem holds [54]: Consider the MPLCC (1)-(5) and let K be its linear feasible set, E be the identity matrix of order n and M be a PSD matrix. Then:

(i) MPLCC is feasible if and only if it is linear feasible.
(ii) If M ∈ PD and K y = ∅, then MPLCC is feasible.
is a feasible solution of the MPLCC.
To illustrate this theorem, consider the MPLCC (39)- (42). Then E = [1] and M = [1] ∈ PD and the hypotheses of theorem 1 hold. Now consider the MPLCC (39)- (43). By introducing the slack variable y 2 associated to x 1 + y 1 ≥ 1, we can write this MPLCC in the following standard form: Minimize Now the hypotheses of Theorem 1 do not hold and a stationary point of the quadratic program (45) may not lead to a feasible solution of the MPLCC.
Theorem 1 provides a first procedure for finding a feasible solution of the MPLCC. In fact, under the hypotheses of theorem 1, the computation of a stationary point of the quadratic program (45) either shows that the MPLCC is infeasible or it gives a feasible solution of the MPLCC. This stationary point can be computed by an efficient local nonlinear programming algorithm. An active set method [36,69] such as the one implemented in MINOS [65], an interior-point method [24,88] or a DC algorithm [58] should be recommended for this task.
It is important to add at this stage that for most of the MPLCCs associated with applications and formulations of optimization problems discussed in Section 2, finding a feasible solution is not a difficult task. For instance, bilevel programs with no linear constraints (11) (32) is nonnegative and Hence the MPLCC (47) satisfies the hypotheses of theorem 1 (note that y plays the role of x and conversely).
For a general MPLCC, global optimization techniques are required for computing a feasible solution or showing that the MPLCC is infeasible. Since the constraint set of the QP (45) is K and the objective function of this program is nonnegative on K , then the following result holds: It follows from this theorem that the MPLCC (1)- (5) is infeasible if and only if the QP (45) is infeasible or it has a positive global optimal value. An enumerative algorithm has been proposed for finding a global minimum of the QP (45). This method [3,45,52] exploits the binary tree displayed in Figure 2, that is constructed based on the definition of complementary variables x i and w i . · · · · · · · · · · · · · · · · · · x i 1 = 0 w i 1 = 0 In each node of the tree the algorithm computes a stationary point of the following Quadratic Program (QP): where F x and F w are the sets defined by the fixed x− and w− variables in the path of the tree from the root to this node. Now, either the program (48) is infeasible and the node is pruned, or a stationary point (x, y, w) can be computed by a local optimization algorithm. Two cases may occur: (i) If x T w = 0, then (x , y, w) is a feasible solution of the MPLCC (1)-(5).
(ii) x T w > 0 and two nodes have to be generated for a pair of complementary variables (x i , w i ) such that x i > 0 and w i > 0.
A good implementation of an enumerative algorithm requires some heuristic rules for selecting the pair of complementary variables and for choosing a node from the set of open nodes of the tree to be investigated next. These issues are discussed in [45]. Furthermore, the stationary points of the quadratic programs of the form (48) can be computed by using an active-set method [36,69], such as MINOS [65].
The enumerative algorithm looks for a stationary point of the complementarity gap function having a zero objective function value in order to find a feasible solution of an MPLCC. This stopping criterion of the null value of the objective function of QP (45) alleviates very much the search in the tree and makes the algorithm to terminate in general with a small number of nodes.
If an MPLCC is linear feasible and infeasible, then an extensive search needs to be typically performed in the tree before the algorithm terminates. Hence the algorithm is particularly suitable for finding a feasible solution but is almost impractical when dealing with an infeasible MPLCC that is linear feasible.
Absolute value programming (AVP) has also been shown to be an interesting approach for solving the LCP [62] and can be useful for computing a feasible solution of the MPLCC (1)- (5) or showing that this problem is infeasible. Let E = I n be the identity matrix of order n. As discussed in [62], by scaling the square matrix M if necessary, I n − M is nonsingular and the GLCP (2)-(5) can be reduced to the following system: where |z| = [|z i |] ∈ R n . It immediately follows from (50) and (51) that w = x − z in any solution of the system. According to [62], let s ∈ R n and t ∈ R n be two additional vectors and consider the following concave program (CP): where ρ is a positive real number (may be equal to one) and e ∈ R n is a vector of ones. Since the objective function is nonnegative on the feasible set of CP (53), the following result holds: It is interesting to note that the CP (53) is a DC program and can be solved by a DC algorithm [59]. Alternatively, a sequential linear programming (SLP) algorithm introduced in [62] can be applied to find a stationary point of CP (53). The main drawback of this approach is that there is no theoretical guarantee that these methods find a global minimum of the CP. However, numerical experiments reported in [62] indicate that the SLP algorithm is, in general, able to terminate successfully with a solution of the LCP. Hence, this approach appears to be interesting to exploit in the future for computing a feasible solution of an MPLCC.
Finding a feasible solution of the MPLCC (1)- (5) or showing that this problem is infeasible can also be done by using 0 − 1 Linear Integer Programming. Consider the GLCP (2)-(5) and let K y be written in the standard form: where A ∈ R t ×m and b ∈ R t . If there is y ∈ K y such that N y = −q, then (x = 0, y, w = 0) is a feasible solution of the MPLCC (1)- (5). Otherwise, consider the following 0 − 1 Linear Integer Program: where e ∈ R n is a vector of ones. Then the following result holds [41]: It follows from this theorem that MPLCC is infeasible if and only if LIP (55) has a global maximum (γ , α, u, v, z) with α = 0. Note that this theorem confirms that finding a feasible solution for an MPLCC is easier than showing that such a problem is infeasible. In fact, computing a feasible solution of LIP (55) with α > 0 is sufficient to find a feasible solution of MPLCC, while a certificate of infeasibility requires the computation of a global maximum of LIP (55). The existence of very efficient codes for 0 − 1 Linear Integer Programming makes this approach quite useful in practice.

FINDING A STATIONARY POINT
If (x , y, w) is a global minimum of MPLCC (1)-(5) then [41] it satisfies represents the gradient of f at z = (x , y, w) and d x ∈ R n , d y ∈ R m and d w ∈ R n contain the components of d associated to x, y and w respectively. In this case the vector z is said to be a Stationary Point of f on the feasible set K of the MPLCC (1)- (5).
As in nonlinear programming [14,69], it is important to derive KKT-type characterizations of stationary points for the design of local algorithms that deal with the MPLCC. To introduce these conditions, consider the MPLCC (1)-(5) and let K y be the polyhedron given by (54). For any feasible solution z = (x, y, w) of the MPLCC (1)-(5), the following sets may be considered subject to Ew − Mx − N y = q (61) y ≥ 0 (63) Due to (59), the constraints (64) and (67) are inactive at z = (x, y, w) and z satisfies the following KKT conditions [69] 0 = E T λ + α where ∇ x f (x , y) and ∇ y f (x , y) are vectors with the components of the gradient of f at z corresponding to the x− and y− variables respectively, and λ ∈ R p , α ∈ R n , β ∈ R n , γ ∈ R m , ν ∈ R t are the Lagrange multipliers associated to the constraints (61) where L ⊆ I x ∩ I w and Hence any global minimum of MPLCC (1)-(5) is a B-stationary point of f on K [30,76,83]. However, a certificate for B-stationarity may be quite demanding for a degenerate feasible solution when its associated set I x ∩ I w has a relatively large number of elements [30]. The concepts of Strongly Stationary Point (SSP) and M-Stationary Point (MSP) have been introduced in the literature [30,38,76,83] and are more accessible for embedding with an algorithm. Their definitions are as follows: = (x , y, w) is an MSP of f on K if it satisfies the conditions (68)- (73) with Note that any global minimum of MPLCC (1)- (5) is an MSP of f on K [38], but it may be not a SSP [83]. Furthermore any SSP is an MSP [38] and a BSP [30]. Finally, for a nondegenerate feasible solution z = (x , y, w), SSP, MSP and BSP are the same thing, as I x ∩ I w = ∅.
The algebraic characterization of SSP and MSP and the ability to compute an initial feasible solution of an MPLCC enable the design of a complementarity active-set (CASET) algorithm for solving the MPLCC. The algorithm was initially proposed in [78] and subsequently improved, implemented and tested in [53]. Feasibility (i.e., linear feasibility and complementarity) are maintained throughout the process and the algorithm terminates with a SSP or an MSP under reasonable hypotheses.
Consider now the case where the objective function is linear, i.e., for given vectors c ∈ R n and d ∈ R m . This leads to the so-called Linear Programming Problem with Linear Complementarity Constraints (LPLCC). As in linear programming, if an LPLCC has a global optimal solution then there is at least a global minimum that is a Basic Feasible Solution (BFS) of the linear feasible set K . It is then possible to design a modified version of the wellknown simplex method which solves the LPLCC by only using BFS of its linear feasible set K . This algorithm is known as the Basis Restricted Simplex (BRS) method [20,71] and its steps are presented below.

BRS METHOD
• Let z = (x , y, w) be a BFS, • If α i ≥ 0, β i ≥ 0, for all i ∈ L x ∩ L w and γ i ≥ 0, for all i ∈ L y , then z = (x , y, w) is an MSP and terminate.
• Let r be an index of a nonbasic variable z r that does not satisfy the previous conditions.
• Change the nonbasic variable z r with a basic variable z t updating the sets of basic and nonbasic variables, as in simplex method, to obtain a new BFSz.
• Repeat withz instead of z.
It follows from the description of the steps of the BRS method that the algorithm is a simple extension of the simplex method which uses a modified rule for the choice of the nonbasic variables for the purpose of maintaining complementarity (i.e. feasibility of LPLCC) during the whole procedure. The algorithm is guaranteed to terminate with an MSP provided an usual anti-cycle rule [66] is used. Note that the CASET algorithm reduces to this BRS method when BFS of the linear feasible set are used in each iteration of the former method. Finally an extension of the BRS method has been recently proposed in [30], which guarantees in theory the termination in a BSP.
The CASET and BRS algorithms were implemented using MINOS environment [53,65]. Computational experience reported in [53] shows that the CASET and BRS algorithms are quite efficient in practice for computing a SSP or an MSP. Computing a BSP for an LPLCC is usually more demanding but the extension of the BRS algorithm for dealing with this case also performs very well and seems to outperform other alternative local techniques, such as penalty, regularization, smoothing, nonsmooth, interior-point and SQP approaches that have been designed for mathematical programs with linear and nonlinear complementarity constraints and can also be applied to the MPLCC [30].

FINDING A GLOBAL MINIMUM
There are some special instances of the MPLCC where such objective is relatively easy to be fulfilled. Next, we discuss two of these cases.
Consider an MPLCC whose feasible set is defined by the constraints (2)-(5) with E = I n the identity matrix of order n and M a PSD matrix, i.e., MPLCC satisfies the hypotheses of Theorem 1. Furthermore assume that the objective function only depends on the y− variables, i.e.
f (x, y) = g(y) (80) and is convex on the polyhedron K y . Consider the Relaxed Convex Program RCP: Minimize g(y) subject to w = q + Mx + N y Hence: (i) If RCP is infeasible, then MPLCC (1)-(5) is linear infeasible.
Note that, if M ∈ PD, then RCP (81) can be replaced by the simpler convex program Minimize g(y) : y ∈ K y (83) as LCP (82) has always a solution for each y [19].
Another interesting case that often appears in applications of the MPLCC is when the global optimal value is known, i.e., f (x , y, w) = in (79) where is a real number. Hence the MPLCC has a global minimum if and only if the program has a global minimum with an optimal value equal to zero. Finding a global minimum of (84) can be done efficiently by an enumerative method similar to the one described in Section 3 for finding a feasible solution of an MPLCC. An interesting example of such an approach is the enumerative algorithm discussed in [27] for computing a solution of the Eigenvalue Complementarity Problem (31).
Apart from these and other similar instances, finding a global minimum of an MPLCC is a quite difficult task. In the next section we discuss the most important approaches for this goal, namely a sequential algorithm, branch-and-bound methods and 0 − 1 Integer Programming.

A SEQUENTIAL ALGORITHM FOR LPLCC
This algorithm was introduced in [47] for solving the Linear Bilevel Programming Problem by exploiting its reduction to an LPLCC and was subsequently expanded to deal with a general LPLCC [46,48]. In the initial iteration of the sequential algorithm, a stationary point (SSP, MSP or BSP) is computed by using the techniques discussed in Sections 3 and 4. In each iteration, a stationary point is at hand and the algorithm proceeds as follows: (i) In a Feasibility Phase, a feasible solutionz = (x ,ỹ,w) of the LPLCC with an objective function given by (78) is computed such that or a certificate is given showing that such a solution does not exist.
(ii) Ifz is computed in the Feasibility Phase, then an Optimization Phase is applied where a new stationary point is computed by CASET or BRS methods withz as the initial point.
The algorithm requires an update rule for guaranteeing that the condition (85) holds. In practice, this is done by using a real number λ defined by where γ is a given positive and small real number. The Feasibility Phase searches a feasible solution z = (x , y, w) of the LPLCC defined by the constraints (2)-(5) together with the cut The problem of finding a feasible solution of this augmented LPLCC is NP-hard [54]. Hence the enumerative method or the 0 − 1 integer programming approach discussed in Section 3 should be used to either compute such a feasible solution or show that the augmented LPLCC is infeasible. In this latter case the last stationary point z = (x , y, w) computed by the sequential algorithm is an ε-approximate global minimum of the LPLCC, with ε = γ |c T x + d T y| (88) As discussed in Section 3, giving a certificate of optimality (i.e., showing that the augmented LPLCC is infeasible) is much more difficult than finding a feasible solution of LPLCC satisfying (87). Computational experience with this sequential algorithm shows that the algorithm is in general efficient to compute an ε-global minimum that is usually a global minimum of the LPLCC. Furthermore, in general the algorithm faces difficulties in providing a certificate of optimality.
The design of a more efficient procedure to provide a certificate of global optimality has been the subject of intense research. An interesting approach is to design an underestimating optimization problem whose global minimum is relatively easy to compute and yields a positive lower bound for the program defined by (45) and (87). Then the augmented LPLCC is declared infeasible. In particular SDP [16] and RLT [82] techniques may be useful in this extent. Despite promising results in some cases, much research has to be done to assure the general efficiency of these techniques in practice.

BRANCH-AND-BOUND ALGORITHMS
Consider again the MPLCC (1)- (5). Similar to the enumerative method, a branch-and-bound algorithm for the LPLCC exploits a binary tree of the form presented in Figure 2, which is constructed based on the dichotomy that x i = 0 or w i = 0 for the pairs of complementary variables. The simplest technique of this type has been introduced by Bard and Moore in [12] for finding a global minimum of a linear bilevel program by exploiting its LPLCC formulation. This method can be applied to an MPLCC with a convex function without any modification. For each node k of the binary tree generated by the branch-and-bound algorithm, a lower bound for the optimal value of the MPLCC is computed by solving the so-called relaxed convex program RCP(k) that is obtained from the MPLCC (1)-(5) by omitting the complementarity constraint (5) and adding some equalities z i = 0, where z i is an x i − or w i − variable that was fixed along the branches on the path from the root to the current node k. For instance, the RCP(5) associated with node 5 of the binary tree of Figure 2 takes the following form: If the optimal solution (x , y, w) obtained for this RCP(k) satisfies the complementarity condition (5), then f (x , y) is an upper-bound for the global optimal value of the MPLCC. The tree is then pruned at the node k and a new open node is investigated. If (x , y, w) is not a complementary solution, then there must exist at least an index i such that x i > 0 and w i > 0. A branching is then performed from the current node k and two nodes (k +1) and (k +2) are generated such that respectively restrict x i = 0 and w i = 0. Termination of the algorithm occurs when there is no open node whose lower bound is smaller than the best upper bound computed by the algorithm. In this case the solution (x ,ỹ,w) associated with this upper bound is a global minimum for the MPLCC.
The branch-and-bound algorithm should include good heuristics rules for choosing the open node and the pair of complementary variables for branching. The algorithm terminates in a finite number of iterations (nodes) with a global minimum or with a certificate that the MPLCC is either infeasible or unbounded. Computational experience reported in [2,6,23,46,47,48] indicates that the algorithm is not very efficient for dealing with MPLCC, as the number of nodes tends to greatly increase with the number n of pairs of complementary variables.
During the past several years, a number of methodologies have been recommended by many authors to improve the Bard and Moore branch-and-bound algorithm when the objective function is linear (LPLCC) [2,6,16,23,37,87]. These improvements have been concerned with the quality of the lower bounds and upper bounds and the branching procedure. Cutting planes [2,6,64,87], RLT [82] and SDP [16,17] have been used for computing better lower bounds than the ones given by the relaxed linear programs. On the other hand, some ideas of combinatorial optimization have been employed to design more efficient branching strategies that lead to better upper bounds for the branch-and-bound method [2,6,23,37]. Computational experiments reported in [2,6,16,23,37,87] clearly indicate that these techniques portend significant improvements for the efficiency of branch-and-bound methods in general.
Another improvement of the Bard and Moore algorithm has been proposed in [52] for an LPLCC satisfying the hypotheses of Theorem 1. Contrary to the Bard and Moore method, this so-called complementarity branch-and-bound (CBB) algorithm uses feasible solutions of the LPLCC throughout the process. Therefore, the CASET or BRS algorithms can be applied at each node with a significant improvement on the quality of the upper bounds. Disjunctive cuts are recommended to find lower bounds for the LPLCC. Computational experience reported in [52] indicates that the CBB algorithm outperforms Bard and Moore method in general, and appears to be a promising approach for the computation of a global minimum for the LPLCC and even for QPLCC and MPLCC with convex objective functions.

INTEGER PROGRAMMING
Consider the MPLCC (1)- (5), where f is convex on K y given by (54). If K is the feasible set of the MPLCC, let θ be a positive real number such that max (x,y,w)∈K If this number θ exists, then each complementarity constraint x i w i = 0 can be replaced by By applying this transformation to each one of the constraints x i w i = 0, i = 1, . . . , n, the MPLCC reduces to the following mixed-integer program (MIP) Therefore a global minimum for the MPLCC can be found by computing a global minimum to this MIP [85,86]. It is important to add that such an equivalence also provides a certificate of infeasibility and unboundedness for the MPLCC from those pertaining to the MIP. This approach has been used by some authors for finding a global minimum of the LPLCC [35]. Note that the integer programming approach for solving the MPLCC is much more interesting in this last case, as MIP is a linear integer program and there exist very efficient codes for dealing with this optimization problem.
An obvious drawback of this approach lies on the need of using a large positive constant θ that may not even exist. In practice, a large value for θ is chosen (usually θ = 1000), but this can prevent the computation of a global minimum of the MPLCC. An idea for avoiding the use of a large constant has been introduced for the LPLCC in [39] and has subsequently been applied to the special case of the LPLCC associated with nonconvex quadratic programs [40]. The MIP (92) is considered as a multiparametric linear program LP(θ, z) on the parameters θ and z. Given any values of θ and z, the dual DLP(θ, z) of this linear program does not depend on the values of θ and z. By recognizing this fact and using a minimax integer programming formulation of MIP (92), a Benders decomposition technique has been designed in [39] that uses extreme points and unbounded rays of the dual constraint set. This algorithm has been shown to converge in a finite number of iterations into a global minimum of the LPLCC or to give a certificate of infeasibility or unboundedness [40,39]. Simple (or disjunctive) cuts and a recovery procedure for obtaining a feasible solution of the LPLCC from a linear feasible solution are recommended in a preprocessing phase to enhance the efficiency of the algorithm [39]. Computational experiments reported in [40,39] indicate that the method is in general efficient in practice. Furthermore, the preprocessing phase has a very important impact on the computational performance of the algorithm. The possible use of the sequential algorithm discussed in Section 6 in the preprocessing phase seems to be an interesting topic for future research.

CONCLUSIONS
In this paper, we have reviewed a number of applications and formulations of important optimization problems as mathematical programs with linear complementarity constraints (MPLCC). Algorithms for finding a feasible solution for the MPLCC were discussed. Active-set, interiorpoint and DC methods and absolute value programming seem to work well for special cases, but not in general. An enumerative method that incorporates a local quadratic solver can efficiently find such a solution in general. Linear Integer Programming can also be useful for such a goal. A complementarity active set method is recommended for finding a strongly stationary, an M-stationary or a B-stationary point for the MPLCC. The algorithm reduces to a Basis Restricted Simplex method for the LPLCC if only Basic Feasible Solutions of the Linear Feasible Set are employed. Computing a global minimum of an LPLCC is a much more difficult task that can be done by using a sequential algorithm or by branch-and-bound methods applied directly to the LPLCC or to an equivalent linear integer program. These two latter approaches can also be useful for dealing with QPLCC and MPLCC with convex objective functions. Despite the promising numerical performance of these techniques for computing a feasible solution, a stationary point, and a global minimum for the MPLCC, much research has to be done on finding better methodologies and more efficient certificates of optimality.
Another important topic for future research is the development of more efficient techniques for the solution of some of the optimization problems that can be formulated as MPLCCs. The Eigenvalue Complementarity Problem and Optimization with Cardinality Constraints are two important examples of these problems that have received much attention recently and should continue to be investigated in the near future.