4.10.21 · D4Advanced Topics (Elite Level)

Exercises — Linear programming — simplex method (intro)

2,528 words11 min readBack to topic

We will keep re-using one tiny dictionary, so let us pin it down first in plain words.

The recipe, so you never lose the thread:


Level 1 — Recognition

L1.1

Recall Solution

(a) The picks are 2 decision variables. (b) One slack per constraint (not counting , which is handled by keeping variables non-negative). Two constraints → 2 slacks . (c) Total = decisions + slacks .

L1.2

Recall Solution

Non-basic , so the corner is the ==origin ==. Then . The slacks just say "at the origin all the resource is still unused" — both constraints are slack, neither is tight.


Level 2 — Application

L2.1

Recall Solution

Slacks: . The -row is , i.e. coefficients . Enter: most negative is under enters (raising raises fastest per unit). Ratio test — only rows where the -column entry is positive:

  • Row : -entry is → skip (a never bounds the increase).
  • Row : .
  • Row : .

Smallest ratio is leaves. Pushing to makes (constraint becomes tight) while others stay . New corner: , so with .

L2.2

Recall Solution

After the first pivot, is basic (), and the -row still has a negative under , so we pivot again. Carrying the row-reduction to completion (enter , ratio test picks the row) lands us at the intersection of and : Corner , and . The -row is now all → optimal. Check the third constraint on the way: ✓, both used up sensibly. See the corner walk in the figure below.

Figure — Linear programming — simplex method (intro)

Level 3 — Analysis

L3.1

Recall Solution

The -row equation is (move the negatives across). So , the largest positive rate. enters — increasing it raises by per unit, more than 's ; the columns ( and ) either help nothing or reduce , so we would never increase them. "Most negative in the -row" is exactly "biggest positive rate of gain".

L3.2

Recall Solution

Yes — optimal, because every -row coefficient is . Reading : raising any currently-non-basic variable can only lower (a leaves it unchanged). With no direction of improvement left, we sit on the top corner. This is the parent note's optimality test stated as a picture: the objective ramp no longer tilts uphill in any feasible direction.


Level 4 — Synthesis

L4.1

Recall Solution

Why negate? The simplex loop is built to maximize. Minimizing is the same as maximizing , since . Slacks: . The -row coefficients are . Pivot 1 — enter (most negative ). Ratios: , leaves. New corner: on the line with , giving , . The -row still shows a negative under , so continue. Pivot 2 — enter . The binding pair is and . Solve: Corner : ? Check both objectives carefully: . Compare : . Since , the corner is actually the better one for — the column would not improve here, so the -row is already all after pivot 1. Optimum: , . Therefore at . (Moral: always evaluate — the ratio/entering rules propose a move, but the optimality test is what confirms you have arrived.)

Figure — Linear programming — simplex method (intro)

L4.2

Recall Solution

By strong duality, the dual's optimal (a minimization) equals the primal's optimal. So the dual optimum is . Usefulness: after you finish the primal by simplex, computing any feasible dual solution with value proves you reached the true optimum — a second, independent certificate beyond "the -row went all non-negative". This is why the tableau's final -row entries under the slack columns are exactly the dual variable values.


Level 5 — Mastery (edge cases)

L5.1 — Degeneracy (a tie in the ratio test)

Recall Solution

A tie means the entering variable hits two constraints at the exact same value — more than constraints pass through one corner. That corner is degenerate (over-determined). Practical danger: a pivot may swap basis variables while does not change (a "stall"), and in rare cases the method can cycle back to a basis it already visited, never terminating. Fixes: Bland's rule (break ties by choosing the variable with the smallest index) guarantees termination. Geometrically the vertex is fine; the bookkeeping just needs an anti-cycling tie-break.

L5.2 — Unbounded objective

Recall Solution

Slack: . The -row is ; say enters. Its column entry in the only constraint row is (negative). The ratio test uses only positive entries — there are none. That means: as grows, grows too, so no constraint ever stops . We can raise (and ) without limit → the LP is unbounded, . The signal in the tableau: a negative -row entry whose entire column has no positive entry = unbounded objective. (See figure — the feasible region opens upward forever.)

Figure — Linear programming — simplex method (intro)

L5.3 — Infeasibility / no start

Recall Solution

Convert the : , whose RHS is . The basic starting solution gives slack not feasible, so the origin is not a valid starting corner; plain simplex needs . The one-line reason no solution exists: a sum cannot be both and , so the feasible region is empty (the two half-planes never overlap). Handling requires the two-phase or Big-M method to find a feasible corner first — which here reports infeasibility.


Connections

  • Convex Sets and Polytopes — every corner you hop to is a vertex of a convex polytope.
  • Gaussian Elimination — each pivot is one round of row reduction with a feasibility guard.
  • Duality in Linear Programming — L4.2's matching optimal value is a proof certificate.
  • Gradient and Level Sets — L5.2's unbounded ramp is a level-set sliding forever uphill.
  • Integer Programming — what changes when must be whole numbers (corners may not be integer).
  • Optimization (Lagrange Multipliers) — the smooth-constraint cousin of these corner walks.
Recall Self-test cloze

The entering variable is the one with the most negative -row coefficient. The leaving variable is chosen by the smallest positive ratio RHS ÷ column entry. We stop when every -row coefficient is ==. A ratio-test column with no positive entries signals an unbounded objective. A tie in the ratio test signals a degenerate== vertex and risks cycling.