Linear Programming
Contents
10.11. Linear Programming#
10.11.1. Linear Optimization Problem#
10.11.1.1. General Form#
(Linear optimization problem)
A convex optimization problem where the objective and constraint functions are all affine is known as a linear optimization problem or a linear program.
A general linear program has the following form:
where
\(\bx \in \RR^n\) is the optimization variable.
\(f(\bx) = \bc^T \bx + d\) is an affine objective function.
\(\bG \in \RR^{m \times n}\) and \(\bh \in \RR^m\) describe the \(m\) affine inequality constraints.
\(\bA \in \RR^{p \times n}\) and \(\bb \in \RR^p\) describe the \(p\) affine equality constraints.
Note
Minimizing \(\bc^T \bx + d\) is same as minimizing \(\bc^T \bx\) with the scalar \(d\) only being an offset for the optimal value. Thus, the affine objective can be replaced as a linear objective.
The problem of maximizing \(\bc^T \bx + d\) is same as the problem of minimizing \(-\bc^T \bx - d\) which is also an affine functional. Thus, an affine maximization problem with affine constraints is also a linear program.
The feasible set of a linear program is a polyhedron. Recall from Definition 9.18 that a polyhedron is the solution set of a finite number of linear inequalities and linear equations. In this case, we have \(m\) linear inequalities and \(p\) linear equations.
10.11.1.2. Standard Form#
(Linear programming standard form)
The standard form for linear programming is given by
Note
This form has
A linear objective function.
A system of linear equations as equality constraints.
Component wise nonnegativity constraints on the optimization variable \(\bx\).
(Converting general form into standard form)
We show how the general form (10.27) can be converted to an equivalent standard form (10.28) linear programming problem.
We first introduce slack variables to the linear inequalities \(\bs \in \RR^m\). We get the form
\[\begin{split} & \text{minimize } & & \bc^T \bx + d \\ & \text{subject to } & & \bG \bx + \bs = \bh \\ & & & \bA \bx = \bb \\ & & & \bs \succeq \bzero. \end{split}\]We next split the optimization variable \(\bx \in \RR^n\) as the difference between two nonnegative variables \(\bx^+\) and \(\bx^-\). \(\bx = \bx^+ - \bx^-\) where both \(\bx^+, \bx^- \in \RR^n_+\). The optimization problem becomes:
\[\begin{split} & \text{minimize } & & \bc^T \bx^+ - \bc^T \bx^- + d \\ & \text{subject to } & & \bG \bx^+ - \bG \bx^- + \bs = \bh \\ & & & \bA \bx^+ - \bA \bx^- = \bb \\ & & & \bx^+ \succeq \bzero, \bx^- \succeq \bzero, \bs \succeq \bzero. \end{split}\]This is an LP in standard form with the optimization variables being \(\bx^+\), \(\bx^-\), and \(\bs\).
We can drop the scalar \(d\) to get a linear objective function.
We can introduce an optimization variable \(\by \in \RR^{2n + m}\) as the concatenation of \(\bx^+\), \(\bx^-\), and \(\bs\) and require that \(\by \succeq \bzero\) be the unified inequality constraint.
We can then write \(\bG \bx^+ - \bG \bx^- + \bs = \bh\) as
\[ \begin{bmatrix} \bG & - \bG & \bI_m \end{bmatrix} \by = \bh. \]Similarly, the objective function can be written as
\[\begin{split} \begin{bmatrix} \bc \\ - \bc \\ \bzero_m \end{bmatrix}^T \by. \end{split}\]
10.11.1.3. Inequality Form#
(Linear programming inequality form)
The standard form for linear programming is given by
Note
This form has
A linear objective function.
A system of linear inequalities as inequality constraints.
No equality constraints.