Math 2.0

Operations research, mathematical programming Definition

Simplex algorithm

Builds on Linear programmingMatrix

Definition

Let AA be a real m×nm \times n matrix of rank mm, let b∈ℝmb \in \R^m and let c∈ℝnc \in \R^n. Consider the linear program: maximize cTxc^T x subject to Ax=bA x = b and x≥0x \ge 0. A basis is a set BB of mm column indices such that the submatrix ABA_B is invertible; let NN be the other indices. Its basic solution is the xx with xB=AB−1bx_B = A_B^{-1} b and xN=0x_N = 0, and BB is feasible if xB≥0x_B \ge 0. The simplex algorithm starts from a feasible basis BB and repeats the following step.

  1. Compute the reduced costs cˉj=cj−cBTAB−1Aj\bar c_j = c_j - c_B^T A_B^{-1} A_j for j∈Nj \in N, where AjA_j is column jj of AA. If cˉj≤0\bar c_j \le 0 for all j∈Nj \in N, stop: the basic solution is optimal.
  2. Otherwise choose an entering index j∈Nj \in N with cˉj>0\bar c_j > 0, and compute d=AB−1Ajd = A_B^{-1} A_j. If d≤0d \le 0, stop: the program is unbounded.
  3. Otherwise choose a leaving index i∈Bi \in B with di>0d_i > 0 that minimizes xi/dix_i / d_i (the ratio test), and replace BB by (B∖{i})∪{j}(B \setminus \set{i}) \cup \set{j}.

Remarks

Feasible basic solutions are exactly the vertices of the feasible region, and several bases can give the same vertex when it is degenerate. One step moves along an edge to an adjacent vertex, or stays at the same vertex in a degenerate step, and it never decreases cTxc^T x. With an anti-cycling choice of jj and ii, such as Bland's rule of taking the smallest eligible index, the algorithm stops after finitely many steps.

Example: maximize x1+x2x_1 + x_2 subject to x1+2x2+s1=4x_1 + 2x_2 + s_1 = 4, 3x1+x2+s2=63x_1 + x_2 + s_2 = 6 and all variables ≥0\ge 0. Start with B={s1,s2}B = \set{s_1, s_2}, the point x1=x2=0x_1 = x_2 = 0; both reduced costs are 11. Let x1x_1 enter; then d=(1,3)d = (1, 3), the ratios are 44 and 22, so s2s_2 leaves, giving x1=2x_1 = 2, s1=2s_1 = 2 and value 22. Now x2x_2 has reduced cost 2/32/3; it enters, the ratio test removes s1s_1, and the new point is x1=8/5x_1 = 8/5, x2=6/5x_2 = 6/5. There the objective equals 14/5−25s1−15s214/5 - \frac25 s_1 - \frac15 s_2, so all reduced costs are negative and 14/514/5 is optimal.

Non-example: in the first step, letting s1s_1 leave instead of s2s_2 ignores the ratio test. It gives x1=4x_1 = 4 and s2=6−12=−6<0s_2 = 6 - 12 = -6 < 0, which is not a feasible basis.

A first feasible basis can be found by solving an auxiliary linear program, the phase one problem.

Reading path

To understand this page from the ground up, read these 3 pages in order. The foundations come first.

Show the path as a graph
Each page uses the pages above it. The colour of the bar on a box shows how strong the evidence is, and the box also gives it as text. The list has the same pages.
  • no evidence level
  1. Linear programming concept
  2. Matrix concept
  3. Simplex algorithm definition

Further reading

  1. Web https://en.wikipedia.org/wiki/Simplex_algorithm
About this page
Tag2JS8PPP8XW
URIm2://2JS8PPP8XW
Kinddefinition
WritingW0 stub
MSC90C05, 65K05
DefinesSimplex algorithm
UsesLinear programming, Matrix

Markdown · JSON · Edit on GitHub

What this page needs for W1

  • a source with a locator (0 of 1)

The writing levels say how complete the text of a page is. They do not measure its truth.

What links here

No page links to this page yet.