Top Banner
Operations Research Unit 7 Sikkim Manipal University Page No. 136 Unit 7 Integer Programming Problem Structure: 7.1 Introduction Learning Objectives 7.2 All and Mixed Integer Programming Planning 7.3 Gomory’s all IPP Method Construction of Gomory’s constraints 7.4 All IPP Algorithms 7.5 Branch and Bound Technique Branch and bound algorithm 7.6 Summary 7.7 Terminal Questions 7.8 Answers to SAQs and TQs Answers to self assessment questions Answers to terminal questions 7.9 References 7.1 Introduction Welcome to the seventh unit on Integer Programming Problem in Operations Research Management. The Integer Programming Problem (IPP) is a special case of Linear Programming Problem (LPP), where all or some variables are constrained to assume non-negative integer values. You can apply this problem to various situations in business and industry where discrete nature of the variables is involved in many decision-making situations. For instance, in manufacturing, the production is frequently scheduled in terms of batches, lots or runs; in distribution, a shipment must involve a discrete number of trucks or aircrafts or freight cars. Learning objectives By the end of this unit, you should be able to: Write an integer programming problem (IPP) Solve an integer programming problem (IPP) using Gomory’s method Apply the branch and land technique
16
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: SLM-Unit-07-MB0048

Operations Research Unit 7

Sikkim Manipal University Page No. 136

Unit 7 Integer Programming Problem

Structure:

7.1 Introduction

Learning Objectives

7.2 All and Mixed Integer Programming Planning

7.3 Gomory’s all IPP Method

Construction of Gomory’s constraints

7.4 All IPP Algorithms

7.5 Branch and Bound Technique

Branch and bound algorithm

7.6 Summary

7.7 Terminal Questions

7.8 Answers to SAQs and TQs

Answers to self assessment questions

Answers to terminal questions

7.9 References

7.1 Introduction

Welcome to the seventh unit on Integer Programming Problem in

Operations Research Management. The Integer Programming Problem

(IPP) is a special case of Linear Programming Problem (LPP), where all or

some variables are constrained to assume non-negative integer values. You

can apply this problem to various situations in business and industry where

discrete nature of the variables is involved in many decision-making

situations. For instance, in manufacturing, the production is frequently

scheduled in terms of batches, lots or runs; in distribution, a shipment must

involve a discrete number of trucks or aircrafts or freight cars.

Learning objectives

By the end of this unit, you should be able to:

Write an integer programming problem (IPP)

Solve an integer programming problem (IPP) using Gomory’s method

Apply the branch and land technique

Page 2: SLM-Unit-07-MB0048

Operations Research Unit 7

Sikkim Manipal University Page No. 137

7.2 All and Mixed Integer Programming Problem (IPP)

An integer programming problem can be described as follows:

Determine the value of unknowns x1, x2, … , xn

So as to optimise z = c1x1 +c2x2 + . . .+ cnxn

Subject to the constraints

ai1 x1 + ai2 x2 + . . . + ain xn =bi , i = 1,2,…,m

and xj 0 j = 1, 2, … ,n

Where xj being an integral value for j = 1, 2, … , k n.

If all the variables are forced to take only integral value that is k = n, it is

called an all (or pure) integer programming problem. If some of the variables

are restricted to take integral value and the remaining (n – k) variables take

any non-negative value, then the problem is known as a mixed integer

programming problem.

Self Assessment Questions

True or False:

1. Integer programming is applied to problems that involve discrete

variables.

2. If some variables take on non-negative values, then it is known as pure

IPP.

7.3 Gomory’s All – IPP Method

An optimum solution to an IPP is obtained by using the simplex method,

ignoring the restriction of integral values. In the optimum solution, if all the

variables have integer values, the current solution will be the required

optimum integer solution.

Otherwise, the given IPP is modified by inserting a new constraint called

Gomory’s constraint or secondary constraint. This constraint represents

necessary conditions for integrability and eliminates some non-integer

solution without losing any integral solution. On addition of the secondary

