Full Conversion of an LP to Standard Form

Converting any linear program into standard form by combining max-to-min reformulation, slack and surplus variables, variable splitting for free variables, and sign flips for negative right-hand sides.

Step 1 of 157%

Tutorial

Standard Form of a Linear Program

A linear program in standard form has four properties: the objective is minimized, every constraint is an equality, every decision variable is non-negative, and every right-hand side is non-negative.

min cTxsubject toAx=b,  x0,  b0.\min\ \mathbf{c}^T \mathbf{x} \quad \text{subject to} \quad A\mathbf{x} = \mathbf{b},\ \ \mathbf{x} \geq \mathbf{0},\ \ \mathbf{b} \geq \mathbf{0}.

Most LPs do not arrive in this form. We already know three transformations:

  1. Max to min: replace max cTx\max\ \mathbf{c}^T \mathbf{x} with min cTx\min\ -\mathbf{c}^T \mathbf{x}.
  2. Slack for \leq: replace aTxb\mathbf{a}^T \mathbf{x} \leq b with aTx+s=b, s0\mathbf{a}^T \mathbf{x} + s = b,\ s \geq 0.
  3. Surplus for \geq: replace aTxb\mathbf{a}^T \mathbf{x} \geq b with aTxs=b, s0\mathbf{a}^T \mathbf{x} - s = b,\ s \geq 0.

Combining these three handles any LP whose variables are already non-negative and whose right-hand sides are already non-negative. For example,

max 2x1+5x2s.t.x1+x27,  3x1x21,  x1,x20\max\ 2x_1 + 5x_2 \quad \text{s.t.}\quad x_1 + x_2 \leq 7,\ \ 3x_1 - x_2 \geq 1,\ \ x_1, x_2 \geq 0

becomes

min 2x15x2s.t.x1+x2+s1=7,  3x1x2s2=1,  x1,x2,s1,s20.\min\ -2x_1 - 5x_2 \quad \text{s.t.}\quad x_1 + x_2 + s_1 = 7,\ \ 3x_1 - x_2 - s_2 = 1,\ \ x_1, x_2, s_1, s_2 \geq 0.

Free variables and negative right-hand sides require two further tools, which we develop next.

navigate · Enter open · Esc close · ⌘K/Ctrl K toggle