An Overview of Linear Programming

Among optimization problems there is a class known as linear programming problems, which belong to constrained optimization. Linear programming is the problem of finding the extremum of a linear objective function under linear constraints (equalities or inequalities).

The Standard Model of a Linear Programming Problem

The standard model of linear programming is

minimizecTxsubject to Ax=bx0\begin{align*} minimize\quad c^{T}x\\ subject\ to\ Ax=b\\x\ge0 \end{align*}

Consider any linear form; for example, suppose a linear programming problem has the following form. Unlike the standard form, this one uses inequality constraints:

minimizecTxsubject to Axbx0\begin{align*} minimize\quad c^{T}x\\ subject\ to\ Ax\ge b\\x\ge0 \end{align*}

By introducing a surplus variable yy, the problem above can be transformed into the standard form

minimizecTxsubject to AxImy=[AIm][xy]=bx0,y0\begin{align*} minimize\quad c^{T}x\\ subject\ to\ Ax-I_{m}y=\begin{bmatrix} A & -I_{m}\end{bmatrix}\begin{bmatrix} x \\ y\end{bmatrix}=b\\x\ge0,y\ge0 \end{align*}

If the constraints have the following form:

Axbx0\begin{align*} Ax\le b\\ x\ge 0 \end{align*}

then, by introducing a slack variable yy, the constraints can be converted into

Ax+Imy=[AIm][xy]=bx0,y0Ax+I_{m} y =\begin{bmatrix} A & I_{m}\end{bmatrix}\begin{bmatrix} x \\ y\end{bmatrix}=b\\x\ge0,y\ge0

Basic Solutions of a Linear Programming Problem

As mentioned above, any linear programming problem can be converted into the standard form, in which the constraints are linear equalities and the decision variables are nonnegative.

Consider the equation Ax=bAx=b, where rank(A)=mrank(A)=m. To solve this kind of problem, we usually start from a subset of the column vectors of the matrix AA. For convenience, we can reorder the column vectors of AA so that the columns of interest come first. Specifically, select mm linearly independent vectors from AA to form a square matrix BB, and reorder the columns of AA so that the columns of BB occupy the first mm columns of AA. That is, AA can be written as the block matrix A=[B,D]A=[B,D], where DD is an m(nm)m*(n-m) matrix consisting of the remaining column vectors of AA. The matrix BB is nonsingular, so solving the equation BxB=bBx_{B}=b yields the unique solution xB=B1bx_{B}=B^{-1}b. Let xx be an nn-dimensional vector whose first mm elements equal xBx_B and whose remaining elements are zero, i.e. x=[sBT,0T]Tx=[s_{B}^{T},0^{T}]^{T}; then xx is a solution of the equation Ax=bAx=b.

[xBT,0T]T[x_{B}^{T},0^{T}]^{T} is the basic solution of Ax=bAx=b with respect to BB. The elements of the vector xBx_{B} are called basic variables, and the column vectors of BB are called basic column vectors.

Degenerate basic solution ---> a basic solution in which some basic variables are 0 Feasible solution ---> a vector xx satisfying Ax=b,x0Ax=b,x\ge 0 Basic feasible solution ---> a feasible solution that is also a basic solution Degenerate basic feasible solution ---> a basic feasible solution that is a degenerate basic solution

When solving a linear programming problem, we need only consider basic feasible solutions, because if an optimal solution of the objective function exists, it is necessarily attained at some basic feasible solution.

Fundamental theorem of linear programming 1. If a feasible solution exists, then a basic feasible solution exists. 2. If an optimal feasible solution exists, then an optimal basic feasible solution exists.

The fundamental theorem of linear programming reduces solving a linear programming problem to searching over a finite number of basic feasible solutions, which greatly reduces the amount of work required.

From a geometric point of view, the set of points satisfying the constraints Ax=b,x0Ax=b,x\ge 0 in the standard linear program is a convex set; that is, for any x,yΘx,y\in \Theta and any real number α\alpha with 0<α<10<\alpha <1, we have αx+(1α)yΘ\alpha x+(1-\alpha)y\in \Theta. For a point xx in a convex set, if there are no two distinct points x1x_{1} and x2x_{2} in Θ\Theta such that x=αx1+(1α)x2x=\alpha x_{1}+(1-\alpha)x_{2} holds, then xx is called an extreme point. It can be proved that the extreme points of the constraint set are equivalent to the basic feasible solutions.

The idea of the simplex method for solving linear programming problems is precisely the algorithm of moving from one extreme point to an adjacent extreme point. A later article will give a detailed introduction to the simplex method, duality, and related concepts.

To be continued…