#
**P**ivot
| **I**nteracti**v**e **O**ptimization **T**ool

An educational tool for experimenting with linear programs and the simplex method:

① Edit or generate a random tableau.
② Pivot or sort by clicking cells.
③ Have fun! 🍻

JavaScript seems to be disabled.

## Pivot /piˈvoː/ version 0.5 instructions

Copyright © 2019–2022 Michael Eisermann, Institut für Geometrie und Topologie (IGT), Universität Stuttgart. You may use my work under the conditions of the Creative Commons Attribution-NonCommercial-ShareAlike License (CC BY-NC-SA 4.0). This interactive optimization tool is purely educational and not intended for any other purpose. It uses JavaScript with native BigInt as provided by your browser.

The buttons are intended to be self-explaining.
*Edit/Resume* [Enter]: Edit the size and the coefficients of the tableau.
The global denominator in the top left corner applies to all entries in the tableau.
*Random* [alt+r]: Randomly set a key and generate the tableau from it.
*Generate* [alt+g]: Generate the tableau from the given key for reproducible randomness.
Special keys: 'klee-minty' generates the Klee-Minty cube.
*Clear* [alt+c]: Clear the tableau while keeping its size.
*Reset*: Reset all data, including the size and the history.
*History* [alt+f/p/n/l]: Navigate the archive; first/previous/next/last.
*Hints*: Choose a hinting method.
*Display*: Show a graph for the last two variables; set the color scheme to your taste.

The following operations are provided:
Right click on the tableau edits the cell in focus.
Left click triggers a specific action according to the cell position.
*Click on coefficient* (inner cell): Calculate this base change.
*Click top left*: Dualize by transnegation.
*Click top or left*: Sort this variable or constraint to the front.
*Click right or bottom*: Sort this variable or constraint to the back.
Your browser console [ctrl+shift+i] shows a log of all steps.

Counting 468 page hits since 2022-06-01. The Pivot webpage aims to be playful and helpful at the same time. Your active support and constructive criticism are always very welcome.

## Why are Tucker tableaux a perfect notation?

There are several ways to write down the data of a linear program.
They are mutually equivalent, but unfortunately there is
no general agreement as to which notation is the best.
By convention, this website uses non-negative variables x ≥ 0
and non-negative constraints y = Ax+b ≥ 0,
maximizing z = cx+d.
Any other convention can easily be converted into this normal form.
Around 1956 Tucker introduced his simple yet ingenious short-hand notation,
which I personally consider as most convenient:
Such a *Tucker tableau*, as shown above,
organises the data concisely and efficiently. Moreover, it presents
all operations (base changes) and symmetries (duality)
in a most natural and satisfying way.

*
By relieving the brain of all unnecessary work, a good notation
sets it free to concentrate on more advanced problems,
and in effect increases the mental power of the race.
Before the introduction of the Arabic notation, multiplication was difficult,
and the division even of integers called into play the highest mathematical faculties.
Probably nothing in the modern world would have more astonished a Greek mathematician
than to learn that, under the influence of compulsory education, a large proportion
of the population of Western Europe could perform the operation of division for the largest numbers.
This fact would have seemed to him a sheer impossibility.
The consequential extension of the notation to decimal fractions
was not accomplished till the seventeenth century.
Our modern power of easy reckoning with decimal fractions
is the almost miraculous result of the gradual discovery of a perfect notation.
*

Alfred North Whitehead (1861–1947), *An Introduction to Mathematics*