GLPK/Background theory

It can be useful, on occasion, to provide background theory for material located elsewhere in this wikibook. This page affords a place. But this page should not be used to blindly replicate foundation material from the official GLPK manuals, nor to write general entries on linear programming.

Note also that mixed-integer programming (MIP) and mixed-integer linear programming (MILP) are treated here as synonyms. And that the term pure linear programming is used to exclude mixed-integer problems.

In the general case of nonlinear programming (NLP), the Karush-Kuhn-Tucker optimality conditions (KKT) provide the necessary first-order conditions for a solution to be locally optimal (together with some regularity conditions that also have to be satisfied). Linear programming (LP) is a special case of NLP in which both the feasible region and the objective function are convex. In this particular case, the KKT conditions alone are necessary and sufficient for the solution to be globally optimal.[1] The KKT conditions can be applied to the basic and interior-point solutions of any LP problem, but may not be applied to the solutions from mixed-integer linear programming (MIP). That said, the first two KKT conditions can be applied to mixed-integer programs to confirm that the solution is feasible.

where is a vector of dual variables,[3] is a vector of Lagrange (or simplex) multipliers (shadow prices) for the equality constraint and is a vector of Lagrange multipliers (reduced costs) for the inequality constraint .

The Karush-Kahn-Tucker optimality conditions for an LP make use of all the constraints from the primal and dual formulations and include a complimentary slackness condition. The five KKT optimality conditions conditions are:

KTT.PE

KTT.PB

KTT.DE

KTT.DB

KTT.CS

The KKT.CS condition can be rewritten as or meaning vectors and must be orthogonal.

The implementation of the KKT conditions within GLPK is a little more complicated because GLPK supports variables with lower and upper bounds, which also implies no bounds. In general:

minimize or maximize

subject to

where (as earlier) is the vector of structural and auxiliary variables and is an identity matrix. Nonetheless the conditions used in GLPK are equivalent to those shown above and have the same meaning.

Finally, be aware that the KKT conditions KKT.PE and KTT.PB can be calculated for an MIP solution and GLPK will do this on request. In this case, these two conditions are described as "integer feasibility conditions" instead of "Karush-Kahn-Tucker optimality conditions"

↑Some readers may not be familiar with the KKT formulation used by GLPK. Textbooks on linear programming often present the optimality conditions in terms of strong duality and complementary slackness. These together represent a special case of the KKT conditions for differentiable optimization.

↑The LP terminology for equation types is unfortunately inconsistent. This expression is also referred to as the canonical form and the term standard form then applies to something else.