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.