Seed =

Or:
Select an Exercise from *Linear Programming: Foundations and Extensions*:

Number format: Zero Visibility:

By default, problems are assumed to have four variables and three constraints. To solve a problem of a different size, 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.

The *Labels* tab allows you to select the labels for the variable names
making it easy to set up some standard variants of the simplex method.
If the *Dual* labels are chosen and the *Seed* value is nonzero,
then the matrix entries will be the negative transpose of the values one
would get with *Primal* labels. If the *Seed* is a four-digit
number (or smaller), the initial dictionary will be primal feasible and
(usually) dual infeasible. If, on the other hand, the *Seed* value is a
five-digit number, the initial dictionary will be dual feasible and (usually)
primal infeasible.

The *Seed* value controls how random problems are generated.
With the default value of zero, the random number generator is seeded according
to the system clock. Specifying a nonzero seed value gives random problems that
can be repeated by starting over with the same seed value.

The variable names are editable. To change the name of one of the
*x _{j}*'s,
just click on it as it appears in the objective function.
Similarly, to change the name of a slack variable,

The *Number format* tab allows you to choose how you would like numbers
to be displayed.
There are three choices: (1) as fractions, (2) as floating point numbers, or (3) as
integers. The third choice is accomplished by multiplying all the equations by
the largest common denominator.

Click here for a fancier version of the pivot tool which includes artificial primal and dual objectives that enable one to do two phase methods directly with the tool.

Finally, click here for the Java Applet version of the same tool.

Acknowledgements: I'd like to thank former and current students, especially Hande Benson and Alex Yablonski, for their helpful suggestions and comments.