Mathematical programming with equilibrium constraints
Author: Alexandra Rodriguez (ChE 345 Spring 2015) and Brandon Muncy (ChE345 Spring 2015)
Stewards: Dajun Yue and Fengqi You
Mathematical programming with equilibrium constraints (MPEC) is a type of nonlinear programming with constrained optimization. Constraints must satisfy an equilibrium condition, which can be an equilibrium inequality or a complementarity condition, of which the simplest form is given by the critical point:
Therefore, an equilibrium constrained optimization model is given by:
MPEC plays a central role in the modeling of transportation problems, economics, and engineering design.
In the second case, f, g, and F are twice continuously differentiable functions.
For a feasible set, the conditions for convexity and closedness are as follows. If Y(x) is convex, and functions f, g, and ∅ are concave, then the mathematical program is convex. Furthermore, if the Mangasarian-Fromovitz constraint qualification holds at all z ∈ Y(x), then Y(x) is the lower semi-continuous bound, and the mathematical program is closed.
Complementarity constrained optimization
By applying the Karush-Kuhn-Tucker (KKT) approach to solving an equilibrium constraint problem (EC), a program with complementarity constraints can be obtained (CC):
The complementarity constraints can be written equivalently as:
A mathematical program with complementarity constraints (MPCC) is a relaxed MPEC.
Linear constrained optimization
The KKT approach may also lead to an MPCC with only linear functions:
Applications in Economics
As mentioned above, there are several applications of MPEC problems, one of which is in the area of economics. One of the most prominent examples is in market analysis.
For example, consider that n companies product the same product. We will introduce an integer variable y to denote the number of units a company will sell. We will further denote yi as the number of items that company i decides to sell. The total price of the product on the market will be notated P(T), where T = . The total cost of production for a company will be given by fi(yi). With this notation, the profit can then be given by the expression:
= - 
In this case, if company 1 were to product a product, their profitability would be based on the amount of other products in the market. Therefore, the portion of the profit that is a summation, is based on another optimization problem. This case is known as a bi-level problem, which are very common in equilibrium constraint problems.
Tools for Solving MPEC Problems
Although MPEC problems are difficult to solve using non-linear programming methods, they can still be solved using computer programs. For example, MPEC's can be solved in GAMS. For defining the objective function, use the same syntax as one normally would. Any general constraints (not equilibrium) are defined as normal. For the equilibrium constraints, use equationname.y, with the constraints being entered using normal syntax, with bounds introduced via y. Additionally, the dependence of the complementary relationship is demonstrated by the ".y".
The "trick" to solving MPEC problems in GAMS is to convert the problem to a nonlinear program. This is done by creating a solver that calls the convert tool. In Ferris, Dirske, and Meeraus, the specific solver used is nlpec. This mapping into the nonlinear can be complicated, and is dependent on the specific set that is being reformulated. However, these mappings can be found in their paper.
 G.B. Allende. Mathematical programs with equilibrium constraints: solution techniques from parametric optimization (1977).
 M.C. Ferris, S.P. Dirkse, A. Meeraus. Mathematical programs with equilibrium constraints: automatic reformation and solution via constrained optimization. Northwestern University (2002).
 H. Pieper. Algorithms for mathematical programs with equilibrium constraints with applications to deregulated electricity markets. Stanford University (2001).
 R. Andreani, J.M. Martinez. On the solution of mathematical programming problems with equilibrium constraints (2008).