The importance of the full-row-rank assumption for the simplex method

1.6k Views Asked by At

Consider a linear programming model in the usual form ready for applying the simplex method. I understand that having the constraint equations' coefficient matrix $A$ be of full row rank means not having any redundancy in the constraints.

However, will $A$ not being of full row rank cause any problems in the application of the simplex algorithm? For example, if there is a degenerate basic feasible point that has not been preprocessed away, then the simplex algorithm (if unmodified) may go into an infinite loop and never terminate. How about when $A$ is not of full row rank?

2

There are 2 best solutions below

0
On

The two-phase simplex method will automatically detect and resolve redundancy in the system of equations.

For completeness, let me first mention the case of a system with inequality constraints (something like $Ax \le b$ with $x \ge 0$). Here, the full row rank assumption will be satisfied automatically. We will then add slack variables to turn the system into $Ax + Is = b$ with $x,s \ge 0$, and the augmented matrix $[A \mid I]$ always has full row rank.

In the case of a system with equation constraints (something like $Ax = b$ with $x \ge 0$), we'll have other problems to deal with before we worry about rank. Namely, we don't have an initial basic feasible solution to start from. In this scenario, we use a two-phase simplex method. The most straightforward approach here is to add artificial slack variables in the first phase: again, turn the system into $Ax + Is = b$ with $x,s \ge 0$. Then minimize the sum $s_1 + \dots + s_m$: the original system has a solution if we can get $s_1 = \dots = s_m = 0$.

At this point, if the system $Ax = b$ did not have full row rank, two things could happen.

  1. It could end up being inconsistent. Then we will not be able to get the sum of the artificial slack variables to $0$ in the first phase. In this case, we just report that the linear program is infeasible.

  2. It could be consistent, but with redundant equations. When the artificial slack variables all hit $0$, some of them will remain basic, and we'll have one or more rows in the tableau that only involve the artificial slack variables. In this case, we drop all such rows as we go into the second phase.

For example, if the system is something like \begin{align} x_1 + 2x_2 &=2 \\ 2x_1 + 4x_2 &= 4 \end{align} then in phase one, we will be minimizing $s_1 + s_2$ subject to the constraints \begin{align} x_1 + 2x_2 + s_1 &=2 \\ 2x_1 + 4x_2 + s_2 &= 4. \end{align} The initial basic solution has basic variables $(s_1, s_2)$. One possible basic solution at the end of phase one is $(x_1, s_2)$, with the dictionary \begin{align} x_1 &= 2 - s_1 - 2x_2 \\ s_2 &= 0 + 2s_1 \end{align} Going into phase two, we will drop the second equation and simplify the first equation to $$x_1 = 2 - 2x_2.$$ The point $(x_1,x_2) = (2,0)$ is now our basic solution (with basic variable $x_1$), and we can go on to optimize whatever it is we originally wanted to optimize.

To summarize: we will not have to worry about rank in the first phase, because the augmented matrix $[A \mid I]$ always has full row rank. We will not have to worry about rank in the second phase, because we will delete redundant rows after finishing the first phase.

0
On

The Simplex Method requires full-row rank because of how it handles pivoting, specifically how it handles Gaussian Elimination into row-reduced echelon form for basic variable selection, as the amount of basic variables that exist in any basic feasible solution of a model depends on the number of constraints of that model. Without this, the Simplex Method will not operate as it assumes the following:

  • The Simplex Algorithm assumes that the initial point it starts at is a basic feasible solution.
  • The number of basic variables that exists in the model (and the amount of basic variables Simplex will need to solve a model) is dependent on the number of constraints within the model.

Suppose we have the following Linear Model:

$$\max z=x_1+2x_2+x_3$$ $$s.t.\quad 3x_1+4x_2-x_3\le4$$ $$x_1+x_2\le26$$ $$x_1,x_2,x_3\ge0$$

Now, let's look at two different tableau where we would do standardization like normal, and one where we don't fully do that for the first constraint by adding zeros to the other constraint and objective function:

\begin{array}{|c|c|} \hline BV & z & x_1 & x_2 & x_3 & s_1 & s_2 & RHS & \text{Ratio Test} \\ \hline z & 1 & -1 & -2 & -1 & 0 & 0 & 0 & - \\ \hline s_1 & 0 & 3 & 4 & -1 & 1 & 0 & 4 & 4/4=1 \\ \hline s_2 & 0 & 1 & 1 & 0 & 0 & 1 & 26 & 26/1=26\\ \hline \end{array} $$\text{Table 1: Standardized Tableau}$$

\begin{array}{|c|c|} \hline BV & z & x_1 & x_2 & x_3 & s_1 & s_2 & RHS & \text{Ratio Test} \\ \hline z & 1 & -1 & -2 & -1 & & 0 & 0 &- \\ \hline ? & 0 & 3 & 4 & -1 & 1 & 0 & 4 & - \\ \hline s_2 & 0 & 1 & 1 & 0 & & 1 & 26 & -\\ \hline \end{array} $$\text{Table 2: Partially Standardized Tableau}$$

Notice how there exists no basic variable for the second constraint in Table $2$, as we have no reasonable way to interpret the nothing spaces for reducing a column into row-reduced echelon form to achieve two basic variables for any solution using Table $2$. With Table $1$, we immediately know which column we can move forward with because we have full-row rank, and thus we can do a pivot to achieve \begin{array}{|c|c|} \hline BV & z & x_1 & x_2 & x_3 & s_1 & s_2 & RHS & \text{Ratio Test} \\ \hline z & 1 & 1/2 & 0 & -3/2 & 1/2 & 0 & 2 & - \\ \hline x_2 & 0 & 3/4 & 1 & -1/4 & 1/4 & 0 & 1 & \infty \\ \hline s_2 & 0 & 1/4 & 0 & 1/4 &-1/4 & 1 & 25 & 25/(1/4)=100\\ \hline \end{array}

Thus, if we were to not have full-row rank for the Simplex Method, not only would we be unable to start because there's no basic feasible starting positions for the method to use, but there is no way to move forward to use Gaussian Elimination to find future basic variables.