Section2.1Canonical Programs and the Simplex Pivot
In this section, we use our geometric intuition to develop an algebraic operation called a simplex pivot, which will be the key operation in solving linear optimization problems. We give both a geometric and algebraic understanding of this operation.
Note that we may rewrite this as a system of equalities by introducing the slack variables \(t_i\text{.}\) We will refer to the \(x_j\) as decision variables.
The variables at the top are called the decision variables or independent variables, the variables on the side are the slack variables or basic variables.
Note that this tableau records a basic solution \(x_1, x_2, \ldots, x_m=0\text{.}\) We will further explore what this means in a bit. But for now, if \(x_1, x_2, \ldots, x_m =0\text{,}\) then:
Consider the interactive below. Drag around the point \((x,y)\text{.}\) For each variable \(x, y, t_1, t_2\text{,}\) when are they positive? Negative? Equal to zero?
Suppose a company produces two types of widgets. Widget 1 sells for $200 and Widget 2 sells for $150. Each widget takes ingredients A, B and C. Widget 1 needs 1 unit of A, 2 units of B and 2 units of C. Widget 2 needs 2 units of A, 2 units of B and 1 unit of C. The company has 20 units of ingredient A, 30 units of B and 25 units of C.
Recall that this tableau has a basic solution where \(x_1\) and \(x_2=0\text{.}\) If we slightly increase \(x_1\) and \(x_2\text{,}\) do we increase \(f\text{?}\)
Let’s increase \(x_1\text{.}\) Consider the row corresponding to \(t_C\text{.}\) Take the associated equality and solve for \(x_1\) in terms of \(x_2\) and \(t_C\text{.}\)
For each equality associated with the rows corresponding to \(t_A, t_B, f\text{,}\) replace \(x_1\) with the value you found above and rewrite the left hand sides.
Let’s increase \(x_2\text{.}\) Take the row corresponding to \(t_B\) and repeat Tasks \(\textbf{(c)}\) and \(\textbf{(d)}\) to obtain a tableau of the form:
Each entry \(q\) not in the same row or column as \(p\) but in the same column as \(s\) (which is in the same row as \(p\)) and in the same row as \(r\) (which is in the same column as \(p\)) is replaced with \(\frac{pq-rs}{p}\text{.}\)
One may observe, this pivot operation is not difficult, but rather tedious, and it is easy to make a minor error that derails this process. Doing multiple pivots in a row compounds this issue. It is like a more tedious version of row reduction and Gaussian elimination. Thus an interactive pivoter has been provided in Appendix B. Hopefully this improves everyone’s lives.
Each widget takes ingredients A, B and C. Widget 1 needs 1 unit of A, 2 units of B and 2 units of C. Widget 2 needs 2 units of A, 2 units of B and 1 unit of C.
Now, the company wants to assign values \(y_A, y_B, y_C\) to the three ingredients. The values for each should be enough so that in a disaster, the potential revenue is recovered, i.e.:
But, the higher we value the ingredients, the greater the insurance premiums will be, so we need to minimize \(g(y_A, y_B, y_C)=20y_A+30y_B+25y_C\text{.}\)
For each column \(i\text{,}\) consider the equality recorded by this tableau: \(a_{1i}y_A + a_{2i}y_B+a_{3i}y_C + (-1)c_i=s_i\text{.}\) What must be true about \(s_i\) in order for \(a_{1i}y_A + a_{2i}y_B+a_{3i}y_C \geq c_i\text{?}\)