Unlicensed-7-PDF617-620_engineering optimization

advertisement
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
Download