10.3 599 Gomory's Cutting Plane Method Since only arj corresponding to column y 2 is negative, the pivot element 1 in the s will be Š 11 2 row. The pivot operation on this element leads to the following tableau: Coefficients of variables Basic variables x1 x2 y1 Šf y2 x1 x2 y1 y2 Šf s1 s2 bi 1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 1 0 Š3 3 Š3 0 1 1 4 Š11 5 4 1 31 7 The solution given by this tableau is x 1 = 5, x 2 = 4, y 1 = 1, y 2 = 7, and f = Š31, which can be seen to satisfy the integer requirement. Hence this is the desired solution. 10.3.3 Gomory's Method for Mixed-Integer Programming Problems The method discussed in Section 10.3.2 is applicable to solve all integer programming problems where both the decision and slack variables are restricted to integer values in the optimal solution. In the mixed-integer programming problems, only a subset of the decision and slack variables are restricted to integer values. The procedure for solving mixed-integer programming problems is similar to that of all-integer programming problems in many respects. Solution Procedure. As in the case of an all-integer programming problem, the first step involved in the solution of a mixed-integer programming problem is to obtain an optimal solution of the ordinary LP problem without considering the integer restrictions. If the values of the basic variables, which were restricted to integer values, happen to be integers in this optimal solution, there is nothing more to be done. Otherwise, a Gomory constraint is formulated by taking the integer-restricted basic variable, which has the largest fractional value in the optimal solution of the ordinary LP problem. Let x i be the basic variable that has the largest fractional value in the optimal solution (as shown in Table 10.2), although it is restricted to take on only integer values. If the nonbasic variables are denoted as y j, j = 1, 2, . . . , n, the basic variable x i can be expressed as (from Table 10.2) xi = b i Š • n a ijyj (10.2) j=1 We can write 7ib (10.3) bi = 7ib + i is the integer obtained by truncating the fractional part of b i and i is thehe_怀ꘀ퐀 fractional part of b i. By defining + Š aij = aij + aij (10.10) 600 Integer Programming where aij =+ aij =Š fi a ij if aij _ 0 0 if aij < 0 fi 0 if aij _ 0 aij if aij < 0 (10.11) (10.12) Eq. (10.2) can be rewritten as •n (aij+ + a i) j=1 Here, by assumption, x i ij Š)y = i + 7(bi Š x j is restricted to integer values while b i is not an integer. Since 0 < i < 1 and b i7i s an integer, we can have the value of < 0. First, we consider the case where i + ( 7ib In this case, in order for x (10.13) i i + ( 7ib i + ( 7ib Š x i) either _ 0 or Š x i) _ 0 (10.14) to be an integer, we must have Š x i) = i + 1 or or i + 2, . . . (10.15) i Thus Eq. (10.13) gives •n j=1 Since aij are nonpositive and y j • (aij+ + a i Š)y j _ (10.16) are nonnegative by definition, we have n j=1 ij a _ ij +y j • n j=1 (aij+ Š a Š ij )yj (10.17) and hence • n j=1 a ij+y _ i (10.18) j Next, we consider the case where i + ( 7ib <0 For x i Š x i) to be an integer, we must have (since 0 < i + ( 7ib i Š x i) = Š1 + or i (10.19) < 1) Š 2 + i or Š 3 + i, . . . (10.20) 10.3 Gomory's Cutting Plane Method 601 Thus Eq. (10.13) yields • n (aij+ + a 1 j=1 ij Š)y _ i Š j (10.21) Since • n j=1 a _ ij Šy • j n (aij+ + a Š ij )yj j=1 we obtain • n a ijŠy Š1 j=1 _i j Upon dividing this inequality by the negative quantity ( • i Š1 j=1 a ijŠy _1 Multiplying both sides of this inequality by (10.23) as • i Š1 Š 1), we obtain i n 1 i (10.22) (10.23) j > 0, we can write the inequality i n a Šy ij i j=1 _ j (10.24) Since one of the inequalities in (10.18) and (10.24) must be satisfied, the following inequality must hold true: • n j=1 a + ij +y j n i • i Š1 j=1 (a ijŠ)y _ i (10.25) j By introducing a slack variable s i, we obtain the desired Gomory constraint as si = • n j=1 a + + ij y j n i • i Š1 j=1 This constraint must be satisfied before the variable x i a ijy j Š i becomes an integer. The slack variable s i is not required to be an integer. At the optimal solution of the ordinary LP problem (given by Table 10.2), all y j = 0 and hence Eq. (10.26) becomes si = Š i = negative (10.26) 602 Integer Programming which can be seen to be infeasible. Hence the constraint Eq. (10.26) is added at the end of Table 10.2, and the dual simplex method applied. This procedure is repeated the required number of times until the optimal mixed integer solution is found. Discussion. In the derivation of the Gomory constraint, Eq. (10.26), we have not made use of the fact that some of the variables (y j ) might be integer variables. We notice that any integer value can be added to or subtracted from the coefficient of Š aik( = aik++ a ik ) of an integer variable y k provided that we subtract or add, respectively, the same value to x i in Eq. (10.13), that is, • n a ijy j + (aik ± )y k j= 1 j _= k = i + 7ib ) Š (x (10.27) i From Eq. (10.27), the same logic as was used in the derivation of Eqs. (10.18) and (10.24) can be used to obtain the same final equation, Eq. (10.26). Of course, the coefficients of integer variables y k will be altered by integer amounts in Eq. (10.26). It has been established that to cut the feasible region as much as possible (through the Gomory constraint), we have to make the coefficients of integer variables y k as small as possible. We can see that the smallest positive coefficient we can have for yj in Eq. (10.13) is ij = aij Š aij7 and the largest negative coefficient as 1 Š ij = 1 Š aij + aij7 where aij7 is the integer obtained by truncating the fractional part of aij and ij is the Š aij7 ) and (1 Š aij + fractional part. Thus we have a choice of two expressions, (aij aij7 ), for the coefficients of y j in Eq. (10.26). We choose the smaller one out of the two to make the Gomory constraint, Eq. (10.26), cut deeper into the original feasible space. Thus Eq. (10.26) can be rewritten as i + • ( +a si = • a ij y j + • (aij Š aij7 Š)y Š1 i + ij j j j j )yj ffi, ffi, for + i noninterger variables yj • i Š1 j ( 1Š aij ffi, for integer variables yj and for aij Š aij7 i + aij7 Š i )y _ j - for integer variables yj where the slack variable s Example 10.2 integer values. and for aij Š aij7 i i > is not restricted to be an integer. Solve the problem of Example 10.1 with x2 only restricted to take