Tableau:
(1) If c � 0 then STOP (we have an optimal BFS).
(2) Let cj < 0; write u = B−1Aj. If ui � 0 for all i then STOP ( inf c · x = −∞).
(3) Otherwise, find i with ui > 0 and xB(i)/ui giving the least possible value.
(4) Apply row operations to change u to the unit vector (0, . . . , 0, 1, . . . , 0).
(5) Reduce the costs and GoTo (1).
1
2
Example (easy to start)
Example (typical)
4
Example (degenerate case)
5
How this work
We have xB = B−1b in the zero column and B−1A in the main body.
Let the m × m matrix V codes the row operations changing u = B−1Aj to the unit vector.
• Then V B−1 becomes the inverse of new basic matrix B−1 and therefore V xB = V B−1b = B−1b becomes the new BFS.
• Applying row operations to make ci equal zero, we anyway modify the cost vector by a linear combination of the rows of A (which does not change optimality).
Why we write −c · x in the (0, 0) box of the tableau?
Recall that dB = −B−1Aj so u = −dB.
We have the new BFS y = x + θ∗d so we should have in that box −c · y = −c · x − θ∗c· d.
During the row operations we get
−c · x − xB(i)
ui cj = −c · x − θ∗cj is it is fine!