Linear Programming Basics
Linear programming is the problem of optimizing a linear function subject to linear inequality constraints.

For example:

Standard form of an LP: All the constraints are
-type.

Canonical Form of an LP: All the constraints are
-type for a minimization problem and
-type for a maximization problem.

It is possible to transform any LP to standard/canonical form.
Constraints
Suppose we have the following constraint:

We can transform it to the standard form by adding a slack variable as follows:

where
.
Now consider the following constraint.

We can transform it to the standard form by adding a surplus variable as follows:

where
.
Finally, an equality-type constraint

can be transformed to the canonical form by introducing two constraints.

Variables
In some cases variables can be negative. In that case we introduce new variables in order to make them positive as follows:

In other cases some variables can be unrestricted. In such a case we introduce two new variables for each unrestricted variable as follows:


where
and 
Finally suppose that there is some bound restriction on a variable.

We can introduce a new variable
such that
:

A feasible solution is a setting of variables that satisfies all constraints. It can be shown that an optimal solution will be on one the corner, in other words intersection of some constraints.
The standard algorithm to solve linear programs is Simplex algorithm.
Dual Program
The idea behind is placing a lower bound is that we are founding suitable nonnegative multipliers for the constraints so that we take their sum, the coefficient of each
in the sum is dominated by the coefficient in the objective function. In the example below, the constraints are multiplied with 1.


The problem of finding the best lower bound can be formulated as a linear program and called dual program.

LP-duality Theorems
Strong Duality Theorem Primal finite optimum value is equal to the dual finite optimum value.

Weak Duality Theorem 
proof:




Complementary Slackness Conditions
if
then 
if
then 
A solution is optimum when primal and dual feasible and complementary slackness conditions are satisfied.
By construction every feasible solution to the dual program gives a lower bound on the optimum solution.
Comments are closed.