The primal simplex method transforms an initial tableau into a final tableau containing the solutions to the primal and dual problems. Each stage of the algorithm generates an intermediate tableau as the algorithm gropes towards a solution.
This web page permits you to enter your own linear programming problem and generate these tableaux with a user friendly interface. You can specify up to 6 variables and 10 constraints in the primal problem, with any mixture of <=, >=, and = constraints.
To illustrate the procedure you need to follow, consider the problem:
To generate the form used to enter the l.p. data you must set the parameters that specify your l.p. problem as I have done below for the problem above.
After you fill in your form and click submit paramters, a web page will pop with a table, like the one below, where you can enter the data of your l.p. problem. Notice that you need neither multiply = constrainst by -1, nor convert >= constraints to <= constraints.
Warning: Undefined array key "sformtable" in /services/webpages/e/g/egwald.ca/public/operationsresearch/lpprimalsimplexgenerator.php on line 150
FormTable =
After you fill in your data and click submit, the program will automatically calculate a sequence of tableaux that solves the primal and dual l.p. problems. Examine the tableaux that follow to see how the primal simplex method proceeds to find the solution.
To perform a sensitivity analysis on your linear programming problem, change the data in the table above, and click Submit L.P. again.
Primal Simplex Algorithm.
The standard form for the initial primal simplex tableau is:
Initial Tableau
b
A
I3
0
-cT
O3T
The primal simplex algorithm calculates a sequence of tableaux. Tableauk has the form:
Tableauk
ß
U
B
µ
tT
yT
=
Tableauk
ß
Û
µ
Ø
after consolidating the center 2 by 2 block of matrices.
The "three-phase method" of the primal simplex algorithm:
Phase 0 - drive all artificial variables (associated with = constraints) to zero, i.e. eliminate them from the basis;
Phase I - find a tableau with ß >= 0, i.e. a feasible primal program;
Phase II - generate tableaux that increase the value of µ, without dropping back into Phase 0 or I, until Ø >= 0 for all sign restricted variables, i.e. find a feasible primal program that maximizes the objective function.
Phase 0: Drive the artificial variables from the basis.
Tableau0
b0
x01
x02
x03
s01
s02
s*03
row sum
b / Ûk
L01
85
1
1
1
1
0
0
89
Fatal error: Uncaught TypeError: Unsupported operand types: string * int in /services/webpages/e/g/egwald.ca/public/operationsresearch/functions/primalsimplex.php:64
Stack trace:
#0 /services/webpages/e/g/egwald.ca/public/operationsresearch/functions/primalsimplex.php(237): primaltableau(Array, 3, 3, 1, 1, 1, 0, 3, 2, 1.0, 3, 2, 1.0, Array, 0)
#1 /services/webpages/e/g/egwald.ca/public/operationsresearch/lpprimalsimplexgenerator.php(247): primalsimplex(Array, Array, Array, 3, 3, 1, 1, 1, 0)
#2 {main}
thrown in /services/webpages/e/g/egwald.ca/public/operationsresearch/functions/primalsimplex.php on line 64