constraint, the problem is solved using dual simplex method to obtain an

optimum integral solution.

Page 3: SLM-Unit-07-MB0048

Operations Research Unit 7

Sikkim Manipal University Page No. 138

If all the values of the variables in the solution are integers, then an optimum

inter-solution is obtained, or else a new constraint is added to the modified

LPP and the procedure is repeated till the optimum solution is derived. An

optimum integer solution will be reached eventually after introducing enough

new constraints to eliminate all the superior non-integer solutions. The

construction of additional constraints, called secondary or Gomory’s

constraints is important and needs special attention.

7.3.1 Construction of Gomory’s constraints

Consider a LPP or an optimum non–integer basic feasible solution. With the

usual notations, let the solution be displayed in the following simplex table.

Table 7.1: Simplex table

The optimum basic feasible solution is given by

xB = [x2, x3 ] = [y10, y20]; max z = y00

Since xB is a non-integer solution, we can assume that y10 is fractional. The

constraint equation is

y10 = y11 x1 + y12 x2 + y13 x3+ y14 x4 0xx 41

It reduces to

y10 = y11 x1 + x2 + y14 x4 0xx 41 _____ (1)

Because x2 and x3 are basic variables (which implies that y12 = 1 and

y13 = 0). The above equation can be rewritten as

x2 = y10 - y11 x1 - y14 x4

This is a linear combination of non-basic variables.

Now, since y10 0 the fractional part of y10 must also be non-negative. You

can split each of yij in (1) into an integral part Iij , and a non-negative

fractional part, f1j for j = 0,1,2,3,4. After the breakup (1) above, you can write

it as:

I10 + f10 = (I11 + f11) x2 + (I14 + f14) x4

Or

f10 - f11 x2 - f14 x4 = x2 + I11 x1 + I14x4 - I10 _____ (2)

yB xB y1 y2 y3 y4

y2 y10 y11 y12 y13 y14

y3 y20 y21 y22 y23 y24

y00 y01 y02 y03 y04

Page 4: SLM-Unit-07-MB0048

Operations Research Unit 7

Sikkim Manipal University Page No. 139

If you compare (1) and (2), you will see that if you add an additional

constraint in such a way that the left-hand side of (2) is an integer; then you

will be forcing the non-integer y10 towards an integer.

The desired Gomory’s constraint is

f10 – f11 x1 – f11 x4 ≤ 0

It is possible to have f10 – f11 x1 – f11 x4 = h where h > 0 is an integer. Then

f10 = h + f11 x1 + f14 x4 is greater than one. This contradicts that 0 < fij < 1 for j

= 0, 1, 2, 3, 4.

Thus Gomory’s constraint is

10sla

4,1j

jij

4,1j

10jij

4,1j

jig

f)1(Gxfor

fx.forfxf10

Where Gsla (1) is a slack variable in the above first Gomory’s constraint

The additional constraint to be included in the given LPP is towards

obtaining an optimum all integer solution. After adding the constraint, the

optimum simplex table looks like table 7.2 given below.

Table 7.2: Optimum simplex table

yB xB y1 y2 y3 y4 Gsla(1)

y1 y10 y11 y12 y13 y14 0

y2 y20 y21 y22 y23 y24 0

Gsla(1) – f10 – f11 0 0 – f14 1

y00 y01 y02 y03 y04 y05

Since – f10 is negative, the optimal solution is unfeasible. Thus the dual

simplex method is to be applied for obtaining an optimum feasible solution.

After obtaining this solution, the above referred procedure is applied for

constructing second Gomory’s constraint. The process is to be continued till

all the integer solution has been obtained.

Self Assessment Questions

Fill in the blanks:

3. An optimum solution to IPP is first obtained by using ______________.

4. With the addition of Gomory’s constraint, the problem is solved by

______ ______ ________.

Page 5: SLM-Unit-07-MB0048

Operations Research Unit 7

Sikkim Manipal University Page No. 140

7.4 All IPP Algorithm

The iterative procedure for the solution of integer programming problem is

as follows.

Figure 7.1: Iterative procedure of IPP

Step 1: Convert the minimisation IPP into maximisation, if it is in

minimisation form. Ignore the integrality condition.

Page 6: SLM-Unit-07-MB0048

Operations Research Unit 7

Sikkim Manipal University Page No. 141

Step 2: Introduce the slack or surplus variables, if needed to convert the

inequations into equations and obtain the optimum solution of the given LPP

by using simplex algorithm.

Step 3: Test the integrality of the optimum solution

a) If the optimum solution contains all integer values, an optimum basic

