In the previous section, we provided steps of the Gomory Cutting Plane Method. Now we will use that in solving Integer Programming problems.
Maximize z = x1 + 2x2
subject to
2x2 ≤ 7
x1 + x2 ≤ 7
2x1 ≤ 11
x1, x2 are integers ≥ 0
Solution.
First, solve the above problem by applying the simplex method.
After introducing slack variables, the standard form of linear programming problem becomes
Maximize z = x1 + 2x2 + 0x3 + 0x4 + 0x5
subject to
2x1 + x3 = 7
x1 + x2 + x4 = 7
2x1 + x5 = 11
Initial basic feasible solution
x1 = 0, x2 = 0, and z = 0
x3 = 7, x4 = 7, x5 = 11
Table 1
cj | 1 | 2 | 0 | 0 | 0 | ||
---|---|---|---|---|---|---|---|
cB | Basic variables B |
x1 | x2 | x3 | x4 | x5 | Solution values b (=XB) |
0 | x3 | 0 | 2 | 1 | 0 | 0 | 7 |
0 | x4 | 1 | 1 | 0 | 1 | 0 | 7 |
0 | x5 | 2 | 0 | 0 | 0 | 1 | 11 |
zjcj | -1 | -2 | 0 | 0 | 0 |
Key column = x2 column
Minimum (7/2, 7/1) = 7/2
Key row = x3 row
Pivot element = 2
x3 departs & x2 enters.
Table 2
cj | 1 | 2 | 0 | 0 | 0 | ||
---|---|---|---|---|---|---|---|
cB | Basic variables B |
x1 | x2 | x3 | x4 | x5 | Solution values b (=XB) |
2 | x2 | 0 | 1 | 1/2 | 0 | 0 | 7/2 |
0 | x4 | 1 | 0 | -1/2 | 1 | 0 | 7/2 |
0 | x5 | 2 | 0 | 0 | 0 | 1 | 11 |
zjcj | -1 | 0 | 1 | 0 | 0 |
x4 departs and x1 enters.
Table 3
cj | 1 | 2 | 0 | 0 | 0 | ||
---|---|---|---|---|---|---|---|
cB | Basic variables B |
x1 | x2 | x3 | x4 | x5 | Solution values b (=XB) |
2 | x2 | 0 | 1 | 1/2 | 0 | 0 | 7/2 (3 + 1/2) |
1 | x1 | 1 | 0 | -1/2 | 1 | 0 | 7/2 (3 + 1/2) |
0 | x5 | 0 | 0 | 1 | -2 | 1 | 4 (4 + 0) |
zjcj | 0 | 0 | 1/2 | 1 | 0 |
This solution is not acceptable since all the basic variables must be integer valued. Thus, we construct a Gomory's fractional cut to get the desired optimal solution.
Choose the largest fractional part under the XB column. Here both the fractional parts are same. So either of the two may be used to develop Gomory's constraint.
Taking first row as the source row, the corresponding equation is
0x1 + 1x2 + 1/2x3 + 0x4 + 0x5 = 3 + 1/2
(1 + 0)x2 + 1/2x3 = 3 + 1/2
After applying the formula we get
- 1/2 x3 ≤ -1/2
- 1/2 x3 + x6 = - 1/2
x6 is a slack variable
By adding the above equation in Table 3, we get the new table
Table 4
cj | 1 | 2 | 0 | 0 | 0 | 0 | ||
---|---|---|---|---|---|---|---|---|
cB | Basic variables B |
x1 | x2 | x3 | x4 | x5 | x6 | Solution values b (=XB) |
2 | x2 | 0 | 1 | 1/2 | 0 | 0 | 0 | 7/2 |
1 | x1 | 1 | 0 | -1/2 | 1 | 0 | 0 | 7/2 |
0 | x5 | 0 | 0 | 1 | -2 | 1 | 0 | 4 |
0 | x6 | 0 | 0 | -1/2 | 0 | 0 | 1 | -1/2 |
zjcj | 0 | 0 | 1/2 | 1 | 0 | 0 |
In the above table, there is a negative value under XB column;
therefore, apply the dual simplex method.
Select the most negative value from XB column, i.e., -1/2
Therefore, key row = x6 row
Key Column:
Min | z3 - c3
|
Min | 1/2 |
Key column = x3 column
x6 departs & x3 enters
cj | 1 | 2 | 0 | 0 | 0 | 0 | ||
---|---|---|---|---|---|---|---|---|
cB | Basic variables B |
x1 | x2 | x3 | x4 | x5 | x6 | Solution values b (=XB) |
2 | x2 | 0 | 1 | 0 | 0 | 0 | 1 | 3 |
1 | x1 | 1 | 0 | 0 | 1 | 0 | -1 | 4 |
0 | x5 | 0 | 0 | 0 | -2 | 1 | 2 | 3 |
0 | x6 | 0 | 0 | 1 | 0 | 0 | -2 | 1 |
zjcj | 0 | 0 | 0 | 1 | 0 | 1 |
The optimal solution is
x1 = 4, x2 = 3
z = 4 + 2 X 3 = 10