Or:     Select an Exercise from Linear Programming: Foundations and Extensions:
Edit the two text fields to specify the number of rows and columns you want.
You can enter data elements into each text field to define a specfic problem. Alternatively, you can click on generate random problem to quickly get a random problem to play with.
To make a pivot, simply click on the variable-button that you want to pivot around. If you click on a button associated with a zero pivot element, the applet will complain.
Primal infeasible right-hand side coefficients are highlighted in fuscia (after the first pivot) as are dual infeasible cost coefficients. When all the fuscia cells are gone, you have an optimal dictionary.
This applet features an artificial objective row and/or an artificial right-hand side column (depending on the method selected), which can be used to guide pivot choices for either a primal or a dual phase one process. When generating a random problem, the coefficients in the artificial row are set to -1. Hence, this row represents a dual feasible objective function. Similarly, the artificial column is initialized to +1 and therefore represents a primal feasible objective. When pivoting, any infeasibilities that occur in these artificial row/columns are highlighted in yellow.
Click here for further hints on how to use the applet.
Click here for a simpler version of the pivot tool that is designed for use when either the primal or the dual initial dictionary is feasible.
Finally, click here for the Java Applet version of this tool.
Acknowledgements: I'd like to thank former and current students, especially Hande Benson and Alex Yablonski, for their helpful suggestions and comments.