feasible integer solution has been obtained.

b) If the optimum solution does not include all integer values, then proceed

to the next step.

Step 4: Examine the constraint equations corresponding to the current

optimum solution. Let these equations be represented by

)m........,,2,1,0i(,bx,y 1

ij

1n

0jij

Where n denotes the number of variables and m the number of

equations. Choose the largest fraction of bis to find iibi

max

Let it be i

1k

b or write is as o

kf

Step 5: Express the negative fractions if any, in the kth row of the optimum

simplex table as the sum of a negative integer and a non-negative fraction.

Step 6: Find the Gomorian constraint

1n

0j

kojkjfx,f

And add the equation

1n

0jjkjkosla x.ff)1(G

To the current set of equation constraints

Step 7: Start with a new set of equation constraints. Find the new optimum

solution by dual simplex algorithm so that Gsla (1) is the initial leaving basic

variable.

Page 7: SLM-Unit-07-MB0048

Operations Research Unit 7

Sikkim Manipal University Page No. 142

Step 8: If the new optimum solution for the modified LPP is an integer

solution, it is also feasible and optimum for the given IPP. If it is not an

integer solution, then return to step 4 and repeat the process until an

optimum feasible integer solution is obtained.

Solved Problem 1

Find the optimum integer solution of the following all IPP.

Maximise z = x1 + 2x2

Subject to the constraints

x1 + x2 ≤ 7

2x1 ≤ 11

2x2 ≤ 7

x1, x2 > 0 and are integers

Solution: Step 1: Introduce the slack variables

2x2 + x3 = 7

x1 + x2 + x4 = 7

2x1 + x5 = 11

x1, x2, x3, x4, x5 > 0.

Step 2: Ignore the integer condition, to get the following initial simplex table.

Table 7.3: Initial simplex table

Cj →

1 2 0 0 0

Basic variable

CB XB X1 X2 X3 X4 X5

Mini ratio

2

B

x

x

← x3 0 7 0 2 1 0 0 2

7

x4 0 7 1 1 0 1 0 1

7

x5 0 11 2 0 0 0 1 –

Z = 0 – 1 – 2

0

↓ 0 0

← j

Page 8: SLM-Unit-07-MB0048

Operations Research Unit 7

Sikkim Manipal University Page No. 143

Introducing x2 and leaving x3 from the basis, you get

Table 7.4: Revised simplex table

Cj → 1 2 0 0 0

Basic variable

CB XB X1 X2 X3 X4 X5

Mini ratio

1

B

x

x

x2 2 2

13 0 1

2

1

0 0 –

←x4 0 2

13

0 2

1

1 0

1

2

13

x5 0 11 2 0 0 0 1 2

11

Z= CB XB = 7 -1

↑ 0 1

0

↓ 0

← j

112,1,00,0,2111 CXCB

100,2

1,

2

10,0,2333

CXCB

Introducing X1 and leaving X4, you get the following optimum table.

Table 7.5: Optimum table

Cj → 1 2 0 0 0

Basic variable

CB XB X1 X2 X3 X4 X5

x2 2 2

13 0 1

2

1 0 0

x1 1 2

13 1 0

2

1 1 0

x5 0 4 0 0 1 -2 1

Z = 2

110 0 0

2

1 1 0

j

1

Page 9: SLM-Unit-07-MB0048

Operations Research Unit 7

Sikkim Manipal University Page No. 144

01,2

1,

2

10,1,2CXC 33B3

2

10

2

11

102,1,00,1,2CXC 44B4

The optimum solution you get is: 2

110z,

2

132x,

2

131x

Step 3: Since the optimum solution obtained above is not an integer solution, you must proceed to step 4.

Step 4: Now we select the constraint corresponding to the criterion.

max (fBi) = max (fB1, fB2, fB3)

= max 2

10,

2

1,

2

1

Since in this problem, the x2 equation and x1 equation both have the same value

of fBi that is2

1, you can use either one of the two equations.

Now consider the first row of the optimum table. The Gomory’s constraint to be added is

4,3

1414313111 1

j

BBjj fgxfxforfgxf

02

1

2

1

2

10

2

14313143 xxgxorgxx

Adding this new constraint to the optimum table, you get

Table 7.6: The new optimum table

Cj → 1 2 0 0 0 0

Basic variable

CB XB X1 X2 X3 X4 X5 G1

X2 2 2

13 0 1

2

1 0 0 0

X1 1 2

13 1 0

2

1 1 0 0

X5 0 4 0 0 1 -2 1 0

G1 0

2

1

0 0 2

1

0 0 1

Z= CB XB =

2

110

0 0 2

1

↑ 1 0

0 ↓

← j

Page 10: SLM-Unit-07-MB0048

Operations Research Unit 7

Sikkim Manipal University Page No. 145

Step 5: Now apply the dual simplex method to remove infeasibility of the optimum solution.

2

1,4,

2

13,

2

13 1521 gxxx

You use the dual simplex method.

i) leaving vector is G1 (i.e. 4 )

