1
$\begingroup$

I am struggling with a simple example for explaining the cutting plane method for integer optimization problems. The cuts are Gomory cuts. For understanding the method, I read the introduction of Integer Programming, in which the Gomory cut is defined as: $$ \sum_{j=1}^n (a_j - \lfloor a_j \rfloor ) x_j \geq a_0 - \lfloor a_0 \rfloor $$ where $x_j$ are nonnegative integer variables which satisfy: $$ \sum_{j=1}^n a_j x_j = a_0. $$ In my case, all $a_j$s are integer, but $a_0$ is not (that is why I need the Gomory cut). Unfortunately, as all $a_j$s are integer, the Gomory cut leads me to $0 \geq a_0$, which does not make any sense. How is the Gomory cut derived in this case?

For reference, my original problem reads as: $$ \min_{\boldsymbol x \in \mathbb{N}_0} -2x_1 - x_2\\ \text{s.t.}\ x_1 \leq 6.5\\ x_2 \leq 4\\ x_1 + x_2 \leq 9.5 $$ I started by solving the relaxed linear problem and introduced the slackvariables $x_3, x_4, x_5$ to bring it to standard form and solve it via the simplex algorithm. The constraints look as follows: $$ x_1 + x_3 = 6.5\\ x_2-x_3+x_5 = 3\\ x_3 + x_4 - x_5 = 1 $$ As $x_1^* = 6.5$, $x_2^* = 3$ and $x_4^* = 1$, the solution of the relaxed problem does not satisfy the original one, so I wanted to apply the Gomory cut. The obvious choice would be $x_3 \geq 0.5$ which leads to $x_1 \leq 6$, but I do not see how to derive it from the Gomory cut definition.

1 Answers 1

0

After solving similar problems, I found the answer myself: As the slack variables do not need to be integer, the Gomory mixed-integer cuts (Integer Programming, equation (5.31)) apply here: $$ \sum_{j \in N \cap I\\f_j \leq f_0} \frac{f_j}{f_0} x_j + \sum_{j \in N \cap I\\f_j > f_0} \frac{1-f_j}{1-f_0} x_j + \sum_{j \in N \cap C\\ \bar a_{ij} \geq 0} \frac{\bar a_{ij}}{f_0} x_j - \sum_{j \in N \cap C\\ \bar a_{ij} < 0} \frac{\bar a_{ij}}{1-f_0} x_j \geq 1 $$ With $f_j = a_{ij} - \lfloor a_{ij} \rfloor$, $f_0 = \bar b_{i} - \lfloor \bar b_{i} \rfloor$. $N \cap I$ are the indexes of the integer variables, $N \cap C$ the indexes of the continous variables. The following relation holds: $$ x_i + \sum_{j \in N} \bar a_{ij} x_j = \bar b_i $$ In my case, the cut reads as follows: $$ \frac{1 - 1}{1 - 0.5} x_1 + \frac{1}{0.5} x_3 \geq 1 $$ This leads to $x_3 \geq 0.5$ and finally $x_1 \leq 6$.