Simplex method (basic)
At a Glance
- Frequency: 9 sub-parts across 8 of 13 years (2013, 2014, 2015, 2016, 2017, 2019, 2020, 2022)
- Priority tier: T1
- Marks (count): 10 (1), 15 (3), 20 (5)
- Average solve time: ~17 min
- Difficulty mix: medium 6, hard 3
- Section: A | Dominant type: computation
Why This Chapter Matters
The simplex method appears in 8 of the last 10 years and almost always carries 15 or 20 marks — the second-highest average mark of any T1 Paper 2 atom. More importantly, the algorithm is completely mechanical: every question follows the same four-step sequence (standard form → tableau → pivot until optimal → read the answer). The hard parts are handling special cases — equality constraints, lower-bound shifts, resonance with alternative optima, and reading the dual from the optimal tableau — but each has a fixed rule. Learning those rules is sufficient to score full marks.
Minimum Theory
Standard form and initial basis. A linear programming problem with all constraints and non-negative RHS is converted to standard form by adding non-negative slack variables . The slacks form the initial basis with . If a constraint is , add a (non-negative) artificial variable and use Big-M or Phase-I to drive it to zero. If a variable has a non-zero lower bound , substitute before running the simplex.
Pivot rules. At each iteration: the entering variable is the one with the largest positive (for maximisation); for minimisation use the largest positive . The leaving variable is found by the minimum-ratio test: compute ; the row achieving the minimum exits the basis. Pivot by row-reducing to make the entering column a unit vector.
Termination and special cases. The tableau is optimal when all (max). If a non-basic variable has at the optimal tableau, alternative optima exist; do one more pivot on that variable to find the second extreme optimal vertex, then the complete optimal set is their convex combination. The dual optimum is read directly from the optimal tableau: it equals the entry in the column of the -th slack variable.
Question Archetypes
Three patterns cover every simplex question in the corpus.
| Archetype | You are seeing this when… |
|---|---|
| simplex-method | straightforward maximise/minimise with constraints; iterate to optimality |
| simplex-alternative-optima | ”find all optimal solutions” or “is the optimum unique?“ |
| simplex-with-dual | ”write the dual” and “read the dual optimum from the optimal table” |
simplex-method (5 question(s); 2013×2, 2017, 2019, 2020)
Recognition Cues
- “Solve by the simplex method” with constraints (sometimes one equality or lower-bound constraint).
- May ask to minimise — convert by negating objective, or equivalently enter the variable with the largest positive .
- A non-standard constraint (equality, , or ) signals a pre-processing step before the main simplex run.
Solution Template
- Pre-process. For constraints: subtract a surplus variable and add an artificial. For equality constraints: add an artificial. For lower bounds : substitute .
- Standard form. For constraints add slacks . Write the initial tableau with as the basis.
- Compute . For the initial tableau (with all-slack basis) (max) or (min).
- Pivot. Enter: largest positive . Leave: min-ratio test (skip non-positive column entries). Update the tableau by row operations.
- Repeat until no positive remains.
- Read the solution. Basic variables = RHS values; non-basic = 0. Compute objective.
Worked Example(s)
2013 Paper 2, 2013-P2-Q1e (10 marks)
Maximize s.t. , , .
Pre-process. The equality eliminates . The constraint becomes , and gives . Substituting into the objective yields .
Maximise . Both constraints and fix ; optimum at , , :
2013 Paper 2, 2013-P2-Q4c (20 marks)
Minimize s.t. , , , .
Standard form. Add slacks . For minimisation enter the variable with the largest positive (initial): has .
Iteration 1. enters, min-ratio at . Pivot.
Iteration 2. enters (next largest ), min-ratio at . Pivot.
Check. All : optimal. Note (alternative optima along the edge).
2017 Paper 2, 2017-P2-Q3c (20 marks)
Maximize s.t. , , , .
Three iterations. Enter (coeff 5) → leaves ( min-ratio). Enter → leaves (). Enter → leaves (). All three structural constraints become binding at the optimum.
Keep exact fractions. The denominator 41 arises from the pivot on in iteration 2 — the most error-prone step.
2019 Paper 2, 2019-P2-Q3b (15 marks)
Minimize s.t. , , .
Key observation. Subtract the two equations: . Since , this forces . The feasible set reduces to where (constant). The minimum is , achieved at every feasible point, e.g. .
Do not be lured by the negative cost coefficients — those variables are pinned at zero.
2020 Paper 2, 2020-P2-Q3b (15 marks)
Minimize s.t. , , , , , .
Shift. : , , . New constraints: , , . New objective: maximize (constant absorbed).
Three simplex iterations drive all slacks to zero. Solve the binding system:
Back-substitute:
Common Traps
- Min-ratio test: skip rows where the entering column entry is — those rows do not bound the increase of the entering variable.
- Minimisation sign: for minimisation, enter the variable with the largest positive (equivalently, enter the most-negative reduced cost); don’t accidentally use the max convention.
- Equality constraints force artificials — the negative cost terms from equality constraints are not exploitable if the feasible region pinning forces those variables to zero (2019).
- Non-zero lower bounds must be shifted before running the simplex (2020); the optimal tableau values are for the shifted variables , not the original .
- Keep exact fractions throughout — the denominator-41 type fractions (2017) are correct; rounding mid-computation causes cascading errors.
simplex-alternative-optima (2 question(s); 2014, 2016)
Recognition Cues
- “Find all optimal solutions” — a deliberate cue that there is more than one.
- “Is the optimal solution unique? Justify.”
- The optimal tableau has a non-basic variable with .
Solution Template
- Run the simplex to the first optimal tableau.
- Check non-basic reduced costs. If any non-basic variable has , alternative optima exist; state this.
- Find the second vertex: pivot that non-basic variable into the basis (using the min-ratio test on its column).
- Report the segment: all optimal solutions are the convex combination for .
- Uniqueness: if all non-basic reduced costs are strictly negative at optimality, the solution is unique.
Worked Example(s)
2014 Paper 2, 2014-P2-Q4c (20 marks)
Maximize s.t. , , , . Find all optimal solutions.
Iteration 1 ( enters, leaves): basis , .
Iteration 2 ( enters, leaves): basis , .
Optimal tableau reduced costs. ; ← alternative optima!
Pivot in. Min-ratio on column: leaves. New vertex: , ✓.
The entire edge joining and is optimal because the objective gradient is parallel to the binding constraint .
2016 Paper 2, 2016-P2-Q2c (20 marks)
Maximize s.t. , , . Is the solution unique?
Iteration 1 ( enters, leaves). Iteration 2 ( enters, leaves).
Optimal. , . Non-basic reduced costs: , , — all strictly negative.
Common Traps
- Alternative-optima signal is for a non-basic variable. Basic variables trivially have — that is not the signal.
- Must check all non-basic reduced costs (structural variables AND slacks) for the uniqueness test.
- When finding the second vertex, the pivot on the zero-reduced-cost variable uses the standard min-ratio test — the objective does not change but the basis changes.
simplex-with-dual (2 question(s); 2015, 2022)
Recognition Cues
- “Write the dual of the given problem.”
- “Read the dual optimum from the optimal table.”
- The question has both a primal simplex run AND a dual reading.
Solution Template
- Solve the primal by simplex to optimality.
- Write the dual. For a primal s.t. , : dual is s.t. , .
- Read dual optimum. In the optimal primal tableau, entry in the row at the column of slack .
- Verify strong duality: .
- Verify dual feasibility: substitute into each dual constraint.
Worked Example(s)
2015 Paper 2, 2015-P2-Q4c (20 marks)
Max s.t. , ; write dual; read dual optimum.
Simplex (two iterations: enters then enters):
| Basis | RHS | |||||
|---|---|---|---|---|---|---|
| 1 | 16 | 0 | 3 | 2 | 8 | |
| 0 | 6 | 1 | 1 | 1 | 3 | |
| 0 | 66 | 0 | 11 | 9 | 31 |
Dual. Min s.t. , , , .
Dual optimum from row at slack columns. (at ), (at ). ✓.
2022 Paper 2, 2022-P2-Q3c (15 marks)
Max s.t. , , ; write dual; read dual optimum.
Simplex (three degenerate pivots ending with basic):
Dual. Min s.t. , , , .
Dual optimum. From optimal row: , . ✓.
Common Traps
- The dual optimum is in the (or ) row at the slack variable columns, not the structural variable columns.
- Strong duality check () is the fastest verification of the dual reading.
- Complementary slackness: a binding dual constraint corresponds to a non-zero primal variable, and vice versa — use this to cross-check.
- With degeneracy (tied ratios in the min-ratio test), the simplex may take extra iterations but still reaches the correct optimum; the dual reading procedure is unchanged.
Marks-Aware Writing
10-mark questions (2013-Q1e): One to two sentences of strategy, then eliminate the equality and solve the 2-variable LPP. Box the answer and verify all constraints.
15-mark questions (2019, 2020, 2022): Full tableau with three iterations shown. Each iteration: entering variable (with justification), min-ratio test (table), pivot result. Final answer in a box. One verification row.
20-mark questions (2013-Q4c, 2014, 2015, 2016, 2017): Show every pivot in a labelled tableau. For the dual: write the dual formulation explicitly (objective + all constraints), then read and state the strong-duality verification. For alternative optima: find both vertices, state the segment.
Practice Set
| Year | Paper/Q | Marks | Archetype | One-line hint |
|---|---|---|---|---|
| 2022 | P2-Q3c | 15 | simplex-with-dual | Two pivots; degenerate (RHS=0) at one step; dual from slack columns |
| 2020 | P2-Q3b | 15 | simplex-method | Shift first; three binding constraints at optimum; exact fractions |
| 2019 | P2-Q3b | 15 | simplex-method | Subtract equations to get ; on entire feasible set |
| 2017 | P2-Q3c | 20 | simplex-method | Three iterations; denominator-41 fractions at optimum; all constraints binding |
| 2016 | P2-Q2c | 20 | simplex-alternative-optima | All non-basic at optimum; unique; verify by computing all three |
| 2015 | P2-Q4c | 20 | simplex-with-dual | Two iterations; dual from at columns |
| 2014 | P2-Q4c | 20 | simplex-alternative-optima | at optimum; one more pivot gives second vertex ; segment |
| 2013 | P2-Q4c | 20 | simplex-method | Two pivots: in/ out, then in/ out; min not max |
| 2013 | P2-Q1e | 10 | simplex-method | Equality eliminates ; reduced 2-var LPP; corner at |