4r

ii) Entering vector is given by

43

3j4

j4

j

k4

k

xmax0x,

xmax

x

= 43

3

x

2

12

1

max

Therefore k = 3. So we must enter a3 corresponding to which x3 is given in the above table. Thus dropping G1 and introducing x3. We get the following dual simplex table.

Table 7.7 The dual simplex table

Cj → 1 2 0 0 0 0

Basic variable

C

B XB X1 X2 X3 X4 X5 G1

X2 2 3 0 1 0 0 0 1

X1 1 4 1 0 0 1 0 -1

X5 0 3 0 0 0 -2 1 2

X3 0 1 0 0 1 0 0 -2

Z = CB XB = 10 0 0 0 1 0 1 ← j

100,2,1,00,0,1,2CXC 44B4

102,2,1,10,0,1,2CGC 61B6

Now the optimum feasible solution is obtained in integers.

Finally, you get the integer optimum solution to the given IPP as x1 = 4, x2 = 3 and max z = 10.

Page 11: SLM-Unit-07-MB0048

Operations Research Unit 7

Sikkim Manipal University Page No. 146

Self Assessment Questions

True or False:

5. Do you select the variable for Gomory’s constraint whose fractional

value is more?

6. Optimum values in an pure IPP can be x=2 and y=3.5.

7.5 Branch and Bound Technique

Sometimes a few or all the variables of an IPP are constrained by their

upper or lower bounds or by both. The most general technique for a solution

of such constrained optimisation problems is the branch and bound

technique. The technique is applicable to both all (or pure) IPP as well as

mixed IPP. The technique for a maximisation problem is discussed below:

Let the IPP be

Maximise

n

1j

jj xcz –––––––––––––––––––––––––––– (1)

Subject to the constraints

m....,,2,1ibxan

1j

ijij

––––––––––––––––––– (2)

xj is integer valued , j = 1, 2, …….., r (< n) –––––––––––––––––- (3)

xj > 0 …………………. j = r + 1, …….., n ––––––-––––––––––––––– (4)

Further let us suppose that for each integer valued xj, we can assign lower

and upper bounds for the optimum values of the variable by

Lj ≤ xj ≤ Uj j = 1, 2, …. r –––––––––––––––––––––––––– (5)

This is the main idea behind “the branch and bound technique”.

Consider any variable xj, and let I be some integer value satisfying Lj I Uj

– 1. Then clearly an optimum solution (1) through (5) also satisfies either

