Interger Programming
Interger Programming
INTERGER PROGRAMMING
Linear programming generally requires that the model variables are divisible. This implies
that each model variable can take on any non-negative, continuous solution value.
When the model requires all integer values, it is referred to as all-integer or pure integer
problem. When the model requires only certain variables to be integers, it is called a
mixed-integer programming problem. When the model requires only values of zero or one
for the decision variables, it is called a zero-one integer problem.
There are several approaches to solving integer programming problems. We will briefly
discuss the rounding approach and present the branch-and-bound technique - the most
widely used.
Rounding Approach
This is a simple and sometimes practical approach to solving an integer programming (IP)
problem. This approach may be a very effective technique for large integer programming
problems where computational costs are extremely high or for problems where the
solution values of decision variables are large. For example, rounding off a solution value
of 120500.2 to 120500 would probably be acceptable. However, the major disadvantage
of this approach is that the solution may not be the true optimal integer solution or it may
be an infeasible solution.
The following example problems will be used to illustrate the rounding approach:
Problem 1:
Max. Z = 100x1 + 90x2
subject to:
10x1 + 7x2 70
5x1 + 10x2 50
x 1, x 2 0
Problem 2:
Problem 3:
The standard relaxed LP solution, the rounded integer solution and the optimal integer
solution of each of the three problems are presented in Table 6.1.
Table 6.1
Standard LP Rounded Integer Optimal Integer
Problem Relaxed Solution Solution Solution
1 x1 = 5.38 x1 = 5 x1 = 7
x2 = 2.31 x2 = 2 x2 = 0
Z= 746.15 Z= 680 Z= 700
2 x1 = 1.82 x1 = 2 x1 = 3, x2 =3
x2 = 3.27 x2 = 3 x1 = 5, x2 = 2
Z= 1672.73 Infeasible Z= 1800
3 x1 = 1.67 x1 = 2 x1 = 2
x2 = 2.67 x2 = 3 x2 = 2
Z= 400 Infeasible Z= 360
The comparison of the three problems in Table 6.1 demonstrates the shortcomings of the
rounding approach. In order to contain the potential problem of infeasibility, the rounding
approach involves rounding up only for a minimisation problem and rounding down only
for a maximisation problem. This is due to the fact that for a relaxed LP the optimum
solution is at the extreme (corner) of the boundary of the feasible region. Therefore, the
relaxed LP optimum solution values are the minimum possible for a minimisation
problem and the maximum possible for a maximisation problem. By rounding up in a
minimisation problem (and rounding down in a maximisation problem) it is ensured that
the solution stays in the feasible region.
The branch-and-bound method is useful for solving integer, mixed-integer and zero-one
integer programming problems. The basic steps of the method are outlined as follows:
1. Solve the integer programming problem by the standard simplex method with the
integer restrictions relaxed (i.e. just as a normal LP problem).
2. Examine the optimal solution. If the basic variables that have integer restrictions have
integer solution values, the optimal integer solution is obtained. If one or more of the
basic variables do not satisfy integer requirements proceed to step 3.
3. The set of feasible integer solutions is branched into subsets (each subset comprising a
sub-problem). This branching is to eliminate continuous solutions that violate integer
requirements. Branching is achieved by introducing mutually exclusive constraints
that are necessary to satisfy integer requirements while making sure that no feasible
integer solution is excluded.
4. For each subset the optimal relaxed (LP) solution value of the objective function is the
upper bound. The best integer solution becomes the lower bound. Those subsets
having upper bounds that are less than the current lower bound are excluded from
further analysis. A feasible integer solution that is as good as or better than the upper
bound for any subset is sought. If such a solution exists, it is optimal. If such a
solution does not exist a subset with the best upper bound is selected to branch on.
Return to step 3.
In order to illustrate the branch-and-bound solution method the following example will be
used.
X2 7
5 (0,5)
x1+x2=6
4
(2.25,3.75
A
3
5x1+9x2=45
2
0 (6,0)
0 1 2 3 4 5 6 7 8 9 10
X2
Figure 6.1
Obviously both x1 and x2 have non-integer solution values. Hence subsets are developed
by branching, as shown in Figure 6.2 (with branching started on x1).
Z=34 Z=40
x1=2 x1=0
Z=41.11 Z=40.56
x2=3 x2=5
x1=2 x1=1
x2=3.89 x23 4 fathomed x2=4.44 x25 8
Z=41.25 3 fathomed
x12 Z=41 7
x1=2.25
x1=1.8 x11
x2=3.75 Z=37
x24 x2=4 x1=1
1 5 x24 x2=4
Z=39
x1=3 9
x13 x2=3 x12 fathomed
2 fathomed 6 infeasible
Figure 6.2
There are two sub-problems that result from the two branches:
x2 8 x1=2 x1=3
7
6
5 (2,3.89)
4 B
(3,3)
C
3
BRANCH 1-3
2
1 BRANCH 1-2
0
0 2 4 6 8 10
x1
Figure 6.3
There are two sub-problems that result from the two branches:
x2 7
x1=2 x1=3 BRANCH 3-5
6
5
x2=4
4 (1.8,4)
E
3
D (2,3) x2=3
2
BRANCH 3-4
1
0
0 2 4 6 8 10
x1
Figure 6.4
Branch 3-4 yields an all integer solution (point D on Figure 6.4): x1 = 2, x2 = 3, Z = 34,
which is inferior to the already existing ones so it is ignored.
Branch 3-5 yields a non-integer solution (point E on Figure 6.4): x1 = 1.8, x2 = 4, Z = 41,
which is still better than the highest solution Z = 39. Therefore, formulate a sub-problem
from node 5. Formulation of the sub-problem results in branch 5-6, 5-7.
x2 7
BRANCH 5-6
5 Infeasible
F (1,4.44)
x2=4
4
BRANCH 5-7
x2=3
3
0
0 2 4 6 8 10
x1
Figure 6.5
Branch 5-6 results in an infeasible solution, therefore no further branching can result from
it.
Branch 5-7 yields a non-integer solution (point F in Figure 6.5): x1 = 1, x2 = 4.44,
Z= 40.56, which is still an upper bound to the highest integer solution (Z = 39, x1 = 3,
x2 = 3). Therefore formulate a sub-problem by branching on x2 (which is non-integer). A
new branch: 7-8, 7-9 results.
x2 7
0
0 2 4 6 8 10
x1
Figure 6.6
No further branching is necessary since all branches resulted in integer solutions. Since
branch 7-8 yielded an integer solution with the highest objective function value (Z = 40),
the optimal solution is x1 = 0, x2 = 5 and Z = 40.
Problems
Solve the following integer programming problems graphically using the branch and
bound method.