D1 5.3 - The Simplex algorithm
Simplex improves a feasible linear programming solution through exact tableau row operations. You will choose pivots, solve maximisation and minimisation problems with upper-bound constraints, reconstruct models from tableaux, and check optimality and exceptional outcomes (D1 5.3).
Read a tableau as a system of equations
If product earns pounds and product earns pounds, should you fill the capacity with and stop? Under , , the feasible plan earns , but earns . Producing less of the better-paid product can earn more overall.
Simplex makes that improvement systematically. It solves a continuous linear program; integer requirements need a separate integer-solution check.
You already know
Formulation turns constraints into equations with non-negative slack variables. Artificial variables are temporary and must vanish at an original solution. Keep the objective direction, variable meanings and all original constraints visible.
For the opening model, maximise . The equations are
Pearson's tableau puts constraint rows first, the objective or profit row last, and the right-hand side in Value:
| b.v. | Value | ||||
|---|---|---|---|---|---|
The coefficient of in its equation is implicitly ; there is no separate column.
Basic feasible solution
Basic-variable columns have one and zeros elsewhere in the constraint rows, with zero coefficients in the objective row. Set the non-basic variables to zero; each basic variable is then its row's Value. The solution is feasible when these basic values are non-negative and the original constraints are satisfied.
Here are basic, while , giving . Ordinary slack-start Simplex requires non-negative right-hand sides and an available initial feasible basis. Lower-bound or equality rows may need the methods developed in the next lesson.
Different variable bounds may first need a substitution. For example, can be written , . Then becomes , and an objective becomes . Substitute into the objective and every constraint, then translate the final answer back.
Key idea
A tableau row is an equation, not a list of variable values. Basic values come from Value after non-basic variables are set to zero; objective-row coefficients are not solution coordinates.
Read the displayed initial tableau using its basis.
Choose a feasible improving pivot and update every row
Choose an improving non-basic column, then use the ratio test to keep basic values non-negative.
With this maximisation convention, a negative profit-row coefficient represents a variable whose increase can improve the objective, provided a positive feasible move is possible. Use the most negative coefficient when instructed.
One Simplex iteration
For a feasible maximisation tableau:
- Choose the most negative profit-row coefficient, excluding Value, as the entering column. If none is negative, the tableau is optimal.
- For constraint rows with a strictly positive entry in that column, calculate Value divided by that entry. Choose the least non-negative ratio; that basic variable leaves.
- Divide the entire pivot row by the pivot entry. Change its basic-variable label to the entering variable.
- Use the new pivot row to make every other entry in the entering column zero, including the profit row. Update every column, including Value.
- Repeat, checking feasibility and the basis.
The algorithm and tableau conventions are not supplied.
Not in the formula booklet: learn it.
Ignore zero or negative pivot-column entries when forming ratios. A zero Value divided by a positive entry is a valid ratio zero: do not ignore it. For tied eligible ratios or tied most-negative coefficients, choose one consistently and show the choice. A zero-ratio pivot may change the basis without immediately improving the objective.
Worked example 1: an improvement that reduces an earlier decision
Question. Use Simplex to maximise , subject to , , . State row operations.
Plan. Start from the displayed slack basis, pivot on the most negative profit coefficient and continue until no improving coefficient remains.
Enter . Ratios are , , so leaves. Write for the profit row. Use
The latter two operations use the new pivot row.
| b.v. | Value | ||||
|---|---|---|---|---|---|
This means . A feasible increase in can improve profit, so this point is not optimal.
Now enter . Ratios are , , so leaves. Use
| b.v. | Value | ||||
|---|---|---|---|---|---|
Why this step? The least ratio stops a basic variable becoming negative. Whole-tableau operations preserve the equations and make the new basis readable.
Answer. Set : , maximum .
Check. Both capacities hold with equality. The final equation proves . Moving from to raises profit from to .
Worked example 2 changes only the objective's coefficient, from to . The entering column and route through feasible solutions change.
Worked example 2: a different first pivot
Question. For the same constraints, maximise using Simplex.
Plan. Retain the constraint rows and start with profit row .
Enter . Ratios , select , replacing by . The pivot is already . Use
| b.v. | Value | ||||
|---|---|---|---|---|---|
Why this step? The changed reward selects , but the unchanged constraints still determine its limiting feasible ratio.
Answer. All profit coefficients are non-negative. With , , maximum .
Check. . Original profit is , and the second resource has two units unused.
With three or four decision variables, the same operations include every decision, slack and Value entry. Retain exact fractions.
Exam tip
State row operations as assignments and identify an updated pivot row. Update basic-variable labels and the profit row. Explain from the profit equation which feasible increase improves the objective, rather than merely mentioning a negative entry.
Change only the objective's coefficient again.
Watch out
Wrong: divide the pivot row, then eliminate other rows using its old entries. All eliminations must use the same new normalised pivot row, including the profit row and Value column. Otherwise the new tableau no longer represents equivalent equations, even if the pivot column appears correct.
State the row assignments before interpreting the resulting optimum.
Minimise by maximising a transformed objective
To minimise , maximise ; retain the constraints and restore the original objective and variables at the end.
A negative transformed objective value can be correct. Its sign does not decide optimality: use the profit coefficients and feasible basis. A constant objective term belongs in Value, not a decision-variable column.
Minimisation and translated variables
For a lower bound , substitute , . For an upper bound , substitute , , when using that one-sided bound as the variable's domain. Substitute into every constraint and the objective.
These reformulate the same optimisation question.
Not in the formula booklet: learn it.
The following problems show why an objective offset must be retained even though it does not change which feasible plan is best.
Worked example 3: a lower bound and a cost objective
Question. Minimise , subject to , , , using Simplex after substitution.
Plan. Set , , maximise , then translate back.
The initial tableau is
| b.v. | Value | ||||
|---|---|---|---|---|---|
Enter , using ratios . Apply , then , :
| b.v. | Value | ||||
|---|---|---|---|---|---|
Enter , with ratios . Use , then , :
| b.v. | Value | ||||
|---|---|---|---|---|---|
Why this step? The tableau gives transformed variables and . Reporting as the original , or reporting as the cost, would answer a different question.
Answer. , hence , minimum .
Check. Both original capacities hold with equality, , and . The final equation gives .
Continue this lesson.
You’re previewing NovaLearn without an account. Create a free account to read the rest.
Create free account