linear constraint.

x j I + 1 –––––––––––––––––––––––––––––– (6)

Or the linear constraint xj ≤ I –––––––––––––––––––––––––––––– (7)

To explain how this partitioning helps, let’s assume that there were no

integer restrictions (3), and it yields an optimal solution to LPP – (1), (2), (4)

and (5). This indicates x1 = 1.66 (for example).

Then you formulate and solve two LPPs each containing (1), (2) and (4). But

(5) for j = 1 is modified to be 2 ≤ x1 ≤ U1 in one problem and L1 ≤ x1 ≤ 1 in the

other. Further to each of these problems, process an optimal solution

satisfying integer constraint (3).

Page 12: SLM-Unit-07-MB0048

Operations Research Unit 7

Sikkim Manipal University Page No. 147

Then the solution having the larger value for z is clearly the optimum for the

given IPP. However, it usually happens that one (or both) of these problems

have no optimal solution satisfying (3), and thus some more computations

are required. Now let us discuss, step wise, the algorithm that specifies how

to apply the partitioning (6) and (7) in a systematic manner to finally arrive at

an optimum solution.

Let’s start with an initial lower bound for z, say z(0) at the first iteration, which

is less than or equal to the optimal value z*. This lower bound may be taken

as the starting Lj for some xj.

In addition to the lower bound z(0), you also have a list of LPPs (to be called

master list) differing only in the bounds (5). To start with (the 0th iteration)

the master list contains a single LPP consisting of (1), (2), (4) and (5). Let us

now discuss the procedure that specifies how the partitioning (6) and (7) can

be applied systematically to eventually get an optimum integer-valued

solution.

7.5.1 Branch and bound algorithm

At the tth iteration (t = 0, 1, 2 …), apply the following steps to get an optimum

integer.

Step 0: If the master list is not empty, choose an LPP from it. Otherwise

stop the process, go to step 1.

Step 1: Obtain the optimum solution to the chosen problem. If either

i) It has no feasible solution or

ii) The resulting optimum value of the objective function z is less than

or equal to z(t), then let z(t+1) = z(t) and return to step 0; otherwise go

to step 2

Step 2: If the obtained optimum solution satisfies the integer constraints (3)

then record it. Let z(t+1) be the associated optimum value of z; return to step

0. Otherwise move to step 3.

Step 3: Select any variable xj, j = 1, 2, …., p. that does not have an integer

value in the obtained optimum solution to the LPP, chosen in step 0. Let *jx

denote this optimal value of xj. Add two LPPs to the master list. These LPPs

are identical to the LPPs chosen in step 0, except that, the lower bound on

xj is replaced by

*jx + 1. Let z(t+1) = z(t); return to step 0.

Page 13: SLM-Unit-07-MB0048

Operations Research Unit 7

Sikkim Manipal University Page No. 148

Note: At the termination of the algorithm, if a feasible integer valued solution

yielding z(t) has been recorded, it is optimum, or else no integer valued

feasible solution exists.

Solved Problem 2

Use branch and bound technique to solve the following IPP

Maximise z = 7x1 + 9x2 ---------------- (1)

Subject to the constraints

– x 1 + 3x2 < 6 -–------------ (2)

7x1 + x2 < 35

0 < x1, x2 < 7 -------------- (3)

x1, x2 are integers -–--------- (4)

Solution: At the starting iteration, you can consider z(0)

= 0 to be the lower bound,

for x, since all xj = 0 is feasible. The master list contains only LPP (1) (2) and (3),

which is designated as problem 1. Choose it in step 0, and in step 1 determine

the optimum solution.

z0 = 63 2

7x,

2

9x 21 (Solution to problem 1)

Since the solution is not integer valued, proceed from step 2 to step 3, and select

x1. Then, since 42

9x *

1

, place the following two additional problems on the

master list.

Problem 2: (1) (2) and 5 ≤ x1 ≤ 7; 0 ≤ x2 ≤ 7

