Homepage › Solution manuals › Dimitris Bertsimas › Introduction to Linear Optimization › Exercise 3.13 (Matrix inversion lemma)
Exercise 3.13 (Matrix inversion lemma)
This exercise shows that our efficient procedures for updating a tableau can be derived from a useful fact in numerical linear algebra.
- (a)
-
(Matrix inversion lemma) Let
be an
invertible matrix and let
be vectors in
. Show that
(Note that is an matrix). Hint: Multiply both sides by .
- (b)
- Assuming that is available, explain how to obtain using only arithmetic operations.
- (c)
-
Let
and
be basis matrices before and after an iteration of the simplex method. Let
,
be the exiting and entering column, respectively. Show that
where is the th unit vector.
- (d)
-
Note that
is the
th row of
and
is the pivot row. Show that
for suitable scalars . Provide a formula for . Interpret the above equation in terms of the mechanics for pivoting in the revised simplex method.
- (e)
- Multiply both sides of the equation in part (d) by and obtain an interpretation of the mechanics for pivoting in the full tableau implementation.
Answers
(a) Following the hint, we will prove the identity by showing that the product of and the expression on the right-hand side is the identity matrix. Let the right-hand side be denoted by :
We want to show that . We expand the product:
First, we compute the term :
Next, we compute the term . To simplify this, we first evaluate , noting that is a scalar:
Using this result, we can now find :
Finally, we add the two computed parts together:
This confirms the identity, provided that the denominator . □
(b) We use the formula from part (a) and compute the right-hand side efficiently by avoiding matrix-matrix multiplications. The procedure is as follows:
- 1.
- Compute the vector . This is a matrix-vector product, which requires operations.
- 2.
- Compute the scalar . This is a vector dot product plus an addition, requiring operations.
- 3.
- Compute the row vector . This is a vector-matrix product, which also requires operations.
- 4.
- The expression to be subtracted is now . Forming the rank-one matrix costs , and the subsequent scalar division costs another .
- 5.
- Finally, subtract this result from . This matrix subtraction requires operations.
The total cost is dominated by the matrix-vector multiplications and matrix additions/subtractions. The overall complexity is therefore . □
(c) The matrix is identical to the matrix , except that its th column, , has been replaced by the entering column, .
The difference is therefore a matrix that consists of zero vectors in every column, except for the th column. The th column is the difference between the new and old th columns, which is .
The expression on the right-hand side is the outer product of the column vector and the row vector . This product results in a matrix whose th column is multiplied by the th component of . Since the th component of is 1 if and 0 otherwise, the resulting matrix is zero everywhere except for the th column, which is precisely . The two sides are therefore equal. □
(d) From part (c), we have . Let and . We can now apply the matrix inversion lemma from part (a) with :
To find the th row of , we left-multiply by :
This is the desired form, where the scalar is given by
To find a more practical form for , let be the pivot column. Note that since is the -th column of , we have . We can then simplify the terms involving :
The term is 1 if and 0 otherwise. The pivot element is . Substituting these back gives the formula:
Interpretation: The identity shows that the new -th row of is obtained by taking the old -th row and subtracting a multiple ( ) of the old pivot row. This is precisely the elementary row operation used to update the matrix in the revised simplex method.
(e) The full simplex tableau (excluding the zeroth row) can be represented by the matrix . The th row of this tableau is therefore .
We right-multiply the row update formula from part (d) by the matrix :
Distributing the product on the right-hand side gives:
This can be rewritten in terms of tableau rows as:
Interpretation: This equation shows that each row of the new simplex tableau is obtained by subtracting a multiple ( ) of the old pivot row from the corresponding old row. This is exactly the standard procedure for pivoting in the full tableau implementation:
- For the pivot row ( ), we have . The update is . This is equivalent to scaling the pivot row to make the pivot element equal to 1.
- For any other row ( ), we have . The update is . This is equivalent to using the scaled pivot row to eliminate the other non-zero entries in the pivot column. □