2

Let's say we apply dual simplex method in the process of doing a gomory cut in integer programming. Is the "algorithm" the same when working with the dual problem?

I ask this because we sometimes get as exercise to first take the dual of the original problem, then to continue with the exercise (applying the simplex method) and find an integer solution for the original problem (where dual simplex comes into play). The exercise asks for the dual problem to help us reduce the number of variables (for example to be able to visualize the different steps of the tableau in a 2D plot). 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 am not sure whether the dual simplex method for gomory cut stays the same when applying it to the dual problem.

Example exercise:

constraints

objective

(a) Formulate the dual form.

(b) Convert the system to second primal form.

(c) Simulate the simplex method.

(d) If the solution is not an integer, calculate the Gomory cut.

Ronald
  • 81
  • The "algorithm" I'm talking about is described in this answer: https://math.stackexchange.com/a/4760718/744941 – Ronald Aug 30 '23 at 16:40

1 Answers1

1

When working with linear programming (and real-valued variables), we are always free to switch to the dual instead, because strong duality holds. The primal and dual have the same optimal value, and if we solve the dual, we will even be able to recover an optimal primal solution.

With integer linear programming, this is no longer true. All you know is that the LP relaxation of the primal agrees in optimal value with the dual. It is not even meaningful to consider the dual as an integer program, and even if you did, solving that integer program (using fractional cuts or otherwise) would not help us with the primal.

Each stage of the cutting plane algorithm can be solved by using the dual instead of the primal. However:

  1. In order to add a Gomory cut, you need an inequality with fractional coefficients that's true for all primal feasible solutions and tight at the optimal solution to the LP relaxation. This is straightforward to do from the simplex method if you're solving the primal: just take a row of the tableau corresponding to a variable with a fractional value. It's not straightforward if you're solving the dual.

  2. When we add a cutting plane, we add a new constraint to the primal. This corresponds to adding a new variable to the dual. This eliminates the primary advantage of using the dual (to reduce the number of variables).

  3. Unless you're using the revised simplex method, it is trickier to add a new variable to a tableau than it is to add a new constraint.

I do not recommend it.

Misha Lavrov
  • 159,700
  • Thank you for the answer! However, I'm still a little bit confused. I don't get why we are then asked to solve such an exercise on an exam. I have added an example exercise to my question. Could you take a look at it? I now still don't know how I'm supposed to solve exercise d, could you help me with that? – Ronald Sep 02 '23 at 16:35
  • Well, the answer is that the exercise makes no sense as something you would want to do in practice. Given that the goal is to practice formulating the Gomory cut, exercise (d) still achieves that goal, even if it wouldn't make sense to use the cutting plane method in that context. I would ask for clarification - are you intended to find a Gomory cut for the primal or for the dual? (It's probably for the dual, since you're performing the simplex method on the dual, and since doing it for the primal would run into problem #1 mentioned in my answer. But I'd check.) – Misha Lavrov Sep 02 '23 at 19:13
  • Thank you. So I can still you use the algorithm you described here https://math.stackexchange.com/a/4760718/744941 without any problems? I just apply the same steps to the dual? – Ronald Sep 02 '23 at 19:20
  • 1
    Exercise (d) only says "calculate the Gomory cut". It does not ask you to actually continue solving the problem from there. Once you've written down the inequality, you're done with exercise (d) as far as I can tell. This makes sense if you haven't learned the dual simplex method, or other warm-start techniques. – Misha Lavrov Sep 02 '23 at 19:22
  • ooo, it all makes sense now. Thanks for pointing that out. I'm sometimes very stupid – Ronald Sep 02 '23 at 19:28
  • May I ask 2 final questions? (1) Finding the inequality of the gomory cut on the dual problem is exactly the same way as with the original problem, right? (2) Gomory cut needs to be applied to only one variable/row, right? And that will automatically remove the other non-integer variable values that are present in the tableau? – Ronald Sep 02 '23 at 19:35
  • (1) Presumably, though doing it usually makes no sense. But I assume you're only doing it for practice. (2) Yes, you only do it for one row. It's not that it automatically removes other non-integer variable values. It's that adding a Gomory cut based on any of the rows will give you a valid cut, and you don't need more than one of those. Sometimes different rows will give you the same cut, but that's often not true. – Misha Lavrov Sep 02 '23 at 19:37
  • Thank you for all the answers! I greatly appreciate it – Ronald Sep 02 '23 at 19:40