Problem 3: (1) (2) and 0 ≤ x1 ≤ 4 ; 0 ≤ x2 ≤ 7

Returning to step 0: z(1)

= z(0)

= 0,

Suppose you choose problem 2, Step 1 establishes that problem 2 has the

feasible solution

z0 = 35, x1 = 5 x2 = 0 [solution to problem (2)] ……………(5)

Since it satisfies the integer constraints, record it at step 2 by enclosing in a

rectangle and let z(2)

= 35.

Returning to step 0 with z(2)

= 35, you will find that problem 3 is available.

Step 1 determines the following optimum feasible solution to it

Z0 = 58, x1 = 4, 3

10x2 (Problem 3)

Since the solution is not integer valued, proceed from step 2 to step 3 and select

Page 14: SLM-Unit-07-MB0048

Operations Research Unit 7

Sikkim Manipal University Page No. 149

x2. Then 33

10*xx

. Then add the following additional problems on the

master list:

Problem 4: (1) (2) and 72x4;41x0

Problem 5: (1) (2) and 0 ≤ x1 ≤ 4; 0 ≤ x2 ≤ 3

Returning to step 0 with z(3)

= z(2)

= 35, choose problem 4 from step 1, as you

know that problem 4 has no feasible solution, you again return to step 0 with z(4)

=

z(3)

= 35. Only problem 5 is available in the master list. In step 1, you again

determine the following optimum solution to this problem.

z0 = 55 x1 = 4 x2 = 3 (solution to problems) ---------- (6)

Since this satisfies the integer constraints, record it at step 2 by enclosing inside a

rectangle and let z(5)

= 55.

Returning to step 0, you will find that the master list is empty; and thus the

algorithm terminates.

Now on termination, you will find that only two feasible integer solutions namely

(5) and (6) have been recorded. The best of these gives the optimum solution to

the given IPP. Hence the optimum integer solution to the given IPP is Z0 = 55, x1

= 4, x2 = 3.

Figure 7.2: Tree diagram of the above example

Page 15: SLM-Unit-07-MB0048

Operations Research Unit 7

Sikkim Manipal University Page No. 150

Table 7.8: Solution table

Node Solution Additional

Constraints Type of solution

x1 x2 z*

(1) 2

9

2

7

63 __

Non-integer (Original problem)

(2) 5 0 35 5x1 Integer ← z*

(1)

(3) 4 3

10

58 4x1 Non-integer

(4) …… …….. …….. 4x,4x 21 No solution

(5) 4 3 55 3x,4x 21 Integer ←z*(2)

(Optimal)

Self Assessment Questions

True or False:

7. Branch and bound technique is applied when some variables have

upper or lower bounds.

8. We start the technique with lower bound.

7.6 Summary

This chapter examines the programming model in which the assumption of

divisibility is weakened. This unit also describes two algorithms to determine

the optimal solution for an integer programming problem. One is the cutting

plane algorithm devised by Gomory and the other is the branch and bound

algorithm developed by Land Doig.

7.7 Terminal Questions

1. Use Branch and Bound technique to solve the following problem

Maximise z = 3x1 + 3x2 + 13 x3

Subject to

– 3x1 + 6x2 + 7x3 ≤ 8

6x1 – 3x2 + 7x3 ≤ 8

0 ≤ xj ≤ 5

And xj are integer j = 1, 2, 3

Page 16: SLM-Unit-07-MB0048

Operations Research Unit 7

Sikkim Manipal University Page No. 151

2. What is integer programming?

3. Explain the Gomory’s cutting plane all integer algorithm of an IPP?

7.8 Answers to SAQs and TQs

Answers to Self Assessment Questions

1. True

2. False

3. Simplex method

4. Dual simplex method

5. Correct

6. Wrong

7. True

8. False

Answers to Terminal Questions

1. At the end of the 8th iteration we get the optional solution to the I.P.P. is

x1 = x2 = 0, x3 = 1, z* = 13.

2. Refer to Section 7.2

3. Refer to Section 7.3

7.9 References

No external sources have been referred for this unit.