Introducing a salck variable , we get
Thus we have the following dictionary:
,
, for an arbitrary .
Note that this basic solution (corresponding to ) is infeasible since
and
.
Thus the current optimum, which is non-integer, is excluded from the new LP problem.
Note also that it does not exclude any integer solutions because the new constraint is
obtained by restricting the original constraints to integers.
However, its dual is feasible since it is an optimum for the LP problem and the
coefficients of are all negative (can not increase any more by inceasing
the values of 's). So we can proceed with it applying the simplex method.
Example:
Max
Subject to:
and are nonnegative integers.
When this is solved by simplex after introducint slack variables for the first
constraint and for the second, we get the following dictionary:
It is optimal but
and are not integers. So we generate a Gomory cut from the equation for
(you can also use any of the other two).
Colleting the variables to the left hand side, we get from the equation for
= -- (E1)
Consider the part of the left hand side consisting of the integer coefficients.
Since only has an integer coefficient, it is equal to .
It is less than or equal to the right hand side of (E1). Hence
. Since we are looking for an integer solution, need to be integer. Hence
-- (E2)
Subtracting (E2) from (E1) we get
Hence our new constraint is
By introducing a slack variable we get
-- (E3)
With (E3) our new dictionary is
The integer solution we are looking for certainly must satisfy these equations.
The basic solutin corresponding to this dictionary is infeasible since .
However, since its dual is feasible we can go to the dual and see which way to proceed.
By inspecting the dual (or by dual simplex), we can see that and should be
interchanged. Thus we get
Proceeding with simplex the following final dictionary is reached:
Since is maximum and all the variables have integer values, this is the optimum for our Integer
Programming problem.