Forms of Linear Programming Problems

General Form Problems

A linear programming problem of the following form is said to be in general form:

minimizecxsubject toaixbi,iM1aix=bi,iM2aixbi,iM3xj0,jN1xj0,jN2\begin{align*} \text{minimize} & \quad \mathbf{c}' \mathbf{x} \\ \text{subject to} & \quad \mathbf{a_i}' \mathbf{x} \leq b_i, \quad i \in M_1 \\ & \quad \mathbf{a_i}' \mathbf{x} = b_i, \quad i \in M_2 \\ & \quad \mathbf{a_i}' \mathbf{x} \geq b_i, \quad i \in M_3 \\ & \quad x_j \geq 0, \quad j \in N_1 \\ & \quad x_j \leq 0, \quad j \in N_2 \\ \end{align*}

In this form, c\mathbf{c} is an nn-dimensional vector, x\mathbf{x} is an nn-dimensional vector of variables, ai\mathbf{a_i} is an nn-dimensional vector, bib_i is a scalar, and M1,M2,M3,N1,N2M_1, M_2, M_3, N_1, N_2 are sets of indices.

In detail, M1M_1 and M3M_3 are sets of indices for which the corresponding constraints are inequalities, M2M_2 is a set of indices for which the corresponding constraints are equalities, N1N_1 is a set of indices for which the corresponding variables are nonnegative, and N2N_2 is a set of indices for which the corresponding variables are nonpositive.

We also call cc the cost vector, and x1,x2,,xnx_1, x_2, \ldots, x_n the decision variables.

Canonical Form Problems

The canonical form of a linear programming problem is given by:

minimizecxsubject toAxbx0\begin{align*} \text{minimize} & \quad \mathbf{c}' \mathbf{x} \\ \text{subject to} & \quad \mathbf{A} \mathbf{x} \geq \mathbf{b} \\ & \quad \mathbf{x} \geq \mathbf{0} \end{align*}

where A\mathbf{A} is an m×nm \times n matrix, b\mathbf{b} is an mm-dimensional vector.

Standard Form Problems

The standard form of a linear programming problem is given by:

minimizecxsubject toAx=bx0\begin{align*} \text{minimize} & \quad \mathbf{c}' \mathbf{x} \\ \text{subject to} & \quad \mathbf{A} \mathbf{x} = \mathbf{b} \\ & \quad \mathbf{x} \geq \mathbf{0} \end{align*}

Reducing General Form to Standard Form

To reduce a linear programming problem in general form to standard form, we need to (1) eliminate free variable, and (2)convert inequalities to equalities.

Eliminating Free Variables

To eliminate free variables, we replace each free variable xjx_j with the difference of two variables xj=xj+xjx_j = x_j^+ - x_j^-, where xj+x_j^+ and xjx_j^- are nonnegative.

Converting Inequalities to Equalities

For an inequality aixbi\mathbf{a}_i' \mathbf{x} \leq b_i, we introduce a slack variable si0s_i \geq 0 such that aix+si=bi\mathbf{a}_i' \mathbf{x} + s_i = b_i.

Similarly, for an inequality aixbi\mathbf{a}_i' \mathbf{x} \geq b_i, we introduce a surplus variable si0s_i \geq 0 such that aixsi=bi\mathbf{a}_i' \mathbf{x} - s_i = b_i.

Summary

  • Linear programming problems can be formulated in general, canonical, or standard form.

  • These forms can be converted into each other.

  • The standard form is convenient for developing algorithms.

Last updated