Module - 7 Lecture Notes - 1 Integer Linear Programming
Module - 7 Lecture Notes - 1 Integer Linear Programming
Module - 7 Lecture Notes - 1 Integer Linear Programming
Module 7 Lecture Notes 1 Integer Linear Programming Introduction In all the previous lectures in linear programming discussed so far, the design variables considered are supposed to take any real value. However in practical problems like minimization of labor needed in a project, it makes little sense in assigning a value like 5.6 to the number of labourers. In situations like this, one natural idea for obtaining an integer solution is to ignore the integer constraints and use any of the techniques previously discussed and then round-off the solution to the nearest integer value. However, there are several fundamental problems in using this approach: 1. 2. The rounded-off solutions may not be feasible. The objective function value given by the rounded-off solutions (even if some are feasible) may not be the optimal one. 3. Even if some of the rounded-off solutions are optimal, checking all the rounded-off solutions is computationally expensive ( 2 n possible round-off values to be considered for an n variable problem) Types of Integer Programming When all the variables in an optimization problem are restricted to take only integer values, it is called an all integer programming problem. When the variables are restricted to take only discrete values, the problem is called a discrete programming problem. When only some variable values are restricted to take integer or discrete, it is called mixed integer or discrete programming problem. When the variables are constrained to take values of either zero or 1, then the problem is called zero one programming problem. Integer Linear Programming Integer Linear Programming (ILP) is an extension of linear programming, with an additional restriction that the variables should be integer valued. The standard form of an ILP is of the form,
M7L1
Optimization Methods: Integer Programming Integer Linear Programming max subject to cT X AX b X 0 X must be integer valued
The associated linear program dropping the integer restrictions is called linear relaxation LR. Thus, LR is less constrained than ILP. If the objective function coefficients are integer, then for minimization, the optimal objective for ILP is greater than or equal to the rounded-off value of the optimal objective for LR. For maximization, the optimal objective for ILP is less than or equal to the rounded-off value of the optimal objective for LR. For a minimization ILP, the optimal objective value for LR is less than or equal to the optimal objective for ILP and for a maximization ILP, the optimal objective value for LR is greater than or equal to that of ILP. If LR is infeasible, then ILP is also infeasible. Also, if LR is optimized by integer variables, then that solution is feasible and optimal for IP. A most popular method used for solving all-integer and mixed-integer linear programming problems is the cutting plane method by Gomory (Gomory, 1957). Gomorys Cutting Plane Method for All Integer Programming Consider the following optimization problem. Maximize subject to Z = 3x1 + x 2 2 x1 x 2 6 3x1 + 9 x 2 45 x1 , x 2 0 x1 and x2 are integers The graphical solution for the linear relaxation of this problem is shown below.
M7L1
x2
2 x1 x2 6
3 x1 + 9 x2 45
(4 5 7 ,3 3 7 )
B
Z = 17 4
D
0 1 2
C
3 4 5 6 7 x 1
It can be seen that the solution is x1 = 4 5 , x 2 = 3 3 and the optimal value of Z = 17 4 . 7 7 7 The feasible solutions accounting the integer constraints are shown by red dots. These points are called integer lattice points. The original feasible region is reduced to a new feasible region by including some additional constraints such that an extreme point of the new feasible region becomes an optimal solution after accounting for the integer constraints. The graphical solution for the example previously discussed taking x1 and x2 as integers are shown below. Two additional constraints (MN and OP) are included so that the original feasible region ABCD is reduced to a new feasible region AEFGCD. Thus the solution for this ILP is x1 = 4, x2 = 3 and the optimal value is Z = 15 .
M7L1
6 O 5 A
4 E 3 F B
(4 5 7 ,3 3 7 )
(4,3)
Z = 17 4
Z = 15
1 P 5 6 7 x 1
D 0 1 2
C 3
N 4
Gomary proposed a systematic method to develop these additional constraints known as Gomory constraints. Generation of Gomory Constraints: Let the final tableau of an LP problem consist of n basic variables (original variables) and m non basic variables (slack variables) as shown in the table below. The basic variables are represented as xi (i=1,2,,n) and the non basic variables are represented as yj (j=1,2,,m).
M7L1
Optimization Methods: Integer Programming Integer Linear Programming Table 1 Variables Basis Z Z 1 0 0
x1
0 1 0
x2
0 0 1
xi 0 0 0
xn 0 0 0
y1
c1 c11 c21
y2
c2 c12 c22
yj
ym cm c1m c2m
br
cj c1j c2j
b
b1 b2
x1 x2
xi
c31
c32
c3j
c3m
bi
xn
c41
c42
c4j
c4m
bn
Choose any basic variable xi with the highest fractional value. If there is a tie between two basic variables, arbitrarily choose any of them as xi . Then from the ith equation of table,
xi = bi cij y j
j =1 m
..(1)
bi = bi + i cij = cij + ij
........(2) ........(3)
where bi , cij denote the integer part and i , ij denote the fractional part. i will be a strictly positive fraction (0 < i < 1) and ij is a non-negative fraction 0 ij < 1 . Substituting equations (2) and (3) in (1), equation (1) can be written as
i ij y j = xi bi cij y j
j =1 j =1
.(4)
For all the variables xi and y j to be integers, the right hand side of equation (4) should be an integer.
i ij y j = integer
j =1
(5)
M7L1
Since ij are non-negative integers and y j are non-negative integers, the term always be a non-negative number. Thus we have,
m y <1 i ij j i j =1
ij y j
j =1
will
.(6)
i ij y j 0
j =1
.(7)
By introducing a slack variable si (which should also be an integer), the Gomory constraint can be written as
si ij y j = i
j =1 m
.(8)
General procedure for solving ILP: 1. Solve the given problem as an ordinary LP problem neglecting the integer constraints. If the optimum values of the variables are integers itself, then there is nothing more to be done. 2. If any of the basic variables has fractional values, introduce the Gomory constraints as discussed in the previous section. Insert a new row with the coefficients of this constraint, to the final tableau of the ordinary LP problem (Table 1). 3. Solve this by applying the dual simplex method. Since the value of y j = 0 in Table 1, the Gomory constraint equation becomes si = i which is a negative value and thus infeasible. Dual simplex method is used to obtain a new optimal solution that satisfies the Gomory constraint. 4. Check whether the new solution is all-integer or not. If all values are not integers, then a new Gomory constraint is developed from the new simplex tableau and the dual simplex method is applied again. 5. This process is continued until an optimal integer solution is obtained or it shows that the problem has no feasible integer solution. D Nagesh Kumar, IISc, Bangalore M7L1
Thus, the fundamental idea behind cutting planes is to add constraints to a linear program until the optimal basic feasible solution takes on integer values. Gomory cuts have the property that they can be generated for any integer program, but has the disadvantage that the number of constraints generated can be enormous depending upon the number of variables.
M7L1