3

After applying Gomory Cut (to remove the non-integer solution) in Linear Programming, I don't really know what to do with the new constraint that I get as a result. I have tried to add the new constraint to the most-recent tableau that there is, but I don't know how to proceed since the indexes of the objective function (last row in the tableau) remain positive which indicates that we have the optimal solution (which was the non-integer one...).

Most-recent tableau:

x_(1) x_(2) s_(1) s_(2) s_(3) z
r_(1) 1 0 2/7 -1/7 0 0 12/7
r_(2) 0 1 -1/7 5/21 0 0 15/7
r_(3) 0 0 -2/7 -4/21 1 0 20/7
d 0 0 1/7 9/21 0 1 69/7

New equation to remove the non-integer solution: x_1 - s_2 - 1 <= 0

But how can I continue with the tableau and the new constraint? Or should I put it in the tableau of the previous iteration?

(P.S, the objective function is of the form $$ z=c^T x \Leftrightarrow z-c^T x=0 $$ and in the last row of the tableau the indices represent the $$ -c^T $$

RobPratt
  • 50,938
Ronald
  • 81

1 Answers1

2

The new inequality, in equational form, is $x_1 - s_2 + s_4 = 1$.

However, we cannot add it to the tableau in that form, because $x_1$ is basic. We must subtract the top row, $x_1 + \frac27s_1 - \frac17 s_2 = \frac{12}{7}$, from this new equation, getting $-\frac27 s_1 - \frac67s_2 + s_4 = -\frac57$.

\begin{array}{rrrrrrr|r} x_1 &x_2 &s_1 &s_2 &s_3 &s_4 &z &\\ \hline 1 &0 &2/7 &-1/7 &0 &0 &0 &12/7\\ 0 &1 &-1/7 &5/21 &0 &0 &0 &15/7\\ 0 &0 &-2/7 &-4/21 &1 &0 &0 &20/7\\ 0 &0 &-2/7 &-6/7 &0 &1 &0 &-5/7\\ \hline 0 &0 &1/7 &9/21 &0 &0 &1 &69/7 \end{array}

Now the tableau has nonnegative coefficients in the final row, but it is not feasible: the basic solution is $x_1 = \frac{12}{7}$, $x_2 = \frac{15}{7}$, $s_3 = \frac{20}{7}$, and $s_4 = -\frac57$. So we can use the dual simplex method to restore feasibility.

In the dual simplex method, instead of choosing an entering variable based on the reduced costs, and then choosing a leaving variable to preserve feasibility, we do the opposite:

  1. We will choose $s_4$ to be our leaving variable, because it is not feasible.
  2. Our entering variable needs to have a negative coefficient in $s_4$'s row, so that dividing by that negative coefficient restores feasibility in the row we chose. So the entering variable could be $s_1$ or $s_2$.
  3. To choose between them, compare the ratios $\frac{1/7}{2/7} = \frac12$ and $\frac{9/21}{6/7} = \frac12$ between $s_4$'s row and the bottom row. In this case, they're equal, so it doesn't matter which we choose; in general, we'd pick the variable with the smallest ratio.

A pivoting step where $s_1$ (say) enters and $s_4$ leaves is done in the same way as the ordinary simplex method:

\begin{array}{rrrrrrr|r} x_1 &x_2 &s_1 &s_2 &s_3 &s_4 &z &\\ \hline 1 &0 &0 &-1 &0 &1 &0 &1\\ 0 &1 &0 &2/3 &0 &-1/2 &0 &5/2\\ 0 &0 &0 &2/3 &1 &-1 &0 &25/7\\ 0 &0 &1 &3 &0 &-7/2 &0 &5/2\\ \hline 0 &0 &9 &0 &0 &1/2 &1 &19/2 \end{array}

Here, one pivot has restored feasibility (in general, many steps could be required), so we've finished solving our new LP. Because we still don't have an integer solution, we should add another cutting plane and continue in the same way.

Misha Lavrov
  • 159,700
  • 1
    Thank you for the answer! I haven't learnt the dual simplex method during my theory lessons, and when I search on Google/Youtube I see different kind of tableaus which confuses me. If you may have time, could you please extend your answer with the explanation on how to actually apply the dual simplex method to my tableau? That would help A LOT! Thank you in advance – Ronald Aug 30 '23 at 08:44
  • @Ronald I've added an explanation for completeness, but I feel like this is the sort of thing you should look up in your textbook, or ask the instructor, rather than try to learn on your own. It's a fundamental topic, not a minor detail. – Misha Lavrov Aug 30 '23 at 13:45
  • thank you very much! Now it is clear to me. I however do still have 2 questions if you don't mind. 1) Let's say that the final column of the row of our new constraint is negative, but the coefficients are all positive, then this means that our problem is infeasible and we should stop? 2) Is it possible that we can also do this without the dual simplex method? For example by taking a previous iteration and introducing the new constraint there so that we don't end up in an "infeasible tableau" like this one or some other method? Because we haven't covered this during classes. – Ronald Aug 30 '23 at 14:43
  • 1
    (1) Yes; in that case, the equation you've added is a contradiction, since it sets a necessarily-positive quantity equal to a negative quantity. This will already be apparent once you write down the fractional cut: instead of something like $x_1 - s_2 - 1 \le 0$, it will look something like $x_1 + s_2 + 1 \le 0$, which is impossible to satisfy. – Misha Lavrov Aug 30 '23 at 14:47
  • (2) Without the dual simplex method, I can think of two strategies. One is to start from scratch: rewrite $x_1-s_2-1\le0$ in terms of $x_1$ and $x_2$, set up the initial tableau with one extra inequality, and start again from there. (Some initial pivots might be the same, but you can't predict how many.) The other strategy is to do some kind of two-phase method: before we add the constraint $x_1-s_2\le1$ to the tableau in any way, minimize the artificial objective function $x_1-s_2$ until you get it down to below $1$, then add the constraint and bring back the original objective function. – Misha Lavrov Aug 30 '23 at 14:51
  • It is all clear, thank you very much! – Ronald Aug 30 '23 at 15:07
  • Sorry for the spam, but I was wondering whether this method works exactly the same way when I work with the dual version of a certain problem (for example to reduce the amount of variables). I know that to get the final result from a dual problem for the original problem, I have to look at the coefficients in the tableau and not at the value of the variables, but I wasn't sure whether this method for gomory cut stays the same when applying it to the dual problem. – Ronald Aug 30 '23 at 15:41
  • I think for further questions, you should post another question. But to answer this one: in integer programming, whether you use Gomory's cut or any other technique, you can't just decide to work with the dual to reduce the amount of variables. Strong duality does not hold for integer programming. – Misha Lavrov Aug 30 '23 at 16:01
  • I asked it as a different question, see https://math.stackexchange.com/questions/4761031/gomory-cut-combined-with-duality-in-integer-programming. I asked this because we sometimes get as exercise to first take the dual of the original problem, then to continue with the exercise. So we are allowed to take the dual of that problem, we don't just take it ourselves. Would you mind taking a look at the question when you have time? Thank you in advance – Ronald Aug 30 '23 at 16:38
  • Since I have an exam soon I would appreciate if you could answer that question, that would help a lot. Thanks in advance – Ronald Sep 01 '23 at 17:32